From a155bd6863a47e27490e96ebdc87cb78d41ead74 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Tue, 1 Dec 2015 03:11:56 +1100 Subject: [PATCH] 20030704 release --- bin/appinst.bat | 2 +- bin/appinst.bat% | 2 - bin/appinst.sh | 4 +- bin/appinst.ucp | 6 + bin/banked/db | Bin 0 -> 21944 bytes bin/banked/grlogin | Bin 20627 -> 20943 bytes bin/banked/test | Bin 18569 -> 18612 bytes bin/{CHECKSUM => checksum} | Bin 128 -> 128 bytes bin/data/0000.scr | Bin 276 -> 344 bytes bin/data/0001.scr | Bin 518 -> 599 bytes bin/data/0002.scr | Bin 719 -> 739 bytes bin/data/0003.scr | Bin 460 -> 339 bytes bin/data/0004.scr | Bin 946 -> 953 bytes bin/data/kass.scr | Bin 464 -> 484 bytes bin/data/uzi | Bin 0 -> 344 bytes bin/db/test.DAT | Bin 0 -> 178 bytes bin/db/test.TBL | Bin 0 -> 44 bytes bin/good/CHECKSUM | Bin 128 -> 0 bytes bin/good/kernel.bin | Bin 83727 -> 0 bytes bin/good/uzboot.bin | Bin 109260 -> 0 bytes bin/good/uzboot.gz | Bin 107458 -> 107359 bytes bin/good/uzidisk.dat | Bin 4194304 -> 0 bytes bin/inittab.txt% | 6 - bin/kernel.bin | Bin 83727 -> 83726 bytes bin/mkboot.ucp | 3 - bin/mkboot.ucp% | 139 - bin/mkboot.ucp.org | 130 - bin/n.bat | 2 +- bin/n.ucp | 3 - bin/n.ucp% | 527 - bin/n.ucp.org | 520 - bin/passwd.txt | 1 - bin/passwd.txt% | 7 - bin/passwd.txt.org | 6 - bin/passwd.txt.org% | 7 - bin/tstsys.sh% | 4 - bin/tsys.sh% | 4 - bin/uzboot.bin | Bin 109260 -> 109161 bytes bin/uzboot.gz | Bin 107458 -> 107359 bytes bin/uzidisk.dat | Bin 4194304 -> 4194304 bytes doc/solarisporting.pdf | Bin 0 -> 357746 bytes include/sys/wait.h% | 37 - lib/c0b.rst | 34 +- relnotes/20030704.txt | 178 + src/avrsample.old/aaa | Bin 72407 -> 0 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 5979 -> 0 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 3972 -> 0 bytes src/avrsample.old/hello.s | 228 - src/avrsample.old/io.com | Bin 33194 -> 0 bytes src/avrsample.old/ispd.exe | Bin 69514 -> 0 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 20480 -> 0 bytes src/avrsample/aaa | Bin 72407 -> 0 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 19351 -> 0 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 5156 -> 0 bytes src/avrsample/hello.s | 416 - src/avrsample/hello.tar.gz | Bin 1810 -> 0 bytes src/avrsample/io.com | Bin 33194 -> 0 bytes src/avrsample/ispd.exe | Bin 69514 -> 0 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/bmp2txt.exe | Bin 102446 -> 90158 bytes src/bin/cat.exe | Bin 0 -> 17408 bytes src/bin/chs2cmd.exe | Bin 77870 -> 65582 bytes src/bin/cproto.exe | Bin 0 -> 172230 bytes src/bin/cr.exe | Bin 73769 -> 0 bytes src/bin/cygpopt-0.dll | Bin 0 -> 22528 bytes src/bin/cygwin1.dll | Bin 0 -> 971080 bytes src/bin/d2u.exe | Bin 0 -> 17408 bytes src/bin/diff.exe | Bin 0 -> 87040 bytes src/bin/diff.sh | 2 + src/bin/diffdir.sh | 2 + src/bin/gunzip.exe | Bin 0 -> 59392 bytes src/bin/gzip.exe | Bin 0 -> 59392 bytes src/bin/hfmdump.exe | Bin 77870 -> 61486 bytes src/bin/hfmtool.exe | Bin 127022 -> 110638 bytes src/bin/hfmwidth.exe | Bin 73775 -> 61487 bytes src/bin/indent.exe | Bin 0 -> 58368 bytes src/bin/make.exe | Bin 188416 -> 188416 bytes src/bin/mknbat-b.bat | 2 +- src/bin/mknbat-l.bat | 2 +- src/bin/patch.exe | Bin 0 -> 85504 bytes src/bin/sed.exe | Bin 0 -> 92160 bytes src/bin/sh.exe | Bin 0 -> 69632 bytes src/bin/txt2chs.exe | Bin 90158 -> 73774 bytes src/bin/u2d.exe | Bin 0 -> 17408 bytes src/bin/xxd.exe | Bin 0 -> 18944 bytes src/db/db.c | 1126 ++ src/db/db.h | 152 + src/db/db.i86 | 712 + src/db/db.lnk | 14 + src/db/db.lst | 6551 +++++++++ src/{gui/wnd.map => db/db.map} | 216 +- src/db/db.rel | 3930 +++++ src/db/db.rst | 6551 +++++++++ src/db/db.s01 | 6246 ++++++++ src/db/logistic.DAT | Bin 0 -> 10 bytes src/db/logistic.TBL | Bin 0 -> 104 bytes src/db/main.c | 61 + src/db/main.i86 | 805 ++ src/db/main.lst | 258 + src/db/main.rel | 188 + src/db/main.rst | 258 + src/db/main.s01 | 219 + src/db/n.bat | 30 + src/db/product.DAT | Bin 0 -> 430 bytes src/db/product.TBL | Bin 0 -> 80 bytes src/db/stock.DAT | Bin 0 -> 10 bytes src/db/stock.TBL | Bin 0 -> 44 bytes src/db/test.DAT | Bin 0 -> 178 bytes src/db/test.TBL | Bin 0 -> 44 bytes src/db/trans.DAT | Bin 0 -> 10 bytes src/db/trans.TBL | Bin 0 -> 128 bytes src/font/apibus!.txt | 26 + src/font/apibus.hfm | Bin 2664 -> 1697 bytes src/font/apibus.txt | 58 +- src/font/large.psd | Bin 64357 -> 0 bytes src/font/lcd0.cmd | Bin 13209 -> 12499 bytes src/font/lcd1.cmd | Bin 13209 -> 10965 bytes src/font/set00nld.c | 64 +- src/font/set01.bmp | Bin 26580 -> 0 bytes src/font/set01.chs | Bin 1592 -> 0 bytes src/font/set01.cmd | Bin 1597 -> 0 bytes src/font/set01.txt | 1056 -- src/font/set01nld.c | 64 +- src/font/set02.bmp | Bin 29048 -> 0 bytes src/font/set02.chs | Bin 1602 -> 0 bytes src/font/set02.cmd | Bin 1607 -> 0 bytes src/font/set02.txt | 1087 -- src/font/set02nld.c | 64 +- src/font/set03.bmp | Bin 41484 -> 0 bytes src/font/set03.chs | Bin 1826 -> 0 bytes src/font/set03.cmd | Bin 1831 -> 0 bytes src/font/set03.txt | 1312 -- src/font/set03nld.c | 64 +- src/font/set04.bmp | Bin 68472 -> 0 bytes src/font/set04.chs | Bin 2578 -> 0 bytes src/font/set04.cmd | Bin 2583 -> 0 bytes src/font/set04.txt | 1665 --- src/font/set04nld.c | 64 +- src/font/set05.bmp | Bin 124112 -> 0 bytes src/font/set05.chs | Bin 3523 -> 0 bytes src/font/set05.cmd | Bin 3528 -> 0 bytes src/font/set05.txt | 2145 --- src/font/set06.bmp | Bin 20024 -> 0 bytes src/font/set06.chs | Bin 1549 -> 0 bytes src/font/set06.cmd | Bin 1554 -> 0 bytes src/font/set06.txt | 1024 -- src/font/small.psd | Bin 39781 -> 0 bytes src/font/wid-demo.exe | Bin 69677 -> 53293 bytes src/font/wid-demo.obj | Bin 0 -> 2935 bytes src/gui/0000.scr | Bin 262 -> 0 bytes src/gui/0001.scr | Bin 345 -> 0 bytes src/gui/0001.tmp | 0 src/gui/0002.scr | Bin 719 -> 0 bytes src/gui/0003.scr | Bin 760 -> 0 bytes src/gui/0004.scr | Bin 1596 -> 0 bytes src/gui/Copy (2) of wnd.c | 1138 -- src/gui/Copy of wnd.c | 941 -- src/gui/Copy of wnd.h | 180 - src/gui/cl64180.r01 | Bin 100922 -> 0 bytes src/gui/grlogin.i86 | 1333 +- src/gui/grlogin.map | 189 +- src/gui/hello.map | 1 - src/gui/login.c.org | 93 - src/gui/login.lst | 2 +- src/gui/login.map | 283 - src/gui/login.rel | 2 +- src/gui/login.rst | 610 +- src/gui/login.s01 | 2 +- src/gui/m.bat | 6 +- src/gui/t.bat | 6 +- src/gui/test.c | 4 +- src/gui/test.i86 | 1130 +- src/gui/test.lst | 101 +- src/gui/test.map | 120 +- src/gui/test.rel | 45 +- src/gui/test.rst | 101 +- src/gui/test.s01 | 10 +- src/gui/trans.c | 12 +- src/gui/trans.lst | 1802 ++- src/gui/trans.rel | 580 +- src/gui/trans.rst | 1998 ++- src/gui/trans.s01 | 404 +- src/gui/wnd.c | 119 +- src/gui/wnd.c.org | 1141 -- src/gui/wnd.cbackup | 658 - src/gui/wnd.h | 6 +- src/gui/wnd.ihx | 1068 -- src/gui/wnd.lst | 10859 +++++++------- src/gui/wnd.rel | 4325 +++--- src/gui/wnd.rst | 10857 +++++++------- src/gui/wnd.s01 | 2886 ++-- src/gui/wnd.xls | Bin 15872 -> 0 bytes src/gui/wnd.zip | Bin 9882 -> 0 bytes src/kernel/build.ban.save | 312 - src/kernel/cmx/escc.asm% | 980 -- src/kernel/kernel.lnk% | 58 - src/kernel/libc/{VENDOR.H => vendor.h} | 0 src/kernel/n.bat.org | 6 - src/kernel/uzi/testsystem.c | 3 + src/mkfont/apibus.hfm | Bin 1709 -> 0 bytes src/mkfont/apibus.txt | 44 - src/mkfont/bmp2txt.exe | Bin 102446 -> 90158 bytes src/mkfont/bmp2txt.obj | Bin 0 -> 20515 bytes src/mkfont/chs2cmd.exe | Bin 77870 -> 65582 bytes src/mkfont/chs2cmd.obj | Bin 0 -> 17912 bytes src/mkfont/hfmdump.exe | Bin 77870 -> 61486 bytes src/mkfont/hfmdump.obj | Bin 0 -> 7727 bytes src/mkfont/hfmlib.obj | Bin 0 -> 19058 bytes src/mkfont/hfmtool.exe | Bin 127022 -> 110638 bytes src/mkfont/hfmtool.obj | Bin 0 -> 27891 bytes src/mkfont/hfmwidth.exe | Bin 73775 -> 61487 bytes src/mkfont/hfmwidth.obj | Bin 0 -> 4145 bytes src/mkfont/hycache.obj | Bin 0 -> 19507 bytes src/mkfont/hyfile.obj | Bin 0 -> 15249 bytes src/mkfont/hyfs.obj | Bin 0 -> 12178 bytes src/mkfont/hyimage.obj | Bin 0 -> 26911 bytes src/mkfont/hylist.obj | Bin 0 -> 14535 bytes src/mkfont/hymb.obj | Bin 0 -> 11125 bytes src/mkfont/hystring.obj | Bin 0 -> 13571 bytes src/mkfont/n.bat | 2 - src/mkfont/txt2chs.exe | Bin 90158 -> 73774 bytes src/mkfont/txt2chs.obj | Bin 0 -> 25402 bytes src/mkutil/make-3.80/ABOUT-NLS | 435 + src/mkutil/make-3.80/AUTHORS | 57 + src/mkutil/make-3.80/COPYING | 340 + src/mkutil/make-3.80/ChangeLog | 857 ++ src/mkutil/make-3.80/INSTALL | 187 + src/mkutil/make-3.80/Makefile.DOS | 693 + src/mkutil/make-3.80/Makefile.am | 162 + src/mkutil/make-3.80/Makefile.ami | 305 + src/mkutil/make-3.80/Makefile.in | 925 ++ src/mkutil/make-3.80/NEWS | 859 ++ src/mkutil/make-3.80/NMakefile | 250 + src/mkutil/make-3.80/NMakefile$ | 248 + src/mkutil/make-3.80/README | 164 + src/mkutil/make-3.80/README.Amiga | 61 + src/mkutil/make-3.80/README.DOS | 323 + src/mkutil/make-3.80/README.W32 | 241 + src/mkutil/make-3.80/README.customs | 95 + src/mkutil/make-3.80/SCOPTIONS | 13 + src/mkutil/make-3.80/SMakefile | 338 + src/mkutil/make-3.80/acinclude.m4 | 164 + src/mkutil/make-3.80/aclocal.m4 | 3053 ++++ src/mkutil/make-3.80/alloca.c | 504 + src/mkutil/make-3.80/amiga.c | 123 + src/mkutil/make-3.80/amiga.h | 22 + src/mkutil/make-3.80/ar.c | 329 + src/mkutil/make-3.80/arscan.c | 861 ++ src/mkutil/make-3.80/build.sh.in | 80 + src/mkutil/make-3.80/build_w32.bat | 138 + src/mkutil/make-3.80/commands.c | 584 + src/mkutil/make-3.80/commands.h | 42 + src/mkutil/make-3.80/config.ami | 317 + src/mkutil/make-3.80/config.h | 399 + src/mkutil/make-3.80/config.h-vms | 403 + src/mkutil/make-3.80/config.h.W32 | 399 + src/mkutil/make-3.80/config.h.in | 391 + src/mkutil/make-3.80/configh.dos | 94 + src/mkutil/make-3.80/configure | 12603 +++++++++++++++++ src/mkutil/make-3.80/configure.bat | 44 + src/mkutil/make-3.80/configure.in | 390 + src/mkutil/make-3.80/debug.h | 41 + src/mkutil/make-3.80/default.c | 585 + src/mkutil/make-3.80/dep.h | 78 + src/mkutil/make-3.80/dir.c | 1212 ++ src/mkutil/make-3.80/dosbuild.bat | 42 + src/mkutil/make-3.80/expand.c | 566 + src/mkutil/make-3.80/file.c | 827 ++ src/mkutil/make-3.80/filedef.h | 199 + src/mkutil/make-3.80/function.c | 2076 +++ src/mkutil/make-3.80/getloadavg.c | 1034 ++ src/mkutil/make-3.80/getopt.c | 1047 ++ src/mkutil/make-3.80/getopt.h | 133 + src/mkutil/make-3.80/getopt1.c | 190 + src/mkutil/make-3.80/gettext.h | 59 + src/mkutil/make-3.80/glob/COPYING.LIB | 481 + src/mkutil/make-3.80/glob/ChangeLog | 136 + src/mkutil/make-3.80/glob/Makefile.am | 14 + src/mkutil/make-3.80/glob/Makefile.ami | 69 + src/mkutil/make-3.80/glob/Makefile.in | 399 + src/mkutil/make-3.80/glob/SCOPTIONS | 13 + src/mkutil/make-3.80/glob/SMakefile | 69 + src/mkutil/make-3.80/glob/configure.bat | 26 + src/mkutil/make-3.80/glob/fnmatch.c | 488 + src/mkutil/make-3.80/glob/fnmatch.h | 84 + src/mkutil/make-3.80/glob/glob.c | 1428 ++ src/mkutil/make-3.80/glob/glob.h | 205 + src/mkutil/make-3.80/hash.c | 369 + src/mkutil/make-3.80/hash.h | 233 + src/mkutil/make-3.80/implicit.c | 635 + src/mkutil/make-3.80/job.c | 3110 ++++ src/mkutil/make-3.80/job.h | 83 + src/mkutil/make-3.80/link.dbg | 28 + src/mkutil/make-3.80/loadavg.c | 1034 ++ src/mkutil/make-3.80/main.c | 2813 ++++ src/mkutil/make-3.80/make.1 | 291 + src/mkutil/make-3.80/make.h | 562 + src/mkutil/make-3.80/make.lnk | 5 + src/mkutil/make-3.80/makefile.com | 138 + src/mkutil/make-3.80/makefile.vms | 147 + src/mkutil/make-3.80/misc.c | 893 ++ src/mkutil/make-3.80/n.bat | 21 + src/mkutil/make-3.80/read.c | 3105 ++++ src/mkutil/make-3.80/readme.vms | 183 + src/mkutil/make-3.80/remake.c | 1420 ++ src/mkutil/make-3.80/remote-cstms.c | 310 + src/mkutil/make-3.80/remote-stub.c | 109 + src/mkutil/make-3.80/respf.$$$ | 23 + src/mkutil/make-3.80/rule.c | 717 + src/mkutil/make-3.80/rule.h | 72 + src/mkutil/make-3.80/signame.c | 255 + src/mkutil/make-3.80/subproc.bat | 6 + src/mkutil/make-3.80/variable.c | 1263 ++ src/mkutil/make-3.80/variable.h | 183 + src/mkutil/make-3.80/version.c | 17 + src/mkutil/make-3.80/vmsdir.h | 61 + src/mkutil/make-3.80/vmsfunctions.c | 261 + src/mkutil/make-3.80/vmsify.c | 981 ++ src/mkutil/make-3.80/vpath.c | 587 + src/mkutil/make-3.80/w32/compat/dirent.c | 188 + src/mkutil/make-3.80/w32/include/dirent.h | 37 + src/mkutil/make-3.80/w32/include/pathstuff.h | 9 + src/mkutil/make-3.80/w32/include/sub_proc.h | 47 + src/mkutil/make-3.80/w32/include/w32err.h | 10 + src/mkutil/make-3.80/w32/pathstuff.c | 238 + src/mkutil/make-3.80/w32/subproc/NMakefile | 60 + src/mkutil/make-3.80/w32/subproc/build.bat | 10 + src/mkutil/make-3.80/w32/subproc/misc.c | 65 + src/mkutil/make-3.80/w32/subproc/proc.h | 13 + src/mkutil/make-3.80/w32/subproc/sub_proc.c | 1207 ++ src/mkutil/make-3.80/w32/subproc/w32err.c | 51 + src/mkutil/make-3.80/x.bat | 15 + src/mkutil/revava-0.3/Source.C% | 735 - src/mkutil/revava-0.3/n.bat% | 2 - src/nicktemp/avr_make | 68 - src/nicktemp/hello.c | 49 - src/nicktemp/hello.eep | 1 - src/nicktemp/hello.elf | Bin 18368 -> 0 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 3972 -> 0 bytes src/nicktemp/hello.s | 238 - src/nicktemp/hello.tar.gz | Bin 1810 -> 0 bytes src/nicktemp/makefile | 39 - src/testsystem/login | Bin 0 -> 117 bytes src/testsystem/tter.c.save | 485 - 409 files changed, 107731 insertions(+), 46060 deletions(-) delete mode 100644 bin/appinst.bat% create mode 100644 bin/banked/db rename bin/{CHECKSUM => checksum} (50%) create mode 100644 bin/data/uzi create mode 100644 bin/db/test.DAT create mode 100644 bin/db/test.TBL delete mode 100644 bin/good/CHECKSUM delete mode 100644 bin/good/kernel.bin delete mode 100644 bin/good/uzboot.bin delete mode 100644 bin/good/uzidisk.dat delete mode 100644 bin/inittab.txt% delete mode 100644 bin/mkboot.ucp% delete mode 100644 bin/mkboot.ucp.org delete mode 100644 bin/n.ucp% delete mode 100644 bin/n.ucp.org delete mode 100644 bin/passwd.txt% delete mode 100644 bin/passwd.txt.org delete mode 100644 bin/passwd.txt.org% delete mode 100644 bin/tstsys.sh% delete mode 100644 bin/tsys.sh% create mode 100644 doc/solarisporting.pdf delete mode 100644 include/sys/wait.h% create mode 100644 relnotes/20030704.txt delete mode 100644 src/avrsample.old/aaa delete mode 100644 src/avrsample.old/avr_make delete mode 100644 src/avrsample.old/avr_make% delete mode 100644 src/avrsample.old/hello.c delete mode 100644 src/avrsample.old/hello.elf delete mode 100644 src/avrsample.old/hello.h delete mode 100644 src/avrsample.old/hello.hex delete mode 100644 src/avrsample.old/hello.lst delete mode 100644 src/avrsample.old/hello.map delete mode 100644 src/avrsample.old/hello.o delete mode 100644 src/avrsample.old/hello.s delete mode 100644 src/avrsample.old/io.com delete mode 100644 src/avrsample.old/ispd.exe delete mode 100644 src/avrsample.old/libc/calloc.c delete mode 100644 src/avrsample.old/libc/calloc.s delete mode 100644 src/avrsample.old/libc/fdevopen.c delete mode 100644 src/avrsample.old/libc/fdevopen.s delete mode 100644 src/avrsample.old/libc/gcrt1.S delete mode 100644 src/avrsample.old/libc/gcrt1.i delete mode 100644 src/avrsample.old/libc/macros.inc delete mode 100644 src/avrsample.old/libc/malloc.c delete mode 100644 src/avrsample.old/libc/malloc.s delete mode 100644 src/avrsample.old/libc/memset.S delete mode 100644 src/avrsample.old/libc/memset.i delete mode 100644 src/avrsample.old/libc/stdio_private.h delete mode 100644 src/avrsample.old/makefile delete mode 100644 src/avrsample.old/makefile% delete mode 100644 src/avrsample.old/n.bat delete mode 100644 src/avrsample.old/nick delete mode 100644 src/avrsample.old/r.bat delete mode 100644 src/avrsample.old/x.bat delete mode 100644 src/avrsample/a.sh delete mode 100644 src/avrsample/a.sh% delete mode 100644 src/avrsample/a.tar delete mode 100644 src/avrsample/aaa delete mode 100644 src/avrsample/avr_make delete mode 100644 src/avrsample/avr_make% delete mode 100644 src/avrsample/hello.c delete mode 100644 src/avrsample/hello.c! delete mode 100644 src/avrsample/hello.c# delete mode 100644 src/avrsample/hello.c% delete mode 100644 src/avrsample/hello.eep delete mode 100644 src/avrsample/hello.elf delete mode 100644 src/avrsample/hello.h delete mode 100644 src/avrsample/hello.h# delete mode 100644 src/avrsample/hello.hex delete mode 100644 src/avrsample/hello.lst delete mode 100644 src/avrsample/hello.map delete mode 100644 src/avrsample/hello.o delete mode 100644 src/avrsample/hello.s delete mode 100644 src/avrsample/hello.tar.gz delete mode 100644 src/avrsample/io.com delete mode 100644 src/avrsample/ispd.exe delete mode 100644 src/avrsample/libc/calloc.c delete mode 100644 src/avrsample/libc/calloc.s delete mode 100644 src/avrsample/libc/fdevopen.c delete mode 100644 src/avrsample/libc/fdevopen.s delete mode 100644 src/avrsample/libc/gcrt1.S delete mode 100644 src/avrsample/libc/gcrt1.i delete mode 100644 src/avrsample/libc/macros.inc delete mode 100644 src/avrsample/libc/malloc.c delete mode 100644 src/avrsample/libc/malloc.s delete mode 100644 src/avrsample/libc/memset.S delete mode 100644 src/avrsample/libc/memset.i delete mode 100644 src/avrsample/libc/stdio_private.h delete mode 100644 src/avrsample/makefile delete mode 100644 src/avrsample/makefile% delete mode 100644 src/avrsample/n.bat delete mode 100644 src/avrsample/n.sh delete mode 100644 src/avrsample/nick delete mode 100644 src/avrsample/out.s delete mode 100644 src/avrsample/r.bat delete mode 100644 src/avrsample/r.sh delete mode 100644 src/avrsample/x.bat delete mode 100644 src/bin/avr_make delete mode 100644 src/bin/avr_make2 create mode 100644 src/bin/cat.exe create mode 100644 src/bin/cproto.exe delete mode 100644 src/bin/cr.exe create mode 100644 src/bin/cygpopt-0.dll create mode 100644 src/bin/cygwin1.dll create mode 100644 src/bin/d2u.exe create mode 100644 src/bin/diff.exe create mode 100644 src/bin/diff.sh create mode 100644 src/bin/diffdir.sh create mode 100644 src/bin/gunzip.exe create mode 100644 src/bin/gzip.exe create mode 100644 src/bin/indent.exe create mode 100644 src/bin/patch.exe create mode 100644 src/bin/sed.exe create mode 100644 src/bin/sh.exe create mode 100644 src/bin/u2d.exe create mode 100644 src/bin/xxd.exe create mode 100644 src/db/db.c create mode 100644 src/db/db.h create mode 100644 src/db/db.i86 create mode 100644 src/db/db.lnk create mode 100644 src/db/db.lst rename src/{gui/wnd.map => db/db.map} (52%) create mode 100644 src/db/db.rel create mode 100644 src/db/db.rst create mode 100644 src/db/db.s01 create mode 100644 src/db/logistic.DAT create mode 100644 src/db/logistic.TBL create mode 100644 src/db/main.c create mode 100644 src/db/main.i86 create mode 100644 src/db/main.lst create mode 100644 src/db/main.rel create mode 100644 src/db/main.rst create mode 100644 src/db/main.s01 create mode 100644 src/db/n.bat create mode 100644 src/db/product.DAT create mode 100644 src/db/product.TBL create mode 100644 src/db/stock.DAT create mode 100644 src/db/stock.TBL create mode 100644 src/db/test.DAT create mode 100644 src/db/test.TBL create mode 100644 src/db/trans.DAT create mode 100644 src/db/trans.TBL create mode 100644 src/font/apibus!.txt delete mode 100644 src/font/large.psd delete mode 100644 src/font/set01.bmp delete mode 100644 src/font/set01.chs delete mode 100644 src/font/set01.cmd delete mode 100644 src/font/set01.txt delete mode 100644 src/font/set02.bmp delete mode 100644 src/font/set02.chs delete mode 100644 src/font/set02.cmd delete mode 100644 src/font/set02.txt delete mode 100644 src/font/set03.bmp delete mode 100644 src/font/set03.chs delete mode 100644 src/font/set03.cmd delete mode 100644 src/font/set03.txt delete mode 100644 src/font/set04.bmp delete mode 100644 src/font/set04.chs delete mode 100644 src/font/set04.cmd delete mode 100644 src/font/set04.txt delete mode 100644 src/font/set05.bmp delete mode 100644 src/font/set05.chs delete mode 100644 src/font/set05.cmd delete mode 100644 src/font/set05.txt delete mode 100644 src/font/set06.bmp delete mode 100644 src/font/set06.chs delete mode 100644 src/font/set06.cmd delete mode 100644 src/font/set06.txt delete mode 100644 src/font/small.psd create mode 100644 src/font/wid-demo.obj delete mode 100644 src/gui/0000.scr delete mode 100644 src/gui/0001.scr delete mode 100644 src/gui/0001.tmp delete mode 100644 src/gui/0002.scr delete mode 100644 src/gui/0003.scr delete mode 100644 src/gui/0004.scr delete mode 100644 src/gui/Copy (2) of wnd.c delete mode 100644 src/gui/Copy of wnd.c delete mode 100644 src/gui/Copy of wnd.h delete mode 100644 src/gui/cl64180.r01 delete mode 100644 src/gui/hello.map delete mode 100644 src/gui/login.c.org delete mode 100644 src/gui/login.map delete mode 100644 src/gui/wnd.c.org delete mode 100644 src/gui/wnd.cbackup delete mode 100644 src/gui/wnd.ihx delete mode 100644 src/gui/wnd.xls delete mode 100644 src/gui/wnd.zip delete mode 100644 src/kernel/build.ban.save delete mode 100644 src/kernel/cmx/escc.asm% delete mode 100644 src/kernel/kernel.lnk% rename src/kernel/libc/{VENDOR.H => vendor.h} (100%) delete mode 100644 src/kernel/n.bat.org delete mode 100644 src/mkfont/apibus.hfm delete mode 100644 src/mkfont/apibus.txt create mode 100644 src/mkfont/bmp2txt.obj create mode 100644 src/mkfont/chs2cmd.obj create mode 100644 src/mkfont/hfmdump.obj create mode 100644 src/mkfont/hfmlib.obj create mode 100644 src/mkfont/hfmtool.obj create mode 100644 src/mkfont/hfmwidth.obj create mode 100644 src/mkfont/hycache.obj create mode 100644 src/mkfont/hyfile.obj create mode 100644 src/mkfont/hyfs.obj create mode 100644 src/mkfont/hyimage.obj create mode 100644 src/mkfont/hylist.obj create mode 100644 src/mkfont/hymb.obj create mode 100644 src/mkfont/hystring.obj create mode 100644 src/mkfont/txt2chs.obj create mode 100644 src/mkutil/make-3.80/ABOUT-NLS create mode 100644 src/mkutil/make-3.80/AUTHORS create mode 100644 src/mkutil/make-3.80/COPYING create mode 100644 src/mkutil/make-3.80/ChangeLog create mode 100644 src/mkutil/make-3.80/INSTALL create mode 100644 src/mkutil/make-3.80/Makefile.DOS create mode 100644 src/mkutil/make-3.80/Makefile.am create mode 100644 src/mkutil/make-3.80/Makefile.ami create mode 100644 src/mkutil/make-3.80/Makefile.in create mode 100644 src/mkutil/make-3.80/NEWS create mode 100644 src/mkutil/make-3.80/NMakefile create mode 100644 src/mkutil/make-3.80/NMakefile$ create mode 100644 src/mkutil/make-3.80/README create mode 100644 src/mkutil/make-3.80/README.Amiga create mode 100644 src/mkutil/make-3.80/README.DOS create mode 100644 src/mkutil/make-3.80/README.W32 create mode 100644 src/mkutil/make-3.80/README.customs create mode 100644 src/mkutil/make-3.80/SCOPTIONS create mode 100644 src/mkutil/make-3.80/SMakefile create mode 100644 src/mkutil/make-3.80/acinclude.m4 create mode 100644 src/mkutil/make-3.80/aclocal.m4 create mode 100644 src/mkutil/make-3.80/alloca.c create mode 100644 src/mkutil/make-3.80/amiga.c create mode 100644 src/mkutil/make-3.80/amiga.h create mode 100644 src/mkutil/make-3.80/ar.c create mode 100644 src/mkutil/make-3.80/arscan.c create mode 100644 src/mkutil/make-3.80/build.sh.in create mode 100644 src/mkutil/make-3.80/build_w32.bat create mode 100644 src/mkutil/make-3.80/commands.c create mode 100644 src/mkutil/make-3.80/commands.h create mode 100644 src/mkutil/make-3.80/config.ami create mode 100644 src/mkutil/make-3.80/config.h create mode 100644 src/mkutil/make-3.80/config.h-vms create mode 100644 src/mkutil/make-3.80/config.h.W32 create mode 100644 src/mkutil/make-3.80/config.h.in create mode 100644 src/mkutil/make-3.80/configh.dos create mode 100644 src/mkutil/make-3.80/configure create mode 100644 src/mkutil/make-3.80/configure.bat create mode 100644 src/mkutil/make-3.80/configure.in create mode 100644 src/mkutil/make-3.80/debug.h create mode 100644 src/mkutil/make-3.80/default.c create mode 100644 src/mkutil/make-3.80/dep.h create mode 100644 src/mkutil/make-3.80/dir.c create mode 100644 src/mkutil/make-3.80/dosbuild.bat create mode 100644 src/mkutil/make-3.80/expand.c create mode 100644 src/mkutil/make-3.80/file.c create mode 100644 src/mkutil/make-3.80/filedef.h create mode 100644 src/mkutil/make-3.80/function.c create mode 100644 src/mkutil/make-3.80/getloadavg.c create mode 100644 src/mkutil/make-3.80/getopt.c create mode 100644 src/mkutil/make-3.80/getopt.h create mode 100644 src/mkutil/make-3.80/getopt1.c create mode 100644 src/mkutil/make-3.80/gettext.h create mode 100644 src/mkutil/make-3.80/glob/COPYING.LIB create mode 100644 src/mkutil/make-3.80/glob/ChangeLog create mode 100644 src/mkutil/make-3.80/glob/Makefile.am create mode 100644 src/mkutil/make-3.80/glob/Makefile.ami create mode 100644 src/mkutil/make-3.80/glob/Makefile.in create mode 100644 src/mkutil/make-3.80/glob/SCOPTIONS create mode 100644 src/mkutil/make-3.80/glob/SMakefile create mode 100644 src/mkutil/make-3.80/glob/configure.bat create mode 100644 src/mkutil/make-3.80/glob/fnmatch.c create mode 100644 src/mkutil/make-3.80/glob/fnmatch.h create mode 100644 src/mkutil/make-3.80/glob/glob.c create mode 100644 src/mkutil/make-3.80/glob/glob.h create mode 100644 src/mkutil/make-3.80/hash.c create mode 100644 src/mkutil/make-3.80/hash.h create mode 100644 src/mkutil/make-3.80/implicit.c create mode 100644 src/mkutil/make-3.80/job.c create mode 100644 src/mkutil/make-3.80/job.h create mode 100644 src/mkutil/make-3.80/link.dbg create mode 100644 src/mkutil/make-3.80/loadavg.c create mode 100644 src/mkutil/make-3.80/main.c create mode 100644 src/mkutil/make-3.80/make.1 create mode 100644 src/mkutil/make-3.80/make.h create mode 100644 src/mkutil/make-3.80/make.lnk create mode 100644 src/mkutil/make-3.80/makefile.com create mode 100644 src/mkutil/make-3.80/makefile.vms create mode 100644 src/mkutil/make-3.80/misc.c create mode 100644 src/mkutil/make-3.80/n.bat create mode 100644 src/mkutil/make-3.80/read.c create mode 100644 src/mkutil/make-3.80/readme.vms create mode 100644 src/mkutil/make-3.80/remake.c create mode 100644 src/mkutil/make-3.80/remote-cstms.c create mode 100644 src/mkutil/make-3.80/remote-stub.c create mode 100644 src/mkutil/make-3.80/respf.$$$ create mode 100644 src/mkutil/make-3.80/rule.c create mode 100644 src/mkutil/make-3.80/rule.h create mode 100644 src/mkutil/make-3.80/signame.c create mode 100644 src/mkutil/make-3.80/subproc.bat create mode 100644 src/mkutil/make-3.80/variable.c create mode 100644 src/mkutil/make-3.80/variable.h create mode 100644 src/mkutil/make-3.80/version.c create mode 100644 src/mkutil/make-3.80/vmsdir.h create mode 100644 src/mkutil/make-3.80/vmsfunctions.c create mode 100644 src/mkutil/make-3.80/vmsify.c create mode 100644 src/mkutil/make-3.80/vpath.c create mode 100644 src/mkutil/make-3.80/w32/compat/dirent.c create mode 100644 src/mkutil/make-3.80/w32/include/dirent.h create mode 100644 src/mkutil/make-3.80/w32/include/pathstuff.h create mode 100644 src/mkutil/make-3.80/w32/include/sub_proc.h create mode 100644 src/mkutil/make-3.80/w32/include/w32err.h create mode 100644 src/mkutil/make-3.80/w32/pathstuff.c create mode 100644 src/mkutil/make-3.80/w32/subproc/NMakefile create mode 100644 src/mkutil/make-3.80/w32/subproc/build.bat create mode 100644 src/mkutil/make-3.80/w32/subproc/misc.c create mode 100644 src/mkutil/make-3.80/w32/subproc/proc.h create mode 100644 src/mkutil/make-3.80/w32/subproc/sub_proc.c create mode 100644 src/mkutil/make-3.80/w32/subproc/w32err.c create mode 100644 src/mkutil/make-3.80/x.bat delete mode 100644 src/mkutil/revava-0.3/Source.C% delete mode 100644 src/mkutil/revava-0.3/n.bat% delete mode 100644 src/nicktemp/avr_make delete mode 100644 src/nicktemp/hello.c delete mode 100644 src/nicktemp/hello.eep delete mode 100644 src/nicktemp/hello.elf delete mode 100644 src/nicktemp/hello.h delete mode 100644 src/nicktemp/hello.hex delete mode 100644 src/nicktemp/hello.lst delete mode 100644 src/nicktemp/hello.map delete mode 100644 src/nicktemp/hello.o delete mode 100644 src/nicktemp/hello.s delete mode 100644 src/nicktemp/hello.tar.gz delete mode 100644 src/nicktemp/makefile create mode 100644 src/testsystem/login delete mode 100644 src/testsystem/tter.c.save diff --git a/bin/appinst.bat b/bin/appinst.bat index 45f12114..9353d2c5 100644 --- a/bin/appinst.bat +++ b/bin/appinst.bat @@ -1,2 +1,2 @@ ucp < appinst.ucp -copy uzidisk.dat i:\ +copy uzidisk.dat %FLASHCARDPATH% diff --git a/bin/appinst.bat% b/bin/appinst.bat% deleted file mode 100644 index 0836b57e..00000000 --- a/bin/appinst.bat% +++ /dev/null @@ -1,2 +0,0 @@ -ucp < appinst.ucp -copy uzidisk.dat f:\ diff --git a/bin/appinst.sh b/bin/appinst.sh index 4c6d489a..ea4bfd9c 100644 --- a/bin/appinst.sh +++ b/bin/appinst.sh @@ -8,8 +8,8 @@ rm -f /wnd/*.scr cp -v /usr/boot/inst/wnd/*.scr /wnd rm -f /bin/grlogin /bin/test -cp -v /usr/boot/inst/bin/grlogin /usr/boot/inst/bin/test /bin -align -v /bin/grlogin /bin/test +cp -v /usr/boot/inst/bin/grlogin /usr/boot/inst/bin/test /usr/boot/inst/bin/db /bin +align -v /bin/grlogin /bin/test /bin/db echo "" echo "Finished installing application" diff --git a/bin/appinst.ucp b/bin/appinst.ucp index d875517b..99b88d04 100644 --- a/bin/appinst.ucp +++ b/bin/appinst.ucp @@ -1,4 +1,5 @@ root b: +mkdir /db cd /boot mkdir inst get appinst.sh @@ -11,6 +12,8 @@ bget banked\grlogin grlogin chmod 755 grlogin bget banked\test test chmod 755 test +bget banked\db db +chmod 755 db cd /boot/inst/wnd bget data\logn.scr logn.scr chmod 644 logn.scr @@ -26,4 +29,7 @@ bget data\0004.scr 0004.scr chmod 644 0004.scr bget data\kass.scr kass.scr chmod 644 kass.scr +cd /db +bget db/test.DAT test.DAT +bget db/test.TBL test.TBL exit diff --git a/bin/banked/db b/bin/banked/db new file mode 100644 index 0000000000000000000000000000000000000000..82dd65615f25b5d396e2734639c657df0fb539d4 GIT binary patch literal 21944 zcmdUX4RloHx$d5sBxC{vA{KYl+C2>7Krlp&Q__o35QZd#0Re-*5l{xA5JH%AP+`hX zpxAS7e@|WQUFY;#ZT)E@AZoC!r`M3iRiM+Ba~rju^=czd{0UKm1R-Qk?(=@%xA*J` zK|SlPyY9MSh1vW2|K6YHeZTkpCWoJNYcJiZX%}nSc5VCY-OYQNe{!sM>FnKYy*J;y zyKBP_88kcl7x7R+qcl3wIpvq$K$?jmoITOHnV?=2BB`XGcHPXRYd8M>W~K zcNN}FHKXuBwKt zaN<8Eeh$-FJhk=pmX#gu??`T*bIY0sdaHZa_1^X1 zt{uy}+WHRn9Pdy1aV0+hkKth+=~ZG43CQ$ ze$F#ICT8e44uW)c^!UbM4Igcr-&hph)YG-)qit(?=X4o)Jw@@N`ZYaI^)6}K+{Sxy z&Qt5J@%NOS?fJm#jr$`T+WL<3b}XV}Jr1((OFXtSk+ZX_?ckrjv-1y~JE*IVN9#!T z^IV%TbKg^#vF-5mS0=wQ=9R3&{ri3le*Vjva_y&!%C(=&?>pR|Ox(Y-r%OFNJma2+ zW-RA7u-FAI2haF)cj4FR=-@;;YT`GA-=T?g{h2`V(SoDnkACIo#l1^rk}-ZWJvwS; zr;+<0J(@E!p=a^uqRsTPQS(dMik{N{tuMKvu1&J;y6Xh*FhzO6(FsQ{y5Wyvm^mdU zz52)4e`4?U#-dG!`?t>6uw}-Y2WKqWJOeA0Tt9sDp@2ST0py74a}wX#ndscH_;!kp zqNbd37nToxx^BQ%vVIr$tL(#?}UcY0OuWiRHOXpP^_ik9%w7&kD>FVLy=|*(*rYQd!p(Wy3 zLo=;1yi~h&@my^#p1DFZmRD%Tq9t<;Euc*`YGzjlG-K&9Lz~gGsd2`At7d4$%jQ&T zjjOccxwDsPjYX@pNz*22jjJ~`t&3{0RoX4fw57LHmmAtuS8lp$x|XMDC9AX&tz@%S za+{`U)w|WdZ)@6kyjwrj-&X(jxHQ8m#OHOpYk;X1w zmbEHrEBgEUG08rP4N&YH#Re&6QZQvu{QyPInHVd6@W@;9<*PTIx+*Znex77})#ujA zl0`*HtNF3QTI})+@3ISfOr?xN>s4nlR%-f@73smI1~%J+1p@2r=c2$0`}yj?GW&U2 zpu&Eh5twB^PYIOR&szeM?dKZ;y8S%MvG8&ObRPr^6#;b^d+g2D$Z~HZuYG!8dddg{ zQh~taR8hc4T^+bQH7%g0W&|!yO$m%oZ3&D?-4Mu4l?Sp?vy3!dj6g1x4jLXRRU>;t z)R3amfkWFuRC=x*|1)LeREDd_8`S7*`zwO?9bkrFOtMQ5OfVKpXC@yEWRYKo{E25# zmSm|2bv2-jn+vf6e_4todpkOPZw!^4Ey&Rl?^d$hHN8pE|JWDv$0+t1#a^e_-ze5e z^?4K-9r8!kQh1O;rZ-N%&oxHvqt?G2d9>0|%T))@FG@`U39d56a|a`<+@-r9P=C`e zPX&z8qU<6n?bOGnrW#)H>Y?kMbIJ)*s%yoFz* z(Cgk9KPOI9_DsMA&893fn$0B(=bE)yW=(d&U1cV*>o+L+cS!`Z$!$hGX1&{l-hm+X zZ&2j#Ni=HP=x?ClYeN)#eMrt;>Ni}aRQlSX`U)z2y}iETKQ-?@Gv+p99;$znBLBg* zN~j(tk$O6{r`+Y+Q3Xt4V7O~598Dl@X6AWJLc!ppy9BaYdX=#_h9tVp&cTvfm* zw5bh2*L)r=>Du1RsP$r1-_{q5JX!f~Rr(T9x9j}66ASd9sC(r6x*t{Rmx{Xo=BOJh z$6T=x6Y3raCPY@sFx950W=JggpBk+tOZn^UFYqeS3vL2MvdvhI85?EBaw$0IVX&!( zKQQF?`{OCYu=R$;KACTHdgfg=L)j{j~A zHAM`SErz!3f`6wAS=!7P8QD48GVNW2Xi zP?LwS4HxEqtl3{yljL*H5qEu14is^y1)52@sz-#rX3K1YK$4+#gv)vcI1 zb>ZBp-o$ZWGUF|1D;x}=Vbb27-qt(kot|*Z$$wttoFP|J*eqL3oqG4Osf9gV0$tRK zhc)1d7S8SRx^gvdgJY$4)qXw9R{QlZ7$B<^7yjokF8Ka% zK@ONrxn|T0Ho46DTr=YRd}78^bB&9@irK~({J+e|VQ>tLV=kMuxn_+w@z`ShF6T&Y ztvCxf;M~@*>YUH5K5yH#gH&T;8nt2g!VFt*pJ4(E;h4g9nbp89VWl8OzR?=1pM!uG zJ#?6oiAOPla;#^?(T*IBHGAU|dU!C)>#p@sO;-9Xn`&~>Z=lc#yZH70mXjn2nbpJq^@li1LrNVjx)R zY*gr@;McwE8yeynd01sTeQ&YrmZ$7z!Nn2_-lFK+P^U8#JDX@;PE7+8J!e}{-k2*3 zTk(g$5~_WRYTiz0Rq_Gr?`P``JDg>kV%Hy=Rc|&X?0QI!s0AL{xs>YPqR878$=VWs zuS{IO9K+a}{Sn1JRuriJh$0^gB6KWiIoS%|o%*uN5PpS2JNv|Q1I z9raP^M~9wULZu(KKer@t-*Og_;rms@f=mC7KSI&tV8zJ$U&{N3w?g4}D0G}TVsGjR zAw}}+5q^t8Z+kp>8$5YyuzWt2d?AI{N4E$2Kci6Qd|!e>_3u#RI2dZ}Uyy96AlXuT zP2ZLqJVnudm;h>epQ0ZCfFOXX<|IWw6*V7Hv_~=xo98p9aKpuu-_Pe1LBRnEo%2%o z{f!j*0F3@$&B+aG*wPjJsTpG`Gbce7ewpRR`CEOL^HCsh2^UHy)gk1%`<~_KePA^> zPfe#O`kCUTn3CBdm?or7i1bfxZ8`aB4G@q7)3~;SjVgstQ3&zT_o?Os3~1Zc_bKv0 zDErWFajN`~B0WJDA23e1si7AWeL}H5OKCo#NS~Nt05hybb1r~J2tnsCfK^iaF4ZIp zc@J{7LI7_435xVm?T1v;Bk*5Ia>f`82jdYD*p8U!o*0#WVl-1}Uwikh6lT&=?P;p{ z3`_sY{h)kl{Lh%`Feel~Nuf{WjOcSZ#+uV-mS!0qvoxFKVe73d z5BOh@gd-_p;o_m2YTgqM15|TPJgB)()G;3fVqw${c64lO=P<1!upC+{%o8=eOVMP; z@rs9R>Za&>s#JI-^5k_`X|ja7KhBfZOi2SfTv)|VSE1B4j%n(gq0rehbq;5M_WKOl z3afc$DUBYb;!bcDq+oF72h1kG*?v=+!tieE5ai|*#rhT3>Q7OmU&zh1x3!!M-$tSU zY630cphD>>qmxSe^}pVZgA24!>KaQWL@}rV;HZfeF%4-a7}9!uqbwDYpwHnUIjvxP zdfI0&ZP^_{T~1J_S7MynOa{iWAYT~cKA~uz3_RGImv&YtrNH@5DAWi0yzvYL&%!~> zG9%dtMjd+gc6H3}tu(_~W+>ZR6x4iPEMIhpr#c*5f#Snj)Vm?cqbVRG0P% zccdy0O}GP-c|+OR#wDtqq-9dhGC?or#b71zRF<*9Dy)zbqOj7i2k?zF0H(Y7TM$Xu zGyQ7EP?P0QaH@<-R09bei#)c;-{=?Sj}=`YuVj-lX7E5tPaXR4ZQykKk8i_KPvJ%! zYP%RPnJmsq7Uy~)=81iG_Vx9FU0y~IKc-<=;_-oL+@Mn&5!}E^MiZ=7={CG6j`FoH zxRXy9$>N+OvNP!cbL4;=2K=%Eied6FXd2|?>J(HC`GW|;@M!y51JeZL3NTDVuEZ_1 zP6fI8pClY}T~Y6xEu;R&qS+nEbno<%9s9K)P@%WlvIDw!4jZ~a6ah^jgbdmVha9Dk zHCab_%X>QoAV}2REj=`$!h8%>Gr#4Fm;wuEc*` zZrm*$l-NjQPCUcX^+khQ5(TqaluXJ#RC=1DrJu1J&%2A|82^hEfvyj&f<{?>ySUPLQD$3+pmmkyN8dx7v&I{@CFOY>d;I)iEA9iaUQ zAbA?uKV)R@!2-G|29w0_NcG(mc~1yNV{OaHu?`b*t*gbL#NtmfrdxC0u)qKMC z^XfaWdi|9zOW30r_Kz!szJ5rd9=4EDW|VnkuM_Osx%c&MHa3SVhv$Eyn@|BtUmeMPoO0exHv+Y&MQh>Rncm@*i!Ml@V z2N2=BD#ioq!T~*N!y0`d@_eaHR#g4$EqWkTXT9xRu3wtE&w4v}r#>dtWaN|J=<|0g zSP^f>g-e_4!YQBU>PMOnL0?Q*mc*38-RtRMV+;e$#@j2Lwk(QfOC2%mbIiynp|6ux zwG5Q4qM#eu3eOPIn4nA+LdJTzY~(kaa?I!`OfHVCmKRW^ybTv(~dB_+E!qokID$@msXW*$oB8L_p(IARwJMrT#% zN4a{8kJ3rEqXnE9IA8cLljlSV3n!d`Cl@y_kmzau%f0a7{&MfC$FJn=VJ-)*L!xChFuCK5Cua(RMTs=VqjcI^H zF3gSKy^{6vth zl&@mN0JGwpa}6?D{Q0|AIE3^n`v}s5!WxwSsxJc8RDAvjk_{RC4bDJrS<6nFK30*i zNB30JtpNEt6Yp%t{f8-msnd$Cp7CF1-B5n#-L+d*ufBWr!qvCi|5mQPW%aH2cgyOP zt1D5ra&@swzqHt`Pb~K67Zqpe`Ni3KUU80|Q+%WDF4p=Wq#QOZ2#X*abs-TI)Syfi z6sx3I6~z|FEC9kC)l8{{v{9qjWQtu$u_+Y03bKy)I_K0K^zHN=fa`}*I7avI0b_E$ z>z?I_7wV{KFGcscpftg2gb%QnLi=z~!v!xke``_GxD@i32`LdKcjR!Rk zZ9Gj4pXqPrdkQqo9ubm+-Ulf5yfjP9a+S#CbbJ8^IHqVMEX&q|#ubiMNWF%{6jA{i z+Hb2XcRg#=W;Tf$0B6L zI%GDu+ZWd*UaouR#x*S`f3qgvlXwmzRhiKRa%h=bbya9y1NkwRSzBe+EC3Cq&RMgG z{A-0KVk|r>qD}`8b$XuDwp{1uV-o|DgUCq0%gXkJb>%nG-c!`tZ%k7gnjkjB%it*z z{gqgy*h!Vx$pT(z>m=X zU7!=hNtpNtR^t$8*19dNTZq%R9WFWStZ)>|90TUKoN6nmrV^c1EUb!Z7FciXZ-^9! z4dI*~yfo!Glw5DtR+yrf^ihTWN$EykQRbLguFcmRI$9UGKf%jclWWyam9 zBI9aVoIjaeRzJ|VvqScC!6#Hjbt_>rz*u=w=&V?HZw~W*~arXw)m8{iQo<}2#0Ev4=lX>ja4I^V_ zlbMtB%hEKn`6Z{AnT^Acel4`Ec%(Ls8}x}Im4ADK*)-XVUTJQeVm4eQ7r^8?^vL=& z?d%s%E zGKU`AA9xTb0|bMcAssShE1j|{=x|wm%gOue;k&79t3X~6&4bGsxgWNPlldcN8eu=V zPF;Be4n7VX)c+NihvP8r@f5WV8S~9JU*wv`q_QXR*n|=fZC+fr^17}-GVPU-crLSR?duV<5Z$dl&NuF zs-VXEw`FXSrg@!io3YV_{MvB(M~IigA+ zPFaKNwPyZgFJ0wTkNl;<_xEN#_+2Y5X%vjzh36BESfXs{^8JC&4p4wHabuqQZd!>F z>964Jr@SASr3d#PX=}iSxhXb;nzy-~dDIg(>eyaz1xpu@0sg9xqk9`#PW}LKL{}NM z(k6|Uq>m``z3o_9pU6%p9VPk?Fr@y&TKxw#`u8!L{(VuRX8#%||KyP3)ZYG=4ZeC; znYaNbj)jS)9cP9h;VFtSzhB}6lDZJ9t5fHAisw=5XxyZXkD=DFhPc|brx7V$3Xh@C zSg&xuMDBZQ_cp%1JBDh;VlY8LiVt*;-$3zm-JUh&k7=r|a*sD6MzEut4Aw0+S?&y}l zL z91Ovm$-_-i#1--=I@-VWg}}A=b_qqY{nW&PiXs3QR?TZg3CA9a_-4?9FBv(w_?a@? zx?6vl!b9v9rKV`unVi5D2Pp=|=7N4s>a;mHgsVfG}??8CM7mP0J78UWwDALY#gEaS}Kt zrD*2QDLzO~nzIb=wE4Tsvmo5xgSb=cxxi(P#ap}w-@v<}A^mu1iPypTYvtITeVZq@hHdmGY)p-_gwh%{kMJ5W((&7-uJvz%|u}0ZkA; z2^SIvf-dzdVV*@|><%euIGg(>Yf0d0eV7S{A1N`goI=c$Im35ISn!4kry&P~D6&pL zIE6mpm8oCUp#NEpAt%K4#05J3gzP;gE`%Um#*m{VVu*J$7_(O3thx!`G3w5mUw+dw z`wykQN%4GY9TymlFTU*MCloOu?I|umJ?Cb&{^IA4%>wR0wyR>+I7SG{oKLZFe7_$O z#_RHU>Q>l%WG4Vz?0HC}zHo1V%`UujNeKArupWt1+vWOrp~8Uxyl^`V$k-~$n3%hx z1h6251LLzM2!#?yW6YtlYv)gadtI61%$%VtvEUE7X0E)8qh~yiNN>QfR1eeKU(5WLpMMvkf8+HMr+Al2HZ<92#1(Uff4X5P9g)A?2C%(;-;SLCC z;k^qnmuQeNa;8;Hqcp?0jfImeBPk?K+70&AfYfKOTKd^pAhp1JVee=DE8E*A&pMF$ zpXlh>c;I~d>yB}3CEX3SF- zc$cr^X2wsscL{hSs#K@1P{8d!SST58``T-F0**VeLI(^>2pnK9j_>v2gTFb15BBMl z?{>Z5C$GR8?;eM5advCVg=Lf9{X{LwKV?WAiru~#OElS+kxWL`A7LeStAN&HC_1*N z7RU1}t!QOqtnuONAD;4X^~3i*EJiy$UW$r-gM2lVEmQ^iR!HB zyJ1+nOBPYw?AGQ#xL>-Qw{I;U|IB`<^W<^^pW~p^Wwrui4Dsr=#*iB~u5jrZ>pgbF zsRT)LfP(NsZ{Mo?6Thz&-xyQAg1|qf?@wjI0E}XPijHQ-1H~}((&bPf1#ed!Y2=++ zF~+3%yRn*f9-cktLu0o}Y?rQ@3sBX&;L~OpT8W*LK5b63Czy+9<=CV=m4Iwh9ZevPUYXL$)o@`GZ!SE@rutNIFGCD(`vc{!<~6bd3&-g! z#Y&;SmIsmU0VLpj8UNO;;GiIzYPnu&70y$u8Dq4TTNBNs;KC^q6t|#&(*Nb0G)lOU<^Sfg{~K`Ye;vX5eP@W} zh%;I0s`Qn7ReCGT-bEDe?$&_T?{$B&rrc576^D`E=eND!cl&v3Lc ziyE@+F%T4Y>tQ*Evx&=R1_{h#rtPYJyQ}9SYne$G}mQ)ew4_+MLQO$peJGS^_hL#12AU zyT`M|5@%nF1{6v)(Dg(5Z)GuXQE)*5fH(-xrlX_dfr&U;t(0&hPeu}GA=XGPbtnf_ z9*&dcd9;^78Q(hKBLQxqRhPZrF= zw=%;f=tK46DN?`(SHu+gQ4Ogo*-=-OCPh-zluyxd(%GPD%IwR(+Gb&8rUD+1%hqR?zisss|~r_dOLOXa{|GtUCC6oUk=6K$au zdE5kFoY5~jZ=2}K>qA#2h(2M2@st&)9hk@Ry4gW|HZ;42rt zzYcLciaj88tvvoKYW+20arKW=K8in1txrJm;|K7)${eh-ME{P}q=ll- zT2t$4Xm<4QXHN{DADRB*+g9Cs-`cu$8yYq>ZGNy~d+3qSn2NhXOG0nV>z#KTzlY~n zgkqt@yhZcwm{&h<&AeaFzhmBw^W-AIS$3k@w^mT_7cL6^Qfsf9E31G9&+|+01s6Vi zYq5z}*^T?N7Q-I^DJqhd>T!xbK_l&InsWmPyIpEcK;g$J^n?Wnygf0?uQ2!u9feT(8>;y&mhKZK8ji1&(1Y($ z@TF#`@e4Ha<=bPavBE;FRj5Up_Krs7Z)c=y9rlks_^ddH6$IJ!yS`|55?JLPihh zlP)}jq!X(>)L%du?C#SPc?KUX6nPdO2k`qmet$ucUxMDe3uRa4&FKO1;IG+0h52tq zNEJqS)~(O6d|y`dS_kr#?q`g6PHIrxLcx)M$=ZMWXEzI{TsWd}f;$e#Z%xH61Za$^ zV!VksSS$Zk91h@kO4o2dMV@2RHkQLMna&-~sVY0fFV7dvY zE6B608CHN15GrG`z+s0M#HR(zd62{6Qq<8|N59Iys@^_8;8a_HG-fr@n0tKHdnSeV zz)iP&yL67mx(^~s!h9bDp4ySd1+tt=r{Xjr?ujI=lK@&6_d7fGE?B&W3%}wll=($5 zsc;!Z_C_32_|>vZ(w*e90?(mluqMI@qx~;c>804TeY2!`gi>77P^Y2H;aEQP8c9Zb zHx6p_-nn=WJXeqohaSh=BTSJ*BfjM#tDGkwSu*^aar#xv5R0zHq5=(a?Yly9p50$& zvxq)Cv0aW3)cir$$b)gBQN$Gllf^+-kWZZ$6)Dra1?`}X(<*m=W5MnhUkF^ps4qMn zyrYz*PrPD90~}P6+N(4T=hsU{QXD(7q!L175NqWK2cqE*gw=R2ks9 z@!*nY*0)v!egT#Qsx7ppM{+jBw&%M;F~@>W--I$m;!y-vi|o!hmGb}r`L8RD&RfKG zowG~0=p~M3!(&Ioa!x?;tPCs#ioYqBVWH}@8+WN=Ddc(5jhxHWv}+gao>aM;j-HDf zOI`eRRdEk)?{?pkJ)AnkUqn+1*pMpVuedUh;dJP`bx$F~onSOeiNGdSI>B5ukN%X@ zI?Q}@i;?fj+lD6@ADB5ByO$i-mqJJ1Sfo}G=Rb@^tyzI@U^%^a-nffr!(#9ieaS80 zlE2YWhn2|lFe)&-A3MXo=~)vE0%yDBH1y-7Xf6l0|;`(5)pdjuo1h}R$6!Fg@=)6 z9wicWD=6gVZ<|Xu0dY!|tYAydL^DS5ye|3S4qS5H>V#~5gBy7Qy6|+wTAZGaElnhI&qtb0v?oU^WNTzVaIFtvwCA0UEj54AyFjT++K1Lm(z)NQ4ORbafzY_e_ zu2>$$aC~QM%;cGy{dbQJo^f3q*E|vNR)yhr`ht zlqY>!)~|Oonj;$Fz&X4T`sHCa_=^;3IyD)}@^GXZ&Cv+QAD|0!5MPd4oA|*}Nji3x zIjM@j1C~cMqh%nms#%t>7|9YOx2-K5RF{bg=S^=N8dL`lW!|+Xb1l5ph)!=>%LC~uwyAwy!S31Ei$N6wz?9e|PO5bZfnoBn){?k&+pf$VTefC#nd&H;E2_R@Wqy%4J1dLyYfTYs;qJ{3Y^mS6 zjf`k3NkvHVhOE1}EH3LoF6&N?<9a&OpMxA11Mh)9JqOjFPM$LdCgJ&byYln1b`6(2 zVV;Mv-yi%QgtF~ZSa1vL7Ls-?QFU1heg|vu(OTVaKq1~ zz1|^;KCQNw|5017_e1;0NLc{_gJx|$_~l~&fT7p>9xRSf>*ywGl{sadzhPa_a2{Vq zxUH;!ZS@C|e_LUiM+Kn00-Kedk- zcrJ$%-dqV5YIvs2d&O?}78jfWkzw)6MyUp$VSC_NR)GAhf4u`u3nn}3mBph)@a!E> zxK1bxFzrn!?C+80wkW_a>;xcC;;0`v9}=3#?Nf{%5Ed04#OeLJeMC`q0B(014@94n zmKM^6F=`K?4SpctOHa3zNvjGcZI;#*f+*MR-#2l;v>UJl_ZJABFixr{G)X@wM1gL) zzvagL((8qcevoyks!)_3E(8q!cM}fUZ;nCI6s1p=Us{VO9=!>QL*I--Dk{28hvQ=O z%0B8Fpo4hIJ3%$@)&m;zer_M3gYsaH6g5}1Yjz~xA-9I7drAt+q=TqfsSh+0T_j3X zMZnhMMXGLl2fWLQVJz(Dd^>zT@0#Ml!9jM=JjYd60Id|1fZxyEi7%TAPnH!7!QdoX z$piyh4pz{@kxEE<>p!9m+s9Pnr%S{FiHp(d0qrSK$(yszsd zjI;N^u&m%D6IJ#ZqB!r|QlitBnHlL0om=cyxaiQCV`N_sh71MoE`4$cA|Q|Jm(KWh z>A}){@b6&hgYeVJejY3(f7P$cf4US%pqs2|;X^seTZ#kby4e#}G@SG~ThX#XXA8#x zI~HUo?e!N9PF>6MkCKlg=0^OeOzJ60LeJk=OkyIBi0_nB_hs6B#bTf}m#OoL_gpz` zx=b6d7(bKU2Dv--)ZfT^kw2gJc)46>piQH)E0#9Oa$O2-8k1e~XrtfzK{>4(qb|QF zdOsjPj#`nEP|cJ)u_~EAC=2}Q+JsSvfC_o3l^PRW0swQ7p8sv@SE0M zrmidUAV{smllz*K;FIVe8>17#&XpTSq#ojqUO#15J4mwWKJrQQ%1{M=TFf$av^{2a z?5+yXo?I6vyQcZ%LE~B2_T!lJxX=@oS(Vb7FV@_$rfALR>PJ_*R+G)K)5zaqq9fm} z98@+KKaoz5O|jESq9HmOW@(+Cx~BTTlD%iht%hv=1i8;}%k(!Zr4yB4L8V|>dBRN2 z`vy#q-x_A~=gIqqR83Ve35i`9f36&2A#CPBM%itW>*8gXQF;vsEEdlMNxlQP1OrDM z8fw>~^_ZiCaHhAHVy%2AIUk#>iL4;8ar5*#xNSuD_Dxa^SsG^!JyHfbBK{fip^AOg z%`(l(tfGB-`>AepWf?eY6b6-knvXEI!d=;5cs;`ZTREQ#gVADj&F)4R1mn zgkl{;8+cU?fqA+DrYM^cbOgf$QbwkO z_&gh{yyaDhVFKtU6F{|E1dfXX3=_!1?L~e4Ft@%8umbZC-R8E?nkedwhS~5E(1c=A z-@qsaryAJcL7@XMcF}du$w}-1h$EcZA!AadfcOU92Rc-uVj%2o#c(+(LE77`{I*r$wfxPb>}nD z%6c)MQ_SRJConK5&8q^1f%eI!r0E-Orgc51b6?UnQ+t%$5F=aTEwa_LY%*w$6v8mW z%zRdLr<)0iB1TOXk$h>IvGh1d1e`O8?f{9Z|5b@{X3po&kZ;W_W4~vUGc(Pe$@mq+ z1r_%FF{r?w0=ac6xtkiX;D-ctnlHoR6F&7*M+CJ;V$6BRPiyqlIhEbF>+fW4F#`7u zTsFL!)AVMa}=V&AV~~KnP<&RB!$}sHOla1=A}kCh#m;Ge(_$u-)g#?-Eiq z7AHBEkZOB#r#TYSi0R(`4e3_S80r0R19&LBQM(>X0Sxb6Ja{}}#d841n>$I-EMeTd z1=YN@H5gnWyYzluIfz3r*mQVnt|Cv)%JL|2xliw&Xyj%LreOJ@@BnLP@l#n3IMwz| zHjHE@P$Puf$_+Q3?sRXd&~Si*z6o`FMeTowt1clS;Uukje+Gw6 zit}Gms6XKftoaknO@M_t$mcKn;exKyP?r|Yf-!fQF?U52#T@=w$jtQhwLYE?MTb{1 zR1$wGz?={=tq%;G4i7J8iP8D9{UCopD>5u$<&WC6uvw0Vp+`^WVFrV$q5)wP!9 zDJ6sVXiHW|4sYa-or^woWZO6(q_+2f!l(oK0Dj#KdW!)>140ah{4hlx^64Cb?YoGCrnY0vl}Pj01-u@QfRQu^}TEl_Cjpe6iaS2{BZif%<{nA3+{{ zW#q%T^OCOKt?0VC0*bm`OqkVLmbnI*m15GYt0lLjEDBjyn-xcLQ{tuxst2ltCv#8o z!xXdU^$tjwdj|{&;JJ4vzus}IS!`D7j1C-w$x|H;=JFz2gA=5!Gp#=Vfg|qXOAxjR{x}ImSJ__`05O`xHRnN z2G$Lf<^fIBNz|5{3g8r7_Zsw^$;v|mZQ@)!=P?D{LtQ|(u~_)!&po74g~hY zX@g8(!Ol+XyjK7a(dN0Xixh~i z{4-tV+WJ~swMqR*k#J z(zL=nPN;6i{Y`(Njh|D;C)7Tu)o$MeXGv@RLYZ^;=+shA)uw-`%4uKY~xl_@L+-06X;wQ#ci`B|Cdr_-d6d^^!*?gFTEYO4)KH(cp`A8q zXrq?8HMCo6$q1s{bRXLn00iq$+bhg;*dF64G=zqFIB>RRf!@ox{ips|2aK!0;QIP{ zt-co0JtYqB>pJy^I+}e^}E~PwE%ksR1!hE=UkRLTiA0jy0-L z5zzY#DneNzPv<3g1_TpmhZkAX73E6Ir{NHeI5PU$d65`i?!swBsZ<(*}Lc-|Qvs z%mtpJ2WZ^|>bfY3sc4t1eF{BA$bW!z1ZY2**@YCdQ-MqM4VND8pf#h^DFgfx4{Arb zU#a5~wSTP}V$C5H5vC%5C?>e!K4jnc1g*P7U0*}LB`qrgm|5Z>%d)bSL48)*txtmB zmWbi?Poi0|EwpZwy5!_1+ttDG4k>acb?a&O)Kf4BWKdwN?`18S9~1>`D7OSUmmRTb_7RUOT~T~XEN*=1-zOBbGA(}^KtL~3aTH+txK3_}{3 zTD6eD;O*~qHX5|;@Oyau%N@Y{(tQA}xWN#vh2fgwgK5V*(EUvN$mT^Ui2cx_B#pC) zJhdnr-#%QF8d9<=ZGh+&cjXRrqB}6x9Y0YKqE-mChX(yhISm9uI|baQG2X!Q)@Cxc zc!6eCGg+|2iVo_xCFkKcuQL0@6ezZwuj($ zxXmYT|9)=aW@Y=|sB4&QKTlm>+_0T48Ix=eA`gmNQR|onLd00)yQ91D8E&@R$lxqs z5QyJHYkY3up``E&_I)xtcRGx^I@>ZT@)<9>_YYp(JvmZWn zb_)HS$^YA#JV0XeQ#HavWO;rjKS1uwH^J|N`L}D_dq{3Uoc2#2KZH**lAjR=Xqcmk z;_&)`PWaFX_P4NLPW(V;KfKVotJHN3D@Mf|0a?M!X|RXo<htj&$hE9MfwVwHrT-jT?b%b z=o2z08oF|g^zF4E3Tz(>9yokV?9~EI$%T}!F|3^fxZZu$4Lps~W?88$72SX`-hJ7P zW~0=2I`^3VM5|jk4a#B#6kN`y(e7DFpzwwY+{lapdTO}J3o}=vqbX_h?&mO$s+_#A zlMLBYH1LQkyxo4f(*%|=iuIH%o!%!M-N)y)EBMPW1c0CTlvftt_|u)Nzt74QUf5=5 zu6LR|R`>`p+`hXK!pBvA+Vkz{ibCKzPktWb1II0Vtt0uB4%&CkZLZ{@mS*fg?Jmqa zWJ3S252;q(FlN9~8!KO2P9rTv3v!=t@7rsR;`RFhch3Ib)DGt@of^DijFliSw?d`B zQU=-`Vp#@chSxve&WMmNil%2MdA_5>FP8?Og$Kk+6)}b0Ayc z1qXJ$)utuDpV37<7@O;UAJ7(H+ zfi_+QvtF;>$&{E^Me@}oW0hFl!>%3pe+=xpPEU7_MVj@27b_=u^8Z7^RAqY6~CPFgL3qo$Z4zT(#iCA8txx-FsmRmKiwvtDdFVQ3)Al~JICiVdNa``OH z+pQ!jXNKlXD@n;YBk)3h0UDQ@ilWPbHm^Y_QEzzi>5^Y+Ru+*%*2glF@T)0xUmeq% zjX6AhHkNkBna95;uoP2jDx`JSsB2VeAr-gWCRUay-^kr#b5DeoUl)H_ym-~w;x~&G ztPmSQXk(}pRz|JA;;Hq&IO!`mP5dZtrwuRQi?xe~2f4a*V=}%y4N$*kP}ZX`d;*6c z@lo3R1cL3h702?zQ}_W9ti0((+So1qb`^Qg_Up7gt0zoS>q`~Xdb}MvmR+Z^SD{?b z((Ys64Az%clc$ymX?NhVab8Z$gcT>7i_3||xueH!!@TXKYI0$jkjx?^b-YOJ-9iG( zCwM_XzaMAfmRq|uZ`sKgx6aojRglEnQe&9L>EaL!xuMejBI3NwqJhue`)_Mmd)>)m zkzrITEhdK&qy`|MvS{4TKB_2OuuBZrF@b|r0si^n(~D*XCv=hhj#&_ve#(Bo?6C4J zWCVV95li`NS-B47YYe7ySTER=?=^d-{JcEZ`^Euf20x)FGo55cMRtT*&;TRV4dhhu z?0J(4vjwXmKRIWvr*8i_ZEcSEnJ%SZTd!ic7uQ1zTJ2E}VbcBHS`o?hO6#?w{F z+j$#r84yDExHj*(iBptLPuGc0x{cks?y=qDp4Q*&dga!ta2PG5G;U3Op^GeGSI2ht z`loYEu8t;Bp&B!}qKV$6{hpo~GrGF#jp`$>lw>nM%g<)Jw|{c;2w9cQ{Jh+AjU~%f ziBT0z{bz(@P4Z}Ro*hZ{s>;cxAT0@2#p%Cn$_O6dlXbAhK#%8dT>-0!(rN>$z2v2! zq)~O%Ytl2|U)l>l*vh1@dG5vZ4L?{zx`T9~8TFGgrq_p)>p^7^Ohy%x!DQ4k8B0k{ zFki}av?xC>F-$Bo{IBCB<)@Wp^ux`}8_n|1fo2tB2xw=a?DeXToe2(O8(JIhc)1Y9 zJis;XWmU}J(Uj9IJns$)>ST}a?aXGm_i{i-9*;G*e+$2vV;Hj={~T$M6j~b} zc#-G;*R+=n1|F$JMK=#oOEBH+<$@V^YN~6V#p=qj3{Q7iEeg$m=`TGty&-V^PjJ4= zV&PrCupkRhr17K2Xgp5huRx*zet&5JB7c7ZBl~?s8lJcjnGvL-&*xo5Naa^gphA39 zz6X)@`A^)>>H+Sx|1Xte`HEyaMK^W#(tgn3JX99c&J1fn)+#w2Hj;gv^oFH2po$*e znZ(pExnAMT0wBZfX51UxZsCK1{{H@+GhhKM!z?R>RW_gy*xk%htQ@v*xRxnNH*q0bCqWQlgSLjMKXiMr(4t(-mz|A z$M21!pRd9qwW+8jXfVeZLWb0_rtCstpwO61D^=7U1iZ6_xZ!Yls@vZT!)_I#!+}o# zRgxcWc=}8utq!J+5jx!S21^%AwC0M{VWLBQa4-j}yV|J<*1e7lcXeXQs{gMKY>K!PI-!AO9lM9dmJRCKrK8~D9jbOnBHNIzGKNPWce z1!Ie031CfF)X0utTyu-Dz%anqTSdb?D#leI^#nS z24WIJmX>Het|Sr}TM=5<49$n0C)KfeBV_s?#AYd_+p!bkzAgb7iPiChUNm#jvx^Qb{KLZPh3bWUrNp7(qs(Rf@?h;(u1xY%&BPdJq1EBk5#a_y z7v_>K%``TX+}Aucs~awC(||6MZJ{>h5hIz)7Y0xJ)w130q5(c#rFjBpAOMpkqnL&Cd@%6IyH!-4V%sSDOSSFgrLV4U2(KLRE zXqv#d#ysOESzj!(A-a1-p9KT$*GtKq(dHDLy&p90Fouh^*bt^uNV4~Htcu!#sbvHh zhCV{Ec_Ew}7;S5Kc>9m&$5;mJCI`TyaNQmqsdhg;NjO?~MgYNAhKY8y;IT)C<0yk@ z=hv?m4niMF6{}i3C>_Z}No3Lh9KdG$Ll7){f|pb`0MV3yn2nCABaI2#5i-bb*6DQr zSWMBl&y|B8n%#n}tRD-)U&_h(gf#HdSG9&!_4!&2wS`fOnpTET$)>NNjp0a)yf6%= zlD#ajLo--1?Z?9sJy3=y$uAxu0jDMyf}+VF&?IqcN6-4PXwrhZbf`uzsL`&d@eZi5 zTu~!Tdt7nJ|Lk8Q1=d)utnoxQ;k*zQk94OQ-Q3^3!oO5_JRUg9;2>l5 zjM}XMnDU0ASGjyRX<)rwvSCV&)cex!iZ&*@brpQ6Qhk13RZx(LycO(@j8H~h=3M=aOKCJ zd0WZnW4U2fbBd~8TPdM=YN}8QCJ(?4#+nMX&&tW1aT$0#Rgcp)faQ+>Uy`hyR_dwb zY5w3U023idqSawk3V;-UTff?j*sEhh5qZ%lz!!V~i)IyJF`7hZmkGl%5W3zf6y5!R zF>n#eh%l4?9ycCQQvy-0fHB{N6FPi6KU+A2dO_er?S8>_?UnJ`AmO!X41iza3fX!R zE`Y`>P~#wW@Eo#GH)dEIQ)F=%Ipojp{!emh#d?SB3e17pqPI{>48K`4g|nh50-QGC zE-be)z=5IsxDjInrhup)lV2}I>_D7vZT!>=hoh+vFL3UFs~@es7(;7%sp)zuHF+3n z`gRQ2J|VNAgxV+q^=nnV)b<&zyiV;N;Z3ak7p?r3+P{OVcQ38{Ybmu|rxp*?K&V6I z2&u9dsk3j$st*S6xJ6AjSgbDA=YC(R4S{6)mIaViXytx?T7jevtbCl*Gx~f8nayk* zIHPaBN#Ae7tI0WiRmQ<8#5CAonSKjW!lVBpwfBNVzQmK8o9v6T+z@jJ`^mH1#Al`8 zu|@5RRh0-9%^O0Qo78a&LwArIbA-0vI6J$FI=`UpUmDkgK(C3Wi4me{5~GO#YE@$G zWU(em3XsoB0dkM&AaAN7m$~gMtYug+QFy7!lRfgiwzHwD{G3TQaKEK|T|)W|2@PM{ z;f|4+2Z$lvH4r&$pZoQln3#wck1J?NzQ9jTFC5&in2bZpd09nG&tNN^1tu zCrv>h4N!Bvx7k#9Y>!dyC+W1{@ZeCdvFj0?9UV{#gFnnGJtU<|r zN6*fEZnz!d@^zPE*2>YZI@yhPpNi8hn6B#ArKZBCmy3l%B}8VE%%8+&Eov+( z*K;f?S7K*(}#P(r!ec_*6e0_m-iOuz?zC%C>c9tfSq^zP!rDROf1}b1KSdq z2A$s_ln(ShHo!TgBn(h~fcJ>bUf+B$8BiXyx8QXHzU3I7N`s|*ihOg#(TbhH5Xtm? z!UZLFe7vrKgIpo+PYD81#3J^+Hhmu$YkntpX|Ee*hF1e|j|Z@B$e3Kx89>&@kHj|I zNiYJ2J19VgHksPI|7_?e91FoZoP*Rd1Sv(=#C5I-WLL^K-51mpwHFU*(^NJc03wpw zqkxt9&y!;*lU1EHkeo_Qjxg6kKjw$7 z){t*f^C6kT%p+M-CQPWq{M@cKy$<>$ZLt^ueMRm4(D3i;Nd1&?%m3hjF;H#8FB=QK zeu+1&2Z+&JNB%Hg#jgs%98`2nPc@<26dMM6SkY_6PJDLpZP3b#i0M%4S-tqBTL(siN&c#x(zt zq>%9qBUdSuMlv>SnyP0bDM>40Pm!Oe?Ngbn$>j8< zs-)-1?({_bypgVZDqtT{1`UkM4A!BBG!sCePmdDY3+r&pa-2^7n9eV=V>S=Mp>}oSca!t+7TWlTgyv5W-Ga5%Vmk{0}EdO@;pM<8)ILcRmnCM9#LND)ba6w_wRm8H04h7~R8 z^o+kOQC>BU?g3BP@q2w3HK~TEDF}{4>4^Gtt0uTv_;l-F#i7l$W`X5bo5Rh! zelrJEa~M@4#f==Z+nw@WGcv9`AsM7m`nZ%+EpBcU^!PCyUwL{{oxF57{n64Q zEO!o9*9O5Jl{cb$UI>NmLwZr!E$O$sr7EZ+E%`rFoh~H$f^o5uce(0cq}BJSC=_xv#asiX?zD8;~kwHx#G{bq>b~bYd?(287{fIssI;N3#in)|b?A9h_#|HG6 zq_+6%7;Jmz$Q-oV6K3Km<_w)RK%Lr-Q%gIS$e33y2F;of@P?Vle5PI1Q%kNsGX*6+ z#+ockoMr}NL^#6LR7c9JMimHjm$fkh4#Hg$!yXU$G`Cdss*~vROsc{rvNUg|>Z?6u ze;%hlzejd$p2q}qn>IsMi=4?2K4>K8^G2%%8p+prebE5~!B)vDb2pJU=dOm|No3hm z;WT%XH&QX0G`X2i4pLA zP1euKXJ?W3XX*6Y_6XbH>05xIaCW+Zy+?*#nUz0p)}BtdR9&Tx!87UsT78W=zBw~k z1aDw4*EgNc9CCd%57(1no0^7HxTUBIZ{?6J=ERUtT;?_MsyUUVB`Q52GQ=0H_btcJ)O|- zKAu6Tv^&VDj~Og}9}XV05#gQ2SwXHf`Eo6Ju=q%`^bqL!*L)=ihSvsV3@FFV%?SiX z`C#ncX+#qE`iVw>R~h9T%tYV^UxyPr@~)KB0$LZ=uUv^HP@2p?1TwWX1UF{RrzwT?I@nb(kfDvk()hP1;NIK?75b{Rvp;H z1N2+b<+Q+4IBRQ`iAg|!$ADaw4nnrCReH`)4#&5g$T8PPJlQ`jgFxt>H|1C}Kq21L zAbv0$!()PBrvItM@KFoxzVFnRL0V5{1@c6k@nyW0!hiEnta$T~2Jg4%RM?$L%H~a- zf2_HCr#_ku-wm|0cmHdB09w-cmy^EI|Jnk^?1@@(V_ecp;85$)^fPU1T^dC(y`VE8V zH-CQVNF}Vq>G;$P^Lwg^v2;SxLow{RB5>Br`c2g7y&SYQTmN309NV5NBGsk(m`BEv zH%bc-O#e|@M0PB+sQvgyelb6ZJx)HJU(S9@#^#JkDQwb4Dwrg_W6I&_4S4Zp-R$z0 z{cez%M^@)(qZZrPa7MHIWyxAdbB=*sPW~;2$ADSL89#D_^~v+5J~R)c1?du6a}ylq zL+P?3y}a%WJ+P{*7gi;?3o;ta@}x>%gG{N*9uI0`>{V>EukjiLBaL!frC81h`p zsp;m+a1`PLA{)9}Mh;o?7ra(Es1&-J7$%fCZmqIzwANc&tUs|Hu)b@R!&SrbecA%0 zxMH97X-d9ZU`VLiryZ>{uGy!BXC{n*4GuCTS05)ii*FkeAEYu@w_%1A?ce97_(Tn& z`qqX9VpzRTjwz3{gFjy^4jicXvof&qk%7ziDaHjS2nI)r$&hT@=-J1cb(OQ?4FwRy!{T`#KLj(nM?fLrnE=Kdj$!~sEH*XhrHGiILW=TGw8lDUd`DCeL`}pBDKmZC zcDLW{bnZ;Ywqw6O)OL!r9eev#^I@yZ`K+Dh-sxkvrME|&OBqW$?VxzzuD#Dm2(|rY zI_8t?$J%SJwf0*7UVEkMVYd5WcGmf0DyF-fVUii9ooToE9_V`DmzM^sZN4*ui^_fd zSxbFf^sZt?7-=8iR=zyzzapk=*tmE0_J$1w%xtAKhbgbGS-hy+G^d~djYSwH(TSg} z-`%it!$wr7ehit^$?DlH?hWW|_3hSLpYpknVYJNnzuNnhPZ!IW#)p}Co${yXmD?ke z+4^hkTog07Y`IS(4&-Qf-oe}Yckzw>r`v_L!^2}RX&vBB9${6?;7hs7eLOElMD((O zBfWy#J~UKWMu<6vv5N3Vqy)gBS8&% zQ!xSEr$+*m>p=e=es_pzzM6{Xr{{nsq_8Gsv1zOjc)GTgi+@ZB4br95sA3Mm}7UpnJ| zuHC7j)Gq@o^nX#)y`T`WVTg~=VIPw1cXNzrF~FTV!oo%``7hXU<0!VNapM>;74!0} zmHtoc6Bhfww1f2DTmO3adVgGb*!nUqA&T*TZa4U+l@qc2U!v!u({tplWK#d~a=KMW zO8*r*@6Rp=;?3pgt7wDw`_%qN%R#gdy_5I<#SYXt<+qB~d#h+zmr^OqjGq@KhJp1V*@{BO+pRgznWn{P_4MBF4v?rhvVD!FFhrZHhh z6?Tte*BH-36Qw7VWyA&zNyi~nDLhP~=HHi)V{NRG`r`JQbdtv;^>Aj5Ic2$FmG#?!~7)rC?PYtwMst(TAZ^)SLi?U*VNGA|I{UDVHmq(u`5nwBN$<84LYqWP{I75&XT&i1}MR8mVrB!a_Njv zPX>@R(Wp99gX$B_>=kr4(WY;$0(gP-EGQ~@43axda_Rk5WRpUEYiQqhVKJv;utSAy z5yXW|@mvhGo+Zh`Mxq@_S*j?oTyLN(e1|@-z!R{FB(mXp@%HAA<)z}$@>!RVH3JDyMor%yPe%@=f zLVqpc5JtK?j5H#G5GN%8hp_G8vcTdc7#pkvt{{9rfqLwW$8`xX`ovPOgzQ*9A}Gwm zLhSSsrGqp!-nIGs1o42x5rb`-kQM+<5QShv8PI}=^&OQs9Nj`VLM4==7$kd$$SYqr zBu+89Vw_wVqJ5l1{Lm11E1Sk>ET?(Pa^Av7mh}51OGb@k$%OWlwUWhHCt0R4{-R2d zMG^y2&^cj))5w@wG{?TOU+Rl>nPVk~Hj3#LYFGAitO`5S*cJ&#V~SI}S(pceB-W5F zTaS*W&i0zCC1;FOr(so$FmPBVGl;j^QuuV~84y;Ufa4G@*5(K!D|;npmQ=?Je^O>i zN1qOp@*EBI;2i0I#Pi6_K!uPTF)5NwqZyd6d1YAyI+&&(cWQ&;)L*O$IrX?l=R>rO zr1947a=q?*XBX~)y(H0*U1--z*uUTZdMy}}SmIM-%93j1sNNfUfH4|{9b)7yc{1{g1i{eU8n?-j&ZA+OO`awT4mu1`sc z10>+e8S8a&*BXski(p0YI0&kd)Bc1VI|5fA%#;!^gy`7^o&~5zJS%M&Jm7BP0W!Lg zfSlm^Gi6(tIU+2*&`1Le@z1*T-;Gm>Zo(!`#m!W(`MMu+Ym!MRFd1^()5tMZpGKcO zxcPnD6u_3RqOfI%!IrNh(c!6cZ+Bn^CW!lJLqK@GA%NWDLbDt*k0cHf|DQ zWfLKUev(EF>(Ixh_3V47m`hLLHj!w{4yH7sPR$7SqaEC|0-Ck?$m@_MiAw57yivsN zZ?Wq;k}`u{%t_qyw+kf==nSV%y}vha1uPA&iC5!Weyf!)5MPVOIp41eI)mQ6HFdma>*a(^IU-m;_)_gR>j0S`ebrd9c}pF%vEwGTN!WP<*Nwmq;yPe0lcS;Onc5K7Vl}9D z_DOVfTA}6Y8oEC~Z=e)$h!=^i7dd~QCaCW=A_#v3RZG1LWd4lQ=F@e>AWu>sE5*Uio3PBz3+Nz6X z3>Fp&Sm9%7jMoqf31xzWDjOCaw0r@aGnWB=^ag_K;po9jVEp$at%YwyDjSrz7iuWq z!oOvugg8`yk|PU3M6T=Uw8Y|GxvHiNl2;Z4r#48!K>2M_M|k;-zQJ zNzif+32jQk5)$%SBSk+FEwCtftl)HKBe!ut!dtx)Ye6AIWsi58HtpPG?J?)w1=n1d zB0&RCJHhJ(_8@Ol04aSA@38+fr10c`OdJHTirze1f1@l4NCJun%{4)ijUY*}_D#ih z1t|a=uFX)I($F_7aKOBNA)u*iE2R1cutCts|4?o(2(Bj55Ci$Y*aGfsy)M5pAt+)P z;o!EcY9AX#F2=TPid&J=Y_*T>r%PrGG-Q-9a)P_zEXE1qClXMzX&Dk*b)S7ej^wbJD$R}r@`_-M?pv_)3y@|#hZC}LIL>Q0puD8x)%Mc zajvi<@CzJ7EqVOHFiEJUMlIxq9o8v{?avZmuz%3_(<|Gtw>k@C_(mO<2FGe5b z8C6mf8p-1tq$ZF6d>v5lVE2W+Zpjlb^(0)_>Mmxb6QpU%fx9_>gD6~R>=l*f2hfy6 zZbk=D2olY+jUcpsGmWtgqU4U3TnPuFpS){fuP9t?MBbU{bFVfEk00)p!%$(SkPDO> zT|<~I1*W+&QzXpP=Uiq4+{8~P?aIZ~fX8shv zMptJ|k9nw3am1AT!b#OWlGEi@liw!Ll-cRA^cEsNEL5ZQ`TDgf_eL?5WDH1zM;qDW z9UvPeC%sdoM=Jbls(l7BaGDN;%4Oh0P&=bA09Y-&+6Z>Rj^AS2Q5vV{ll(giNrb?H za35`P09#`E(#rFsgck%aKz10c+J$~Sd%lhS-q0I>0d_Nx!#52`_#Pn%E~^Kh?%*xk z0Bdz;I$-$OJus|0N1Byez!{zg=~ok=e9Xm{p#uxu2ox0&dL>GXCf; z7>D3D>XcHa+)dEs%9T&rHAit{WBzCMW)*IVz#bLui7@AfvR#EukPuxgNKbrb z58SiC8sp_d7jEoEBLzm)@NSebXO8NPJ;*UbuCDKof1?=B{`k+-`s25>flTW%^`&_lOB zt%`3&b1jdvTaaKe#!x%>i(Ak)mNGu`Aa<*%3iG|jq9yZaz@1KfNHH}&`rA3$E~3%UEL{^09m5L;e-A6s7QfY)93g&X^cN+)p7 zNmDFL1W-*8m-}Zjt)Ee>4V(FpjwKZ*kg;PY7novz9HS?TxGZ`bVaF+K>)|pO>)INy zcse=$aUni0>QVj2Ui8HLnPB6$=jUpvjqzMHc?d-Mm$V{wfmsEn%v*4;YTzJxX+awM zE_!D{t;+3vW$M2@#gf6l7H6TiZqp|Lx`c%U`1{lCkCYfQ>$~Jf2so+^TW;23i`2!{ zc4e*X%Bn|2B{`~$g=k~R?2P&@Qj1N&?i<)OBH!uqUm!bKawpr0u9c*)AE3yErAffk zeG|JRo*!IO-vz(8f-|mOIE}4G-i0Z%$*jzTCLL;s9Qv-)&&Y)-+9q4wrDN1!l2+tj zSQJfBAGoMXvu&*<5F5D;Us09sRJS=1d{y>i=))*6AcadP$OV{U@b%I-wHz0shRvCdShPkcEm*w!`z7db9nuWJ6eObcWnp=Z178zM5Dq1wl zTh`fkz!cBM9?FGPG`pD>2T+w&;R8CTm0QEMBQfvLnuR2VhgZEpxuD)8M%rV@?3QqZp`$ zYUJ9d+_iOTJeSqM$>+W|iC(hp0G3Ako9qJ!+c!s1UTV}>Zioh_NM$%1+E#A-f5XKV AH3XE)JgV@}42W>-S8$;65FAro~fiMt`0IC+UATP7!j7$%cMqebt1uc{j~ zpF4l-(ub<|ao>IS-gocs-S?{JFx!2YoqqnfhUuU$D8`~Ir+a!B_8~S~88k!#c59o4qL19@y{T*T$Ju~`Oc1Znovy6GP znVEc0`B_gpV^UfF?)}$8+&HFikUMpN)i6WPGyc8AH$9{OAuZZEq4v=pY3aiQ~hk6U|1`f^5ghTN0 z&VHqpHaio{OE79{jzdDtOj0+8z9(1G>?**tA^i(BP&K?1;uqAugJcY&J@r z;sokopMwu(ItfDRY2{Cvfey&8Pz}{5OIYg117N%p#7}4AUsXN`g_9NNQ!Quu zUiN5me2(pVdsQvO-TN7aOJs&B7b0K0O?YXsc>faXR9vsY?kJdKAC)Yg^ar$3q#4M3 zONcvy$B?1##OLJ=I?e;rs&d&ICwsI{4waJX-k$SCEXNenp7Sul@0LQL4OUEC_Zsj*{>^s zJxC&6>tth?;F(HNU>FeJGNwnv1TWK`C|V$jgD6%Ir80Nn=_eCcvYJCxM|3#}Kd%ZN zugE6DOHrQgv7EEjxZ^tRy(zLwvg$`>x}b8^(|14ujmAd;z=Am%2x+zo?eI z2JE{fdy;XBEPE$o--zs)f?Go3AFHu<1bad}4@LB1QhDaMuuW-uJ?|da!8dbpbR{zM zQwv|OmMrr^ioz8`%MUGIxg2$-q@u*+B;E5h1Ih^FmEh?b+Pok+Ne|7~8;?B+5*x*c zXKK)zWV;6X|1Mcb!!B;=7~)T~5x{yjg?3Nw%_c5uf5PzFkewjg4YK zPr1V+d(&l)F?fnhGK)VGnfDDC%o!N$(qKmvaUin}kcar<+bIGYjdZCN%}6!MPo3h& zu4wFtxsBb;PM)tS$I>OR%#kWEoEDIj?`T*DMb$~MSA#uKV3AX}bp*GDaO*AHDl2YD zJl50b;5}PpmriyhfwPkZ(#h^5@qt?TV!Y!*PA%YUp#;2i=5l4S2V*%K>a?=9>BxN!l*h71fN&Lt3`IK)_i z#HqE)1X@EhW2!0_XV-$9{zeFjuzup|CG4$`7NRsf-!?LzG7RX6PQZqY7(?^#goe|B zwTbx9qiB$lqUdl>EocbErBy_9;*w)#4Elln?Fv&*4hv3DLQw@cbP{wukLz{VodngP z#biCMb%Ny-j0}U|d_s2{U`C*c3ZZ}jaQJMgc)x-TO1xulBKC|2i&8HY<=Ww4SYkGv z(Fz&7u$&hdS;+WE7BXvOVFHx1PRK%btt?Drg1=fCnd9q9MJ`$Dm%|nO9&5bp(vM^M#N+M(j@2km2##V-2v6P(gv3~=bFvXFOV9Ivdqv0C(OLs4PaOlV zV&h6(BKXK{)+Bx@<}EoZ!kW~_$!@LKv{DyOs4TLZZ&)WzhCX6&QZ<^v9SEE8luaez z3#>|ngy2nhO{k!Qke-Nx`xW_3=lihq<(IGn5=TGP%D38VHh3!QitI*{$y19-D7flq zJ|c=W1Ee6j>(D!?S;%iRK*%39^8T-#Mgw-mVTTsikHa(ys8)!$EzfxWQR#^W!b^U?e zw^saTraBuzrJuOs=!z*TM%miHLWQb@?pbxGg+NWPoy#h~(`~iiq1x9@V!;$+!5!_} zXgjg2pF+g<88GOo`!SIEewPDu`Wg#xz`MW=3Fp z3|2sLhP`o^W?^d3HmoZoL?$+tAUkmkh@3Eh6K6|sSOpo{F=Y(XKvwHpB1;2+S#UhD zClsQV>}-7)5V#7a@CHd0{w3QoN3@bvAV5mi@;&zJ1ImVQY$?GSA>%*6W!5MzlfE3* z7s@6AsOVPqm}u}Twy<(UIw=en-vt0a>c8L#*rnT!9Z7tXEX1?2kN|<5-Uf5mj|p-p zQ;=7Je1d}VG%{3-jv#&p!V`@XKza2rhJA11mVPXJZo|SbgN46jphRo%fV1C+$ ze(d@)uKygnhsBAcav9hE1-rixPj>d>`gfLL*XP(V3^ic67x~O)fBD}sbmc07=8EmH z@K+Xh{Ar}z{I{@L&Slqso7Yma6B6@6HW?!8f2Y*@_2@osy?ycqf@C07jd?raL{f)0 zvAZACuJ@4GoE%Q!B*VCYCjRaomRCqSU8*E*xANnUWr8BWp?%U#NvM(r}Ix+`JOb zENe<3_UYM$V1Vo0$ogewW|D)pf0``7_J*1t)#*xn>=@GW7eC|D!J4!p%;AN#fJcyMYlRkGs3qlC2<}g?d(c!r zh<#s>s_PT%7$k-!TkK#_oOsuR*!S1bp7KbSo_2jX+7;V*LlaUhe;2Csfj4|~8kMLP6flelf~*N3OR1!px_H?3d? z%hCk559q)t0Qa&Yi8F}}Trgse!UdrqyNSJiAfhToIX1+I%RFH|x)G=hl7nK{0!7n6 z1d7#gR^fZC;{hSn7B~sf^eV#ettyl~Wy&nw2JHI=x7@sU85~jjh;7NCocJ}I0l+BN zaqA65;H~$GukN?sE#{!TQwnT3o9!u6vFjV`xCwckGyo?7dUK?nIMwsDauj@birEi$ zG*5N*^&3(kj5b&n21qWaoTUQVNJ6I+)$=-ORfCiiRmP;K>Ig-?6}+H=++2{&P|`7d z-1C+6^=74Hurp%a76J%2IR72p5_HcT?GE=|R0e+rz4@cP5O4Hm!my9&U)5h(3UjI< zqbjWuxOvb0hIqy#uyDv8+m_DwO_5+xJLqmYCUEFw3~+8=0#MM`A07{W1uG2gG31g2 z-ft0YDKX%~NJu%G5^B{MfrN%d*tp;c=gJx!99-1#5If=9BZ^$?(>>-tfk!+0xacmD zOC6>+bi=1`?}&A3b>A4aiaaPUHw})up>OvDAV45JfHMwBnBkC1(s)Rtv10`8>w=GO zfgBl@KaLSkH&{vn>^K7U&oqqjnv#H)8ZebHQRg5F4sGPH(M(rgC9uKG&TSNQVm(9L zi2SH+3~3C3Rn%#lSXvU;+hdLc?Hmmt(H87^l;EYFKWXbVZv?EVz>Y_?-px{ONq}4m z!3%Ci#jHl^&*ZpYg0AElSI?vk&z76Qe!F?7^zuJ% zjdZ|xE?E!31dWPf=!&h>{}wseV&75Ra*QOIky$`+CHT!3LxfdVdhUuI$eCrGlv$yAhZkybplY5gcXtoux@<~!OPla7= z#zsjz+Sn(l#Zyp}C2mHS1hPYx_i!V+I6WiwOrz-B-zT9rrr+g<^21Ojun`^{F4NIo zo$N^>OqK(aT!jf|Bv7JZNOyl5y_*N&E3isrNJpwY#f%o zsj}xT&^?&*fFd4toy2J0j7ffTmn3nAfxkuN53Fx|HB>gm~zoRpw3(%I_6oz4oC!qC$N&0Sj*vUOWf#Y{fywJx}5OT>=xhSx~% zt)0-T9x!uXLx*N^1s{|4wN20t;FWDquUD07lEJ9lw$iF~92W`&8=G^lB0SSLPaP9( z1vgaVpR79eX>d!F@dCIyjDW2%e6@LX--W*I$ey3A32sNr@@HzAo6&>$OW;iSTK>;9 zFE^uAvzAq==M~tTau^BVwY`*x4S&l0$E^_HNg?3A7Otlu-vJflu_Hl|eXNQ=ex%sA zzMnHuHc90wo8e&lgLG5Nz1pRmw#Vo_MrYhHf_p>O`H@32)fw)D)Z|QosfTu;dkQR0 z`#~_E#yA61w%89ESaRh)o`eZRO(K_gu;VMXmGAh9Y1J`?p=QwP-7@G@HrQ*O{owFa zRrFH9TDBc!-91rL(SnNZo(YwvyK|%G`*NM=k-K{qIJ=2a>GuKpJ%yqG4>ln8!ixI? z^M9l!Q^-JIiG?o+EcXQZd%>iEWBYG}$2DKX-6{`q-fSQA>W+8-1|)X^SfT&Ro0Gnb?-{rm9r}Y{+V|Fu9Lf>cO7gy z-1bDLK&KYnVyISvReq8H|I z7P@<3*R$Bs%Vjc!Kf4D^c#W*u=(O^@Ud~X8X%s3f)=zMDD*+FIW`M85W$<;ln=9+KEb6v6(Wc_5n$L^TFN^b7CwjTq z1kcOG3pG{6Xl6-@=JH8oFDXp{4)pT_&kwD3cEdL+2&%4D?rB_6M+5?bTl_GHZV6ZGBh(aG&ON{wDNWh@^kgkbMo|KU|_H`v@`;WIr;mCKt&iB+*}O} Hq^JY{sHGC+ diff --git a/bin/data/0000.scr b/bin/data/0000.scr index 850c720851aa45376a7c7a1679b93f79b8654997..656b8920525126658233e51129dd4136d72c5e0f 100644 GIT binary patch literal 344 zcmZ9`O-{ow5C!1pPLuLm`3RP}kJ7>kA{K?Jl~9c6)}$s>0b8=uJrWn-$k>Ktfj8EC zex4bhBg4N_0mRk>#^XbSB_^VxU>m|T*#awMyaFRu6Y|k!yrN(|;cT??ked+e2p6MW z2BVBUvcJi(-xZe`F(!v)W+-tTa?_lB4)zsxne%#%??HyUEX!r#8;7;EuLo?kIU(38 z*+zM~Seo^~A779|kQ!9*8PCV`I_mH-2 U-!<;6b>g9TF2vS4e>5F_07bSrCjbBd literal 276 zcmYL?yAFat5Jm5}f|h&&iM>Je3(&%MG-9-L#TAXnCcDt<4LDQCv2h0RB;nAM>x0x8-AoT=M3i!K*Mex|``hSZsg3leC z_i6JcF0aR4N6^=?m$cUP_JczomnP}I=UU%yZ&lVCA741;=UIs3C1Azxs7M83n zO&g}NcGuAIV%5iYzSw3~dC9o1qLGKJQ2FOl<(b{8rOnn~E4#M&*4oWG_71exy>7AC zAoh)+S5#X%j?63y<3{mtoW72HKRI1pS&gU(XDXeX4(^>sY#xSv^E~+X&VvU<^UZFG a%tCjcw8k`zW{uK8m`psC75MXaN&~-U1b1El literal 518 zcmb7-%}&Bl5JtcIgGQsV8p8TMfw^?&vR4~gT0y)mJb;d*iBto1<4T@fCp4f77ci@t zGv}LefD*ZeG}u%K5je#xlRR5%Lm-3>9E1}0>JRI%$84x^Y&KE$j@Xk*c#YE?J7JI6 zOyhjV&e&5*e6=}X{cX8*>K_Iz#B}RLu(&X;!z|IbGA-}pGH_B$F%er4eRKogMemoi zt9(2#=?Hi9N#^CFerhT*)e807+|(5{W=_@O{goC}H$=;4WRdp~IFM%d n^8GLPxG?3z{{AeE2mUrW=*N_ntBPQ+Z>&WU=Lfu-lxcwRlw+*|BwwFd14Yr~ViMyuVRJB^!u1H)t-8pmPfA|Uh zn75d8VsG}FC-csH-!wZB!@o}ghPYB_!iBJ;LA%z?uw)1AMmN)v5QeyIn}ZH!g%Eej zzThBcOOuvV*1DsM=h0HSbz3qEFtYyUCxbP%i~xfQztH$7XIP>p|vxY~*rl8Ekw0KEfbsoQHq6 W9A@)*&*zi5SU?;*yIFq^3487$I~?^e2|7U^o?|=i%$tLD5C#~B?E%6d8jiyG=6`7PPc{Gm diff --git a/bin/data/0003.scr b/bin/data/0003.scr index 749c1d97adde7d86a3062d36c4a83bbb9d9bdd31..d60aff091cfa2fd4191eba765b41806c37f98588 100644 GIT binary patch literal 339 zcmZvWy9&ZU5Jm6gg^J4dHUWE4|G**GrV#Ceq6R|}OhD{>zrNZrn}CShESx=OW-|vi zehvc;9V$o|f)v9bI#z6iJ`9&(5}h2F=!^(m3}A_85uG(d!ED8bw3qMJaoLdeYJb|9 z_G;oud(%wMt1C98y??h2mrZFO#g4LViYM(;Gu^fn+rnN{#-IPS)uau-npWLjn59v$ ocjrl*Z-Xoc2lEZ0aJA0i$MBa+jJNWJg@`>&Q+UZP*47{N26Zzk>Hq)$ literal 460 zcmZ9|OHKko5XSMZW(EXBY{wlZATz=!<8v{a77jo-g=_T`Ud{(TxDEegf>!87r}ImF zsj7aeHPYURGP9o@o@piv5wc%zNr(xy@s@@taP2K4i+y?Pkj1{eb;+h?@7@l`Vjtdm zWU)_ged;o^H*bg3VLfk0VJ@0*wda-Hq?l2+v>jrD5K}&({3BiH7-Qdww;{$Jg|`!o z!pd8~=+SsPWnXOSEf1?)<9}&ix4P54u5_&%T{2zGG!F|cUml-TYNA4w8l7tk6M`Jm diff --git a/bin/data/0004.scr b/bin/data/0004.scr index 238ad7bfa5ab329b232738a5f10cbf1394e8cdb0..4758fd412f87ea5c67fdce7640dddd74e0662bee 100644 GIT binary patch delta 306 zcmZ9{%MQU%5C-7?oKsqoCL{LLrC8z-1{=|CnlvI|BZQ3z-MhSk$FO4O?VJ-Djejx8 ze3?vUp7zW3k1lff%MftIS$y@5{-ZROCncP8u8b}!#IU5eq^7i0iKQjPEVVLv@Q9VR zY1V4QmbO9G>cly1an>5dd2MWLVTxJUB(^n%rZ+L>6Fb_1k9@2}T(Feze%3{sxG1E& nroT1x(H)99nBOKU@Ro=++jW8&rWhawBSe7Xeu>d8Ssm~Oerp>n delta 312 zcmYk%u@1pt5C`!8M`@W(Ix$eHbm*X-K#ob$CL$5MflX58G8;V!o40eHD&Gy4yWib# z_p+aMD{G?zGakXRk}Ktu=3;^_v9grf|1Cz3xFWVS%_FXg%}whQTVfm22E;WnHq9rl zi>2Cfom|8i65E1_?saGjh#j%0kitg95WA=^`f~J`7C=*7%e@<>QgTD~ywdb@A+1CF b&ihR6yXvfsJ+_$3gpndagw^?QLUzO(Jxdq& diff --git a/bin/data/kass.scr b/bin/data/kass.scr index 2977e7d6e0bf45883ea735a1e9131c421988a8f2..3d37b264053b9ac7faa5ad35f1fa739289c519a0 100644 GIT binary patch literal 484 zcmZ9|%}&BV6o%n%rY)kV9AK{|Y*}FW-;qgoEYz@Yt>~hfKtjtN&>O&8@J9Wn*yMy+ zOwuQP=S(K6Ai~K?0Bg1)Uxoi7hLOb5b`51#l90AAh&_Nf^X@;jwn*0BjIbK&w`~eF&DIWj; literal 464 zcmY+9y-q?w5Jtbb_o669N9@(a)&k_ebVEm>#KK;y+hC&j1U7a8ui%S%_Fgc{6r0_X z@666jrOa0D--`9CJI-kaTc7W<0=8-IGg)S}h}BYuGvsDA;!@QG{merF8>cMu(11-+ zmV3xEvwq47T-YFG4P4kTWe2!?+)ddbE-WroRh*@X3+tuq2$unGQ+A9Ciwjj1-IfP~ z{akv@UfK8LItVtmZBDRL4~%DDSL9afjc#zy_?KLB7mNMe@9XC_S3jOy|C8*}BaJmt eUjq%*#q1I3=<&T=EcNoX(EPJp>S3nm@kA{K?Jl~9c6)}$s>0b8=uJrWn-$k>Ktfj8EC zex4bhBg4N_0mRk>#^XbSB_^VxU>m|T*#awMyaFRu6Y|k!yrN(|;cT??ked+e2p6MW z2BVBUvcJi(-xZe`F(!v)W+-tTa?_lB4)zsxne%#%??HyUEX!r#8;7;EuLo?kIU(38 z*+zM~Seo^~A779|kQ!9*8PCV`I_mH-2 U-!<;6b>g9TF2vS4e>5F_07bSrCjbBd literal 0 HcmV?d00001 diff --git a/bin/db/test.DAT b/bin/db/test.DAT new file mode 100644 index 0000000000000000000000000000000000000000..d2cd9f2dd99e298e84d6a747fe79ae20c6f71e7d GIT binary patch literal 178 zcmZ>93{hZbU}RtbVnznHqQt!H)YPJ?)b!LG28O@tU~v`(m&_7{%wmPq)I5cf)Z!9` zSxg}H%nV+7;d%@=;)BU|>kj&neB#Gi2~&VqhpqEiM7!U;#s@xDkUV3j+fH`YsDG literal 0 HcmV?d00001 diff --git a/bin/good/CHECKSUM b/bin/good/CHECKSUM deleted file mode 100644 index b53d28a8576130895d8bf5db7a7bb8e91edf821a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmZ>?bTl_GHZV6ZGBh(aG&ON{wDNWh@^kgkbMo|KU|_H`v@`;WIr;mCKt&iB+*}O} Hq^JY{sHGC+ diff --git a/bin/good/kernel.bin b/bin/good/kernel.bin deleted file mode 100644 index fdb3dc96dad79d764ee60ac3470a604bdfca9a08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83727 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œLv{PX%n2@+cjFdZ8%p3Z<7Ck&T>QE2s2@}D< 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 B&)Wb1 diff --git a/bin/good/uzboot.bin b/bin/good/uzboot.bin deleted file mode 100644 index 02bbd26e2a7f160e44f48fcc80f8a8130d59bdd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109260 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%0A5zu2SrduE&+kb$8X4H`S0}AS{ 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
RFK6)y8r8aMmeZ^>Vz&Yt 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 diff --git a/bin/good/uzboot.gz b/bin/good/uzboot.gz index bda1f8301724c7564d02ff68b20c8b24d0e0579f..2805ea7eb36c525da08d5578ac38985841b81c52 100644 GIT binary patch delta 104705 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 delta 104719 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 z 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°@EdrVF4b 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 DaabNQ diff --git a/bin/good/uzidisk.dat b/bin/good/uzidisk.dat deleted file mode 100644 index e3eb7a4bf37c9ef0ea69819997b48922b6d860b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4194304 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%0A*%QhsoO=eiwGuzjlF z4BdCX#N|*y@e9D@ME^k4MUQmCg2EIUO=wUF^>;?k{6gT7P%j`Kq$3?;Knd(6R$||6 z+e&C2e&XnpI)n0SdZB+HhQB0~dDgK3x~Y2U#r+S%T_%Z8A|sB=ato(6s_~5=)MF)T8gh`~1$ zHZTUcb=iSq+Zu?|0xpd82}TH5WZtDFft2%l=GOu#G&al$glj}en~*|uphqADn$Gk| z%`6}#s)Oi&NmUp0%!~33y>&o?gVe)lvZYt1XB2=miU06JoE(|vs4Mi|TDw`iY2fOB zi6OrlV9|x^In5E*`R;-cEjBqTZ`hK^C2g1VT=MfJbfD&+YfWfT%X9RSSEszfy)(EJ z7lR$Q2TFE1T1j%eDy%uCAw2u3ctj`u1{_UrO8COjW!bmz-r5CZqk zYn&mZj;tSUl8^A!?XkGDofK*U$TMIOSkns7?gV6XL0EeB-uh>(3@@X_d+Q@d7{EyN zEaH(Pd|cG=-pYuojrW_0ulR`M>=ic6MmVj@YT=DwcA_m`LAr!ho>Z3#VuOU)Kmkiu zM>J?pb@?EN%1llq+NO+>0_5T59C@z80?K^_PKZE6TT9?(O_kH%v|-c=9p&6FI5K0O zD{yK?=vinG&L(GqX#db*BcN(%|1?IC=pm~j5pgKxbd?n~Z>2z}%ELe%4+?ykiQqx9>gd z*}c4KQ2V2vTeiszR3gE?kCLTaK+3??%7+Yj%HPxPYb!3N^~39{w0@YLkr@QtUcaZ` zNrf@pKUBv}zweQ!-|io(Lx{+=n|;W&_9VuE_FH{=K0HlEruy`JI1?_mN;PU+!Si69 zGvKO2rl!{BHWq!sPKIT^oPeY2yx03m++%PFKvH)`F!2hX4-^j_x4dPZ4#eK)%LC46 z#!hBcKlZ*-Rn57oJGd%S6AK?yRmD^lAuFy8>Wx&N@4absQ^mX`)CWX{F?zNZ^tqqf zF-rZhkZ~z@f?9<~3(F_Mh5X4{8mxstS*Y~?WA97gsw%g)_W>NhA<6V^%kmt!7D6gb zq+X+J&~BwRUF~L>q+pZ+GK4m8MVxciEOW}tP)l)2OS80-mEtz@X5Fk^Qb87BQE8?I z-?P?w_u2cv0nx0l{=Xz*?{~lRxZbs%wHB7S{Ymb3%$)R<3?Hi1BT&jSs()~n8D9M} zr8?6Y>^cyvPAP8WS$^LJ;f+r){?@|p8x6hvt)=suP~qTDI;!p45O@b8Ybnst4L^Ig zacqI-?A_Kvlmr-bGvm0K{tMHmavle8?Yf2tTH0bIwNnL-D8$pG0*C8Y%{G|j?BuwIzq~`}T8vmW)}l|Ji$=9r|qUvkyJH{JEje z-U^f&RT6XutH3>yZ)vD`9|2^MKCucMUPuM*k;T8M3LKTP976Etfp}bOriP@23=2sQ z$q2~|$qIQeBs*ky$cT`KLLLrzB;?VMoRI&7j10*Q85NTEmv3P0|KdMO1@aMsl(GsW zrr+sOfgH4y?pds^*Aa7m<)1?Z^12tTT0;fWgnD8j$nAAI@}Hv}&!+0my#$qN# ziAo8@rL{&I+;7dOqY5Mw%zHiOIY{w4VT=S9^VXo$N!HVBDLn`Yq}cCzYeio-gB*-D zc)zc544;0r%Ga^ptPA+5s8xcP51>|g-Ews;g-P#|vFknT)a-gU90dud^U_=0uJ;j~ z`g~D_@!0Biy`RHZXL`%7ccDrJu7xD0#M@}-a7*D7%)ke~cztEmRT83D1;oV|UJ(`> z1_lu!jVg4QI;b$mHYEm}a8rdl7-M#?NHZ_1)Hg~nNs5RinV>%rC3?kNJ`ook$k9CBIV#SnZ7DQivTRMzdK_a&Rx@4@l>6A6t zT9}c3*MFzTuDRcrJK>#5@mH!_8@KNAU;~r2@k;@N+3mS>cSPLo2z*kr!RFVi8BoRA zc+v|JPVwqwZM@TNOo@Qj#;H)AWT$9t-21#;6}fhyqu7eFy2W#V}MDyc?&BaA4TC_?;pBNKCO{Z{BKoYgcyTL4%Pe-es$WeS%qR#i0r9`3m?40sPQ9 z00x9o1B=O^QDUL7!V>@~a>!WX_GKIM_JvU*!igZj1 zziGD-{Hj!imTxaQ1B(G{p%2~W`UDS7{o|GlALh>bAvvR^~J{@S%vXpT~^|K5-? zWx_yahx7Bpkb(Z9_&1o7GV;&iR zaJ10rtIs|{u6_|aZUDXHt6#L) zvOkhpQD3+lP?0YA6BKo(y0CDLzgjQZnv%a-Vc197;_zq4h7YzNiyU$Q8W_^F!M^hg z=C@@nb}`UB4Tddx|wz} zI!EaTPKwEcF@C=V+w41>DP=HveUOY^li@Zq?kfa;jo@@i+|2&oy2Gj%!Y%YE?=+0+Waj*AK6kV$6ywb7pULF5 zjJV*IUBuY`+3a%^TzE)Ael|0YnpxkPncwLJ5)bQ!Mc&F-ke!%ygMy;KEvK6*%!S{h zLqCe12?@|d)1vz+&vS4**K6~L4HGvU-;}!HpBwJlaNCBw4VfDgH$1Vi^M-C#N2=!N zFzs{@$NG*fC=o!VM{(Up_fFR zLZHcf2MtAwI;WyP?!{_ltAymeP%VJCAF$Sb1U1GByyEVtM%H6{_uu_8is??ppgqlD z*7=;$H01RI;peQBJHFc_&)8gP7MT5iF#G&y%umrZ0aYm@yNJrtU5VRU(%dX zE9N$}zR(by2m~kp(#$-d0tGC3j+yhNx&DBo87#9S3cZDyQ*N&R9@ubRh*VYTd!ENp z;V?r>;r5_aSt!=75F75dQo%|If=fJE_x|<5C%ZF!wV?YD41m(&fsw^(HL_;24%HqS zQFY$v-Sk1eA-42T;Q`RGv!7c-g*yf5SL%ClR@gJ-Co|~?dIWc~wp9{IBx^lvK-+@7 zMIftwGM_urm3*#}@lj!Hou@+Cg$EeLX8)heK1YmYZ-~`Vq4enHL6l#@HU)|i7bG^o z=tw1#V~>`!>HP>8qsar>;Z92kAa+r~Phh-AwJlq)7dbs4u)Q3v6!3tF+D;a~Q zt}l+*jW~9j-iY0U<`I^FFA`g|Y2LgPxju~2eNhNF!5jsZ52F!Oxo2>>P&rm;G1Xn9 zOjSRW%lePRc%=cHoiNf-H37hn9kE-i%TmspU0Hj^t~4fkBT$@n03~R@#eUCuQbwMfdd_0)#H?izFFiuX9`)c1?|oamv0H2&S+Qpp z$a7ZK5!m9+22?tX-W)Y>oHYPBiKFZnO$Xt0bd3rLrVvSGSGXrnCT3vpWNOQk$$po~ zWWUz~0!|MG_7a`nIVTTQotW*j-VHar?BT}l1Zt+->g^W#by%WQrJd_XgQgi$cFxH~ zuH&>xzAn(uZMWWL+)RjX+GQ?jgz=h-X{ta*klGHAS2sjGoz49{h#C}2pkEeP*3Qtfrbh3cvSb-r(R^#67ni}Q%f`i5{>-%xxOpE3#VwCXyoD;GV@6a=}U znGZizLy4y3YJWl;{{ z^JR^rGyR2BVciDL&GEE8t3y$e6#zVkIb-a0yH2?&GC0@M`| zu>yTRO2>RP2P=Y-2K!6~oWORxZLUILe!q~}{p(zgz4eyjpekmuFv;r~!>YO*WA&Be zmEqAlji=re4i-qF^9Y^jir87!ujwuVAc8vZ#70N_Z+F=>`*!OC=&P_?tq7u-(H#03 zV7KzT!5&l!RHCaZ0VMbGj>K5J;kl*YDk;-3>ngfNzEi`dNIT;C$o7PFV6EjdN6x}iBC*k=~=KtI79 zBOz!R1u2?Klo^`ICuqZpP^g|xT7gnc7H)$NVtHF*;A&0Y)_AmQGTW%Q6Ut9pU~g++ zxZ|=zWuiQ8fz?^Hcw57?ejo|@Kfo7a|TkAO5XTozs z-Mp=Ro7-_v;)5OU8+1o#$I$d_m^7o;fvG7OsY4RAj`t>~bR3d8I5|bTIX!h?Vnzm8 zGhXp%^45Y)HJwTgUvLFkd&JKfMlO>p9)GGo;WZo zGg0f2n39;Dkm)OFs9g*_s@Pd6Ly}V-kh*Yiw)!wIJux9O(eXhF%uY}C3$5Coqzthgfwc9ci(zye;?>ltp5EiCU7qj;| zbg$|v_Fs2%x7)ARI&`6->e4YQBV8U~m`>h?qz+6NLSfqVy?b7#-JU!&vEv|gP!}?A zhYWoGY1gG>CZ@YHtqAU@`|j&9bZEaW85wuG2My{tbZEyB_=oyxSHn@B9S=h}G$Aug zyDmLFHQk+&n8`ICh=S3sUWwUu)Gofl+K1rkuHI&DByOF=ULkIlVh5y3? z`bBg4=j%8m`Cj_vgdH-6XKMdSc_1Y(TRe1_R!HC#-a}-`-`rKm#i)HLVi=-14gafA%i*^Nzp4zO&y^Kf7I;GsWbc z@-ua3RfBzh8SA?(E2U>@%I#T+eG>=WeqUDi^yJ$TGPN5LQo1MJ+cP1(TUvV0gb_Dn zrQDD;q+8bD+Y-}y56tY9`rx&R12GshJTgGd=)vz_8?Ck0Mmtaa+D{QX&)?}6@&DKh z+5a1NzGeR}BY*qy?HghLFC!oJ|FZInBC_+1S4Ne3J3m#`*WLqx?E9%m!&gT&X#{s~ z?n4jFc9+AHLujb?0jF<1(8iIaoqsO<%67>Y(7@jU%Vpq#6B+R%YWvk%%o93|`-P42 zt{qjQ1v%qd+qhqCkzl~@*-@4Yz~9Y)pXD0yPz{dwjJ^;$GSNd95*CNv8hdV8zl-vX ze@p_&cc!QR;$lzV{9>c=Q*7@?PjUr~6gp6Zr?C;f*zUiDKZ$p`D|Z>5%Da!8d3CtlT{*CX}W;@EI+!`7&#fYp%#kt^gQUOPI+|h(nm|QdmbtI zt}k3E*VC{sUZoAtMrzYu%iEauV&00pr}LKN8K36qmxmA3j83EVj^X$6-wTY5qxA?Q za;$!?CwD3CGux~J#ySgN2g=k%pcWqmwYb#tXg;Y?Dr^MJOG>+!84`TsLeO5~6!Bl! zc>p@6Hy}D^^w{Qka&fUyG`${Av zEz9ET+-G=tKWk4${Z7;kcM-aP2n&^-B2ZrrB3>%vn5^0nQd=Ir zGG4(wFwM{6f;Tx@S+3tLNEog*1am+SNY@eSUgR7_#4y^1Sw|2su^Pt#Aqap0BkFwT zJbXu04(1!I${nrr{D?xq)&a+tD)saP2M9&yS{-)Q3Q@gd#wjkBQV<(IPF;O*ndl;S zM46%%zuVQ8T&mOMuUk_sXBnpR(!LKvBR2IRbLB6Cg}bY-VU7d0R^f-C4tplopxzRD z^vhMD6QNs8w^3_7acV(xJFq>o2rg%FXNAoX>|k>|HeOap0Bp}N->1`o?fH`3CH;oj z9^O@eh|?NkWzd#hY_xd78cIwsMrr`i##lOq>E&r}^nVJ|P}l^_Vwg5TmWXsLvJ7bL z?co%JwFC z=x-w1z0s-pEPjf>yo*T92iH}Or^cQe^L<+J;f*F36;H#82f2T*50u~|FoGwQ@&Pn4 zV}G?J1e$Wh?F(cHp+&A(Lb!io`-$gGymn&0iL_vUTT2L?CjAOa2qLEi5adU68f^mAtBSnUd7uuQafR=vI=m4g~K{`y_ zh{lB+=Txvhrsjj$iY?jmd|>-93zyUM;T8kUb^W3$Xs*u}+KsPi$NQVL%Q5n0_*2pg z`gv9`&(~p-YTf%38}n65UD>8d0;nr5UI^g<^@L;VQ64+5huM+Sq^_J*o4T@mJQa22 zys3Xob>*pxYEoC8HQ&1#RxMdwnHSWlsw=0=l4}Yf`eJ6qS5;S@H6Lfk@2sx84iHua zcByV^G>~sgkD2p~xqdOh7uEoIUEhpb6RS^jI=r+%KYE^I-5>T$&%(vY6B!-TzQY{~ zxR(ax-UYMbXLO&jab~L-XUuqNdcpK1_|2YKZ^orFrcMu^-g5REknprbp$mGiDkFkJVLC{OM9xeQg#UhODmo z$;>~Ey6WU-tXe}|^>0umUBc?BeP+^(_o=JGNa#yTYE@SS4iho_)m6{suqx`RZVIeL zU3K7OKXuhG?2%TVieQjIVb7RpiviVzNIQhU0QI0)l2jE!C1(vge(eqm1}~aP>p@u1 z9~cLvRuX2FUNIln=n*w%LFHrVpyq3VGNXMI)bvs_X&L^!U?#1=pEdYhi{EF>BwRw- z<)}I(&Y4nobyaL@bx>CY^=x_Ue08ehB2$aH>a6*7R9EFK^Yp8hvW-G@IG>7YX;whh z(x+k1O(}8$<^*oY$W>7nVPG3WsfNYgfO8SnCMFJmF%mM%9mu%&)Kp80b1}fISSCbn zOm)@Ly-LX-u*c4E`07k=sg_Ptsla-W2K}C@rG6uRx>ZZ@zjSqj9HmRIkddH7MXFt2 zLWLfKy`n4g)lw~cMqPfuv1p3maM%Evy2z){+QhFsi=30pz@;wiT6iw~s`~gSY}`~y z=M>Jjep&9ByF6n4@(2*$e)O=dzi83j#1%n>ckFvorVQ<6b<#OqxSZMv{wPm0X3I&Q zT&M&RT9xT|dR3?*D*-kyDqC^M9LzHB<&LWOdUW5DbL6L>)c4G2F|2eHnniScGEgQatNfm)!o>YV0H;-R(2Ox+b! zv2yCrSM(Toy10me!|Q^_5{ZWnCWMZ%9OuU^>5v=!Fc=$7Rn&*`jrS~7)c-7!tB`~e$+Ha_e+BUyVs;GIBYEVVxUDJlN-8-Q!khT%R zcB}=`MvSqeCCyUJoMR=ygX5dQz%c6|jhOETX|rygHq4AUP;}}frDA%^u}2;#FO`i3 z2bVt}4Oe9e0-}{IGfw#hP%%18y;PP3X~WI2CP*9SaMF-AW-HQ}e7YfR(*S9^pqk-s zp6Tyy-HvtW8!Qf`Ej0CE%$gaKcnTBdq_rHzF66lxzKiLnC5L2Wa0mWL1@MQ~I#*j^TJj!EvJi9=Jxy@G z6@6QN(V5MHGA_O~;>BBMUHwz~`}cO9spmbs_Rhtd|2xlH`NJol-~0D#E_H{v&MF!7 zR_3$Uj=BB*B{#kpH74}&gT?P0dSTn-y|=}spC8^bw*ChX9!`3^&${mYHawKy>WNO{ zKK-fU%lRL?^41&I7vC}VzWm`=HB8Whq9Qx(++OzKl&=bYzJ5aToUmmvFCV(|y&E<> zH2eNxXWtxlNtZLDfBER+!q<*1C>=5Pj>rD7>Fnp98#3;ZFK*g)SHy+ET?aJo)_P^x z)L*_a3^RH~qs{kC{^$HBa@MEp?f+x1=J6MIxaGXGrVA@y{nq^S_&evk)}`Rz3x`h~ zKYdy5j@6}$8o%3qYp?RuqLIxOX|KnA?hd)R?N!~=1`l{S@5!0R7Vleog}3#8|MPkO zA65rVJM)K#Jr`eg^;x%O-`gks>lX``EPZ^!n3O}ki!a>UWZP$#djJ0PS-BxenLP&m z{q}m-ew2T7!<=z1J#o*MIX|8IR@V>yd;a%v)9bHl**EFI2U~Q%w9ic+4&C1L=Z;^! zJ?EyiyDsVv^eU~!n;1Yvh=)TKR@=rxtpGUYE#w?x8HgB z{Vg9V58HkA+UOZwI{b1**$}g*v3&DmD-O)xKKcAd8Vnh9*L62N(>3qH{jIk)Zu4z? z<=yW*^6A`yjjw$;^~l1%rNrg@t5;_KnH|=|zuWY?^E7SlQuVXUAJ;l}nfh7o(%g=@ zn3yj=gY&E7S{>2;di*_mfbgF^TU+?g&hs}d+*APkXXp9AfBs{BQN$JVjhphIYcw8S zmWN+`%issfZYmp6cGrk8qu9SP!x6V`FWR=(EH**ynw`ILJQL1}VV>2&onIZQ4w)=A zrdW8-DJQ~vS~y6;nzUftXH|ge|G-R9K(A7x!6@(SQ8w7LW?W~-x`01BlK19uKJX{n z4T{-}JL1uUT3v1y9&ZVXAHNm&t!!ytb|k7pVR&J)!WM;R;X-e^n+-Q-H|Vt2-Ef3C zyM8A_523%khnou;^oZRWldo?sFCLJ*b$d+^Pe-!~s9ApqPtH)71pI4acHhXH3E2Qh zj?eB96BARu-H0cvesL9WDO{;l#icg)^qmXH;JjkvY(NIljo$1rB489o2(-Oke|@wS zLKkYVW{EN93WoROjJc)8xN+ovrwNk6G(#|y>UL?_u59qdSc&qCvG@q%9u=@cQmJ{D zj&?mZZigv(1@MJRpJb6gXuec^`cgA^-FSeazQ<&t?|sWpV% zMd30k0R+Bm1Cv_#u9(PMlLxeN!3m|Xv2|!&6YBssrske0&aQ&rKRhHo(c4eD+ z7C0*F#SjY0gjG|GtZ`r+L2yTca9Y04k3|d`{Fq$KmWs;gFO@=DxNDx#d}4Sj`hOL; zS@VhhaI?xWHN(wf05`jc9Nz}%3^%)oy(NE+xe?Xa(`23vH+yJ|Q9225vx^nn>=-bU zQYp(YrHq=mZIin>CL}ffq`C?*FHvuDtx<-}XlIC_T zUMV=46{#k#6jt8NoO#n^5dM#Yuk)aE8Ty@OJ@q>*u(H0X%<35UNU0qDa?~|!xKEZ{ z5Ln6#0 z4dw(dna_L>?~w^I9Z)wb4jzj=8|M}q+h-FhfEG6v8>OyhPVn2=h(PQ~VLf7l*fYV} z2$)kT6CBLwJ@2riYCm&=*DRDZ4bwv5*DN$%h0LF3CP`*&bAtHL#zya1<^(IpoY0&g zmNRyA+VD@soZvMJ9p(gG6TExJyLQf{S}vMQSP^=~y{Y>dZVpDHY&Fp7<^J6~` zc#PrpHL{=kJHFS6{fte-$$q}|B-qcGln(aumGggF_A_c$H}>;Sldv(J7WOkQV1M>A z?|SM;I9?fj`Fsbn_wxCevJu_pS7G+fT_wTf8i}>bAt=vg_Fg_eGJ0Jrpf?1E#g#P{Q?4fH*1yfE?rW?j>6~i}V%S{)A_q)J!f9&Qos&SUB<3nIZCHqzR?n9Q zjNSz4y+n{_Sw`#S0J?m3V#LbZYT^V&tYqUWOVbs>X(3ids#O195G$B>JQ3JBi$R`-h$uA$5+qX zKl2|mH_v!`#>X@E&ZzhJ+cQ?okV@hpV%I_+z~<(&xa}^{ydNkSFJpD_LRj4orq>Fx z4AiPU^)hmvAQV!bYXQLVEUGE zr4!NSmAJ+iX!_-N!et0g?Nylsm^R~HsAtBl0EcENJ}$%GmCZO3-d28xCzwuo&Rm}# zb)NJNImrYc0VW<@$16!($c8EPR)PBt2aTEavYENj9Ja|!d&TU(((F^P*K;l)L*${} z?6t}4j?kCQJ{yg3Pdc!=9|1=@m$AA*JmY;>-H+)*tytYpIfg%0w}`{4V0FKsz*?}n zi~O;={h*s^^(jyOKbvcrx2Dz|tBY-|4p?2V9xSZx{nH)fcr94n<`e6P)%80E8|6f` z1ZOEh&}G)TB8R*{Efy1Ol1*!c#JhA?LGNusGZZTVRiR_$`fs0r7h?~r3A1SvvlPoh zSr8!2{t^%Hn^1IeO)!U5uuoEo?YNV>{cx4IlQSi2u}0EheVebYijo82Mt}lLJu8%M zT@Fz(leTO@o2Ufi-7z&w{_T6z=qGV?4`4xi^pmwq{{3>04gXh4{yE2AE%`r*xlz01 z-<}QX4jb4fjF0Wt%z@50EmpTQQbc7Ol=$PdtZpUd>Wu}@DOhjc)xt95)IZ2#8`Weu zikYf48IIzQL2Tm_NBAm>sj8L=1C5DofV~7ZH14}UrQxWD z=Ge&T4mi_cCaR&?CsfQtEgU5ww&AEt@=n%p)U&w?`0+sUkRk4V?K6@G-|bFI9z~*_#%fJ44yLRJ0Z@Nhg99brLkRT;t2rLAprnFDV8k(4%Jdo0d zX%4eLCp75eFT=iOzWQ0`f2)Hf|6g11;o1+q zkpHhOfc*c(f})5G1xDzYQg75#r!48W?oY;Dx!xyoH@scZuv6%e1aJ-CZ>WD?*r~8p zVe7(kuW%pQE}y#Hl-PkkwIiAN749S3Em40dj7-PCD*bjy@7YpH&hxmaEzf>8GACmh zM9%3;dz8OhwEa-dS`tOCAyM>d5=F04qUb|4$*4a+v=_#z?s;fIWMBNnA8)-;U&V%$ zMz$l2cImt2pKlL{R_Hpaw5WXhp<<)!sE0e=^H9gWc*8*%A70qJ@XRaTW_kbBvEPU4 z-#SG0_m1-Fd4B|vJ&9hw8%6yY7}`-4PjOM6ZvY(48IXtO)CE{EK99z+{M}0~q4BfO zBEXIG358oOqBgP`8sqZ-tk|DtS=B;k;$-`+ffYtn?yHrqtd-%LR~W-*hi9!cCXIDm z^q`OdUk7K{A#txo#;q{pUTyE{s8J|ix){x$3sI}sf^pE$XW1!5Cd0N`Ss;$~b%yB^ zT!y-mYlzI@5w%cG!AnzzG6=!VJ_PrGw)Qv;U7~pF_sJ znaaUVuVc_+R62Ib`%d0uw6ALUROZ*zC8)j8TJQy)2DocyjwPW=i)w<$mkX5OF)D!I z@ot);EO_L}%7Vwq5+*{$obl29R$90ac6`-NK?5kA6{lvwW6pScPCzMl$A{x;7d(F8 z_+BT$;}>Kji+~d%e8!Zjv))TrKf&Y61;4G}5jCru;4zXA5vN7)$mHXX31|WHbC&%mY`GQ; ziubm8lki@H{iqfI^ekD4S+4*+OIFfuk~jr3yRj#Cr48u0ae{H)LI8TAa=$0I&5bC1Ti8yn7I?t8w$*<@6F5~%#`oVq#wj&_V;Gm4>F+%N`V5<>4(jvpA-;B z;mq=%qCE{Ja_Ey%S0&roK{^y&ekAh-hxBETp}^+<>%Czy=|?l^P-JAgQltKpvI>y8 zF;-jzuX=CrB#F`v_V`gLK}`iOfWDttf4?v=vkI^?|C$$sN^; zgQaiE%_l;Yx-)LBRVfUXQ*l(!b_(_(O=WQ*2Zu)T*%Y0Rfrx5Q)-Qjhv0{oa{vz^M zs)r2)UQL;b+JOf_M=KaLiPX+5-% z1~LZgfrpj3Pi%_l1Pxa!gmzxXbfMyTjxZ~W`(3IjGv$bx_Or|sY8(3GdRdLWnR49h z^NS%ftalGRZ&?U;N+ZFOZ2j|c&4HIgkfTCem@3ruYUb(W}eGGN+- zAIDr+S)fu2bQsMla+P|M(sJHBPfb)PTEi~@?Ikwgrye>?zd?7iLO;p&EpS$vrRRwPXks<_^C9f>)?1vTt&D z&`M+9qp|t2eG@3vTtX9?D=w&Nu zj$ylAw$i{6tBovVBCVNng}Pbf~i{*a{qxY>+5v>GG~$!=T?M#@nsaIif|Gu7GuU9P4z&^$AD&G>M} z7c;(}q0MYGv*k=_Y{cd@I!+`yx+7j&qvLF(N7?B0j@BC;ZMsKA+qOn;sUF{2qeBYG ziMOxOHCKJV8pO79b-^{5Z$|cbN!2+K&I7u5VaR-5o)^wwC;(h7(WQ!Ad<}fMJi@z1 zj&>m4spZZ%jOeF0TdTy`yhb+Hnnj&9Z5x&QF=RbQ;Cb`s5wMB@yuh&qFzQQavGBq* zhIf8BWRckM34%odL{yL)@tlf^rm-CuI4q}FXwC+}1&lQuL{ff0iq)6yMQ~FV=qQ(#QPtYU$_QsrF%3=v`E$L!)EqRc-e1e7n#|gnc1J?^K<`wmz&B=68E16RO!~H3 z1TtyHKWRpE9v*~X`cU1LGYK=}p^#8Cl8iC?eH;jNTKP+)4b+v`KH3+wB!NO z14oDzr}jr5H;(5rLEG_bY@pkv^u1(EGcBj&CoqFcDzjxsi5upN>-vut{?Qua-PyQi zg%n);5%v$-v}INVi0}DGjfO>n2Cxlf(NxGX9JZnQ!8X)dPrtPhcdw1WC&53k?Izh` z6$n#8c%kB$+Hu%nkf~0#q3&6WWC3kMQK5|UWD7DUZyV}1M^!LMF+EYzzIDIeHk92P zW&Q41OSYlzSz8C&Q1`42WE;wEWi{JS_+<5~*oHded38CqY(upG$Ah}4R@+c3rZBlo z_aBL^_72s#HZQxQp4Sow zLtQWEM#mq3ioplqm_a1PyH>1&tM-%%%ZnPX>Z*4*zE;zD1?{wInll%wX(=tLQDX_N zRfF``S$l?y!#t?k41o9?{GzB_TZ5&5xB)&5mICkr=*kC{F*I0a&6781u&h`q8Y~;< z$@<44wBpdR^>k1)sf-|Nu*{lQO@oDLM_YrXYwn&|^AwF_IfJAP8V%SpeI8+qd>8I8 zccv!+6Gj*XT6n@*Bjg#W3N0{Og9RUkEcDr*wlrAgO*)|l3lZ0+uECP9)}g`To$GyK zuIs9mR7=PSNP`7W;F%|^wKZ6lEiOlkWDCXgajK1w5pPxt^Al@SH=4g?zKl-*qxsMI zKAjGu`E8yj6r^J3@Fl6IRWb}8RbU@Cr(h$u+i>_Qguz=Og2?XyZS==r?24uqb~^Sk z7}gu~7o*dxgQO~3qzY!OHv2&8#FP@$2Jq{UZz{*=)hoeVp;b!ufmW}?9EsReP(@{A z_1ZuxBWu@IQyIZV!v~GZ683>m4ECheD=n3g)hnGUBg|cd%E-SKP@y?27l=V@sEnXY znf|0Q!XYS6NCgRrl-f!OE-cqq7RY1+^C6%k0Z1ltmZ)Jy%qkE+t_nl^Z2nbUlu59M zU#jp`JJ3|o3b9yW#L^DHllGiZWxFD{7yVkk3D>TK`eIEGv$ZQR!8+YzmN%RMXE_1mDdsNv^3MtUZHpwr=mrK(GQ?S^yFfTL_9eyqUNJc zNsH(odAL(KwScPIz4gF+I31ROwTRkcr*WpYw1_&W9q9jy77?!^Ud!Fg!qcrq)B;wu zEe5+&i-?35r%8(lYrJMHBKdeKT0~h(PDYF9m5|LLuZFx9vL$5eUv{AW&!D>M-jJiB zwFVNRshN2OR1tH20ZS?B5-^s+q8gjs!_2g!W?Y!2LuSQ@6s2X4!x~9xej+I?2)()4 zy)g%p7M#jYXbQ;vS_QmJs8vxV6R7uhzJ9l|}RV}hfV{tq9 zowdkHutQRnep4;7`gwspKD1gMyR_5N7nU_z>RLJ}e^LGu_)T8+Q~vo&bMu4qo90L4 zpOb&%vZnbzJSUaJsIeB=xyvmjFYmeP6UKWjy^t2!xz7dGgfg?9F*6qj)QvkCEix)) zIds^b*SJ8XMRx9U7(CV@L-D6ei){6BOCQU-d)c2xi)_aWR;}Ujp*J+VR!?NMM+cogEi#(|qI;I^2RZPWVuoN=T_kno zKfIYxA7pWb_0>e2_X4-M7Q5N#pn!I>SHIwAH~YI$X2x+d9SnKP8urQB&1RSgC3e_Y z7Sh*CWm$H!L4Tbu@D7m9R$0PE;T#x=!`B(%B1slt9w9p2Ge}>UEIo&reHt+~)W@s> zH>?|aIwO+DwXTG(E;vx`M$Cj zJRwr7!)o+hb@+D8YWB5HjM`Pm?5Uv8h&8K_*>}_m!aY^$r$vPfV!wbYWX(raQ6Za} z3kUP$gdSev*?;-JZoBSQO+3=`|KS}xEg>T#J2ia}9&aL7^)N*{Ff~0rabPCAraP61 z;1j(gM;@eIck8Xadb{C)o!q;Vr+F(A6n7#g;{G~En+w#>Du11$&8yVUYM17A&~I~B z%Fq0jRdtTYm34!a64j?^^q2mTqwoHDJYf%z{>OJcE&Y#=cWv0S;WOxee7p<#AD`?h zirBx)=s3C5d)GP$KaDoEIM}YLE|40?KX^dnkhb;!m9bOGDBc$DGJ^9C8IhyPOE&7Y*VB7{!^RP5kkfO9*vtLTL{}J>&9LgGP^1Lha zYSzB!VXJ5W$Q)WQy?4C!WRG}P;X`j9QvF|k&{d22Mh{ZoSok}uZ}_xQYHV16p^rAG zZX0$k%zNWYt9}=5`TLf}TSB%wI_QQ`=%5<)gbE*u(yzYJOoAA$KALHKnRoNQ&CCX7 zR(()vg_SvPA0k(pIGvLSFd#8VT^^zXpk1?$Q|AFKP}c9WT}Ia_icl!_6zwSX++q|P zt=2KisYfp27p+GJ?7qU+)@)vc-; z@2;ks2gxr$#WYr#+%?+!$XEqIN&#b&$REkV`_UNBL9`AzK*57D|L@Zd(NBE}d2e*M z$1t|emuv~0)>2Va0%#ua9EAbM7Tw-}Z}=XMl)!zoCDD3sG*eP6#`9rG-A$F#+7;`l z4;-beSVvXyxVja4mh3F%)+o9H&8bga@ZM;n!xSa5?|<0r^OKRYn4oL~xmM7cw-%H` zymAZSga}^agD*)q^rl(XCdtTBn_sfC)mzG9|FPM}1UdNfJb=^DfxCf$L~Wg)!q$_Z$jm7zsqA6qd|BdJ1)%QI@MfCv(`qy8 z6EpKuF75CRF6|Su&!^3sQ!Xy}`E`Y8WveK&ULTv?O(J)xOp1dt8$WNx?FY!JXs2L` z;0_JQdHxF6di+v?AraOH8!Es5`(_I%7YjZUeGx(XelxR3f5i?#G6D*Tf|P;`QEUqE z=3^3ak6iS$^j=5@mmbtXJ71Gd1)4kV$N?a~c9q?DfZV$n3v>5O91p_#sF{5Xe~7A$ zKJX5Pn{EMR{YrKj7*r8jV1#as{%lu#BXZ~y{t)*+Gt6z&L4@a_oyDF?=W6zJMgOq( zDw*E2rq?evFFi`M@i86PL-zIJ6L}tZC&!%4Zwo53y+z~jJ>tMSRQ+DLs97XlVq6Dy zg=WMzHditzv?)dTnpzX_%{zeM0DQyY4JBN^h=4g95*qytGC-vB%5MDno#3)-zJ4eA zqn+r3*e2==CL6MfHg}fY_{}>c2dBFmQlR8`*9$MYgN^sbNmoL`%wG^4RZ>%)*07TA z>@X*|+`tGD%tj=Tu{U@&?NkEyoC*!|YveVMaSFrk&^EUJ38?%k+?em^ydQA$n2 zn`p+&@ubZ)bG#lAAF9I72zOIRm#^O`Y2f}r$8NzI0yD>ZV<%AKQF&^2V`p+|vkI>t z-k6fB*7m~f_q;;K7OmZY9kVL=Aoo5|iC;|AsTbw;puAfD6UaD3bHW^A! zs0-nS99-}>;6KjGjcjQi*YgW;X@0J zr=bl<(@%iJ7~W8se-R(;3{R`&v$<1^9?j`uPe!2}403|u0NJr0iYt5+q%1bxUfuIr zcr9%-;_0sLhT)IU*z5HPqH~uVE#v%B^R_;YBDv^b=1k_U^X0}MpV{gllJbzEm215# zeD+S`Ul5m)iV|mncVyzSGjRpk&vu547@~ne-@Ler#sUx73yVF|ox^0zeT<97cEx94 zM9D4`(t@@(_$$Nl!tIew&iD^04AwI)o2dWDJ0d!Pg4~-W7WG}PTvyP@Qnk+8mGz4; zjL}Pw>O95zj_kh8v(#AuA#K91)QpWw=qxK*AU(y648p!aB!ogPv~cYxR9wVJnoc)A zi^APh__weOP7%Si77MG@3}B;`w9fll>B+eoO+?@lS(ZV#*lnJj&Z_B6t#4FVZAIvF zjUOIE^O+DJRnEex<*;|&&w++2qBGowhN8oe>WeA?4fPBRNzxn8P@nD;G}PNug{s3m zwBqoTEcZ<+f~BFWD0MY7RPH)O%UBCw&ofiip;i?QwQwp;4L>y0!FSYl0eij&-!Wjs ztXFk=zWDIu)4pxWLPMo2J|P+^g*O@62T#SG@4DL0(p1I{3=x@hR&UzuUN0?R=PQ5GYe6q2>??U~Xll@9gWpvi5}G zzJy)iW7VaxI!EnElpYw$x+2O>o+E%@p8_=R-F>G^RzJeh9up(X6@Fr-@QmI6mJSjv z0YQITDg!JzAl*9bx-H|om@A1n8r7Ic0DcP6F>#s9X3#jO7AP+spDKf*Hf^ zzaZ)=*<@=hbVuq;t5kYa#nNMcse$`k|Fk(JZ5WD1b@tvlGyX1#_WGSl5u;ke!ed7! z58%!2)_qN8Dh~AJv;*LkkIwgF!6N=dBNj1Hs(w%mSMW%+@!l@=;0`-(ru~vUz!j^$ zb?PK*-NV^-il$ua2OF(M!LX&;1+Zz*DV>Xw#%KGKR%huwT~}d0CbqNMkGr}?`US+s zfMH$oDPT4~msAdR;gagBLA-m}Dw>gmD^cv*?ngww1HC|JTTGhw2XL!N&4ASVL(KK{ zqHqDAcig&oT?no3TzTjQ2C~ac3ikdq%UWNtouHn}XGiB(J9UspltiaP3~E))j3<^; zXBUXa7P)lEpoBRU9o*5@dOL9jR-$NNvK20k@>HC80vuDO*aC3k(34e}{w+0u=NfnB z>ieRv+TG4oiH?ixPN`8H`jhkKj~I+yE=IJw4g?z`a;=Dwg*j1Y$$o9w38cxbx0G}j zXU7IbUP{ldK^l@tOn8GJ<9(#2MTcT|S-)#{JFD@bEYba>DNT}y@C$buXM?1tGe?~x zbQ{E`;=TXL@QdUlUC^-YVENNE42Bm7wZ{4?Is47^MNwFQ^Z|#iy{pLDgfRz-kfjt3 zh6-tG_75@p)RRO0P8ZS1op+l3_nUo+u*;QhHTq7MiG-R&sjUPDHWeYmtYhEVZ+0(I zJ9y*gy}bZzm+v&;{A&jp72hL(&)eUXZmZ}UOgoBh5rLnXnV%DJBF#4AN`S5YvZ2|( z#O(8>Y&2h(nZ+Wrfy|3niVmz9ZRtwySmtT8iUY2R#aEzsq&g#a!&2V1n3CbSVrCsQ zGrv`-+FC3KW-j1*ZDoRW3)LKJ-R696uK!_2^CxL7;~M*!+5K~~|MzB}AB>?-l8QR4 zKzwHQ`P=}TrvDdapJJmw{6w-hZi}PRpC%LrShb+n_h$DWu&ENqh4b+x=xuGgqiMrPJ`W@fqQD5;bj2MdR?p;c@S`_W80 zB+(H}ofI>yag(Sx+MIth*B^?ykTzXT zw(rb7<@RJF&2jI`vuo@(PnB*UJ$Ae4_Gm`L?^ZpHNkUrz4p{JZnEQs?G){ZAx7Vt; z6m(}1@N}fHDnZHwOe>}G(2A&7C_mC=Mg2nKax^K$@V!YCt0ULHe#;!pcHSwOCcu24 zPilotvh*(f(m?-5=m#9?cSXHL)l!PuOgTrw&Pp#jZ0-6ImE3m@wg4s?TG=UN(;>dh z%TLmjQY}@TV<3s_2zN<$s7--O$9{Q@)B`qPqB>cRU835{BSxLJJJj(JD5LjcbLnzN zw6m?Jv;Hub3f-r!JH|qf-nj+)PAQq`$djNiGQnt{q&dX*<9JC&=4dXlHu)N|;sY;? z*btmDNdG{8No_Ib#6KdTP>=!@!{6(nU-WZG$&v|?UgTDX)>@DbhaGc#)8j}b`x&;j z&4%XsQ1@Bf(bRH<6(_g1Xl21XIad@5lR=y4PUTIWx)T;D6!)n}2nl=+_7=?JdB7PG zvre}arkQx^#jFJH`gv8#<#5#b^&NBV6y!y@*m69NkM0LmA4k@Af#|Sa2)eKC_Owkf zDxM}BSE5+Hptw+RiG8bZm|My9LuQw>6(zJ1zrSWig_#Z-k2YT{A^m=dMs?;WV*C*jonc9Xpj;{^zB41$ynlyA;p|Yy31bv2{#`O!YAxq1wx%YZB-WwIvpZd= zKe1~;RH=~SL{nhTxJA|xj$C3)(PiigYb`L-lx(QPNCQE%mArR#b+%|Kkx!iiKY zR=u81R^Un?cN165J!c83~E4X;C zh+V8&cpSBW*sJ@xQe*iF`4~`{LktXku!&ky?(IB^@9WWR44H!Aoed-YrSMzm|FZG= z3=Co5{R|9&B~hb+p&l?Wlx$#zDFZ{v2Jr`&r`6bVonadodSRh)(I2__ z)7M2;riZOSu>;-2D0YXW!y*oH=s<~z2a);2G*y zsM3mcf{Mc7ktR>rM95ZoOn>9D+z>4$Aw7Hkq5+F;S(LqK$|BC_a5JO^+DX4cUfuEv zEqsvF$Ab0q0|k5ZGbEU^I4vSd{4=koNjPd$Aox#{k=>m1w zr4p&vAS(|AkZ4TPiE0P7sXA@> zGC@0y;#bSIMgxys=>Y&^si$9W0}-h(9_Y*_QCiuJZ43}fvREV981_)aHN-)nC^nvc zf(nyivYN-Uh=ZW6;*tjWm~`zNUoi_qOBHPyT1;;)948W0Z^!42WP>!JwC$0|K@!mL zA11#D7z3#%ba?p~v{PUXQ|9!WJb)-zQs9%Sn(L1vErA_r(Mf|inzap(MI+jt=$$!m z+}rA0;qJmr1L>kbW#3p-H+3X7XCx!e-O)LLp}-lG-Q8BQOIW@pND)AQXEne@@2?@kgxvI4mlx~ z>dzPfq$p2QI)Ffpk^l&E?Opvt`)s0}K&{072hBd;V&N*nE3!Cw0BZ}g3T_ehFibX{ zR<0o0SSSzP3?bpXV^g{3ENlpTkpOi|zENnODFyGI_ZaByf?wZ4HUe7BRm@|(vxI;k zXA)XL1Gn+ZlJ5q`yI*)w*v-~unuN8a9AL>~6tx3dguGTV0VE4jY-aJ2X1d=61ElTR zNi&HnB77*40MP0Lt=dicN!BM#%%r z?m=n1Im>nL@JQL$iGRY(`36*^3)TkkCkQ<*eZh5NO0^4p2*w@JcMal^L;*Afz=d># zg0$G($BKOWh`jC^)bE~E(31eX8D+wTzpqQNgk2B$9MT4MN#H85E(_Z zR7KzVp~e}bJg+psP4#^<^8?qq22}ILOsBj#h#9tan*Ef<)wg~e``Zm z7OjUlY@eC-kp!zkj`XeHh!cElrkmCm&Z>cx)hA~9r`8vhQSt!Hdg85ldL1!)y>E8^ z06aXZVqw?9bLrR2`V2hKQaVca;(yQtFm4#NjWlC{Zt;Iqqb92IIq&0UW#)WPqOEeD z1BcCK%Kyxy52@8nJm-To?b5y81^Bn5(R=j`jV<%q%m99W>Lv73@&mTFE@hVPqRrP*%QF)jNdjUYWxVlM!Kt zKlw*>g4!)i6!(P8DYk7y6IB^W3S_ydstqKv<`l@lQdOHyrO2GKjZWBu$LN83@CFM` zW)?HFhn1LVU()@m7ujduet%-YDHOAr0qU!z`-x{@z*d~0-((ge!@@^T-3 zGgc;RwpEtvpO6M97P!5GK^)@lYQJK6<6t2P`UP~!_4^PWtO3RB$uq!5vYTRWrIb}S z`<1c+^@yx4P%-aWL4@4#ErzEZ#NPGDd)Eqe&1;5`Rc^!Ae*w&$!6>Mn=_0i1zo(sM+P5N5$)mE z?J*vI-gDg^nKH*K!ygbyl^o;l^JpAh19z77+hWjAVYPW;qazablwC7$k3N9D%8qYE z5Vm7;z!ZUr;88>yN-=&eEcQ0Jd+iqG<(5MIMggT6lPeo0ZwjgesWXu%DA=gnq*l?X zSQfyf3}9K{`vU7Uqf-J$#mH4r7lEPI7Yo|V3)EH5ZJPS7yG{xm1bEMIDl|EXPMZf2jZh_!$1SV>bRIeSP3K2S4jwD zJ5&eajSQ~{BlBw&*g>)@0D{2Pd~8#ahWPaXAr8&UD)o&LjH@>D%dFi-cDB=PS-{@y z`jK}vp5vHEqSwa2TiPl>|0%kJW{O%Dmuv(PN#}t~Bj6JKuFc0Q!47FneFW6kl2!B| z*}Foty=AM4V2@3<)+MWC$@_hkR_`Yi9QCo(D{MU~66{^N+RXWasE(ZClB-~W9F#oR z8hVbaVO0i7L+m~DX&`TBOzaoCTBuk)u0*(M5I9>B9n$KNek>Ne@WBUy3%UrxTI1ZX z8-YHzxMDzBL->lfsF9SpuD?+Ik^ z&2FWVep>$ElK|xYViy+G z87@m#1Mh%=s0H`!CP`{@?#UyglXH(r9%=>2n)PvZ6(XWB846~ko43Jwm9KrHY_Oim z6Cc|-Wie_41O(=O+_6ggTU=#i9NBha^G6+dIs4M^y2XcMxH*!|MbI@Q=?bMmD&mo{ zjdzta-0{PU%%P_vSaF?^uY<>}B;ywdwP#-D)r&Pmw`ZcpX2Oq+Db?t7#kGJR`z<%#%B>o zh&L2W{CvW#HO+=O>AJ5&X@B!a1N{z&5N$eg&)z0 zv>`qeQIrtdJ%xoSN6~dsTkztWZ%L8Imd9T9Td@{@NbQj8c1&=5mpzWCLfHYa zr*Y>~uhC_T_19SwhE_1TQxIfz_SgbS^*LJN&;8QX9ZD$k5HJ~MDHi-Wj(S_V@RoTt zJ<;(I>@l1*G@@9(@(>Br#w?tbX8CGXH;*k0nK>;UTLKC#PQuWXt5It6=4M&4 z7?wa@A{#2IM{+TtDsZb{qz}fM2@vUxn6!|3j8E9+mxTOPoarAiPSZb@0#Q7RJ3u~0 z5){0lw2w^?64SVmU*GcruGz@J#|F;6)9xqts_h^icom9Y4gu!X!_};ckpq@`JB^YN z0^>9pCBtqD#BMV)DO_dA&bP!!6v0OE@l=eGg}r(*M#*4V%3(z6w=_yM02@6YVw8#=l~JlSuVV1nC>4r7T}G+8doA-$-bA!{Wsn(Hpy_Z`uo6@{ zp4zK2X%Nh~7wVaDD}bO_ijT|icV#nlBJrKsYm?a>p)Z?#HX5XU zE@q!#lqv-Vqjs`UDswB%c%MQL1!~;ct{Glf$YQrOKwjT8vTwB;D&pv-^6G z@5B#z_HAX93Vq6xKavrke;%V$&%9E1qg2?|>R^-#l>Vh51cR>Uz3x>9rB#bjs`!`c zXq3t#iRvI6Ah{!(iV`may>Y5LFIb9A$&{#JGtcPICZkj~YDD2=AB6(WBj8m*u%&JQ zqC!HHBlr+%dy4GC(zS<6u1tNXM1x{21671UMcjP3Mml1XXzgKSjo3X{((S`;0jf#@ zi{{MFdsvn6^%g1xt{a^^BrcKe%z3l1l9O|Wwvz4(4(X^MI25!wZ)2WNPXZ1Zl}W^;jxJ+mMdrt6@Bj_qtfrJo6Y zkpX^D1F%AIKK-IW)h_Pn8Wj>uA(G0ja8I60?8S#CPg|Z$_Pb0b`@J4iGxcD=+0gl& z;kr38XCf5S6n6a?oPmU8v^zmAu`FftHQlen5~V8bTyGexX$385r8Yxb8u?~a^WCn3 z%y;{}Y85fx1(4>eSDw9%V$Bn0TEW&!T@5rNFPG7G5WdMg7A|;m@JIp25@(lkWx|v% zhIAeN9|!J%eAd{IM|{L3!be=9_=tNUmL+>{IOtMnXOJ5f8$@;(H~-kE#ke_NWNI>Q z&L2-;+#FYXP#RPwjH&xL@r=X^8Y#CkQElwhRJK^p-&y;tx^Z*+PNnR-e<7{PsfdBY zF3afqP<4&KU{aHFDq`Jts^y+@&|Ptd`)_7kLrld`g3p8AA;>4_9sM##q^mg+W^L6- zNY@apf#_8grwT(@!!Qb0lTIv!C~g?nqrb5c|Squp`#aK^eo>hik zN8{!!if^fTcsy$|Zq7G)D^g9y&3ohyNrUmbwi)yrre$j#wEI)<)rKYv8In3Ms-5Qh znwFlNl9`z9PR+`6rzXMVU0Py#n0(Gi9h#VV9~r_+&Twa^r{WoVM!ksw$z64~FI4DfJ{kmIw z^8c>scC(f_Q0quW1JP+i2PULx*QKYs>9<1%{MUv5!$XG-VOo!#w=-Js_B%DFc|h(4 z)$Llxtc>)I8EL7hLpq}Ik~1FefgMAn#gN^>|Fq1ZY3d2VVhB)k1qIQ6)&AYAUCrgX z8#Hvg&uQ$Ie_{C31iy{w72hw`Zq!n=aoTLHqVku@qm@5a9;`f2xx4b|%Bw0zR%qIF zyVcLT{x%G+dsqGJacPu~_3s`-eiDr8HVoTn|IqH#hHFn~FKX{;KR{9#>+0pYEi0vG zYRc_diG33X-F{zI_w?l35;CmP+-rF-Fy<1v(&x8>-WTo7YHKbeC;M)?@dJoL( zmHObdi37EPI|uL7v^H96{GO+N?I&N4{ADPSM~CeH9cyLT|NHW(Vb4No<0c!g#XKR7YDwlQ)*5<7t98_hkf=M;P1np14-9aGK*ID*EaCqXu`ISjVV zVl2cbVeUg%13-j)qN&hk3~4$b3AxZ}k6a`w-2@P|ad?+Gb`%X-94yRMxcv*pB2!zI z0b9SVgm3JN#&?{U(dD|=5?nM6zsb&#)C_{girHNy2ZWrEbgXudV=SAp$sGOo9BFlU z!5rhjxbU~=|01pQDJC5l$JDkD+^}Ob-fQuE{wb->D#fHv=TIl~9RtpHW6!2JK8=^~ z>qZ;TO=NGZdqE;gwWzwbw;idM&}_BpR-jMl4oiko&>_-h<^T9@_&=Vb#8mr6hYy@% z>>FLyuk0zK+gMSIfdAvs;Yk!Mg;#-ePabn3NH-fcM%NO0o4eNP^FV%n2+d*lzh$+W zLZtNCW%oZ!!K7f>Jr^4N?NjJghm`)?rwB$OY>1m4v+7~#*O8RoF5Br6?Q_zO_89^C ze2!3};_fVeoV>vZP|+Ng<9Lm6(%)DLRvcOtp8I@LobKqD;=$hhan+0f@yw<*AhIyH zM9Uuss+C0cRfa&S9)skn5%pq z*ePm|&YN707Ga>MolYY_Wluq#Mz(&GHEV}8kwM{4&=O@yEiYM?)bg^$D6*t>-vnOO z0VK7Q&WcmBq;?;S>YG@)iimYVjN;1|`XA@f=Ldh;N^&B3bP=Kagbg zn)%fvs{{!l@ubSq=ZCF$jwM+wp5v6P^8ABj)to?u=J074gDOF?iZW$tkQ|jmP@XMW zEuIr8wUzD1g+1chiPlyWU`rHj*>7ginN;qb;@to1qCx8CZS53}4yl<4SFLTB{e!o7 zjEt%}@Z_Ussgs4)GBxYg*{9vYT zrhGf(@tWk@2gZ5-KIL>cUD^x7W<-{ge0#=BBJatAlp9*Utf+B-=#Sr7zC9Z&W<=*)yywtzWle^9-8tKKb@U`cSKUdosuHmv5uPk*bP( zdjr4As4p(WxFV6n2vdi}7V2)a7uOC2ieu8$=a<)*NA~p{RIpP= z*}m;m;*bfXqg?qo3maJx&T+Hx=_vc+k`mvep# zNa4dzV5jBlqCcdtcU4HCbv3X=dHsVRMf!41EuurNa805^{&)h>;py{>Z1>%tQgnD| zw(y;Z7uJDTB%(|rg2IK>{32g+(xO8QF8f91@vKR7$Qy(;=rxHBTjVO4+mN($H%ZhW zJ0r=RC9*o0XGpR0c6`AePl&XJ!F=2VwD zk?i9yQ4l(T&`|HdT!+Yr4w}-=KbL-Gi((G3r>CS*hm8HXr|9WvzsQov z)04_4fTySZCnINS$WERPZ7Uvr^(})RD7&d_NZDN@#*FG)1g}w59bFB~{mLPc88yng zq!t%T%Wd(}skvBMPNJvTmJ6fbO7!Gt(3yE?&>up?RD(FIM$yyfhxTGF-t*9c$iDcC zKi-e>Vna$J+mSv?>AU5h*DT>HFg&9T>go+UXXm}qYP6E{SstVO96`;7F@e#wI)dUD z)f_>c&wOcUX#=8C@?EyNE?=Bmk9Ie=c9k|jn^rJ-`RJ!d&mO&G^xV;&L7M(IPZ~Ti zd+ycrCZ2(s-q16I47In{ylrxg^K&0AX~2*{@DbOo3Y9Q`r*MdCWHjWv9`Wv_tE0q5 zE5j1)4+EC2cDJ`lWZ0+PYf*kf&ezU|{9#2wv1jp`V&iV+(dZFSgH%jxpsWbBxObap zyy?og?f@`UWs@yIHPn1?u^$$!zq9+#-q5Bb}qHTSR6;Au`b# zZi9+o=VIf6MV5~jI^@}T6q%c74yiE|t|0_q$0>iCRjM~rL6Xxmi^K*S5|LfOzf-vo zoE8)tjiX?m4E|b2dM19}U>+H)fwQeOjZRPSOD}j1Z=y_0KQ{(^P_kTt z1Y|Yac#)FQ6HL&9>abty`@I^8ql-QJxRs?q`r_2^tM)WhyBF0kPUG%$Rl2yJ(UTYo z>IjUj!t-*6VG5vbMWKk#?>{>_Q1x5A3Gzu>rTUh~Nk+jt6-G>1Yt(6gifYlwReyE( zRhrRirhcnm716U%mr;m|?NtF~jOT{1T=*q0#IQ+FQgW4g$uGMhinEF4Y#LFEP+5ZU zy8Li-S9coh3K>b$nee(wsLL2x(OeB{`Q~4) zq~gqJdLeh3i<}h)hSy(h%zI4M8*B*RyH5`H%p$Dq=GHp3=B@VtJO`K9ro5=LpuI(? zzG6?X8UXz+)E(1@LwNy-ts;m&eR0pT;=)*rA8wp)luCN7Y{(m9ii%(xp6$usI~93L zg%1F~cmT>BUjfANHP}(5g!KEF5T?CopOooqOvv3cA385ImD|Z~z@~|FD%!iDwNJrN zS0l4TG1g}h*RhSE6tdHU@AQ(hAu7(~fSigUQH?8-$)do|DE}yx`?Z-}3O`C0NwcJ1 zJunr1=VSWI-mr;g&e!Jp(x~QT{hF;dKA!>kB;bi(BXKE~HGOhlKwAlxL37@RCNH2@ ztli4VuI6l%O`JNln^mQ8ouK9avzc_14CavW_^-|GrQzNJ1i}PD5R4&e zL{V5pz~d*b%ZgkHW`QIm!GK4Wa0$qL$_?QPcft{_sK|gTVDGN(vhFJFZq%@19M`BE zawPxny{ew>nM^`JboIXiA>CcoRn>LAdi8zpVerc(O@QGIcJ1_O#@a|{wkM~eQe|9x zV6`*bf1ASVbY?qin$MZ-)73e%W!c6TWphtH z9~4RHLd~3^Zjvrv(Bd~?C6vMf*FBG6!Y~BcgY17(=jx7pINf8adj_e*FdTT6p$VZ? zp4xL|xtcRy%ns#~WnCwQS+=dPj(t8kwd@)(Z> z!n%m*#m0lh50|ura22v1#rlZ*8gNOlgXD@Y!nl*Tr1&DjCDH5zTvF2_1DB*tS2I@u zm(&XE9l|A1L!$1Exe~}^#UZ$c3y7zeDuxDtzm%;ZccdiQX(7&x~#Jr_2h#OsgF zLWx7kS_hz$XhYouj6j`fSHV&%_tMi8tad*2H?av}>Jfg(~2d?iEz zM$d1=#DEt4yDKivTQz1M6(E0ipP7j}cEB6eHS|k~ZbZK#qQmG{xDt$D$BrG&Wjn2j z-p^(jJzQ=fOtc!7O?rl6i+kq^iY`qEQAJ(y4N;eMeu zFkIS+&QfYP6fl<4<}mOO=un{f+}aNXd{Ve7hXS19_dXQh8CD_@dHJDQY(>Tq-81~a zEKlasoQ6P*Wx0nOZZ>8pE7JPgLOD{gza>Z*AC%BuuDUTp%nyN$8P*@`xT~mzSJp<> zM)gus)r}bt{l! zA(h`Y88b9Tp|?>rdU3j8mG(k_z3-Zg85$AjO_MQ0Jpe12_dSy_Lp_+@G8r@MHrFs_ z$i*}nGep>6eY|s+$(SL+sOj05A%{V-G<^f>ILyWjyUi6H#^0FX+MVjaxsJ7R#9rbE z>7}9{;s|NT>cB@xi~Wy~q-dc&w?I9xK%bK@C5&xYAf`Ti{xMgME(7FvWq{GT48UPZ zq-*)MGRIiC<0GlS?;S`5IV>%R=i#2dNbA>Y*_$Ct1!h>08#3cnGMfRhxMs5%BJfIJ zMfWcJX~K$Hz;k0@vl-94n81OGYhyf3dpw*NcZQ9)zFUm%0~!y}0M%KP~!T(U*(B4z0`meq1d|%8CKMsd%PD`w2T63g%z#j7{0KgRs75kRRcgBSpDp}z9i>NpHMLkGcEj*cDgSIs??r54zi%zJMT*D z7efvWV83|ViYo(YFTOI6_Pv+3U)-Tq`^B4U0BOJX-vnvP4aN^+zu0K^R`|vM8Yi}@ zYiQ_j&Iuhp%opt6sctVQb?j$pwpE^MINFN{DHOUCV=H$->vK`X{>KjM zlg#pxF@--51c=9yKt;LDyjwR#yhK;ux=c939K9DI)5`6JVxQL z%IBEvu>_Nu3~U?1AScz=a$pUS`WBgMGd6iw2kRCQ+90%HXk=)k(8i%n06qBS&;M2p zFzn&SGm}!PYik2x9fPWwN!fDQSVw3fTIB)8$m6*ttRqipdZe1Ljy{WM?FjGMQNYH6 z**ouBnAf+KSGH%x$-C-@kkumJia+qs>53_vbquq?p%E%|W4vOo`@ z3}-z&QsT#a3_#EsTm(?Vi%8yM07{6C0o)mI_kD%s;d217R3XD>9zVvPr5A=Dt$WjR zADqnGS4OsN;baD%C_LHl@~rX!h5PBXiRX6m0Reu|0Reu|0Reu|0m0MQuzY(?i$Ap! zb0P7VtzpoQ6WvlQL+>RQ2op={AI4cMVHTx8UHA8OpRB7`SG6vp;F<#Q<<4`(_Fu`% z3&r-k#icmovA5Un2q|rM$Y?>k$TKt5lrv z=zdM6b-F;7wl2Dtt>b;KJY!&M15mU%ExU9TKh7AQUTcoSR;VaWWwCFZbHzf!zkKs| z*8nkAck_1?`|6m#qm*hle@8KDGk^ES2C*W7I9WIIcO@HG?JPEG)y&_$wCz&n@1Vc; zF@MMRCi8cE?>(t8zyZ)Fvn@U^S^zrvD=>eDd7)0`?+&eZ&tI=s4IO?P=I^YV^yimr z{;qPPsqU(qzx&}TuSWBCkc@sP^LJ-9xZl`-aVNnYfz00__scbZhgVGI@3^y=%-@+h z6OVGfzpCc%kbkm%Lip0QI+(xXBACqI1uWv_n!g)f2lIElG-I8R=I?Ia<+^c~dXmlG z)!)VY$NIa(eCL0@PkS`eE(*IgGQUUKD%M+JT?A5!pV=ezvsnAv$Vwy!PfO%N< zBEv9%G6+vm>kB=77i^<_pjCK^x^b7M>&?4-Jw=HKhNq}WW=~PY>?x}LSd*uy;Wc}T zYC6s-a-dRS>n!Q;IDi(#g!}cS+vN69tfF*^K@x;?qVZ$6U+=QD7WeBcH~m;XFmB0f z*=cawmhCzXwzTX#Y_O$E%XYU9wkR-Z*WNM=2JVD8IoOTMW_xoj2er)Nznuo-SG$BP zh5my9IsRu++9l!2f`9Zbp24_XT6(rJKpC8xnLH>Pw%=g?&YNs{MsgZrMd*g;hQSbB zyVR%g-!S~gCh1`84QA-rDBO_D^pUlhgyTpV1G2Jm23sC@?6F?Gm6n4Q%7U!y@$>Xd z7@RYki!)h~gNZzt$s1*9mxJFqqb!-Y&%}Ku?lW;uf2ykJr>aWfJN>^M+vMNvzOD0(x~6B0&P*NhY_<|TsEyL0b3&Z*Sn`nMwCpT00h#@5vhqY)>T}7NS*h8h z=}FfC!%|_bF)ejKEZ)9%*f53P&Vv2NtmMq+k_X2s%Kzc5`;s$)bve z9+9&%2V^MD%;8GA6s0|^C$<;w+s?ZJm1xZCIL2$ABgGB9FLhM>Zc2}{NMG!?a&3RKZ>80tRy8F-zPFhkt4$K6%?%33!cfEj>t;S%vRcs z^uDDa0aNgxXNRW`R^sD3DWYYRB<2)yMc$Uws)L@QUenxaahMx_`E$87K>WWy#_9aO zy+!?Z_CEyv-`*nd|4NEVov#an8YRAv{piG5JGpr`F;`45j1eC%@Lj+?-cP^o-~&x6z4yR zJUtE;g*!jQh-cnI%q%g&JU#wV1XG>C!LIjt#=9LUdwRT&sP7l`yq}YJagH-!9xfwM z*M~(>NINE85ff7sCyQJ~m3sPqSfow@W|%ZVo*o}^LFkJf%4?=&1!(K0Yt}Ni?u@yE__| z9T}qG_|!Z*ilHOQ{5t!!#)L9+Cdi|WtrxaXAGfu&fcrIRE?tAYfyM9q9Ov6bcm=N8 zF`-r(vnbh%#mMz@|Ep6M@AFa@?<-XEUX}O~*L?5NdA)SA2GeaCmX$6sRw*uB~#f-v|d%D-K=ay6S(+Hs0Uxy#SY&A_amwYhpnnW zBR3Ik3V_Wyt=su_HC!H^j{a3=i4N9=nEw2>O7B@=*LT^>6da)qkwwCsgIG zeuYWa%{!CMTZ|byFTu5OfcQ!o)0U~#HfP8~JU6DD;?=7L#;_O%GxW|HW>Q&3aN^WK1fu{o& z9iJb4i~K+zQZj#7l=GiO_Ge|Vs9Mx(!aX&Az=Jh@0M1nk>3=_p`v0`-{|XR_W&L@pue977gr2sT(%?Qj|KL@+7H@XFa zT7yo<)7oh8FanY6M$dtqDCb7ZKRQ3%YkAKn1zvYZK!vr52C4nEZb2EwULg1M7}%$Q zV`hQ|6S_|cqb#lBR}joF2uvlX_`OMX+=LkAI+U{oN%~g!$ZOL^G^qN*dYR$tE4v=y*6< ztb|oZTIxvX$2<7Z)AQczY4C`178cRsZQWF4o3xddZ}sN&-rQtKy!Y}=zHh`^m8vSW z*$Na@YJQ*^k>6$q*_B#H$Ps8w<*>lwKsfwbOZmoIEU%OJ(^|@zGV)i!AIOrWw`sYk zq*w6@;;}GQ%un6l%(uJ3%d2CaBwbR*rBbb*$=9tgb4_cq<325a0mF73GZ&c$1o zG+G?8c*dgDix%N$*phRL+AJQwsNN#mqLzzpUes%eZP97Tjl)=EYut)Kn^VlRIouF! zPWfSJbCipu&C#W#%_&~m9J0S!w7DHibpo3EFH3$lw7I?;^iqR1w+EEAtxTKiu_VcC zje9Qz)JmIsjbr%I=HB3Eezds*^spA%9JEYk+T7a(k~W7r75jSLM*e)fO*gp=+8m~} zI?(2@`_ip(Z-12q%uCYdHm#{6ZH}i*R<2xCid$1qO7+d#l~CNUn+`y6n+H1{LZJ`) zi{0z)hotjZX~Aklh?WuRO#{m3AbT%i`%FiE_Y#~Y(#fe`T-p!Gam>)NL`ZFiJx<67 z!Wfr25ut(nkj#*8{a5^u__X-d_Cw-rcXU%$Ptk7P&{;+K>8!AUgLEv^Sh}F;b5iBE z8I3h>Pax`%mLdiwH=zi^h7m$pRTbPR>nDS6i?$Ivi<${{h7yfVRfR+g3%p0~I(ifR z$ZT9EcIewCGCFtRV~Dal93Ss+e!9bnAlVDpY!*x6vgKJB>lMI{Y*{IuQ#|azud=+8XZIKdD=AdUZA}Yh( zz*H1rtO_}OFf89Fp!caF&tJ(2yg4~C>S*sHqToJI(iJso`bxG!N)}LrQq)Ne!q-$m57;ar>K`{4n;<5GKoyim$;Dfu;;rH`D#|yV za_oz_X=(Q)qKIbJqZ=)X8VjJuMvai+Jt_8k71*NFxem}7t%<35ph*2tcZD}_z1}l* zl`b(gjowHD$847I7>uEosUH>a%(`73^a|_rybF`%j;{=?CT}bIsE8)j8eJ4j%h<6tRBB z{rfdy=Y>gt^rsYu<^#te7#O7^Jy9^;QzK*yLU15RTPy~9;|Ncf=x4bY3B30d$>@PR z_Vrmqr*%Tj5iUITeTLqnd+hschx*zEQ55P-y-3Vvk9`O*PHPq2W8VWa$zxxu(AJ^R zp>0B4p)sLtf8qaKE_~|eA77l%SHk%-^%tgG*gunf6Z&vGqq*ZsJT`u|!{o7X(rWi_ zS6koTYC~s)_8EhZt^hgtY=@!7Uc0=)@!1Z{C)Cf)6zcs&SQF_4?jan^k!@r1Vq4uF z=s?o-L%q>l=>BmPA@u*c-gMbIJ{|~Q57f|%f}#bhO}$u1^|uF#Ff!OB1X$Pu{cf#6 z`7!BR@0MhD)A6q@4VpTudfRicQY}}w`3Y{;7!o)Nw zU_~fyHg2$0S=52+#W)sTA?4wi;~Fufvap3Xm4J_u6R$d;!vU(Tm zU4m513%SxO^u;}{3$+kU#U(|C&`Qgu@!(pYXr#(Vw74L9bN#s(wv@4bg4Fnu97%vW zADK|>qeSv%0T2~NO~U78>^$-NP>Q`96fq&fs=YBGKIA10eX&8FXB~t6bP(VT}j;4D*LD6^U3aYQ+=1>4TPOT$8m14!nf52F#%T z)*86wYPHsYiLko02BYq-jo-_mZVWk5z|dPaJd<&k^4 zKk%4kczR~CrCpWjg(4}@-P(u}TGG-L@L4iPGg*abWNFN2;qOxhrz@k=M=Ci3(z2D5 z%=F}GGG|;4@)03 zVA!+iS=nvOo}sdywX_=~8Woq^h_Q*(#);gPe36_zNZfG}6zIc^Ykw){Qi3p)7CT50 ze{PTMa7SzhCHl754jt}${C*-ob?)50Lx=Xa#asTd`J>GrZ~ph@^37ju{&w?)%`EnB z3EdLDrO}qATdv!3!xm-Bty|h`X}6{07JW+)h;3)J&|izCv`GHl=F7P&-6sETw^|fE zA^cuZDE{Ub`g87Z{3rg{=#PG5{B9z@PXF~Q?;rW(KK>IF;E#xKKmQ2{@Q1?bWB#ju z#%`Uk^}kwxpLyoQ|5=KCKa5W1S@I@NoHudaeDHrJPXzzxm5HU!X%p4hvE}aHPaqiE zEzGQeC$RE1O)i!nt|Q5(I<@DddS_l`rI7Jxs|Q%-zzMXzlv&#|gd7hBj2B2~dQ7;` zrzv6?{U>#du&gcCn6CaIao3BNh#t^hiKH96Lv|SKf2A7|<$&b2S{ckvndfvAe8bi+s z!e7-(C#s%#@r3nB&*R8}7ej0a#Ktp(5U?SHfDM&(f%kgny$APRyj+q-6jIg!x~ElC ze~|+TJFW3afRIcX#=-X8q3WfZ++9cJ;6(yM$p@LXLJ$*qh_7%bjPy5sePr%+=~ zD!NE0E&)JQx}>nyjyV(AiH~?B4|u6A!|9byr%7NuV|R;Sz_1$HZl0)KHx`xZ?l)dM z#Ya(T?blaknCLJKZLu5?LUX_I?mc7OS!1o%F`^ozUG#>wBqJ?U{8@6@!fhiYN2T9=B6IA}thHBKh$koZ(SdBb zFy0T@R3eJdKF>94A}ZFTah^3%9iVHR8%;zCH0I43q8SsVhUiYR11QVS+r$x-45g;J zK+RpQkv*<2u~((SBj@|z%QAgXHY6R8RN(;giL{|<={XSFSnlx}0~kIOHUl6yWsvkV zoZ~)CW(1gZ%Tg1^U=syoV_*=(vg~BT(12q3QTVJh|3BSXpZ_1+TYj+oubBTI+>80Y z$KFzB&%Nr@Ddp}1CjXEAY|nLp*q)$F3aZa4zz6el-i^x5S_$f3=8EnW@0P;x-mycc zjvXq8h4#+5UykXX8PhAPy!6E{#|-h@SE@vm$K=MO4JlvedF;(mZv7?ztiiODE zhh+5?2ISGOvE`)|hp||_+~ne6zJHfG%+T?EK>|uu~#jc+o?NXgzFSi5J4BrnUq@KP{ysow#Uy&39 zcVp01@aELfWpkNon*&wV**S>j?vSS@Vepp)yb3 z$M>ptA~{lbUhfzw;@fO{)Sy|mC-$lx<`HuIz)FWD2*L!p65==h4OfIzs*bMSd!eyz zO2Lgb$P>9CGfVB)JI2UsPFbd*ovF?K1J1iQnwr1&4OF zJ+`Hr)o+*CqaEMvF0(e*<*kS3f*=CWSMC>;qoW(rucx9zQH_waAQ_bbz?0+JFB3xT9 zT!fQ*!S}|AWz9|+o+q$CmuP7pX(|6iOOQg)kqN*zr3IbooSCKK;UQB3Z>mA#fiaq> zp&0I!6Oe`Ni4yhhnXa-(p~J1A7Kj{FIH(&9@ym`nSymi>wR#F3wB+0gXR zn9@d`(6aw6p0{b!##UJc`Q~#iyIeei-$0@mh`4AY;Wy9qN|PGIa;UVB#&wK5>Jo5 z`;h^%M+rrv=!NGd;C`X?I<9r2eimJ~R1dob>@P#AWv-|3(|12+gVgzMHz zip9D7bx+roulqI#dbxA!>ln<=r(TC#=6v#X*O2{0k>OuKIi4O*?nmYLmYaqNx5OoD ze@IOga#*i**Hb9|lT`ad^rBmze4YAjzxrCAaE$Jt@z$@4WvRt8TPTqMgT~uJEZ%7X zz5fu7;J~KEHqkpFP>i7QVxp?NC`U~gD8*Pr#1IsdHy!ljJxt!1+?Yk}-RH4GPJDmd z4J66(DIYU#gT_--aSZ#O$l+VsUGnZG{v5Ux=OOlsA$EaJL70ZX01>q)@4e?iQYAQq z?~aG|3$&9&sIHTjPNl^02Id1!Oqcbu#ZE(lhGP0*=O1C|_VA;9o=O=u;)rM^{Q7pcy$yby+HH5@*XiB%8$_~Y4h1yLHhap{ zd2oqaAyz~CSofwW))4IR=mbUX@tQe0nqrEGzTbz9J*}yG=Q)DLlsTT*Tc-AeU3%x^ zdx5vO-Z9wRCg!!*H<2jvU#y;-C*~R%77liAxc;1X*Q~ilo1&iMZuU)q<}*Dm9qp29 zAl(#dLQC`_tsmP5{R?(ww0p)n6$ew#XSHtM!LKv*gJzBq)jrjV5q5KZ=ac(AU7y-- ztExI?yHIuP5Zt30##DRWU#{MtC!@gi8>fy@M0?wE-kX<08v)y^Y>;SwummV43v#R_k`E4#_@)WCzrqtccBqwN_o-iXij|vVQT4?80(?bG$72811g5jJJP_8Z!YRTsRB*-$~Wq z`3Jv~UXG(_M7?tm_0EGZO~k)j|W_E;2@8IUL_(h{HI9yWu%FablHmNLw##3Ue#{!PV< zjp>vWf8>7gxE|9_ErH`^n%ni5TDOo4`v*0|Rea;(bepoptCVd_hW(G?y&m_80GhR+ zCZag@dg4_Pp`1cOQu~{q&Jm}=1c#H{vcb0Rc4GsBZqr@2uZH*aKL({ke zt8K0}@dC6I+VqP#v>4}V^Z9n!#T?OL5C>IcM%DD*`@^DYP_nwAYV>WU#awgu;A2jl z%Sr7IyegI}S%ajG2`3;EHmh_HOR!h^5nb5a$I1ZlAeG_k>@=1_=8)lofKG6+s~x%k zwMwH=PoqW!)!uujy8p9foYRwnOmiOnW zsq@ee1nvc379$il@6RJ-%UyE`*+OZOs|lGVKGfe9Do<#=H0N{{g# z!+uavhfzy@-06aOm*P(IREs8y)O)HZ2=vOs*81s{kFS=cM0CQ+aK{$WNi}W7_+CGot98Tz}F�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�U% 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%0Dnfc)gxCd%bW!APY>i&6DeMz+!+C+^kz_%ff`2C( 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 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 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~& diff --git a/bin/inittab.txt% b/bin/inittab.txt% deleted file mode 100644 index 57df377c..00000000 --- a/bin/inittab.txt% +++ /dev/null @@ -1,6 +0,0 @@ -# Hytech initialisation table for running system - -@/etc/rc.d/rc.sysinit -@/etc/rc.d/rc.runonce -/bin/grlogin - diff --git a/bin/kernel.bin b/bin/kernel.bin index fdb3dc96dad79d764ee60ac3470a604bdfca9a08..81b7882fe4a2080863f82505aaa22944e1c6ae61 100644 GIT binary patch delta 203 zcmeD0W9{o>Wj(o!nSpO3>!Dnsb8csMiGQ?fRs7`$WB}=^%{O!Xix|~5Yd$DUV7$A1 zwgY1dBjft%j82TovUSdP>;C;?K6TIOuHQd420?a)vpV96g4-nPwx7B^-O-704r9gi zdrpk=8D*!}IWuZ=Cc8j17*F5i%(#JZ(ez{&MlHr!)B9W)B^d8cU+%(K&7$mfSYf)F yE2FkLh~@T=$wKfSy8-WAKNdCy#ZP^lCLlrfLkezIAN%g^V>!gLy~34oIwJt&kWG{T delta 209 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
  • >< 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�jq{jeH8wVmfs9MH81G{q; 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 T*O^l8fA{$lYE(_f0H_53lU6Ay delta 104798 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 diff --git a/bin/uzboot.gz b/bin/uzboot.gz index bda1f8301724c7564d02ff68b20c8b24d0e0579f..2805ea7eb36c525da08d5578ac38985841b81c52 100644 GIT binary patch delta 104705 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 delta 104719 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 z f|?PoW@pYaG96J~do2-Nu0znZ>DZOu>@#osFWHBkdJf{#bbbmlG82 zJ5EMfksE-)VO9b$45T7QRjd>woe+ZjWggh&_A8|%t5=maiR^^jed<0JE+O`h{#(|e z`*Qi&|4gi}^>ymq`Cee#(V=@k#>3IasP*;lb8Hq$P8M;=h|TCEm(Akh&XFrpLYCum zFSEe)Q`{*J0p|R@4Vb*ru@DQ__Iq@&(|uRR4Zyo|MAvE2_G+k&_B#tD%_~QbhikjU zabU7VbLR-(c5o8s@zd$P*%xQSHy*P0VWYuUbe2$Jn&G|h#?HiGcOW$Oz;m+U8KEee z7TyP*5et!~v)t*cK@Q3#5PP0Y^Y93t-sK*tWWzVOmXT}QI3>%m?%yPr_U;kBFJ;^7 z7vR@6I_YV*>K=0Xx-ZMXwT%fipImr&l(j}zLfr>8&o&7=pS(afm&oPVsDeE!Ga~MfGo#SA+GK7F6Vpe zzqq`bc;wE!nonVav(as$(%EIU30X?O@?jT=^Is!M3PrCSN1WAasXc<8K2on>(Ef0b z<2ERgOLrG$6EyG8)Q|FPWFC7A4O&Kd$s4(R;vu+2e!*{B)3|h^;2zDBW@X|gkU_qq zo-^2gzRfv*f`4E38j0c57KbH&y*jU-5gfxyGe-1g)q2 zr--JZpZ>1WUZ*V~TUiVbDwhtRdtf+u*EpEyIl_08_WQR*l?T;eTH18hxwN!!<7D+C z2{-%D;qBW_Ia*uMAR1CZ_L{tL*cWonJ{{B~cUt;a!Nf$bT%U7G(3*ftBQ zB-(j5Hr21|=BC(P(c5Dtd|mr_xHQ2jzroHd7v4YSKOPPHZz3q)p7|Yo@eKunO5esm zJy~F%i92FQ@=xc9&U}vxdT(AbyJtQY!6vtjYQJUnG%9D;530)P8Cld*7p$YS(6m*KXk8meY&>bg(t3f=(8%H@)ED=(Ia{>u zFg&t5#ul?$57RzI%TtOURsReuwNp!FwYp^YT#$Zi+?md8gwaaFAW0|v#BXS?p_GJEOrbZV+UM`_Yv}98R!-<0 z>ZrF6<=uP}Jt4jWJP1SC^=C1)a0i)2N=jQ)q%${Yb7|59>Xd9O3Y}(uM;d0bd;{f4 zFBE~;6G^b#pzz6uB_7ykMI%!ZNYG7b%iXm2>J^UDlAZvUSG+&y@#E)Y(WLC)tm@gt zsxp&i$)e?PuM`iIPr%;dU0%=KsB4CELy#1v)zg#O1=C!jW@b*9{DmF@#fGCcl~se zhfa(ARRiE)b1KWJXK9wmEuO41Nu{SRcN`)~28;Su{@?sTAwANSI-XsW{I>4Lol3Q| zhX)n>r%ng^ALDN_PP91`bun{|K;@Zz}RtJs^D!cW>@MStAluPKx;Lg@j&c*({fMVC1I-El=o0R4ELTPFtg zg=YBq!Mc0e#}y={bkupsmkrEa{VfgGaT2)C`$N)+0 zSQo(Togfyh7g^)4TyHt+ACge9`R>!WNEI7sFV*6%*#BNJ6nJ|rOo~LRMwr973iluzL8OsR7}lLCoS7o?$5luS1W$!x2&>M4D7i+N_IBrH4#1!O zY!sRNQ}wO&<0m*Z2}<;zqX!K!hpfQYzv}{HWdsE8{IBGj;*dH^yQD=wz14KY0CXouu0{~> zV{6>!nH^Yo7gNH@(nM>dLRj3HA zuEnh8KM_UFZ);eV5P?S@zD%mf5QaS4Gcfq4VoRbRfn3TX+3Nd@W{Ayy7l>jbM5>wn z@H@6Fz7m-F{Lk+pDBxa7y(aYFPsTNXDXr&%h{DGLn_f?@0$GGis6++>sR|XCPA`q` zfZ+R|6`z7&dqn(^#>6mQyUpRbr$>&xy$cbCT6g%e>#>u61#{vNrg~M)iTO zgx}v}Sl--YiTxNCBxwh?hPTMDp)EW(IbQoVnN~+C(EdB#X3kE)`0(u+|6T?t()sxl zLz?oBbA7pTnw5QjtWr|>W8~Y^-|Q9Z1RHQK;c`^M{NHlU3F6fgh->1FEL_=vQp{|` zncnHmagQ26o^-<(Wsb#=N`nd9KcyLuf3q+b`=*h4h`&sF{C=Z{ekEHp9L(_kDgQ@4 zL9~cJ5O-ORpsn930~f09AeTXqrHD&l$dmQ#6mVB9S zlVy=WMpVw!kmBNBzdW;*rW~@`7wIVoJDDTz;{K1lg%KA+l*o*_z$aT@pe|e1MkH<# za|=q4xMtZ{x3L+iTBhbx{3)k^i}Np6ZiK$L$*`sQHV@A`2G1d4Yy`Fc8%Em&;^{)8 z%Ripti1qWb1SRwBUyKxn4ao4}2sC+np}+4RmzZB(=ssSu?jKVv4=$7rf8Vn|#+=>_ zD;+`{_kEh`?N(e80!1x|fL0F;I_>6ba_HSG8~)|3uGnc8Lr`%(1Q`L$BR*E!UMuDi zR0P~H%R+Dn!o0v+#CHNR(I{zyC~~YeuVn>x0o5mIg$yu80lnHI%H(yKuyPd_~Tq_R8dC zP0U?QWC{s?on;U{*{u*FpnOe{2_%%hfW#(GXLYr=&GjQ(xE=qQ)=uMMBJ4bV@nfWwm=mAMQ2}1FOa^qO_Yz1`p!EcqTs}n{t z1>$5LdNJr@gcnYi2V&?p8bYkpM*80l=COLgd$5FE>aYST0h$$fu%>(0kAct35IU&Z z3_tDmfW}@f)!@_*oS%pLX>%PVD4EFjOo+xvEI6^DjC%1kTvnuDa)oR^uUmgaa0=>V zspelv5t*OL**|!A>pcdrr?&hfNtpXnKRqP?<)Z9Ho0?rp~AVNM?(Ja3Cf5c)p3oxpST)xx&KJ+)=F;34d-@ zyd%8`pAx}ns4gnR4$7%Ux+L$$7mL;9z+-D?Nh%dcHoibY0XY2&Fd5( zvKNMDPU)r4`brx!Xd$(;r)C_gN`n+FNmI>wzKBaMfpKn|uUY*)oyiw56sUF1GkSvV zY+8aicpy1Ga~W70@|8m36-=zT65|uoid_2oB@AG-!z0uw?FC!8H42tn{6jX75YPe} zu^^s3k5QD(M#jGXaB;JEV)=%+{Uv;{$2k>@95UR9~+{>b(Df54#3R;x|eoO`l>3RQrsw>^}9G7@iT z*%vo887unHuJjNOOAjW^TQLbO-IjGkpeMNLURDm<>*N}@PvPH8E9<`&pkEp*4`CTt zkG~idR>PrH+;_0b|J9Wci^CB;5!Er_N)H#jmi@)*SJ<__$uw4ax3n6xN73aDcJN}{0B)nnBT43{hlR`J>W|}Ea)vL}N z;VSA5vp%Pm>|8?Uw3In1ph4e(!eyPJS_-H=%7W{cX1Mz-p9x@?jDIDFCg-nHo2KFZ z9yVAT^^Am7Q?DO%->VrAz}~O2N9g6T_a|M&w^1 zyu1}GHBPF4dU83}{p#!pCZnbuzvNNMYU@X_N}slUmX_POO@Oh@!%RjrB>NdeIA z1rM=j4#bN|gY4h(s)an3y3?u=Bu(p5fZUXgPHx;zQi}_2jL%OtqL%SN$;#87OS~KI zA?;d}$#2Pg{1}%Kp7L+IFz0y>$-d)!`OTLy5HY|#_&^2AkZJ)!vzB51rYgM)ne-|5vZtHS+Y6qFEAz4($6gqHY)I!w? z>fRekY0R%k;mm=IH;~P}4Crb}_k9xc8azZM*l^WEo)={)N{-c7b z>kv%pv0&;Fhxmz{cLr!fidi4(t%(don_o$O+0+Sz)aBqBUY9q1Sw1gQ1I}= z`zo=Ri+{=?7IV>@Di-qCdMsHQtD7ruf0F34Qq zC6^ty?cYip3nxmLdwMe3!TO{X+!*)c#~h;(i&k-yRc`Oh{Rx;j)6x{9`onY&}7j z9du!@fAenyB~HuPFUl!J-$)#r8oeGRrwIF|j!5EmWk)BFeY z|MoVZ#ZkNUe!)52fv<)JV_LC1f2EL1qUEt+!c1u}jtyxwv!d)*<&@W;$A>dh%I=U; zUWeY9C0BRIWv_S9B%-A%Z>;0htx|*8f!S>K0XgL$2#lkTVp6{68X*4>x$G!;r^Q2q z!({sXt6cUUWQ}wvqMOqCRevCteJCb?Z*^1>bRQz69+C!i_sk)+x2EGee{;6xoq3M< z&K!vYXoLygnA7k|$b-z_#Ba2NPQ^8)GVa?i8v>P4SAX8?= zJLMmie_3v+h^@G%LQeWBL{9p8i=6b$5IO1c7E1{UiDn_=Fl3?CwnZmbcqt&sXR+kz znA}D}av_8>w+$x&OT_>af4%Zdhx^JcemXPK(+PCVNRvI_pG*hGS=V^%a^%X;$b8Z~ zE5Z70&$OD`wup=AF?$ntx9&~c(<&#uMQVL~3oHxnYw7&B(){?Ao}y=3g|xRNn@M8w zKTI9XQzx|8W@3gX^ckX)Lm)#4&F~at_<#1U1vsiIP2U?rLYfE(e=0P~>)ymj5+uAd zMwAHT1%y0E1VIAYNjgbOr#tk6Bnp}7v}`jh8DvLSS+{C+UA1OPM+ygsJGe{8!YWL7 z?1;LIcSlx3ZB-_&Of9SeCVT$>ocrttNhY8;bSla1^Zd{Ao^$^1d_RQyMR2$g5N-qw zw@?oEmN8sPc6117e@Xrif(WoQEeM!b^6wbq3E3l!=|jZ(SVVIY*5|uH^{J^&l3HH_ z)Zm+>0>loi%wKM!dx;X5K$7;bZz(WvDS9^P7bL$Eyp(y8lL-M%NHr%xzgO#^&uQ}M z3~u*k9+uscCGQEzb8?34k6RkLjev{NW7y`QO1z^{1p&r-?w8 zCRz)l$n!rvsp#Kj*v|T{e4mLcE3dKDH@MuJnkK}CcZ~Z98JjYT8 zt!Q&S{GS)Vp$wZlQitX>v@TV*c>!}C-G|^J^Zo$Z8-}*YfbS0k%y+~82Lom}!6m&7 zzL91~fd3B%f6N$bQGl%Ww%2#wQx8c+!ErMpfr?K^`6rRROfHUj9m(l_>Olh$Z`XH07y`Fi|N_cMgK`bf=E;l&s&bE9L3Vfm5DxjkGz3h4Pdg{OQ_4 ze*;Ix=G1y39CJiLcEZp1&^8t~$)!>X$clG1R`KfAwJjhAZBHP4ke<$KJwXo!!;iFm zH_vn0vy66v=szHtoYU?QhgJ&O%C40~$>R61mc-Gze1Lm`Y@TAw`p} z4x)gS2avK52TW85{29naCOVWWGZg2Ge>&UYTTwncrD!6YJLc)>Ts(W5U+U#vZ1g4<&-B33kwwOeRzC%WPV#ij~*AQM-M;KEhhUVd&fj*n|RhXq%xL2C1rlaNiAO; z5bhQeI2m-PnE>eE$xe6+u7do=fBd1Es@k9E;So+QR9Vpt6QVrUQF}6mrVT@eOuib8 z4KIFOiZ9nYIAukFP-vJ#6^%>}oxf-igX~ry&hlDzD=_M*J|z-;&qt#?91rV%>Ij}S*sWNDNL(-X#o`W1LgST{34%4KJKe|fS+ZdMu%pgN4#1(Vm9QRX{zsnQ!7Ta}JaWst!M_|B)H zY4VCgQhb|IF^aX6P{n3krsVC+_xH!8rO^tIr$u%U$}U668r9T%c^k~G6{X&%<)?;n zjG~V~e@wO6jDQu@mAu$eg6}Z>>oFruVwWH`i?(-_$6d$J)ee~vg-xv2&Uw`p4x zzwmE!nWC8&Z!2eF^xyh?7a!94Lt)0=8Il>>zi4R8*slzY89Vvf%-FX_WX66c3^Vq@ z?~)l?UesI{W^7*M7V748GI1n^nBDY***Jp?8)5d&NQButhfJ9LS2^EL!falAeFg3d z!VzZU2BGuUiy2{de|#&c|Dh6Q?_Q!3W-nh7f?pOhyYYnCfAHM^!t8usXu|9zOG@)s z=l`x?M!uN;M&7}^z2x`Bf(iNg`G1!;H7_l1L0)FwQw3>xWAgNb*~^zGgxOiS8p3Sy z1qidVa<404Hsrzxv*D2uW@qKfgxMtf;UdiD#j>UBjgM^3fBgkF4PiDfwwGx{mog6| zOPTEfB+PCs&=F?e1s)Lzv!`PSJz;hlx)}(w?*Ye%gxM5wrX|c~Yjd@VZ%V@KI~EU| zFk7Da21J-m4^L#m?4vmYCCtWn10>95JDI7Wj*Oc32qFVr@``Ta0ruvM=Far)IY%ZX zc|p&VG*BR2e-QoKd-yoH4e#xZzR&u@?t-^1lUlxj_e4v#b`!j989$1n+R%OF8VIK_ z3hX7lvdz3%1yOeMcWQ$ws)6y!lAa#>(1~_?f z^pPy&Y4@hET@9tekq>Z^lar4>bbJc@GIfKpBSoZDf96#(pucSsN3|uH+Q`07zkkHT zAG$_l`&2xP?p=KBXrX#fp6vV3J+51edw)_Jv9~b34IJ;(I?}(GDRqR6ByMQotNeOo ze(WHe<)GQab|z~?Q8vBZULP;VQ4N!X8MN!r9j}IwlgP1}lmz>FmPOL}n zPuR$6>&Z%2O-oXif#gCuUUd+D#mK3=4JYB*}OW_3Bb;&2WuS%|OmFtS?{SnY(ET&r^ zAlrX{fo9Z@`U48;uF+1hV+6<$HC$9vG((|T2$u|1y;Eagx}zjEbHSR_BwyFp9rU+9$0 z`^rKazSviGEyEYaWQNJ`g`Di4Z1`djtE|X|FM`%p*D!qXQs8!}b>inXledT0UpN^a}67in{p~jTOnlbd$+jZ*gxBe`e2}d#mw& zn4gEa4BhvUK=7;iEacQd4&N7X>hQi*dp`{R|HsG6{Qo8XwykZ?pYAO$@pts*tni;p zD));*ZZ_9d>gy4wEy?COOMO6@pN5qA(IemQNlW;)=L3yN07jTUD6any4FBC-ugiS? zuMd{b|7Zk0f1_1`KA(mSe}86c=ZRL;@IZL}{@Q_%{MQ1>|Gy|C|G_p3ZZPdX;~gh2 zd#A8=ro*~UaC=(s+|c6|p> z644`%P05v7`uZvkn{xHuEqzr&Y&JjlF~9lW`Yb{$+1(|l5KAK6|;sVZ-I z*dSR%9kCh&2>biTo2G(&G9NO*Ua&g z{A72Cc5b)ilkwhJx43hGk2YTBWgdjV{WQd&`{~(c@#EHRaUSy2^cIjf$SuSIAB%sFK;w z=0D~?K+`ZOX{1m0Z#mBuY(5{gCp9{Q$eO|3&2`R&%Ixb;=lu*nJ_*RrZA(am#CghN z5Plq8jrj5LfBDog41Rnr;KvL7Dt^4sPx0e3ARgk!r~9?|@%lXC`D`KaJl)ZmOYC&0se{v)!qob3lOjzoXlvbQ*ErQlz zN-J!*^hf>k*ZB2Ht2KV&3Y}H%2dALxknqOqS1bMW`c)R>9emGfgkP;bVX9_8;61B( zeq)<8FT>Fj@}89;VEB7h#7}q6>g3YM_pG{>4*H(e=4G@N)q7SO2XW78qwb#7O8@n} zXSH$QfA_3jEu=$tSngS2=Q7?ak|zf?J6!HhFY;?tSw()T%39-3dem=JWgYd2Yqy41 zWfAZ7TSKX`N`q8cwBHx`WmOi*R-?+oK5Z^1lDxExNn%iC75SMkAyiq^k4U1bvWoo4 zq-4-FF=JF^apDB5Y`L1kUQy!2g)3Q|UFiH!uI4xYL7fX>Gt%CG@CH%0<S#d<*Jlrja-8CR?U ze{_;B0O*V>zOH~y$b|tq;gJD40EyQr6Ejcl{T(=Gx$`zT7A+N~1{>ad- z$gFG~(iNFe*S;e2r7zMI8Go27GCRJ@D>AxfAMPtMhQ`lD91$*b2We$&12u!-9Va>gmG@N1J;~%m4k?|0(J}JQz+2f2G|` zGS#@NHV8AD1sN`IOC9(F`TRTgTkb>d4EGWDG4~1gAKY2)cig9(#Qi7td+syt9QR+` z=iC=u_pOThfqpJ?SGcR(w_G3BkJeSA_z`?GKa!8(WBE~h9B<-B^YQ#`{1|>LpTH;b z;3_UAMIGev)r$yG1R+$4m=fB0CNtW^Tw#b#AHot|0DIRjF>RlPTb{(ozstpDH9 zw&rivyned3d`DYHZ_ZEK&LutDCN8MS=DL>pdc?{fWpkZNebFP|2dlRUmqY6R!z%tS zw!8`!-v0qCyuSh#-d|=G-g`bjbL8TgBR%3+vW5Ec#|5q##qOSS00`(^e|%0b^~`7i ztGaLWmUT3BfcF1`P!NK!YWTOiqWxXzt>-!p{N`xuzh3e&b$l@7;GRQw9g05`jfjI* zfF6+21rolc-xUPHf%lK69-nx8^6@DPgp1crg|Edq9C*KPR94)g<<<=DqfzERra^iO zgs&suAI`KQ{y`4|7#JL4f3=_CH;zA*YF=C@)x=7Un69I(U6*{NYa~ys9xN-al%D(i|MUc7Q?+AH(_PR@^f*|boh!2dM=zkjV%h|w)kNjY=?31 z6Bq~E*f^-NIHr39x7E5~zQEBhE~}+l`O@gJd938yQirqJDx_2kjW$o6P!C^br#JMCUhNx)5{+g*(JH3^|BiEo~=DVy`k}*WDa(W#e@+`Q$ z4OSORilmd`72I`BubrfB#hCfFCK6LNGhb${^xBAL4Wv|QfAiE^8r;M?*NgZXbhX>u z(4Mtcht)+Pw(iG0=+kI%3srR>VYT3Kg5WhSXFd6!VIqYJstyMem54;kLLTb9c8{%r zRG-C8!dX1lYFWZ^(ifUDGBSi>C+R9KD-#h?bCdKJ4>8$Xl*;L9mSa^5b)*h#u<@nj{{)J()J&nXlvl};Cw z+7u!4DyPF^u{qp=+ir2!$>q%8re{pog-zGW+30eTe~!^$w~&>R90Q^ZGR`d0K}h~? z(zi%7q1xKuspIUA*Q8YI8s1vp;AtlEIXzG}f{U!vglf4!*vmADK=sgZpbjZ$8`T{L zzd9O}PO;K$wOie8wM*zHC`hEzTIH;_5FBk29yW1hWXgr2uLh zNNJ*j%RvSv5xL${YpW6*-ug;1(A2VB{V#`l1_LL#y zI2|=MS3QYI+lx+H94!L-qPDr43mPMMJ0JyS5mTv!H2a+Sf+7MY30~+kcfLGBD$^mG zB;^qEG;yf}Y|0@Mr5xs7O_*xkaI~pe-KPnpksd~{(_zgZdy>*c#Y=PM6TvyF%jI-& zf25xE=*L-hTP6IWcZR3Q!>x2|a5x(s0=mes$Nql!?e7*>=!V?WR7fs?17V?WR9 zfs;?|pg)^;1Oq4Wzx+vr4{B%2ZnM#&Hxf6+wJ8|aky$PV(nvYtFA?uL*ZE_g)zTjh_) zqsT=uN?4ZEUxVv~?5H>Qk))m(WKwW$ej|jeb83X#H3T7F_U#2kz<#OmfRwqH2W??* z;jed5Q!~IMURx#`_}eS3dI!*g)g-oTist05xXgaZaY(A^Km#llWm3x_g#2}!fB&jh z^8QNl?8|=n&3(tt6lecf`sF@QU~bA@$e!%k&$6e=>?hdM>TH2M71MOPXTzHFAVD0*&jCX2z4bbEs_InLsXG4|G$USY z9aPceK(TwE8TNYaoI_8Kf68_p%AP0Ra^0B?`Pla%+kV`(dyr$VD2S8>=$betAvqeQ z?n8# z3+{!E#@G`{LvmTsS=&f~@D*{J{%;fIbqrf14Oey9uY`aG(mk!?6t* z9E-xJ7u@9ey1WXQ_4}&&&>IM>YKJvdGlU9?06K$gJ>oq=OUg9Ec8K-jT8M>G&!EH} z8j*B3=xC`IQQ{?_#*FeWqTEZJ(o3}a&fKK#zN+b&cGF#6%e$<1(uRY(4Zy#jL9H&M zj4N`(UFNkKfBy$ut;j^6c&0L+0qcWR3=} zcrZtsC71)7QB#xo4wwVU(=eC=$PiLP)^zoeUZ8mg7@ z43=zwr)ps^Hm+XipN(As*;v*;Hl|*Wjl_i+tHVI;#Bt+XT(tnj?t;hNo_8LmgJq=N z;)L{Se{$JW4Hc1lq- z0p=VD06MVXFr4wWW|ZrwA+?jz!I=&gE#e63BU@HF@1oH7(p=#|vUW-*Wx^}Fh~GAD zDfmb1WYoz1flsX@tei|;>X050xs<<(A`Hg3f7_{qOqmAXS$=Vu@Is`}6l&%nL+AaX zCg55R(h&M^8mr)!pv4gPq>2cfZasfy65kZK@L%2B!fAoAc#nFoT;!1&yr^?QF)@!Z z$*bA|rO`sf2mu~B_n%$@$qA*bZBB+co6Ti@zV?ncEtWsaaD=r1I?Z_B9IVbDb%U?O zf2)$`{}zkWY9S_fBw#9}E0#xjTWG-)-yhXUIu~@wbc5ZIH=Hm$BV4{fAA7z zKU<>gL%I85xVbX<{k>FOs8-+jmg)K;f5ZWcb@W0O(5WC(o~vg+6*?RUg1`D z{y~)Mfo_wf4QQbuo%Cy`6jm3o_v&(7e-IUTbakRTB_*D-`5-1Koe{{x;QoP@M zh$ZVXf7wW1aAQsydF{Od^HjpD4q-jlr7zm~HSse4%_(73G+#ga)cqdcy2}=0o)arH z3|JL_0pW(X>g1u(2QJ73Fj>Qs&^`8v6#@8jy<%W3<~(|q5gn74c=E-x3Uz!P5e=mBaTeZfZ-*1(Us0Imiq)D2g2fIKlgIlQe1rfJ=^ugL%HToC^8`U-+ zad#$9>0a_17_AMnWySE_T)JOVk4*e@xd0})BW{|!MNT_C#W(F8fAxOSQcm`IVI5Bl z0Ps5gUH2$m-xeohVM-dL1vx`b4O)(z15ODG1`ceEE+=tcTzh~l<@%nRPd3m}%CX&zzJry%{f7IPMWP6rR20%HA!1cE-a&mODU>`Hr^*a-WBH&01LKbJm}0tY(IPOw z00XlBsH;?=GF&U+2hJYMVed+b_DE9e_8opMMTgP?v}Fkd8o3` z5{HK`Jw~A`$dJc7rDwN5!cR*{!pL83Ib3QUCzaOs;|Rug%;V`+-0oI-jAgr9d~X7* zPL@gAi5|)F8+WHvSMPs{#l1$gyLoRyn~7k)$i#q zTt}%%Q&_;_f4Y-jcUu}^)eYo_mf=s4hushfS-(Dmtl!joj;~fCbw&tGP~KS zTi(znZ-wMTaPn)A+&EQe+~@#;TCOCRI<}tY4to`t)aC(ul3x>tl`*v+;-<$^%wtDh3ud>f-0b{8K|Yn z>TM3J-ozPU^ss?L%oA7$R$ZpkZ5z6lDu)w84_$ebTYIsHg1yxrJhHLe-~P`l~D7{I0nUDguE`v%D1_X(l%hg z_+LB%I2vTR&@P=&bu*2y6E$6KQn|+7nt@=ek(~epo5%D)71qQ=iJ=9?;{oED^l(xd zll}tZhcq3Ya!CM8L4)a|j6h2wbU{eynoRZA1|N(Rb__o?(#6nH43WTrd+fjt=2Ifl ze`OUEV2cJnSSJt3Tq9T~>FU?vhPA3!3SpA7&N9&z0P92-F)-E%4%1+ryqzB$>tt_! zzp+l}y#zJZNk>1hPC7JLCr@qpZm~`}`i^y?y18*vuudlFuueqj-2^tzvQY-h1`z7h z%#^G?biLBASL1YjU*x3)@oJnfjZg8Oe~JpS5+{9)pi-$ux6&znP^rjQJt`HQlY*mC zRk;*Yswx*1AQ45hI}epIU20US0R@=Wanoeo*(8QaCG(E&Bl>S>)m8~=gf4h0I zN0DO*${`WnnHt&r$JL=!Q8CMC0(du#fGhy3XTXyut_rr(Kr8Ln(22sBF?z@jy1pN% z7G*cz74nU>8q?1jLIhdrc&=4o)^2ZW?e;M=;=?jvEHWQ&nw0a8FywamRl-a!PhP{^*$CNOU}eeaQvs^e_qEc#XF1t zT>S6Fp(Q(ue_gBv?m1c_1NR)XtAKm(3jp^Vw120-Jx~e*?tw=J+;h;*fqQWAHxIa{ zWCI!f3{|GC zwwI)l``|5dUYQ^DkRC$UcQ0;vX3NBFTeJ|m+qU4Z&&C=2$>L~ zyfE6xau^RRCtmA@!wb3lWBgJZ4+6-YffB|$<9*^BLEfsyj8>7Es71@dRE#Q+uhKj} z*^@t6G`N5^e&mD~lk}DB_QYdb!&KYR0>V~YX+LPoPi>LWmO;#FRDWjOM6C`S0o$1Y zGvY`5>kg_?f9#mT#i6WEW7@RihvcA6jVclDIj+ehBbgo}s{;Y)n!5f>gL_iUVHt6< zId}%^ChRnnfLEvRGMs2rFHs?S9co?RWU3+p$Z*(nVd}qe$ofBm<~?K%tmXi{Y)vND zpWResGcsvd>Rl>y;(8ZFC*HOt@|i7qbmI03>1W#lf1?xQV9Pdt=)^Pqp%Y_~Qt#sE z#JE@$Ix*=3#L?!1QyC>XbmDp!BgPLpF%83%DCorXt|(kHhE6<*JKEemm1!kVKlc7NFH@PF2 z-(;Rmzx^g_r}UfcH#wrBOVwI|9kse#-;JZzj+si`bdFjZD|L=q+0lyD7plt@#1|@| zI*>0^5_lb7s2#q(P>B{Zs4vtGf4)!^2L2#@p)Q*l#24zJO1&@CWmWz4g<1h854=4C zfB8Zs!iGl*2^i^nw6C{_W5s_G?-R#~ zdccnk|8HnI$NyViXLVVBd!&2*^11`vQ?u$$MrPMZ+tcHP*45=*(q4PK;8|U+0{a8B zx!8Vq+p8<@mtQ~yFz!NUOT5^cR&k+Kf2io`YBmjOe0q7j@Z5p}Cwt!a>pf5)5Pq1d zMxLtKJm5CtKnCP@pod24hi5?sjHiN>%dhZkuMCV*_lg2#clej)utqmQr;8U4Z}^W3 zjC?@J3zosj1FcU~{>>c-Dgcjv7kGIA+!_A&h4zixqLy#?UDN{n8~^gWRT&f7e-#xC ztI)0^!B7SpTZJmZ-R2LTsQlAq&S8!Kslh&cqO$dJWl-!x5+exq;gCw)O#-6+F+}Z! z)B!j3#|>y)>(=H71e%rjP8Q}CuFKA$AX5Z|6=1n-Su1b?)tgYL!jIC#6UGz?0C~g# zrgGO6J}NNeSM~{TTG`&tLX(Y0 zFqv1co|u=nWMWa#Qq#(nx1ElzCaUA;NS5PF0j+Ba~+Yh}IAx zHOHYuooLb(IV3HoC@@b{fACm1Zxj5C8;Ac*B>%u`=(v6YXN3(3A3Dq=#7wyVpJN}e z{ygr%geg;}O-~eNq@$M15kJPijo3#jApV!d8Cu)2V zwtnpBTJ!DsDeLmn?Kul_R;I7ECl;=mpJfwfW#uR4tVqc!OeiQ!f5|GDWzU~wUz=cG zH9x0dPPQ#|UGcP>Y}P!qfkyabJX*L5|J=iVl&AGI_L^3E`CPB`3;{mcz67rVV(ua(omrjwC>bg zo1W2%I}Ro#LwqoCe-IxNWVnUfvLQoaSC1oruHN2;Y#*ciHkA7@Y=6J1;oILf*cN^a z+g}KC_C}dPj87x$Uj+VPvS}!O6?sg&DLsZ9pNJ#ye)|~8{e&uK+b+z!e&&sED7=Cu zi$eBe$o9$D=uT-fH(~~Bw>FgcG0~gR1m?T+*_xDWkE^l`f2Yq@!Lw+lC~9bn8Q?jT z)QFn?Vk$=YpP}5(IV=@zogQRu7m@X-fKrd4#7|IuJIX!U+E^YFLm#yi5@V8Mn&h$V zK+aL)e(5v+jSjB#3h{4xj|)!lMiO$u4M=I>LrL^zm}w)WU0W<1>{+twRNv6D&rrta zIQfW$P@E;Fe=a`y^<5?jSwH;}S&vuo*bwtmlyO{+$%;NB7fmmz_O77avr}p$*4tjt z6UG)n3QQYxGOGO=T@2KYF2~)xmunOW!$BLv7(PK9C{XnSUOr0|HKR0U?Vueem-L6p z3aWjexFvah=#@;+iKV&t82*ce|9)FdP}P9e-3~%T52r&6c^s0!VH-Qt zxn2BywTxA;Cz~`DE@o5;6Kj|p7>i~qIA5xUf5J3zLnB0ENQ5v@AZqx*5RaUK6Uta! zfVh-t()}#yeA25GX&ZIeX^t?wqOb>-9ty?nu9kT^(ub!Ih05t>O-d@h&9_MF;PR{k zvw0zqazFg{K{en=5Y}Wa5&0>b!nn;6tI{(Y22~S-tp$) z?3rc)=d|#uQr=49CWT0l{TfHgQM8xP34nhiBja{evL3@Vxmk1)UeQT zqvOryL|q-s5T^~#8JdDfL&X?c_NZWzPGQs<5_-h9M(!L~>}+j;4Tl%)e@n!K{8X$a0s#lZQ*S_$fa$_rp%HnV?NGQD@F(Xclq*cm1QXtB z<3dp;7eW)FjSIDNF4U1oe??fRBFKdR>(0i7)CB6+jt&&LcpJn&pQHoROzf>B@?X8~ z5keXpS(S22mBo4>>Dk9pW-3X=RiUMYad;L^5{FIODr9+pKgbVL2hBJCH84~;{UD^` z^E2yAI)!O_YMDuD>FMci&Dlpfq4D1kF~x-l{5uVxl)$+fR;}f2e`kU$*Wz4iby&Fm zs@;wkP&atocogz@^RdQPd`wpHR+4aBnz z(PjVgS+M11E8d6k_#N?Er69($13k_b*O15AFsR6D^t08Ve=Qs?oVL;@!)Ys_vyZHx zxj?7eN}m}{E8B>nXu`!Kw2X|5mgs17bIA}`7>~R>Z`1Z!A~J;2f8+4R8#caL^zbVM z6t9N61D#Kxjg;*jgPGiXWwe7~54zd}e zw{eViply4zf8?Bjk-pEEbB~d}_3C3%%6rNqIph=-XKwX{iS!L97(UXM=h-5CpT9qH zr0=u$cRA8`dNHk#73o{og-G8zTcj_)jbG77-@496`tB2Zrbi-u19s3&K|6?NA8i1kR&#Z&K5@P|`mv6C?hUb*IEq=Ga6e}?< zQal3*bJzn|KNF4E~BNbkatfaO)c9<*A4P>0?9b8 zH8s_0NZ@NFn-x;wMAUx~y6>_zrQhzcA}+(c?O-NBZ?vW=m9TfhVVUyLl^2ua$ZtOL zC|nB@+lr6+WLJb+<58dZv9QLk&m%9L2L40#e@v_nIn^tJV!55hG#+CO_v zz|aL<+J{cg;A6#&P+SSgSqnF6XJ!Ogs$lPdM280y5E(K|5jFsA5~-avR-aQb&0JGV zv|Q@5SWA=C`pYnG;nY6XHHg?SwTC`tmCr)thWor`xGzNOH-}1g>PeKGEh=kz72pDA7a88Kk7xxOwv&rx z*#dA(=lk!b90&h52@f2}FLd!3CEE}_e_}T>UBGd^x=f`Z(V{qK)1CFKMV@(d`?l^p z$0_*KXzb;6jo=5CSZd;l{Y=^u8v)vY-7cDkPV8|lkO(#4U(PsZY%ARALmC9eJanti zS{`>S7hp}#TFDzzmGzTD#&a8!TA0R^L7J+}45bJ^KH><3IF>+K<5(=J%z>IRf6#GQ z6cp!L4y#;B6@WNS$A~q<9?O%^sv$i8P49oDzeYU@0rgxah=&U(3=NCPQ?Pg7DY&jn z4&y^qhw*jYK!Fh5NC@smmv9+0r~a_T_rDQb2HD9T#$~WALHBSONJjJz+{~v|;4<_v z+|fP}eVDW;rLT|w-B!F9a2|`-f8)dvE(6a?hP()pj58@%o>~_S*>G_YDTpINHVhG0 zmcF5{Ea8I>zFeGHUHcsjKB%r0hZ+$5^}!P8K(HW2aAvg?ii%W-#S2c>^po<9d$TFa z14IGj#rpfqm0IWp+0hI=NN@Bya;-;F`oqm(xHB4Ikrj--Xbmp3pH&Z1e->Vx-LYzW zN^k_Umw@g40NaZVZcnS>?E#OoV8}$H_8VkLA7M2ROc1oZ4dsR7piNP=Y5Ef6!{)2w zY*{f%$c9-vA#@R_ov3Dsko9!6Zog0kpk`8VhFUKrI2&s9SCiRMA#72VG+W*xP0br% z%Zs<=4Ya)q>C<_gnnv`)e;Ehv(=@?ZR@6dB#u6Zv6}57Q3XU?WoI)l7r9}{;FhT-D zF2z~x+Gy$b74gZ0R}m6k55cR{MS@qU>o&Yf*@{0+cooifH{qo*9J~tN9{tZP7w{^` z4!R4kvU!ySuX5X}5NHHaW%mukt7Mjc1Mn)7%0t7e{9x6OR_3n!e{E^n%J`K}mONkb z5B&e~Qf=j}D<3QAQ_{cW=8_>L3rqW#oO#d=uX5We6JEvnpaQSL9{^s(`QR0WSAn+( zcoq05;8mOtN_Z9i`ksSVxns4kXCU^+(bDe>yo%=R=T*9HxOWXV+^_i%US)o%4PNCI z$cPB9l8q(o@G2uQe=PuBVO5j{laFEqyn>%Ol9 zg3B|jZNhzb5M1g)BDgr$bPvJh>CN3jaJgmkB@tY1*c=JLe`R+V1eYV_-y(vGZP|Ms z!9`ts@W3+3mlVMl!v}qG_Vh!WONX%7EBh1f<`}A+ECWE{>vtFy8{x{C7D|P0Y53D4 zXQzg`utq?ekvB_$HdAT1zpiyw)()+z<@dMFqRlKQ>mu4rb!|Abnd;ihLz{VPZ78%E z$GXc#o3Uo2f33K>7SLv@Yde89Q(YShZN?g95ZVmS3PhXPHPO<}OSG9Gok5!s%0gV^ zPN2=awU(0-n2Za@r958CU%U@q-0Xb3mZ&UqY0d4+YwWNx%WHTlnvexMMYq*Js=O`~ z(em`T5V{ak!7S{XiToBP%oY{Lc*TD4$Kg)ZF6N82~WYkyy`5D97S0DVA$zZ!_P zRn);-9|_U-2NZMs87Y7rsg@}gH_BEY7eoe1%UFw*E2&Y=6xne41$2snip4SoBl#%C zJF?w{GpY}(k$*<@VKoGNYO@dqt2VK+yPZq69a<0^%J9zV6I~z`?Fpevw4jCVtWlwb z?yQmMXaE~@c!LQoG`5DIg$6uqK?{j8=sPjmXLCw2p@n#MFtiXkw5ZTRb>$x(-Vg>_ z$k-47E%f{b=hj*aT4*cmz<~sH)PLUzXd#bqG4D3C(AHW7TIl?G z|GVqiBp>ySG;IJagpa7{U|VZdXrYm7P|>xuR-W?V0EEa490@>Z*v7B`LJ1pt7C>nC z6hRDE5I`uTVmt`HK0n639IGJ!Luy6W^(+99*vpx@H3|SxZVdqtEw356v?dUMXjHlL z^V;wLM1MT{i`q~CM9YEzi0JUit&spk{Iv=I5grZt4BnI1H;SGF01)NYh|YunAfi0p z6AOSSw>39ZApxolaL$IZpuqMc6$6C>lm<%F8dBEzX#5C_J{q zEx{Wag(ty#DHNW-W_k#PM>c!eC_G)b(p?IL$A5N-n_X@xSJMMal6IXJ>$vvkTlj;) zcy(|bdfGQ^cg0HuD@nD_Of=U?*f`G^WoM14@Tn1To-UrqYkz8ZKC|?(%>^>Z1pYJJ z=Q>F0`+^znFS(%67H_zZX+rOAxIg8|pYi15{NJzmzpcFJ=N;@mpXqLj8=B4cIjd|+ zCx6l_dD}A`14SSBKgZ$A?KWkt&}f?xat=~mU*qRrx*G4nj< zM1zcV=Zv!R#=0+zvM=>Io7&X=7PI*%P*34h9COUm`&c^LzM7U&f4jyDj%Ox!ZFO=YBDMPj3GSPv?G6V1FNu{x@7==96<#(`&`7>6`hFHp6pFAI9f1 z3g%NE%zwq=FMe}uOU7R?z*dL^n|j8IJ4_F?s8T@Uvex2>`ujnHij{pZylqDPu{|G+ zQx+0lku%JA>5Nf-7QO;SJ@WU@%gGjr4_)G&#p81pP*GQW&NxviNwx$bRsI{s=YOmh zMF!>ED}E)(K^yLmp@=zhzQ(Oa{pXImfqz1e9R)eJh<448DC414WA*1;R*TQc5_!%` zP7Y9^F}2OeKL)PFG3fkk&Mq2H&m40U8Q!zUv;w`i*eunm=QN3kyc~=mPR2uZ%~*0wx;w@yACrx*xNq9- zxYpfmlctPs#qck<4yUX46J^+!F*yI<<{92kjrz|TJ|7QCOI(ZVMU*7<<>}4#4tOsZ z^%q^kov#OKb3yQH5usdAwOQ2AZ|+=KX{Gc3zQ8E`!dUVpO{UmgVn+e9aer(6x_lfo z`Nh-GsPGVP`&>tg-1l-TT06sif>Y~BO>)9Ht^~`9cvFCRO$4i@uE|jbzs z%9;%i=9`=t=)stK!kBroX`YW$dZ+Xy7g1W>eE!I^kyX1$w);9 zVR}B+Jm!uzN>3R}PJ;o`Nq;|ipH3NNr?b#C-I7OkKcqLxA?ZV{ktn<8gt7W0@))c0 zVFu{`s|iHYOIEr0=9J98t89rD=Z(NsmtqWUpnC;b21F}-Vw4?KkFM;&hW8Vr{-`n_ zG)$5z%zNCZ|H>6_bsAOyDcY3+AxyT>Me2EWifs#{AM9=6d#FZiT7Uh43wF79{r7_V zCMjG`vYk+RzFr!@$dg?oZIeDU;-p9E={f_pJ z`g34d+s=*w8z&ksP*P17sjf6>L_TB8Jj*Y1tBUY&2YZc>_)QGQ;nNhMA2A#Q%o}Gr zQ0{)@$dIBE%1JS!zlUA|u$epVmKB6rZE>~vosx+@yr4z99 zkRo2X01NfD3ZXQfn%c_C*^0ylw1Yky;=M`uUe?hOXX7Z{| zS>VjG!{I`A59>LZJ;~JPSYy1$Uc!p)1x=&f9L=BE`Qx!a%#}bIz|LTee}J_=9C>ALu}ES64b_6k62Te zHLshj%-um<)PMa3CXad*{BdF6EHl+Pd>ZHQ8Ja_?6>A$yqKt67L7ByaiQ;sSpB8M; zpYkUc`VURAG_)j zcnZ!3sv~f`!*D*VXPOV|xmQY*rbnkR6tlb)9sp31Q-7rYTmeWEvBCt zEU!j5mr27e$SB~_FP6;eg6k4pwD3Y@zbY(6lZb;RpYK7ftdGVk;S~0hMaVZP71EML z2!*BRaE{Sh+6qT)$sD<*>75F&1Kha9vIE?>B_IMx>M}Y5Tw79fY2aEB1QH6kwxq}g zTr0h>x_=K`YdP_U2Cjt{O5obM@W8bJK^0vCu2mJrJq=uYq`XzEE9x9^npFjkqWK|p zYLuc*&6uVthVV5p9yD}Wv1;N9kgc0~CE%i@R$6wmrsv4h1y;Mo=9!2l!NH2lprVn2 zs?jF;$R$vBEnu6TMcsXMy0tI?sJl;Z4nW-%=6{it4L)Acd$$^qlMY^=>>*!U@thiy zQn+N{%+4G-a!Xs@s4e;mC_>tGTPfPYsi~=^5r8lw7HO?b4drYMIFBB%JRyHl-nxHK zt3dffJNMfM;6=P#e1&+Isl$a>64b|r2s9Dnj1^WVbc+;Qg2F?<>)RIDG}D9;KtpZw zn}3dR(jVQ7Wy&@~QgGtrd(DuPWT}M~X3$>x7Be6w5YQOifx`hBi)&+OKx3g8!Cqj$WPdNRU$K8-zh*D7I<}p?%yzJy>=pJZt7p5| zYwS1db@s394fb#BP4*W1ceb1DVSe^o_BPwge#hQn@3IEg$o8=&_8xnmeZcm!57~dP z|6~W)LH1wl5c_ZT5&IwZzsz7Cv){ABteO4c8vT8%f5vGeY|p*55hJe6%GL8H?|<6* zU-kI^14c^x|M;pq9>3%7_qWZ6uiD*~msr(2v|p98EI&tUa+kL{SI)`N{B9Nhze{NT z!8rYR&aEZXDEjed7&d9j9#Q{8TJ=^5PL#ECUek z$2!hh!0@eqJcX7l@2~i^>qXE0bbs&KUlyf%*St`0e1G%1r@T7>hFI~85&6>pv%i?WV>WEE`g%@cPrca+*6REht5c2x8MKJj0*9ToknO8W0)WiTpwN5@=&z<#ykqc`Q1 zzuCd|Ri>l?81$3(aW*^gzR*HLIy1UYFzj+J0RkK1{NzFWK z60dB=DO<|YG^@I0$q-S}n)agXv?(hLF^vT%Q7)?B$fVTr8 z2R(j_k4yttER2J{5ytn&LY^v+T!mL`O1hOnD!RaNy*JG^DU|rvkbg)ZB`fFfpP)p{ zD?i+^e7@TSQ$%jwOlz7|o;_5JT9+YeINUnJ6J>a!^@m|GMuc39S1Marng*^PSgo)K zI{L^fjs)f9W}|743x-#UZAOm~fDwnFy}qbR!&vP&w`O<`?{Y-@AGJC(Yz8hL1Zwl; zyNQhSWa;2EkS0~v7k`YI7vXEb6QG}N=;zk^u_6Gh!Z6~YTdC6_ja*;Ws7>XgHwQgq zJPuDd!?~R197s;?Cykk>U_oYLqv)kJ^@5RqQAEIy3mbs@!B7#=Dn!SiAGzjq@=-Qr z5-4Y)3wL!H1n;d$xB(OpyjfiU!JB0R!Aq{XvLJY~IuC-^w~!XPr$F%X zz)m374|kiGMdE53wwoaLKavqPB1X$Kj54yQYoTcRxc?~{BGN1Z=vf4=5O)xO9f+I%&(7RY^0q9+< zB$n1ZjkZOi^H8Mk@#Ttkf9* zz4l51&}*-hT@mqz?Umw3zbgNIQw4w?{~>!OR;TL#dSV_-0KK104h^7ZANu71=uul@ zf99zGdSVzD=n6!3c>sDQsa+0$UZ#mdrZ9-S?tzKrbrmNwx_P{>%?0PJbo^{4GAX4Df$jXQ+3&Au6fUAuq*n z*s$*d>M&N2+wwrB_81T(KOD5jOp!o)v?VhNzpe4wOeDXdSjy3#OO7qh6$n#)ZUN>% zJX`2SIy!hQHM^h4&W4MX4k5M}43}AM2?9Y;TEx?7Do*n4#9G*ZYBTp|b4VtJ(M!p5 zG=I8@y$Ud6DFdo`p>Ye%+Yg_iVsY+MLKf#;@Np2{CMJU%D|d&CX^=0Ik}8$V%JR1N zg|8;igIn`2`Ed_)?+xoCCj9;LW*o5f?f=<37r3gbbb;@)L|&qah#tqxvtg(M1X$|H z7>7(0yDDgbK==UUCGrdo;*&VQIe5V77Jt)J)9pG<*E`kRX3Ux*r>4oy=%{q2tCRg^ z`nem?AVzWjN{-V(C7yr0r;6bJ54bCGgL60+s3r4OR>bP!Iq8j4)l;q$c5Z*b0P9FVJE|eVuHFf)7pzwVgukNq?dC6h1gE z)CxlFheGY&aP8*7Gx=~=Ca;HC3u@0rEQ&ADNg|jE7iVG#86^_X^+WriBVuQT!cSc)Ak4n(aAZ(w z5F;HRIGbaS+U|!>e}mDrlWxRy#Hj`R`gZYv556a75VJ*cLx@7#y6*ymTVLiRU5sV> zF9!iwr~g1KIPFh?fSYN+YzXj&Z$E%361WifaC-nA-{4Yl{9oqo+ka=+afql~3=?ug z=90WaZdmSQrbcOImtmQ)4QNlRRSM}?rPX11LL$>SDaNULx*;SXOA|!(r$kXbH3lY( zl@!$*)pZutr=*LOj`Q~`Ro?&;SDXW?AiO;2-f5CXRF^qFj%`81e8SuE#76_Pmsx^? z<#_iOj2*(U4QVt9bbk+W!87g7v-gAd&F2v)A5jrxIG>jV z(@f>8h`d^O1X_cV)XBa6aw! zLEwDa?e1_saw}bMJ~&E^^Wpf}74lrc5OF@_9iE)zLEwBIT7LJMn6A zVWM2Nn9)40Wo(SERf&!9wK8l>2KWO`&XKS&K30m2S(+nbW0(vX9;{6YC0c=v!O^bR z7*So6u`wBzqkofgJYZuc=4h}n$Fuppb{QM97gULl3gGm*!N!nSqENZP#t{8|5ZD;@ zvM_vX%wD?!8*^K>gUi-E-bCw07n=YZLk{V>$zHn>8}m>R(Vq6&rOVC(Hb%Q>=8BD3 zmFp23Ge37Eu`wLKxPn~_R~8$S_%*RHi6f4Ufm=Pw-+!vW#`s$)HfEwNY=TXTjR|e! z16n*|V{mj(i#u$L$sINZkAMDF5gUVxRbXStJTJk<^yRXeXs|K_H?klHeeOycl&Er^n~A5bk%cw^sdhDxnB zMxfP;H-AQ;)r&ULLwrMjG<{mz87~6}$MFB;S8gG!*hZ9r*@DzNaQJBKiLL z;=z*dNxH$4?-Q>GmR|MrjFRXxDysn{h<|~so(=}YaISJ-5CbzNatC5KSE&Lqgf@PC z5QAt8;vU2R1&Sbs3~wL?m2u9{Kn%($n2`oCq&D=hQz)uEM`W{Fy0Se+$np=Rv94$bh?YblQcjw=N>;7Ng>3>lu8r_Pn_rrJA{}&~q1!y5kLVt_U zJ?P)iVzdM;Mad`yEkn!Ez34uaiqg;ul#Vh`Cb}PGp_OPAT8-AAY?Om?(OQ&;@=*aQ zL`7&FDn{#32`WWps2o+GO7sA#LegI++tLcd14(TivgdI`OZeuG{?ucCJJ8rq9~i(W@> zpx>c4(eKe)XdikTInW=_eslo+5gkN_&|%bp-a$_EC-g4*UvvZ=MSuQQ-+vtouaE!V z>3>NBoc~2!Y-LqNVR31}^}hNx{tM@sUu$5XxuPa-ogr>rMOi_dxq4G|+`^Q*=PzBj zAdpB@6|AkOFb7`mv2UOM|J}1i|Njlm{yY4iI?|iEp?P0#;>PCAu+7cl@5@~A_c0;K zGhYcBaPOrL9`Uy{4BjKYj`0$d{_xK>I1V>@c5r{ULGps{*k}yc{eK8)PlB#v^TBhh z3;NFL4tdL!8Iac5~hH!mV)c0OmoPwY6Zv^w69ms@^| z*-&lHH5($T1G$L2h-&hGRzCg{GpE`BeN=_pqR9Y4n6BC1fH*ztx__KB+SA~zO@NpGBuENJ0ffm4T zf4@OBytOs6|J&7AgtqPMzg>+*2(Z!rV{BS1LVtg(HMOQZxuQI+rXZsrKW$x2QdMzk zu9;h$Tb@*~Hh(#{>h8*_HYaquxX6p9FZ2B-QWN#@V=ea$G+Z8N>N!&5f6{_@R?q;rwZ)xh{Eo3{oCsXj_5vF+cx5!*)cnIJj z>7s$$6SzLDs`}tV+-p0VXr11<1m}SmyN>7BP8c#> zxe$`T^26JKONl)VK>ptcD1nL7J>BF|-w4Kvn8a4dNF{a8G)V!gp~<-4NJ(Ifg`1^k zaXU$A#EU@3`S0hyhri(9e-w~3Y!HuP-KrGb0;ZQzEf-5tiuUzsC;GCc&Yw<`W^k7pNYP9$#epg*9h{bU6Li zm49ML$~YnE24T%dLOL|&Ba#pG`M~MBh4hbc=m#u2IP@LmoNm#E`MQST!xnPLx69qs z1C9TxN7dSgacfu8Yl51(_Up*W!#(9M_9VTM*g2fU{6t_e4=!AC{J!>FC{MxZB~(aI z36X0-JQ+`bVDf@dbZZbz^~UQ?S%c@n3V&u)1{Tw2Xit|h9zt{^ge!vY{>#YsMFDUy zj~zVQyVywbijwmpR=Nzpty3As&7ZSD=Ti?Y1-n)jq!;fu$R<$EW(kB7V_)6)ddN~v zGh-ac21v3x|A7S5)u7RGS#U)odLw9Jf=_{U=!Y;;(Ba`kKQ$?rh6Hji;X7R~4u3GJ zd&qHVsY}mJ79~$8CG~JCvo%4*T`ts|5X_w&Tjf+2RH@=M%Wu>kN;Jjcx^v6g%W38o%S+!&0lcf-Bo++{iXMl$^#DY~N)yX+W) znFfaoHKzsh-=oE7x}N)qVD6=kN`K+>pspQk#~`5Ya;Y)saxplEe1*$D59OW_YJ2oI z@#Cy=D-|aJT$3M9(eHLlPZsLV2(R`S^}Q>5A^OvFavs2X;fxO2K;sQ27!C2A7s76f z1$mH-xb+Nq;^;y+x(cfpqcu&R!_#eSy1+I7ckdY?sVDepu#}BkN>9W+ntv2C?r=?^ z?Iwz@r}wp(&uh|Y@wCb99;>*??H*|Od#fQK^SIe#H8HDqnujZyrbFsWLZ&&TJiHOr|-zTur7~u-rSDX8!UalWF>v({7N-G`ogCrrD(;(`;?N zvSgZFgD2C>zmF;@BSNMj%72iS81us-rk06184inq@d1BsPL&ige43|`f{1oS9g#$j z4ls^6g2h)7aYb3j#OKfvSw&+;1|%MbO(VJp?3bD)4YHn0(@$xycTwDpj{vnbnW^#> z@a`tyGnzDHzl(dp1ht@v(;rth!Yedq&pOt-eU1yXd&%uYR9yMqQ-9odF3=o0?rESo zbO84V&4~nPPKZs0=7iX&hZGwnjY0gURwXp2;y%zfp{_^vIpWBvV_*<=dEhLMMTOd! zgMFw?eu&g}MNPITo>*a_wj($T_tO3S>S*d*DazcO1{Hwv*AIh1Lav38$9s@$Kkw%c za$UMMyXI9uJ>F2a`hQP|TYVci40Ws{_YZJ}aHnTcZ{BbkAbS0`F$Ztr_0RTM*LwYn zqX3nZy#DC{z8*J?K<(b}SetN9)p10p#kbjsZ$JJ3-+uf7zWw+EeEXx*_%?gk))rm7 zx2MCB=tVSX~S8xo5Y)V3X0d3@xS7^Zs)o{R^B(fPaywFRZ?WngkKgdodv` zg84@1ZuL--aS4?M7=UP)M7LhbY6+l-B571+l^$PDMVN*v?S-X(QuP1FYLc7@D9rkB z_qo!rRaA)2Y6)v-;kUNX3)zJRLtYUFqQS^dh7aJ>d&8orbb>oG-D6Si%p3@dqRnQ6 zuqa}-UmJ@;Mt^>Zk0U-qX)tjqAdfv4l1K&-q+(>JU1GMl-LmDt3_5PrI+it%zSiAo zl~U2E4XL^CQhv95NcTa48~j!Rc2hFd6`Q1kH z^LNcJ4)TNUk>_q$rh%d`Jdc7){TT5M`W2sOu#`VyS${Gg@?=S!n=@6rG4TPaC?CaT zBBdVVUIbDHDWeoS3QB3mxf6htH@HS9(*?UmL#heNVBKlP6r)Kds^X;Gkw{#qDlSkJ zH%V0#C7@1LhOzm*m*~@z?I0Q4)PhgLW8_k4YEh{Fp6xBOY*)tK^5@0$>Ep)U@>Pq* z-tvMpw0|63NtI61sv#+zlUFH~&SOz&qS}$BR#MVcN(zxOOu(vs7oV+o*X*OpiMvd& z?viFxMvr6BkC(uF1w{$PQ6)s_T=WE0qDRQNXqPwVqFuvwF6vnQO?56J^Dv&Bi|E|U zg;mVCh>V`YbuRkrTG_d1$67bG_@uC_?_4yk;eRSP7yYooy>rp_wGZb!ku!B|NltFg z$JrON|ABx1lADoZ%Q>FCCc8L$TlR+R-{ux)r(~<0i*~G)oQpQDQ8*Xj18^?dxaNvF z7eOh^xd^^8=c0{kMCT%0{Kz>MwdJw7I^y|q*V=2yxoCcgqUwUFeY0SC%}Sh$+H+OT zMSoi$!mD#p9g$Ew7uAz6jdM{W1bTHYVpDJ`=OVgfAa(II>0FeyYADV{bmSY9a}k|7 z5S@#B*9_LVh@=~&a}k}<;cwDR3y=wzO)naF2@xKbM`xGsWd654+_BylJMo|-YT-nH zHb^BRzGsZQ|I)cU)g;$&T)%g@b^YF0Fn>JP?^i9ua{VrB7|``Qy}_I7_d$z$*Y94- zztHttb=pVX^;>oFXL%*(sU|~b5p2ei`N2Cuvz}fKizxig78(^**BoEptVS8tH{(#a zw8hKLx0uao&T>H+X-dN3Q(ayq$<(Hp7gZxgj5wt%kt|91?9Q54El-YO<=Lp@SAW1v zj&xrziZFd^(?@IW8dWU2RVX~i#7R@1S|t9~W{Sj*^Ef9vTy6`S*^A1wDYz|}Hp*?O zZw{+#)^c0$JL-#GxGgyPWw+dxc`n=*da^TZBDVz>tKhbfHWO~k^F^#C8g5Ibja9}C zw}r;NtmL+2+QMrK@Dw zywFw1yQC+&3W*$muCmLOu0oV~uXL4N?&vD=Ywa~jSD9Mug|2c-qn57n=f! zxVy*fI!i~OdTubgin0FBk z%QrEFDMQCU?P!{eT8l`y*>wGIlid!|*w?0(WJVRp~9 z4uIKJ^%SkYC(Q1JQa6}gI)4QfcDhwT&wZ-I4Q7`Kc54Jrwu&=oWO902_w;33v4U5e z6Ul5e=)OaY$tFz~`i^!^w`}RYix}Q98a*@ekyUG1dJK`Cz6?t*B0|2h5P77Bg!EuJ zm59G4A2Pkk%DsV<3p@MJLX{E$MB+gz@rGZ3xTY?$JL?WdOAV?!Fn_mp1`3}gSDM-L z$N`YRsAyH)0XjR~W7JIrAk$;_yHJYM&( zPI)Y?gvgyER>oIR8Dpk=SSQ%dlNJ99wQS;^i2Ezjvm2C`1M3b1kp@uRG@4z;hxI>o z+*aX06=K(rSM0g<^naTDpzHyu%if=hi~NwQmAix(FUf}_rCvars&1@gJ@HPSzkiI(1UG`yh=xOrEJ>J z#XtHbwc-e%R*3KTLFp3&(|M<0y5J|6F5+kEB@P~==U-wWqkkYozuOKgkXGQD**c8)QV%cH zU_HW4nOp_q09BOd*2Q`?%5U@RaY2XbDLpzr4ksdAD4E_;-5>S(oJJa$UVk ze0N0o>~M~2f`50L&syboo6lOMC%QLi2&HbVdXY zhs7nG&Dy)t+$_Co;CC5*MpT&3j^0Gy9s2bkLRA-)6m5P8+2dubSz0Z?9oyqPV$sco zHL7Fsg3ESG&yguT%y)z+P5X~QL0ImNMphQKD>@7n5Hb(o0u5I`$ zanTGHLbqT68wAzvLFtlyM)1R(ZyM%{1ZZi$pc&G(FBEFd%6$)-+edcwVed{1?mJq) zL+bFWMYD~()>#?hhE#KImDvziQ(fh<4IrQY}d>|K3W zRM(lmgODmQ3Nh+vl6nW@Di|XIjvtSq<(mv>QvG)n?snvwyQ&O(0rA5;v_);s<-)_ndR*-a8+B z2uW-i6z1M@?)iAnd(J)QJ-_#Natf2utP7&Jxg-DQBJMFzOSVoGqp7|xM{lPDu}Z|%yKu0juwws^g5lQ!`aqE!qT!$ z1%Ju$8^yc_?Db-!)7@(G$|;kgR^{a+$8Qp|Z4IpwmeqAbLT;JT{ zXyEm*LykFxrs7-@yiTkjm9{n6TH46ntb#0)ncPhiE$v>>*(kQ!Te(n5@`&WtrHiE? zPLBtq+hA{NL9u4#c(t>I0M3YAoW-6yaX{7!4*&HpTrtYTpR)2e& z7aM+iRxt@or-k&|c7bN?v%4D|&JIX8-&CAO!ZXAQ(zdO(wodAZEN%5x8t18+#*Z z*EXdr%1em?rEL;T4u`$T<`6x0JAa6;ywp@m%9EZdmf39$Yn*M4PMR;%_f>gimVDCY z>Fa_O0?A`ticMzHrs-*7w%fUfRMOSrg3MTw>0*h^+Z+_0lj>T7vlXu@qa(L~iLDKyIY@o$dw^5+nMs&(`8#xtcA-Igr#w zF`pDy9&K7$T@E``3)P!wMZTHHH+_?sD{B%&v$wjuOyBZKN}+KxQiFo@bhhqtI$G+P zMD1<$&UP4bFwJ6%rIbV`3V-Td2`cJowv(a9Q}1qZfg+X{<`ok~%t)hEY#~t`ZXyoS z%N;FEZM0bBS;eLT($h22~wqYhECe-L@^L?l^0sdNI%Tr zs_V8lwG$P@A&w=8nggkp4JV`P`zdWq<<7}Kyf?PG{;g_ zW-YCNSn5hPF~&fjW*C#}$>8m^ zD<&dByf9EJUAxAPjo^nzXXcR#Q_r=vxKPHscjc11L8n7-ma2tEWY0A?y|##1pmVe# zsY`lYiC9Ei?nN%F+o4x$@sD z4deoB>{k#&b*kbKxN{LA)Jm5)5{~)9&?7^7*i=O7$Omlfl}=aWuuXaD26Y0il@DSdT>`=;FI@rx*jI%E?|R|QZ8`K#*R|FY z8RJa^;6e@bxqr+J|GcppVE#~ano#P-v|!ju!)FqDInrAUMg;Pm1CL}}f))E8;iM#H z0-c-KEe*Vp1<+qZF2kAAT=h$@xnL889j-Jt@!J?tfQbH%Z2!7!o$g^;17_BpoA|?E zT8y`nV;#WK29mrzmws1!jzNCIyk+Te<%)x5=s~ZbO@B+&hm5iiqoDr}w(WtyZlX~D zCrtb$l!o1UBP;O(yfj|Z;o_JXt^5zv{>t!^BAZn?ulS9 z7;rj=Mx74~&2QR&Nw7S0>6>r}V;shkOFBWX2~EbghRYZas$mC4^B@|607sNb2-Nu* zxmdYU%6}zk^QV$}v;0%ID+`l6pvxy$B))cE`S%jtSKbH}oYH+|R=Jy%6(cui=0!8} zznRa>XXZ2Wnfc6oW;K=S@b&-ho~ylAzf0EtyL-s`-_dh6sjbJ*l}pzDg=GEz zRvlUY7fOo7zLxCnkTe+{z(Zs30EXfE8yx7Dkbl_^zD$t4Z%~TN-WST%x8b1w?Sql2 z_Vxz3`l3ZT``W<29prp`p+tq##LyRs4NpmW#)T4KzWxev^m@C0$Q_$&0zdd63&Gf zyMJY?6Wt;tv*q?4_H#&0C)a+6{q(Bo2l4cv6;HOzl*@ZDa@{3)_W;quqmst;hiMgF14LtXE$$$&5D)2Z}(Cf9QrtMYR}- zvG8#AES?-C-lDuiz{dkmRByv4RHsM>jDJ@|K;O{ly0FoyVN53s^hv2}IPQ!S1lE8xwHNVo99dV`BV0bv!NVRz@vD9|pW1>3-VXPnxh_H#!PNqF6Jl>A8US zUBpN1{4lWnBNB246jA>-^o;aD!wV>w(PE4aE?4K428{3e0>&XC#PV3nlJGdXu9KN@L0wWw9NY~alI|jb$;k;&Oq0NA)zVrYd;41sEqRvcZe3hsceVDG~iNt z)dWexvCRn-qsjC&_I`+T@}X5rXtTiCK&(}kLy%uI@n$oB3?5bQ(}nc+nZh_zoXH?k$T-3# zlb|(XS!<|DK&o~w(DAOmDg5nHO?gSrkum47XP}=2y5jyv2z11Se?EaWIMJY?fcJf9 zZ`KpEO@Bw!%2VMjV!c)?#DAW=kiloA>Xi8?BMasEnkOglYAK|+Od`W)D81EES&xw3 zDouGgKXI$#l2S_y6s72W5$LTn5hK%EkuVj#)$*d~^j3zV3DaBsmi90Op-bNc=&kxx z^j5B(>7}>o8$Z3(Jtee}r-a@LRU+~M+;nt_b^v#vIN|}^{^F@UfPectHuk!j-UGO| zgzPDdHc*LQq~eN1wS^t0&q|e!odS)iMd7;obt6mqqW?wO6xg?r>nhk06`e4I>xwp! zhU*IZdt|PwWx#c{%NOLj+U28MSA3wEYsmB|xvpwTNZ=Dt)>E&+3D$1P*8s?0^&TPP z5L=H;fKdLfq4{;-=zm#>J?(jtt;;tQUWcZ{$6@1(o3L43>YuZ(*H%c+Xnr7dOMXpEa(rBjy{xX z33Oc@5(+w>rS4uYm4cQN3Eh<`lE3qD;NUXRv&$Hs26I;Wx_?eDP*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*tchwtv7}EcD3;4QCPA_>`&hHPHt^IWEPrHp3G05iR%x8%E@zL{Z+raU9H# zld+w209rMSM!O>?X=9z5kAM^015|CA(-#f+h;5;0bYskK1IAh1%uo1qY2r{f`8`tO z0!VjuJt_vg3Wp)=0)#~wD%dgZnn5UplBbEoe6I?6Kn;PBDK_bN8%j!W5>6 zyQeQ2cTeA>xqEu8UsdiNwls*u-Gdt7f1!eL_gn_~PnNsqu^mC~p28hrs4g(GFP^*S z9q9|;?n#ltbNA%#D6Xog`p@c>Rd-hXu<~b>Pk)pD->F_um0fkLa%ts?%1xDNmHVn! zRK{1TxqAwC$lN^{+ZEhBO^#Tn?%y-6LtWCE<7NC(lNe8P?fr;+S88+X$C za5p)b`A81(IX2)gcPk$pDeCNnn+ugU>2J)G-UL&Q?ETAM;Vg_9yI2m2$-LiR8!U>v zqWH~Sbz$zpJ_)U#IysyIZ>O_Vxi$)EjMQ}Y68$2gBTuRp5+PX(l1Qge7a>TwwtwI? zLDJw@f%}!Nga+Yq6)lNEEbtmN<9Lqd%qO={gTOM@0gS?Oqb_`6!+fcajjX`(GCCtg zOJXRI9bL;MXiQYl<0vaiSSwYEyJxevM-4ai_K>@1rDr2oT@y1SZwcXM3Q<EkX-7(mYWM8!l8&X`+c6 zn4|N8pg|lvirz=wyoyGW_F`zn9#bi zT?4wgMaxPi-FE~fBwP9!B7a|hd!Xyn!12$-1tD>C9V~C!u*3AdNnUKjw6*r})=Fvg z5d~izI613JoIg_3=wt6z@`9h`|9JzwN**a{@L>b_uQUYRDOeoby8fej>l&Jo6dr>g z4&iT6R*`Q%oc?(O=RIb85lm92UvB_&DN}MXAvIx&W(2+)^nJ_^v2zGG2H|XXfig*$dGH2+|tK)H(7kwv_oqmnZA_Q$l%M``TSEJcU zDVDfo@|&~u{%7lTb9}UHIQNFd5xqp~h3>)LISSL-x%)s~q|&7Ev`Bj#)3{N5N|E+q z4U?L*ZVTkcs*`i+e}AKV{`1k4W}kuquGvQ!;JiIa?j9`z+@NGQ*&CSwjs*XzHyi_8 zVF&{peWf(}I0GEXR>1&=GD8Nqr|hgG8V0y#A1h241~?i-t1oX_da4RtaB(?l7~-&az!0}W*#hHXh+C#)h?|5}nSWcTZ`N9Z+h6%O)bF@O~amEcTmHg{-P`=1yA2@ zUlg7`EOjKFJ`5a#r>`%Rr|&ZDol$uD`oi(_1qFCR^7Q$eqww^dJ*egBYo9Pr-;1D` zygeiF^et0Hihqe1X~x%Q#{XyLGxM4GXz~9GR&e~k)N|Wk-FEEMNVx>~|L&f%Nj*J= z$2k6fbJbY*{}yRNe*a@Y{J+N`{@)8i{3FBqUzrfBf8Ig=%TZwch2w$s7XqyRAHR55 zztYWN91#DvpsHVKh<_w@2O#PZYu31Hfny1A|BTxqUVorrjkXqty@8%C-|DsP5^MrJ zy}sSm07MVLfEAuO<%t$%_%n|>>s;!o*=zAN`86wqycaFo#$f{(4^G zlih$Q+6rb_^4QDW=$W7!9ZmcR1bm}FjhMV8@l`p#UZy08GdKYr)FBKi^6Qr&EB%JI zy6K6$Kz5$b@rvw_Elzb(XQl8X@n%IH^7?Fd6@N1vTO%IPyV%E%=v@ppiq4Xtg*s)i zPd=g-)3`R8vX-MHO%VGzSgpPO7g%~j*_&hP?AzU ztj6nPlw=TWcC1ETBU`5$I*GC!8#+0!@KnKxg7XEV1=A0m{DbMbpp!o-3V}}k!4wrb znSWso1D))R1f4v!H3*&T?cvEIbn-{0Q0U}Z1$1(4MCc?}it$1xv643ubkcgAD9L^_ zPWw+QP?Ghneam;r|NYypSXP%xmRXj0mL$vVmbz{8ET5RwK)-cmGSKf%vjXTxE&%9vr+;}` zfqsw+1Ny;N2K2kr%z=I+`>6x^y;Y_J`n|X91_JtRvZ;Z7zmtJ}_ia-F{f5T``h6G% z==X6rpx-BB0{w2ag#!KVt_uSFh=^}UpxB^l&zU!~(SFi?0_mBjcanjG=GaBI5f^eBfK^gX`QHDnl zWq71F>1Z#RYmOIX_{;4RL>cx)L>cy7C(1B+dpMNgUsql?%CJv?GVDW?VSnFvP=8<_t(h4w0{Q~FzvA#rEwMGATaGxx57T70H%@PP+;1NHZ3sCBb~m# zCIT?6wnhU?TTx?pQ~^wT6!2U}Z4rQJ7}{AE9+-wIGY()HwIE&xFzrz#FzqjQ_)R-> zvwgH|I9Ehq8eZaRTlc66n0B%PfoYG11E%!`foaw-qz~(S!Hy$-U4LOkMbZbGPus0d z)S_mGC4JCDj7<7K!c?RW`r7EE4~uFiO!`2rOiI!R&jd&xJSx(M-f1R%@Qk1Ip}1~p zNgqN<4m9(C>jNIb$enUP2|PT&fQN^BlD-uJJbXnmoQncHB*B9d0v;ZafrkfFz{6e{ zczD-NRuT>H@PLmMCVvd@kcJH^frkft%Sp|&z{4kYs)2{tbt&+WE&vrUq^Rr=DZ6BL zh$jvz8fC&*MC2z8V69+6ABbPO-IuxKv7RPpr~|X14TdB6$L2z zdI(UoYQjKK(zu8LmBs@Um1cmV@+VW5_QbKx-#nc5_s0fqirIYW=%v|dmyQlBiSe&o z{0s>qe+Hgj3|l4Z<70p0V7O3klu*T?vqCalobekLlkw=2qi|B{NYVF?&4Ibkob~zS z*|DD9;0`spG3+?-BGd_l%N)40P$qnwFF$V7!0wdBAw}D4YO^$Ar=~ z28q0Zj(56ce9>Ey+dopX>F^>!C+GGW%=+i@B9h|l)5qxJ$iSq39$vC|5@)7lxHE@@ z;vN^2$VJxDEFW;uLUkwACM(PZ!km$s?#IzK0Fwo<$s`XOx*zZQHtA`9`~U1cYj9L$ zmfzQTkpKy87VUq?%+&2pgic2wDnwtM~uqLlxxeI%o081>92de8({)h2#X+@}79={f?kH!M|iW2L; zi$Lp{R4IR(m!d@XT;pvf-7`6R^7GVwo?$tml z7j9UD9k7`=M^YuxM3wOd`Jt?16R5UW@vnEA}oFOGk; zff1lv*LQO`z&DhTZ*yq)V1tKSMw`J-v3<8OjHcwCP6LBebh?Y<+ekfJv$6U`r(oD#py%&eP$Ja75hOv4sS;L z|3`i!?f;+Dn|3w5cs#b^N&Rr_{w{z0wCgF|`O62rq|e_v;2bRR+IswE`~T6c?c==y zj^1Ng{`CB+^#%b0jt$HrvW+-Om0J?`P<*kd3W5qiRf~$xQ+Q99O>WJ7ihZxuY+&66EYpi!V!Pr@E|Xw z{1OtAK0M|*Hfh4;zaa>LGSWY`#htqEY3429rN_2?ctJ#HAN(^tN?7b!vT*5=2gr1i zLzc~3xsWU>T0ykbG_q{P9VAC1*&00ENxT}FR^L#Ex7>46c=?h|rVKaIeFXSiwkgtL?ZA1hr z>)^kjp9HE%AV|U+0Rw*x7O8=h#$Y&5L#hH~_H43!JDEJ0G?N`9v^9Si_HE%d`y~I4 zJMWrtcfma~e@x19v?;FC*^}?}x^uU0NFz-ciCBg!Cax)EIV4!8Rn*jlkS?U6uC~?} zti+(fJgPAy)Yk+md|`iO8d(vj4*F`ee6r9NtZu9)KWPkvi46K22m)~%SrlWkvH|Ej z{k~-@wQz&4p3Ex;%94KvmWbD)nmS(?yYp|U@H5{BQXHs3kB0jiLjr{*JZgBAudyaf zFf67iMmm{S<7=ozper_!l^9Dri0~075y26HjZny7fd)U1d?~^l3mnlEf_qKC5Ny(> z0&F6RIbl4*gJwdhfI!eYS;dp_YXqzX zv>YA;ADY@&S8Iw63Tfp)aO1tA66!81>x}lzg1GWATAvtAJT%^P^2OeA? z9UyEd8vaTxr9Bz0( z@1Wt~$0B3twn!@78A+qK;hWcorRg}xXWPhW|Q zq5C5V^tTZkJs6?%%}6tOJF#X$FF_#j~%&d>7P2<*U-OooLNmT;?K2?ah2T5sAP_ZIaPiC z?|Xkw^zUi#{l9o_=sVE*HS=DmfGvpUDP0;9xc$OBEc>7v9Txf9BP-Fl?{c)^3jfZ2 zQz_JPoK*FUI+OV$4=aryj(CNiuEU)UJVZ8N&5yk{=c!_Na#G@2w9DSnCd;^XbaR8Y z`c6Du$e@pR#!7Z{L-sG$L$-Kkt=OM5YBhhx)q1)uR?=vy)u?LGBm$iW*9&-_UIPzH z=G&iXGegO0*?(rV-yGL|CqUI~YQNcl>N%s<&bV4X2dH+cTJ{%=l1*_X_d>}gRT2Q6 zS^|G}ysk~6FIlqKQCd?s?7*)z*VtON*36$D7*D*mA9TG(@XzOrz^jcC=7fIQA$EkFQ{?=N^k5c{YFNAaWuk z{}7YuV7F%rvRHmGx_-9l_+?%=Nm)pV(Z+1fx7PBee#D!SuNl#ni_wGMYAJ$jo?V@> z;%7UP$&r400v5at^$iB>!HeYFTlkk}{K#D^YA_?Z-?sHb*^Uxkw(;v|_?u(fwOgVa zzK*W`268eV6ykmF!$=CO^3H$XRRuZ&Xm3s?PW!ra1a6!OIMyB|{piN0620`5*AMJx zRn|Sss+e;*)m<^2k7Vrrb9!{crReIvvcvduItILgF|D(Xj!?Oy41N()*jSb;Z1l!v z_Dx(Vqus1j-hfA{=bWDBI;T6vM_VqV_xEM={=VY)jYvPX-JObqdQN{Ia3sb`&gsYt zLR}smsV+HjZjBXh>2wZuqvu|_r>Ps&zs;GlnDflF6>Q#s$>$Hl&IGjQ$Czr-f-^qv zw&M904Gdk1UrX zsb%nDV<11YO28)jb!;=3*Naj66cI{d~lDPq!gOGiu&b!96)BkdD3%H0{qA-K5H^`xUOL|=P?gi zGqI9EU1~FCY_os1byNAigYJK@G5{Lo4eItU+EjvHB505XhkPv#;sHh|MFO|YQNVFk zMLpY)=ot+DZJiQ+wHzAkc0JbV+R`aGSQwFxmxF{%_zQh%lWq5{$_$Es*%l^d%zU@t>QR`_b&h==CrtsN z(vY@~wl#mhpKr;<8I?I~o@?buj^#@!uAOK8hp;MsM|j$2Seu?|xSyJd1xaO^hq~!71kHSp4+vAxbYZE!jZH1n=sa`$ zP$PRC%g*qYimN&-uH?{QzG^U2)c7%@1{ydyg=`b{*5@tTwWgdk+0$gm)nv>!vC5xg&OIDADI>Jsc>@qK2iPG&FnJ zOYi(x=cQm_fkU4jD9eo%$MjSlv(r=G={l-AkLo?oulIzy%O}cO={<1~L_oD948k7*~K4 z$i;!RI{a`Kpg1PM){r?S3dg;nLbNp$4rj-C;=Y4un2b*ag%&f>0(Q%lbfRD!sdnU& z7AzGgD3*AKx%q}5Myw>%&CM-R3ld}Z18tQL%UWrL{TeQqPIET7G>nb}(qo>wmq~xC z{CIb@eQKkR7)`ReEh78C!V2dz$0zndC6PUkZ?N3q^4`=9vVFcvWU|>WzQ>DKAbzT8 zEabpx3DDXI>PT-a?vQ8(o$q7K{*J;8P7IDj1qSD`##X_{tw_OoMzC8Rj*{8y3umMo z^dMWX=m@crFBnRU77P=^eFKdwGtGZgfmQB0h8a&%Hub{8lBXZ$Ryu~u?@*H%<7ASB z{ulf$Gjjkp>s-8rwuNcHsCbczlDC$c%W(aBuQYxwbWc;W`9!nEm}*wnC4 z76l_)XLk6Xms*Ufm9$KgG9pE2l&&@@iTXfI3~WQdRT26(qpd41oGcAq`2~L=(al$* z_1BCGkeD>c8iF{&#NkSln$=)$Ws5c>Od5?&cPQfIjJC+JK%V6I)HJIx<;RpKTOjm0 zeWvcCdu_dGKC`ibg^G}8hSlc2*_nb@T(v22nu!acL31Grg;JqVN+hn3>_y$U!gvuB zDZdil$c$?ncE9wC5j`f3V$6S0SY}=p;y~Y}$d+p{NtSE9meYs$+G2`gtoPKqaDsG? zFN|M*#B-_;a?!$RVVt~Na3^1FkKwk_oH2XL z{k$*^t~ay~ICr)To!!YCOopos>lQ|}i9N@Bl3tpyrkhOU)SyIH&XLQt#B?Z=P9(nk z5(Z(!K4R$vZ8EG*SBQ}iguE23|EsiPI2pNsPfSb? zGjBJ<$R+(CF&S4KQ{;cf1C=r++$?Bq!h*YUnCJ#Tyf>~wEZ9>;7GJh5hixc7)jGh= zWg+yjx3nJ@Bgw%a4>5W+Zj z8_nw+CmYWR-Re#b(&<^W3zz0TlNU8puI9|!u%hAuaZwYqVlsc$6OKci&dPHeZyk`g zGbQv~@|!zA7-GdIblj2I90@&JDk*8@^~E+|41Yr+QqCW_xdW0=aX#4xs$d=XSt2?> zv|Pah(JP)$b>+?NF0xNoL=r0joAU)+c-WV!j9AI1x=LO?I#Df->B38!kCvn-xID zApBN@Pjor6Giz_fas}4A!EhadvN>KRv*rx86fWOyUI%~LiR^+hHre1>3FRHHFyL#U ztHW8m8@VU4LdT_tLnj%me55!P-bkFTBS0UCTlA1hR#9>2>^KXz?w_#}w9j>Z*4Ou3 zz;#)N6)tSC`o4M8Q`iOQDV;3U#btS8*}+Z98<++_EA{o7#f?ToD0`iE?os{yG8%{<^_GFm&?MW7Rc3lUazO;ZM zSkh`7a= z!7G1{qAJ17gjlAFuCqg#|$t1mjl{u;u44SzP+0{J_R(pfbjOP z^S<*94xxUadB?x;CG;gd+jU6?=@Gm|#MP51LznbCJU>?iXZH+pnjy_489m8e!W)I1 z!}C!c&z$z;O_icn-J^I40Z7@RO$m-a#nFF%ps%Afg}6yGNu;TCEFDM3( ztO?ehs;#XlsZnFnXIB!eO#%qy(r`hL;g2~C{~lM6<`NXj22lZ1b`X1pCB>+elFg10 z#1L~mlV%(ce5vEbE1YV~J-)A@o*#HvI6VzmDbqV!uu`hQO3AXRek{K@$mF°@EdrVF4b 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 DaabNQ diff --git a/bin/uzidisk.dat b/bin/uzidisk.dat index e3eb7a4bf37c9ef0ea69819997b48922b6d860b1..a517148c5b02647d32e4d8f22452f3de59cc05e2 100644 GIT binary patch delta 153807 zcmeFYbySqy7dA}i+(S!Bcc*kIAq~c`l_8Vm$aJF%H7d4-x_b)SdHp$xATDV2a1VyoLeG=OfS{x1o-t z;EjT55*ooE;CH~~&w^h;u;jack%gCJf)p;SYtc`(5eJqn{>8%8Rq{`T_m^zEJP7CS zv`P^yQ{wJiXZWA`KKxUo>=%m%0{tzL5;TZHnBag%4a<`DqfjJ#z$3x_%Qs;JPXGoJ z;|stf1R#P_;zW=b5(4o-Fpeqsuz@3Rft-k3zXGN3FmPh|VTL9_mjE_61rCqEVPZm9 ze_c470*6Q7FfkEaJRDAe!y|B*_!?Y198Q75BXF3Q7%rYz0Qav^;A}u@M1l?_eL^EK zY%h<%1rn3M3BlnMI6MM}iAe=umVtE&;tm>gc0;ImU*c}7f%nnVQ2l+PmrRAtw5I^wt^HmJOYP_8DP_1 z`Xw9404tlq04qDf06UrJ(CIIqR?yv_5jIel5jHRd4v)ZLVkTIBT{xTqhezNrF*9s? zIxf>nU%2>%w4#FWC6#=MCM-L0v~a)Y2p5$Gon zTK;yrb!lcykYWdc|E6Vr((yR3tn5Eoxqq_qSHc{y61RWSWZ$LHF0(;EfIA>5{8LNu zN(&cOOX=UV^1o@7f77b}rq!-!F4$?L%LV&1G{rQ#bc8+);T%V}VCMrdH!RkL!zplh z1P&APz{T^x&M&GI9xTFNPe&qNm?2IWfeR((h22DTvGlO?u?#K+Xc7W>VH=#n3tR69 z946+2&13vm9)WytGH`B-Ki%T_VZDg?VZ}DC#Ngag_~CNm=fMHX!!8D50RfmJC3KLO z69NU`PM^@@B6C8c0PG4wxI7F(m#P5lY(uy__Ap-3Fv2O%ajsv7K2x#(p>z2Z|K9-W zS@i#{6zS(9|9>=)|4pO(n@0UNjrMOE{ogd^Pa694f!PqMurFH=&sP7Ft@$Tg`%kv+ zpKSe4HbF`RHi?GcGzLB;BFrS`Z2VS5x+Sz4|vqOi5M z{-oje#I|3o7_9HdUlLMqbo-Su9NlrHjB-s5!4iQQE}hO_R&m%Gx~^hi+3sHzK%Xc0 z+;B2Izf6HLAeg5_FLobxKlZ?-k@|lY$p2e4|Fa_huU5_AuR(%aOGE!;KmC*a{7?4F zKiT1*?EkEqk>B+HuA0$bCiqn|_HTOpN=V~>R?NgN3;f)g#Gb;Q#-6z}QYSR3V&Xwy zm*6aR!l(>AIRe6W>0hT4_~QUg0*&J33kwEx)xo?B(*A!L=zbd#8f9UZ20bWYRF<9s z0U5u>|PIu(6&Xum9`{utV&9Wx@EFRUKU9eUQ(8ks=t^H$kw<4?w;k zKaf8t00aRALOsdj6+uLQ4@D5@At)I12owS}vcV)B3JUvM8m|WKQ4@Y;#YkvWgq>m$ z&?%<)_YCTR>#Mh*JWxKU;HLm|2H^$5Nx%Ce9jF8%{yW`5P!XsYR04VrDuw!7|2ext z!LV)q04f8OgDOCkpej%`s0Qjs`m^ua;QFo>RCiSm^ddkRb~e<58ve71U=U@&&GAN1 z6R7#h19~x_3?ltI%N9^8s15WH)DG$ZLEp+1$uH|CmWJzvE>Jh92h{sh<+2yn;Ci9& zN*^O3Pz5%-e$c>`?J{#rLKN5z7z7Q0K3zGW#H+%_eg=K{FBaM|Vz`zKgGNB3zk@IH zCKtzol^+9*gC;e%=P{fObK9pdX-p&;jTWbObsEoq$e3XP|TF zI{5GNd#fvln<*C{1OO300+0a|02M$>FxMiDSBGs3`sG%`6mN!!54Rs+0GL<15L^V- z&xoHh4jXR9VFRFFF_)X7G~A{L0AK(Izyh5(GR1f`Las2oMT{0pUNJ1{I+5!-vfx0*C~nfXBcSAR34P zVu3gy9_mY!(5MSLcM^a^An8v}5>&zsb~2Fir=`SC;f^k;KpOBANWXM|zT@k`CYk{} z12TauARBlNyZ~~3CJH^Rkzm5+nG3uGUIDLxHwklku#@I3koTu*B3!t&ln)dD@BXAs z6bNT71d4#-U*<-A*anvX?}5@kk;KSwZTbL|0p&o&r3207+`4WFcLt~gs(@;s2B-z< zfO=@F$P)q$V7HZq%V6lO3G^XF3#Z-)Gy%;(%TM)qL)hnh8<0R^NJ;y9pZ&edK7;*Q zg7XWIpl3+W_TTh+0DaT^doNi9)_`xoI`AFX05*XwU>lkw@y`vk6mF930K1o&K(AY& zGw>SR$nOC^u8c;olYbvL_%EspF6t0C`ekf10#W^))iH1aoC0USIdB0WfDyq+VB`dI zW1^o`gW&Q)0i*u>5-?sHlLYQNO*Ak%7z2z6#)1aJP8V!2=<1t8Xk&Qc6ag^wTRiC3 zit#2On5%vqFfJGmjDKl^Zu3T%v~a74089ub0$&3YgGs=oU@|Z{nBq^?T5xq-2UGq^ zpwR?&#!-Q(!8DhqpPLnd16&*}nC@5H<$djY==a}8H_iByjyHpK zX8Pp}9b~+laPrK*OpS06EdQoi|0&OQC2s{=EBh}x&>WWL_&3e@ZyNd)>SgmUQ@4am zo%=u2cQ_NzFH@rhY}LH~Mf`w^;Jb=|>j(b-B81^01b&+06)|z)3^#rmEMe;w{3k2) zPgeLRn;-?(p(4MW;ZhX+x3kzU8ou|%|4mE$o0hzyp{E?UMoL{-tYNn>X>dZS_1|y9 zAM{|SvlTdD)cW$>{P*tW3MZWKOZaj_VuM>JiQuG5yupd87@H+edWDowx;Ph+2q?K36=8^*?Y8%F_05l0C}8Ak<26-Nz69Y+J_4vr>{7LGQK4vsF49*#ba0rUj? zyIaNK()Pf)yl72mw7|rJvv~fpKs%gJ7p}v-aJ(;#^q0$zZ~@MEAIIm95nmHd^ud3k zRd5doUmU;x;uhiJ{C~#9Tf)w&fIn*Z>~NzB!GZpP4CB{iEyMv78$?SBC}Kw}*FmI4 zfixoAv%I{m{QYTyVxHds`m-6q${RI$Qoi(25424o>dQf2tTnF!ykT+J84{2*KRN*1_EA zcLtwQGz<~@r9UIsxH)^e{ALlpAh?*jyL(^mzdt|22#y}+7QYb!!U%%3``^T9g}D)8 z1G4lOf`hGvm7ANh8>h#84+Mm91Z!tE4^Jm6PD^trM3{hLr^{ciK9dL@R&Kv@gK|?9 z=4OZuh%^fbj^<8(^}`~y`cLxwO zzup!8?XQ1@eOX&=WM3qEBUN-{n zYid6|?^AdhJ0wL1VPTz2m%?NzX9*e7!cbRa>x$XYwCsvmP%k<@yF{_{;nQzs}=Vk22W62Ar=q!3ve_~ZKjvmVU`~oZN2BqKb8&%9x%CgPZ zio29$g?wkZ#phadJe!*2%66slj@D^jSaAY#MEnRm9-?sZyj zkrL|r`geyrlb0A17U7&;EO}>(1%)dJ8{p)t9<1(PE=JN|L{ZhvmY;X??P?x{=10{x2XMR0xvmzw+hNjhK&uLNZj{_P?s}icyOnFxzK519OZm$#S^-eghU4C6w-I+a-26;^5FPBec6M(1|Q1I;0u|So{tvs?_MSNE| zgPw8cCpXRW3wNteJ4=;_>FGw`qwxSwqyh)i#u!-b5AVRzH1XLMGxV>?VX`15GoL$7~DY!Z7*96D-(iz_2~R6($Zqkx#8Lq zI*0d8Zv|(;569lWLR0LPZgJF+%hqD?@M+}@%=St;d1kQ}0+KI?qUq#EU1ZjSa_S#L z8#XmsG16_5?=PD8LS=E~4REbYSl2PNXn7c-PMIG&uI@HyVTN>CAPC)!H%}%j&0T!5hAPIc#7m#=gPe&bKNk?S zg6-Nu-kLF2{}Q4}A8trom^b?|#8;=^tO$(H8ddTRU66w^;Mr%6wUq@Pa%5)^k& zdh>1=8tLlj4&iUa2RuNZlNz9h)b$^Rj#T2*zKHA@Y#$3ZQ`yHk4ylq0%3`4J-5^?a zL+ZyCxmEN8YuIDca#LkG`tGPwabF3`tp&ka>mje%=7Z~rXr~1n4cn(O1Qn{q^jW>? zPxK5Wf58%FB|Q{SEq+YEPWFLX?-R;5qb9p+1uPFe zGgF$Kk+M+F>9))fsCS;Ca3-d#vzIicyqPNYijYMKuag>%x~)xZ`~!cBx5DB00^j63 zc`%Ie5 z?6qXgLii3T&}Oj@@j06r4vBU$A&)^^Gu-FLJi{}IM{|DS3bda(pDZ%E@uf*y<413` zNg0W&u^3B4pHe{YL!UJ%rxPdH zb*QP0_v2Q1>}Kpux4Lu4J@CrRt@Ye+!UX&~ijc0`!ea`o9d)_!T5)#s)T(!GdBrJM zCQ90R2{i=q$BSEXjmhs5;8fvI>7;iey2XBoy|oyygWwY@Cd1f$I1zx~CwY^SE+(OY zNiB9WE@x3;$A5?L2z>{6hyO@^2XsVpgy)m2Of%9q6Uwt(WJs(bxrlTWyB8M|E+xU3 z6$?=-!t1mjn-P*bNuXOdrBCUw+99gCiPnibJ&$m zBKlsETAbfJ#XO>a?EHMyL!vhu`|Hi83dDo#5WAOSdpgyroX>AmCvxU=uOj7^kINI# zt(b0}eJVQ~@zovfGHsEFh*!&5WP7p5ma~w+e8jI$wwl zKxKu}fbe3$IXZrZgaM+Kcv`2ib70KXpg%uD)HEY0cMihuJ9r!?Nz;7pe|NF}@oWRH z93;RK<>Cv^PA}eRmh91~_xgh)nv-FS6X)o-29AdpMR&I#JQCV65)c)Jk^cS~EXX*? zp|?qhWR?u^MTn)tcB#y0KmFbOtiAA)O<7CivD-If53)pgT5)fI{(t=g`Qv!n8zg0y zOED}ZeJXy+OgQAcB%l2#erSr}d%%*}b1wGvh7U*>r{% z+#1uD>}o)aT!O4VQc#b)F1OUFu48B<%&HcIB_Gl=tMw*6g-$t`)uyW8<_~pkwh<<2 zPb-DCdm+kUcCVFmVgz3pG37U=XIFc@ehlH$>h31D4$Rl8N3wpHZ&0|Ro;N> zWvnOlM4fn}(UdgOx#NQU$ezdI5Q4rWxCprs&ZR^u%i9H6<@EuFZ)%ezsT9Bd%wX8> z{``HlR{71IS+8ygc@k|GFY>O8zV+-ijZ8__*O6`?-(;Ybwe9B(qB;iUSyZ*GzF;SJ zmeBfAX?YA{_DWs=YnB+2-9;oEGj8jPpTi@5F|F~9q9hj6OK`)PPSXHo|7j%aNym7{ zLo(fv7UN?GWa%m40dQ1tv#MKPu-eMz)|0yO@&L==2BN$vuQ61Ao{gEEP==;6-w$n} z+pdvZlUSWfP1+d-_=aIK*J`;2W^33Ok@;`AcRoKyKh9deb|aC(jzA~z`kKJHSgYXT zcw@@gWV_n5W$=EFwO7OsuZkboI{6h9IblbnIE@9wr;tt+)tE;8lCw$Fw3~iJdRag2 z%!Gh18tY@yyT~P+x;7yi9jlJJ;6wiy{(~R;N=&|=yw(*a9^V;|l9L-i0-JyGR9UMw z?_4cpF-{1f=+5FlR&!CFVe2hSG}x31YoJ*v+)*?yQ)h5+6!S21cQ$M|n3QTaxSQ!( zv_&TWL=K|jYuaJ!EFbd~ymsvO3FpJbe4yL{PqOgDalg+=9{}=wTu*#2)v%>J=C0?0 zA309=V!+2N^f+S5Km;y(?`x*mVu{+cH*U-=!^jtq`R*lJvH~ z9#`_#A*QkwHrLZTH6F$hO$vqm7Dg7xqIrF5a~}mD?{o6lvrJehM+Ay(J|88QCldc? zSU;H245FFLTAobNnNBS)qyc*OzT~be;w{joe?6I(>3_0#Yr{*e9l@PB>Jh6BE|Y`G zcr(`L`(_i`-t$fU~zD%wQqhY$+bmpx{*};!;6UG zlk&vpa!9rAr=j6m#)hJX8qri09@fm@AEJ*l!@dcUi{pGL;(I_@(66STuzE23WxQLd z^ySEgYe)s5b4!uIw*5i*Z1)kx{@NW*0RaKZHHsu~?X$%UfeozJ!Rf~2IAuvh0s=!( zSo!&^6iH1VEo$zneiaYM@IWVb;PkA@;Oto5DnWv<%ib?3<_}zQy4_-fzfGX^x|)2l zn8lK5w0Ta%l@jZ0ifeiyy4eTvbrTW)6qw^4uDA^$H)JMh-X9roB@w|}w7^gyQ z6A+dj$d?*gL3>_{CG)-Fyhds!a#=IzZb5y*mxd={p9-du_*x6-Z>~ zsPsrf^wXM$_Y|v&r+I^CJO`YSr^~P^as#GnuZd-)$E@g0eD6HEGef8&pJv!3)}`9D zmUIo(5Vw8!PV(zUlltD?P4PPX?#!gNh^QGpk8T!?WP;!>fhsK2iIxtSrm59u(106V%I2u+3C(FqjH_joq2vLqNvnN~ zJ#QLhQ`|DAD09}Dx8HVnZRu5`?*l|=M+!R`^qF~eF)utqS;v-PBAT< z;uR93?-HtJqCH9z%IX~rIx494cB?pEAXD82e|3}hqbS+mlR4;1_fbW1 z`fWHDL_@ECjg#*{_e3q@s8E@Us8e>izLg?He@r)^e4n19|&Fs0W;(u16^>y!m6Z<#59$bQgpX_>CxboOV#Z~Dts%_by9J+`fO z>h%wr_n3E$tlycYIVB2Tpi&=T8}##r6{8^`p4IK7aqtl-=HnMx3`Gnwe?;26o?G?g zesWM0nvGl9lK&6d8<@f;pCyedYFoHe?IHA>Lho!|Dj#?Yq)Iv2vQ)dCyZN_?%jIP0 zf-6pV9GYfN*fwk@tO`~Ee>tV*$sUUB0*Bg$oUklZ3y!$n_>cgFsV0Ju1{;sKJ*5y2 zhDJ36w&&S#Hy_uxm)36IIXl!>EF%I#OAn2E{qbgTCN)V?Vk{WaKdVrV~WMhphMbIWJ-R zmxhP{&%M-&ai6NvfA5nw_g2Wc&5_-^?A$h)I2D^FikpF3T%!nxwKlHt1vS(7~hP`gS9 ztlDjLJQ*d)@2M?rzo-daYM&8@$S>qiF=qfoyL0pT<#y= zf2<^DPvP?=E|nhF)4>npqmFcvO@0`jBZpg~7m>mdV;-$R*pr-P9nJSD>Ik$k&o^q= zmci2_t{7p~$GN<}aY3IT+>$1GQ-Sf}5*e+Yoa-xUgG52hISQMU3{zo(jVJ$r?r z|7n`c!wm>2Rlx+XWmQeix~&7j_&jg?mbJuB!-AHj0Bu>1_=67SF;?KV>steaQbFzs zks&mhrI!v!^HH@P_H>g@jfR7WdbJvB+{T#tg}86?W7NYECbQPZfq2L{kQG#Fr$?Lb zO2qKR9M7;es!^46)d^6oR#U}p+(&+4Rd%YqJldALZk^<-x2=;r;el&!hml|=ZZp&C zfP2i^J%w6eYLb2TnZCCN_qRT>)Q=Mf4bPqsn6bGFK9{XoV8&lGywf6^+LKYld%(Fo z-8<ZL_k?N& zn`{NLF4L}S--N08jf!j5j68Wacshwv@f;M8^NlKAkfOdO`E)U`GVorYct=++q9(q+ zM+fs8wnda=GszTV`#~mZ8G)*A>bX&3P<%j8lEb5--U3T(KgZyPlsRXJIGay>upLd} zQ1j!v)IN+5U(hR;$2UTja1V3eR!8^CJzG?A`lwi!+l4`c8jQ(UcAm+@=ZS{n?jEnVj_VqN<*e z;LF;Lr0>btM|p&4fi@UR`AR&uXIeUMGfckb1PGP`H9*13Qg1X#J;m;-zWeG*;`Kb! z+ii7qZGp6{%#UMvdwETe@jiu-NxJIi!*}mWf~D$QcUUorStdokLoBOa(-`<8ZpYN+ za7IepXCl@UY00a;7a`w*_~0VA!p(I_uDc8)meTq3#)wvlf!>7lx$Q*llXbhGez_upU6<(?LYDek6ra?>d@KR zab&h6l3-V&$+&FA2oxGsimnPorj#ibp*dg7p6k|WNb3|_8M9HKTyU9xeERH3p>1XbjsaKY8#_b-h3>Ljy7GTdUf?yrxC$!E9_D zXuVu|U0zElq#I8K^2S>3&MLbwN)5l(v}9sg_UsozQU_y9nuMb_QSq&u7|X}AgX!$N zGc}ZWm8iRtM+36*M0#tUR6xkf>1!O5gq#uLf>T~fikoAx&z;IcbQn1!*q^mH&?Fg= z?y_ev=?>D8GEmRxR3mf?4CsbiDaSa-n;oc0+r5!pUQ4sdh3NM0-1EO*sp=SZYP9#> z`MMogtDYR|b0*arx0pDzmwm2Y@yZwFje;G1zASeiV!L_@ZM`jP?Pd)*R->=82rbt* zU3#SQRb4SbkEJ31iGinNj8X^X0w_fr+m0?n9{SGs-TlR!!P!mi!+Wh!S{Ae*M?8`N z5{rhVyfF#e-eic!`>s!w`pX;dA0xQmjHY#!&eNV6(h%&(mX@cxTdWRL%)Us~fjo3S z@2CQ6Mvw>N-qNxtjk#Tpse@3aUa3Rr=y?`mNi!4GPBv)brwEF`eV-T48TgU^ectU7 zo0XA33mu3mzXP4A8L7KlTZ1|SBMYiUP5;r$`CiSB-1&HrYq#R?L6%u(9BM~T?v`0?B?$}p3Skk{f2NXDG3T---Wvw`Hj!d=(I z>dYU^`w%SLlIr`2A^JW34e$m{ya=67%(L{_J12Y~o$|g|E{*9&0W2Kx^2c&{Tz764 z#f3fq6HNCXK`yp_e3HCq_f{J?x*#a@Ec9$}77v&pDD-cCEwO4BbCJ{i;fT@o976q_ zJ?kRMedfshI%0e6?lzH+N2sAjRqXVDbt_*>f(bv?J2buLIb(xbR)t7q?G4CkSWNA% zz+E-Ecf!N;!9y&bgR0vvZ6}dXa_%ZW6>;RD%PcMKcn+bS+?6vtp6BW8mq`Yq=7kKc^h~xD|hzWu`W`Ff7{>sx7M}Q>Hw46ch z)gCSqgs8hblQB%9rZJ@H6Q`s3EFZ7Gwxs+DWU=^EvZ(0I+__{C*MiGM*2oCz*&d{N zF)WI_KEPt6Bj8w4#Xwy{+r*&oL4mUDMVi&irGx2P{hxAux|KG!t1MMgD7tmn$(=^r zmmbI%u$@Kiz1d6MtK56EhrX(?YWh-AQB6Tj3DSSNU$I{S7!t9q+pGP|>=QW-e^oK>Z+SAVEuCtD4$OklAqqiSohBWLr0} z8$|k9qtNv%5Ks&J~ae=pD}Q^?}_c6e*|MLFy5;W zmueN`$CdGu6+zucqRo6nZIKR^aUh_chpcvpq2slm1ch_GM|3p;;~F0L1SmYlVh^BS zq|DL{Bad9gU46h#noje~8(s3_m=o!1Np8k#S*k0tEa4Roa57hRP(0RAq2IWcclwO> zod8HUj6HAK&U)S~gz(vw87St9;5#je8!3xZNamCirGhAHY9_J@w%(}=^eL{t(t+fe zzxG;>m_;aG1m&;qNPhXS9jq=+*3p-IUw2)rdHdcJK5aw)`qcfsjkBspuNPm0HDC{j zxLwm3+$Fpbi(qh}fd1iJMBE7ioJyLchDq6fQl7>{`G97CJrw>VVd_=IOYp5hJ4f$* z5@+$cZ_;UOAuY&5yk^xOiD=#|6jEeD78I6+P^SzUyVTytYg%L7{-F339O$!Sh9b7D zSphsX4b&NJrFi<7kdJ3@^@+~owP5Xd-3-)?{k^UyRf1k(g`}F1I=;QhN?S@Lt+OeE zZioT0%+IB65WS05D-u-R=86jyj+upkorsE`9vX5#xnYa`^zj;RWg>+Vo0%e$K4gRC z_Tn-xi$qQ)xWc^h2>%Y=JpZtZ3KxSuFY^uVSJz7x8XLx4to%_*vndBu_?Qs&%W~3FEIy5;A7IzfPMTyrO8Xt3m%M>BlzTHe-MmBgEN|8O`qxBmdC(?}e3PDpYPtPbH2aa@UP{;zr(;`yQb~AswV5{wn2FJ^O9VlSY3pNtY~R)Pp1% zm!iSKpc7uy%FWm*^bG=6p~}rVvS*nCK_`Ke1e32LDX1!odVWaf)DgSPi1;EvDmP7P zSn{XQH@frM35rFF{T~LN2qpDbQqM{hR-qwm5FERFovkl;aJ_Q#M_T4gFaL)TT<1aW zSlL187&Y4b(1Hizm76Y{<;2kA6xSArOD*su;B7Cpq_>3g6T40qZ;7m>mZ>AguauY* zL=sWy3er-u3hAkou`3Ya5*LXEC448ivU#MNQMPL`|m;*86mCK!df7 zGl{(G5stP>&5-g+MQIFi(0i}B42*ehql(XFFBrYDS@R7GMyh%)K|;Y_icXOzV_c4g z-n$|qGAi(qf7HkfILWA&AT=K z)?(0_NgZ(!2MbX|AqL_4!??Vs>v4#TqDxEYFS=K;Wl}y7hjZE>P*=atq^^E_59J5q z3pQ-D7u~`Y(jM~e#|VRE)kxAF4R0yg!=uSb?I8PTFVb^k2#0j(!BI^7=DTl3mFcY7oMi+6$9Y z4W~LfDdDf;ep$Iz-TFIQ9N)TIDjYf}>x-7o^u+xZHs;fn>wFH~7P@wqo;A0mL=8WG zaClzTu`+j}u7MjSWHO4gIagDBjJ~z??hSZj?&RBxr_B)d$1JRzwROdice4%HBD0%~ z>xS66g!Q`I`DR|yR?@aj$z!G1PMli@TmElu?{3uzny$=Y<9wa-bv{2>n~Qphfn!=r zL|K2ZoKIP=emb_h^@QtMx8O#ANXb`!IHiL(fT1VKf&Jp-7WFKqOi>iwCyc% z(w>%si2!lG99!)*Xoe#Y3r@K&j1o-ZexEie9*1!$)Fb*F4yo3z&7C+-ONsmWR3kn( zJYF3rU7aJ(7VppV#(9UN#i1-=&tI+eAh6#cbFGvSOhjEzfa7-Tc5T;imd*X4XcUY4 zvHLabo@I97sJCMQHZ~>FpuqFm#yw++$F+y9MtCiU{kz9I7Xlk|5c|rDu%fwhs`|c^ z?h8lsmXRZ`ql@G7ElfG(~7CXIY+|KNxjc~}f_e=8c)=j8$?N@?gHyJ9Ld<%Trz{eGPx$#%Kkm2YB8Qi6Gx|>!j*SW)T`ngDGF^ z2u4BE2*wB9i{h;lGcF+fO_1F)Y%XB7DE-bdXS%6DlYQ$cT z=C;j-1b5QKY%6cOQ5dZi*Spk;`{rZ3R%18AkY_k&mGX`BAX_sWvHE?$M&ZzX z+52O#nnlwmQV~M#9I@9VT8P0s(a$5b9GE71!}p^UpYJL0kljf6VPl;yEgLRWr%e(K*!iO**pE%e%#AJ%8-8%O zYXz{)3kw5rg$-`fRCQ7QpFie-Z40SS#pEdnKgo$cP(6fb?=^jobg(N}mLz%+Wz;qA__c0_^IRt#=k1dKE+vX5c|DxQgUve%|P+2izYC*SYH z=ykSVe^or*xV&5RY^B6w?hEhW7hYhl&YXf|I9{QIhlD}Cnc@fWE|rwb%uFoBLAcjM z%UDPlnn;a9Z3vRDt5;fhA7{D;v}oB759(^X3Oma%rax^vO?99y-`LHizQ|*XG&5Z~ zuMu+dfQ<97Wjy<&B@f0f4IPfm=^k;4NLRf8J5nHS%rrg+WsaD$6MP!Soum zu!k0V3b=xyIcn4RX|Xh5FyEjq6-O6L{p z1GVfK%zrn#(fbzsz$iE-v@W1wX*@OfJ8DvBANC{PO+uGV!u8=ymrb8>(2C0@`d&;9 z#ADY~{F%7b%0pV_Nl|KxO&90vqoz8W@sm(rn^AP&;FZF=FyErnn1Zb{P@djAkPv$WJ(ynv~YjE*||F<1F{L*B+a-xIGD8fFmgU8j+SqK3Tl zyauN)x~3;{_q_?9yrYlB_6r15b)f!y$_Xi(wl14+k4WZuUhzs`xIV$hC*7CGf27n(e$QF%NamCEt z-)3;l7MeCC&J&vca1(iy{MvrY!hN+1+?mgO>jR1M`ck?y)hjl^Y=et5m9V@4nc}e@q;GxIV6Rs9UJnJn}SP> z_YzXHD@8VV2u-VDja5@fzcS^hj&!N@X1}JDl5oHkn_%jAlcLBb4z0Zgm-gZOePVMg zj_3-E7H9wiE(u|~Z$`b-J(pT4;yM1V^uxT?ZE){5oamH3KmX?KAr-Xf1@YqSA|aEW z5qXNDk6|W?(0_fW37~JZ71lofF*8;UQ)?&jv=3Kr#+|rFV!ZO|TJQ{?)fJ|_FXAW^ zUyo$!5lsD1U^7r5>Iq(xLX__T+eEeNTz_H2Z~N zEjcRs)2yxd>n6OHJI%&J`)1w>6Twpqj+-sULyqU(3N`~FcCj_Nkcr0|@#Usd-U-+qGQPJh5S>s z@p1vftoc)jJRb!2Tr!k;3mxmjY9LZ5E<)NZgvE0yghvUR17RXr)yZ^49wUcB8edUG(cngZwg*U&ewI4b7)4y>%u!@rGnI%DLsRQ&@AK0PBU=m7 zfH4$`{kxSDn!}sHXXV!WIijP^6RiOr=qG^6-U>0=VvzAjC-UlCfN2MEh2#2rompXQ ze6GRZ&y!j}`xH?l^=P3kfe(VaCdUB_=;7QdZSd@UNak*TfUrV2;t;x`K9>LNYd0V0 z|7|&o$vCc0o!5Jc=WnKAkhO}uxyY2~Q*28avKK_ul`|7zmx$*-JMy;f6S@Vz` zebJ0Js@)L$H`})-(Q%0bHP)5KrAXWKew>oD-LJgk9Hiu0)BLhhS9mKY3(Sd)qBy zP=ozgbD$9k{r$S#itx~zWls0>uCF$IcNE$_JPxprg$xz}V9E<_ocsXQeShgZ6L#IK zgzkp$=ZG23u^p{umWRk}H)hETvf7W(XkIo8-j<|K7jYy_krJn;$n90_GEMe2${|M+ z_szEP5u5xwG6JES>4aVjhT{5F`X&C*v-JL7ri;G+a zqv`2BTae(r>lu_m6yzx^TxW897yI8;o@`kmxAWexbm$w++}8T2M0%YR(wS{HHg3SN zy1rea(+xWA0JqK`G2It0)zg1JQ(+)i+AjIQz{xVE|AT?@vNRch|BBjqPFVN?+h0lJ z%+vpEhD?7iE(?gOaO)iR^*IrzX79f-{Zq1(%+Utw{F|b;`~UaOw6i0Zw_1*HWT@Bq=Z9;V1O4ZzG#s0#xqnzy>0Gm9PJ2eCYH}fEi`N~I-n99x6~7KrICKkcp%<$<3sq28^S9O8E;kh}xbL@C z?^kfY8gnf_s>Dzxwe=cW!u=0pnKqRpEwI<-Y7ZIKnSK?)9ojr8Sg+!1N+X^bMN zt;vk99wRD0{OHfoOkd957W;Hne_LcZZ{5`LMf8x$=h!qb$%VcMbDl-I;tTJ+c80-E z>`%C;NXx7xJ?)FnKEG?)*Q@|PPIqo;tUM|=nL2rkgSxOR`mMe9z^|d|D4KU1Quoe( zZh2x{&`H9>DIk?HpGI)z%~DEmdcS~_Q~fjKmc7~;(N`;G>dO7!5V^&lU9?X6QE_54 z_a2qe_PhVB#e)OZWroDl*BDK^^W&k2MvoGPkD{G87 z=_j)3<5PJwfUQXnE-OTs^qV-VI+|X8lCDZsQ-jFS6gpwV z?{k!7*7O1064+8eAkwei@GT2C@eOf88@$aFp1?Ajp@iPEt16(=L|{n;i> z+WA?T(?5PxAa$x3Y0qWW*J5F_GtRH0ly8oVtQtG|u`MeZbx`Q0{F>MLmQe=(Ox?pJ zn+Q7pX|y6bo2Ap%^`6xT`;lvtK9a-2&_6A9*J)G0&QOd<#aG%btVVk*T;HQl+>pmk zLo3m&3Gv@DNjQZ-fFp{Fi;3YhLu-kE4@{dC@6aDCi%mZm+IN08%*1*}**QhP%TU+m zb*gAL8EWnYx+w*fBT}LS(q7qDKk<8YRVAheNLsZIsH!ehU1l#L&fPAa;WVGMbJAhl zJKhTunek=j7OQ{7#SamX+C3Oy3tZmh*IJHzb(H?q^Y)(L5QKk_Z4R=hsjXo3vgWfy zra_A`x5epi>dhQW5?FF2?$>(9)G+wocC`afl|fnoYL&md*){L=YhK(?|qdnlKaRP9AB5M&dzHT)5W=LK~LKR-e8;3uO-?$7~u;U*l#IBx*-Ti=~m^I8a zCV5y)vdKKmG#r0%9@*(?tq;(15rk0UH?*5fT?)4HWJIzFgsf@&<|2YX{aiQ1Fd?Q1@VTkNc^t*HA9frbix|<3_29j3uU^@G(i`K+oXtR12+0hj zB?uQ)fE}uAmw;1cNI?pRrhU^L6Qk4&@T5w68{rQ@L-p{en}ZUi5X)rx%#czX ztQf6i6V9AYTG~~kfqosn5-vlSyQavU0O_TIs7dx(o{{uE;H-b~I>Z=;Q=VSHW6_=whYfgZJgWrl z?WiUOF^h-fJT_8J{>CgPe`~S~r6+q-na+_}^z84gwb>{VpkW}AG%7&)J=t*mMV$nw zu3)D8m=#BO_C29OB5JT4UWYif7&=7%4il5AdKZO4jvU!dqG3Q=5vqZT^N?^89@Wy6 zV_1JEZ9D-`O^aa=J_z7F0f(^&*n_!_soYTqHStr=Z2fi?i6ABw7G<`CM413&0jKZ{ zd+d{9?}iSxF>D;qMjGm%bq`*jI$B3(e>6niF*lNzffVzuJyJ5w!8(R3scoEp#Rleg zVCW~s=+`uU@}*E4sR(-;dy7~YnAz#Hlm~xzzGNS(M)YJp*V^#mzGZ7aY%Cy+W{HVS zB$bfH#il`BqO}RvKS`$6C+a)fa$~1LstMo$r6P2IQXa)Y61B22X%o%D+;9dS!OVPU z+CkPj*4O=gBFXxf44M^3$-0FoKT+E$haa$yk0ov~JGRFzU~%ClB{WhEjZ{K|9@n49MD1~8o1u8s*+J!glY!B4?I*IYo2WiY$tY+n z_7k>~Iqjg;9IBu!6){B4r?Rhy$eBl19U0IPKY2mh*5_dsJ8w!;8t3UcT2xmsq4MFL z_4X7hb{ZEuMcej$l3~+!ioEm_IUj$pC0T2g3iFFopUU|?Bxb@o+OG-0aw@3>IaX76 z7x;X*UV~}P);6>zx%M;JcZ%NF*xGn3az2F_pO$@R$=Ne2y1V&emJQ;Nx%bay_%OyZpRs>M#(t{R-16~ zc>)-tIpAndQgudssS^+fG>d;z2Q;1BY63KaRM2ZH*m`RP`$)~0hWdiR7?-zBjiA!P z^wNqoLE6S8E%fuCEhHM?m;MH*v5m}yfoy}sM1_-qW*rd@phL4Y>^}6<;dhemj_Agj zdWdxdSJM&($<1M=o;{d`IPGq{V}`LxI1F5-@t@fwFq>Cqq+ew$i%@@A`vkE{mL~ry zp(C~{juQE~%9%|XcWh=04F;AyBT zw{TUWxhju{S_BZZoS5IuMiCNeO-~^<0wOcjc|J@#&!1nbHZ0Y|$u(K5<|O8`4BnFp zjsw~hhG*qZP3uVD0~khRYIGt4eFeNfmYVol#rl}0O^M^3rkPYVyDPh!0&duljwag0 z99}P3_$r1~BxHYmAS30=SluX_pm*`2wL?K6*bMg207IV`EDjUR4E~=*m%w|??xSnI zna|b!b=D|F^dADF3GUAe&V!7YK+a=`i8+rjld(x8m{uW6Z!Uvv8sMZh zhE8X>iU>ZP%}^o0;&g^~V?7acIt#I+`1SuVZU0-wQS*O~<`Pe9#vghp*tSt;;qWC? z;c!%#eAK-D(=O&aYS8gXbafxv8M<7w_AdkatI*|GfPE4lM5CMaNi|b;=yK}00ysAN zh+b!OQsOkQnCF+EGqaBgVEFb2V()Ch4W2pB0@a!+k-eo8@$ocO1enDLViq^)rq1E% zv{0z;oECq}ZL|l*YgZ1sw|CHyI$9J?+@4k@PV&Z8GnB5I?1?e~oYNai@tbVWIYsry zIT4YOFb_v6&WZV@NYO6^QCaa$LkzqV7!%*@oWXC_#@my$)kI6PHT%!2!lpOOtfB>Gdh^hmxNL7Y4{UA#4uzR0F1k?%&GE*qw9i$y0%m0;8qUbK2^;4mHU+4O};5&DWTil zBu`}n#!?!fL*Fhpmp0=r7(n>(Hb-;=pL`BO^#a80CKIZ54_~=LOgE;ev$Ku8(LbFT!Puy>k648jXKgw2B+7ax-}sJlRYaAul%@9i97E11(E%3Oe(T(ZsX$1YLH}g}wgGzY&x; zDd)T>r|wn)Q!{X#vPVvRNfCl!Fz!^J*ZKFA*gD}@_FF?-bfi!9AJBjQ+uMK^NA2eO z1?O}dz8V^gX~puCLN17w$A$?rrNKBhq!rAHa$c8H-+&$;&P*w%Lr#4YdS|9w-65C1 z*+r9xma4q5j#sxz4Q2;svpM_Z)cqhZo<536`JQWl{DG!X4`G1f# z(t(I>O6ynskzD?@jnt|`kIhuFo+2T8MBo3evCU|4c z;BU;c`5SYXFs2|>OFhb8nN!sLR(*{uHg!w|dvS&}Yfte`bYz1}SrzZC{&@A*t1T6= z6?aw0$=`&?$=`00lfN4xCtuuTDJ3D%EMy#p%(L1y>EsG81tfp@OqM(YliNs09)xh_ zw&5gTkr-g2SDxu`U$)6lXGVHDfvy>8vIqQ=>EJkP8joCzToxKxK$>S6SikL=R&(1X zaWOq+chb(*-ATJz<>Yrrt&eVkWx>5Iou5{kAK%nd{7kEm_LdYgNlgBSsiS%7#1`8O z%a+knTDEbfJ(gl%|`>)4iZiH!&s5KwDD&U7!LiP19N|3(YU< z^GPW;=;cGkJ6J}G4cqfIzxEWGlSupS|Jl11=qidd-5o+gE)fz`xGb;k#7Gh(yfj8e zB9Ipl@*oie3Fu97lUzye4fjD3h0G*Z<}xf9WJgz7_nd##b=5O_oRNb9aR+AzSy+V$ zj~!8$v3F!OoINKKSLQ6N0w!DkUse6MFOp0^ap;^R-Bn#xe?7aZ{;$5j9!l^HQUG!X z7UnOv(X~Vo3?K=6*i#a8T#BAe_-B&d2~kNuDR4r76H3)d(C<~->3s^{ox$ba%){J0 zQSqEm+$Vo$aDQCV&}9T1lpezt56uV2a0X#0*yUKIT|H>6tUsl!I!y$!G}2NSMehIQ z3042jVLR))a$8J7Nokd>uHNa|)M&AmXBV}k_L(5Wgo98p<&~*q-GVk}HyDO$vuheWjs6PbtI+xsRw!0YTKdBz)8;2*=>*u#A^iwtw$wjnT4tYyy z{t$oXf*-NDAULrgRI(W}0IQO0Sj97V3$iE}S`NILV0=~YO$SHp{bXb|#EH7`R2;GI zV(#?wOonSUO7?9=>cV8B8?@-rhUQ9I_Sr^9=kMz2>|nfqrI4lH;p6q!ke`N?jc-x- z&=AF^^Mr{8QK|SKa7MjZ>l*97R90Qkmg9eylvV%7pL*BM^65rbvL5f2qmk$Cl#_0F zCc%)aahvA*^xUTTK1Ry56L?EsaH`yiE4Z0ZmfiiG6g&hQm1`br~M83%2`NhYCxmOKq6Nf)Cxgr8&eSn7*aIp>HvQVSl)ru zi8x@Qg5b|UE;7)eTIF}TqeovDzF2)k1=h!4$ZMzR$!k~R{GjQ4zoYT|*y=5pgrd!t z7Urqi`_TCE@cg!ZEqYwA7Crn-w;1gg>>CrNZem&8kiuC0q>}!npfrDfc|f{bjuSZO zP&WY3&XXDU3pfh$Tk{86tXg}bn@2dfP-R6o42Zn1qxNJBjT^cQ8GLmb8&UqM7(cFe z2V1$x97(m`j}l$u zrEx|a0B0W?q4r#Vn<0k&03F-pKULO7+pGPo(a{p6I5YefPTqf#8r#OkcE$|MdSS){ z&RJ_b=~Bv_@#D!Rxfv<+1Eud1j{z#G9_PUvA;hiC509M9~Rk0C_4PD+6(!%N=ck5zjH0(de@wO6 zjDQu@m7?5Sgx`NKEySG%i|c>=X@)6MmHm2HjW^}Mwq=b9AWm(Arof*b=H4(lQ3J9Ut59ef>4CnxIpOq z)nZ1N9otIEf2f4nyO(H$*~^y%;g`k4ZaiW3A6sq!VRmjyaKh{*ONw(>=l(u#My{Ou zdd|U|z2x_Wya~CvxqqKCH76x!K~8$klX)pQV{(jy*~^!xgxML{I>K!70EF2Y+1HgY z8&Y9}*>Hc$2(vS?Ibk+Qez*v;MY&`t`{E;;bAR4VLzpef?Ik+VmGlFNN_x8w39}pW z420Qtfk#-v?CJQ1kuW<2-TVl%?*YfKgxM5wrYFp1b91eTZ%V@KI~EU|Fq@Bj10u|( zn z15tL1cj{kNRRiPIDLvixp#ihNietd)fteuepy1%Uw8(Y4N`@UISnX&h>BCvb)2~fo zxf*{=g~K;+5)%`TKX`l!{4#Zex*|oSRr*!Zp}%R9N3|uG+Q_=kxPHXVA38^5>r~u~ z?p=KBXuft%o~--OJ*Hcadw)V7us1)p4IJ;(JJP?HD0PH|Bra&-k$)bUAKM6LDd^U) zoryY8)P?lfr=(2Vw` zaf5=o>$FpB8vznT4HwlE%}{9;LPdW=Rqxaom|-i4ja)D%HSy#6`ps1;E9`=3C8TP& zNJ)RCG<VU&fu+q*>~vTsOUxb>cRzf_71-J>b+=Dvk8ih++T(k5 zTf!^b{O$2wYLUmZg|^2>yyM$~+2gAWu*XMR_--G!$48RY+2f(b$(g!KhxYhHd3iD4)mn{4CUE6SjZCmZ0D8ihASF+`#ymp} zgfINak!bMvNI<2HGrpKEm_JdI_p@<2Ul^3l`$~cvzSviC zEyEZ7(F~K}3m)yCZTMmkv#fvchA#r6}qO_#RZLO%0fH2i&skON*Zs1FG zTgq##QkBCgIX!lu%#~com2NUEoMm-a%yL$wRl*vEk2b?L5({86F7D-(NitlK*NT`Tvbd@*ilk;0DwFGv0CXv3E#oXWFgn zB$wL>Uv?xdH!^y!^|GI*jhx+UpJqQ>jhx+!y!0o_8_3z+wNBfNXUBH{B@sFD*pzIg zxv#J6uqoT<-Q0gyAw_43b077Z|EcAX~D2r3dpJ%jTh8|BN;%a<9gPjy7NR1eTp&9NFT*DQ#WykvEVc5b)i zlK$RVv$%6X3$48L%OVJa>uCr<*VD7j@<*-R@;v0J>CGcykXxkli5ybKBtXBQN8XYZ z`D`oGFz9~{#L?X`*gttt-9N#Ni#PWJmmZ>Tpo(d8i0!ii7T}6#jxd|~`{onmN!yay z?w@K|s8run_FtC9kc`JmYPLyUL7RFdc{GLFbyX}j$79(ru8^IOQ8lrj&41K;fW~1` z<4B$E-Ev;Y+k8G^PjX}$ku^=YTj-n%h1u7iDtdnzetZ&;pWBv@0P*wG+W`DHy87eC z$LCVV5cu)AfFIBIYWVSdFU60~fN+Q(pYGM;$Ln&4=QH`l^K?gNMoU+=isUX@g7r$J z55V?TVSLxX_RfX)R2U_T@B%Ln;`DJ2{Yw>PIBeR9OYyM3OUTnwWnu zs_ zL?I-g6Gx)X9m^S@6DLta1#~`9q5(Rmlmx*)VPZEP(0TAi06ISj0qC4qA{VC=zp>(K z(VvPMi`t631u`pI-f5XD4-L=4G_@DmJq{@wiM*VQo}rCC`V*A20bG4+QUOTBD1n}NJnHw zUHgd47cJqA$aq5>k=gNW9+5Fr`*0tT@vHo7#1Y|yiQlbNzulI5z|!PX-fl zkVlg-L2Zf_K)rU`Dn2P(H!Oenmw=W&tZ=lsx3v7Li_I!`INY` zbVpl9Z`M!S&Luq4CNHSU6uOqS^vLBu%oIA8wnUD653JtCT@I@M52^US*!&7uc>hPR z@cuGbcz=mmc<=e_%#nYKXO8s9W62Wgiy!4VXB4`6&H*5xckwyN)H9rm{WNJJd80`!37&KLI$ zeO3_&2i`lLe0<{Z$;YQGkS<;~6}}$laNxbZQ5i9dmRr+=4@ZBQ|C9ppEs(wngMT>F ziuea33}9ezh}B+(-#GqcvUzd7QWdS(qq>f^c3o;IUZc396;Bjdnji0Pe(xfjp(!NG z08rP`H(;qi77S$B;JJF?3-Ns&vcl)>?C=f*S&=#rWCc_wNirm|LWMl&BsdEae5N)W zeSD<(k;P$oZ>@i_YGiNO#5KyQX!1{4A5~2LQG2p|y=97hBq@&G+KEbTRPXW_>K@J9 zqk3!KoH*ekx<&PtEsGM~jG3^qWBIw5r#o5-@_H_uK8-aB;x>DsA8dzy@Du0<+gLxS zu-K=&C70E@VZJ2L2dC9isXjC~ZEh=hT55MxTBW2)slk8du952CVRn*3vboUIyQ4~~ za5%xPz2t7Hx28#tTIwIt1tJsr>e?pBX0Np2OXal=GPNfjB)r3e;hh$HwUx%c$x`dF zf?JYjP%+h8TyDu~uY{mz!v31ERXRN7!z0(AL*_cIR+2CTuW)$mZgMZVJoQ#5i;BdP z@CMpq$=7rqUd1~FZdQyCrTJoO7 zZLQ=ImXfy6l$Mqz6*@>$aax&(5Sxp{zj%nzW}|;p4rdb&RVmewYykbR0}8IzYOf}R zolM-Vjc%tUB`~1X?k0beTuC$Mq|Le4h2cqc&2&`Fq}9dc;nfs6XuZQ`ce|kQ${p1n zS3t-D$heynu{8I-dr3{$H{i?aYorB1d}SQ z_3j#>_OYs@N<+n4>+0Q2L_UWb%0_aMd74zoGlZ>77YP&(?FU+yg1XV%vGZ%aL2VQ( zUDjHw%cV65;{XMblv^ttbygy%+fq>j&1rwR7AthK%7ETHz))0z0-Fm)CBIRGc5v)~ zHW!YLo_cqhBxTzwr6z}m^h(-$ZSIFmLJ1jiVR%qGT$P24U(f^|f$=xE7f+Xs7j~_5 zg*BvjYiq65mRiY0%A=x&RIN#1SUlWTSv#|79m(4!8<|YAp`P?1I~nP-(NRijq@91u zPC6zLxz18;tB~xTx^mLdw7i?LYOEC-K#C+6E%_>!?MZ0g_mFJ!J14tKld>H4Dx0&8 zgrxOFhb@6-fjww-?h*p}2%Zi|f>Fd&Y$4S?XTGG0fKh@M`plirM@V%zWP>DsW1cQ7 zm4FR7WT52l+^c)1($F1kT2lAvUebR_4?Wmnx2BObN%5k>rCIZd;DXiZbT|c4&PMd( ztXf++{GxZ7yU{JIv~RFG8tf9faM)viKm7LhONROM>7TKmXN|zg)6cS>=ZwI~CwI`F z%{u~tllY%s@o@esDhVQYUrrt7Dz zN4k60KHmm5yBuUuLcu6$as!%3dL5nOAKpRkSJsjH_}%bkhZAlQ|5pA(aw`iFj1rbb z^*7*pAv5BQeI%-<2N@OYo8Jf_YaBWucMUWKBC6?GURlGY@@kW1h@eY&F>Fwi` z^mhcMuwBW0N4_1{ThF?S6??l<^-fAR;^)jjOnQ#N!N8^vk?pD8{C9UzTQI;-Ikq?d z72V@HZY2hzQFHo%A*cGR-V-cAWV;BGX{Gs~vj5%WP4aj&?T1Sq(h?`PisL~1*&$M& zx^*~HpByzpS$|Mj^=^OHw3gJaT@#7(`RKe%u`9ZDe}i&wJ5<9vos){F_Gru7$0}B+ zDA%_tARf=J758sQ-L@+Y?}&m(W%z>^~ZQB1_*JA`$|Dr`SH)g?Ez=`{gl0aPW0x zBtuw2AS6JDVQU~EB!H3-vb_$5r`gEDL%*j&k9N~W`?GayouGfRhzkt7jy;0WA$CB~ z;**(#aSZ7p>?kBtr%u&f-bRAhwx11z+8!q1_nFzeK0Zyu9aAwWBYAI;9B?mml*%8< zT?9X5@OTE}46lD{S*IRjnkE~x!!l72?5{b_yePeYZ@n47%dZleJk_ADtnXQS;^e3}%UA$ey>&N-5D znj}EJ*52g{W}nCx+=4L73WY!rI681fzqi~-SrkPxP&4!(i8A_yf_+@}*tw|LP1*J7 zDv$;G$98|v4d=z#FF0^|I)vEI@bN6=FTV8e)-@QzW4aBQk*lK}$JL z5-tEWR+4v~YbsMST1eo1Y(i=tLz zeow1)5vp~`d;kus5&I6#eQ-_(D)O26!i~swlD1nh*}5Y=Jn@5#cC}s ztKxrmAab6H_XBjdbJ!kbLyV4q5h7<%11=CqU*|>OBqCpemZTP~CpW zSFxYH_{UV9`S!ro*{QaPM@i>MKya4IOUpA9D(Y}M$z9ij1++0uP%?v%#LgjaqLzh(4d@Q>KesZoFZ z1D{yVSUC}0>M)6jTr6H?89HO^EvO-rr@(ifUu*`vFfB9*uX(7@dB3O$IM;(Tj6Ryi zF8L*BA;dkdBZ8(|E1tQ=w*)TySJ$_2EN~oMqu!+!d8md?>ReDv%p+X$>XtyMScn`U z!K2{*lZzlZqm;MJ@i6Bu>v}(5yT^Z67OJ0BIKtWhLNmrU2fH&!-QX+ps^s~c+`BUn?a-Qi)2a4a93J#8)pQ1R+N*xf%&@hAc1%rB@?CI8_hA z5uc(;d>N1>D-!MXFnG@A*gokzmyAMa_KB)f3-P@Mh>~BfHGY6Mj=0SnOWHc(RZn)_caAK&yECR1VHI%=? zRT{sM2R)tN_+qZYzz@YBgAVZvTNhKtn8$Ao8TAIqJ4tdnX@eyb=U;YNrimkcCrMGK z(06-l+m$K2>A+cZF1D4wOtF7K%u%X`u9p`pO|^ap4piFj^bq?VIz`#brzm?!&R*zl zt_(3a>>=rUH3I{;DcpfE#r!ec)TQ#yQ=VZ61RPCFWr$|XV4dz2PG#rqCpjJvn@nRs z6Na?o*LEeWE}-;!<+ye~$@h5G30F#5Jm;?clz5$~Brbzaz(yLrz=IjH;>&p#E&c zzMrmJih(yELXJ5ytZQF zYu4_FssO(5{U+s*u9JWuO)zvlSOroY+=RC;n7S3c59Zdo-p4W6(As>+-JUe5bJ4G% zw>HdF4a0W`?S6kn-!tjc#e5j#4!JRTlbUvFvTxd3>;0rfPImXeJf2+up!4{5-NU_P zTb@XjDQl1>;tV-)<5J@6cS4%izkhRdIg9)J>V0e~*ZbUjvVoT37q11Upy8YRuy5YL|ye>Zt$lTKG;Q zMiA%8?o#U@__e@zt-qoCA|2{4Q&oRO(qDBLB{~&cFm5Z4DZy!r5rF|Z7~DHuz;Bp1 zX(40P=LLUsh{P+_%Ix|eGkaQ@s7Q-T!;XNJDK8&x5ivA{JCrQ%JakzYiKE>Yw^48g z8S-em^7JN1_-PqS82PJB2g|IZm9qLiY{B^Uc{<$6Tiu$(*tWXm_r}8PWQnqs*^z9& zcDE~a_5O!gDmA**&3j`bx4Hq>o@))mDDI_4Y|nqXF=*VTPiaHhQFT*;dueW^B;ilCjy4Y!h}fK6)-$?32+~`17Bep{jff+ zq*hDJCd92Z1V4ux+U@F9a&8)JUQ^!k!Gk0vf+P&Vk8vSYE7qTomX@992B-5!SF6fO z^;jlLAu#W_t$&zm)zQS8U7{aAo8f8N43B?%*}=ItM|lMf)Wd}i6YH8(emS~BC%|AI zZZZ~ynjLe+>Uq9eg|$9w^xVjA!}0OB<+j!OFaE0v*+Fp(RX|@eFiW%9+bo#9$6G44(WNjXar&NUe;q34--BpG)e^17fJ-)29AZNP!?zjzREG}v^Z zRXL^;GlQ~|4I($8+;HETgJA2Cod5(|#PmTGHpC#`t!{nVmdnH zvH%!@2H>NLK+7U@KuGAS4E@&zAB=w#z70P)(#6qIOp(BWJBxuG+^0mO%Pwia77c!| zPVQH^#;{J(^shrqt97pkVUoSZHr^Eg>%=Q!V5}1wX23dmJ1;oa$?m*9W1Zl+1U=SC zTOY7a+6-7HPi*>bu}<20k9DFuxp7^vP9}I^oyf|&@qC=+y$q%epw#i2DVu+NcuA#S zuf}QKvM5Rm;?+2QiWuTO6%}kI&SZ_DQt5iPCX_y?RP3uaDiw}N!BMHITpB7>l?xR} zL?MdvASJ`4N2ThQPiY-JMYWwx;HXq8@5DNy@7HXZ{jME;O#Oj`_Z|_;o!1^=8y@(% zrVvNo?gHF(z!YKrQ-rB0Og(?_n6uVEdAKj-bc9B*cLV*pyV9WS=BOS;j>K!5M090p z=Hs6*hoYfkhS>t}ZUzOJ54WBHPoB9d*ouL6lxq;8Fn$?5WE;-!`|DNN^>>AQZLP-b zv!)P9)jFOl6_m9PzYZ7gxo0dc1FZ2ZiwbF-f9Y+ZV8@zyfST@%UxTh@` za8KJc1NYog{I}|fv1BUKWr2Wu(1bm;hy(Xr0o8b|z&%mxG~k}YrG9WOSYh7-a8Jcw z0l255!as0NOX*R^e>s1$OLsW_;27&jaNJLSB1@lh{HNnC$4ez|l>DjW-%CPE-zfQ) z5+iWW;Zha2XMeE{xQD&~aL@kY?-aNPO5wmg@W_FC_7@A_9$NhM1MVqZ$9g|Um8mQJ z0eNDqP0*1}?7Pko`=+6u1W`Qbyn& zw&$m@_y-Bx^V`C{cw$7&*DK&2obU*|h=pG*(^{aL=;Js{;2VRt5v^=?(zg6H)Q~0{1k0hrm6C#-9+xg{0Twt09=T z$kxpUZ;^+H{mOr4<;0IAydiXb*W$LPHjUr1$q1plWfT3%c6-o0P49pA(I~8J5qhIxDH)4tj0^pr z8W;L>o!{f{53Ns$Fjd)VVP9wzIoQu>8Pb_l>*BhID#U)C>UeyM?o8U?!Y%8!;`xag zwBtY=MqSTF-FArpE4Q-XN2PXgB!KVJ;@un68^TD_QXMZakombue(0s8A|5PBXg&&~ z1K9o<@ydUZ&D;oKmrO@C(@GO24eF|RF(|io*}_8?O<}8b?$LIrN(eJvn2XqSn072D zo$H3f3p@K`{?Zr^0@#^>QqDW`-SR9+U8=^6(2<#7M9ZR749{1O(mXrSlQ&T|xqvpY zozng zwoMZ1P_?IVYueERYEZkulnCb>S7orCjN8ciKtQ@i*Pp3yPKrA$V@@^)Oygq0cS9L? zb+RbKNj7vd6Jn1;Zws7=CL(|ghea2q{u_sC|6^$0182c(4$#Y1WeEG(bwxH~gNCi% zr9*!wu6H3i@s>@IPi^u>CvL4!ezqkrIx!8lZSjXrJl!8UF;yw`E`d%=i`AhMGZ|ox zHt(CvDe*!lu6J=_{GbzK7^Or*C$4uz(VB5|;t9gh=8nnSa^VGl$BO3wc$$p|W)6v9 z0OBWB=+vEkH-~|NNY&TEKfwXivX{AOi#vb)WAhx8&%&wdu-NEX9P%v|xA z2{czHvC&?K>SBLlh$eb-hr_qvh(T#`)NQ!1sCi*b@T+ z-y015)d~KA@2eB827K?G&2<947ujA9;QNN_glFhA2LxpblS5hAnW)*?(Cej_F;;)? zH<>j|Z~P{|k$82#$=rhO&u{V@i3Y#Ptrg$iZ!+2x1Nlvc0)^k?wqSmfMK*o*n`|7? zueaaih>8wfYXx@H>T-QIj#}HMYjyK-)Y@3-<*1c!tr&fwx?Dkgp)#ri`9fuZSMi0~ z=IaZUSuun9LT&Ts3sqy_57HOvlIedze4!qw^!A0iq^hsJP%B{PL9}NeU#Lvkh)5v; zBYlte>uvHV`5)xF<60KA3I1tYTtN(1NSXF8ZG>!PAkOVr5a7VF5u z=<${{4-J&k(iTW*Q&WGFrOdp-Rnpv|%mT&$#(Qv&IZy&dj<*DJ9#XMICSP zDso_Ic41(i=-{zv-WK>7J(~U-&;Ehe(9wMa&I%hCK4`E-iWz&)KaRWC{`1)T;wMd> zGBrV(mYl{0qqK!opOsbBRRu%Xda#cFtv4cUJy_5GZZslneO`lqkJb1hZ2j2LwdNM* zC9la#E6$#my*z(yWpP5ms=1j((u~Z!gzRO>nFaCr1<9GEGm7(O6t9jiUNJX2e^ype z%9@fX*;%}Kuz`m9WIRH;o&Ma(f3&ByHN`c}#pSbml&2W*(bh$DX3=HZSwo-yc>#S! zTm4&AP3%5>Pmk% ze_|5Ehbs>9Ba#ZYaB~)9$nMqC2wbjk7K1re8htM%WZyhRLEx@exw= z$*AadWut$%#0?PUpY4)o!E{+R&=%9rb0D#i?EJH( zgyeljay}QZRMrXd%KarYKhWv3Qc*M9aIGDzOFl^)o$`Q3@isUY!#~ax#~V+Q^iDY52z6e+egE#6 zB=19#^ATP`Vy|D4od3m;l&@en$6C}7y>&|IHmXiGsKt3YQx41zpH;% zu?pVIVvR+M8J^758YKt%q7@bA3)N7VA#P}dYz~Q#`b*3VKLFyfU2sMjuL}^DJVm*O zC!NcrTGO^s2c6ak(@PqAXz8I)+>UCMr^9@B3Q9hA-Ufs}jT zzYnSbM}n~?W4>SwZw3`-MwO5VorHgIn)H2;ehKl@D^K^B#NH(IK4;Bve%(}TOu|M` zIQH+|#Rl~R7l77px5Dj)$g&!?qrt4xc;ANBc~yqzzBzai%dt#V9rzfcK2oyUxv82m zpMDK1XyqqBeRJ8vYCI_uMEN{ zvcD)$O_AjQ;0jfj#t*i#8d^*&ef_s2tp1;7;_t#lAV{TLZ1o<|^*h>JvaWWfGtffM z{{n&_K)zgUx}bd$TWGj-f>2+8Ar|G_1;Zl;^6D@|6DVLYw_)5-&h9bRA^aILfqhzd z)fsOUd4onI=zfDEz84h{CAEcA1jg>dO8f+C# zJp`_J|IB*5okFoawNh_?Y7U3PrP%ukB{X^s7E^Q)fxpuLr3A{=P;0I4*b_v!R{IJg z!(8=O&UQRU_2DrzS;3p&N2zn|e-Y+If2hDiU@ePP{~6@?1RbvQiFVs!%=8hhqQ#{U zTNn>}79xX=Xn8Hs`if}BJ$yx!Z2u?e@d270ETLwY?`iQ(8;VxsOFN+Ss0JLvT*axx!f{@w*SUajW=z2 zt>}?g^O?OG_6}4&fizNfb`F7busMK(Bb^aE9^GBEc~?GvsIH+t#*mHm3pY6G=W6RZ zwDL}NW{ld#F-mj$&K5Cp23z_*qnABe`qs<0Nh$A3w@e|Ys5oQ0FN~#cP{8n(zSPfT z>HGWxku80neW2TxzO#y14H=fcb=|P^tutBr(%tw~we+p)x~1;{-e-En(l@9F-5k<` zsCTp7E;}=SM=@pSlZD>!EvTKx_OtKXwO!|L~_kL`-YN+Qv|&nH{`o-d}Jb&yv!u)x}vcCk~M`?TII zez#a(R-#=bzlSDF*Y@&GV*2FhXzk&zwY4W@W|cF4TP&P}eIQfrJ?`eyRvJetuxY~6 zF_G~XPQj>tT78Z++kLYau$6(skq-4%zD{2Q(j*c=9TNx0z|e&(TzYGJAvF>g4sFJ^NCsVPkSPY8kwEx|lZKHpaaKaJeh01TEL>gR2Y#32Fj`OvZavS0)@_E)_ zuP3cy&SSf8W6yJf8J}v6eLT+5bi(3Q&Bnw5dfVe20n&ip&Xb2s>~k&_gc{H>8Lo&1M+z-n^dh}5ukCLiQ#pIITkaa5rb>~>)QWPezkgB1k}?tK|E|g z;ngshm<9U=&w}f_r7%8RRv2I30}2GsMnY&dy2WKs?CK-Nxc{wi8AK*~naf~*s)C+z z8Q2;zFn9|sTFzzYr@5ki-1;zSX-a<|{oP)?3^Gto6A(v4HVo%mmj2dTmhi?0UoFe1sr?=rAJo+HNevqPjiD>h!Ek~YL7CMQC@NAQ z63<7nrk{E@?ayLfZfF$HyvRU*pI%c-Jg|1uO%EK69$Sua%Y^>0a~NfhMl7<#=!;fh zL;HEn5UJw%+#M^YCmBaTdI^}`k1)O1(DW2PO%KL614G6WHSZux`tef(J_v%8x4~OD z3DV?In`SM?aaezJoXIOjGTG2$Cs+r8*om?iH(7VcaR*ohfS5_49&)^Ylu&PoHBfdY z$M|B4MM*RHEmdT{K_l1zu~s%8$x!Uz4-u zx20)o;@3P`@_flZ(Er|2WzB7CwwClO8CY^l$?%dTr2|XOK4iwLj4RXeD)xsYyb8Sm zyo&vytBO~Fr*OOqTyngM{UL!@p^xu9yvm(x`FRGiKaQ1tZ}2LAihY1b%DU#-GfH#4 z?nAuFqEZuHBh*!zN5N5o}7<3E5tBeE3htrt6~4$D7P_;!)JgY;b{LefrVf{Joja3Yn+{51BYKz} zf8lX#sOwf8>3MXr3%z|xy969iuhZ}drrryrYCI{1mb)IVWwj;6}V!T=P$eurkU5w@IZ zRw8^u!taReoocmVjX;|bJ4;TRsnT5E)Y_|RM^x9+{aaUmX)}u}x=EX9;S|+Y zgInbdR*jZ_y2n|_LUaK$Ki^EGyEuNV@r2v@obm~G@EIGP5m9fzg44m{Vy6*+of@Ga zI>tHHbZ99GjQL(I<$*z*yzSnEhtki3pf1n?3>wZ|Bw$M0%`6X zjAyGTgEu}Bq81W_m(+OdyXcHs5I_S!_QwhPLjOv;^(Fv=feHOAr11)ry zUq%bvYI@W>#hLDP`?_B_Y5%0?xIerO1l;dXrqE-G8EBwI#qOo54 z7q#I5MAZAsS}Oq2$`Ak%n|yNo0zgC`D*=dbYEWm>oV>A#=OhR~l;h`_u>cS;KbjK* zK$PQm&^Oa%*9ag|>@FM+`A$bPXogN_TT)R@L4YF69sr6)vO1;Vm(JsJOgIXUX>v<{ z@K{rL5=jdZy0N9Z9EHcUiJRv&gsYC=kW9KxgLPj2`3`>27_Sbd zLwCo&BH0T$di{iL#q1w-o+4fhIjAAaWUAKONmVYRJ=hGZ_ z-hrGQIlsx-nR6uP%gOt422Oc8=fiyS>!^Q2SIo3j5^TmwRjFcuMAur&rm7!=yi}~ngXU@1>W}aHc#>3+ z@QCb@+RJCP`g8CVD3+tZz})PAEbjR5Wu93)IeRe+>Wt5x#3Ln%l)$7aaMR@M4Lrz@ z?ECmtl6Yy&^$7&g-<;NQn^ymY?H(9EA;-4->|1%dx=EDwaGSRF3%XW|&(7q2_RAIy zv_fr0yOwtxREuL!`B^VrJUl&n+*YJ{&K+0s)xNy5)X19CY>7z2!5hSX2|K9-XqELB zocIjp)=)fID?P6*zmUn=AzdMW6Go&LkP|$u6dyDea;VaFZTWGb?iee5Og6sq{+WB@ z+V-{=OrP9_=3lTKcF6k^>9w!mOXJzVloIVu`X`pR+20)Pj4}2z;jWn zzvLWceXBHkQyyvB{yQp+>f4Q*RX(>e(% zjv{8mLwWj04DCT%a8jFds%b~1qC_i&dFgp?PMM5Jz>+016J_gvr?s_bSftWhu(3|V zR&)r8=M%-P_h_y3w6^>V96;LHCC$@mt>R23s-_$3k-ZPAjpCKm5yqQHz2~I1_7sjW zM&`r3VBoK&ur|HC%tbq=82r0CEV0UYGq~2pGKO`a`*^bqvR3$1t2ic4U0Fjl&!<}b zG3kZyV3LW#JSVh&`mdewMy8<_uthslz=X;4c9C+Pm163`s0TYPd=6!cO(Q?B!S?dU z{~$DPqJ^tTrWs1jQ%i#e@?_^2Q=yNDSm;seWc5Qh%+s6BS#9|_kd{PISF5FgskiK* z`Hl{Z{c{+wcAT34XPkI=fh$!9cXg(TL*%pCoO5(TS5}07lRKQ(@D;z#a2z#LTJ$5s zG3a>XTqmx(A3Zv}X!B7ef7PONuGh!R>G-}=*MaEUr%9>Ybo8#WM~*5hxXP7oyef`Y zjL-=fdUz2HosWU~8i8;%o|@W5!T3k{=qc8$PP_l!=h0n zD2*|0F{UbF-Y`unyF)6E`z;h6%T?&dg<)iwBbVXRSccEAGGwu0P4AK@EF5o=O7T!4 zpB==f1sl|-0?CDe!v%(fw$=W#bKJI!DTW^C2TvbJSM^PF?(0YAz9{$tEC3rX?BXub z_)S=UE@KlJo{r^#;s|`-kyswaJu466zE4V&qDH3>TxNMH-2hM$MWp_M%cX*va4;$RonD4^2MtIWuP^DyRXeMDkg}!`}CF|>MlPXN!jS55k2?F7C8>k`Xmqg z+KcD=^_D_c7WS-+5o5Ns=Z@W`u7)5?x^4=^x^QZ0s(uK-m=Q~rwx$LznE=Y8&4woA zPrYpihqQ6ZAD(l+(+m%y;o>X#vve7MF4&TwJl4X{guiDjKXpR2NZuuwc?f8In=G5= z=okS!sBL-6Hc9BC>$Xf;x=9KaoOrHol9DW>(EJ#*kGf4ahzSN7qdIUnpfTSzS_6%_ zWFaEZxGofEjCz9+fyQ-KKx3nAelLN>x6O(GG@e`)3^cyC+d$(}-s?2fYwxFjoU9`i zWc_vO?=|}K`1P8|$-j}e$lK)K$zHOL1juj6J7hok9eJ0$M;b^YIY64o`{V=iAvs7s zBL6}DlQfe<(b^ZfroV+8*{zWUC`@BI6N?X%;n_qOLIR=128P;IZs%T}6P-ZuN1`PoXqCG-Eg zMe`5k^y^1~Zf~I8yXW1G*zs{C4^Hi?9Ew%HZXDk@r18eanzQ^G_UXdGEAmH-Ol80f_w-0I~1n zAa>684-0A!<;`boG4tjv2>q>153&ytz=i&?0qYM8NXU5KmcYcyKLz+ceBfbFW!FFO zFsD+l2I+OSR?^ooKIRaA{)-2{uGBx75Ghd0-ljfP;=_3e1pB;$TY5B-;|H5{VY@?}dZ;!P}dWYc5drOK39vt|_8MlMBa zJy6(1BJr1psmtVbMHy7h|M|>R^g%xUuf|M8|GJ9(J5?1*Mepo?T)+wJ*E%1)DcAc} zCpl1+k_Is7C-0}jV9EiwoII6YN(!a4W!Kf)k_;EuV27(pbG>ydxlJ)lTbY=7ZUK#~ z+bJ8u(ljHwagxEUq!s1%6r!MdW8A&)Y*0LwNuf-3i|X(}D)h;i*BFK0o`k0Zk%QfS zg11BgEEd|q4}NA}o%q63c^85%hos}BsdY4zRA z4(ZuR2W4JQ2e*hx_U=>~?93*4CMOSzm>9%^&2d$h-) z4rl2or`QKGCHGU>oYPPtb1+fVQk!v6%e%xaV3-OU!2RG=k!WR+F~~=bUYztTn=%-f z1wS#Y*fXGiXsywI$<;dgFV_Ns_o`kq2*Eob-zKH}pLENPIPNXT*i{t0jyAHwYU&t!Dw;*`Aa84lV z4|^LgMK-E!+^IwEZxe0Q6|~1Vil~AH>cW3XbCmg#h$^d=GUG2hbC#bqk;;B6S6z*HOg) zdL30FE8PCDql#Y)s1Dpeg9G&Fg~%DNo$dqlcsb|*y`N9B2I!ez{mKA(EG^zYb7g=Y ze+@Krg+_K|06o2_T?s%hL+6l514M4mU}Cv{-Q|WAEi#(>x5W+1y*k{m+$-dUv1v7M z25N+J!)9x)=qhgWoN-cK#Sf@9n;>NgMkSas5d1+}>j8wbl-2p{Z5 z=z3k?gJl?eFnN~9jm!s2o|Uo3|2^b`?eXh<7R{obFJ#O4ux3%FW!Z??)@D&7W?#;K zEGjseUNVak$@Yd>6t-@*vP}Tw51#WEZ^><2&{ z#t5QYHfJbXp+VBgLD{M=36#fLGotX@8n4g6<~IUE*#^>;W2=2NV#?1iMjxxMeh(c4dP*9rOHBPW_mjM!&ej7 zjY|nE|4A=o?@i+)CiM9WXE&SjhE6Z+ZJ*Re|I^hWQTE2Q(e(DV7qm8qWHc~;?%q2F z)pR(VgW!+NIRO5|JNv<(I65c)KYM2a7u9tx@HFd8GSV~z0+lmsw<3r>`#L_u%` zjUeF4I^f7G2!ps1S!QrBFE62KlIG>vw9nTheQAwJ6JnFLF;uG(ny0P#wfT8d(O|4Z z6Z>iw*LS{i&Ru6=3EG&bz|1{==R5no=YIFx@B5#rS%T@GBL&liZOpbxH&C@{#F6}L zde3VgRmX7yxl!4zOa8dzuS-5!a$yOVJt&)2D}1EKFo%5|?J<0xeq}zJ@!}CNk~K21 zaUR1c_I11mHV7kMjUEH13s!Gi5vNP!q$f^QPtp2o#!_-YetZc*H!-(=Y__{YN-^|H z_*f5B9q>H@@=yvgt%nJY(Fl(81W?r(u0!<@kWzaLKSO=7M=*W4K`>psPcU8DVH`?q z%EKbS#4C?#EU+sNIqhjE(}}=0zUJ!HArs^9DH+UMk3(x(qV6(AdPoqEn&gmg4%Nti{dMEkqDN;#g*8k+uEyZ!9NJL_QL0^U_T?2bkWn+ zenKcYiKC7SB^{k~M2Q4+J&^zml9W+U`wo)PheAmw5j!Q6d_>)UirRlyi+{R0paMZ` zlPRwXd@7WjC+R@NWEJ>8DES+XIwq6|zAK>jQ32T7jEJ2RNs;F(2TuEAAmDC)8ZZ?CLg3r?V2K1y1Y?9J6whyPsAP8{J@GkZq3aj3LH z2Kzb`v4!#&FJ_Nsb&H&qI?VWXSa3YEUTA3TzCH_QuAD z>Y|K|$*DauI^PdAW<)fAu!n`d zV`KJs6xf(ad97TY?#TvPH~O*(urcJ2zBk$9QDS2rDJ9y|9*=a|`N76$Uz&MiV^$RS z#l|Fm7xX7KhBMA{u#@5XVq;RiA~q(a-?1@psmFx46xf&$7sbYmaEA|bYq2pS>y4pJ z{;@GQdT^63Y>delHU`gsAubUcgNs#QW5_x$!N!~~U^UTTV?tc4GCr^|G!EB9#>RxW zB5=#3*97e5Z7Y-~NPm0l5Cx;!B0n^GQ)EbgZ5c%-rSH2I#7Nr@s9sM5V&7|~O074B z-W9+bL+=XUjX@&2@y5vU_Qv>(o>2k3F>-u)W02BrUT=)w6b10csIJp`V_d22tv5z9 zoCo4~1|agwLMV`s=t7MzfVJ`k&=2^1a>ibtT_3GY)^`d!qTY?pV#p z_hioOEBSu2T_!EX+kJqdNntmhd_SoE29WP3)cYpiPq0t1e$V<_+YoDzwW;jKWk1Bf zn`{@$qOA{=>BPgN9;`DC0OZ8)bmr?3`JS4@h~)c!7c4y` z-;;DbC*P-B7c9N%?inM|XH-@LN)Q8id)gBa!-ewhK@7~8$QOv=Lb(dWFtYxugBV0( z5Z@pMC{P43l0y@Yn7m(eTeSLjvr8frnWqdn-?=neEH`VIOm z`W<=;?L}{+R`h$c5A8>Pe?SM&L39YUp?6R_`XhQ5{VzI=q|GACM}z|XZiae-Ck zkSRXvoMszeRA9AYiMbhBi=*{Z`ML26nbRu{TNtf3Nx2o9*I9~4p#{ao6*S+BT#&hs zpIK4LTP>AN-sy0E@K%St6vs_Yo;y2QKaEdaZ!Y3X92K?#r<60UYHn&uw0=6DTu@9K zW3RH|&cJcWGiRkm>nBZwf{RvLti@tG%ur&=oVg2T;pj6vei*kCbqr8ytWE=crnR0D|x|uEMnqkNgabzJE|)1_rj`5C_H&d=29$jAD;#- zG=u;D%&DUP|GLJIheMt@d^U4kl-`5H#Qmvq$hFhGitkx(@K)K))}=yw;gCp zY#TfD;=!JOkN}v6`1;*Zw-4I%LL(AJt-Uzh;dPy9mXz9e1y_PPu0 z1MALrweSNOPj7F>`Gejt0iWLY1F84@zRq1@J}prLh8u#JEB;<4Bzfj5K?As9p;M>+mh3%aaPM2+ zeQWSrK?mD5Mj4Xl<5mgwU_2P@NezpZ3eJH-RdA9H_j}EO3$PZJaTP2T?U$(pn0Bna z3N{vhRhMCiBNK}6jf_nw<|3zCi@6z*u~UmV9&2pzoV79$Pm}h0oP4DdPhydkdM>gk zvXcByD8_$cr&aRsClY_a568zQ!3X|9H~{E^Z~`8I)Eys>-?4iV7Zoe&gcsPa^rjU*h6=3_VaX4Q8ijkvmk@ zGA=eY7XPm2Vyp3I^?I%XA6MYx3Vd9Fk2wM@fZuD^c-8H#xsmKc~H$wlD3Cv_olcr5TGk!)RkUXBcKI-_1`}unb0VM@3gC z>)qVlT&JjQ?lbZZPtLX+$izwFDycD zc@Rr5kK*Cn7_hQq?o97y;uvr(G7cBLhtp>n2QlC*Nt~IBMT|o^$@mbU546>P8(xYU zFB-@_h3m6jRUdqadu>Mptu0C>rjsEgdx+FOCSlnet28IfY{Rj2E>&n-n;-EsE#+}4c^zjEt z0Z=gHdI#I>0bWHyvs%Z^@l)YelF;~F=na)`;fxnw<-@$1P2UH-{l+{}I5V=rH6;?8 zXJd&@<9FEMximNwR(&jFp9QK1q{k=OK4H}vAsdF@wOkCz7$T(IA*}j;P{@YHd`R-4 zJ|8&!DIxnK9Qr=X4i19{w2!aVh6Q_v;ln0!Xl#+YsS6taWtXb8kK)#@q~`=Rb-kt| zgNJ)6MC?g=Cb2Ob#r#CzWgeWkkPVe&bs^mesH;Jv<+9+6 zM)X3^#Dtv$>(CEirl8Zq@oUtiT$&QdwS=#9gE+ycuA$Z|3%q)NcC;vYTq$XQOPReB zR9xjk)p5bu(Y9GmbxD;fQS{i z)8Da{d7GSjJ@xMYo~o@?U6Ur>Gx>S9hKN+$MQ}Z93fPl7My>dAV$;oxgQJ8 zv(!;3f*#bgfbAH61k_x$Mh(7d0q2k}arqaa+%rOTm*Fns5SQFa#UOxd@{<{cU9IEO zg_<+MYh6)>v&+vy^e5S59Kd?vj1JmB<9QRzhWN@G&Mu2tMUaiS^$fY==!SFjEv#aW z)--*Zk#1wt3AO>ad(Q}IU186HrEL5HIuLU-DJI_MokH7xO%z>EuWK=%*QH_cx5@2p zm$=F8ZfN+QS3*MOakJZHVpi`o4{tI}o79(tOmk9sct_YJ#UV9HKes66pvw=LMkDB- zOml9LnoKimQD8Dn@}gdoY0fXA-5`@`cJ_iyvr|Q;+1z-2$uv8APNqp-OqG;=A=40L zNK1_QekoIb%S4?FhsDDDfIl~8N(vbs=5eGTqFqr(B+;V-jAIUC@#REZQPxrMK6F@C z(U_3|iN|5%h%N&Ar7n{uS%0SKC$;ChDDJ~YfZCc&QTYl4b`uD?jWlGRmwUl5wV;VJ z98)$TAT($9YSz2wTQAY>C6^OXaph}Iaou@AbLhN(r-A0s3EVFQmYOwJWmlB%eSPc3m)b;S*)_5{>3=G0f51i%En2~PgU_a6=-$b@{#*B6=?pWa? z-G^}&zNN2SQ%6(hN>S$SET{mKzorii5^^r|Ki-36``I<)0j^Wm?9n_5sOKB%R{t?^ zt8WH>hoQFBS||*0o;$;w(TVC9i*afX~Mb{ZP9% z{njSJUv*k1WF^(86Zyuxdm zh|fK{1bUi`wxxF|m7e#X3E7|HL;}o2=fk&uHc^ux;(0G7q(v~_2;IGYN{X6Kr2z&Y z8Ya=LmzFh!Qbdt7E3--u-AYB6hAQoaWq4Zj|Ho>QoCzq*h6vxe(y$d&$hfR2yspW( zxrv_0UNji;h}azsM!qw=4?`aai=xsArsw*`qD;^24vV7Ark}7VVzyryi$Z38iH{?H z-a~0HaVa3TJui|-4iThcWT#zXwz#c!)BcHc-l}e0SV#I=H{B(rqDvc6bK#+UrhG{E zL4phXUIKPgMuZLE+V80|j&YAs3^}cYJOYqkntTZP4I=qXBKd`Q=NAw8LHEdOH!M@V zC=Bmdo7N$KLWM7JB#bVQ=|bt;XK+k~Fm(Sx%LIPSc8B zDV?KND3#8mF8rvQZD8Rln1ir+C&pPn8p2nPA-|%dLza!lIungY^oE z5{jovh|;;}DXK*GlXKC|K+Z)w`|MoQw({%hTtwDk{5u!XwV6vRm~#=CJ^Sih^w&b! zx#;0SAGY|Uup94OG_LLjI2V0?zs|RF(YC@z^PkEeTUeG~kpEHM<-C93-@g>(Q!kmlXD|0Sdze;p2 z!o~NWb5U~2()zE@~-IITvk$h=9(2MKwf1?Oe2# zglU|M>LDSUnq>j90JGsG-Y6l$Wl05PM@yd>&<<0{eG=~wok6#C3W4perMMOa{WF~>)ZAFZ0*0$^;F*S{eTN~9VqpgiN6i#jNv7=<$&s#q3q}#9Pi=+?nyW?? z%PtiP&oOb*(x(=Qzqyej@#Foj$@Z1o!dCWTa@`7UORk%8Tedca*EDLmE%+Jrr2yO( z9Q}$P> z^rov2Wj-KXWv4H?iu_o6Q_@w&S_05j?y1+(RsK}pTe`|6IJ3m@^hZ~TRth2iLTmcT zQ&e+@W|-X*OOaC?t1yJxmbnB9-JOPJkr+q=Q+s(Omn-ydf8lGO)h zmo7ntpWd#2pyxhQ<^!|K1W#!MPiz-g(8%KSmQ&*wZpI3pB|nDfdmSQa9;^x?z1u$)RHM3WC$-el$8LCS@l zeQ2RdiBKZ(5S4gyV5s;`U1WFG9GW0CsAm8D)e}*FM1ovtX3rxBK!PYmt7`TeXp#{6 zE;2f7S>qV`Qj*-Uad49EmsqKsrh|23!sy)wYnV}FWmG;Ms(VzYJeJ;s$eklrCRkCK zs9gE5MsQywZ~QM+vxR#i9->IkE>NQ!ShIgHX#mwtC$Q7_kl{zIlN_zcA$ARU#J+zk zJ!jv4x2=`B?7jPOksol?a+eU}CHat~G>9qJDEhMIJp)U713Hh^O4*n6wgC6iY-Jxl zLHck9?L(R>MAeqTtS!^VDSGj}!L%tt!WU35^k8#qQF-fxa@n+@)A;xo)QTgNS|PqO z5K12=m@c*prb`0_(`9^5y~4q5^y14bWB`PJi2O;h!s(@KK_69u01Tu z>&$ZLqx>!@(@}TkdezEFkB=^Mi>PH3=V^YCSpFBaoWn0kff&W zZvV)p`D6QJo9oszCh2aRkY;1)vs&Y3o1NWi0?`r@-Ly7|7xujGIp@30g^OTf%SR%A zeBU|WxxDA{o%5dG`+KQ8ujOd^Ovr8v% zUUm+{H}$Zo2J{GPGPwu|!xT~0t@Cnq%DZ{?xu8?^`~ls~0(l8VC_!)O+F&+3i(&Wx zc`a#77y1TsZ|X{l?CPEAhP}=C1M=Q~=KKNaiyn@&@!Qe~LZEM=8PajVI|?9E>?440 zh3$Mgo|#oj z0@r8_@4)5^gHpjXPGw6%?a?xS%|#?|xxw6`2{RYdpj3moX}7JRzSdxK?r3eaH@VR8 zuXJ4=30y&q)Lgc0U|G1^?%dwsXoG~a&3RcQJk3zza2OhGP3_cN1+7v@cs>hX$qMCa zZ??BN>s@wg=T}lvK>|&N68i%#YUsyo<4Vd))`N9iDzlD5%Ry2usAx8SnhvI}MiDgI zKsNU6E(2QbNwO#|+(6>2F_;?~>^p1?h8DXW#8+HsE+pkykzy#a+iH^?O%3fdUuN%^ zkX2;KE+!F{%M}92V_ovh1-T?B)v(^_xSv$AxxN`PV@a+s4J0=bdqcQ|VekQnI? zyKVIiEY|`{-Udi&wIQ1nSF$#(Z)|R`L$%Pnk@Sk}0wUiPYYdrxQcr?t_Qqxx>u*{4 zh0wTZDY772+8ehy8tQA9MD0yAj#e-^#WeFQmO>JpbWqn4=%Ouk_6E{yHO~5G=!nHR zS$U)*rlry<){`g=P9lzW^1FUV6D?Npx;*p70upP56btRDq!KdB7Ca=lsZ}tNF|G77D z`~OeHOX8)+jt>@pD!w_m;kJ}XwS-j5PXFqSimQWU{xI%_0B+I z%#{Hp5dgDx56K4*%;Z1Nm>;MQ95pVoglcru+NVjr&mGOMIFO8z8}BD;N<(FGGuS0J zV%#cNX5v}|4UaJf+BCyAxrThaU3SGnRG238R*6@yGPe=jd2~h=sW7!%TZS8De0pal zc`6$ng0WP86}%!@u7UU3T&98Epbbe`AUkqcMx9JEwT%8Gcis?h5_CG|!@4(O-C*vQ z@=4mWkUQC}%%B;NU6xKj$d&INu{RT7W50zMDzA!N@Z3bQgezm#+VE#~ano!E>R5@&k@k#dY$fJS_7umogVvBIW5Lp$*~TgX#+{#o=N{!TaH0~1H5IayK;r28S3a2 zdeeNhlTj9867=t}V-Ey&lO6?d!r0$HY1pH;*TsHpo9E9$PXCfF33Y_--A;$xM{j+xLxhPm3y7*mi!Wf0Iq>_%(YC@Co zt-&%zM>Wi0G!LR72yjH11VEjimx`4sCS4TQej%z4%fEo9k}$~&x@>Ys;%m>9|0L3L z<<(HZaXnXNmAge*G4gP7T|Bw|pS&io$!qeOye6;7>#uqL|HmZ0|KI7k;=S@?vj5+I z=^^|72G8lZCXcZrlkER<$o~IiHQE2?h>Fd=mh5i7I2Inj{loA82I2ba>+KPd*$@60 zC3|0=7@EB=kgIRiKHvNMLR0PSlDYcAMLPXv@4xTke0+gKg%iZk7m5u}QN0ULy>A3_ zUnqt?uIh0(?Rcyq>vopa+IKIjaWu7mI2!DNQ%Fw-R=bRhX+m;xK8c;2EEp0B_!%Ei z-X#i6jwZW+ry0UpQ2rBpB&`#r2qmlKRuB8xucni0-Oql!YC5@cH~rb-*3!wb z-+$wLaJ^3P%n+lzA-_KHw+$lHRZ^Z5rQ}gPm3uRpg2={pj`5MsKI0~20D8KAnmi-> z)gxw!@rL0*5$N$xoe(Lv3L`NV9?qV{lcU62ly?aDc;JnS&G?4Oi?rW#*#PJp8eJDO zI#rD6gx+p3C7I*SI6=@Ip*3py9{TDn{#_CN<|!M#9_gxmo|)c+mzk=|!~1qCydhta|0>dXSa z=|i{Q)K7%?F#vPV`rFR=JI?qIfB3G!?B9CEU-}_=<3DoA8~)ah{I0$|&!l4rP>l6j z#YiDqm`aAz4Br&mZGoa}X7r|?3{m?QWv&8i_f5+K>{+k{Cj&uFO zj*Ods4)jrJXCcZtc+nues6WM@`%NE_Hs}-di~R*>{n_V02T4RdgK`QjrJO>fI&v}+ z1sbNLD}0znWtgowh*dgO$kAG~fI9ud)S10x;IbfFmETM#-!!Rw#y1tx4Aln?gB>5e zK_9(Sj31C*{I0ScVpD;COX&?WBnfVtV<<+G_1DPzAkwji66Vup0pCEZRpKGYXE5_- zD>x4pVITRM`!d%4>;;1bin~@W?wHb6B&u#!wJfCmK>NZHp+G1UHVaKcv#?8;WA4f6 z$ayY@{(CAX${b}j8YpBOVUuyt8j-9uR3#u)JL7NrP`@Mi<3de;dCAC;Fz1n{V4V3o zqW(wlw?zeiKZZ6q=|TN|*T>M_Y$Rx#{*JJfr^1`dMy*zeo~(e$XNk(oe3+Sq@_fyd z5_qE!Qd}gG=`)btYJt>`klrd)c{?k1lj4?AOZ4U@>D?jdtuzrs(_4`+6}?q_Zg_et zWA3Qwt^Pnqn1axMrF#_gR^2Lkt7gx{(pzw4LT`m#BD4c;I=h5(!0pcq z>44jpH@*(Ie`I5ytBG~MogQ$eFjPw=eu0WB6x9|EoNg=abj%AhrWS_l>UY~&(ieQM z(x$+%gjIu9PgpIt`-5;)i$@xb+yfZO}Vc4L^Iu(;Z|~8Rpyhx zr=YCI-vkfVPRiE+$Y1ptA>$BRiA{h|{*L}x)nMpZh9m7|lH^OQH9n_Q0(c&RQyvx3 z^M@0fnGZT@3bS-;ZxUHBEVVh?epm2hfw$o21#cB#Y8PW@3HA5TTLZlXT13C;(iHu- zgFQCtXVJ%hDePrIzn={B{uGP9<4V7;mvcZzZC!}=;qk2WkK6gp8ouE@xk{)mqu_Y>^kRif=>SRFUoi18nCKmccgod+-Y<|knxp&YPpmSV|WNn5e z<};f72Af8tsYFp;|6!cW50kl_3;=(&&}-Om?T!uMr3Z2CUKkmyjY*Z?&Zi%= zkX&4<1x!zIa4xQ%;^DZsw8@MU7Z*?Vnz^`Gi?bfuCsH4vB!}HqifM~1@TtpBJc4Eu z&;54%!YS4dYVMwd9hky6arbnGDmGk1^I`c38TVOxVx+&$O>e6N%+?w(5^|FLp^ z_Z-|JbNA$I2|{&&nO%SGo)5(9z}=H12Iua{+>%#bQvRP6OUf6P|FrCvWzUiSe^fEM ze0}+$vIS)TU_hV0i_6xOrIzikSX?%(OwHYsvqj?WNh?)w_mCUl?nx`1Q0^Ycg>m=5 zpNzXFt(0^3knG2gyJuhvTZkjE%%zGOh`Z+>e|9K}?l-+M;5YrU6S;d@DpcG(pFluZ z?w-#uhMK$Q0zT7l_xuSShUM;Y;gqT7?s<7TPNQ7JHzapYOvz}tdzjj9B-}l8E5x~b zj#@{`-GlFq+%dRwLWp$=Dpf1Fu@LKY2PM`ye(%_bb*lG`iCE{>;fZx3!V>E|9fDZr zf7!2-SVz_D<4>%kYW(!D#5$T4Kc{I1!}IiG3*mo;){~azWTP4DH(hS^o340`t=_mc zFIfPq7t%5slrPv(;WW7Z-R)cHb9kDV$ZRD0_!=AVmphd&4(7Id;o%(RL;5dfN*{tM zN3#CqpKun&lwB+b#bVy)tCEW%?I?bKe`j@&r*KX}>!(f*m%ycTl`7RnA&tSxb}#8) zM0Dg$)kY#9i#`(RIQB&dQtmByO^`G=Qs8!_OQ1oxTn(03Arg3v>To_sb>=haR3Wg4 z4FHo6Z_))%Y=Cd|v5^&6UPfo6Xh{quvZH&s7>$YwMjT~D396+^a(dRfJZiY9f6GIj zqL!Y`T-7_68aX|Hn<=2Pa<&$#Wu9)FD}b7U?1mn*1=kioX47gqQHw=_$w!oQe$%BP zIRe#dp&BVNAx))0Un=Z>->Ja_p=(T4SX)ySFwEkz*72+U7_tq%1l!;k z+y>+8jD?3%GV@&|oy>65qZTio>T}oAi5K?CYuL6@j>+pepKUJTxk5`%f8%3@sOhH~ zbM{pWlMDoN-XxXYfvMf74-;Bfc4|Nmw`f_(qWcb6LXxJRA@cRN`#ZkyAO6xXJ0Om( zjpa=nc7T32$%k!#w$^UmT1ng8q=PT@ADhx)m^GNY-OawO1EmpGVP>&6E1 zU9OeQDOemly8es$=o*@le-s{r9}eJeQC5*3Kb-h=E$2OEd=X4iC*GTPBdIaO<@cyba1;;O&B8;1P8d@C7Zbz4Co07nKSff)$zE= zi@u%7PM@r^2(r#-k)oK{YBW13#r$T8{N{9x?}ZxOR5vXfuDxM%e?)Ild!c*KJ5`}t zJ996{i&UC4o)&43a~fBQk1NtXsA5u+)@}amNOf|}`rj+x|7s|y&aGg8t8-HZIF~2R z>CrO4^@+w~-p~wiB>1=9U<`0M0Ss{TlTzpA3~(e{1p^$)3>n~_wX>3F7~tyMtS~_s z;Aj{riOc|3=Z+^ee`A`ybj|>`1kYBO)|WRe^{PTQTwG2XhBz!9FvKlZw!laj;ua|x z;>Ms=<{Ii-v>NJkQC6)5SdGxhZZ!Lq;fTdFi&UB71u^p?LZ*a2TGx?m(Wte@k?9hT-Y!4#v|b3-E^I z>GRcv;pscQPs`KSI%=N2SD|O}_6)_-w@4W&B4ngVTc1h$pUG?Tn!L35|JjQ<{$KRm z_Wj!q9Um+f0sr6WIUVQm7!Pv%|Jw55@c;GVsO~Z4+z)^sg(1z5$euEOe(s>OzRatv{w?AQAfy-j8mzI7-s0LP?6*up6(IP?9p(>`n3`IJ9x% zp_6|$UlVll#oPes*2{Gbn<8BK09{^s{P!e*aQE zoEB)Ih)G zMH0|&VSxhZM{WSBH|ko==WvrXn=lnf94wz z(2uU>IneLf{E-6v@V$`({j3uL^jlS|I7YLM3Fy}n6zF%PWNbh`)7XH1=fq)we*Yzg z1NwPF0R0~Mnt^`S2?YA78b3VH?@*|mLPK^bgEBneAy1Vk!+~l^SrimT=tUUe`xWZRp2G;=uh7B>QOz?J7$Hhze^fBSw<=IE zb-iJP%SH+##2ST$5n2_%v^^?d+8z!}YXQ*NeU%b0?Lh`iJ6Neyu3{Vnrd{k*=w}qb zG!h&LOncR)1*Wx#C+@2Z0Zgl^)Bw{KR~jEz0Mi}^Jl7+(5WqAHZLbavOv5fS0$>`| zAYKD7?QtbA?R#5%<}JEte>W`~t`!lOhPSxe);+EQrX4FmVA|usfN5SCm}U(^`mo$B z4;;g{6k1dyeXzN;!|G@i_Uxdf51NRfNgqgTC?sc=m1OXn>us$X5aIZU_)JzLJd}^y2c!)!n z0uSj1Pys^<%MOvWO=5?5YM-J}MvXu^9(ae{!N&YF-wQIi%Z%7>f^C@O{nii+WYqT&dEqAh_y(Gzqw4FeQy2?i7u zZ)~9GC)>gRMc)blik6QWC`uX^F`(i|fTH3gP*l1ybg3^Le_FfwK2VPr!6Z!f@7$WZ; z(yzcl7Q0C3f4ys-ar&e4mA!y!>_MSC6R4&RCq&*Y=p*hPA_eK~(33qaDU089dAi?p zxxGI-*1Zd-AtQMWv zMdOk6kTsc0`Gfyw?^%PRtg^hf(@97O32heb$jsE&od}(dKvawjmAxP3m zI-#Yze-qLj0|bIe$5d*^4|S&|pyketx`XSk3i!Zrv{*5VO0ZXP!E({AEk;7kPO68A z0x~?3J?B2YMFQKI(D5k!R^vvDvp=gGmOprEcR5UHTQD$9f# z6@$1Jw>4JJJ9dl5vZrrlnV!>jrrkAzf3qh)PwnR!rV~nTZ-B!gA}EU-)~wCII&<<% zto9r;FIoQ{UNVrt0!Shjpw(p>JYtHdJlo0{ z-Yf?UW&3(!aJ~MESpRvNfV0IOx4mt94n*QNEu*xBdaW(<40TO}nnI{hADHUNf2@AT zM3SLxRZq1&w;FO^Q+}MSh`o-^N6Z*zv4Dv4VtkKfNk06h%oodj=+|=HekHtOc`9J` zq{R1;}V{>eN(ub`#`t%C6+&~9!lK1Q$6K;Qg!_1eh-QH+6Nqi6&_2k&uITY zy0v|>SHR)+?+Xg}_4yO6J^7Vef0e%){=%Q$7uv5AFyL@|v2`H75RaG!jtzc&9rE^}T}kvfi_z%fX@!=6i6se{am+aUNa=-*Tno+S7z1 z!l6N4Nb^gurhatPeRSgZOMgQU0?kPO=w?^O-lv$ifQKI4`q6n2p?&br^ax?GhslB^ zi|-@TNC8T(Xii_N;kit<)VS&)*NYQPIN7)3$>Kd9zjW_HgzOc83 zv}`~GY8&9ckdOH5e~3RsA{zh$UjT~)Af-7J@drqqpUj#?wrwMmCXrUMorJf9BHqp1 zW}g(_cKaRE?<~1%#!pFAfil^dF>BJ@9#`SE^_ipvBT>t6)x%7f@2*I$JB6@R;HxM9m1Ky?}0$sC_tnf7j{UL;pIEV<25Nd`(Itw)Uc;rhF=33y0 zt`OX70)}9te=-GN+oE{uy+CosGdyS}l=2G%J(IL}<79(Rgk{isAw@)y6e7@E4MuLL zZ4Nd9WV3<0d^OEH+BkF<^hN}pbt6M(YiT2cWs_;u{?N4W1{|~HhztRquW#}OS=nlT zJ<%ef2mIlPKG4{FT|+ZqEuiJ_Ao$SKhK8UaIw+)7e*?kw_nKO)zX3-qf)M%ZA|PWk zSzX!eO76RY!lTGg6$D3{Hx}k}2{i|+eNCbR@q&-lP;Vo~v;ekf#t`$5_yVGozZS6Z z*ZH9&?-?N{EneU}?2Pyx@dj8&gf&8BBT&vC5kjrWGzt46WGZP6dczw@prIbdI^=7q zZ)zkFe}B*yCZwQhvXfM}XTyUNqyvNvMZ;IC6tohdJNzMd*{+kebV|`|N!8}C4>AGu zQuu$n(&CS7PzpjM=npgT0#KXT_$$ybfC33ke&h*YMS~PpU5hXMp~mKjE}N`-#s&({ z3HibpGamD5eZEG(Hy>2!%H{VhBVia~R4Mp(e?vn!!X8?XjY&j?jAzl)nZiUQnXm{* zL;%@Ff1}R?5EFyih8oUtRb;Xv2}Y(xf{nnbksxt_oO%P;X(6ceX}}j#$xJoW^H>KZ zvv&^moarIxlce$XOnjKh;;_R5dIt>;KN1~Fw?;GQj%X(BjAqe)jAm0cnnV97YNfx7 ze~zcSqp9?tqiOW{XgYl{I*z^)9Ygm;Q|Rka3q25}^zCRXc_+G^o&7jFi#iFpz4NZl z^3JuLRh|CMZJp6hweuNB{kP5oozuFWTS@b}UR+6^>$+nVeX*X2oe+k3b{TVpq#F67WhyAu`Ldm#JQ>mXY^vsP@6>$RGbYCYAF zsAx9SYSwDeR05rc)(Lo?S`812=h=SIVT6*^vi(wTzcs1-Zh)%Q(0;29)iZjn9Z9u* z1yJqKYT2IGOSUAH+yfMfQ-KVvK!$lphHT4WN9(+PTbl~hZodcG zJ9Wxl!>uu%?so3#wy(0UFankY473I9U0sN6*^Aug)O_bTm1Eg93BzL}df5H;GeMDd#@x3nFVyi6EEIQs+b|jW5t)n4YcYPXNi?XAI z!osmfVR&>oV?Ebc^vJU~29XmX`Nx<{2YcL`k;RJ3(e<-K#V_;1NyLRZUky-;uCUP?o7p#UrHpp7Qh5U&8Sb-ck@Ku-9~W=Cgx=qm(EIzc z{kJ0h=r&gd4(eHTz-~=coK=w*gt|O3QeAT5+?*)i-0c|bLC?KxcS{ede~Tl15$Bn! z%h|jElg}T99Vuwfk1^HaC8xcft?`4WXB5OAIL*bP?Jd_0fAP>C;&or=^Fl@OveS+6 z>8I@{cybBB1^|?!BSFD0()-(ohUw7`VGd$()CgXi&4bc$msrEl<7ppY{1dIh$%Uw+ zW7zs%R`RLJo^MZ=7J~dld=#eQoqsdzZtI5bG9l-cRfzRjKGzLEoy*JEq_J=p#-^|5 zr1^C{ukN(&f5hK3_Pe#)F?**o(v8ohEaf6Hh4X1-c;_zmdqG7zJ?9k_TedJDlHOt3 z$VCsD4g5LXy$eUGbOeA{snje-2|N&%bf*S=MMBRfs7gg~jV@l*1cL=a|n zlc>0)dZ>fUVbtawOyC`4^NO+?_pF^<4$*uLv*4Xeem*NLx<}cMsptXkTsL27*wS;W5zaX+Ba73J>dEWGXtPe-k@sxvO`Po zNd$G$;E=DuLEO&>rIEm8v6paMwW98=Nc0>A|JH5^zqTA2>~TKQ?cCfgIanBxj+29g zO!xq*e;wjjgAA>?f9H)HO+f}nq?_{t25n-l#(omP0AlUJ)-0I%vjtO)_pm0PQC^ak#_*eceW%8EN3a9WxfK z<|3MkSf<)P7Qn4(mmZp~e6yJZx__~DaE&8sfBm;siw+OV1)juF2=CF&E(J}tT{mlH zQ2fibFfn81yCqkSzM*&ILxaUygSn!{PZ>4XaHVL2 zg*+v6)lHfSUn50F0Af1zVlrx7=?eAZ5F?Vv#SW-oi_?VqT;6f7)o=(GJ*g^BWnn!#gsx*NNle@9fu z5w-W(b?$JFyp4hxliw}PZMka=-%J*G#R5hcsXe<+chTV=44IkpyFySO^YT%)r5n_y z*zHa+_&@QEgxkbGuEryp<3kRND?ke5;=r06ez*%z5|dzS$Q%=dwmP)JqWOuc_+D0ESnrL=gMD~G&70ze&Pi=#mMD{+q z-gJk{`%~7-_W3H2$!5R!9xq;j_!)+=kOQZrKx-qYBfYV>L!uFMzK=Efe>(~{I59X9 z6&RdL3R?vqGb07-8NqHvI7&vZFPxFC(}Qfmq$9*izGTQ6FBvAf`vw|W<{GI2tK78= zGoGZ`)C&(wo_>g1>F6%MLoH&A(?}lrU+}lw+yUIIbMY417N!Bc;sq*7-dt%c!}ago z()hL1HC3CiSo#iU?l>&y=Si%OGGwI(f7rHn`s8l|g^nnZo5 zO$=;9z*Q0YH>0g9FPtU~Uik$f@l99ajaT&xkeD>c8iF{&#Nl#_Hmkwj$`Wr%nK&Aq zZqtZUFxn!=1bM3cGsCRLlpj-`Y=O|{@EW?0@3Hh{dX2^gCMrUne-T!T>qbX9UUAi- ziPH>R2n`wwQ7DuFh0>!*g=8<LfVM3~P~4x9scte_geCklW7eVA+hT7}}nSm-Z=6VO7mT0K}?!W0Lv%s(at8_RM|> zee0N=y-c39JnZut*3S!);Cf5>kaK6-(3u^~!DP5zw{Brno6vjI zE9s>OYr089P7Rvq$~khGV$Fs!*+k;YFJTZy>?4*=&?dv`e^iYa2|>t<@y5SOJNcn0 zN|6?+cIYA4jmsBNn7Jaz(aVyN3;4vu^f2>wLyVl#4-%7c)iGIaJWwfP!i|E~1}wNM zhkP}##;yE?Mx}X7k$PK5QaqgaTRxD7JEwX=2}YHd3~`B z7{lL?h?Mh3Vc~!zRFY5j{yJC(er`nvh_=gkAbQ#Tf0?RzbGyoH(=;N9m4LIPylix$njF)Gmo^_QNl$cv-T`AJ4mS@OZj|C{aOQ;$z?n(qG?4eR-F3_; z_PA=KVDWt0N&~FN)!b2V5ZjXP!GfK-!hkX^JFZHgkE@2kl=vjd7w$5x70vq(?Z&G+ zf%kC$e}+I~-~bFG{JPU_hS+?_G|{JarT_%tw<3J1%9)*6duuFLV!j&;*C8mI<76^x zPG?Ku^8NNTpq;=jC}Wciu9Z;U@d^XJ7P>N=$GeexA~SScdN_2F!Kz1!Q|a}@=^6s` zvA9JKsbm%vyULEUaO?g#J3;$G}_F;GFPC!r7$x>Zhk~fwe z*r<5}Q$J{>*#Cva;%D0{ZzvA~o3J9{UJBR~g*hZ1%d7cp#$_)QUw$Ny?Kl~1781+c zB%RXv;VF+w!?RP2+4fGs4_^pO`OJE07(uGppl!RFj381pJH@0Y^?W|Yca82|~ zioeRH2b=pMp1D+`Qzg59;6c`lKwu09z`pF7ouNqRof$6DS_lzVKfIDZvXG zcy|MMc8^DZm#x*pxqgZJDuKV*^Q>G(?rEH-LYxmLESa^nQpwp(&D;- zlO<8{6{^*$#r#wfVOZ0CV$D*H+c6jsml!j6zPdbfZ!_?FJ9qPWA5>>rbd3?VdC^m zV5MBoEWt_{IxD5gruwn`q7bhuNDY9<0g>=HvJ66=>KKb_^(Fta$wnI3#0|Qy?=Y)uVvq^s2Vf?b zRTMm<2-tG4XH8aki^R}kD%Zeb6~i^eTut!U1uojYQAaS18P#*uJVwt>ZxEw2T33tb zIno&Tb`3ynLPGHDWsY=~GJm@+_v0jillm6~7QNwiKnFir<4~b-XeLAT#@K%}pvwhL z9!#?`|F!=yl4xjHhv5I0zp)W7BOFBu#C0d#ZcnxC+4_fe^?2$kdfcE#+a8%^x8g~m zd#c-Gml3iN6cF~0{sWu?GxOf}e&6T&`Q4XBvJprKJnlN&zBhm6mzJ^-KmpE|*Rm1X z3K7WqUp)>!-cMkcyR#8M4KL#4-RJB_PYS64U&faRv=J~iWwfjL)#j|tBlzF0=GM)v zn_q42YOZZA=D!9vFKzbidrleBr4zQ+)d8SAprpSKUn^&^w-A?Zv=MI%LaQFi7hH_^ z0(RW%m+7<-BO0YGzB8FmbnoIu2<)0MJdk`&?t6QfxdQgvmnO9lBLN1NO0^MT0p6Fa zwGn?Dl)gMPf&@d~Tvqb!SeMDS5he+SHT8mB#&3V^m-x34BLUf$9JmoY4Ldu-g?(DWkKcEueZQAwxDhS^ zVwaS-5hDqjj5)VwTDR|0m%z9Y76ezU;cJ)LxDjgsS(iq+5hMYUmutBZL;-e}u(=Ty z0cn@Vxe+-58N?Xn8fF(Q*UVr8$*mlV4Zf*Ml& zlj=vRf4{V#dI|scgQZ50k(nNfzKd6?m$17L77DhFzeY=xvC>bsm(aTrKLH(=5WEpc z0ehEOyb(JAZkLt35jz31m(jct6cyWTt{~G!>#rIX0`n(Y(0W+5% zy%8P_eX={XVT+m_Pp|j9yO&G75mkTPx$o)a@}{I{yBt3~3f-PLA**%ZHfOvnR0t&2i-_C&~~?(41lSsYo% zbyhBC9K)?CR=HJSZC!3H@4q)^`KIM-m!G-!vE{)B+Y&!r9&E;cpND^W7t?<*)yvCG zkPV8Lha_uwrlfVzi@-m$sZOZdyk&L4H{0w`@KX3qTY~2Q-`j?4UbpiC=Fq5evA4 zq*O-fZ54UT;nw!j%@W2SkOqHGP;S5zlne?RARLz>!<}FtF#ZHBlF&YeMe+VO9%c`L;<9ZZ-W{+8Ym^h{xEA19;I>s>Or#anp`8+F|f>B39o+c-P{# z7?*MT6Q;GfByVvs2tT!ex-Fk)lE5=gXn)4V6+Yz#QUcEE#L^!1mF@ws@CvNYv-rdu z#A{%=v{uHdE{kvuAnkwGA!+wbBO4iIy?zqN*D0{I>IN6Od}Z2tSJ=1#JfK6Bhj(&Mn!5ls_f7sRAcx+uyRoRQXE=r(!}b zEKwnHNH-KQqkLdWa40|=>bEJhkl-fsT5;5F(^uqq36&EF%r;3+V%#cs84pz4KHn-_ zA{3xeY}oT*9RwW-;Q`W%qIB;Yh)Q%;gR6)vU@WYUGq?p33o73$Dm<~v3F(_pJ3}{w zpMDXS{lF1D1sMcw`1O}R!4V||Wmxea)|Y9)5i|j9m!829WdW|21i}$Z0b`d?!VxV2 zk(YkL5kd%8pOlBFtMCVx$ifjEXqT|aJLZo>V!?8W)^rRS)X@$v{D99r5MBQ?%m@F4 z9l&`2PYi!~>S{3$E4QiT|EZckw{10}@ITLsMpJ>d91XwX3x4#lwB&oyXAr&WgNK!s za?jU4%)mJXnnFg&Og->OWz&sd|8AGN z!x1St>kO9L2G3wAG{85?s(Wnk6#Qn0%3=Ai02oN3@>%qN3bCL6cbv7H5H8OvsP20% zKB7P^lxp2oP+O=VyDbq3RlnJH0k<#@z5U{*1 zozK;=#iqqpT)({DNDdK3?DbH$KQvzGYxU(GWvrXqzU6zQ8ePW--0p|onleu)%Cp6iklp{AtFBe zC!Dt3s8D)&+xc@z<0@p~YWA?bT;k z)mb=oaw1sOsV1smTwwH0rBs}bPv;B7r)RC zFm`{5MK80)ORV8C|GColXFKVO+wgKd{aD4C`stH+k?#}m^jrcV?=ncbSSgor>!rCT z92zP=&T$qQVAJK(6p{YFF#J9^iR&^e>%MF3Y z25E`5ikNDmuz;vfm;~4HcS@>kkb;v7?%ta|_tF#H+Fqt_&NH3qv4Pbfg$OTTAP|4k zlgeLTxl!8d>;vxL^G~;;!<3iMfi@CSszepV0Ia|Z-a1Lkdsz31I71du1<+tz*v3lZ zMx!l&-|Nx8xd=xeU6eL@A2uayjPh=8g0mrW-ZHeTpgzghV}{56#0&xc_*qs6)cra4$1V(o-z?K_*wE9GQ}c94)< zM4UP8As2eBnk)$!Z@^qB&f!LWnm`gO0(iTid1KvAx7dF$mjuZXD-i|p)qN|Xd~Wxq zi+(*Q!+i{wK*Z5e z2^H!ZV#3O{KQhN7fH%rqh>xPTJ?;uakNo4MZeI%g0w!S&%wJp-57$`NiFj@6K^hx&Y0JJi6J7E#!= zsg4v0f5(qjzuuQ&%MnF?^)iyHZ@3~-AE;PEG`sc~223xYeGWuOxUQ{G*KwPOJO9Jp z(??ZZrun<~B5(nbn+lgKyFW0!UJ%?e7RlHW0~Lf(Hyp#%zBC#WLk%pu148E1u+4Nf zan5w6shz2FcAK@?wvW@yb_VZIqr~iDVLR>q{-C;;hrJa|SWW_e`##U}e*J#;VjuIz z?w+%FkbB?n_j%vzD08R``>ojkcW(=wN5aW7v1H=f6f}yUx4Qjw9h^cL=LLCh2q`>dxQ~S6W_)Wb5G$we zG+s}5c9=VG|_EGs<+O20%`}91d)Liz1G9^b zf1b!oE_Gc%K@$4*gBgbI-rO131g|7n+Md0G{JYFYDiZGGa>Yr)jVC%{tvFdvc zQBc2s(k$p`n&Fi%j3+FL5H+BZGZlmu`NzachsRh;)sxrJ4>^(+yxcME(NXL7z>5ban+X5NrhY z0&m@_oY-~8e1mt#pc_i6-yD6jzD9AO~W9ajp~+3XtjZww^HZ~IxDNXSu4JD zBR5Z5F6zYhqMb{5(+Xe{*Jnu2i{znE*yKFDEO-$CUu}ioR!~Y*j&_8Byg%)LE7M?q zSG(DMIG1~a6{|+5gk{H`qcn6zm|=LM3bNCD_dM+P_;!5{92RP&IE5~QMh0${b%Mo0 z=@fnw)e*K-_y6q4pDqh72<`96&)eT6+|09&S|#>QjaBdOqH*I2j%j-nK6=GoNQDnP zG-n1ORy!+_<1c4_`FmC-sPyd0sVcesUMUTby4Uv{(qGcCihB;( zQ9hhYJt&E!h_w(FBAyg?XbBQ)TjVU8gA#tnVVkvd^8wpq34N5!GZNz^KyP3f#5Vst z`P6;Q-IBl9wZse<{uv^XckI-FXN_(A*36mB1-sLlJZanI8NXV_yVBK6V5TX5$Zkfy z>*MiU=gCPKZtTwhP{08ots#(ROxcD|2Ka_GGZEym?qZmzr+3RXfhmAvVXbirdReAA6#T^Tvzul%;BJE?}K{ z2NeloKX9huj#8r@kJD6A=<@Q!LaE25DOH3uo zX65yGWaI-cXIIE6^#5zSnz&p5+P7O2cKxb@?}ykysOYJ-zkkXp@Qr}oxTo$0SpC6V zXDcLwD48%cf#!sYbocB^j7sv|y8XkGRkWMR)48jKc{~uI8a6fZh-&FoC zD%6I>W|M}q33D&^+Ci}&_^CR+oV;$%O}t9%4uKdHHg#DH6lx~a33J}UzifYnII-f| zRE)9{d#e@8a?`QKY91edQSnd{w5jnmW$0gQ0zzpg8TohYZE377uKwrMpRRsjwTP6X z#SfqEdrJ!R{OP_^@=JvE&x^xWjQai^vYPAl0C>}Vma04his|;4du4qgUfPJ_a(2s3 z_eE7jALO$~fLD4q@|TIKF2iM3^4h=KEQb7{s+=ja={vf`L^fuBBzLu4*H`JKPWeDW z3(6nbJS|a9^>Q{l;D}|)HgjxDExzl}$$=Id(N8RnnRGJd$SA09Q^ix06f+f&JrMpM z*BrH4PFXE)V>_p;ZEy2-=F+!?eCR{;E?#m9fb=%RrbC{Z%*D_Ea-=uaO9diE;LWgg zS^C>4dR*k}5$+{_Hv3an{oBfC10TRKjGmhA`}{!_Zd3O*Du=SXLDNZR6=olbkIxC} z=fOg1fH;q^uXP;fv|kr*6JM&~4CEQ`M1F=Q*MggHnA@7!qxPWRdR7w8JgQz3mk*p| zCmFfAv+vMpzz*r$xbSqBznZ1kwD-z1?LF4+Z1t7e1|6(_Y?Y|#?7b>Dh~cvr2|`ST zx}jiSJbu|?5jCp~ECPA0;g56|2P9?W!LeQwd`!-<=ZdlWhO@S`4jUWbbuFXxoE8?J zd{(IT^KH=pYy?ixEf8)DNDjt%r|1ibL2abJqHahJ{DpHy=+c}qcF#{a)Gk#JiB+G$ z_x9hV^3YR775fB+Bh`QQb68&u0Adwg3<@bey zp2$^e&Acf!`q+gh`rCs? zB3#bF8z38fw*aw^zICQ!5?fkaX=uo`Bo!k_@gPiprD;$Cwkq3Y>{A>I=lhgUVnAi! zlyRw=2#N0Hod(?grS`fdX}pT)D{2EhdM`<%S3%RLIm=Dw4I{P5?`j_*xZ!!XbqN>6=mt`A-<*CNe$v zz|$XU4~=x?=Z$m~QYNEBsBZrqR(N>WU{u=a;cM9w-<)NC z;CeIK;!hI~cGuS$oTsV~oacik99neYCr-wq-i)}rFV;ClF9y>U zX`OCn!a#ubE{wayHL5yUH(-`;_76os&Z#@d;2p3kX1!JNF(U&$ekm~D%rcy+{fd~% z!iWxU_}{X}$q;cTz)6)BcOnYWh6G)Ih*wD_we4~nAVHL2Oh%OWewNsJ4CV5G9QfGf z5@#tAgz%(jF~}SnnW^*lSjNwm6yKNRi(*whuBANUI!1@Z@FOASFFWGGfN+8uf|uv`z3=M7I>6Ie_sQ4vmmf%m(5 z3po*!RxG@Vf13aM(#&Si^f+gs!(?6@OjvfW>GDJe)!rQyO_}ikahzW6q6Gb5U1<}9 ze3@9CU5##kudNEW;k?LU9&Ui}oj-(O`9|1ML*$ZtD>?ul$LY`Lz~C7CZQ+(dFlTUV z=kUclXy)RScHF`NFiOTguW>wo;QJgj`d-??FH-Q+sUe5t29Z7&H)^KfER5JPvoZ6M z#F?3xIWKW$A!ZiFWxBq7$Xt@Bidd-R_=R%HsJM2TQZf54-Asx-L=xJSasisYB$XJ^ zRhOF8vTd;MobiV7 zAVcV7ZR7HNJ7`XiOGX8a^OH6O4SI3o`^3`_+S_f51t=eVIrhMrToYySdXX&kI-u}E zU7HUQvTemgG*7pGmaSEKus2XhB+>v+pbwpLBfE=Wmfr1~u}WgothsqH`zOM{}IX z{E6rQAPAv>Kj>QD9c!rW77qrYBAv52w7#2m9tQkiXN?ytR31@(3S!mO-CmL~gJRt> zLgOA!Xbna@&0y3NzkqW#yKdtuzB8@epIgo6#Mu|B$l@>W=F?m4-U6`=sZ{N|RkMaU zVQhx;8ptNOIPG~J8EWIgo zL$~ZMVCrB4%^f~};DfNTq3Uk`#jJ)s6(XlRs>0HppPXVzdT~h*BC%@LCtg^w>N=P~ zATPAGTg6VC#emJ5z=1=@b^7|jQ#sM>L#}P2VhxO~|KiO+_}a|jJ2q)vrT#E%B$`k(O~Gi?T|J%#E~=D)bi@O87T9A)^@W_#Tl^Qco*AmJi720 zn&+Aswx_s3Tx`dkT=>;4fFRuH$KsGbp0CUVcv@MC>#?^ndayvzY!myelJj?4CF9-Z z-Q9V+yBQ+1BUC*^x6P5_iC4F(*uXM;bX4G4Sn)gcim~dwxG84qiS$2qD*T>oYeEc< z&$srL{P3ZF7LgYfCmDOtka}c}HWazx-r0Y1g4Dnz8kgk?^^tENMo9fx=+^1irGx~eQQe{_@IMoAx>P2OHX-YaFmFR>uD+cIN`l|F< zRlJwbWV<{B;n27>o?x?4hvF(tkALKSJ$i2R*8g+#95~pUf<*U3Ucb!>zmGI}6lioW z(daDMm1>ZE%b+ddRVsVy01>}m<7BvI>qVtpCR>{K&?->Hio~Qo0m4S^W8)Vh_iYLR zr1}kix|`t3l$HGb7F`F2yN@8RJA7D|-cFje@zU=EN@@A%6uC0V$;Ny~Zg}H=|Bq5? z1{@r#e*OqB0CPZ$zqp@2f`}5}Z9{rgl9y5(FAN!wZsbN$0|NA!7zw_({z3&RhqU^z zr0wP_%llu+fqg4V*DBUMmAJHmmB@5)c5SWKtYLjj)t8(4f4ZLfa>w^YacEN%3)V}*v?2LleA8$P z?s7CF`dgf-3E5r>z&3iY7Wak?Y_6zHN zK&C2+(v@pbDFMH;F4EZr!Z2u#N)(;bwc@oq&A@IHvK=IPqF3EFpihA-#OALy8M}ts zf6e@Bd)O?7Y&+aB)(kn)$&O_r^Bcmo5~E2a2wEMBWN zz87Ko5+E^n01CN9rf7r8ORtB48yOv&f9A|q4^ECxGqdc-SQX&$rvXWN!^77G^#Q5J zGZ7}gIFb-~MOg-X3mrX@pLg_#Q=EeyW^xFh1BUZ*ti~6DGlP4`A5|gN7RJhRafR_4 ztAvYEJJ(>7@U3K%7}f231OT{A3c~sPBuqoVdT|OHAn1Q+`|ii<;-HS<2RPKPe|B7r zUkCp(pb*%QhGJi&3-?@|hSQi`;1Qo#-%`6k$&w^A#7&$48V=?e6i{*+9;2JVpnxqB z+cg=%MQZ2rw?bxW!b|&-BB6D5p=)D}hRVwm?r22iFe-K}sKYBS5?h;$ZU&T*!?z}b z+dA{n{A8_JRPT6ibZq~JZQENvY^xe&x8G3D@v)P)yc+DZ_W)pHACLcp7u3WBclTYxEuh3 za7W9Q{P0698}h^7e`~1&_DxkmLBZ(pw3PMxcJI0Uu0Z4N!1kubo!bL@ngY$Y-_q2y zCs13r!Awar=$mnSb8}O(Q5G=LjN%=Qx4IBOSnXG0fjU zJ&eindPn%Ii!}B!4c~f(z|A?3N#glXd+3YKvhhy4e<*0YlcmBKg-z~1Kn>vEU8*e< z)URm2M=H>K#KsXU0DVi)Q& zxEG|_I%c;C1zGMv#xPs37zusId+p}-lRZ_^V;NcAa#`ZZSF3=1CZ0VLX~zy$nG**k z$ILeYe~veo*1*iA)Z`{o)(i0527rWQXJyHO;6nNLC^hLoAYCf_`aiIjgA5FSvya2h zzsOZ*DCy>9+AtkDa%>d2yQC+Q|EP@oeWmNs4jS7-j))bXDHa)ISZ(~vrEvuYSBFRw`1th`kU=Lm?jy%22#TFu$ zAYtp^d9*ejZ{eoK`1L2_Ey^aE?c66pTjlBTWdSe4dT3hl2)99*qYa*&KXwS+Ey9bm zfB#N>X4eW|q*{mxu3ArXlOwy59L=N9fF;G2?@xK6?z-NnGoouzH6c?*JZ z;#civ?SlYe_DbQxgtD}CGJiE632rv)#iU>v8&0fYw1W@Es!x)9r2J+rkBvkU3at5jHZv|B z2%)^1HU89U#CZHln^FVDFh8i}_uFXXNBVVC$)>+D*^rj#U?BqOelJRkg_K9=e?*^P z{gC>JycVf*5?9y~E1X&&hWQ1e|1Z}92?<>f`{f$~zB)%B4qXU_!D?1s1S+rf0aP^#6W^EqAg8=&WvVvUDts`*(0FfkAQ-mQRg^A z+C&M&U2xdlvt!K;GX#Zf={g=~XEELEz3)?>?oI-VyX!e4rmO0{``)|nz58Chy1!@L zN;{RQZ-@C$-JzLwpA+y@zpaNHInZHAj)`WEa@Qp8#82KiH9RWmMw?O-e`PQahxcSD zt%FS)Q?@hSUb6!B=te>_iPQZsX6QNTHI{ZnbTS4e4e8nDHRrEo`-Uf3E~4GxR{fo9 z(0H^4Wiza~uqBvgngPf-4+Z0#=z`tlgf&@=#o6+B3NFv)vpvxLX!0fT9qm{MG78$Z z$Q8UzIUetEq{7{D%J6grf6)xfdXp@j{8%I!hRGeLw4wA&N~A3zod6V&2Ria)b4@$C zfvs4=Hh*TTl91#XS6eq3qI)C@2h%;W*InemY8b@-t43HkQw*EPv;2&lNzw@ZHr5hH z^2CWS%Na1_fMT}ibI#MZFU)X&T0TYr3yTRndIb)rww&-&2vAN6e}tu>s3Mts>f>1h znwKr7+Qt)KiI8aJiHGz=Iv=nBI4NVa`skZr5q%TbajIgA$W&dBpG5hI&SWQsR*h5Y znYPs2foy?0%QUIbM>=o=71c^S-gnR`EoN^+&*xIGTpF#o;!+e>yg-6xpo^~OBcWcL zY(Sb$kgVZIkS{I z;^aKm1SoZ61nHSUy58RL!Cm^J%aXNwC)I@QCYrEm@T`Z)e>BK*HMk~2Bs&nyXEel^ zsB0K^@1)rx2!(g=)QZ%KizpG(rEO~mmbTf5JL#>4RtaQZIhX>JoEN~>2bvN=lfjR- zCe<+gHnk54S;VrLsWN$Iv7M)l>^!6DHNh=+9uj}0o1^ops7xK9`sX2@DbjOXt1 z5;-SER47~;f2?e_OJpwzy=a~r^IENDfhgW?#oHYMm526UV$8#I0K0c;mNebd7U=>? zP4&?+$pA&2U95K6g!Em9PuJHF0eAwGjfb5ug;$7PKquP&W7Ki0bN22u95I}=cc*qP zS9f|jaRH{EoOBbDa;STFIoXqQR}b1gX^Ron>&Vw#f9wV`X=ROJ&Tg8|I4K6t8Ma|- zh~K3=lu|d;w`9R0Z8FU>h?nQx!JCTE;#DyK@%n>_Fprz|a~%gN&`wRg>$D2JSP%aaTu8 zMjit+)xaFM($0&_8@+eT)w0j4&z`(CPdswR@kkt`eVKDX}e@eK>?-p_f-g4NPwJ5HB0k(|6#8bQO zmB$DyIE1pWf0H~G+R&Hjx;GPLjr~EJbCjIU5isFCNDxODV85p@Sq_6-FX;E<4fk1w zd+48DWl4XkaA&$8M?IfLjLl@x1bu}<;p5UPzi=3PP*nW*ux+5ylR!!!<^P!B0HBVI)?nrD?U%{ErxkjNy3< zy}%cITL{s_P#8Y*FI{4NqutnrG^EWge^~ab3r=+{f&S8(54*F4HZo`$5s(~fBqCME z#}3vAuyZI`wd9ck>&=modNVb0Z>C1>&D5cLQ%r)v*CcJz>bWrlp2m>qMQ95xAtlzC|}-K<9Ci%V?K`lH`A0ic*N~_m^T2BwwNhn&MNvI(ibiZv_(vT zd>TYT$S^F431M{mUu;f1lhCE{AvOiWq{K|mUyLz#4F~O-0`_H+L*RLdES_j@NOZn4 zHDWj6Q|-7hZPOUC`@O89Ov7Rjf6PKV@0kaSl0IM53s46!rh3H2r^b(}kuBe}7WFvl;dOf75g(aSZ{>`<^SFb9RHf^}SYLiqkspdWjZdR?Vdtg&Tc6N50QNN!pWM>OEWnYe-|1X;P zo*axqkuV!(ph;J)&H~7nfBr0QPYL?`xcaSl4!9<#@5T&VF(xgx+@vRMpGA_Gl;Bn- zqME{8FL9TF3)DC+$Gk}zVSWL)1o0FT8SQuh!M$@l(fei4rw993Ydsm`&hog zG&ZFnN+yygifU7#f1aE$i;UAH$VN=+Uh?hCE=sU zMA-Pv99p|*SrG{?S;d#M0^dLwYAsN!VWFN+AXUZHNb5oH-B2r>a~hf z2t`96jnKM_!=j9lDsv1DTOc{ywuLfJh;7TRk^yX6T1!G~TUM0FtxdXZODoQt+_@T;m~C4~>Vw!{5o}us zZ(W9M3uVslVB6B#WUy^%FZMrPYIe>%Ban~b(CpWK1{1&xki+wzQV z+fs7XogRVpIY}qU%q7H{(n-hUiawrx0{o8nl7*y!Z zgQ?J)e+N^cH-9@7I@_>csS3UMhpj?aO9xS*|2RyAe(e>j&|z?MynH+dQK9QdS51Zf zgZ>W%l&PTt%8{s&u@i@?p(K>(N;8s5DGd_J9A$P=RFrfr%IzWxuSAn)*|RG}yFrS{ zK%rtxIoaT}h2m!{kqR*vgbOh%h7@Az<>>+8e@(K-diZeCaEt=)a4F{Hlx6A-gFUIC ze=c0wc><+A02$|ysUL*=6pa)-!ALolpEV(3R7gr&&| zR2~T|w&l(4+*Mqw&a|J7`2+w6s25W!_Ue~77q#ozFkQ1WF%}q$ zervqocf0AFUbbFyq-;jD4tkVb!lum*cJfz-V<48FE zwEEDw|56){pG3e`hZHEiNi7QWo(xo{2P&@%cqGWCW!NhH?wqw7N;vMEjTb~48>qZC z;28&K*E{k8rP+X41sR}N#1wynxE7t%YM+ahSUwuCf5xRgk8ZWBGG1IlZ+|YW3$-C8erG_&m0?a2!4Z z{Q{sl8JgT$n2BKM7i_wGtWqscJ1@41N5oF?V=-Ek#9VP2j=TL>OV-(zf5LMuyw1_I z&IDd5q+e(${Err_bTm{7&!4swp2z0|W32#JTMEBGIL>v#zNH=E>8nPBFUfi?s8X~53YZp&A>F}~bb z9}b{Z8$kGfM{YC%&jkRef9A)X`=weC_l+Fw^Gxl2VeM2$?o>x1x$E8se_immew`fe z^SFfejvea&&t)kb?n};(E{yT{cdXk1e^5+(d$+JIH_n$=80YKRyN+Ot4piF$l~Iq{ zw+ijB;kCLS%ZG)gK4jT}Jd^+U=e6!(xrsh^a&D3@dRj`*y~6)Ip?sKs$=V&c!+mn1 z&(rQ0Hd&kkjVOzbl@r)=OhQ92F5jADX@JrL9$UZ{CD~Fgh{>d^2Ix^a);C#-gzTSfLn+)mUf+1-=ymF_n!TP-Np$dBKSVga&vFpEA z((Crs^xBKl77s_ZZ1ASX0pKhuiN8e8LraY}-J(Ob3cX3*PPweM*OKf@w?e`v)96k` ztw{F4WAhAJf8?vIs&kv*3OhTvt*g%Uwq!ikLT}${$vDhz&$ncJ%5KNCW{hp6xAR*w z%GmAp){I7W`*v$aJG)g|Gy2%A{9ML$&%tfNrre)Am+{1Nuw^72EeLkI&%Is#Xf_fF zHy3Y1vbLj3CLwRpLb^FYqsz9@TY_;?Vp1ZiSG;mze>HA6ORa_{x*OAC`KPhZLMm06 zh=!1T8vspIDB_kkCD^N{u(08z8*d}~Ix$TL!zQ-t(o!u+GsGFAIbx*>>>P^D)0Sb( z>JqoPuBXzNM*rkd1967)pIK~MBas-}mScts^^BOa%^UO@@gtgV&UBi9b0&rzXw5$k z2|^#Hf7q&)8KEBW&zH!2aRpPdZf)*W=eU}qh0d%g&AnMS64R$g8%LVq(_fr6*Rwfq+?1=maF+jVO6#;fy#m0u$P`jO=F`OxYe^bz0=xh!ykgj9Ca8Owrmj``1r=jsE{@wjWhztlfSlWBqpd5$^vl-u<2Y|05{=dwZVZYW}CL#LXXJF_ zf3q40w`lmkixTi_Z0HZcc3|`J^;N5@rHV-_?}MLO{CV&`sj_PQs_Nw%R!PK+U^BB2 zc%Y`P>VazMhT1rxc3o9X4Tct|ZP>8Bs(Kv(u3TO{zE0X)O^Xy*(U@W|L=c=S1gGG9 zNN|>4jxj>*cJ}XabI^g>$JxIp%s~ehe>Ty7qFQ!e;pIV z>A_lj>V~J|f|wV45T8!KQ;#6t$PZ0^-p~wFJ1p1^@n?Q@CUilEQt#*6unwitkHlYp zJL@+JGFv+kB0b%T@3^B}7Gio?bx``dcQL>E_m#TNAm{+Xh|J>#D)x?<1xX~m(Q@r$m&Gk%fDGak6%d-aT8borj~FBM;1&-m~lCsB(` zey;2s2yK#R{;jzA!(gtoi+icUg!0e%xwP+zlhM#_=eL(@Zs%KB_z`3=5`IMIN8{uO z4L?GcosjS&WU>treq>pbe;$5hSrZLEGFl5ia!Zpj{K%anw&kf2mGUD(yG}66h@} zk|iS7utYp`RN0)Q)Fo4}viTdOu3sKSW^jPa;9$MtNm6{tQmo<$D869#@8&8Va=KR@ zO>q1bO>iU=q5v%+=!EglRAwhAH5X~Y6KO4CDZ~8{!A($R$03RRhzdvmP(MGc4rx5->;8N`AD|mLcF%WPl{RcvXk}3Li%R`Vit8}! z^52vc*XyvJ9l$DIRq9_;Trb1pEAZC_ue*bSJQj^2-css(e~Rk}YEJhl_50znN2%Yd zB>^m7rTG=e8u%5?1Nqs{LOdJBpCj~_~1HXfs4Gxpmd&Cy?WwA`oh|y)a{Mfsw`sz zVDmACSD=*cQD*Pu#txWDYIzkBUn8}<_QCCbyk!G`f7PQI+c-S?&a+SP?RSim*CRbP zjUG$?C4Qc;IEE$~iG?Jh!v?mPxq$78aG3pfLBrduIQHTcxQiiolUT(#62LK0z%jr* zFGJ!haBWK=NbuD5pKy1Hk(5rmC?ZLHVp`-5#E;L-Z!2~0C>!5ZYJQsaAe|MGH0DW6o_zsXRFE)^_xZ2MvuAeu;G(OUOVjfO_HpO=kceL#nFhMMK$1s?v zc-~fg?t`1Y^8A#gOX@0vqX0M%ccCx8O3}{zn8V)$RYo-qk=wRqgvT z!+CD&CX#;hoPGYh%n()^d6L4!8E{+e-cnZDMJJb%;bs<(t2JrudlA%R_}KE zcy-sU{3yY$*IqPt%4wqaw8y>J>)iEbx!|puby}AQ6A^g(zxO_0!we|teXqMXEI6F~ z{k{Kt|9|_pg|ZW9xKBbwf@-i;$T|Ui1;Y_9t;Xa`$AzpG*=#-;Mx`Pq;|joFx4kS> zf4;K)2n?LGP0ty%X=S}ER2&z|S}MuQlFC4S(XfR-Q5!wR#)S@oloND&)cx^Lh9>DZ zgtFhF*PBAwTj+HR{l0^KUlqz;>ms?JlTvw(AB{Ze{eFD?k<^7*xcMPdn(J_HRE>No zM<7#2r7?nzg24tRDgUn7%Txl7(1M5jf0m)zPy?DA-pl}bNLGR$5z3Bg2}Y*MI3oZ? zNnLM>P%{;9MgS{<^C+Cbp<{K2^W0i-CIB4z{tB%e)xleXOseBSofQT}o!$Mw_)uq= zyT^q(>l+(&_Fto-&dNie&Z_>7>1G1j#AujdjTnyQZF7LU4W&qMNI^wzTV#e@RY~Hat;ayfFU6qPDKONsSj?fr}MoItX64qEW?# zcWKyG=2Q`%l{pFVSyf|PWn&=m*_#c#YZT%$Wc|@q5ucSgCE_y_t%~>zrw|jL-CRgh z5+-dnOcCfSfQpwf0r zTIgVipe`SB6|(e%;28%|e_;g+%G7`Wxak+|jm9FzL1Fc@xGDZn2k zZuzyfqu`eRI0Co4>Z)eC zuG5i|#gY@4`dp?e{*GqZ;@Meq0ckJ<7z-iwB4bZ&&KBw~o;Z7XoBfXFq=n56qol*m zi`|)&)a)>;zmuCCtol2p*}kwj+b!lKHQSS$v+XI(3!XX9_Ds^EW`{1x+(H!D3+WmQ zgCG_(V@yXFft23%e-o>DZmpCc*po9=xjMED6@J*UP4X3SMZWBdno*metwYD?W#Ktd z4v1r@5HIH3*^I=Cv4Rv*`x&9We~3%uV9G?pLO)E15P}H@k>#s@rdCMlXV2lS^^dsP zM7<@2ZBSC4PGcc(3KU6{CK5K4W$fmbR;!-9$luxQ&|CJ@f7+n7mNd6djirbIA?2cL zWhM9n{r?~0CH?=Y#^p~hKXgW1c?$IZ|JLY>Yis1sfd2p920#BOk~duUs`dYYdiL^$ zt3m`Q+V_#z0L=mUph|wK(htfW@Mj5D@aM7E0{}{JpdmnIejBLFuPq{ALjOOu{{PXf zk5$xg_;2ObfAWf&$;^V%nhgscttna0R8f`w*2>ZfPBE7MyS?VoN~V@NT3@o^k;f{7 zIpZp})^HoPRsl7^mhIeQl^aWHN;gt(Ri%|%N;Z_L{7L2*fS`#BE;3NuUDfRcD%1hP zoNlB)0ic4@d+1L9sNi=_^7GaNs316~Aiv?eAs8m{e~}bDk*AT2yzQwj{za@SzGEdC z&3bxZBAbydaS#xVS8pD<l_;t+6u~8N&cRBb%&&pMA=WGV0b14@d6>9_*z{agg$A zI6C^5Ps#rD*ql@kO#OCj4t4B$7&_;Qc2Sz zyWX*!Bs-my8k-HD2I|rE#y>(*iPeiMH7@a|PPYpjV`3t*CC9@ho32Jxnb1#XXpzH(K65zf}NQ}t(zQ1yEYNDMv1S~}=WjU_*$XzrJ+rUCT08llY%4dWJrHTO#M ze^NEA5t@6_%K|j_i$v3e`bW5$v)T;zsojisu-NaLBxu=w9*81RfShxgBn?R+9fL zWXB<49a<6@n1qt5+Sr^gm$onMT{<}je}{I#Op?tmA)g%i6jCoC>1!a2ofpiQXQPO5 zBK6F$dr+J1PRtYP2hnJY#%8=d#Vm7}e|rQK+bs?by`yj+kqU~XpL!__y3m}fV;NGu z#^rbzrZ?x(5b4lh;ahZFQa6>UMwTxp4TNY<1#fu0^>)<9=z)IH7^W$=$mHP?e}gd4 zz$pa}iTLo{pGq{tuuq~xO+w6h#3`R;jC;hXR8OkWg60Eh&q-<&(^d5+Wf>1O*r-d# z=v0}Mr?hyL6EvQi2s5OSAzwiMN1U?pcuS2sj8I4ji3eyL7Yww{aEhhQtN5UY>ttd` zReFUMJZ`n1VQey7UI$r|uS3osfBz0;{)ju@$^Ma=ItUfr{j!>&t3a8EU(MiHS}F1- zJ4TW$WjP`1vKFmg344REMZ|$x@I_*o%BcGk77Fx72pUCo8*={j;ep8ifk+)P>$qNr z;e;Y}l7-YTCskwFbEDIp=&!ie1xTG~`MBT+QU}>(fE`K32&B$s++xQ@f9hl?NF8Y; zCm~)Q<}cGqq1$6v1xF_9zvkIKZK6AnbSsBuFKw3k21c2qDRHG_jHfoLgGq~*7`G&Y znHp!33PjJwXhOvivyJjS;USr!Rb;dHBKl98sAvPDH#c(hmaoh{AYGZw@aNP6R*);R z8NRO&%MO}JGPF`oGhsrMe<62YQ9DXj?@3DAxkLy4%4$->9Nq{w%LkZT^Z>P{)mtnU zZ-)0K_@$x96^KURXd(6TX(4s6i9g*G_em2fCT(#OqA=VuXtiR&L(KfdbH8$vX?(nN zOk91l@55@3V$P>cU^qi4Jp zOu0Ey{Ri&S(GG6e~9 zFtwv`C^A3zVj?m>P!PuAAkIrFPz4SQD-MW&h(#}hHASSsh0rT>pJ}xCd!VoOpiBqR z;=2?rKJ;(RD%v_t+jrEKWB5CQn9XG0f3UjOUAT+N;<%p?lz62nH$aCPBV-x06;;W8p=hIET(X^1qasdHRK&-PaqbbQhyxA$+^0jM zB9JxzbTCxJy}?isXbe3mqasdfP!TQ}6|ra)O-TSM;-r%%CI~8m*rAjtsECtJ3(A=+ zHc?c>f6-M~a2P!*AX-L?HbJ{9a{25e+OCeX%A=MmUYbzXH<`NIHP*phckAr z`~P}4124})AI`u-f$Ob@=;4glq5Q{tIAiYy<#2{$Ll7)8j_hxLI79qf9L}(XIGkbM zkXf>{q<#HOCDTiuFMhlDRrLE$>rEwTCHsoa#j}eS6kCh8te;)X6l)J>I5xvA|FU{dYi*DjXQp~1Be}$cYyerxa4|s!Ov)b4PO_rI%#^aC>{7QGNxuUi{hG1#i@j5P zAC^kxolcTfyt>0WCJR}fWfH*!#N%|j^{Kejikrk-r7oo#kq{wPxf0bSl?q1*e+H~2 zM5bnYm@0)}CIR&=N??lXKz-jC;;#Kb|6o2 zqnvpa-uKjKc;8c_;eAhC0p7QIeWshW9=7X64zGjZO@#=7@6}`DOI`j=i#c?tNy(To4;6Bg9FxF#1op(RnfRT-FKR~XAVaNfON#}$M@vaVrLCeR0r|q$ zQ_Lp5V(g1(B!l&Wjpq>ad>JCn)x< z*10eurqJ&!w~#xGdO7+kf8J|qgApy4exx#(16E8+OA=%FKh|IhNX)X>>$ksQ5YyB8 z4=2SN9Im89hOdo@TgW7#;-4QAr(@g$9A}*iZS7HEn%LYO zew552v8b?@WEDbZk#Tu(PNvodbqJIX?~0IKE9Nn*5Y#98Q7`f^0J*!jGljes0W+>S zDZdk7ELoin9Taf`e}Ak7=E*J(-b62ctJI z$Y%SKa#;M(f7J(~8VjOOe{bbYyOl6>zy46(j6M77T1ms63&eesG#5n2G4e&x_&u4v z!^u00sz=@OCDU$QRI41eU$>NLzcsdl&rl-w!&XnfANJ6eBB>bYs)k)tYF+!}^j4zu zw(x7!>5WvvJo```KSz_s7@DRV=-Wu%(UmQ*OrZJ)f4}En!b=?48QouBxT{v+r|cK9kSH|GE%;ph zOucuLHKP0LS{I}97QmLZsXKzR$SxfFPjG(6l=rx9t;g4xJfS`kB~plc=TLq3$y%Wx zMp!r9dmk4e6wDOX&FHP~jI(L((VZhV>|J$=B_>pNpdx&N8f z%bWHu;@q|u4)xo^_qTE$||pKj7NR2Bj; zY2D4dsoc@pLiyoiD%-OcqX2SXX2T7CZ36B z;+c3Ro{8u0`Ju$JtTg$C9Lmaw;W4mR41J;nhK!%WoV#53YCgrD}>y|c}iJm^1vym`>?0j8MS zW&yd1iUB9o{WBdinH|qre~O;7Jn=7e|zUoMJ&l#Uga}$a@B_!hxN(3YUC7^HzPKPU+?W=zULU|cN`3;2f5)Fl>s_v+D zY9w;a^*!+%*JDBHg9K_bprV#(V_h?Dl#~BTErblo{|zMnC7gW!fB6n~Ux(YzMf6$gTGKfb2)i^l_8@c(2v}y11gPt_^r%Jfjl@h34CNDE10Sc^-=OwY5jwNZkdw zk!S>&&}|>w^1+l348SGy*H|DGLhYf+JO~wkxP9)8eaN(@)fzUPji5wBZ9T-T%sbS2 z+H3X3dgpj=TEg{Re>Wl^Xq^V!I{WGmLLL7K>iBu6<3qHLTTc%e(@b~&wDfl7Pe%6J zc!*{RcQFJpQYdC2Z=Kb2_y8^)htB)N>Au4UiyX|a3VXiMc^v=C-qQxPb!B%Yo&X6f zo4Bz>oVA}I> zT{n}oN!P&}C$Tq~rghvTyR_a;Hr?&?L)|*Fc&Fo`o$a*SnJhLv=id81BxFds?eq^% zAl;91?>*<-bI-l+zWdIppMChjIx^dePr-Z0uh*YlL!3P%%pN5_CRP2%ZTqP?gNa;U znfJ+T_vdG?f6g||oxM?Z=d68di0;PUvQMyCV@QgIq+zER@kMtg!5phW+6Y39a$$8jDN*qheFXe(^YfqkEujRn;pjB<6=m#3@$z#frqH zip1uMgt(ac~q?ps((a`E{GB>+=&7Qp-=8n#0m)XcbdC<8hZA2oA))id(2*U zv)SwIf9ZlAZRqMSdtIJpXx!{>^>lW*n$3+}u7OK;BIXob(P$_PG;bD> zw_-Vl+@aW5Y$t{yXf}zaA+JJVn&=-5u(U)hA}aL^_yS@ODHlVDkpbXcMM6yvNXM1v zU`z}T@&s|j7afuUqA!L}kS#_f$cOG^6+w|Be^Q)=Sv}#wI3xlb%NdN3(P%%-C&7Lw zOXA@$R2mwCXh6b*P#A)PQAr~GXvQf>Ac|I`_>bra1Y<*$5CiJMeljpT#6!n@!@&SV zoeb9qwH-yRQ%M0`W-vs<;sBHxLbSxeaFlFj1gO}PL0Zx&>daUnBSKIy1Nn-GQ;rQwzLbE@f>;Or(lMNH{1X~0mB6idB8p^)TefZHHo0(sjKk9F83YWtG@U|16L>2$}@yGSiyP&5d4jJUAkm9e#|%aICZt zMQ`}=10f3;2q3QTLmMQ17WMOJpdSjyB=Tq>5erFOA=%Z8qBQ6W4kw}#at=hb;soi! zLi=bDG8pJbK~-2Lf=Ez8#hB!ee{(Ly_$WLepzhZ=$p(9K#e@TMojQWCc zm?1c2QE33j5cf9+q|hNXNPWx^;_|w>I*7~D>GJdtS9e#_F5+@~db;4d6O#AicTJTH2lJ8-H3dT3H}C!o{S;AzFMtDzb3@HBL|dOADXJ3X|9_NF%4WQ(VXw&LpW zVngknonEMUm#e*W`l2=L;QJCUkXmb^-R$IB&(z%Vxoc!$V?ZCtF_i zK$ghzL@9*xMIbW~CSRV)Bq0{31J06XGMNl{!rp`KZ9A$}Pm7^yyp(9VO@1pNfAg@s zW4HV}9r7P_$e{-LK}r6sQ+9gg+k^5S`(%$_zUh%KdgY=$fAYbA>~P7XO-}8R?TzvQ zzx;Zi{K_u*t;4d@Ek`NjXZ><KncN`nl~-O?r&5AuRN;!e1IUj0BEb+zZD}&wptMH4@Y7_~GF{!4D6A7e73F0Y5za27Y*W3O_u25kEZqJ^Zk+ z@oekqKW#e=-9i7B)BN52Y4D0SOyaCer*LM#P!8&2ggP(gR1b^hwx(O2|ZkRCQPX)`{ zG+`73B5b1|!q+E2x`|ypf;f&3P9CIAO;{KtUz?a z2u%p1tc9mpOom$Wh>&E(&r)1W&(U(G6pOutF+q5lRrWd*0LUqZ_1mo6yDau+?B_#9 z%3racPg#M#V}Ettm=NH8O85muQ21Ad#IG3SZH8yklq^c#le8t*C(DwKWL2^@`Dn5! zxjVThxj)&TJdzwq#*BbAG+Mk!#K5PH^vjAncU}$pOl#BiQM;6rR@CyyJhkrd;a8hw3{Iy&euzgSf+6D zS0YdXv2=@(F(RV8Gt(lVnUd>`YfS?Am*9E$ynh}1VNf}RTFzd7K?ZHtrCHN0D=|%Z z^9HK1L~@jY6}8O-%>wqEoT*2rhlXa`3No-S`+lkqkNsQ7BSTw{H5}_c=06rYHhJvw zv41*d8rnQ$B^$q=Do01)PrL9q?am>qAv;BhQ%~u-_}}#K5(Hl?$Jg?eoDaI`NnH+$ zFMpI<4HO2W?7(&3o!oH74;c&|ZDnSuG&ozo3Py5))$CzlI}|Vq<4Hd;uL17|xRPDe zr+JBjZubH7fo`;s>qaAV^mcoJ+R+7*&iu(%XTjtZ(Sq{wGw5tv{&m54?eidh<7sXx zM~N`KZi!S*@&@UNj=men8b&ioquOQ_Ur-^U2bYbTm>S|%t)P2p~W04mnS2W zC#<#5QDOfctK@#3E3jM^yZK)%#?Ee2FYJopG$89abacOYi$kcIxAAwH%MP8ZVy`tA ziYGT-O3}m18}RV*5Um3V06HMVPM#JyO_MuC)AhZ?CfH4rcsL*amUokvujOm`T7SNl zujOm`TE3RAikbl}PD%n7Hsf#B|^~QCWkwP@RVMVJ3?>K}iVpF%d z=jIWYbnRSmy7u-YT7a=z6+7by{B>rb%CJGP;NH>v;q0N^XVwsd+S*k#4^ph42d ztu&#y&!OglbJS`mp2QYc*?)_ay!5#6e)SKu1{g7{3C847d>&N<>}wGsOEKs%I;vDh zPc4F@UW;vSF^Su#VP|gpy}Z__Au|4-&bL#ozr0dy%{}a@xVam9F&ne2A88Q!AfEu1 zPrW()_svQoHyO8TH0v3KV-HQBqduR^9(p-disyFmNgOvzs63Cu0)Hg}DV;rZDTS@& z>xyB%VhDPZzCttB2+-=2Jl;A2=<4Rt+@w+_ax!ta>`)q@80C{vy(b|BEd^V&)~`~c z@Zx5@LmNs4n`Hr0p+zfprlncwOamyWMF#{vWbAL@YLs{46k0JC>fW;%>x{2X?`_d? z#&4c->|o-_T#C%FjDHL#9qfr9cE^lrl?HQYwIw>ysV}b;Y%4QmN%%6dq+IB%ns!35w@o&Gi-5 z3pfT3GephGL<1awP-!n}`RKyI3LVu79d(6vRG@u9C((&sU@jPt4ajj*RX%{yahR{l z!;>{{<9`!;3P>5kh00My$yR+eaFP2!2kF$x6kBy80;u=@h%)ktpYQ~! zDRykpB$uxhtc5uz?fXHBZA(rY9XeHBms6stD$i&4(c0iuCz6ah`S#RW?H;g8iBQ&~ zbFQ0(j-5(kW(VmZ7wIIeMeVGevwvMjM~g+)8^sqqS@VL1^tEKKvInKP=H2*mO1&GKUcaB- zZ8A;EJcO;fI9;%x4sM#N(kDKp2ca)CWUhCSY4koWoy?76Bq4+APtgJLV^)2pEAbafvaQb!G2M-;{x__xH1`r)fmF{!`*qt)rGoH5V8a{ho)7812wHTw`{2IW@z_x zy2S)ty{R)%Zhe};(0>buzL*GJIFv)arhoSkZhGDokg~U)vR6%7l)a1If#VHc$pWf# zp!I?IknUz*=gMcHaHVT+`_i>{&ZTSTNP2wk&Wazu^qBoV!raQia$zotyNI>7%4;7h zuRVnjLiKOi*DC;+@i=7I?$M=v#?tKe1t|{@E&MfIc%v>{gnwSD`sUVZ2Q^_|CXN!@ol-HR_`d_-g8w?EpR9=%;n{pf9gv zAR1u}uO??M5r54~ui;hy0Vp--+O9}nRh{AVkr`YdaTft}li)th(QHwcb7PGrjxqwnwvH&biU3Tu5vSs`?M>n6@QO4NOB|H)4p+-Ed{r;rQkV! zOH3b27>(L3EFjHF>G!43*8WfX(Z%QVU-UE2RCIHi-WJpv%WGHJR_LRIii!T7nQAPw8KxIi3>*V!|Ie>4&dE1-;F}dAgxWx-g7qqEw)uqPE8RpB@b)j9!@o<=SWTw zcgb6-bbql*9s2oX$TaRah+fUd(=SkG!{46gtI$mh5SOeEs5Nq@urpcb0&YZX(^O6= z;dIAK(f?Vi-!D{EMz`pkYyq7Iyr7h{4l5rI9$v5^_y+vW;QM6UJp}ObZ~K^Y2%c@2 z$#fvG5Q0@;H;}uOrp0n(-%Swde#rCw#UzpYEq}U?4lhcewjG5plYM6(D@PU3mjI)5!wlG06OhB_$7NU5d z(Uj=a@sTEV%J@iuaC|QW!%j$3yv6Wf$DtE}r~dER6;Q>}U)!*NnFn5grdDe^qJ0%9UdWm9P_WmXm5M9(jF^c=N_Xk!0&PG)#LFS@D~8AjDe}`)g>4V?SfTTKWfk) zFFq}|%ZKGo`7=3FR^)&@6My^N^HE#rH*M9uZM@7PT4o+E6ym>at3KO?g%&}f@crku z>eKk0XDt=N^|tEoFq~Sc07=#z8%n-Fu3kr6eTr886wop$52@3Ejf=EPniq*SVF})E z1k=C_0$Wbn-yXO>B`}{r21rNS1NR$&o!uevQXo4Ta7D2L9YzPjzkhv!ObqNzK%ick z)B6X#D(8lp84b@k@z3jL_yaTi)#UBOe)xYJ{%_o%=0?Loq2t)T4FDGutFxl{m6_Gq z(b&EX``|xhliP7Z*bvBxR#fLiyWZSDAc_)=QlcSar)QVYp)aj;gq{y%V3Nd2PolmM zxFQI(M7~dBF*Er={C}%vL=RlA+i>8+GO;P#`@DbNf$Lwc2Lvi&8#mBm^z7V}X$R6w zz1X)t*h-kRO@0==6gGwyUbg6mlJ3FsA znN#U-i_MUGA}l4M8H!Z!t(;HtYK9h7UD2tE3;qTR)U0R)Hh-q-jz;~`)L6y(5RBWZ z9Nyw`1)z~f(V+OIP|r@pR>>fk=~cO*rI;FeXw{eseFd2yia#Razo)jPYqUge=0uT@ z-ppB+?OBDv@^mdYAZo#cz%M68j-uof?r!N+7k@t!7xSZDwEy~ICgoK0<@r(W z)dHTsWkvPkRcyf7!Ryw>KueqN`8N7`q|Ns}dp+Ie`!jnT-|idNPG28x_bq0xFSPsi zu-AWU_jRyWz1??)y{fPICcFl(d0PTMd(HRL*MMat4J`;BPc-y``f&}po9_kn`Yc52 z1$Fyeihtg+ddi$oyXqau9A$)igh#;Lz3N6{W9zVdQErUwFpv#Jt9kcIev6*0QNSIC z6yVhhi1*h;b4fGKB7B`(Yz6}pdwg(}5oIW1#tQU~UNk5esXdd_whVT5i%zC>M>aS3 zQZbY0J~?VZ&T?TrvfhPuB!hzd1&17ZJFykA#(&PBZ1t=w2plun^wqd@m0sP5 zG19u#*3hurH%P`yFj-LgKqRi$1|yk5XX&&^y!3wjEW=Or7cFtOqZ7u$M0)9;8!!C> zpq+aTOpS!ZKtYsNq?}#jP6ol0 z2pQ8(DpG*>S>SEr2;o(pt}U_dr<2Q$bwABhW!_e*>ZuW}X@K1pED8?VGAO(o87TrY zGtg@vh`3-3d{35IuwT%^{Yj-v!HZbqT3vspKyz@BENV`LUvAPW`sM$I>8dJxTz_dQ zbCgubEhgqwtQ0z&ppbl9A#zX_@D^XcL+(=_h=d#^f7eusy)`3(u4X93Xcc|2M>bp1 z4d4GeeE;w8{lCNa{|?{(`~U3zU+T@P+o&rNL!LFCoW)RmadXsyJx!wiV_NJd7})gkwig?B$UY>N6-leMrNuU4`t zj9iE-zn8E4atD(q*@+IV-U+O@fO<4;oXYv#xVUMLzWm&az@KgW2~ofq%zp_I zT~g60JceOS&`J|rFfh+h2M6T_b*5lR9q!FqRTAzMmStvkx!IWx$OzA8QymvprUx}_ z7pmvsE_jqdh_8 zorJ^0v=*L8Y=zdnXtplPFOnudG@Ua#Ag>9+dABDqJMB;rj@_vp({+P z1E~%LJ+EnHhco~pE%rEyb{6R{F8≷H;$y3T@1F0l|&55q|d*eTuACk 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

    Bv7@uaEBS6*D=k?j)h?-+uShee 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 a(0g^DcV3|Pnn3Thf!^x^z1IhN=l_44wnRw) delta 138035 zcmeEtWmuHk_com~LxVI(Nq2*!bV@e}NOwvNjevrJ(h{P8ARq$L-O?f;-7Vcn{0GHz zoH_nJyx-rst_|GxTI=3x?`Q4xJTs$#fq@8tknsTx4Yde68__p>J{}8A3Z624&d$BG z18oDo0)7wW3O?Q$ji`)L06q>RNd$uX`9gq$^9i44`#tjG&CnR)u+Rz7;NT!CY`;eV z95rGa@@OK?HxPAvBM1QeZMgpZ{#Ot*S@<`y=$ecd#|8j@Pk8;i_$S+l1ugL57Yj32 z$zK&dUbAts0IWaLDuuI5e6B`L_n-O7{;E;_i^Tx|{>&{gXb=fM-X4bvnkDW>B8xA> zxrO^H%90H|4X z@Sp<|VelvnCc=mI*MY%_FnAOO6A{3~!{9_1JPLz}2w~!3a3TyIg~3EbF!4mZ*njSF z141JLhy>cM1A`M`@F)x>B87>E!HF<<6b2KK!NkMhL^9}Q<|R_kqB6vhL$8vE97Y8O zC&J)Sa$cyzii3lf1}ENzUX)NG{0@*Ijs|8$G%zYKIFSZ=3c(Ztb0H|va_`ac_+88_6e zBVLCVdXhvKJPLz}=%7f(8bXu&?V6! z-I|KzO%UW!1o8@mj6a>EuFdrE;w%8rpS1K(It~k(z4upE=C7>mjW8>;gxpV>WK#n5 zIvY4RNLGK&EB{w5g&QqwXf4IR(@KA*mH$qw{GC?4q1mBJNQa#l`_Ft$&`qx$Y2&ET zK~zvni63Q$t_C6wXsiQ+6JhWu3?|})iRXl_F3Lns417p+aYAQ23KK@e1>HtjxkD zYZ_W33rJ25xwB&aMd$in{@(zqS=9editzKs{~ry+ztc#6r;-0oqx_vl{X32RlZM=b zpjtu|=Jo1f+3LTtHGgGm|H{_=m978D#)}IKr20-0C`Y`)32QUY(ja2_RHvj)D z{pXziKb@s7zb+8W2^;z=`}MEv@L$=Hzp|r0+5eoSZ@=mPo~5y0CfKty{ümr|S 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

    =~WgyZpLNyQ~m=N~5Mk-rHav3 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 diff --git a/doc/solarisporting.pdf b/doc/solarisporting.pdf new file mode 100644 index 0000000000000000000000000000000000000000..32cdcce357d395daf54feb576044f27a36d3593f GIT binary patch literal 357746 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,%N?&H182`Q8wZW15VY4r8unMp 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≀yjy(^7C-K1m<3LcdULKvz;%e{Yo9cBy!g;J4 zulIa#WA`-_U5I{ETK%_S+gS*LEtM><)|F4Wwz$L&CPUxeT~wS-GgL@UgbDNODMY;# zq7;aDviHDt)6O2u@@TlA-O@KG&|?R?;=Ou(Z*sqJReKeGwdGX7JKNfqe%NQ{f|nFA zAEAL5EaW(c7v|4V6|1xXS$7#{R6;;pEc00=fj8`Jl*>K!RMy%&BjH;{vbxHT$r_BP zi^?Vm7~L^fMdU*&B8-y?=kW{rl5Kjy$whe5id97zaLS2@n~53+7GltO-B7v%C<|U| zd5v5+%wj1LrTy<#=0Xk-ulTiygl|4F za;D#lq6KY3uKO)|uHj24gD}2PJ*jz9=={*0L9LWQt&20rmSzYu2EDoa3lDp}*jeu8 z%PLzJnY!GpqFeK714Io^9-<;m+kkv0w@N+x&%flN>S&R-EuHH^Umb z_l@>C-_u(Wmyh1*?7;VPiBvgeS4>u7FEOt3(cay$&rgFbbvcTxF2<|Yk$#9TTa{$0 zBbDk*Fuu^aCDEc@jIr88dJCQKp~Dvh6lspAB(&o}5Wbs|I2Ym4A#uz+q(cG{KA(uM zTiOg~K)N@L&0(P?Ha}y}Xu@qmmN#E0YWd!XsNbRGy85{FvdQgw<@~6pPm{4~rjQ|7 zgSxH?qc_1>dq}YMw6PY>&M!tHi=Yu9-=!?*u%!Q`SiHoSQCppWwYeD1ZyR<}hc1Z7 zjGSLb7#IZ{QDeb^FnQVbu2hoXXHOe?UtCR{mk7-Bf??$#%;+K%uP?1n_Q1mal`;G8|?8%3f zOe|U&W}8<%mOK_bI);$HE<{iZp48mJF{cGsc0SsQ>@&Z6Ezl`La32d}N32c+TJt%T zWUuf5I%QmR*NxF(S2hmH2=olB7Cdwuf2|Glj(W`7M|cdu-GtnY9rcth=0OVH!{5~n-3YKPQ9NUlO;B8PBjAJ`*kbJvp zg0GC8To` zd+v~#UvmQK*&YuEIm&mCy`<Tc;C8!o>sHh(lr^*IdVkAS(&_34Fi1NTV z!H(Bs8E+6YBktjSw`9P#G&c34-6Mka9pMApc1ntSorjL~hTlzDeASCIWc*X1yaVnE zVK(iQ%zGpU5;uo^i?F6a-l)m5sRwUz8dW_}E*-wqdAqnusk^Uz=;mz_e;LcPP{#lI*E0Q4}2>JD;!4X_AgX4R3 zqor!eTk0?In*ORYCROIFTnGhO*bS_!`;O#0)v$HXl(|D1Z83W=EMMvC z)0p6fqExUlTg0p8OuO)ct{hh{eil2IX(DA_57k(@E~JosJ{|vG08c=$zv?4zocng$ z%WcbFiF(^K$|7}v%j|I%(qj$BTHfhzI@;EDw83R@mYH2;MJ|^~-1D$Y{MM%@&fi+| z-qx)b*Ob3_`<14^;#^yTW5IY-+eHx?K7-kgN23es-VJPInOhZYp0Y3b^y|udyjL3sylx{ck%-JVU=eV+d6j|=7U97i5g;|UiVm3Lg^kxB?rt9qjgF|Bb4Py#;**6g0z5!B8Ju&-HTq zx#Qev?gBT-O>uwXzTl)Bw+#A+LlY*FjE>fsu9oSUE^_Z;)2)$B^?z?+XQs(L3!p-< zg@v39P0wUxuC@XL9Z_UblVs|XWMzNhc44Ssv=cI8*G_CwGYlosK&bhEmLVBn&u~bC z07-_xLPawYjW&}Cb}J9kW+54*$+MB!pupQAH9oVZeSAm!yA6?UmDPG?`^vHB20z^S z_WS4mwbZH8o=EK<9$%~}o_lF8(~tXzu;t=i6gV zhGU20+jguT-#zf}gU=6DzuOr-wq@Io*8k<^uU{)GGKghWC)YNv8>n;-q`AwZdm^LH z_WamGTILmiFM7xsIa(nYq>2NJx9~CoigE&qDcN1w?_{6JL~??MR~cFXfypLdC`je< z?Ctb{oKqn>Hp-vQZDaG;QJF#QzIFzQtctOzJ11S65Ey??gY*e-zCMh^rLkiz@Y1Hh+MRdRJzt z@>w$*RE1Tws=87`X{6dv9ceYRM%EkFM+S5WW1?=L@jJT1#-X~SjU&2~#y9Fl8sE{4 z8sDyax9OhkUZ8MAQ(c9~)9j1#BE7?2l&@t)1=1X3=RG2+LsSqd8#Kc=-c`Yp>uVd7 zAT*M5U+pWnZy(|BheCzTuI8!cUp0%GhuX;j2wM_l)9Lg~8nAz6CLR16RFU>^8D-=X zH4`&96tV5A(~yzy0se_fYUc^OLIJ@;M$gRV1H}G6rmH=+sq2iN@7$MfuI=l$eVy38 zjvskAeuUV8q$W8Dk2MJ_6x33nUQAXISUXau6peP3lZq{)0+LN-bc2zw7St9dUII*_ zsT*TkQU3sGlcs8$h&Fd(>$0&f9b*u)bDhx5mcM&+bak)4$M10-0Z#jBw=6!#0e@p% z)r~=4EX6NvSlLg=dhW4?u8_N`I#E|wnQeQl zx#ty6H0t$t?__POR`!SJo0de6uM8~d4M%;UR*%_HX>@efcpK`w8Y3+$c1LQLdhD^p zXw#CK#CnG*R;4Vp=xqk2Qg++@@ycj@UYqU^I>2sWe}*J9LELd1XH=akvT>wxDj$~y z(V)a<>10zs_XHA{8dO2A5;c}J2-6ipI=T{>CoV}6%5uQ{m~K)RtwpBhGGuk2o8~1= z&fQ#=zHVB@2~6n0@h0X}4EP!S(+h~n&1I;IDrQi8wrDD5s4g#1;oN*NvjCxx*`M;8 zo6LT@-;A9lBYe6J=1Tel@Xz(|kCME;WYF^2Svm!8q7RT0Z6Gz9@FwRq2O~PO%1wn4 z0SPQC>n!M!h3F-=Rkr)=!*<4AfO;bNnpjXp$Y@xO&(c_Cdn+x& z2F%Uh$IiprlfV722!rS~OJ1N(?g zWfDx5d4ZW^W*DBCh9BV%*#ZonyH#f4Ijx}S_Vg&X=&mA~jlpdt`#Si9JNTccxcBI@ zQ1`>z%w=vnGNB-vI=@w?7Jxs`adz!uFt`gK6N~6ZVG_n9oDENgXTogQtZf_n&>+gA zF*Hf7rxKb1FD>n2H>m(*a{pR8yGV!B*R6qIAXpv5JO&0ZFNCTpJ(b={hPQ_0kQ8<) zP6hLR*4&SLyt^N4M!It7=_&|nKUC^yu$b)qNU5OVbGuew{?*rySd$h_Xq^tT4VS55 zsmWQE&k?=ne%OPb=m?hl!22vaU(jjEhAs z;=;SpHxV{=SYZcr&=brgb>U2Tt)uGzZScR53_Fm6?jZP-7(te?h=CJzdd#3HxJz&E zA{L`jCgxN^&dcNSq|C~Sa|#EcxLDjsdaa3~HeK$nSp!T9`fTQ%2#o5Kd0 z<0+b>7gm$k1ees}bX6@+x(E%57G$r(Q75E@F5z8)C+Ze&_2cA2~mA&8YX-drrF@JgmZ1+7*Z5^tc4kDY+z1Qu%_i&pD*R{tU9S;Rhfo+6lVq?#MXxgaUPH1_wfyU3;!MK zu;QD7ga4c7VtQesGixcVOd7Ce=QBBapvy&yi)vOr&0v!;J!;}!y=J6zoxY`X| z>3#@0;mvnPPQH}8@{3=O4-EY9V(HE@Q)5))If~(@Xt$QYnk%T{;mmn`i>Mj+w7#W7 zTvf4J>ZxXLh)`Fztd1nJ$s5U;P zy1D}FzffCiLIqsBa5Djk0+YPRa3%*h3NUfeLn85{rvNK1m<)Bb)36=ckcj_Cq;<5y zc)VO;+NTR=^`I}nINgs9NAY-cGK!;g|6-qzr@0sK$E1QJVKVuXBu-LRYr9OW?_04| zY0~KA_UGj<*M3%$EgFiZIn8H9W{28mGqVT22%v0Opt@zU3-huo{jiFVF z#VfSC707^oLuwrckkKjwkr^UGy&miWrBh%;jt5pR84#;Cu)N+tF;hh>g3cxgIvv9b zyk3WV1~5#+QN$w&CWwIpUexitj$`$Db{e`U8g#IYNTMh+Fu|N*FjIiL#0BkT@W_y* zY&0V?GEW2$6yyIPB$qCCC{5u(mwz(N(+0J-#Hp{)PE+$kX>*IYjF8b-gk3yP$+ArO zYKVG`+z{9U<^XjZ&_pl5T)A{&{wjWH=ZR7f<_?y=58H;B*BMaJGkG6w;X%N9Vd5q97JSv@0$3dq9CS<2?WF_1aK4`e}EV- zMC%VsAW7q-wY8Ttt*@t+Ac7#GytqwSQ5k)q;I??=)nX-F>;e zVP2l+`+lD9*JD5)Y!I@HrW~_Hn+vaXHZVtg@o zE3?(b)UN}p#ELAfx?;^Nr<4|{;)gNmTshOS4s*v3tlhtAduP{{B9Gk{TE1e((23s7 zmod#$o*D6-I5gTelJJ$Sp64tS#FC+Xd;U~Dm!%Af3TvU}L!d${DnR$-zz%L_#;(jB z?v^wuX*2}yC0%rv`GAG4&=zPI;;|LjG{oHih7=ev;`U;%*8mplwP7n_6pJxz;4u_Y zR(c^Db#@ex1C$(S3?u{N0Xkqy)fZkNlVEb2!Y0|&Z%Ue2lg}#w zhU(Sd+Xm%I`$zyo&?#|7mowK%X|g2VD{&q;`huegiJ7p<&+s;3r_tSn^7L>+kFAA5 z1C<3hCzG&`fvs4JtP*2>X#{I>vY(U~s7{XUKlNT)e*YW2*PFYq_pZP4CN})1ZTh-# z$>PYewTBPw^{!=FB);lrzd5{N{QQ}tXX=KrYXmQyshxiM;OfRNhk7$9G>1sMj zGxTNZ4$`M9t)$xt6~t4@=gIs$64Auo#HE_rMn#$04hB;eZ;>B>v!68eNa;pmYP z-XoFI)&ct|X;^>3e#!fx?`p#a`|2XCs1?6NHG5lqEs;IA+qW~=9qFU{m;{^9_GI-K`?CAY@6gAzKgc>} zJZ>KJp7WiHjM5|8N!{1_$;?UL13B4?ad^t{4QZeEs|*5*he;{nUex|(n>JJ5uRj4;>oXc%<4ie)Y|&uv1X zthp&&r-iLdIRzyhO4q#K#46ToN#zrt@|jec7PcaDlSX-@XC6NMZvFMsCqHRFdwzc9 zUxq$zU(<<;cgs6BZAwIoOIKIFwz<8>yM#KsKe=ZANAGW|JkfS&<))6l-*v9v{@l=? z+xJ$zv}bd&Yn7|H;0->znpmJGJZ0 zzg>Ix3KcQNJ6Ejx{<>I0(aTPW+JWQsSkQquK#j(^28r^ ztqDRG&O@^8C+C4Z78D;Mwoxp}F21?6-l4xHiZ+5O_=abCNk!&SfmYRQLl% zDN;oaHZC>etNc+dvf zAxa--HJ4s9{5p@)^A1yv!0AV~ym)&<^AP+u684d@5#?>RWHR?lY=!Aux&4vh_& zrVI^36M?0ONW8&)CJgawSJ-U66AX{y z&6m8gI~Wd9!4D}Og#e&s!{U#hvlbS@F}njN3!G+$a=b!H_wHAKTdK#Y{AHPsls0C~ z9{hHTQ>%AKIxFu&oSk)Hy(PniwNAL9)G31#1{&?akjTnr@$QKNQilypm4=-y-fMog zctu72!KSq@RuqYWXMQ#K+4`li=ii9sq}7b&mj~YJ=v=t(SWQ@Jcjgzb{%*%FcGtEo z`%%lu!&9-4qLENc(f9h9#cYsy9mUbJ_zSsp5Dmuu86z+loq{dLS#A5CbElcb0xGzR zzK)Hrx&I7ZTRoUFXuh$Ac2~PsxoaA%w20go@>Uhyf;Ljku7il~L`TrW7#Y&W;_*lv zRn-*7V-%uwv^`K2i%|b3yJ}#YxbFCScjvEs_?{hq-r47`JKMn~c5*gJj3Gw?Apt_d z+N4P!0}3mMRxEY`g?6lAYDt1t!C+$q2Bo5Cbj{W(SrP{ZE2x_m(1uW11#}a1Q}|d( zg*H0z(YSke2DWNv`~7u)-<_@Ze((1|)vzE#R!cfG7tUP|YG4gM8>^;k{h(UoI7wFH z-)G5%BTKf=;%coKa+x$sQ(F?7mG`Z6R7GiNb4z~hj4I}rZZ^tFEXgu0l@)Y-Pd!n8 zyeQ%JM!k}^$xC_d%`F*t1ux*YZ5depMkusYCQZEimSSAW`X(>r^dzXdH;q>oukU14 z)fD=&W4dEfq0bzP;)~EkFVZKKC7nHgarqoobYWd>-GVw&Jv)(15bCgBCz$sI3ySG(2p-e4j3jxBg}!mjn30oN`KYJ>9VtjY z5m942M({o_MVL)SN_2xFkpLbqPsEWCh-H)!)B9t#SLdp+T=Dbe8rfPseh3CE#;dAl z(>zDWUH`{D$Fd)f-pqF2JP$iBK@EJjJJFu?XD@z{UH`ZH@VAdHz=mHP{i=USgYm~h z^A~PB^|P+!HEqaqc5y?hY4*Z!qUVS1ihA;NHg$aq?+)*Qbwlq#@4+v#vHLf&ePE89igRtZKi6isT-&O&hs;Wmeu|1>g>*iCcqP4vu0{1+qo<924mF!vxefF>w4U3H zdZ=FgPP!NM8vD6E*FpLq8ZaE>#_4f%iW%q5)9271oaeYt>C5PI`WCvyJ)rNS2hImv zSVu2r2^TiRE{*_Bj&tbrd92Rju(B2{p<%UVgNZe7;b`PWoWtQYAd{if01b%N>odfJ zWFR;bL2xeTF#tMY4ype2-oFAuT|AAk4yoVFzbh1~Ui;cY<`Vw2HSGDb0{DCQI7yVL(#;hp__wz=6Z z&V_&V!ON8$&rIK5RvFxQ;|~1&CyfDDL?Z~aExMOl@o0bFGL;}uC7$p~SV-{Gf01*5 z7Xa!8PC6V2feNBcinfDxt{?Pq{o(*~C@{zj25vL|2;7VmRDf3kTg3xq1L86M7vg2+ za^P|>k4j{So5S?FSqT{w4sT4Z(%;S2m?(L|c(8M^GRYUj1M7^<=jRLk%oX?ve^s0m zG!zeo!ZJjf)huJ;EW9OXj+T@y;1|W7gRS=Vz&^r&07^8&c79c&GtrYclF%|yrmP8I zePehoXpc~8g5<1Rqu9qE;ID`pcS1@uCDssY$W^LU>Q$Om(aq{Eri<<5y7{iaE5X;* zJJ=oEF0m(ZE^;;UIscHiw`pk?tMhn~i?w)sA`eI^4B{adPkM_h!XjDX4aVa-OL5R@ zwGbsi87RB`&@ZDt5m!pJTzZD9=EdaG;hI{dN+#T2veE(bxTu40G*cm0MYvS{0xgIe zC7kiF9vq>rQzRuf^9l_yKtVSJad5mi8ulXkaAo2*@FMVl)zF5m9cJ&O%-*R`N2;cE z9F&qXZ?j67YQyxGl);ytQm~WG8DjiVr24Tw8*<7V3MoWBFB04-r9AuL0K?;D`Y zP-P$tjD*3ZOS)~4wz+JCtzKBWCKq?o4Oq83{+&)?*uz*UdY}(nSFnJ=P0Z?wRhJHBWq&vRWD}6 z3#0wnOV={lf9_5lH;o*Bc;c(`@Y$1fmLfKa)yRj{Xe(wM3kLQDX?Z@I@7#fYg8qzD zo6%-dFWO%;V4h$noR^T+W-ywZ9H}wGUZ#&Df?BnU#X7BVv4tL=)nj)B_4-1>9<*41 z){$&9!d#e)8YQF3Snrd!6;lps%wv0@27>|LFk)MUeSvH^$4H1@Z6 ze*e2|DxYi<2gA{3B$)gh?P!6F84pf_s|B(}_Le6zxqZ9rF47$-@tfdwV<&+$YEJ-9 zAi!LPvF#IEc#A_uaS#WHIcEmXWH){KTFWh1mi^P+_Aa5^(?!1Ynma7)%%1)@J9+xj z^A7kQ!m9?hiSrEK_nqy#vwfGd{1eCaCH?^tlUxWPtZa?f23pp6fCw#J zsp?Rm(5Ol#ZDsA4Kw7EBre#~$Rsp@XjV#T*#vg> z-kCH|shXVR`|ih)zUO(L=Y8H)D1d@!Ws6y_?cmq10(u$ZLu0Lxdnoio=*Rlcg=zf_ zeKtq03zi*aYJ#3%CLNR1etJK{v`J!%tZ0&$kX2gdIEfKyO2$}nh*XFdF;XE8v}A}Q zi4>9KlQ>zy?;5K+IucL|M_R;-p->CWOw+Vux{sQmFhTLuFhx?kQqvs?DVc^ZY-^ql zLkc|)IrQFQuADoZBXb0=Xl+y3+1JrtYbb@02THdzcdc}x3M0{6fw!>!0D2`XHLGcY zQ^9NIEXdD&K=7ZS`eO0`{sCi#Y*t~$qeh}otg^=ko?+H1+#~C*vWUD{&#*(&sC`E? z>(Dfg^WL+zc9xGV{nz7L_1^y2&Ks9?JrNExw~gqwriN%!rYp9^j;j~d)Q(zgb4ZQV z`o9(pgwwrG)uy!oZ)_&VzSSDjYUds)HZ=efGB6RR^mPK-NYr^CFc#>4JT8!mmL$p&7^(Ou^+ghDJRp8DcS9=poqcJBGn>^0aT;src$>l;F>j~ep(u zLDU(kF08-{SO@eYQ#HJ-z^VeJ0a%o6|3l0?*Nl*VhiSnuel-E3dOo7&ber zC-sqtz&a&hn*4}Wn+Lai6PUQX=CN9C_%5xs?jbqo6*R3g{3N-pzOS9#us&w$VKw;o zFTlUENHa#9wpA${j5fzGFYrMe&KvoS`Q3C`C=1wRyc2{2zmN7K#zn5RoD{@}=D9vkP8c{WNW%UM&FT zbA59r+Wdl*-}0VpI6?8W7K_HC?NQRh{_tV0hhU}NnU%%9U4`zdRxA-2PeWv!r+lSUYc0zwn)#uPLo-8UcnA#*YD%t{ z-I&GMsa2ca7ZP9LuWdIa!jEmYR8lQ0W_|e7HL?(ZAi$Rr0JOYV^A@at>*qxwf3Zw% zeFYuCyFecaUB@dervia==z8@{{oY8h`mFV+v--v@>A({_*r_KVGMq!--dYz-fbSo@ zd2mrZ=!M$m+qCq^ZLgVH$`AzJ4NOSHxKWagSS~1U@{HzbNyM@uNTOF(f|7`2m61e` zta?3QMYIr9m@+*{&(h>PjdZ$5Z=}f$^bCE5Ch1M#vOFoz%A_tA<&82qBcGA63G3Z} zCCFfG%mUXkojQPtg!To9EMSOtf9}u#hXsaqheMeAo6lK$t8dQ#lk~vZRN|P?Gw4Md z8aMdxXrLVUj{BDlGn(BiAYC&w+)USx+hQHmFNAo15F@Pn3?DA~kgq~I4J{aBnU;{k zFgk6}`{|$1zozY{>GSkF9JyIL4?%CXO{?I}$MF2MA*g@iEh(vELz3(6hg zOf=9YrY&IXQ45Xg!-r0Nzf|Z9O6?EiSB#KTb#Rb51KR%q*bHF9_-LFv#o=uPnjm)K zac-BsC--FjwDTlOKT064Z7>A|k;iNC7CeccF%IBE#&Pyl?qufVz~9+(U98uINDe!& zz3Y3#-mWQP8Xe~T+C{q{0^eOeZ*VY_lT?62F4Y1=_rRY#tNf2 z_%rk(K4P4}C!9xDyhFTCoI!uXXUWUNWpo97;=JO%$_oCBKb!5+vm@vb@f`bn*TF2~ zU@6gIdbg~kB{3!|h5qGY!EUpO_6Ez#B}t6RYEQOX>_G&faI6o)V?RMu@SltkJ?qo; zEP>c;zkN_A`m?rf7Gbx`$xswm=1y~%i%>R-^816+LZPQ87K<+L?vBSJ(@`N1a5(Hy zY^Mu9uyMMcwoTem*^cZLywq?TY>~y2EIP^}wu1lrTDn1zTBlYHzKIIfU>95%?5YJQ zk?kNv+dgo=!K5?E{`89EfUUH?lo{f09y_}M;Z*te{!GCzBQUuN*!GE|wrc#K;{ zz@1~()yy&8yqb9hmb&jjzgcfi5|9Rv-yZ-0Tk~5K{a=&w&o;F1Oe{5HMY!l}l zet+*d_Bq7%`TTKbpB>+wzs?D^50eB;!g7oino<^27+-6&A=)hMfP@e}61FK6Xh>F3 zwy90qO&Mb?1Azo3BZQR-Dh;-dPKu_f`Xl4R{p)+L+-N$kZqwQr5LhnlA$Ay?fLP)7Wvdg-!%2 zBb`)61V(u{Pxum(Qeqn4I?KyS*ZmJ?uZ;W5K+(EkmCRM-cCY`*_u62)t#}|lSMFlI zO~XVSs*LXOz@fQPt}2Ue>9Bh+Qg07 zZgCJ^%U%|*iMQdd=x~T6MOyVmI#Vas>5E0iuP4QX&RE4VT@aXRlp<&KXr7Q4YXh}< zW3D;ZhI-I8u{+SE51@W=ul_0;)Q_UW`oY}E+@;sE~ETp2|sBe z{>Ls53EWKh*h1+iWjSv}Ba{{{FN*HG$nkl^ig{slV(he#7j$o)CQej3)&Nll#bnvT z9HWK~;0wC>g^z(*^x&QpU#1r|on%q3bIEe(g}=g0=*_Mo*)+Z^`{07UD(ZjmPs`Tv zZQqSl#p5+{C$nv>7EZ?RU$>a2;{($l4BY=dQP_!F6L*Lce;g%Yz*sWC1OFlbHkxZ+ z#K4C!Byrj^*R#X(3jQ;mz&4Mn@*FjAszME%%1}I`UW#Xw=iPv@%BxmGZY8I$uD=iWlrY|j^Tz84$;5Ya zNTKVTI)U6RH%BcN@8*&TTmTk!7ki3#i?@rrKREyC$fo}N8;8$-*1w6wo%Z4%i&7Eu(nM$g+NoV^HOBmZff?1N9;cdV*ygOtsn&@nk(1c{q>k(LIKz z%+sVz@j^2+tOXl5hwQ*EN5p|0P09bqi<{)G7g`8A8X61Sy%IwVdqR$f5;H2wE3j3J z$D;8lwnltv8p8G}4+H@Ou*%qZiXmQ|uRMEJlP(YmBjjJ)Vd!MysJ6x5swEPP`?uMc$_F zhz~%Y{7U*59E+bxoJ&u{d{%i6yb#-yd@c3{yp9jYPNdJLujn7AC(;fc`5}mTjqqjG zyv#hkHTF!lyo$x45cndJOHol=lMqRePLdrXQb>s!cxF5nQ!#ikhS+f|V_Q|~4I5`$ zX8Wd%Ibb_z!!{%x57msq4-8jM3x`A4<#dv`#PSOD+N*2nW+=_INI9Y4W@1aQa+<3H zqpqWFtd6OxVO76xsCM01GfPam60W6_s9be5Wo5R+%IqX7C(TKrz!6%ubY^Ly2n4yp zRC)kD9~39!LUkYaZ@$Yuwu$qOF*--HVWz+HU`#{V_o5x=kBv zq-E0(B-wKp*sHWeexAF_DUqIhf8X!ti%SA&pKt%-^>^L{!HxTe9xdY|^hZBE z{+-Gu^jjzZ^W*K#zdw7k3}$At&!yxQF3z##_<#M#%F|}Ntn=Wu3XTe!?mZF7dF}F(#$cO@%hlhPGpRNEdZU zmzNcnl~y`eW~$6O=X!2kdR;au0SOffQb}m32CJcJxTm?V&{ym$^|kaaaoHFq%`-we z!Ne+0rS;0FXO!R9aFjf%9n+_^8|sIdpJi`UW-8v*RI7jtp~6}42|&Sa0KiqGZtF0d zrKx;Ghz?1DC|-@4Pl}-_FC6@(4wu*AaAh4C7nY>0jYxnw*ecY#Eung8^b9b>co6_8 z36gb?FgVS9-HqOHgP8lQ`;Ob@uA`Her88odgOh2#ARW(v>$xv;3ovYqr%Oie6L@1o zaZal!``9}rP1uS|ZA6J)|&5Ya`Ir;-iHWU1IvXg2+{Wr^)w#Zx=eH?TL`_J<$8 z+VSPJr;5_Y;ZT%RlyLXO?Gp!=R8sTbJKTBqz3n?&17X@%LZ?sn&1cT^c zbWo%;xm{i(AI0Airtu#LBnqM;v^!3Y)20h1$Y27IP>!YKI(oz4X^=&XfUDiZ!e7^g zoP}9eN7c&|9S``WtZ3Ss%lt7Sa$>)DLd3+YsEYW}8y8}mYr!n{x7nKMVFb zrLL#`o+OsKV1%G@T#|&49M4DskQ2Nl1my&*u`owaMRn4dwApSvG))J9CJvj96@_ z9cy=i4w5YC-+q?-U^mpP>gQ5nUAYOqKN5E0CQfWk*c z%=rNSY#?63^7th5^?xrWUQ6tc-QM;YxLfGT`qtjR^_wsB*z#u!=&EA1Ar$R=ec;H_-@5nq)QdfTMLiR%6{XZLI(L4}t_A$y@vDq4G^X6?pXu|)ANo`=$mY`Yq`68us4ocw^q zPle8eui=-7DNg_s(Bn*Eq%tf3aOgWVN0eBaXSjZ3vN)q(L00{g}_Z$8L z{uw{!|Gn-rd|keCz8N1L^KJAE`}X)SUmgA9rI`GtJh&eQKa@piw)S}q30edXzbElU z8-;t&y2wI9HSyqoS2$=RwSRqC!4CO+)HFZZ9`ux1!&Ao0ip!NLiZ7F}&R*inc9l1u z-agNkpENQ^1Hea+Fzyq;oZ1u=3SrtL0E>>8D&g<1R7&ajlroQ{xX?3gXl6re4)g#+ zt1QPIc&Fl&^IIN%8#~zRl@hq3(7A@@uRr>&%{|r>EirJ4pf-esd*lSvMj4$pLNwtd z9h99W?RK3glO9))FFW8zFhxPpMY!)V_XymL1$faym$X%M57teeq=_Vvr5YL4q4H`t zEo9VGzJ(}^-f^M`}S!bgQ8>Kob-eVRH=pJq;nr-f6I z)6tXK1@Z!Q*Rn{ zj7p4)J(4rGT{3 zn7wCbj7^%fJKy*E`|f1xzV~_F_j!D&R5ER&DD#e(O2ahmP`eXZF9goqWtIhNcLPE{> z3xhV85#}~SGCwNxT_c`)r-Aspqw{k?ZcgBq7VDxpvGmacom>wM3Y>HuZcyOgU+jk; zBE|n^#ls`Txr%l;DXwUCrR4*vB$P-~NSI9V#p8aq)M^e=3Wl)2)1~?Y4O%G6yjZ42 zqlVVG;fR(&|gpPQ+{P*M8ep+oLhQm3{cGkjr;s`op-?)XaK= zL2o<3wdJ!KwqT;O#UEV(RElOJ$L>v&+rK<(*?A-oRaG^mM2;*`#L0q*Y1b7do8 zl*zK0)IWqH+5PB%=a4d#FyikomDe;6#B98;3%7NBRX!)51MMj#u_jANPVsOGUqV>pOE!)Q z*_tIlbxex`^h<@1ZpD_6HOLF0U{p~<(R{Kul-CrFQ?Ta4SWA|8-h_C+l=MkbvPX0zJAR>GwO!eBNeoWf7y3LeLo@C=^C3)qRT5nmYYL1}}uLn5Va zq`aXJ$~EFwQ%3osD z89gGWnw{4biP!V+BbVKJ ztPyx?arR>Z6}@{=}X=Iyu-`5yN2J0=uL-@(stA$vT)IqAMm22Lz4Zn&{zP=r1WS6K8)!xJD zo_JFe*W|&li^;9ZuXVUW^yirk_p@u2j` zIoZPB`;#S7TeT4(04n?7#+@> zK&R=`Ia>?wFL0%5$>I>#TG!fEN-LGM1*3GT#qM-b5>i&fD;%fx_w)o9SKj zamO*|G1|S+|ALs z!+yrX6a`49(N62@g)w2TKqiIf1VT6x<}jzWQmLX*B#NDuajmKmTCTk_b&XtQcr0|+ zjE1#}iZU$2WV4xRybHA<75>QQ(vccgtLmg`G1LW>sH#|ihm(dzZ z>S@Yw=@K# z{Jzrs1l&z{bn}r!A_zL zcbFBi66v$*BFfvd63%65UgSjVQeY_9ilPbZhBsZ-;~gC!$dBR)yblEVz6oUVx5U?x zpFpNSyOM@i>oUp4)x(ra@0DC8k3PQ4m|@nSfqxRM2jCJ-4mQ&u-DtfxZbm0WCqxHC zhmQV>Xj{>!3M2vLpUaw5f|gX*{Q+NNt?q3De((W)ziG>Qo9ZsXV-gD}nCT{lUTW)E zG4`$2_V@q3c|%E!63M8Vy!85^b$uf547fR_sW`qfUBKV%TtB!ezxLQ3Pw@Gt2GWBE zHnpAFsVJR=uI{Y1X|g^1NaA?yy%+j?6kE){Hu!BkS`2np^x-jJ!To#p=g8~UmysWk zv0xnJqWCS_l}D$=dN*1&fIZqs zZ3%4=sa@9n)+(yXSD@M7mS)jktd3qhgf|I~i(`?BP!abF6XJ{f%ic-Pq;MX;MO=)$ zgMWcHS$G!4(F?qZVY=h!kY5B3ESs z$sAa)5wKw6@}&HRd`X@GGd3$P$gI4xTzylJD8Ult*q%GKb;q`C+qP|+cWm3XZQHiZ zo%iBxY{dRlWL0HnMs`Q^M^>G4j%I8wyU$c{lp@!(yxK9MxN2Go#WlXAQ~NH`RM7*( z9ms>Dd=<30Yo)bZU%NOzu0P3A9@boAt|Gl<3`XwQzZ+Hw-~jPf-xNa;fB})TSP^rb zvp5hvgPTf`&lH9Qs7MSct>q;73a&(o5Y6j6>nORx}T9do#L-30? z#5wv^^wk+-1XFR3kPtjiVw2u|x>xs0hjkhuKDE4a5F&zO-kvhrn4%c0Q!)`ZbYmUR z{^0bt5%oj_FSk<{zrR0uu2{2k*Lgmqvw6MlbH=s11K0oa{tnY++qE}!&EavR#qoi9 zNu2CKbM_b{g*OY?o4^k+P;zzU3P9W`4LTr-FL9Q=h&>-BJRy8Q)QFA}hCo0J45-)c z$-Q$+OOsjoz+hcUWA0m+6eQ!owPq~#^_-FR*FlKcIP z_v-HqUp}*krj^mhu$>#}h!$8wun8S32mC2%P6U9tOk$n_bbs#SNa5++rx;Y+bkGq; z1|12{5KDvvI=2!F>>iaP~v(I(CRh9q9s#fGeyLDxp#{e zYEDx{a&pWQ{PP7v0j~b(%i+zZLQrAwPMEx@)s_Yam+MephHx$9K{`3SX znfeMwwjcPY_WW8^v*TWlCqG}N#4qXCr0T?+aZMXq7Q-FiH~o2e@Fv=^yybbry}I=> zp~_^k{ju-VVpK+}6Uxd^F!p`p^*WbBZ;^o@*b?8+3uY1Cc)lBI2^E7#XYi4@$Y}&w z)|2>0nc}RE4s&6R?VxY)$xN0KVMXR7aIZDe0UfL=Hf-Qoo7tTVRvcIu3%xqQm1%|Lrj%h zG7b!eGgwcy1+zWOMzF`!51sCkRAMm5xu4#e+mOxhFC!Xk!!UeU4`R!tYZQx#e~6z> zE@WDEzU*8>W6XEnG+2JV-_6oE*_-}e939c-AE$ub_X0S=i8epCs)4GRhzZ!HP}y?> z(uDz<(|dKZcS8}F)`TU(O)^|0GGT>I!-i;jx^XFbp~N&J8wTQ$QkZw>$-j<~d8rMR zxxmP$XUSu6?$T>#;EnLGBBt5_2#Y~%J=aprH^9B1D~|| zka7~qMj$V@-azMj>2tjSaf5kCjZOXrfW_b^a9VUM(DqDkj6@letq$%W;3$MCS=K6O_%&INyKLf8vtr55DV$ zyD3??P_c4UBdeVkPwZ~Ci8|m|J%eI(Jf5C;X|vpXk03sSvmGzZw^(E))!6X@Xo;fxJrF-$!k@#e=@nKr9Q@B(&%5<;Qob9y(4p=oAVrI z)1D1JH~w5|;ZL^^ZORSQVtCcRpwv^^}cy zgf60&QGF09U^nU8vaRM@K1J=E{a*j>(7s{dm3>PW$;I94K=~uQ!@{_wp>tkH2%iaS zT}6rEe$`jnF^g;e2X_VY^Jxi|r`)}oYft1S^!bftpP*jYYsEW}&SckVjtvPvV+t7@ z2)q>$UmTR8X3jt7GUl&0Z_DQo(T9KS;$N*_Yw2Tyb593Z|GIduefz!zrks4$UDbI_ zb1K?!d$u`qbVql_X-~9e)XnygnpI?VemMSFOSk!nHG4GB?20|0R;O1nWJG}lE?F?r zjgCI>!1zyP_M;4mC|V4=PPAzJ>Wt2~&A8XNi{G3pROKh>bOz;&_g6+t zn*0U!fxnN7&BajLNs=pV zy`W+UhxA6rh|h|OEMd|>y$F*PFv>Hei-nBU0kZ8rfan42m{x6J2dto@w|u(xIm+g{t4gM(Gm}R4S#VT(v-v8X-J}Eq*8lAr?a{ z_8E)aWUob=M>RI$a#Yhx77xpqol`2G*a6j?szIktN$ntUN0X3&RF4s9CQD;4Sux&l zkFuQir$uT1I@g~@KqJV=>>Bw-npPg2a!Xxc3VOzy)!QxRr8c<5@(m0&?83KTx^Fw{ zDhn2}Y*`2R$!DjOVYQcaEB2D7jD)UGfjw^HV zhTbHj$K71SlMGb^`%?^RdX(B!ROU0KXnnXVe~^)butu-!mCi+k#~M=fLMxXke#NJ! ziV%rNT9>P?^D3++h@kCt$nlDBoW`9>e`zQ+8xgiyPC0t+|UCFB&fBnG&h@t>*?eVUD5n2&zkA3IV9dYlFiM> zhP<54igSv*uj@9NWs+b1_yhL&dVrt1k z;>bdwaR%YY1nW5@Ym$8IAsL*BxrEi21`_!VE1YHPc-Ttvc^hYN7{G|WJvt}QbA1-N zT=M6`w!Y&~ZggS!OMSJjP<`}g20h^wd{_%Tb#SZjdQS>Yya5>XlXC^S-5>T7UmsJa z%o9e%?~@@!`R=G4x3l+|ZDS7tq^)dyf^AJH$Xn~h6aN-X8%N>4D2yJ^?)o02Nl$2x8Dv6GHepMAvF&-V1Rc$ouy0cD7Bh!UKO1cII z2^26_Z34-Z=t>=0ND*MMHG3FIxDH4*618Lk!_NH{@mgu1^vk%6L(#$vp`z?DLkeNE zhbk}5ow1IUdl%fDX<##!x2{j0?JV1r9sj{$FMCL9IrvQT2*O9jM3+%3<>gCidGZSx z?dK72E*@J_dbZtgSb%;svV>6;_!W}cdMI%$mryXZ!-B3V6qA=(!--iV9K8o5xavMl zhEFm@_)T-;dFlLGNK@s~ytOi8Kc20Y#>l1T&T#6vR9Mi8p#}!!` zpP_f*7gkBTHHE}Wd`5Uo-Zm}rtTQ;RWnp2+e@Vi>nh~Or zC*r2ovcS(bkVER)R1gw`t1UdwlLLz@cv3SfNft|R=3)c zQ!O?0%Mqc*d^pwx6)Ffhp#@d)9Lupqh<#?~u@2xzvBd6a$qHBw+nr&K4CT2*kgp@< zlFTMI7XpuwTpc#@7RG6;a~X75{BxJfGL`XZx)XoEO@!fKd_2{F&9YGb=RAqZv3MXI zgn=O7#K6cG3CssU5(gVVq~d1>VeGB3IDl*re7gE$##yLbfthG`)uO4}O_vZswrZ-_ ziR)c?D}7=wQ{htdq1*9rm-sgpEWBuPKK2%`yQl~|32@jTH6vh2W0m+Ehh!= z_Q~)kqY$UI4EEjHrQpWee!(l2cq$d6r(a9ICTz#3x^86Pu- zdk8m4_lUAxCTV{wqrHu3;PU%V>UP5^YE#W0>aFm zO$Zp<1{xeAJw45!)2Y=OQ}_oc5{9M z>r4bH4%qcynSU??|BPV{T>4Cxv1Pw#5b(R?UeuzjwhSUX8Lvu8~>{25H5ukT%=L6pG@};rY#Cl?YN0(c+Un+ZDtg@7xC42 zKdRodIA@9?B`)1w2K5X|KVDL|FV7boi1|Vb-H1nkh8ui(9!5m)grCUl#rvPecwK)U zCCU*9Q9y`?C z0(0qfWRiXxkUBWF_PzTWS{WC1EG?itVshntlg0j&ZVe8;ENbx3U(paDh&o8X5^)@# zjERP|!$xDpe33xb<$`OAsLp)urCF!QU>g};P3MM^!Da`QFthSGE^|cDI^jts?M>;p z@ZnxwVW5?!U%XF467%*_DNXbTFxfh^o{@2%DSQK%=IilK@6MotvM!BH=T`+)r z3ZOn{J-$@hD#3_uwLoX=%BgA64duQ3V67yU<#LZh9I@Ewf*a~6S7x_MP9EU;wDo$Ih}zh9!Wwy}dLp<=rHcR%b7ykL;@y63 zd4Q)wwMsahue@>gYQxjVA_$uYgWT<;*}1VLQJyf3)z3#gJk75bhrv$^GnIw;{0^UL zEtuI-_Jy4B+Dtl`19zi?POe7NFm4J1ro+*WZ>ytc*GAS%*Q=h%U|*QuYswyUu216= zC9d0V+;yM21#b%9B&2#it1OHrsC)jKHWH&-wH&$71t$`c&hO+l0 z-t)`(US<`PL5*3i6oY3gGnGKwLX(Nsw7STnn84`Voub0v4}u6Mm~aT&N(EMVYOjDB zYYsLZy$>Bf5Hv^^>k1Q)my*|2ILkeyo0hDXg3F>JDoVG$C*0P+S*^G2eU9v! z@TK-d$9BXnvH`J1BPh9jeNz}jM%Y1yDhxN3uKZtuS`C35>< zU3ross9rM%2_<6S+*({rw7q&mA=Fa`5%p4Y3CV`!xkEuU+x9C;C=(+pHQ2uf!GtFX zYh~Wc^CJ8#3V`^8YaLnJ%}yy4Mi|^3YwJC&lM|R-FYt89>!|z) z^S<_;#QmYMQ61gR2<0&=6cY`5HsfbgBNE~`5%_Jn#Voh^t*)Y%vee@8b z=;Cy@-)MsKXmi_c?B5Ay!1;J$u-M-hg`<5dvwfX+fZtr{EIK&+6y2Yc@U(eW;+?a2 z)@=HF133Rfgx!7T&tIDrEZ8`EdX$Iv5dxjEkaR3**V#H>E5B~MdAd~AZOmz&TD@T( zZ9mS|>elxJu4WC?;7pdH*IDg&BU;i~?K>hTl+<=WR}Wy2KpL<-6`4(KS(nq4-n=?w zcWveo_ygIPLymw9BH~4mPkIa{T&IZ{HyZ$g5S~0OwlL2;M)*Yg+Uhu+k2-IH2%7|x z!Jxm4?3M^X$7;=_uE<#Dk{#VRf`wEqr0tbWO%N30NTY$~R7TaMb(Ys2?A5BNk#eo*GMf=RH6Qcn;~|F*2QM)&uD|y&p0Rk* zpRu=6#QKYMZ~5Xy_CfSeWxx56d&{~%Yx+_UNP`qKLnzMP{* zcjI}Vob0d2yS3H{n9=&9CCl8^(q*1>#B^^mDW_pu?_Uww-u zE`5Rm0U=U=NNKNU^$JSX<~Iebi7VNOSvmusg|{5;r)W8nHS4sl@NdX!8Sdj*MYtqY z`H-@?tn_pzi%i-ZjTH0(U-Sk97DDmDcSqnhfoX{&QvcE(kewH*LzLg6jG@<@f)zv7 zMa|c$)2h{|b0dvKou`g8;ByFce$iSWO$4Yufm1V+!jM9MV5HOmV_3xVqVoxPPl$() z)VSX>KF}rk5psG`+*sULc8p-DavTfQYT6dECQm7evrj} zDHg~?$5EvzVgx7Ibm#}gzFGuC0O~LxN_4U}iXQv=bbSN)`EbShwz{A`+xYZ#C++~X zee(=EgyUv$tFr5dm5_rd{g6Rn$UF168 z4i1_?A9p^Q(Nyx4vC>b#$#8Z2>?^O*pNRQc?SJgJkIm1S8A*J$Iu*fijy9;h+N*++ ztb6Wej$qN7g_4e9n6tUOhzPz0g$tqyGUykRbSWnY@6%gIlNL^AHf8m;*Xhg{62*js zS9R-zxM5YxiQFK%6Lt`FB-8}AwREr{{;aN>E#A_;S8X|io(~9Sdl%sF_Xm2|I3vSZ zyo8Zf^5kHVd2{E;b9YhD97IAoAn9bClj>Mi(Ou;+L&Hjvw%fOovI>XHq6sU0GG^r1 z{6ug_>3V!1vS!S;aTai)$N2+Nk(x}TX4NMF>1}&WtB03YjylvDYrUOLAKo>^4%_2h zspDPb=)%rmJOOh`@$}y(R9X4E#)%`?TI>(E*Kt%AHseer|go z^>v6-R+l-Z7rwfFr=SUMJNC zkt_*#2d_-ZT~Z;a@(t<}VoWMiN>U;F+;(I{;V0aA*uGd9KRP*iDURpWYbc6C z=)nEzy?PfV9OG5!XK24jWHNI;lJFpqE};nO)Y0W(pebmMB3DmDJ5+uP@e+NW2vz9e zYDxm*u!%y|e9??s^}9!?n(fD<#Rh%QKUTO!$qPkS2>w-9CwRt6d*aEhKTx)P5TUk4nzB*cS_o6l8kZnI=VlLS~$?{f1%pg+sp6E4)Dt`cMOwe@C$%;hqTyeLFuuK86&#Gjk^?;W6BGJ!j)*i^aowgAZwMI(FkAu*3ZLL69lLLqcxGxwJ%t6`ST0^qb^J zvRqVq+v}!N?*$3ghuuPSQB2^(<1Mo=_#vX$A{#gvJM-oX^ojI?@f!9idN5;brw*-6@{`0^+?%Q{LF=lkjB6K?4M0WrBGXQ&;hP zjQ3U5@rEQ-{X3DNz$2u;0E(I_K1zzD2?pi3NXpIqLAhj*L`hnH$tNb(4m(GR_#PXY zD*5iCQwJ4W3@%Vo?mLK*e1iNc2>xE|@ZpooH~a_s=AfjNSU>jkmCAH=;k7Q~ zOsahG(`z($>g5HaJOWxk2lp`Wi450V(FXuH+7)%!bf(TtCfT+srD@>~Yo+9^Ae&Pc zn)6VpKqn(~;-!L}LMbYb2bD||56e=u$kVcD6w3pL%D5yju9CXEvo9>4c2hQ-Ljj;+ z9g2pBxe?qQJ>f&Oc@j^S6)!Zu5)#>)HoG*hr?O%kMuIT$)x~k}3DGvgqu5)~;Luln z0zSCR6ziAGCZpzLs+6i4xMF4IjK!h)6xMl>u~IDB;hEtXN>f;sUcom4N7^Q=EB)bB z?YFGs?0#I!Wb;VtGf%f>I?JYsn#htd{Z2xi;S^}wl$t%u;Fr6PV63CRM-L3&rL5EX z!-r5l6EVD0JXFyiI(p9(v}z?m?Di_`McMPFca?KABc`pY2aF*lp&PL}h`RBey-cM@ z!(0Y_mcPtIVd>cuW{Jw}U9pHLsVh>6?3|Ef zkCG)nXS;N94n8aClUn0vmLRDCL4-&o1wjL1;RYI>$S=K&|0%@k+Y2)hno+1@Li zhVo2}01quPJTU9O9_$I)4uIDMfk&OGzj@}oDPRpP|I5>sY)GwEu?!no2lwQCta|Yh zSp~^lx2+y{$aJShUz_9y>!ztL=@D;sqdz_3gNLvQYz;c5Xrev98l3 zG|btg_~vcbjK_quuA-I1fJlQ}%@gZzP}jbWxv9zIsNIls`;}jaJ&UGK$A)`Nf3MycYn&_)v-=xytYad24Bz7)jP&{Pmdj+->=rGM##UEn)3E@G{Dw+?uSG z2~u*q`11U7DDU8MMOcp+gKJs*ko`bZDOiJ&RZ5vkL6?jAuBIc*IOWYqwt2#Wa;$xb zHGP;gNEzocX;d-Dl@iKvZTl+F5lYKLpc<7TP|kc$s_a&1st^>>03t?yd!zGnWgykH z3K#(B4!*ZBl}NT}5N1HD9w|sZgKnC?wme$<=k^Sgz3+IDe)4>wlHyaiWE3nY_0X&! zIPADq@0qo;Mu|VQx<_^PTE?HAj1AAzxQrbaSy|j(mu@$nUC-+}IR~raQOJ00Sp(97 z`-9?Ah8e`xlmUMu{^9z9_~)XO9|9mD1e01QP=^pUHC8JT5D1gwJB~rHgMQo9l_OC8 zsd?MJ7O~IGQy9wmaPhtIelXd->$>qqQ;ANr$iqe1kdrHHs4^OgnxR(cX|fZXOjMjg zWTddF7xB`ce3|_-a8pcYn3EPWFiLiFK?ga;dK_@#h`~sDxDype|9g>VFbV@vxkyTw zAJ#f}Sin102sss{Nno7GqDYF)d@2aRq>6grgsj0>pd5q1Sm94=y_Blx>|RX<9_2&9 z5$^)#{U~(#EBt&KY56()r=5H76se>Hhp;CwpasnR3=@cL{x2H7I`mKM_Ht8E%d#xy zMW=JeH0{;p)M1E04AfIUtA|0|W=$8(Pj^erleML&q8!DBV)1%i-GEFP6s&)j%Q<*k zo1=5(iY1DXyOEDi&l;{?r%rU!`B~G)f%IZ1mP5vBhZ(Gbkyh7uhMbbXVFp2QK7kGA z{A;F3anzoBwD83&$6MIa*+~~_%>te|X>@X^5 z2kCpjHRuS{E!0o_gJwMIp2|QL13br~7%?W?g&2>U<7^mhI;Du0Pu0er6X^g4l@CI+ z(0!c_ag<=cO!k6#!79hBv<3H2DJ`F~Z0{BrQnpmmD*l8FxU+M$Bu9Oz<{Z83IjNKH zN?rTI?`e#0oax&`su6^R@*!(}M%cAF>p`~@odnX{G&!>KBCD2scPxgW5kO$ecTxOU z(NagMT(nd*oE7%f8vw_LY6>Cfln@EAyYynUBj>6DwRdHT`>FaUv2w#GnW*X8?cW@Y z$_d+yFy0$_n8Wfvkra_VOevO@M8ucS>+Yi0MZ*^x8Z9g&Nm6pEU27XjA9bZ{QV!fY zp?u1EhBU(8C{P-1U5E#)9fVHXz81%C*=DWVq%N0P#x~1?++hCzZ}=g)`q{RD!?Bez zs5PdiryLrF)%T!SN0Mg72g!5jmzm-EYT1bEXk<_+2gzEm_6c1j|Au;!DyAq&E2`C` z&zo(}Dqpbk|LOW`YOEf!#F!}t6JTW|EV3KIB=nEzR}%_cn2;2*0C~rVgAX9)Os?Q> z_{_e|zMx0~Q~59?k);#qp^UqniLszo4p;~sT*hZs03=Q;=bEppc`uU#e36T*(O3{~ zV?l+Y^&4d%;TV?e6|Gf;@qn;CeOHZqJh4b5B8k9x65>|HdCmFsK?&%}aoLtaOS#}wexG<#nz@Ld zRnL>yAvc=(^cp-SVO|lUMq`g1Z;A{f>TRRO?&9k^43nSI@)fK{dCk(U9`}K8==6Viukk9e@(3FR zW6>q9IPOz7w(PU=6cEMBV%j&0)dw|w>+6Av_Q4QlOw4elTr&p??Tq6K55HE>b_ z^Rda#g}^>rsXd(&Sjxk`w@;5J=b_{P?&{wX-7|I)?2T0D#9$e2R4xv*WgyC-DtEYU4t zM7OTT5Z+p4hWCMWL|Kse}OYJwy<40GGGW2%9#*+ss<^gy<007J4 zH;fE0)jBg72~hQFy^#aR!3n^!%hO?xhh;xK#iqN%#P<^#JHprMXFWRMqUA|;-`oMH z_v#ApQ4Elc4#xJ1*qevyH=_%N-UVRigspcO3P8pJm^lgPwI>Qt0tXSbybY8%ZR-27&FOJ@t&Cl>KaMl~$h9}iqo*^&S8@_sndxWYhHK|>1V7<|@ zJ8M5>cDFFgE_4JH>nJZ0R}vQzALF;QFd~6JG>kMFYV5VWN zVX9$l_>x%!Ap}VUX#^<+=>zfN{+dD0+*MymAFRFmU(5nE3 z$oA5WgOi$&>PcNNvH=ZE105t`jDmx~9f0J*fJ4WD?)RC6Fp(1Af{C#4#gcmB>)8Pm zN1b8g8&2EZ(xV9)Mw%a2PHNU8-hHy@vJe#*T&# z=5|iD4!_I%j)ulIPWWuU&akwC`gUT*=B8#&zYoIF{>Se>d(;f{EWc9`D}7T({Qp|N zK?DSB-S9Q>shOGC@TnQ;Sn(O?7@6?t=@?k>wg2P%>ms9X{hLujP*g-%gi6WW+SpOX z*j2&STHofcfUT9$ua~%!zLmKlzm2Jt@qaTaIvHE5;L|fQ{x5=vxs@>kJ_9?$@2&zq zEDsO<|10i4YyT^b_SetJ*x|Q2D}5(pA!9>Zqu<0*#x|x-X7~(@%*@RHcSeuT$j(g1 zg#VvN|9e|dV&PiKkV?ucC|f7nFW;g{gZKdtq3~fqeSjz>0Pno}QDxx~8vK0ry$Hs8 zY6Yd@Le^r;gA`T61T02LwpmSZ@>tdZilxg%G{PjP1tJ?L$cBeKHr?9N^RCOD7u}vS z+^#u}&+KSGx%8;~MBcA8`yHKJMu#4HTjtYn6Vo%4ucyO@BYf&`_*e~*P&n#4ig)zzn1%4oCbdM4`HY(F+sd&x67lLgip15QIU@Ti; zAcOb3gtR?&GHr;g!9Qnw4LS?D6VnO#%R0HMeZHzb%b5YgS;i=Lm$}`BA}T&MHGn-n zAeBe$oyxcCl>+<64b9&NOXp9M}p1jiF{~lb__&8HKUT6Ey%j7FVZY2{Q=u*NB|u zfX?F3n%yK-g|uCt&?G`TfLH@flQYgt$EJ3K!#qnA|A}?s+#AKPP-6!lqbWqqJ<1HB zUBP5m@N$S5GRdZ$7bvc`Vb~Cm(us+_SfAaSll&K_53Z(pCJk?N0IM{C&0gF;IdM#6 ziK~EVLy z67U`@x-nzYOCsz`X58|ssZ>>M%alR!R0r`BS&DTa6SeRscF-@kd>Rg>T&|?z?Uf0x zhlLy^qG$H)lVU96Q4R;Kcav5YxGy@lDvak(E*$#g#$2TOxQ1Oh4nV3xl2qoBlHSG$ z)Y5U{^?VXX+-rmz#xiNXi6A0StZRJ7B7x6f-Z>#D{_=yTf||OL@aqfNqtzB$jmuD ze!NS5Ev8z!G0ycp}Jk$$VuYs?CM@>A}d`DJ>L8sYq&~>Sk_ykQdNkX(*-cPg$w_Sx_ zIsNM_RHc|Vul>T3jFEK7;TY~1*`9Y<9)S6h8V%_ttg*W@T;VqQn!_lGzM$l+J-%dW zfsp2fp}9m*IY4?S0iQq7hs!n8;lRgfMC<+nHhsWT?kiw9xbmbZ-YlnVbTI^j6Nk7= zvDDW-Qr<%`VW-SX@}irhj}&{=I#sEg2x4yP7Om3SJH3L6HM;I=fM$8?NECqbhz{-q z#1Lh1%+-ButCON$nlkE28GHtF=X|~Qw3W*3M(wHWjR(sIn$}CRUvcWmMzj}YkaPw0 z3-`ia>LOpmG_7JBNu_6_5+p_!UF#CS7-DGfe*t86ZGfvGlvdG8VFe#?s|k`QbRx*W zO%*mNd#h{P;4;Xra~{T4xdJn}L+w7Q+KaOq-naCUt$s0l8m#wG2qTPkU3Fp>!4vT{ z4+nbgHG97DiQ)%iWRFyds7rWijCLJW=Stwi2qkKr9Ea4;GJWvkUB`%0O?^^doxW}r zavb7Mh#ZGp`((Qo(nBvw;ceew;;BC?!M=cXUfBK zhDhE!J;w3N?leRr*xF3a%*=dL*x~8&e3JTQK+dyFna@f+FSbbcOD(ArFZz#N|Kf5&Oc7iopJs_OcGmGb=gxMARWkW$>KN?_=gu4M z?{LF;LW&-h6ii*#yl`4Os%BsuGKf%)vZ3Ztb%eM9!t!8#DzBKc)`%V zz9LFp#69e36kKbY#r(FRTD+-H=jLMls8`M`OMg*f1y^g44i3Crc5GJ8JnCymU+LfG zz)x%=QtONtu)2uZYjf|fwwM5?Hvy0nB%8#x16GjjxvvSN5>hv~YGf0BVBsJgso?@X zb9B7iY0x9t_5|2KZ2?jx>@HII+w8jJHfp}~(YKJ+J2#V5f34)DLR@V?X2=S$^|CM& zoF~;VU~5U&NQh5bB`N?6ss+jdbVFjcD~9@R$P1X9hJqQ8mFoXn0nJ*!HeMQ?@lAPs z@|LW!%L;UC3Ic}CS{-}+3zK;S`Y|1pJ{C`~sO_+(`cp3HXioWq|zA$=-Uct1y@+NPQ9Yjcp$_HJl*71EG#sb?W01# z55sJd!7B5Z3>9UwMjdVmyrb+HrQKQ$a@M9Q#wq&(D?}swg(!6YFbviW@XKwu-z!*? zs<%xFMm9CE9jqLBKj&iEC})v-2pNUt3~sa{%xX-*t5&x0dzzC4;->g;*GbMjnIvlpRqzX?kPXT5xS^W` zX5=aRTFqxw4L7}#XQ7vH*MU5V)*aoXGl{Sqfa0RR@t=DJc?6fsdGpAW>TPqi!C{xoY!$D4|!7I~95wdge0>N=%-3rqgi1Xi|stH1tK%$R->A>C~QRVCu9G| z8tWo~ht4;3FjrszBO4KS7U^4dtY=6e^*Vl6kQ!y=U(oH?Do;h0#{SIgHA^r7Us`Fhwh_&UP&Gy=|m`q)Dr6F5XG($~o^MsE=-A;z<# z2yh0olPq7>-`WCp+XFVKB5)LvT`7u9tE#~qmgMh4a1diQhk$={Kw_V1W# zN{aBG5G#kbv}wiA94Z{2?db_k2VA2nMNKwW(+AEW9o&XXk=_83Rv6ZUEQ>sP0= z%pFa$fv`7zlgFfB0_TZ;#WOw}C^O%{vALO3W-inI-={t&(;I*bceMX{-sUkguq(me+~ zX!jwx>n?s|j4JPjxuj|gzJP3WN8V(sno|f~m888B9*$TXerF}t$O=ZSk0NyHWUpd< z!R~(qUHtJSyY*BT2YR_5YSHDr?$X`A zDIHO`^)8|1B`C`EQeIST-b$n$H9drOX(@d<`lI6G|Ne^T@Hw$Nprk?Wst|0Y5S;FB z+d!NDg;Or)1BWdL^SnB6ZghCd@%RJ57Uu5D$Hl1s0b=L__A9Qq={e^UYLS#uD&Ps? z0oeM^aY%RTI{5+gL@}e7b6o=LP~t6BIkU=muL@Q(^5C~tZKSImb@m`T##-Ft-0~^) z&KBa^306aOe3$CrnL7H7EEg9?G<7e}0h^hy)4$2TPR1=xyq8`0;*SjHBR&zt1KumKXdJv-NUaq0cjV zDF^C_mPumecwP{OJ<7J9Zj0xecuKV=Sc?;UC&8~iQibsmvT^F5$of8Kt_SsD-l-}z zTcKsH%k}<5CeBCJQ3wXPv@L^ioB9EFjUXXBjLAO(CM1C(gUQLAI?i@e_-e zY7@!p7@rj@BZ8no?hQYffhbJW){I!VW#T~uw>wSS%fUU@m(MEg6DzuFut{##2krHL z<+9;&Lhbk2SY42^A?>s_T8{<7JdtsuRZh}HC)zRlgIKJMi7O~&y~7Ht8X-k2Q_Rmv zrH3&8nJGjU7GYH?k+8P_FE9U!zV)KFZ$SQ5=?caz6xn znfpjAfaTDn12&9wSloVAl%i9iLFQ>%3gkxQ3O z7>kw^49Bdoh7;`(9adn;MAkbxO)CKm12X0LTEGbb+ZZ+ko;PaVn>(@b61s zx$ZYCWAz2Y@lUs!5|jBcepQ$Jq?|E5Vr^GSJtbD?Qy9C9GpTmlu)1&>}i7c^5 zBEo-0VgSRUo`iK0mLC_F7|;Z?0%@QV!2b{b7%d;er9~ z03(14Zfh}zwWJx~aBp(Te3q}5e_MC{sw}G$eS9URzEZE&N;xH{bH2-gv8I=Q4Vz>& zUnTDsNN|lrXVtpOS<+y|dig3n;Z;(E3e~c5hBoe$p2Fr?=9HAH;g)O1d9t`nSI?Vx z@3`qqo@NPb#s)p5I`w_Q)iVIZfDCHXid&Aq0$cokZt1iw(gJh=-GB=Z(t^8%2WgQL zy2i&BVNQ$iVOfM}w}D3ihWgt`Bd`@X2%G>W>Dm^6p+1HYTEJO=A!04cey|O+02!bQ z$OEH55$WeO7^eo_F>nUx28IC_9>{#;F&}LeJV3_qY(md@-PfGjK z<;C{GIrA<1K}8D`ML~;OJZ+wghsQj&r^&ApW98+Z=gun2^sA~gf0mcs7 zGlQ|P9cKP;Ak0XZj)v(#_(Yg>hx1{UPc*P0o#ha+9MV}1q34hudkAr10U=~NsQm`v zH>mvv;is${)wO`zv}J>vv=su!l*I;RXt6IbgFTCg&EQU87~rH9+z7Plk`F8Z#-0V+ zti!o=zLm+b4jI9pAtYFk*#()Y#hFoMH79(m17SN5wnGQ%K%fqUM(IkPwaewow_V;* zkcPV9#O?T8s&v|M(`iS#tHGVxss%S{Yp?e4T`PBkPiU(R+;y#Av$m9<0Iv3Tu@3y& zVfol5)NZo9j7-IOk5rTwSLE2M@_`DGW3R}lAL0~5DoIo_j%Q%dPc*-*xl{8mG=EdG z&-R9l3nAn8A!Ap_NR+UA2ePJ8ry=#x}dQpXxtN2p`s)}3^q$KU9WkjJuP5d4j6w981Dp(Hv`6V0pnW% zqagrydJZ2?1Gf>y+chuTUvG$dV^+QKD#O~)d!>(fdKshl5`&jWGcI!6qlMiflXD<5 zWikP&mdUR}s$}v}NTp0}6A2IV(H@*k1S_LG#Y#)1`6QaX1u2&1ddMVc-Y#-*j*uhGAe6hj#LSDD&@@bnCcs<8BZ5@CCwIhkyP_x{4@^c51P zb5Jdbt+JpmNfXJ@-O`Lgc1be~`E@~dN>f0dlc@!e9Wu2I@=KXI1?iB{hgH0G64h~@ zArY;Q$z(N}ACXBFp-m=hA+0jG5b}_WzYBRl#!soP-=jSgyPKwnsWbhqOqpnIo|wpY zNK`kkBMWupyJS)=$(<@l!k{ZACbFC^QwKb{l=kQ-wlrgKi%T;CxudXhUy-SKkR>vT zHKvPYbO%;$(Zm3A)$@6chLMH}6q4p1I0>1W3z;obD4Wd zI856sj+v*#(Ns{pZNkH@7H^pg#P1>-MK0PaoaAiLgT%U1_ldnJ9pU8&x=FD+nqw5b zyHfXvXUutGdnBiF_&J=PQez;{kIju@OXQ!#S8Hq&*%iL$j-8pht&BE*AZM+=q%OQ5w`Op~BMU@4GwlGSc^5p0{XKxvV-Y}MU9_Rkhdp&b(zOrRwa zRi#R0iL|ZyXGPOC)%H(*R1H+s=FxM<6j+I0{nI-YE$)-yvM-+_khzF~A^KlT~gx8FC=@Q$y)-JJ2BhI_ugcGHLWKGUPkU8drN zecOFKI0ICKnF4390oP?Kc5Q0E#W*63&^>w2w{zWXinlQw$NY-k#Q%~%#t-s4_z2!R ztN1!z;j8%)!7WIFQz#N_f*=$K7J&-*ZjcW2Gt;H&*xgcPDSsL-b%QdXv7)s#NkO4AVog?Mx2C z(G7unJ*xH|b(9l<$5923ZtGvt310>KwpReS083+jd$UWK1ZEo>WykNOOml2$!t;|ieBBQZ;Yt} z(bQz`iS;92uyyK*t@S6KGuR0>*m`EGcjP(h5vJ~Cwnmt(5oW7b?=@}3w?`npEtwTa zB-On;Ur$oI4R=d_g_4TM($Ow+>ugZG$10{Q1TGT0mNJUeh~dD@RE?V&H!&4%X{K_b zSbVJV9^0T)Ou@y+Dhb6dH9|(cu>(>3WiXA7j$uNMGnqWs-n?Q|iB-}pMJWi;mUe>uQ6jY%0RnDTP7pN6AoPx@+48=1Uv z%{NY2gSPGU)WMe3(Ja*obqbD(qcL>Pr~zSTcA}gEh$iI0_|-bKzarSW3hn& zXfvx=Y>$iy$u0T5x;KS=RU*V7N6fm4%5+44I(Wnd`VvzSQQi>9p zQr#&E#47MbDD(jZjP-QM>D(qB5q}|ak_cj%*ZC{Fegyg(;-wz=lj-vudYn#oCZwe_ z^E&JfJ)B>JhZ>|coUp4zmV?1kr9If%(b4W|3k1{}epMZPU+zixmO5&`yrtZ|)*syL zhJRXzKmXaAu{Cvd^*zVwojuKpzjls!)QTSc06nTCf7ff@raz~bIc`pyn#L1-7c~jy563)n0R2p$JJ{&?|^lvQq1( z?oY%@xKjz0<<%m<9RMh+nt~*pBaHjG^oaB*J(5^hO3#sSc%JP8y;#s?M_AB3PAtkq zEF2-Wd{Rh4H@i4IXb=$|W*9+cT_KtE)k;^`#Ll@wA(uM@nA5J1JA|*&Z;`SzNh?Y_ zaksabTy=B=TV?$0d;uuP;kqEVZSgN~a) zXgYV`%zKXMT>pj56Q^!2f8^F;j7MeVuiRBrY~r?uQc zN-+Gt<_ECarr{|q!?}i> zk0j>P3-f7dVaXM0E-Rn!B;Ihid|uO}r8#NN9coU`yF+=ppuLMe%NFhto>4}WnpJG8 z1Y1403R^o61I@1__1AWNYq0KxKc7B(W9Lg_Ut7MnynK0UD55D<(%qd~4o=gHsuCLO z?0faQjtdtrXX0ntLl=(ye)*4~`f$@Gr|{#kU8g=nVuH9XuOOc`;vnDGy#z)pY{><+MyTd;@+jEzcqkpNbq$U!h1q{1z(5C`U= zU-vd!!WJr8d=_dc7YUmSel3b( zo||F_x`L%D9zn`F#TBIAc>RqxmgkpC2jDcUa0eE@cYk>XTJBR18pbHoYM@67sf8B( zof^sR4)2r3rB~IH(l^yhjvEsHu4B?cp;o1&MpYG?(_UrsDBdcMy$}kiP*o_qN~>h3 zwUHV*ql%JWC5og_MWsrkODb`>B$cWPt#^tgPNzu6o#3>+?gGUni56K^Tuy2Mk1E#G z)+1d2bCNEJ9DY2TtxynUkf-1+qC%6d`fX(`fun)rfe!*Rf!RPoofPl~^uRWhoC_EM z{ySeqrbeXnLRooYX+Di>r&Gcw+*!`fsU_sg<@PYjJfSr1zyI)E^|4KyXZ+qf`|f=9 z+2@Ztf1EEq-}%l-F1AA)5`yi-g~CQl2wAE4P~4PN<0ENHlCjVfwuY90(n(81kzkCr zQAa7&q{74~VeJO1XseAsI*nD`qkUMR$P&e2^I4E7QFg?4vLWEF8!sXgpTAVOKKF{Pq-=P6Z$U-^syg(vO1-8FO0~2szj5~q2K-vJ$+z> z)g=q8VK^W8v2FRS(=Rl|?1mu;4L-kP#pmc+B?WBmzx|PYqkR~VQZ5qG?a6Zvu01+e z+v)nw!(QABfh*#WJN&(ogVGNo)ACf59rh0UCcG2ADeo)vY5wKlyTPk6M@xjcQo1KP zDSbb9P(Bd7V0)v1%a}W2d+2d~Tt4Xkg@@^MdwmIo*g`4@L?TdxF#f97=e7?ilzT{Y zpuvn6c_SkxGJVG57g1Z4&?`3;9Ud;mkz8*$Jm33CNj_JL%A3~-r5mMQkk)cf8Or_X zJe0OPUnZ~=-v7YF&)V3P6UBrSrFoYbG*}1YAZgj;CC(t|C@jv9+aMefyMe$ffUGuK z*8csdG)k04QPq)pbv$!u42}U@us;(`*!b6NRE1sNhkgEBW^}j2u)*E z#jWYlw8u?qOJ$j0eW|ENi7BMg&9*XVJ%gC(W3nmPoTTWx8A(fG zPz;G-(MBf>OE3-8j2AruOVS_3iv`y#L(~ky67n?!tY-Y$zaP^Ar&&DvJL|(=UmAy+ z`^12oWN4iNdw>z>?C=Ue5K~U&dOQwkWmk$E{QSuIHwF%0dbaS)7QruPU)l7;H}2W? zb;D4_oz%V^?MY)re`W5y>3=*w7;)Kd-}>tYlkiPz>p?_u>A}0Sc29S z%aSeZAk}PZb|gEKJstcY@Iml;@Mh34!R;3JrKhOF0s9npj5@|WC!VHGbF>;*B^I;m zvlEn^qd1Pt76Y!HBeoNcleX6!rvi2tBA9-c>nf`-s;Y!E&FWvW6|YeTGH5r(k@r1i43tc<6-(3vImxF<_z;5^EZa} zV86z+WzSfbEHY#DSbf%@waa?SnzmlFSnC-<8j)rsN{SS-C`)+w7*F!uaW&jlZ;xto z)X7yE#U5jHEQ7}dOwO_Z?{dDbfZ#rS*oas_yiW;Xp}yToDZySBIcu~8FJcsVF`!wm zo+kC0zr!h2Q@Se97)uN_<{m_3THe1~FiltQwypm5<^8|fIq!4YX*doLf}_ny#pdsA*<@OUoSDSR6_!riVo=2HByoFqD~olDtYQOoOT38;Z#6uX-trfsL{pqiGW+_!WRsp z(MXUYn@YclNEo>V#DG>>fKVRelb;8Cx-$84H9=KG1+YVaYQBamC? z9djLPVGXh>W|)JEOnK*GX5N7-o7^(i=hAimtHa44kZ~bbg9;PV_C%BW+mGd60-&yS zOg^@-@z;ARTQME)poHVf-l+q!r^Z3@Gr%ZDJX=h~i=ELPPE|-vi>QiE(_~dan(kB; zucrIFB#GFFM~=y)-0kG>Av3gE@A;5Jtz3~C;VyHwL0CvGtj6(|vaGa!7)K-V%W<+b zUW^aMC*x-!p$p?c0O)oLYvhu{84oC;nIn>QRklBzMLfg|U;m+m2%H`7OOv(c-$g|b{lQb=* zD&~OJnOmlG(g^fMfbJd8W2$0kx~BtmWR@x&?`BXY{dNwe8$G!I{0ctUVoRTL^I*St zBFAF`4@J)5Ke`MD8JImhBG`iPpHS-TFbz@?8JeXd#R4j%JVHz$h3?oanD=nL@FuyT z+P`7kzw72l??}&esCqt+KX!xm96?LFjk1EqV^S_)-gpj`vn(hnxP&0i!>`mj)6DBwU9(uwcri&flM0?O)eI#j{(Pt8;64YHHtkr51Naz|R>j{D|1Y^XQ zG-eIEF^4V|1vTDC0zVL(5RBgw&!ai=Oi{W^m9W{GEGB1@RACeD{JQqf&o6+Mz|ddF z&zJJ}c!29~)$JI<8Sc5%LukC#q6N8DF79D@wuKFXRuHF3-rJ2N*Q+Ls z#x82TSOR%nEgEKJcCS4jsEUqGeo~196(s^nB>=K&G^nak086Uk(x41VMFJ9uxT^30 z5`Z~95l)73f71o}FEl~RJy;%;676>Wp&m@tR4Clt6V;OW9DWwS&vKV?#M`;49Fdde z^i<#jCt}EnDzJSw7Dd@HBBYAUXa-w1YLJAjTXZy1SBVqg1dBuw&Vyt@Vu9cyBW5xU z?<$u^G1`I=q=7q4>-O^xO&ACY4NZhgw|Ch!1&4`bdta->(%}VGd$q4#S8s^bs~-P~ za;>8|dw-H9(8COohQD`x7j-ozK62}Ox0(FR&5Zl}t%d7_u6gk|)VlNZL$0BXg|;~6 z;6ap3uA*e(2T}NQyReDd)N-h4nxB>~$`_Ss^&_70iN2^nh>Rc$N*mYK(iTk0O;HTU z0$xIm_`=>6WAHDDH-0_NH~1}x7k&aBBqqI+P=X{YvJS8Bu{?Wv_+6%QGoO=l#hCOH24(wPyxpCpjb?Xm% z)-biLwfAbZv$b0{&O$%T!58lP^^3JX*Nz;0yvv5thv*)?6`zl8#BE2AC&)<17fu6x z_QsoxrB`Ne*sE!4AOR=D>%w*Y3&Wiz6#yAs^%(}#Rj*jt4nK@wV_NLXcbx z#y)sByes@;1jEnfQSOYeP=f@_`T@f+#31u9LoiRp6L(M+7GxtnVM3lMJAhC}W3(F$ z=0z=wYGzOt1xX;hW-ykAnv51B)S8F75X}SNM4m?2!53eSB4nR+%@t#MI21%Obp>$L zEOsNlN<|i~t`2;Cek8J>jQFv&_S5}qKZ*r*jE_G}Y^d$sY8mmk*|XI(jH{^^$A4vr z#G&db;=rMa@8ccBbLCHH2ThQLPuTO8%cJt4kc%`$^Imzeve;Owe8ceZzyrLThx58S z@*5*#kuhVhc|P(xb1F|xhW{XcA>Nd3%AP#QRER&GboSUO@HV5uw(wRXyL1GQHI1NY z8avJBOu__dB^KFbTrsX0F3uP#fHapT(jN#F7h#8));O|_M$Z^#&=37jnB<(R z8E3LNgj~g>jLmaov}^@%lqv6NZcv8k_$F$k-qs$JLvbmQjJF5VdDteSB@@o(VM?87o6FmLj%<`e6oO*_6>6|EJYmVbp8n$(T=sPz<^p>~?yt zqh43Cf+p z$Wgy%ORewtg>Nm+n)zJpfp2fx^vv;p$gRO-iU1cc?^xC`wCwJOcD=Obl`9-`w|*Dy z)ICVC3{tEPesLNY2)aeN+rZ>7m*cy2!$vZC+i-WFf`IS)e78_vL|x?!gVI$NG0pq3 zd@HJIJ~;_=f@4WA3~}Sqwn4I#MiErM#EDQB2gUuOOVl|H>e`^TQ`@h(wKFgcMB=p* zF+A9~>nIfUap;Q?u@Q`_ef7Lp%`}2!6`_U$+Koi`zlqU74>RClTJ`%EB-T74%xDD?JKl@i7PKKTEbNj^e)QuFeM0`{_ zCRW6A(#O)rDW4@mU%PrI*30q1VB003}K((3Z>>EU-jh)Hw=9AqBVyH*Xh!lqC5ms!5VW zSte-^LB9GoH&g){f&n5R@M=I$##9|}kYiYt(`2;&o#_s>({`uafUeArpAhLLG`F6# zA5D=yT?QnFPBocLC4;F{k^wY_*pbePLQoV1s)-_-lA?ra$?NkaQ)%>4T43m=f0JGQ zu}z$39KZMO?7OpL`~36HKe+RcobB`3IPuve#>PHE0t6BWTA{$^k!gcc5RDzJnSjwi z`PH(Gj%|>3RDxCms=@>-UC2NPrWG_Kw55}#W`A@;Q#4I%DMJM|tvK2Ho&#f=6y5XQ z`Sn?OpXc*^z7NU9eO`v9jJ$Dm0wm;w4DWfa2|5>ZYfyx(7&n_}icvYvhb=ULtFVY< zyohNqsb#okXReRJ5tH?1)G_>pi=j8RJvE(*&)Zw~@pYfK&add&*!kaqtTB=~@`HH@ z7+j*M49TSdc~1Jt0zRocvr-gH7uvjUc3^w*z))o`K2?9jgo}N=0tbaU&8V4 z53Pg}3rtkV%?;IG!MoOX1mrX>!3y}w%;&@(iCniZU3!cBaq8_>5-atUzV7KS4RXia=fSD@*T9{UiT3oBzF8oa(zx5<#tZ0IKH~EC z3LvA>usoDxTuDkwQZA}z)hjANsteR!b(i`*^@RFU^{V+}iwH2rJ(4>V(@{dAQkTn?JxEm2W{Z z4g3IqfOgSi~v{7}R}1rhR@OVqyu>2Az3GGDq`Kt6&$frXVAL zaAZEwCSYv9A^=kuUfRimfJ`5B3dk?a+J!xP0IX@fu4@XM%@jp4!qx-3jD#8v(n{2p zpbcz1h0O=`CtXxCZJZH3j@gZkU1|pJKKokVmNAgywD`h=FA(i6lvfYlerf-4&T4X5 ze10LbwX<)%X?r0S@}@F}MqXUG_3YuVZfTR}IC!_H#9O<1)TMhD*E$j-(?_)sEAh(~ zEk6qKOIFQmn;St&r_4-}eyF}276Yp^n`1GJaV&=e-fM3bxiRpW=8r`85tI-$o2`R3 z8*An;jD;>wqkIk-X77XLITW<^!h&p{JTBucvL^S*Rr#cRLB1|ivek;&yrLKPChQK4 z1ud+`_OaL5ap*|B@f9`Q+tqZ71qJM)H&kZFP+JV@@dHjQqwxeaseGEP3@VDgRc>sR zXSd4FY<)EA;n_)K8x+FI7NO`gQtXpRi$Q9R`h5X7axu}MB$445nA7AHFpE_*!F9wK zjRBuU5U>y}#QrD636x?u3`TYts!TOF+nG;BI#G@{R}=#4x5I>Vdr zYJSF^wE=JvT!7#3otN%GO|S*T03OItv-?mSjVsx43ZNw%1*}=h+uVLwcYg|W9KFZ@ z!jTL@)H^w-TfnIrTZH`DA;)=S1vyAD>Lu``A$F3E4|H^G=*%04#dOz)aPlCY<`J6M zabw`holQF@j-2gkFZ41-juTtL+2^|3mbb3G&wqP6@ZG$2ihVfs7(A>rka-GCJe;sNo27_^8y(SjOpf73s}y!dV_3ohFOoeJ12LPTqXKkF z5;`U6s-^0zhO3DS>Fa4@)jI4L;)Wwtd1vYXcPRCyWyEtldD?R}c{yp_ZF}90qbyd| z>2#+Xbf;(OPS4Vf-o8$sw;(*6+mJ&Ek3H2I7GK=_ z+~%KeUbMNuG_`abT((u>rF1sM#n-Md^n7u9n=2F~L%ly*Q#$$T)scHUvI~K4t7lFi zQ9p3lCBFU6&)$zZ4>hWQs6fWtSP-Ptw7CSoA`En+ylmpEX(Yx%32NzgMMKr@Vj${m3M65dk*uZ!{zXX@Vzh@ z4$3wlLJTwPEO~kq9E})l$?8?p1j}h0`de>kmcRc-l+Ds8A>E$f=mWvCjo8(q5%Xi>%XM?uRNVgm^^YD$%sA5F!O03j`aC|irvN<`Fua$;m?PH`3+P`(^q41fbGe)ZUz-*kvt8w8hNRiIgXF{mpdo~ZZKs$DuG~%nu zCNXcAf(iN?MOoU4vA7jgvuO%GeJX2SyHP-es~neIPkOtwC?ommA~57tuUE-REa$Kh z^VH0CTFug;#Dl_+iqaA3lr$rWoP?!a_Ht3WB{`*7vspBG!~A{f5}HIJ7lp$Z2P{u9 zT7({VaOogOAA9vKzMWgS0;k6WKBT&83;ZpsfbV5SqZs540Ncs@x@8atK-D2tf~l^; z!$jBJ)t#~Kk|<-;dYckMkx*9%-3T^6xcW}DJ9y#*`t$k2)0+pZ0kJ{Ckz|H{K^R`0 z-Wdhet)qBxjDLRjuz70Xkqw2xo|G%$mqTv3*nM_-HyjhUWo<;b4oE6;1Kb$;A$_0) zd*o`q<+$ra;dJ(A4HsSKvKNe7`Ujib?k-oi*emuok2@Lxwpmw}Y#^iLn~lfX&$wPM zyguZiqxxXVn~h>l=yU49O4e&iwnA@$Vy{r8w?bPpR)wkrOekskD}4hXy5$Di#GLo z`%qtJbjr!2DdI#X>u!Qbv-v>^4}p=Z<{**>$sj*Cn!+rI?I1=nCYZFG1bxWP|^5Ij7|+dQ|y@e((}Ko9Gd^`fyZ8%+gSYY-+t2FwRQ7Q%&&%- zQX1j7h7Him^XSG!PW<@RIZv-)qw=%emScqHCyYgdcRCzmSZoy=WG|QI^2CeNI4>$^ zeV2WF9B~1i_~!ZR)Su4iB(0@gI`L{+LMN$t{um?O`|D!-lqpoot^sY)^eq^afX#XYFknI|MIw zD}&6;LS``|u+Uto&$2yW!uIe|_N}gD%F4tF<8_I_>IW(hIHy*|>q8Mx6%1&MuRi%> zVjkEDx(HBHl}S1~EHFw!HCq9s7&1N8l>Hq+spJC2>Z36kOdMBzOdq6z z)jRt?%xDeOrl4kXP_q7>x(J6UD*_bP18nBEhcVH~Xz!jF2=iZWIWqjYr?YJXYptCz zMajk6#`1EYf33AY=Fe0>hyVS7p~>SjYp3^hJ9XWeYWf0t^(+0U((syRGL~-Cb+I|T zPq^@?)z|`Bp&ewS=Gf19xCD2dhSekfNLBW83YQ>$tl)$g(TT!DV%n<{KU-)~og{va z-UkUU!mssPJ=R$fiIhW9LR9>27t28cqMQr6co!A2k|cYHm-n_uBNVoeuw?XgGdI_) zS+);EY){QX(VC5*lM!SOd6C0ZoltqA?owyeS+&7btLjNuET}hCF*&{fgaQY5yJnM0 z{n+rz@_J{fF57%zr#gr3_KKdsr}GRsZQZzi2c_G$|G^kqb5_)#G3eND2PoaK*1sCx zQ)MxBL7R@+x&a{f4q*QtI5-vNT<_UDY4Bv z>3zaG?LXrER{T5Om*ki5kDJbU&&zM)f8Zc53)t1vq_imxPUj4)W22}!V1!L36RPS% zhzCpDJ`Zt+6A=>5>O=<+^MKC~4w4YjiKc1oIx#d&a9rV`p)bHwBdRY54`Nx~nM?#> zFWIXm6Ik}~sIf>mgLAt?-;@lp?Obw)3NnsHbzKXG+&7BR)s4hmW9(!g+$Tm420{z zvYB3RhW@uCuDmmp%2V`OdHb__|8@)n?OL)q*?zIyR#{7~BkiMa{AFWbJgzskv*oXrOh+#p)8aydF+}s`U=3#j9)bYgJT*0zD>$qZ`Y5=TR4?5{VoCkY&&tam> zD6@)SDplpAvY^~l916R?!?KvaP%tdN4J$^ApTd<5sXK6jIQl;j&D{mh*oRMk0vX}A zyBTEQ*N<_WcnH+g2tQ8AeLPYWLfvYqQ4VlrZiEDYZbwAaQ;O*%IM4s}e7c~MHdxSL zdZSLtT3XggK+|XjrS<<3UiPtZn{^!b0lLzxgtScU1S^nqL!vEkDRd0bL`q>rQ~zjHCZtYZU~~-r zpn@P)MkK_h3Xqoadmdk3*pP^#=jX?M{MhH;%lGrs%tiXQmvwg#^%b;1ICjhWLj`TC zuCsZ2V~$0Bb*Oj0U)>)H`B`c!Gc?$3%3YzR3xq<@=n*yVP|Y*V3(cjbzX<^!5d=-3 zg>q5>u~V?JomQ?W*A<_u%qz5VE0-^?x8agaF4$cCe=WW`)MG1XcAKh1es6lWp zlXvzsZZ_yMjSG#XhOYv{a>Lh9hMSA@#}{%~iY$+ii4GAY8hZb(of`6z0W%P8a&aYt zlvx#5aV}u$!A`*c_Z5jWIfY6!mEpnxrpHJd)xdfcF>HoQs)!F)m|hj7c-3ol#34(> zt~?5V)V3XmTuI9YJF-F53}_uWlgj3TEW+9c+H~~j=3Q=KPxEGzX7~c{@NV-47Z?wW z2gf?bxus^HpB`t%`F}HhOzE=+Cy6*VA*5m%@}U>RXq{QS^Unp4M`A%Vp}Y9|J=+=f z&Vwa$f%E1<`?}b^4=kSlgd3pl3pKQDlkngu5zzSmmr>k3kW(x^_kjR@ee~;Nj~>oV zd~ag!leP(YK9G`RD`V}lJL8SDv}p@+CDom))Zm&*YJl&>BRe+l*!k$h%r{_aJfrR?9nEIkRu%M;uxolPtA|Yjez~^UEi)eab86mWI=aRcKQA39) z%3?x<1EWzHgP;ttFUTk>UzceaL!k^nC}SX$-P%SNfa7GG8!|>i8B?K*sZhpLD9T92 zC@5(51)HweGmtjGfp(h%iG@wX!K4GNeBg%8poG%p9CdjTM{D5$LMX#O98{Nb3r+C27=-CvSL2uZUR z7bPpXbGunvGuz>LXl!`j$iUgP?;jvASX3TEXPz9&9a-Z()6f1_7{bTgerLsZ8R9TZ z<Uj2K}=v2la#2yz+MPrf&lQNL?gj^IcBq>g{kNR60b&(w)o7}(@s z>lV5#XGveyX-aqXJvu%NxcX_G)&)tEXvtmX5D_lemsr>u+gJFA!zp>#WA0_M)<26Y zr{}!U)u}P@F16nVSBpx2DY zpxf*Nhhl#kXzlQ?KDY1io4;PUb$!FOc!X=Nw^cJN8^xsW>Q~?X_G{lbi@LAAj;!I) zKmGEFsp0KPe$zC{z0}G?u?Nky?S5DYtzZQ`UDb!v>rik(bXMF&bRXe@>a z4)X=`bG^;=Zc4Y0#o0~?7@jE_8pp5^v4l!)Dk)Vx|6;Q+xXHoR?SU+us4iFOo~m1& zsLoXVRjG|7VaerD5AX65{1U&+2Y97t3_J(GH%pR*hi#M`uI5V%i7c@f;~GwfNg{vZ z6!t1vTJ@Gz+e@ntEWHg8fT3j7V||>E5fSTUTMo0vx`e6}EhA%?#dV32i3}Bna?&fKT8Eb^1e4mF1C?V4gaRxWQ$-L;L6cl8ze_2Rrj@4#9uyYr+ z8kuHP@3bHi>zZ=R5iN9*J8sdO67F<_45d;fEhDO8i9yj=JWl1$YAQk1_%$s>JU`CbYER~9E%K9V$@7Xn4&_jqG`&HrY|37m)V=F590Avm!nETT!Wsk ztmnOW%M&$l9AZ;hVqIB^IZJsolSfou%+vYbmB$_-vE{KU1Q4_otE=LQ*8@T|uq+%L zEC~)A8<=0feb%8~vLb>uY0dD4a=_qFKc9 zmHst$lNAgZJ-!#;`0n(>_08M2_?cL~zW0l7_78|D#RpI@aF`BE#L~$C*87j%S)tzm zANA7DxS!;DqGH`IhD)-TDft;WCSNOFGu{&aD*j7kOJcFyFK#S9!#$@zS2)N0P+#O; z*0}&52nS11ewZ8K8JBZ;TI$uPQ?!N<)*a+>QvEa*bM&y=MV*o=aKfp)Yb7-0R7y)G zabble$CD_zh@NnDh#0qfxAe8?0jkzrRe0bNJZU^j; z`xM-b-+Tc!AQtu@7Pi6m;=P@$$rZALt01>K0belP34@q|Argln9P<`VQuS5*AXQa` zy1IDhj|;r)Sy+MXMOaQ2l660&0>D$!f9NhB*e0$!j=y*R?DNI<$LIKL$G&%o&o;z9 zUjXNyYvyaarmI*<`e(F}YQ)5!QCKGeY6}Inu4Ii+|1hl^D@;=vlgc)swM!-lw9|st zX{|O1q-s(pO@K61ZEe%hEd@H{q`!A|7*#h%et+zj^SgWB-}m?V!CKygg}e!?_~_yi z^@BOsI96xpW|8^i~3Qrx!k&0+cEd9eXYgQi|>6Vt`k@4|cx_gH1+%j0ZfKLZ~InJ!NXmpf^r@JJ`Ts&f|tcp-oxk@K01ViP@+F>TV7 z$?yUnN^BIRkc7Ir-~k9o=x$|aQ=srJ0L=>k@B#&RfwH?mv0b3pE>MaWD7y=k-OmbG z5wInk6&NI_0wYk6581RPuz}(27Q@>ucDGyXPW#F3=GSm#yM^$y_YwdPGd3pnt2X1> z+ib>;l6KtQtx#W?f(y$nf|pwaFE=md+l~$(e_6(^JR_fzSviquA$`l#t9MhRUnE2N znycSDqbXw6XL|VaiP7iz`WVd(00e$aY%kyzYSU22$pZC)+NXm(74lGjzDuq&J>Rk#a3I99tu>0XawloPmvwI5C>1 zf_Wmu)OHe^UfAz#QBcb2NTr4pHL55oMrf@f!$?la7;%DXfkCL$EPGT>Wz-Hs=};9J z^C?Jrfq)>SkkoNi-PNOb%80@$b@@H)!N2(F#llB0L&bC!vv`E=Y^pk3_IKEk$(Kzp ztdv!Aoq5E(XmYBFUxoW%(!dGqROcCpxI*(Z=EflI8i~33TzuBg)$}|f#vs-rgM;uD z3@1tjd9V7$1Ye5#gF+msvsj&Jw)M|;{^8YWIp(#Sbh9SiETd|v8m0|s=i+2^(C^x5 zcWqKqYIxBOc}yJ+a1HW5*r2YA-BYkAL9`y=ZQHhO+qP}nwr$%y+qP}nXWMqpO;SlJ zp6aK5nCiEl>A%;vKJ&nx1p@%Q{eNDA(+>9Ib!hc?y1Ujeho_=}fgkP5GWc(&NJebb zqBA#SANdDvlzmC&OqzuDJc^^mI$9kf^Fy5JnBc#-f>?Ay^k3pci%f@!0|GMNJ-*FR7^zZBt?bV^~}6tF*&KEoc3M^4V1B_1xY&xyfO+4R4CEH!%;{^=Mo}7 zhVxoRgUiPni6d89vawcKP<+7|gtS0M5t9ut_SBfCYU6t6@R09NcVujCjIPPKYGyRNv25UlcpeUB0Wn(q{9-Y`K=NyuX65I zEw@<2ykWV=g@|hG%DV~uq;(KB@D`B8MbuxM0LzTlRVmpPIk9b!$o6J`D# zWZ$m8jksUR4i%7+vO;?7B>csQVL>?EDHTExnUD|Q8atkg_ZdM;Vz+L+<1gK^AzwCN z)hMMb(*s9-I3Lhy=Kzf3 zWg`-ojN_TbNr9*LhSskDE2M#~3d1@*6l2&2>`dsF*k@7!0VGtsnK4zx-fE4nmYTVl zf=~gHzlhvC=w0%anHaF!Br#;CO?D6!g!@Ag$bex?luH7+HG$MswbqmQ^8}xIl)6TJC7fzbt&aKvXe#7cIan5+ z0;ORwQs@O@DEM3U$|CTvhvSp~SmM0xxpjbp14$oUw=ew0I{gF6;cJ^AGGwT9Pn4Mzlv;mCg&JpoL`GNXfVxI#Ng5M8 z7^_%Rw>AqA=^+4tTRE$eNo8|hQj}Va0P}>I3vd|HOq(;xG`ODQ(wF@M%a%CA6K5x= zYGzUOsJ|R>YF5V*;O8@de!<>+L%oB6^KYLYCwSoUjYahlG(sTCK`IMk$uYy%UA#hF zx+M>6$?6384o*2BLV$6A^p9fka`o^ZowT=e{QmVV?yuGhfCyxuxpKX{w|e$L9rfP! zB7_qb*kC*+4=}Mmhy!W@<)!hR*;e8Ti%&jUrF;~ylf_!c`LztD)sjDFVT%zusM z%i1|WF4*#G#S{SK#}ugC@>hmo+~e^2ZIs`j@5^Yd;)wH~v%S66J+tNBgnn{^$ta~o z@wNm75yMo_DmdB0=;ZH|B?=Av%0ys(-EYdKGdmD0k95?IIT)bnY#+w(Wfn{3rQx$^ zBq!pdCDcPlkCnQ2_ol8$+>g;Ta`I=-clJB|n&oWcJ$0Y`#?9~iG4AeuFi=7jaaYx~ ztNh%^45Stge$LsqM(~Voqi6V$}zHQ&`T zXpz=!j?`$FIdR!oc9wN^b>h_5oq3iy?!)UyF^zpmnat}wNTDK`{S*GRw(ZoF>ZyTc zS*gxhh4Y9TDMP)~tDN}Q3-6o%i9_fZ3@4G?;$9-puCV;fz~4OtV``F1gq#IUtTkrBQqc%PN}b~ zjA;Ym22MLbUp2UIuQ+^D8*c{+<-!90Rqywu4K)pmue%O|0;XdPzPjpSP6Te?rMLZ1 zgaL^S7+mb|HOSEVrMqoV!nR>8of8yrJu5p~1|IYdop8e;hB1EgxA*GbozdIk z!u6Al?*+G2B+KjBohh;8ayZ!+mf^#g$fBlcbSo$a_T8(}rj#vpG>%+tqu#X_^)stwssHjP6{gJZiFL0l3P;b!vUZ5Jl!}3pYk1YWkAU9tylpbJ- zbK0}6oUs+?tFp$f9RWVT6dg7SZLk!?e)e9`_qpGgN&5ibTR=Z>ggbzNO99we++J7_ zE`Vpx;4@Z&7rOa3%K2^hW~EQIbips+f+Mtf$;ZSu2njt&U-&SMNks4v#|QQ4IJK1o{SS9?c<2(t>{5?S^d#uGGNDi*jb>*3D4IKP%Q|6t@` z@o_jt!1MmPODrDC^Kd$K=SOHb#3}XOFY2>eqiTs*EpWA>td+-}4{K4pu4gOFU7fYF z0r0d=sex=XYbLY}sWIMU-W(hab9U`2XSm&pHU;Mc8+S_%v^x<$gf7 zS-~jJd>Ira*Z+d_{vY>_DzAt%MW`*k&R=nmbsBJOlz%$A!6oJecU{$%!#gP1w9ufd zr+a?Hcz9a97B}4FpQ7GZ)zz_;z5IBah`yZszJsVK*_0IZU%$rtU;*j{0v`T%b~^Ka z=f(eDb~+~m>p!pj|7fTG2dw^I?R1X+>YD#IJe`fQ$ z;OT0R3MuMHKOa4>b1+a4QBIiOh6s>wcp&zoC}6ts0!RZ)T*Vb01sL)%rS}nkkXgkx zbZ?_h6eDXsh^-F(Rg_y>-bJXh{E;+Ss}ZlfuVCf)eTmtqx#|A+J%8=oyR7?k^=Bpk z5PX9`(gX%;m749y^M=T1%~t=6r*J}_lSy>!KPCjQ#bdOM+O2CfAicB$NOLWY5=V#4 zLS#Uwp9N@kEFMdbvC3~JK(p|JI*S@iya_5UCwSuz?`o_zTLabJ+Q@GJmiP&MaCjv|-K zGvYIZE&I^(x(6qYuCu{#gpDx!>_@TXFZ!NS6RGwP0XCcQ$G_!h8ZCc}W49jWe{UYG z%iH5)cFfFD2FX+My((#Q!0K{LMPh_DuLOuih|@v@&t=g-2-L9|vTP*6NBukZ1{CZd zkH|Mf>$K0CQ)n=I)1?vrvpi2Tq>J>Imah=Gu|8+8*>Y1g3p}>uZQUl6V3!l$P-28j zr$iIbds^BeUbw369io~-h=d4ZhxBu@8}_}%l>$nAqSZ;q}l;PV3rbG?P`+#>`Bg25Jp#nSzzX?SdDh zwn{Ykh4gim=8PI;#%RXhBZ}TpT^=&%mXcML_?HDw!6K3Fgigpu0;G9lPK==QjOY`M zSY3|s4IZkG2^UUXtcyP%E8aMP7}FViBA`EE(mwXjl?@T-uO=~H8g@zM$I5Xffmw5{ zZ5&anF%9(bfjGY=y{DoYVX+iLdROK=rw({)ibECL^Bh^C*k=H|#ppz0!%=ibMQ_Or z!+!V0HY81^e{x8EY1YP(ABvz|1iL3=x3tO zfJ5xdMTg?T#T@9!AGZH>Aambmh*xe8vVM!>t`4h)Ly=fmPV-t4@Jb(D0&kAtD^=1G z)n8&Sii1Ff9RWxr6^jl%OsPo2H8t0)L{e#Vsv5A$$tps#n&A1cly0VPw$;jfQK)WN zZnJ3`aQka|IF-FCbjx!4YKF_aZe!HSHkKh@SO~e7hh5A`Zp}%a-NE$}MTIklIXl@F za|6~pCi|6(_!FcBRV;=wK%9l6qy243GgHvv6J7n!kt*s@kpw@-$Srkt$)lTB{Rs3c z@m~P;q9}<#kqy;tMi>$)%os8*)Sy(0W<6wClWgH2r;Fx3?1f2eXiUB8FOI&V^OlIG zNj_B(MxEWjD=4eV%(<_vlEPIzU6IFXMyL%$E9Y$H+a%XYbz8)Dt|uKtvd=WgwAVD) zFsf{(vL?3XzT~+yy41Q9yKHM^$liJBxCRhU6i7q~UE@m;C$Cq2DfQ73=|B;|n-tHm z2#mE#I;&lclou_cc+}M5q8fUo?Hgv2EXvcO<1bdaA`~*G`A3J8qxvk7S7cOA1+qRw zJVnVEX%);Y1J0SSIxmvWszJ3B=AF^XRoXWv3!_DHFsA&eEKCD%1)?4SJW;Ymb+nVt zX#J%~FT%wepLk$%7fsZf#pR4f>5Q877~D(m2otKvw1~8O0>_lpbV3nz%<1h(&mbL* za9V&Jt5k_ehI}FCPI%>{O+q}Z zh(XsqZ*Yoc+{I-HP!fr?5l$XK`ADUr2&6u1J|pi`PFbIB`9*nc53{<5=vtQQSnj5r z>fSgcIBX_t?~gGPY+aY{+b4QFH~a&I?R?|50_S}U!jnR$NU68ze2;@&AFSz7ZXvfO ziglwMR;jJR%$Siit~hN8q@9r(J_UYe_Y+XYGE&19ufXy;<@dK#e3Ow8kvfAOj=6Z+ z4A0q_HC~(`)d3vjv0{JIfBFkycCDB(TyCFFcgUwB|NRiDX%u&Lub=s5XQiDELNm=Z z=8LfR@J%lP_A_C+4|8B!x^2e%0_fC^9Zh$TagQn$IZaULmGowrTo{awzQ!K6ccfRQ+^;Gj7 zEv3k95S=94j^$cx6Q)~F5}5gELpRG%ULE%9w-bL~&Ea=4LEiB29o!D4Vn!kM@nWvn z-)5osrPP7b)V11VJ9&If@`=C)E?3Q(sU$=@db;vEl?P~|?Tt#Eezf6=7z*#OrHE$p zHv){t%q3j|6Vp>p<|1RGhh!YE()fCKc7xl0Witotf}MM@hLY?xe(WC@`W$Z}^zJI2 zX)0j`?bV_Nfj#}aBy$NjKKb$UXjkk*5c!_mhyKcZ-F{xXMQbe!i$^gS#h+z(b3{88 zle6Bs*hk){r;nK3>MT<(o=h9hNcw2RT8s$zKKc}OL0FdVA8IzZQ9h)tK2OtA4il(sBKAw12o?cw}R>slkXa$IR{7s`4 z+?Ik`%$~e<`Wi1yWh;v%(}pu%(#Y(uT?oD2k@=I92PNKz{=qnv|Ki(|(9-2O1$wrp zlO~-LW^3ylQNg~Bwv#6B78qYU9doCo!v3)E6`3oQN@zrNRqY|5FU!o4KSiJ4r0s@x zj65avVv@daFVTZggK7{Y=8o$J^o+f|e&^@;R!c_m zQVdoLb&aV6yk>us20d?fuOWLjd%Cd^RQBt<;&u4C*f6fvq}5|^P+`!zaz+IG9sHtu z{Q{@X9Y9|X7&S0-6#oUrkB;UeV(7M4mi{FzBTt&S?+zb4mjZpJi zp4~r8AN+7WAT^+AfF1qC{dED!0>EvCOCZyO7<~thAiVOrFUC*C*Y$pgkE(#-0QqXN zO@-CXvE_SC*v_&e7|8u|AwGX#j{@?ceL;N9A-yuJ2I_);z~0yg^y}>ls^|2YpAn$WxDLk{%ey?nZ0WqS|`c%|TSL3Kf60K_K8hC5b-^ox4pn*fp|KEPfq zQCC~Vbw#+7CHCO|MT6ewK%4QShy@E5YQA+&v1x*@t+vd1@zDtS#evw((!DbLEv8Dq zFZB3F{_q&#jJIg_^$_NG^Yp=V>U-h8fSaH`)R7i_4dNf7yV%X_`#KGFJPB>+sXRD7T#XT`D`Z0jHj;ckjlt;Q{yqz1ZLEPCQ38R~XfZ&OR17z<-UQ9Ii-% zeCr7gr$g315kO7+WwJ&n!7fxIJ=l zlzCB3af?^3g4=^5Xrmu`j@Heq+AX;%K4LBo(ounrZ^B z)A*h|!+5E913HQ>?5@cFqJLtgGA~z@Savzykl-%3OH?=#>rF0ov&h+w z^vDR#5>JNs#Mw5EcRezU(NL1bsum@Up z%j~6i*zoI=KhE}L(OFh}8+~4C4W?Uvu&mEiH}Zjhhbx-1QMBI;+526r8+gs9R%XqYd> zy2ek)nb<$jY>wzV9-=HD4*)l9Oop)Wwd*FPYO2U0KV#rY)h> zxH~0u1mkhTav7O&b}gd4*7VpBa5#e>m$0tv#vmQwpgQ!`BR!JOu1Ix?c*5)Yp6q%X zi2ue~dw#7;obQ+X4hd8~PUr0k#jA349P=xL^6enxG%f8?j093JVp(<1$@y zSD`&HY@i>$Z!bVpuWldl$8l7kwp}wc0D3)&0)aiq46DT}cs(^JEu)L>Og$$+w=L01 zf~zc`S^rOpFcz&+_1xfp4?^W--X)C0$cWs81G9 z4e`t!dINZ%p8@;yUXkRH$=h9K^mN&+E%sBZEXxld2fD-@sfoo0|b)UM^rh9puw5?kLF zd-V$b*0Af?p11qU4yT-t8`5daHBWX(4rd)?Uk=DY0y_DIm<%KW1S1O+uJHJ#1u&$G zif$La73Siq*L8ENjP<-)NyJy;RHM;#L|;#>h?KZyZiJ&Z#!8OMG;Faia1HX`VHnwtRqK50LO z0U$xKq(wuq_5w`mjUHHgqLdPY6sL8mKypxj3Bh73EO*m&fZi6_Q$IPei3GGy)*)1GI{WlmK>yO!AK)yYy%uq^7JUuKHaBi%p%6~gB6zVF_9xQz4%}Y2sNRzctsG^xSZ%$vwq8-& z@UnHV6*t%osU85KH-lKn3T)N4k{5OkekOoApX-kdH{Kzn+;`546I2s!e?H(JU^?JD zARfSV@O8K|kY+%o0JIn&^?ULRkg$7q2S8{HVo>Ba=;h^pL7cm(E26;WC={pBN%g@G zd+kW#JLo%Y3PK~1dlo#WbrH{S@`SiG0DXWP@SjlAZoszKfg9it&MSt3AvGeXCs%4j zU@jBVRX|=lQm!iw?GNl`;epQtx-IAzV&HtxU29Bp126b;zNs^iBA-w#>U*ebiXp`m za^wP7;++EortuI_{-tQ5)-&852{N;@axwZII}}qM;X2InvwS4cpv-u`WsgX`IQ^nq zlB_fP#{v^m7e@ccAFyNP=UE_g*a)@^eRi$$c-VEASc9;8Wrs^i;~=;prMq_W%3?nv zy=KUK^iuyk$ck;c%GX8*7?FRW){5?N@Hl^ky7`sj`c<7nMo)f8#MJ0+uu2mY;A2QT9 z>Che}!(>f`iBPRdgw(3zfSO6vM)jBR#;Y{Z%yEf7RCM~L`a%vVsvWA? z+eJH3a{8oh(6G%B2AKtTC=Ar0G!rkT)2k+}6tuT&+DV$qyPgIHP)F#_tt&b_A&vUc znQfmJQR_|CedkqE2FwYf8@!k^B>WUc&E^1Z9lk@4hRpMv4B-rLyuZZ`kLrghk|&Qi~h6%bn$e z>m|S(9QQl%Q_GY*E7S>>B({^d53!gV>Vo4)Qu&$WA<6UCMJeV9FK)Z<+)E+;&RsgzD^B@ z#(!|&Y`nrZ*2R6m9mQ0(nBKbeW|NZC_%Cm#W&hOlU=2R9V2YVuqL1liT+(b5mt_v zQ@5`_)6zbQedSd(os0S>bvLn6s5E+QlCMv z>-@Oxf?UY&k}K0&jT4O(>q35O|41G58xf)?ETy$7T@URF@@-_#P46-9^6lb|zYS4e z$B&qG>h~difzj=2Q7*;$M6FF? zCk&AB;EB9ZC|AevW2qO8tP#O|k1@oesu4&<$>hx>A|`hWrQX5P{p>bxz^vJd-pN_L z9WMVm1nw@*_`d;XXY;iRhsMK_EfDbORkF9Sw6UDQdP&!p5wA#Z^O|9+E;5p3px3G1$A#JtnLsq*I`dYh44lR>DawmNmeG2h@yn7h*T1ZC`OT(M>dYp0Z zLeM3)lSV=`c1iS(O&TpaBW+OXCPug*suP1kl8o`Bup}BfrACxUm}S6I%3!MTsfggs z=pVpV#AukHSxz7f->+W_UWY9$*!8O17~=DpXf1qe?c$ z<2S9wtO#S7S!ETmi_6L~{4iJ<*YO$Iz6arv*7qf{BQ@ zfv1325<>P8ZM+s4Wz>YMB7^N7qzq|zr(KoW!Qy~yLrmu*D;cul*?rDN){jowjUZXeQ;CQy6W`YelLHXNowAI>r4~R{D^OrJ1YF=qrk7kVxw|lG#oM zWRx;_>6cS>P-NxKU~@AZh}7fF%*7!=7S1_0D8hy`MRwBp&_pP>!qyLjjMl+eiR1u> zq4p`nH#C8=XI0G*@Zd3j-La>2Ac2|aOq^r?T|Nfi~RE6&Qf3EN*+St3%3W4nkgUL88 zP+Bc=YnETJyu<7i!dV~c2u??2GDD(Eo$9QOMb3wW^Ao5>TB+z(;U5*vwu{3l85KCk z^_e2UT(`d|`P|c<27%8c_-%ghBFp+wa`}o(syu0=5?}?XJEl(-` z0GfKlG3x6)YTI?xm>kZ=M#$A!$rdEF#i8s)K9_pXrT%`Ac9kO-4lv^x<{hugs&+7z zi)Fw*zU&aJ-CX~5d5oA5*|02wC;p2@`ONE}b%H`tZ{+WpT!+pKfgSExwxBory0*fR z!mOpJ)uxVD4bStP82rgDb>($L1K`jnc0^+0fF9B42R!el0-={ftt*rD3~^>lH&Ihs zN}2j;wQ{+-4SE5?J9km!sA#kWy7ve`kHB0MqTz;7<{65vkphG`fT>Lm!*O`&d!e{R zE<39vO)Sp~Z)5Hiscwk(nKncdWDe*4NHvrtOl@Fqh z<3>$XG+VSe|6XK@Zm|`U{P?GjTP&P^M@lmp&r8pp#W|xsYdq*(YxMwh&&(Nbk{kX| z>%Me-r~=ps_Br31s1>Wv)z9e8f!|k&M44WZwUU2#Mi&nKQ5q-b&W`tep2kvh{K4^)ZZ0S->N8_$l`qqh}H2ftZ^+moA-eS2X zW1k6G(`>T*im3H)on=J`fT~b>mQk2byiWmGjPYMb>28~DBV4lE3cGJx=`AChrWXqi z>=im)Z?WIPmBJnh?qxMyZNru~e}T;wxA&OEzZGECmA%Va#kEOVEqbP`R{F`?MSDt0 zXb8~Qk%luFCR&0^&Gq`p7_dxYlnhfP({SSyH!ad)m5&Zq8_b-Q_|jV zR8r(atM5a?d1;$EEM@L3t*xbK(|UUDem`gRyg34a2Zk{IjqfiaO_@hjOli8>NOXao zx_<{t!@oM?z4u;^AAYBzlWRdUT)O*%Cn*6|&-1FkhH(V}zx}vk1_@t%-7%ov^6jTl zCa@`I|E!rez9XN#Mz9YU_Iu)*fCS?fE)U{h1VXZq5Gk3;7w?tqC32tHc}m7fc!muE z9}7|pUoH3lwQzI>^~tU+y*z$&iT2673c__MU#ERd_Wf#e>f5Y)P1M_{PWk}ggaft- z$VV7!hCkTbWOYj2O;KLWE@tgOA z$nhZMh@YthC@*US<{N)%0KuN@eoZl0=SsFShxd7{56*^oWJy|@1LvH1O1j4a7UJP$ z^^dW`hu6Yra&SA$S6{O2n0bG>Ll-9J^3qesh>tPkVR}L0bh`kct*&~2OM*9Wz0g&? z_0Z(elf^4|&a}c*o4TnniXye$Ex5BHmK(1r^Bl0M4_*OM4`dFWt*zs3tZzN+${t2{cN#NV~p1{}BKfM6{QWFA{eI zQ?CCVbK4kWbIf=AdUbR6>v+t~eZ$e$=_4U?L}JR$Ajx2QmjX_yM;cZWTP!oQQkBq5 z%W%~KY^lK{6=)vdiaNumLCjTC<5~z!=Sr!?427y-BWfmu(u!0AQ=~?34pmb{_MV$# zYtD9id4E6G`?-7M>AQV>Y$wLiSC>FWO4f_`klDk+f5zPIM}(l8fTqJ6BMFo32J-L_ z#P0jSJwLnmW_(BP-wo;PV!GC5l77hl%z5Q+4WQ zuk~<~kHuvV%a7)JoSq(vJmvRlb31a1@38sPV_>aq480ES#pkYk2KG`nBIo=qRH>?c z;nUu&ty%t@^0fOZGGoVMg1H#Z)8*TD*Qdv)<)??|oJY%#>R7zt@h@s^u1TV6&3ZZc zX%*1EBX1fA?`DhN!?mdLSl=z9dC3k07d9KI`!<)Jo$fsBLt0J<*y&*qDRbe(*^v|r8!(FS$Epp^7jI{r4MvoMW$7bXqTOu_(D!9cDc0}0I#0Ib?&_gztw1_^Cp zfZSUk&cg1B-RPC5iwak%DVwlS9zhIY*$0p6cJ=><5L7XUl`!Ezzemj>GbBDF7SXME zx>o^+N)AA@6gHWp-5eN;9Bp4zIjE{0Z9DLIxDPs{4^}|oyHi4`hE#tz3e;$FG@4s0 ztG>+tz|oiw*iPYYSik(x&ei5KpYBf=wGasB{}6sofcdEIAZq_SHG*FVd*{8aEEOyN za+SNh*7`AMDt9%PpGMOQCt&0jag88Au22DM6Vikg7AxMV#qF%Xa`le)a4_h zCVHg!ghboRjFDyzx3sQh28tZCG6C<%Ef{gGvYLrOeAd?So5&iq3yh08hAF2tlr(+L?B-$-?QS@LjW<#s-WGr7ComSqIMWSK|*Tg+Ob z_D9h==G}rXuYB6Mxkzohs+mh|>UtDPpZ;Rxazc62%b0k>!bW`Sp6?y?mG6jl1$>(n zV*M`7(*<{66nMv{%ghBgm;5Mwj&Rq;;6}4-_;S$_VD11M* zHno+rS^s@(x1taYHC^+P0}9X_DnlyB^(1yjWe16f=pa?_!Dz>f?2HG%+HYBy?Z*1! z<4Iz0`%lYg?#6^PXG#w(qr}$J^OD|oS7j==+`{}*IP*qjuzp@;B`Gf5OG5H%`D7$l?un97g=7E~~EWRQY_ zyhVYZ@`>_5y+H7wUGG+C+eBAHpj|6|^deos9*gIMixmw77~3?45mq(;Id^0o0i?iDbCZ7S*LQ4N-28x<=_w?WI!VA67+&z-$#V6S$HCix@|(00y%D2;zcwLIF~$af?+Bv_ME|$Sr z01I?I;S0a;aW|AtED*N}_AYS6?F#}$UNPXRKt$jITBeHtA*J=d$ZjANbiKVyk;A>l zXz(?bO~e*s#Q<)JJx)ZqnK7+#E5E0hHp{nAzRB6{b1p^Y4_Xz>8wz~oiSRj6gx+jE z4oC1BN}rArCb-x+i5&Fmz_i6rL3(FW2O4l5N{w53Y^EZ-!Kx1ybs(kaJ3f562cOR) zp)q(!XF`?xt?fjk&BYhZ3}py--tSX)r}rRay>oc~!BnSybM7ty@(&rJc{$-gVV)Xq zPW6Ms&E^Kx)CWOzJ+jZ@<{dvGqdV3VU*#O-smb0Kq=vhA9M|DWXN80`XZM!!2D5Fo zPs?|_HQ^4;uk0fYUtY_#d?-7m;j-nnp)6Z0-&V>n zg7FMkkpmJ^`0^Hr>?!LS_mu1g>-UAgA0>LZAipc}(T!f`O`RALsj_f+RfxL{2^<^- z6AUG;tALn{QhsmTbWRs%(W{#(la+2K)&dfZDgix*zXz-h$;MAd)=*bhjYjgL=!%3f zdENhXmyC~EEVJJm&NlB2?`pFDGDxla0O%0>$(pGkx1CMzs%PNkUHW((+UxXBNnSVZ z$gT+`RV2*{hR^7k6Klo%KB50`69YjnHbNMw+-X_2pw!pu*;!ZQwaQ`sgQZ^0U)^}A zhZCz`l)NypF5=U9BljdXtrS1F`~JsGz0Eq;y~!P=$5e;VpStTfmxb@o4@uFVmqSiN z{AX?wa8d0(9cDV3UKoxSZvlpWZjrd2Q3MZw;?hfdawsL<8rjgC20Zp);|UL zZ%ZbLmgCg9jv(*}e6BL25-ZCESjx^-0CY(_c;besz=%AWYFmel$+5b4IFA{5(0SJV z_q$=Cr_rHx!Ct_V&Pn-`GUac6d4bj2QryZDF!}-@f39N8l=``SUMB5rK2~qYThI;CF!1t!*M(uLn zA1%$hU-(VbVHHqLF@OACUeR7&ZuaeNVQo1%!+K?f?DwX#_vD=nbc z#YD*oQxX5A=}W_{j$|@4n8q$|lEw)clg(xhSh);rv7=nIGKpEU3Kfnr$j@h=J3?cb zc+Q_YZDYGPJhz`;-CkGF*y=yoovq6Fex4nJdM!q#yrX&D)_YK@e61ed>yo{z@b0d+ z<9l2`UH0^~+U*vaPcCEha~w8ang+W?59^$YcPJou^c57p1Mr%+DuTBFGl{VCeOQ)S zg$Fb!3X8~#%`DzoLlRK!Xj^Lw$Y*SF7?MNM9r}_XR%|m?#9EC~${#63*bq5_W!y@n4ZLUMAg=d_?k7C=*#WuodK(1Y&)* z;LE3HpDX)#;jqV8{pO!)Srd3cJ*yxpHdeFQu`kGX|LoLyJh+WPLj(;pfh|&wQauJ| ziiAdl5<4)b!2-A_IOKJX)glE@$36N9;#Vj~2LjmF(cD zh@b-azA=!g!wNWK4Fzb&RvbIH;GIl$qf}&BRjRyvW&yIZVGxzVJ*Y{|YiAjo=WN*Y0`0SgtB|8Q@jL&xKN+NgZ31wPn#sR>)N? zRx7!cMZ{~OT|oC-CR;0MEAI)B=MJ6WpS6CVekA$XDmv3{OmJVtR_ZW;s*xkbtcb)5 z;qW+;DxnfruP8VsLFLzvAReQ_2b5?5f~iDvGqO1l+nEw}pd%x48|K3+6U8gH03>N- zWF>K&r@?nQ(Pith8p7LyxCkM8{_ZJGSDSxIu1rq%BfHNgVRjY`0-=w;64#2f8`wzc zySga9n%c>t+>%Uo`_{HM9gZ@u!;RYj8*t}E zW9LQbO!lo4)w!;~zlKl7UV@#(jk382o#7;tbJ4PhJZbzy+d7hQ{kjzCCBd8Be#0Ly zpOe1O-*1yDBG9_RSc?K}ttzwpEBglPYh-=c8br4(_s;j|d#!NNyO8H1PfO)X=1LK# zTu-1Kl|ID2v^tYr_)q@qWtv~sC%gX4{IJt5Cp(dfOgTJ zA)H7fB|lDI5w(gX?No}gBK=9LhkS(qm=$i+$D?e99sm*DB-Vd84|h3SYUo8d>{)V9 zGPmwTT!-ezWI*+voYb^0ooQt_W5CHK)D!$2tyN|C4uMs^opsHm#t30JqPDpP&t@ow zTXIOaet;w!x5IBj)(83Xz$kzJZ;1Z9&asWAC~OSH&X{_H5nvORADAUPz16my|2}CC zGIa%$(qu~ekY{smY**gv=37Di*c=X8lGRFitnx+3!duEDGMS_3AG7gHk9Do$0)`a7 z#`~gmbyZ`de;M+;!0syP`;W(h+dib_e-qt4uQfc|ugS;#em6RvdDEHy2R>~u6fvHz&WG86DD4w&P@uR5gmBV zTYkw2(I2`^(n8XcH+!|qm^XA2cw!zjN}$<~Prc2!NC(x6R7;Qn#`*%{8MyAt!tq@9 z!-W+SR~Y3gpcks7d&DK%VmT>VIXEHN)FZUn0m=tAfhLZ3j=-uDj&A~;&@hz~!oFG% zZ^~Neon`pBK*A@XGIW;oiCc5tCoxDYBEnCe(Ven6k_;PCuT3DbP00*GG;PgvfK6yV zATnjbiaEaCWV|@Q#O?2t8MB#%a-p&1H9vMMIoA>DGZ`0goEtgI`lDpemdwp7( zP5kIuFHLtj8LaFwlWO}ZlxXpD0^`4ktXP(sxNddB$H0$_dSG!}pcu2I>n&WuVXSJz z;;TxRelj_m9}mTN+G=LlxXpT%OH~FgR6A0BnhW8`I>OzE9lfQr)$|_vnC6{csy3@x z_c+jfqM`z$GJSH(dylq{N4aHWV4 z7!R@`v`7$3pj(nQPgOef#8yY3OvH!t|uUcI*=kk?|g+l&uID-w1 zpB3bpff#+sv;q~Pfm0&$5XVm?duFq~1Bz<-_%Jyq#+pVkHN(o*9I#(CNlbO=4sXRa zLQC3#!gXTsHtpDhrR`*eJx=$keXX<9-H%NUC!?#P?4*`leC!^1%c?lMh?bRFf09+| zbQ-!8R0$3A7453y{v5o$x%xiS86NKEeR>sjv~JH8!FMfsMm^7pYyRO-8NiAb<&(pM z$P^Zz(_lQcS@|YOoB#+?u4afrxF#il`<|=(k$f2Mors+VCR#ldl1b3sITBL`3_mG4 z)X0&xPtGD$A6XB%E7b0uO%|k6IIpOuBpoi1kV{DHj3l!J39xVg#fXWB2P|oz7IXkX z5s7>Ej!c63ZK?p~OREt2io@AANS%`}ht04*@om*4~R^DF&Nf-Fo zW-lg`?L?3z`v5)L?e>I~*QoFwX~wC>hAhF5ja*PF>|Hs8-EQdTaNUCH<(HKW%JNe1 z^!t**wkY+E;TL2&<+o9nwqEvM0F>i>!~43Oe%o*~>}EsGP9lf3$3tC z#=6Ktq0-=f(}FzDveDb;YckdO`})22>w9;bI2S=+Kp(GCG6hJf|5q2*fzxU~Jz4#| z?M+TJrl_JB(Y-*wNdLgj1??MCSDd{B`@xoljyDN!0)<#I>A184w#O;VrE*MqgtP>+Hc>lNty}VoZzKBELia4fBLoL{?7-1ShA;fk2mWSj(nAD?&|ev>1(GAKx8HrF>p1WZfS=^G6x<0F|Fl)K*ZNs4iIfPs zk%nN{If{nS#AA>$3a}u1hs~%Xtq#?sji8=hiiuHV8eu5IoL^N$2!#Ne$BZvK(|R$5 zesGUL;ZR3-IF-I%SV(F=Kp<4_KsgXyWBpva)b|e~wdnu_wQOsPTHqgChxaJ%?EGe@phc^8We{f3 zI|IF^EXQv}-nSDcz}ue8jI3NtyVbB4M}J^;GQ=f7%`ux{%j6>O*+YNa=_fZ3VLR6P9{yUztlL(n|543jVA% zG0WBL@7(RVl<(2J2RsLz>(wq@-i@6f_!wg|`*-n4%v$-|$Jdiwnp^Pn6_B1BUrGl` zj}8Jvxs0pdGl|vMtHOR*<7NX29>CG_ovZtP-XpsKk2k_MDc#2ZMB6>Yh!RD418>{5 zZQHi(*S2lEwr$(CZQJ&1+tXh%li5u2&1Nf$*XbbEplN(feQ$l{eL`L{qH#7TQlKMw{RHkm!Mefc6L1lVB7KgdbPKWXTM zeYR$L2x&=TMm&48k*vw{RNv}&*=5>(osnz$TISKg z@H%w+>t8??+002#%LA5br_rl|Vrg3**5QcUdJ`TdTVowQ%BI|kFXY7?-loIg2z^-Hq-#?Y}cAb6Zg4El+GZ_Bal%MylqTYvgp{_ zSQON}2YP=9zgS#s5c!#Gd^zeddEeh}`G}f15xD_wskg=p&T4%b3U9Y(iv{vr)mJQe z-s_Z3R=%V1WUFQ@c6=aF$NG?vV?vXm0KU2XP{Y`zLjmrg?02|`i{r8t8seG5rv{4B ziVhNL5^PV%MQ&BMM&Pq2EWW+xH~)ePz1)AlO)5oa)Yr0wBCSEBFg1L&{Zvb-V;C2K zW9Mci-6|sC?P^EMtW0#pZrMujIX4FNr&nu37SF}5y0gBlyz~+gu7fXpDuGRL9>DKF zP2u=@)F@yJPGYtVPaf8(h^&zu#y=M-U@w|WKj^nGBdT#=TJqhmiLKDSNjP4_bw}8d zyR^(XT4sXp56#q_uDlOBkBqjuX0}%cveS`#vc8cXp}I7b+jupYRZs0xmkF!WQiXwyML**-Fn#Gy+3xMLjh9X^|bip9S17j{9{eAr%MI9C4#MAT_ z8nv>6Li#vyxsE>P_SJCZ(5&)muuVb*X(@WR5k^lfc6JwDS0)) z==K3uc0QM_wbtfBrysp{qwWmfEx{<&)0dw&u&34PXHvh#^`GxoOS5jSiRQvVCfo=S zEg>C=x+Ek^#kcgZY#1bj8m}b;idFKAmQC?m)i3;x*m@wh29KmAgugJtni}HRR(P-p z_sv-^eYEyIhlAjRG;1-p&)~eb;<7hqLJ21?LgGaakZs6qLQ@sC{r5Dk@Xm8xC8E4_Xq>HVr`!sc!OLIF> z*AZja{0 zrDKPK64&0E-L8~QpW>J;Z`$Hov4XW8KMUMBPeE-Qn{kQS*{5sVVpV9^_?!eqMm;V9_}RASqR_W+$553&*bD}GJ7o-8+i-MNF2}V&pJ(ed_a^KaiM8k zRHCFwiRoul{M&KT5f8Xj1!Pm4now%|;t^N7JO>cd{H%6F_3zG!ITUp_x?EOyM(4z& zMPto9p&7&|s#ae8h1P1%O<>IcpV2y}=X5g5_%8x<Rdf>3xr)c3=O^c^bM*_E2~)%8RuoRDN9LIP$j*9 z+Wm{&Cn(T{-ASb!=&?*3&`1}KA|!&S|2d+8enx>`8H_`6Q&9K4G3EAQ z)X0eW3+Q?KFDF1&&NbudvN;FfBdn5;O*2CBrdiD_J{5(fNdTt=T8-X$Egoi|5LFa0 zZy;YqG9kGXP~yOdN1t(agrNwDaJ%Wc3kMBqgJ<{a&Ir>8)OxzN*&u*IU6%V6VG3I^ zpj(Ei^Ol9@3*Fq`IS^dJ1`KD2o5p(M}OhQddd2L7IiM zv2&~KWI3O4NbP_rE!}c`>6zTpd+pSpk`4pU)@xloeDYxDAwHIUDl=il7v#$C_>2J?o#CTuc3FOT06iH)m@9vgjo(sB10w+%7}}G zM1Fv(0f}v3)}XWQjbPFn+K9DM7JsKmAvVnfge+Eikh|5`|COG5T5dm zAl@UGF8bL`vt;k&o7B-U#=|s@f*rJbkM?!j)6OHfM&7p6ak6GPI`&je>MQg!Q!=wS zEWYWoMzade{x^}7cuPIX3gdRogjA?s@+7#jHpl>hY*PTnS@lagyv(ge?On4#>VPle9iXMi} zX09>5IFHWd`EBZkS0dS$4Gs{|Ci36503aT-NwPVBKR?nF1V#ImnoWm74s}1}w14T15~Q zwi>LvEQ3>4k)nbqi~rdFp#~MOu~PUaN-{g&>>dj3%^j=^zODzr@@=(S>?Of>sCP{dI12ieR}QDEiACLlXvtyFO>wS7k(-v%MieGk530Ee-Pjo?V!JbB&wI3||$dek4weENlTSTB}Qh;p7>F)CDS;Z`27=Jyn>MDp>TQ|^%RDM%C6 zcUX1AxT8d$ebXcM7on@CPTs>np z_V0)sNfQj9F!&o)8pS+hIRfzm>GbvnzZ0oByF`mGD7nyvY<5Lax#b-;@|ZdG^68B>=GFa=c+aBx`|m1nA8w3-sZuYAk~0fG=T zNDJnZ;rMd(tTHZwiBDpb6diYe5WCO#Gs>&^vuXP=LpKJ;xf5h~ZwAAzzHG{?LkMAxrHn^;-cUR_Khn`Eg zc^%Gn=%4J^!uc-H2?TO8jDxF=)#6o6Rkbp!Y1NvS4X#=?s^qM4U5q`k!p7M-??)x{ z%$nmqIV&eqK5BQ)p^S%{{945-a=wpisGXZeo)IMqbB22eqUlms!X_Hs67(|0g)O2^ zBnBQBwdOu28MTnUe4|#vdX$>WySj>aO3Ny%i+Nky3VqZ~+@!rWXVzs4p)wWZ)FBDM zMbCt=wdUl+l%n9U-13pOXJoKl3(#f_*!2i%g4JfOcRt!Tmh0RjJ0MyFSL@m(apq}}$Po%lWt*-_^LY&9&7x*5mJwqu zRc{HxV=<~bgd2f=8Wx#6=K9}=sJ?Q(mvEc*=4_izJ}P*n3_ zuwC-|`g8Tr+GVJdbx5=@y>fP8027>%;ShVV?g>R6aNxH_7ogmphxF#7G}esliufYL zm>wDtM)yshogR@;=7=Cl@v#;hRCfD7l!jfj<1JHDfw1wf$Q#2b&)j%Ej8KURQBcno z_#f|ZbV?z#vt1zQj*Qu~?1sdyhcGrsst20$MDm-a8JjXK1LUFvxS(mHN|SX!n;bFp zlo9W9lpR!wNhfpJbHI(k#Q0JB?ofC|!-^>F-$maGpuF{$<7;`1R!95F8rkhuqN*UB`oh4m~k6&8f7b5_oOedTW! zJQ%fKhw0|&ST$!_v{5MDq{16yIPrzdoy#auV7`{4SmD$C*zD49v!(&F9$03~(YneE zC;5lbtW6?691y^64%^0Wur5?T|HDB{8950gZNEl83TD3g_8mz9Zm<*_Z8ZHi5q z&KSI$5_a-q&$xU<-8h)DOc7}hh5#59j3a37{!*Z^8g{SIz=aVXfZRA806Pfkpr{Yq z+zE_Kg6sgBbkHOvngr|6U>g_e(7rhF%}z{43_L|DGbPC!lTY9s=iS%b2jBOh*=(A7 z^*<+ERa{lzx|aHMbr0!T{Umo!f9DHxN#QQXEXSPU%yP$w5eP+c_zUyk3dTIflTzJ6 z?UW|If?p*=8uBNH`8*O0Pms{W^_IL?i@vsFki%sB(r12)j#@E2_o^L{og7ps4gp&e zd>i4&Jd(180pK-Q2DNP_>-FRmA8Q+qIX_$zf6BmI)(Da8)tc;4 zQ}*E3{=}kWwqIw)(Lpf=l4&+0>K{Po#JFepzwwacHf^fW>*XikcZBuRTp*;HS5@OJ zyOOUg{86NtT|mw0Lf)bmRiPf4!*Sljx+<_TBrAz5GQ}1q|c2uh0dgp4%x_<+7<)7ammR35BL zz!URiJow!vxR9)vR)@VW$161OsJ_1Y9h267R>nhHOGQPE++Su6R*1=j)GQE(mI*j0x) zm}ABG>aof{ zA)DMmZjob|-_fJT>YCz-f80^!riq!`-$7K}SBhSDPDULmDZGw2=|i0~lUKnKD|$Dr z9xY*0pjJ8i;vlHx47`Y?8>*z_7@M9Nf1vn;sW)vRBe6X3`SukAIakVxCpV*-=;heJ z6g2ZXV-03>*x{e17Yn4i-Nk@{)|yvfv3*W5No<4E8jwGux{h2s5)jp*r&^dli#u)D zH4)YvB}F&LL(DW=%H2rYQEa!ikd;xf3!JLk=}|~NyenE?%6ZcdRDE)0%W%T~7q)d1 zgK6jjS{x5O!DkBckhp;DUmCcqBu~j=aWD z?t<_L&LtIdz|3LCbL^aZ@u2E=P^{XE#a2&s-S_qrE73xypTmr=4^Q(t*wY7^t15Y~ zd54;c*0m~cM=f=$D6^+Q_UHU|7v0!d;%Rbu0W?xM)6}tC)frj~f?ZU8(cLWG_0a^I zI7q8unvi9{{v)bu&t!p4&5v^V^ykC^lwXh9rQ_n5>&wvSbDvimdZDzdh9tTu^Mng; z1$eFh4X!Tz+!D}s>Br_2s}sv|`T6J&UcETHyEi=bhAG}|+&lkDC1}~iAyn?yZWzP? zbMuU$*zeGazprfjO8pp&N=6{0SV(y*uVL_5k&1v;+BVfE715}&R;rd%X%hWstQ!(s zvgLBtBP?aij25O#5&)#*X%(uUAKBgTcNZ)zi|r3rtv`G-IlNxaS>4NrzKpn;X|!Ub z14|68Ut`shEGy-mcZ%924^(=Ht{)=#H+4(t1hvsH`4Zf;MA1YOz&VXx%H8R*+(VXK z$kgYo)eGB2FC}P3^luEV5F7V>(oON#Xi>WcDB=Bkh6aQT$Qtk}fUEwFd#4ybK(i*8 zgeZ`M@lAbGuJT6R=cc^fkUYWfFo!tPO=3c^o)ahSV2WHDxq(&WRZhF7zkuWj~-#+Rt2qaXu(dYE9(AawxZ4k9vi@(ek zs172Vmwe%0>aQ=bON)p*PUiA+{CSJpx0f8HymcoL&u!J4x)jiZnVu16FgsB0{^Cu@ zEW2r858UF&Q_w8I`*CNG+{cEosZl~&*Kr?MkKWr`u^z8*`C&}a>Scw#!D4wgqE^g4 z0j>)n06#_Q&1jzE7viD&`kZn4aQ}j*NGH&t&LyYti;i^q{K|BuMZe?P zTgM`$|wU=~O_-FvLOG=gmpOi1!F>CZ<{%hjh zaD?5RO6ac~)h&Ss;2u3R_&u7&TV1>nZ4B3-G^3Sy6O&o6cUJfK`8-~87Kp_vM}B5W9OlXaLJ0@%$^pEv1w*gx;NdcX>c|G7Hz`GfN`r&kH?`M^W z`mh=eZ*(4(iN`tn!WgA!+c02}uQ|Tu&osTc)p_&6^d9nwIA|=9qHS1C17_YnD~nQd z)S%-a^p=N0Zg0A+)IglaRr`}P{9DT5fX>zfJRT%IN)C2=Z?!i-MlHd&$`9``{#Zr6 z*ZMrao%2##AMPLPfUTT;U(6Y*R)QYz8_M12y>CuF$EZV$aR<1ce_$Y^p$}JYM4&H4 zI>Y(<{A_Z)$WaR{3UCC>Oy#`f$ff zrQ0b2e6nySN-fCm+JPQRGDPCTjc%0U!NGA-?8i1H==Rg<1dJ@3jMBg81A>lX2RdeP=lbNQ@0=9Jznuj9XiS@Bg%b8f!7D%ePJaJvS-D>N);WoGXH2q7)fds(or^l^i|j zpAT^Rb@+GWIIKP+Uvu1fHzdAyqMp`E#)Cgg>{gVI?9~frF)ijZ?ITj2Gh-#jJ`e{I zW?htW3vv$GE$8z`Sfdu1`-O`KT=&N4?^3lTl<&SBYY2H)=SrnUz0OJ>4cgO2jiPLtBF1>3A0Hm7 z$FJHxeD2p*smwXy6G4od>G=h(2G1p6SCi04{B zbfB+6ri8dh+Wf?{JLaL?hVe^N@@?SWea!jczNvfe?24*$&Q3`467g+x`?39x`@{@z z1bln$;`Q-gI`@#81b3!W8BeKtlojZ~Yk;f!Tn%VXyraHB2#|M&`>da@I(Jxq+ zA~vE7ziY~5@s59D@DF~jH|g71XvHcC0)pG4#5ge|K&1eIBh{B&FRyaZ=95dWD!#;O zkIo7==%UtwJvx&jI(cyCa5GIz*0roQ?B`)DHdQq%CU{g!Dje&m3W2+2yE>?1D;#sF zz$=+llQk=J@}yYxbOvfcdrdzxL=wqUkU%666A289Zb=|wQ9?!jhE;h;*xrUq%-)6` z<+ar_VM>I1sgU`T*3tNO$$-2Ml}_#hIZ_IlA1TD*aTKi0#EgBvQy#R>ZR-`4DxAeM`UNC=%C7=aTX09FU?Q$tjX_pqk`z)gYOZ7Xc{}K*v2V^2P|ic`@w#=jJLVuGBVo^um7=QHCp?MIC|$2l?@Y`HbgekZ-9JIHAF-x ztMSW9B##b^P){21NQsXw04V#Tf#JezNH(eHCUQXnlFJ}dMYUWE;Aj3FDvGgxuP1Z{LT@yn2lvLctF27;}sRgZ;-n0!BVQe>jH=+s<09+f2S_BAm%c zen`0#yEuA!unoQ!zY=exTZAMd^c-mm-79D9JmErw2rfU~LEwWg@RAtFe!`1F$i9xa zo%|4kC(>!0BX65#hJ-LR$|=3bZV$?yzMqx^$o^zjF(8VX!S5TU#%~C<^4hKaq=uEq zNX)c08EO(C6qrCR6ed8$VGIGh#8_fld8~k@$Qe(GYBzjDo-sx)CkghtN>;{(M| z3XlvAE>Q2JsmnSjmi4nH3a!6tMvhji-JCQX=sAHBHqEI)IVClf(}wtU`(F~;6j$3Q z^X&T04j`2e_>yA&Xa)`wj__z^d7i0N2uior8h89i9dbz z9)Mvw3thJqaSrhWf|y!yAn5~2!Ci&ma>#A~Ir)I{KG&7I`?Ly%sKBb6kb28nxzokg zoM1wlD7krgr}~B(48@D-82|&Gdrad7ZQ1FVC&5vvxf4dqnWU zbrU2%>XbKOS`DI*rNBFd@T+mZGqiQ59_pff+JVzS$rzX|1hYa3?4!J6wSa^*T3@*Rcw&V&QxgfM_Z7O#L+9atRXl%X7Z@iW0!`8j8VaNns;GG545jXafG;2g)F*z$CZ0S zuwc#RL1Z1lzqiZXn2(=P_?zvdy(Q?u^5oAKSoNtG5H&0LA4J|s_w`Bne?l|5v)72( z2baUNi*W!Q9oFHu&W%JS{?ygQ;++ERfH!rH?uYi~0BNcoyaVaPWW2eFIkzuEPD6nRfD_AL7%rgi=g(leXU7PXtaDA^Fu$@vxrC(#@ zonUeG{csfBoj8~~q}W1yewvcsJI_9=zI5SqdE>q}m-Re>pJ&C=6-dgXp3satoq?Z6 zDgbA_Z0x$?-g$$V&C)2HE(z%7bZ9z9=dX+^cz_!k$qU9#BFM8q%O&rtUd zOB3=L^eh88eBrM&H;`TVAigN5G3^m?3eRdiAJTR>D<+cRSWu{AjW|=^tLA%R>bW?oG0zFHv_1m|Hncq$#b|~NW4pR2_>oT$2 zMbf3jPbRw-^~J&WZA;GYdu+d&k6X3%Z*1RR;A28|328RCA3zrYdo;p)F_&K>>J%sD zK~;tz$?V4oBr@7YV5H`B^iT>dr(_82n#<0&aC9OU+;vsdX;w}oc=WTVj~k;@szylq zh#EZG!#)ZI&4$qq0I0u@I`|I8sMEdP%I{>5!l-J&C_2H6N1Bw4NX}1n1hNbuG6-nR zbo)S0mpSdmG+}uIqjocy@HQVVs#oDHrEok_pw(k+-gZD21;!6|b$sgle%w}Mck#c@ zti0EpdoE9;xxLbyrrNhRV_v!%49;e9cdc(=-{eXC_`mi5s}3n3aXbQW1$mT=yqr0y z52z1NpIq)@IOrOpG^myM=mx%$zS7+Vw<~+{zg4P->Lig-Eo017lM>88Swlq>X^C90 zW<_LKjEXG4U}$Dz2@oBHi|IG#lJQc7*{Ut!5H#io$9dI z^ewHtm%s2lCNQ^NbKR_r!pVPuy1^~f%G!Ecy>plpw8(u$)LnzrUBi69-RHrFT2Aq^ zDaSlcbqiM0^(FAyLX4Hb37DxSTg76Y5jAcq8u6KR8ktUWB{H^RwAZWUHDh(p7$?AZ z7WU_{pIR7mU4Uh0NZ_@(2*lsReqQgoF9^DX2HUjWCpuTqFf9evW&zE8micO z@pA0m&dKrCX|AisxvF%AA~DqCNB-zAG3R zgC0|u`7?u&zwh2kQ73_q7!}&;8(90B4T@MS?{W*?t9mTEC>MG(wyy~Q79xaP0yB|j zuyqe%Si@)L`l~Ge^eAnNg?x?k;kcB-&pYB4i_7zx>?ov}Zyn0ma2RU0mYhfEI%Y<; zv759PBEw})25Zk8M->rS(ui-ZD0;W(*S;r)Y|)Ag+fXWE!tiC}P5E$;j=*F7cQG4o zja1yCDgFGsMWnS4bgL!oEN>qBhIGd?%aw+0jOFm)P}4$i%wj~+O#z!b%v5O^RYKS8 zG-ys)5z_fYfmIVh2^ow(?S%LP6Y((uTp@7zSw_!YY}zvS`G9^TIGETw0k8utcT57N4wojRi{L=DX#ONbyzNRaluyuVI=**cm)a$amez^ zh64mafVw6yJD=NMPUQkW)c$FrkAXF;S!~Kn9-XYY-7I3X$i^Ynv{8wsv#E4LrLMH! zL%_mT-p3NI+JZT_i0^}v<`Sa;S~ibO$eg3!)x6~l-OK0E6F0tCwB zWByPmj@&M2yO}K5l*-^S(RLsPAUG8LiSj_wl zK|e13Fz-U^N17!okGcxY*9!BfiBkm(li?mgcbqn!c3^yQiCCl>c2+_g=o7j)hSrf& zO94h@G*PeN;S^a9%d_l?oi_1!Vg?`AiW#lS6D&eAO_yA`Z^nsOHt5vwh*+wa?*L@x zj#je9uNpv?&=fe+M9TayW^fA7n`#=#$&MyC-!oe)7SMw`5@R;DYwn(ri+D_2*Q7y4 zwmQ|A*`spi!jTJNTaF^;W4M*GIWpg8srh>zWRlnq2RGl0T+EH5B*Ym<=xwGYuhHb$ zVL`kL;Oft-Odci2s_BlRN-Ul-*GeCzq9a4ikbl~pB3UIX>hFwH ztVN~nY2#L$Y@FPT$kEaZ5aQgbXeoM(^a&Y?xePwi#W++WEPsdFO=~&yGJOIEA zC-;m%VHy{vv-=$QIgtoytUnl%30tGSHY%`~}u zp<>s6ES!qdQ(pP?ru}O^RJ3YEuj*oPnqJ9=^(W^4#I$^&i$jP)ZBnO0^2oU@ps>fP z&N&th(xbmEh+j;5+1e;*t{bzubTEQcNjd60Q*jXbc&V?lrV%UKD?@6QLoN1z(86H;g!Yh|HXT@wh| zMQ}ugXr_UT8Qza144a(`xzqJ?ewzdT9Uat0ERM8T>Qsu4x*s%w!UWR0@;uW}ICp0P z;UK*C7wt?Q-!eIrd>#-@GBxY(di*KwX?E4}sq6)Sb)=%}X7gJhN@GuADue#G$=;){Is(VzD57 zK2fiwf5gahdhUFQSH*{>(mk;R^Y69^Zv`jxBY{8@orc8&aPtwbJoP-Mke*&zA#+_4 z-W8Eg70mH(!5g1~LCMRllcz?(Q~SV^RAjVs+_Q{*HgAiZPjn+S>$9=5CRH>!>E^WH_I9 zv^8Q)DwKbUK63(;VO@r$$CPW@@N7i@L)|)xHiTq7u!P98{`a5MS~1==aX8J$T|CqY zt4!UPmXd2EXTTDHg1J1-W<*O^g^6Q{MIk^YG`}xhQ{eaw8z2jmbnaYNo{|7WVACXI zqCZ8?4Kc@jZfBlH%9*%voGZ+=5`fVGx=SYaNQu!g`bB z+qHr4NB!0I-)Q9|@-_(gK5Pc3hk4b999_3w1+H(0Q|5_w<@^S|z=?%?G!F^?*K{2s z=;XhPOn=Wf6bB;^J=F@&X-RVu^Xfr{>Js3wL@VRHxk#W+5n|s=?-wLvj98~Qh4%DZ z14#jh6(aM}a?s-WbVQtdbwn)plXwQdNS!}Iv=peWL!l*gb8Cq!!W4umRdI(1DTwwq zZdp;y>LA1ApXJRWkaJno8M%?$7ekZ!Ls1IeCmiA`ojEu|(Z(77{_%{J@J_3XIy#IS z%Qnia*N;Jlm}i)J0N)=3=M4Tj`^gG+oLoc(dC&3M^M{eacg2yjQ|uxA2{!Y3#D8kX z%A@)jb!qNnbJ)4N=`6kZ_c}A%h|6s@3ZKQX$74+%Adr;+6r_|FX8$91lGX?wT>pxs|4Cen2F{52~&R^^2DMVWN) z@`yxLAqPyzRw8fJbyE5I%3;}@iQxUTRo#n{f@`bm*{vq8xDAhncP4+$Z}kpn4qs}Z za<=U!fIQi~m%{rpO0&0hdoeU=(%dWJyS2Xv9&yIMah}_H$V3W1LitbWc{~xgFrzC@ zd0wu%^C1Pzw&y7WU}E zL=`Ey0EyrZ@%XA2?H?u(O0EydDpQXn-?6jRsoRSHjtL6aBhXG*EN=fS_6GSKB|P>a@AQJguW3lS zcipwB^Lt0|`FVj2xbe?6F>^Ed1q*g0fC11S8^$NTJ=B9Y*lJSZzO1X9NR)K9rW&7& z-h78kGAz!4popUvQpaklpyMM=s%q61k#M)bA4HA^mZd_IlGp)CjepDWANOj< zv7{T73DBKUWFMxmxq^N;&2*nnf+Y$Z1V_YTg4l zG$6(@fCf4hk7R$$r?ZIsnoh&`4FdjbN-frt`Nt)P)wQrRYc1YXwrMt*Dj(J_db{AN zKR8%=nT~P}oBVMlA!x0*|9r}P-VXWA*Ed{lXn&zw-JWW%V!6wv;kArSlr_Zd< zro6wly6#IbdI-k@85dN(#v)D%jYpms4mJImq3;X1$JtWRvl{(%Fm}847F%#jh)W2O z)r}*-tb&+rqFdOoTl+&T8kg0~3FDJo!Oi8G6_W6YsgK|g3`D?Hk`HPBkZ`F;(z{PL z+eU3Ex>bASe3WFmbb{Zt7Xd<|n9LVM3^RoxOO`4`K-kRjEJfwbv4F8Ou-3fu2VaAE zd}qbcq^i#(e!#A;c9hUdXa93PoRIK@T#*Znv-f`VoABXp7pNijTYvqvC84yC88eq9 z5^1Kj-LGJ#+G7Tn5AT(&u-teXZWcbxayGe|yZsFBu(mq8+H0@gPEc=D(CW=b?4~O} zw#n&#ifcJH=6M6bp;~Wz0XtW0ynKGN<$+6A2db|8PraL{Db*IQR+isBIK`yNVM(AP zxMi0bK3zQ$Z>v5_Vveg^t>PJQOUsgC5`jj7J#i>RY0cpkiASm~JW40d6epnf{RjNm zH@dyYXp7?%*_1{&b1FDN8s=nJnuIVV{fH}~ESZvKMiOb5rU4s#kmRA-aR4lK%in(< z@jss6qISRbk6-RKN?5<7S4)-b4rx=Q(fP1BV@`k0gmV9=zQj!7d$ro_f`z@a{c{9C zASFcYX8+5x7f{E^yl%q0CzZ!ZeCV)n71H0eD7ItU%+MtHG`& zMciGjraYjgEV+PA!N)u@8CAg-K&`8U$Q$&gbP*lS1Fk$KqPZI0?v6GSt+t7)#=S-- z5B}fAZgazo(;TAR)s9PPbRKz*=9D$)BT50(KTM%~n#>8XMk~&Kd0NFwCM(Qgj*8%r zxr(_H4(zC;k@7rF^GZ=xDqzGa5k--C%o%9zEVKh1Z z9gS&Z&ShdwoWRBOK|avhX6)NvLe z#|qV9@nORn8u6l{QQ`TfX%#xaSa|WXrJc91x6}M%hw-rbC5yV-Ymf)oiMLi81+qBb zPx>vDye;LIaKGK3cKMHu)n`~&rG(2h5@Uxx6-bT%mUa*%2@9$GK@g3Mq+6&c@r8Rj zV$?YlzyeCtB)%jjMk)4i>%UwzfaPh7pj3--%_cRzN1lEj;WJ$#8ITfco!gw11 zc{yxF=6Q|ZJ&?w|-ro|P4ne<#b;++k5AZvEH@WtgZVGHxUz+tbTg=}H zTr|6clj(~F+ievzd>`%ibMv;Hy)HAy=6c_sXH;xMGml4JBD+Al{`qs6^K$C^9dg{d zPB70b04l7(-a3=dp+EE=l-*N|C{ep6;I?hswryLxZQHhO+qT`k+qP}nJo}$yGLy+k zW+tiIN>x%9wbsh}K40jjLPYdqv8FaL?FmPbBn3`;X}TbFJMyp_h{QM+cvjhbDBit=ey%!OD=r6vBl ziQEKGR*Enoh8w>r;43#-7Nt>f#a@#o!=Hg{wvkY;=FP!7_GlZo*j27P^K)Qm&Wu&A zIu>UA7RREq21&p=wxv0)2^Ec;?%1Wwb&EcM*?`JJ}EUY^{Ir!%^~t|kV=8khYK zqTm}+ad5aqUT|_06`I?RqLnD2ub2emApIG_M6p>Dqg$#sc(3tAOp~{>!_v|xlh+S6 z8O%rRTcmE2-w()t1b9l)fhiDApu#D{C|A~#Ohaq>p$!350az8c1WcxdV2y*n2N1pn zTs^apEIYeNotZCzmjGt~X;-j-NeIH8l$vZEOP;M9O?*jNsUNDlay{N(lxL^3-7C@i zv-mCjl6i-9M@O$&&%9Mv*43NHHQmgZov4k9^rU}oqj7Q!Z-a_H!p7p1$~36uP@*^# zruHw^Iy5X_ws*Rm?e+H@{7?9Qc>6y@q-e<$p|$w27*4O!9JKYWh{j4N(w(ZP_9=nm zKitzKR9GwZb9@X7&X9)cXQ2ryEj1Dlm#ESA%E$bPd(Fj+ho4ee17*ymv@29js8u8< zr1Alnry(fDa}_fO?0x3++p2M0{923fskM%GDYfH=YhbyV45FAe*?~+}^lx!DP`w~( za>&!sNc4Z>uL}_Y3dq@tL#Rt->SjKbZ+8t#9(U6J-o3frdi8eNaveLo)_73+ue0`F z!TLu+f6@~ij{`e(NmD~UlJ!N`mVlpiJ@M)$Q@%JV-UL6W9~TU^jd^t#4FZT8^qc%q zLdiWWk5ULYEf>+I3p>FBusi2zDZzW@u+pL&>@pzkW=bVnK5ohbzYO2p96JBM()7U_P$}7zbP}-|6Q*8y`y0n zRKIJhP!Cf}*qW?>&ybP}Vw`LxqcNegJh=Dn&FPzVLSlR4*d2Cz{Qg4LCBZorFm8dK z<4dQG-HcCV;lB`XL$DBU6GV_fZ*F5 zyH|uIV1_0v!1eA!Sk0VWdb3ZUq$br7O)LBsZ41;ByG7i0zjJ?@YG+QkDU=p0*hor7 z^FaGl_i#mrWQvtQoK>koa6iCxwAV|xsQmi#q z89tzY4#u#a9E?cQ;5%J0dSD=!Rd^LhhRp_PlmA73!^uJ~wzo5omD+cJI%g29MKE1L z0W^*|%ZOfFn|#EY9L%6vqgjUht!IV#!*gYOr#nRlcKVYE?TO`f6P;)4(>1@+d*D3u zEY2&=l3DtK?+>;`!TWa2cxsv&%Wv`Z`APwP;^cUD;={2HKQg^mwqV zM`a>`i)P4Jkbu_=>K8zyscF=x>J#lesvB`kEd3z=;N23;Xzz$+OA3dbMzXG$gWNM} z1WoSpayo1er|I!0F3)>W6t#Zz=Nv4v{0@Ggg0s)A@is?gYvAQ+x?Jy4@*{YHK9z;| z=YogKw?dDBN4$zkbjyeA+Z0A;5oHmH?Bz|&Ikl61EJPd2Ev%)_8$&d?e^s`M?q;+Q zpW=+hv6r8*Ytz|bWF#GsQt-1gM~ldAkvJYuCw!&2Vm5Xnun<*2uNQ(5qPn8ZA-%AL ztNI~TKd8j-`?eo^HH78)Jjz}CG_2OvUHVuZKD8b%V~U-Iih^sE9T0Ok96kkMpDOq9 z^}IaJ6y1(yxz1SVzNoDR!rL;YeUmKDJUhLMqX{d_tt* zlJMmb=VhLZw;~rKu<+370X~fF(HYIrXysl}ueof@N1>N`df zO*}_7jC{>Ht7Bnb+C1^OTfdZD)>2a|(R`EN_3+rix675<=70V=75@IG zA&oQZ^~aoY$1b`0nl#00fpK`v`%UFAy@q;=TqIZI$12N9>do~nif6~mLzz?Nik%!> zyYr**>JD~Fj>b%BUSsBj({#bUx093DbvsFG&Q1(Sg-77)VBpp+$DAYmiu)x zcQSYSCU-hyTboTiv){H65;m!Xuow_2Ujj>lcu0VTmX(Br5>PlOH7W%Ql#)XktjtpD zQYIugIo_g-0U6b0q_9X%x~0$-Iu^NendQRS_3$%C$8>|M_4i4BChNPG{nWbgk@vIr z_K}BqTy1cgcFv7uPc`(1jWEqz%zggo%Wl-5EaJSGfb-m)>&}^uSK_uQH&LD{S_W!C zzMAq1@S!#(9;dMH;=A^%I_Qrm{J6MDr^q<`(TOT`v|hrwwLaAv=GC~{u34dXbd*n& zOsp7n>rI*AJp)d3qnBOS(8C3PjeF31lv-J4>7t^n%LHV7keA4l|7XIAI_ z$PKkyi>_pgvz^7GwK&lVpv5jsbkmNC6SvibktdOfei;Q9b#mO(q{jhFDryu478UKgZ%v6m~zbk!PP1 z6nTQA$-fklh)LoEj?>d5y>f;^b%q2;{LvQ^g_;fys)a)$7Vc~{SPAUhzwNClAbjHp z1Yb+U23LQH*e_*8F3=92nF)vCiKviiFxBRzCMLrqoGnm@kIK#Xz-p#+q-A#v z)85Q3%l)!rvW|aU=NH#f-0-pVVdG;NT$5OSFE2>-?-`~7hOmD{@QlbR2ed_Bqf{i- zWlG(h_%PzJ*V~_SqEya1RNGR8O0hlqq4@qzkbsaTNEHZTbO{(mgz)(I{y)uxg6I?i z#K1$MS@`OE9Hm}&6s33FJRw;XJ!7?5y+fb4%tv!AAOK9R!Ob`lR+~F;7&ho2j4bwMbCR<&a$eoVMLRbp__*e z9<+J0!r3U~4SP-ghTamaymVy-V~u6fiDTokEtAI&4mx}!8OlqpM}@B1PbMBbd}djU zA@qb98+^W)GM6O1EOIRddsEkkSQ(OUQYuUS3^h~aaS08`mo~YVKH~CIE+jRac7v7{ zYYh*$c1?V4*!7u!<)%vE(`)qxW-*Gw6Qb&2Wo2asT}{5$gi5W=Md&UFIFRwh+SUTo z2pYBegri2)FWnjjN-}ceIuZECkV^|YYa$1F^yrK#4lWO5$TBCSW=)4&i!y-bZ zZ1qC{mC?Cyx6jKi(ml2Bjw{#W|M)J6DV^>fGeRjX7I#c7>J6- zGdhcy7lmrJOT|FQ5T^3Nw+rnh25lT&Oi0>jy05<0JnI5>y-DYPIu>zvDK>n?ayV(}w$i1~P!Bps^g8B#RL1_Or7HO7Izc#}{$K<@zG zQ&+}B&XcD@h5J;;;Trjg2PP4Mz2$tl?8ieugva@j)cSA~D_W>!rr^KDVI+g65FOKw zf{kKZ)_urduYM>NP5fKJbvvze-(Wd@lOD>9V7irj^2(Q~zuYvWYS?{fdh_dshiLqd z>&*|mKndaBq!XQRGVGUuDB(QMbvrS`3-oP!BJ^?}`UewJ6XGNB4v%+G!9wXV)!dCr zqVkh}IjSHvwrb1nHjC%XmTB6{6}xsj;*BLwzs(ccYj|hxkFZ~QIxrvH6`bO~ip%Z% zc+qL2)Q6J?lZVgup>G>+W(PI*HTT>1K97$O>$B*iX+y+!-7~(u^S(Qnw^@0sKVQ4V zF+b!w0MB1ud2eulE@i*)F*3mmoWLC!Gn`|ANBoRLTabh32@{mXg*E5dp`UTZPGAqn z=h;DD3l|?FBc&q?s6O1>ZYiwKZZ{vVOi2;QhIfYcruN`M@&qfU_Qn*3W5yE3V+M18 zk;(plGGNAG1Ys&*&SCyV8i*7?9X!h`ppY!5r2T_=g;9X18H_>vAy*O81z7?Zr(lkN zfkPaC6hebQ$AIqjS%k5Y5a8=aL4eQZjo?9G;QCpVh5?yQV8R$5Va#a&JM1!9(ncOP zy^rIM0IGDgoz3~fcaD61k8ivD7CBR$Fqr)tv6i#}NNQ2f{ySuV{ePA5|8K|u2Pfmd zcE7NJy@ZK{nYr`78)4~1Oq`5NY@G>cnHbsrQ~kF#Fmobc|DOtgkdU1_fffNR3n#}v zWPpL4fRT}j;XlX#^M8X3$cs~}SlF02$(gt*+1VJ_()@p8104TeNr?dVKSY3ut?_?| z0j7Ts{(r;<*csUv|2J%agOQEl|G);c)u5eY)X{!k_nwW!xQvnYR80$h9F?2HRCWvP@coxxHl{+2-qPE#7ZiKD@-Z`F{IB`q*4l1Q%PQ@ zP*l$p#0pb?*JHT z5c6#^oT99`UV360U2*Ht%+OCzmPpi>fov=MIa$m;y07ZE8>>NcK!|$BryXU!i@S$} zd)+i&o@P@b)JRwE9rrvj!H>{TP;b|`&wHb-0A>{z%}luzGVCGJ+oeY;Kw}St+IpIm zUdkeRY(k3&taN5Sd<1&e7GDN4nxdZM8w0;&r!PbNrl_=eJ`XJf%z*9dSk)mb=kJo* znleLP{Ci1nb52%SrPwpy>$@DESE;02?cQ!bCy~Q-G(_A-(~)d~~`J;@uX+hR$iU%ta5nPmKaqljuQ}0yYB(1{Pq9DopCq zs}!Lk-D4>wgyP_^NX)P#1WR=m8y*$2B+pN(RK50-l?Nh(s+aSJofVx$>Wkbq8y+x21CKBjGI9`qX$tLBOI^LoB`!(hQo|{ey zA*~Q9?Jjb|k{j6}cI^VY=<(stN7+SuoUIX!v_-l`v2#5{xO9LVA&Ki!K(ZkLA5FyE zZIN&pcv<=~A2%mfA1h2}x+j|~WxF!~sr{GTT@0*4QHyK9=PmPrWrxv+^{LSmET3IB z!5q~HGc^h)0XHup##4cxs&MjZ+{T@&ZvgeHhe}oTVt1sCOYC+bPipFR5UNW8L5ZY_ zG_hqlv5R*t%yMaurT4G!7fHfY5mRNMrRN0wy>72DOQy?-aE}iApl~5>xWW_SIXNOu zggWRXjCF#HPpp#?^Xz>#*SvsdQ0hFCrYLrKc5h*x2W8$VcBQsYarQ;Cpjdl?S!xD5 z?YLT4)mDordAQro!!^XdZ1NC;bUTL@M}zD^JARmhc0I3X(9p0}H*Eeuve0m|Kia(I z2ei(y`^;g6cDaO$qU*8_E&EqA)M22*bhce;N1*n3CwivGA)Pe_P5YwAkH0miNv}l4 zPyv!(nspA+$_^?UzhF@INTM0MrTEWM&Vk5?|M#xs4N2-39kP0N6!Y29%ak9^E|XFr7EYY z%c}ZPzP9h2g;%|=*6l3Ev#xfjg*K%!xJxHkk1gTmj5H<5e?Fb&?U7NMqXWq5u60cA zejfntpqSwXsCNj~n^Y-|J8|8MmXBAk=xr(YYDxVKNixYC%0!uP+Ad+ZIf89b&2hn@ zvV_?=p;iHR8|6JCcY)bAp{Ijg+>s{kh%tLGBYQaHi_Gqz=8F*jr06Td_?<~_fAdNy zhZNa?O7~k=HZ^=oIcf>cMdMppN6F9BNN_<&`3ig_26 z)8M}T=noYwIE@*tTQ!;$yj3^r_(y?DpQ?0;ieZh)c^#g?7Tv`-GH6Mm{5wHSkyH0> z`)qEq+#@Q-6a;E4d10=!DuHN);RT7y7n-gKDdW@8HILHT_P@D{sISO)rJ3k4uFc4M zCCSv^C*61Cg4U^r6hJPx8wWNyah4A$krNA9C1_|$K+96F$9FV8Gv+F~gL7IJm3O7O zmi&Pev}TME!ofDe_jKM23J)H@k7FY}41ih7j^oYzTm)qAqn7-xPMm2Eg5R9L zyVAQ^`q3m9>?OD0f8%Zp^7Og?qIV=$!a`r?GX@qkIU@UJ3jx@Pr)CO+(I4T*aA_Y0 z@Cb%17!}neZYn%9gPc3ZZPkZOykou_0n?(~+AZ?-#t?l;WM(Z{&Xg=VM|yJvhgR{~ z-_vFinFHPRKasM>CUZ4H)LnSAO_bKOo98O5#)!B;fceNIY?WK%NJm)u_r?iKGB0nq zNRASuw&+^9vwRcGXM|LJ6hkrNjFg97gg#zLTd4+Ql;U?uO_Ab+SU=XfP@FhKJBL3y zqN@_6`|iaex$$RUk|aE^uCTD!Gj-kxdj=Y6(k>$sOAqyUc#RJ>a?DZ-Us?Vl;NtSs zSehdY0*A#xcy|=(yX*Dwe1(FBg}hlW@>0DM}zr9?%A-zT4^lZ7e z-k$jT4a#0M%z}a}ba+L~WIdA)Q-)|97YA>Jw~5QN|F$d=x=5x>>}z${Y|@;*?rVif zo4WpMhWQ<3^7KnHKFJ0mJSb%2;F|TQUA?U)jGVYA;zzxbYwNUQH;=6K#7gUFHUIr> z5=2|;V_Q8fiP_3=8s5=CeZXXR?4*i!!}yZ^FWaV|(%}_;L72I?s;eQ|tGHBHZ?~0C z6{=+gczk6Z7vtnwKgvdIU)j$ws$!<(sHtsD?)UptuRuO*yivwsfPZ6+ykHoZo@$hx zic!{bjIr5lYNudY1y!Td&^Q9E%p~+9?6oW)>Y}~>xzpVyje>f~|JGy-O%WchCR*sC zm{v)`h(!P$wic4lY8V({6WxlXX>|R^k1^A7X{ng(I-vB=JTiLCP#(mFT21MYlT6F? zeD09ul4o=brNPJc`s)hl=0C!WYIi5Y>vX4s+39r0qv81GVF5``AsOu+XM2(1_DDaE zH0@*OeDF=3>|ISv8d;=&^Hmbv4LBgBb}tsQ*W7~W7Y%g)%=x)k+m8TUx$Z>vDhp72 z%|}<7ON8B2+_#~WsDb95y6>v zKaiY{9W8N~zp07hP6RDQEx`Gq`lZTc?cla5NdoLF8=Q&Hiy=_sG}T(v)uN()KxwF|M=E1Vz56Vxb? z*l+v5^Yw0K8qTukH_F{rBloqO+fJ-u_89i9re}K6ZWVg6iHNBR^@?$v9Lc$=gdBoY zlq6LI%xM%InjYDV4}=iH1FB-QxNa zzWK7viJpyMuRfvr^cWo+C}(5bF~JomK)a2aeGfi4)L1oR6ZI5s=`aEvhUV_$8X0!n zrwS>sqbjOCyhGEqlWO&?Q_A{r!H5yH#?(q{iq^Y}qv*1u+%W(<*Dmay%l#a?O);#oetyfU(x>> z5El>@0G{6j@X`S3 zA`TncB&bLXPoN9(ffU0HD%mDGw5N7NNHgq*^RQ4%W7OsjJpesWw+cf*=c&P24kn&B zB(D)BarFtyhVCg8xM&#bL=mc79DlPF_2KXgJ|GtU8+Y$j#Ea{y%L9i2&Il~9^sg(` zRjWYmtamhSxYCTBJpuswD*NY&8Mm^d)>Nj(gXk1qK>~#>ve?K zS|4}&;U@Y4kM{@fS(5Mz+X{r`rWm@Lt=79p@=C$87!Gl`0Ji z_0Q5EIF=uxUE!=x$r(URa;v=7`yGx|1+FJ?quQ#wqG644Q2*QhHm>~4?}0DOH7EWV zpE|WQHE8Z_M6X@2Py-$5zwzjZf0y@;^|$&l3el@QW<=(halGd1XGTXju`O?{?gFa{ z#P-m`JFvC997qJ$ zCfo|NF3pFvViO~N5^e>cT+rGQfai?j@rf?J;bCW;q56P6JL?v}WFI@PZ7c-XnsQ{d zc+|Tge6E{k=hNnA#h8Bk7X4wK*7R66pNGqA`Czi$mE|79n@mQe{cQaD1^oawrQNw} zd8jjON)}_b>DL_h5XFXTw}$e?RRAp>DYnQmqH2zB@;^XeXAhA2E4*F`&gd3ThS8() zBL~#iFSzCx^AN3WLD;L+6%ItZt|FvxhScFlaPICe~RBY>Q;>Sjdcz1@b_PfTVA2T zrw*|9^xr_o{1ox{FpIc}u#~6vqWH)m3{Q#UB1)D?9#J~gpz43Wi1EA%?a)u-RV7vN ztm94zTwDUX;KvM}%7S&7fD!j(r?vy7+v_TKh$2w{p z5#2Kkc^v8A4yaJ6*Z*LVpb5^#V|S26mQhG9k2Wc*yxrIDoGzs1O8}Su}d%R@M7xZx>6DUY{_3QKJQgv$=pY&zo;mgwd7krl$UGI) zF?C-~ifj_Zsi;=9bs-R=73~5iWD`|#kMlZXR*VvKB-sTQ1tx_geT;1yxE0ZZZFsND zar>ARyo>!6%HTKNq8FMxW6{0Hl@Ml7Oh89%9=irvU2Jd3Fp!K18*tV1#)e70ej%(2^_QUmhY~|7KMJK*rQ2@95)Z>pp?7vx!C0i z^W`q@OSV%+bdALtNySA{da&K>pE<wIkFkgbLLN^cRaw}Y zJU`$Lm>ghzz^d&m7Fa8{b;tF`C}}N);bl{5-Z$@B4vCKNO5qai0Vf|DQ$Ck48Wp$515lbv_y(#3zF3G zZ=o2h6l4t*=Qo0o++PPDX0s5o$_>9xr`vDWozI?ESJP8hv;AG6H_o5%Mac@8}l7Ie5+q8W*n2=^+lbeozqj z)0MKOq|WC)7+oXy0hF9G&X_H%*i6r`w#-tLwm2+Qo0xS_48lksRSk0ag|L-)#}Xwu3()0z#oCb;3mK{tG!8ZboDCBU9d0s5(GnEz@<83eO7;a<>d4r8IvFIZm29Ioc0oG>>N z!h)@cY=n2MKLEK5LGY$(7DtNV#YPMz^F+IL3y7eC$2Jxt5rR5*x6O%_{> zc5U$A9udN6Ea=PE9pSATk6LjMcMkEewz_wH?y|xJJlr9-Qxv21xBMdBlXtsYzjc`zvQ#0DQLrOdf*gbnsHL?6;tNzd5 zJ(mEP00`+ZVj=}@F~tv*{yYLuKfpU1aVwHPUrj(V^Vtzp-e49iP`@ak4Nz~$EW;mV zipl$NX?J0<4=};s{z8Qie)z7x3LsGF)nkvbDyPq(Y3n zD5V?&Nyd1qMFiqqXMwGGM+CYqWBk+A;M_-t5~*2^V|gt!p*vxFUWfDmL^hbPn2E}RmOl8$j z4@58)N*%Hzgwx6sx{XEgmLdk~cW<~W*nyXTYsO56Vlia31eZm6WZxSo=P^4Zm&v%r zN&Y^u&LXx+Y$3~*N*eA)2w>pqjY=6ru=A7;?wdS6q)7J;2-}uO%m+>f>FruF5vgl* zt&vs3^&0eQp5A!t$|sc1C|*2xZQ^(RY>Ubn)4PrOe}fcDv`Y8T%F)(3rW9c#dzCn@ z_VuMr)$b_jSeK02&MT_ZcMaPvDZ9)cTlX=e^<)o|eGa85o{h(P*^7-G?)Q*erOyXi z=|hyXynqB+JJOmkY;b1|cw#uztUf)%_H#mNjL0o1OXG4R%H|tS4+Glma@vac-|?4b zNNf0cfIiIP1aiJ}mgeexYUymSpGfr5HRDPhr;1oH<9`84uP6yg{3UCc0S!~?_#u*|7IrMQD2iV(d+7xXg}ccxIzrDqTZ zIR-g04YMf?y89I|PiOiZw3#~pa=2+TQJ6PU%trUA9|5tQ_a^bvcmxC(0BF>}nwSN;3eC9vvMG4fRTT z{wrc6H+F&NVdTy?^L2TeG1a_+jwF8mOui{j*aqiwz#qL(LMf+Dei^W}XLdT#U6}LFPfXr+xR?%^DLG@vU*^rnRL2+w z8V7%~eE$drwUvY)pmTJep*3yURsnSci{hb14HAhh|SGyxfF0@PreF@YF+d^>!PCYNX>mC_#O5h3+3g<+XG*icMs+{UkfsM`&_qS_3Fk- zA0a7GuObl!3+=EUH8sxd-$2;flTUh1>Nr9YvFaudi{r+PLhDQV_U_!)QT`F=tN3#_ zIJ3yO3V_qwY#GzW<@})zh+8YM3hwyoi2dnGdYk{&FO=5p-_r~CCaRT-jVVanUf2Sw zS!F>}Rf)1qq^EbELHByysZ>y{bfcCW%2e|)6ht0DqFQaIqK1}M^9@$FH?|{1tzBbY zY&x9&zW3@bYP#IniaH>mb2tEgyC8nT-ZA~veyQ3F>cjEs0E0e!=jds56sdtUM-`ML zfU!iZ0$L$$6W&2VR~OZyV6CllMqhvm$vy;ze|?P*4cqXeRv=~iir4$(t8{b;6$iUGlQ#L~T-c|5BdJvzz02m2HX zm%}GucP5dRJ$Za{qW|gqYHM43$u^ahC#OA%^b>V!85gtBd)Sw!=f=1D_vPIiKJU8e z)_e91PcnA%SZIdSfF}__j8dx%%mqeleL@LLL=Z)7-qj$#R+!q78n4J%i?nMExtzvQe{qyttD{1zJr+2rGA5U$TI%j**^2Os5CUY%#>55i*6>*Qbw~>LjuZjGOE8^*JlDv6Q?G2fAb;u^>27w{gC8Bz*YUk&c{qYf)pRPmfJj zRO?e#NMpTiSm1Zbws$Gb8eb}_a-P(w@CaSqIJxyJQ>tKxTXSsXNTGpeXFiwG4q@Gp zNAs{Jke&+Ekg$d%!(*u+Fa`Qn7)=Hcj3O;wK2}xLoA0-x3n}u8uFe1aQj}Od)6hjQ#L_UWC#_{kkU)-%s2(S;6W#b9YocX~N?bH5!caPKyF4>!ZWvs@eu^bIiME zXchNj^m`b{!`}y(;2@_&{tSNyG!*d}%aR^V(j{HnkUlzmSd+{7*WKa+N)a@zn z`(gfi6n~AmvnJtMM*VhjMChTmYEur62;BEes@m^XOWaJ?{L)rAvLd!}WR4jf{>!=r zpOpYMcm?Mj0sy9P5L(01jiW_A@c=;Y|W8PQhhr6)~FA?s7 zyr`VS?0H>c9n)$1W5VNo-dSDJBGs?If2SK2Qq-7AA_>5DAi1tIS-_W|e=u$P_CWx> zt8Z}MfRQ&1vOm=j5^cHc_MMO&^xsl(g5dcllefYk>_Q*+yOq1GJ1*ng0k3?{)okIj z?L!1PIDK4Pe;?$5kO#QHDumjNopQyf4}e%nhP^_9xO%Az4T*XOD{FiVKd-}w-mgb9 z{p&&aS)GhNt_I*8uM_MlF+bKuMjKHiL*HxeUG+D9pI5Ri=f|nr)7PnA8xuG$1S)3k z(G$O)n>F7jT_AMdCI(^A_yxy1U#mK5jFYB8re5lAkNQMCR8Nr2uy2Y%YnWIuIHd2&wAUiitP1s5zb=~YOE@@VZ!^(gQf$}1Qhs_bAp9G3R7NlqGUS)Is}{BF$`kK zG|M9$>w~yj#g9#AD4RO^bvnW!6F+OpTARMb*A8xs59j@AULg6A1G=BpMkUcwV|NT9 zCPN0a%8S|-+({k!NCzlFBv%WTQJAnq;7j$sZx3DfGpf4y!1SJ<%}N{v(|YpL^uK8; z9%IaX<9)glkd9CvOz^g*V*y=$14de@m>%XB4E{`WJ6&cG4RNJ-Hxg#rp#dHq9oGcD z1)D>#$+A0wIQ$VDwqe)h*CL?A2v-hJBXTSpx!q?uFFkZfuSwWT+r4E;!Chx`%kN^L z`G+AeV3abUN3&s$;2Lx(B=0=C z39OGmRrn`0G?uG2g@N;U+?sr~x+k>0ym3uDM|FFb05QVx;!|Q(9$rO>*Up9m&V|G3 zom|Ks>G+rVj|P0vwbvH=(-8^sls(Md5@)odqD~>CY=r2wo4KEMeBaXEzGN}3AC6z) z3u*XH`{7)p?z|e)1xsWq;*hYfMzQjUaZ#6ZQM6{gOL{4BSai3;r+uD|M+Hae9p32y z=;;AFuFv3Aa68#=f5W1+zU8`mvv3#~Jg!&XhmikNwce)u+`o$LpCgmjh+u_o{hsmo ze10q6;@Um6@o#K_at3K>j4hEjOWRhLx0kuF^0W zp{CU<1e;7F6TgcMjxstH|$HVZ_H7$s)05o6&` z=MZmYAWpU(v|-W>&f6bpp-&C8hHh4*lLLqVYH|l+30B0lJ=n)^FD-J(HCk+M|1wjv zZgAH?41GBCtMTxwc;>!!(y;1*to3$D5?FE!vZSb!g>d0IX{D8-&0>i(Z<$7k4wt~1 z=3aV53Skx3;iX>2qmll8;3Ej%gm=gm5n#9ot#_w#v@tX96)bhNR-C>)mgFh7^)tV@ zrsWl7sWE{RDhOhz=XZY7mw?T$k?z17v{u!RjV9hAh(7@0oz0JdP)>B*f@#? zlfRg&g@Yx4Pjk5=P_`=szCjjM(RrQZB*SW602}CIPu(m<4iq{{5@lRs+%7z`gxxRI}TZa#chbRXw4?T-Y2Ccn_qZEeZ&b&y&vUyj!!;)#yUBQMd3rn9l z%!C%3_9co64^in4`IApmZ+rH#(3k}~5Kl5u5S@|2OeZm3E6|xdvQSA_rYb6lCR?Dv zLMo~#Wl~UFUedUGDy=plRHF3q;T`Ml?OP09S9g_m&{&uWGgiDvs3Ngti>^kA3aIl! zooM;5$p;CJOY6O8d~aV7f}2~7 zyR9_Hsv|nCh+11s%q#dtqYL*kg-l@EH94--&;HZsJLtN$XNT{m5zl_Ip-ae)9m|Y= z9FDqeneWo)St=5RclOpJS1*HqWEFx|g^6)Ot297X$wG)$22E|E8|zKa5SE80xulQ; z-ShyLF&JVn?l?e&f~=@_hMXD>8eUCmW=}}MeWTSGIH=dK)y+Z2eqzA@DlKCm9;FcS zt;nu6oUK{u45Q|mt`akIlj1ga6NAK!E~5FwK3`|Gp@U-I$tlW_?Jq|9Nb7{5-93fx zkry`5G9>j}eJ!u&!_R5)>(6QE=WR%?En0iJxR&#+-~;Ldjif{_?3evn%n9@~T4W&) zEm8rd?!UBQmq?wZ#N`NBt~v^DqA{YVq^i+<`>18h8bOPBrjF|2onK4yP&{aM(cs@t z>O{?nJemL%0lx2h>zz0U*Ol3jVk|$1D)HxgE#rSnCnwusejd z<{?AG@q}q~|^UguKwd1yHe`@Y^F*{!nC3U)2qw z6g=J!vB*+i_)&P-0f`kqC6xBB-R z{z;JbyM<9v8ND*I2F~W{M&kT2KQ|hwm5Hri_Z=!FldF(qe{J{_cocEu;p@y{ks4)G zx~wX}74_~P^!xu{+AF&LDGjV3K7+vG?t^nz!n~KricDh9y?lWrx+DSU0Fzi(j|fT+ zv^Yc7X zpn*>6UL%H!96A6ynlo4}P`9}CF&M$jrRT}g45fj%lV3eDmm_)BRIf{7T%#Y<#bJ&H1mN)7AlL%{ zgWWKCguCQa>8!fcx?C4!(HU)g!P3C;yZn%$W%YGH@aYFZviOH1k!NN3`xPhN(;=IBV_WP3H|wLHRc-`=LV!jK=tSar_O*?F6uf_Pe=diFTUyVTZkaJF`z zw(x(~*rDo&nZVrqi4_V%7e&jteI<+(WBb&!E;|0URASUMb|J8dCXnB8E&iOSahDY}Vo z?LHT3y;-~q7$Jf(tkJG$6Ldb2RA~wq$%)ZsChdA8t7pJ(`a6zf4cMX+|0f~k90PIhW)CO~gX)87rPQwUkFGML^mGn}jG)f8E;z{}r^j@^=g%TNF^9w|enf|aD8 zOQ2LiWRNX}A@i?NnR&}TFTRbB!}ASs$ia0(8o7dSF#2VPh`0H2sdU)qCO8@DIrTb%jW%C~9|^i!fId zDhcSFMP^z{xQK5}uY(P*W=6C_rYU-Xq!I~H;$J%-x?pK1G<7Q-hE}Y>be{F{ivGadE zKd_V^uneu1FE}OuxlD1Dh?Svx!t2lb7Ys!3n$HII3*!l_G`jjW4Ruc3*rBy3&ZK)l ziq+EpbapPxaQ(F!q>j7X?-aNy>FLp_6614!9^IX;R%>Ns6AwW^V%0Ny>G-#M9miG3 z6~BeIft{06+n|Es-Bd{1{Mvhwn5! ztA%Uf2Wq(;Hm)u=qjDEZb(bV#j4ZQ1<+7~7Rlja|Ao9}EFR2N-sIM#jtcdZ>^UnSv zeWzX}@lZT58nM!=Hh-~qG0BAzb`oB%_^sEeZLrZY!#E){S?p9MA(bkXy`WP>*J>4A zC&GX+xTz6S&rC+hqPjH25yooD$HRjDqVinUw+^)yZ#uAC&SJXwXPJnJ ztAUGDmYAJDH;!%!BdAsybhzD{nL_V+tn@yND$}p{A3lA>&d1bU_q`iF-x)O6jqdgv z_LV&}clUfIZS*qhpB;d8@U+;(%vm6V`K8B^{DLrhe5ZV9Ua>8GU_kW5=-*vVjWnfy zU@Kh~t-FR`8i*~1$4*fj5S}aFx^;R>iUgGLBzx;R^#6r~hfbKPq92_u9L0vZ$KYbC ze0+D|;X=a-Igfy!zayBb2R2)IJA}BSynFA(TB}j;hr1V%l6obzH1~-( zXI@p1Aw)_BB6VXNW%iz#`!!G&bgQbOuA+V=1tw;1z`~uWr9+;q*#cTB21>x`f&BY0 z&vsC1^46=6i75sCYw*Uaz)ID4Cv=K?(pb(UW7f0tX1!9B`vA2pC5;NO4!jjs&|aE{ zK$2t`Xfc$YoLNn|tAALy&Vmi0^`R6-?~LtXc{_AeJKWK+55bS159|uGsysiPgg2Qf zoknv!KaifC$)lH^d3pa>AlI{=a*dC?4%Et^NxyR2?QQlQzKiPm>WK?C5%{-)q{YkY z2>FS;XiDOE&%8t_@)OAyeSXtm0M@`k@P`~|f2X!?S+t<{zbg9WED6&IBMr5Vzy|N31h_XT`l581S*`!2v_KNTHJn!?pZ`bwy|KIPEpR41{sjZ5#wtod#`lg{_L9HM^_*7%+L zrnCR~?bBDKyZm{L+j~vCLW~e9)l#)VJ!?)(4(a!}$(&n*1adqYS&p5hBK71X`8wa_ zp{>z-_OwpIb*>)gZDi3=xtxnS5-bYcVHV_BlqnP)!7V(esdk$b9hEJ-WPGk^myM}Gu;fyGBO^aQVbRXIiYvoU!1?O z+4fF(=d8DjD6w$!mus5){%7Y$UeBkZZ*F+cjxL5?o5;Fo@^$q&^3FBU>l>0brqKhWlbrzi>r7WErkFd@c)%&U-rM+JA-d70IBiame&~!YXJBv@<(Xi?l&_S_fjy+6=n5sOxW1?o9Mn$ zRWlGWe0KNry2~rY7z15pm0b+&M7~UXFnTWi>AteuvdFCNh$}O9;5FHlE6KD`X97fC zzxs^&%I=_OqOfpwNUv4$;?>k@s{_<*#^~H@E za!ViS8`;yx=5JrUaG0d{h3ni(s*Mb*RGdw@qZ#Yha=K$Ss@LU(*6v@w|2|o>k`{@} z7>H+|s0wARdSEn08W_4j`~6(I*$KU^^NC9e_fW?65?dT6qOK@WD&c$cw9lOCV)F<( z`Tp}4)}S+o#)K5Dvw4=Wdml?D$9~eD?`5`Yl(pILTzwtcnTn${l|M9oMfQ`CinAnF zu(=Lbea?hwEF-y=a*_cp`GU?Vv2^gUmQdDY@8o-W^+A?d%4a8*7a5-&zVhTs z?jTPAG9f!N`cdHS4GI0#my(V}+@-y>rgWqLjK6)l>qQ)5vEIn z)-fg5!g)`Z#nw&P51YABzN6;&c}4B2kG!&j@2-!$3W4q%g~lZm?@c$y+!tKEmrL7~ zYR8z{bu%emjm7cBAzr=8Kg1UP_E87zqWid^3keV7!`tudT(Hs>CgX-q-$uSXw${2+ zvTdGsEnj%-_m#EK&U69Rn&Z!Mx$_i1JS?LQn;ApqoF%cYnpDNNG4FC<()}q$4Bn4F z6L!eRs%V=vM-s*<^e!Pjt=2M$UwithM7_U; z&bT*8Jl(UV$)>Y<19cl`pE(tftED@NdFSnZwzL(=aSbCPPFqh)%h8w`DJAXcIVZdx zGnv&hP;}+P><=g30vbb&8}Xv82?1i?+o!;*g#6QFZ?z>Tr=0pRTFvU0%o?>D9i^Mh zhPnf_B2@#OE-|!c4}Ii}q7C23AH#S5_!U1}&oZrLS=$}#NClq1Ph>)}^7=5udf|qY zIU*A5xd`))zhobt^7E64aU;sLI#LL7PLfGq&OFN>BJ)lDDQ9bpOyYy(_NIEOT94Wc z_u^1mUYi+;JBJU|bK9L*IFh3&7yD&HWxV(hFVAuoaLcg)U2s zQ)pcP!vjOR-<)On@rp4mhtWvr%6MQ&R$fuqZo;Btc=&|)$0Z{At%S$Qocm4J{Pp%Z zuP+{JMz)LY;f=#I2O#zb*b+UPtY6AU<_>>#J|l$MKZ;IdE72U-zK_#JCs z23ggtT;*5W88eZ44k=o_e9}Iv+yx$%mZUsZUnD#*Hyew0pKN%HO@+RAgNprR=~^;s zU2jmaaHPAb1QorYD`4mjZ)(}J&L4`<%p@<$1yg24V@-4y5&t{F#Bk~CjQL}+o&(r)SbAuCH{hx55K62 z^i@8bD?jRKKsX+;t$_R>8BM2ixGPwJ;unN#V?kUDDJn;w3T=Ew*U8K7aWq+AszUIrnweRGBmUdbFhwL= zoz8>C60zQ_bkU2|^(}=byZiZ`yYtE>OCXuFjrrE4jrj&~cnJ^uHgAEXzh0D^Yi+Uf zd?d1UU*?pB5u4uL@wznGvzIcHWHMqY-zeYwLic<1bV`>6B-XtB6nY%F*$G0xldWNTg zDs0?MYk-!NPsS&#ntZvK?Sl5Xs1YIwZxk6Sk;Hu|>Gb=sV>aip|DyQS7KhcF$PR;PceRd@>d zS#Lg23#byj!MgO({5TmGF`Of=>Y|4qDV1kt6SYR_>4)C05C4u25A@_0URv)z#`56^ z@3ee`rt_K4@llmcqJm0Iruk2NP@iQyeG@tJPq>>>*vreG{9QD@qP{X+bg7GIbXOwz zUfgJ2XSn8*s*iFHT9=NcAuoON=eXTD_-vTLW3PpO-f1P-CIftE9TUa5S~1zT#c@Jy zOX;j6gR&zT-qjj|q0?*gvveIHIo+#tox%P+?CEH~?CSi56D^lpJ_Y3ADagF5Cnl+@ zs&+0e?(vMo+hir#ro3Q4(v@sZF<;JYx4W^tHrLs=Ci1FO?)|I!$X$#5P^G~At1aES zSzY1*r-aB!4L=?^-!sWDEN_)+pxsYg&l5Q#wJ%vvXmp%WFj7N;Y>)4aaTAZ!^o*a> zre(L~%63!WX6C%yI-9+CUF0w7%ez4fk7%7jxep0R-lta5N~bZ^prS`ktLT9@C$LTUOi=JvCR;^^+$7N^w^!j)D>dl@oU+QdaV2-5a35&nT znl|fR)?jEBrC}Its}Y$;x@ar#3$fj@tZ8hGTsS4@`&qfAq*gPG6tT9hoJUUpyndXkC75M`}cQP5azb#(fM&9yEA!=1s(7ruFT z54Jn}oeYS%;o|%+MlM7r=fJwyYeE^lO||#E+&Y#YWnbMGdGkGCbj1Lqh!Q*Q@qShH zW4BwSJg!Ct#wdSay-ahX=M0IRRXN$JzcoXeW<4J+1Dx zR;gb&Czpxcg~4=QqI}kCk)!+=6Hp^pBO?khOa5lChrhJ8l=E(RFCQ z#TNrJ+G-SL)pwsSubRh=)GG9gc06CB*}Cex`axx7{hL=Md6rnplo*YkuDECWtKqNP z#$F|Mlx4!-y(j%9PF<8WQgRomja`;8dmv;SaeY2_aA5-H{^k~))X#0U-64w^6=%F1 z`s*#jk@OD#FAttkulVuYn|nz0!?*40`jYWx>g;(hu}cKjP=ywA+5nd2!^xj-UROBB zbTSzW8@K3j!LK1>^*iCW{}raIzC#!uFjDA#GFqA!}!*xUQFtM96wp~b@cxhq~)^f#IAFNmtd zK1Wvde2=+qJLs8+OTbm&+Oo#3ytlb_bM}p0W!c5vi@gKq>Wd!a43)6T1(>PfkDJr} zho!pWK<;Em`%ZgOlmV4cpSc*vpsL-NAC#rDWbU73LUVec9jQ>VPfT0JT@HmW;z zb|3OJ9}-&$bPL$%x#pJd^D*HEt#_6qLFOc9T(%o=+DeDA=84kWorLF9X*?Id#&7es z1nj6Vem+8nyq0}Yqn0;VOa3V52R}_m2P>paXf9<_@g0egKAY@(3Y!yD@>~sL;n2QW(S}zHa2k30{&hc1g)m#OOMG6AcXVsd?udJa zEn?{Xm}1X+w~0&>M_x(fA?`7;zKx4yy5>(AS4QUGJB!k)8mpfCu)ay-dR;w#%?1C7 zXI}p26XQJO;~Nt7dLHC=UASJ>2+P$hsr_WppsShrrMP-6>gmH0?sgO)qJ1ZiN&J@e zvM9Fwnffs)#oFD?mfdAF(naC1AZF#;r)WdcWOJr(hDpRvvrW#)=b~;91hk&Lecm$h z%l)F%S}M;f!fR0CI!fzK1o3A1bj5UO>5|Zg0@(Qct>pR?=c$<)Cu|U>)sp2}@ zQx&Zj?lq67G|671=t+nZMG~`l1K8dO1P+oJU3-~-!+_I3UE78ySo7smF{iDajZu~D zZ|dFIgP#stnng5=mO95}XJ_6dXrHpQSMS*S)KkInX{h(|qYi^?2Axw0dL>Qs2`HgO zc7-j5Xpx5Ufkaj-!;uT`cfSg2Gp!cyrKO9r)A27I+2#-YS|iU?u(#1flp+etk@QuN zlnIe+EtwOHNCnEN$K_i`D3-=OmqJOO_mXZ3Y1SEf`CK@Cf$6>AGWG&h1jlbJIW-D_ zAsWqmk{~S0IXRXXd~p+ZsPMmk>~WB=2vn+uQU{(4DH zlCz8YeARRP*Hf5|+t#;JC_6`sjK6YUEp{GobYs^$zctd4$z)6yRnXjcsZAS9>^Q00 z5_c}kAgMt3ihEqbquVX%#a^Clsx%iLD}7nwfuXPqE`M%oncobWPR#8sac;=QW&2fr8MEPZE(liK4dDX z(OcbK3dZ)2lFu5m_EkRJ7i@Hkf8W(_y#CQ%lXCXX>(26+iB3QCTlz1@d|e*f+HkBV z(o9DWN>SgkR$|xOXw4|Wo02kL8M%vQ{!vW)aBO<6dy!-F`P9(Lll986Hul%st0wzR z%%+!0elJad&%k~2$@LS}%b2zFh}{j61`-B_|29N~`0pVb|F0n;NCW~rzxF>)5kV0D z?-UWt!T;>-oc|djf=7cXBM1T~5`QpA1c5-nXNYL1$O`FMIGUT-nF!0;+nR$N{vIMC zV|UZm0w75vrtNHTTaOcoM*nMfMQd9N6ek+&2Av)9H|$`Fh@>Q^7+B|Q;Rvp_Ce9Y} z7H0P57XM5O;Y8z5xPM+CIf+OV0Wvw{ksghMPA}v6jrr;~Dd7+JxC%|k->scEjzj8@ zl7H-1E|#JAKoY&6c+piwHeQ+2W;2%C#5mJ7QM@FJTLkmTr(dnH8e4LxE=te8B@ zJ2+q~h%FiSNV0Gi6Rz=o(etrOU)c+%WiQ-FwP9MN%!a3y>phAHeecS}D*g8(b=DTU zBX{@jv;Qh~Qz;2%DN@9Q>Y64AoOa=UxM8`f*TuTrNxtg(G?Wafe8eP(t5)HSd^D5b zvR|y^^o@qcvyMO5x2i>-f0lma)b;xAYGgOZPf4$fZ|XT`KHT8h6SwB@7Zg?uzGIr} z_Bh{oL-x~%x{CNiqSw`x)0N6s{IB(d^m21mXMYz!#~FND2|ik+o|G}{7{QfrHRF4T zV&mmIhF07+!k%V0hn&Bg_~Lyq?RMSeXU?Au+#l|7@&`LMk~SV{w3;k&^vUtG8Q{_8 zzvRC8v_MVRt1y#5Fxe&l)^I8uxj;9ap%gB>8Y!?u!x1ly5pxZ4T}pqvQ!J%#m+)Nt zOh~$^$@aP0X0j`t97hgu^WD8KzhC`RVA+T|@zIcd%>9~YwWPnJ$+t65zbp7@uz6u2 z7e@&yx~J7!(Dj3yo;gH3p$JI z5`jlryIx7=@u|J4b#8WAv#`APDf6zB{%}hF=zJF6=W(w!MK9YEiJ>1Fc!?phzgT`C z>w+3wx`W#$Tj|2tLuRRbe;%pNaAS?T>T*S@N1yTQs|QB!lc*G)!bkV#rkq)+b&a6dJQFPMi6ERn6>{OIv28v=)m<^Bt!Gnwwyo&X1{lmFhJ&2h0Tbnk{Z*EHC!f0W=y2qvnamrR#D7ti!Iql*p$l~ruf*A*MOPo zs(D8$N51jLu&Y^PmFr>rHn-A`WKp`58K1%-*2G6Lw@k>jTQ_?(6@x2L%#sg+YI0}9 z^pb3%zjV^$n;0&C>u&vxMPAEbyk~zLpBI*E#eLagS~u8=yYGq3HPdM$p6JI?5}!|o zO!Ukk^jxwd%68gv=TCIAhKE{@r}CuRcyH$I)kG;*UVE}|QugSBIFS)j>diC@>OwW_ zS0CDEsYjJ|#|1ylvy_N5Kk%y&`FLii1gS)0!R&r+&XTj{^T4Q~hH58r=!gHSY7Nz0 zd#!uc$2U$)Mvty4?`cbR#j`gHN3swmkN?`hj5$ZP?b5B&wo=z;Czfu$@T-z0*(V>S_H(+f&u_{5wrHupiJy8Ws{ZcV9b1Q?bCZdOm6(4w3@A{R z=9Oq;fAU?Ts(NXd>C!Um+{yg(21$X;{iEMFgr=Guc9ZljuHI#0sDyOJVx_l+M2X<{ZqJ^Ky=0cs-%+=GRC+RQUw9wt z{y5aSYDGUe{qR$gHMp5R>2WzDj;IrMBUgy+vSazZWM zc2@<6>laiDOt~&gHmbjr));eOtEm(n%s#J{ah*dm*g%!1ry0|7Pjv!AqN5!XV z_s?&RDzTOtCC`aI6f30M7^^J`Eaf0$6N`)TD4m-2o@emNd~(ukWX+k-M(-3GcPV_~ z?xty1-X`Drxw#ICJ{~<6MK8e#G>DQqp4 zGLGxVmgpwCZF5x7o5a-8N%wow)((#c#>+{hd3>U4)Qq3noXg<)kmp99NWDtt-OI`0 zZL&i!B3hc;a-Ro(^1kmsb8$O4On?0=+uVh)JJnX3ag%fOA3uCk7>|9aH$$dDrn1>x zvsGKvbk}lS(Y85JMK!{@PHIQ=x4fDKuVcsLQv+-AosM5|@l6t&MjCZ*# ziKD0(r<1O&TTMih*5_eTO_!2*gd;UI8^leKBHh=`%^$?k=U1(|SW7gvv96YEOEfh$ ze@kvG@{wG)Kr@?Bl?sLwdmwhD<<1N)^ci$Wi^=M+`wl*)b_ zm_~=A{qDkO4@W0R;z0f9pSHsrtd+AnYWwnBb;kRjPeOLXBXV?buvN0_6`nX1K z$K2cE*&}0KeJU+&;$cMArM3yC@(b+i3XbFctNLRS^CHPL9u;ER`R-9aY!+o3L2~=_ zdb3i(?|EgX4`U3W)O1s{D-V(fGo)lvUZ-ZJzP#zMaExWq&bM7?{@Na-jc!vVe7(W`dt37v5_-JpAMAJB_|e6Ex2~zH%2R5 ze>|?38djg7C^+ltEVil{x_0l~t>cShD#VGmZ^jz%o>8e~sj@?Y-HJQSzHTRqQZY{L z%~t2bu4*){XBWQujh?#}O{vtm!CiVz?|Y~7(k(X}O(oN}j&6e;nkBu>s&mPC%XNeC zX$ZP%`=T3u;q~5^CBI*G%pejvR=annE4lf{}&S>k*zNgB$Lj+n~F_Hw+Un8Augf#ZhU$Ga46OKNe^|`qqH~Q$R#EbCRJ{B|8 z-MyrrZbdWs4Ng~>y?$-CB{Eddr%Vh8a8cdsG{3k|m8bgZZCKT>?Zvv-pR13q-)>0z zx%!)XVLUY6b=TKMw~ebj&!DScX8lSiIXX&FMJ=>&D7S>hKsnYh zH?kuorDGn)v5`6H6gv0qh2Yk^aU^yu?Qu%Bs2heTq2$FYG%%|@wemeI5dFkD)p=_8 z9vx9zYl@(oF!a@dUn0h`?QZ{Eh+Ns#Gj+Uys<*YX(qFalAD+bNYrS}+7o&J8jx7Dd zC(G+>*-qwBF~2fvd+U!ToEChXs_CXn)vbN*g`-PSYD;=v>*~q-lZCQ*tETs}Qgw8% zplkY5O09acG|F$5+WlmUPuFVs(%X9s9XY+wRFlO-_%tYfcdIjC^Ub~(j;^l3uC9ql9awFX@a@{IT_eN{YuIzwNTB0ubCwaojNQop1(qY{(? z{7>G6{9XWW!3UMS(a_fz_G=SH>f9|p(X8o2JHSg#b*O#M6K5c0^xbJ^n3%()_`BCK z>%BjJRN|7n%A>!(DRVhJPKN%dAvUERkEiW_E-ll#-(0bKpZ8Qtc;6|Lv^xbRbvA1c ztqYP8FFaNMVU?tH8SV5#=MmGJ2O`JO`Z1lwKBtndKQlM5cVwQwrfx^Nh^zq5dn;@e zGq$$w-on}0+xGWqYW5BH5MJ}=raKxa3Rw~3qSN|16$drKdoB$5kdGQ8V{Y@Ms z9rf8u8dy`Rq2?peUtREFic*iKRDBODOlM3>odDmfm(fJLOteojFv-J>Z6?z z?W0e}%Uy@_jJ3ow5HH47PipSp%yh5X?on^ie3r3+*S&N^s(kJANWY`UtJgP9@c0)z zTkarv*tc>LURt9ONO)} zPT7Fn9Wtd$Gvj9mIy$^@?={5eD~|2*97dZ3^hT?f2l6oc9mXpmlndLxr(!WiO5+NW zX&#EwpIMCAnD>Rhr*=~%Y^|!6ONE{tUu-sYEcq~bYjaP~e=F!$0K1?sNmk87%jTMH zBYwW9({OM`?go?a!ev&qWSrmSW4S&$KIZ#QYNL#;?w34n9Tv>gdD$#}M36y3TyX2$=1c26Vg?!r0y1Wf_NFGzobuLA&elL!j+_`#&=Rqxwzp2*9xiEhBIx z{M~m!68?TogCrj4sMcSt9XWd!Fj*FP(6!Mt0ZQ%++BCSoe)}hG2e5y&Y5oxy6gR-& zgIy0s(Efe>8yz4rvA<6N6KVh4^uNr-g=`8K{?}&6zh=y8aiadR)r0Hbw4?rY7z$8u za3~6SpjijkzllI0|3xzj_5V-ve~h*LA7}K@04EVXT{@g(VFF z@C>x%K)3B*Uz|8B77f&u=ICDl91e>DY&iJhwEG8!M;)9Afng534+I9bg2C_y?1QW$ zU}0wv5C^*O=Q;us3&aM29pDdzVZf+gC=7>$olC&u;QJAQsYC81B0z5v3PXXOAQXni z!*C&D(J;OcaReB>L;@Pf{NU@~d?pgXMCLzXcmxsyr2~&Z5utPdE@Po|;1M_kln&5q z#X{-8BZx4b;*kg(lny)+g@n?9N1}01I`Bv=3PuMKhlkODB%ok)0PBO%0W1wh2MR@i z(SgFCq4EH#d*Ffo;4>bDKX6+R7~#O||Ae6tFulj4QE;B3(O4L5Xe>;h@n{?teg@&d zoj}ed!g-HD!t@!BLE&ILz+evC(4YHZuy_~`Fn}|#bp$*NKP=+F@BFzR7I_d3ATTr< zCQB@a2%`;)!@y*T#S>w4V2KzQ9XK#)9C|Je1@k3%9OfWQ{fQqA3-b}c8^C!AK8+hj z2QWAo9e59l2t1w$^AUIg0`4OSD7cRxpy56OxLp_> z1Uy`y2?V&0AR^#Cf{29cDG?3lDG`H%=^7D-hT=j15fmzO0t$KXw>I0(&u$d>?; zVc32kkAmt80gb^xb%TJ$!R!clXP8bBfDJ0v?5d>OBFEA;NeMj0?UF1aByQc;Z0{ z_y^8JG!8~D5lw{2gNQ+5pmY#1XqYV!F$b9o7Rg8?rFh2aozIzXNS;{nKXU^v6`93%?lIq)-x zP~V9}1HTK!4~;=X^Cqwku2&%4h330J#nA_Cf8pg9c^1Ka_Wr$7xbP#=LkFc1iBSR|;LU@!tSrT{ZS z5}~pLEP&P;U>z3b>u|s!KzWJ-xIpp4f%FtAa~$xoP@TkqkPM|4^Z;P~6x4ap7!Rn$ zKtNqmee194XlIpEl>y| z3VtqJMqnKt>f2F3?P0tE<_7JdfOUX42reMTL;VJ5+<-<1Y#k^-U@$y1-v#|m1dR8< zVxaa5)?uKvDS#26{sjeG6EqG27)auvxPV$0Ds#|zKtpO05PX55!|o+Q^EFUif=3OZ z>p-yq)kzRiV7h^V*M2CFN5JF(@(8Gp1&u?PuS21LLxu7l1zZ>uKh#090D?2f?%`*E z0uHJNC{Xr5d4(e4pm7F7Mp&;8z+m|^fWi7Xpuh&%Ed)Q1t-Kj8@;Z=Mzu(M-%WY zts{6^7CdEZ?QU`K&H;G-R{okK3S((b1W7&?X$Cq+8Rb^iao c!VtVWL*wLZ;^_R>+Y-Pf(D3moTvDX@KL$w(SpWb4 literal 0 HcmV?d00001 diff --git a/include/sys/wait.h% b/include/sys/wait.h% deleted file mode 100644 index fdbae9a3..00000000 --- a/include/sys/wait.h% +++ /dev/null @@ -1,37 +0,0 @@ -/* wait.h dummy added by Nick, as UZI180 implements wait(), not waitpid() */ - -#ifndef _SYS_WAIT_H -#define _SYS_WAIT_H - -/* Bits in the third argument to `waitpid'. */ -#define WNOHANG 1 /* Don't block waiting. */ -#define WUNTRACED 2 /* Report status of stopped children. */ - -/* Everything extant so far uses these same bits. */ -/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ -#define WEXITSTATUS(status) (((status) & 0xff00) >> 8) - -/* If WIFSIGNALED(STATUS), the terminating signal. */ -#define WTERMSIG(status) ((status) & 0x7f) - -/* If WIFSTOPPED(STATUS), the signal that stopped the child. */ -#define WSTOPSIG(status) WEXITSTATUS(status) - -/* Nonzero if STATUS indicates normal termination. */ -#define WIFEXITED(status) (((status) & 0xff) == 0) - -/* Nonzero if STATUS indicates termination by a signal. */ -#define WIFSIGNALED(status) (((unsigned int)((status)-1) & 0xFFFF) < 0xFF) - -/* Nonzero if STATUS indicates the child is stopped. */ -#define WIFSTOPPED(status) (((status) & 0xff) == 0x7f) - -/* Nonzero if STATUS indicates the child dumped core. */ -#define WCOREDUMP(status) ((status) & 0200) - -/* Macros for constructing status values. */ -#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) -#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) - -#endif - diff --git a/lib/c0b.rst b/lib/c0b.rst index 10fed4b9..7f0dac42 100644 --- a/lib/c0b.rst +++ b/lib/c0b.rst @@ -61,9 +61,9 @@ 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 + 0000000E 41 86 64 defw s_UDATA0 ; e_udata + 00000010 84 88 65 defw s_CSTACK ; e_stack + 00000012 84 98 66 defw e_CSTACK ; e_break 67 .else 68 jp __init 69 .endif @@ -98,11 +98,11 @@ 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) + 00008101 ED 53 41 86 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) + 00008106 ED 43 43 86 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 + 0000810B 22 45 86 105 ld (environ),hl ; vendor _environ 106 .else 107 ld ix,0 108 add ix,sp @@ -118,9 +118,9 @@ 118 .endif 119 00000001 120 .if 1 - 0000810E 21 6E 40 121 ld HL,LWRD main ; banked call to _main() + 0000810E 21 9C 6F 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 + 00008113 CD 19 82 123 call ?BANK_CALL_DIRECT_L08 124 .else 125 call main ; vendor _main ; non-banked call to _main() 126 .endif @@ -128,9 +128,9 @@ 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 + 00008117 21 AE 4C 131 ld HL,LWRD exit ; banked call to _exit() + 0000811A 3E 01 132 ld A,BYTE3 exit + 0000811C C3 19 82 133 jp ?BANK_CALL_DIRECT_L08 134 .else 135 jp exit ; vendor _exit ; non-banked call to _exit() 136 .endif @@ -291,14 +291,14 @@ 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 + 00008641 294 _argc: defs 2 ; vendor __argc + 00008643 295 _argv: defs 2 ; vendor __argv + 00008645 296 environ: defs 2 ; vendor _environ + 00008647 297 errno: defs 2 ; vendor _errno + 00008649 298 __cleanup: defs 3 ; oopsy 2 ; vendor ___cleanup 299 300 rseg CSTACK - 00008165 301 defs E_STACK_SIZE + 00008884 301 defs E_STACK_SIZE 302 303 ; ----------------------------------------------------------------------------- 304 diff --git a/relnotes/20030704.txt b/relnotes/20030704.txt new file mode 100644 index 00000000..ce151d17 --- /dev/null +++ b/relnotes/20030704.txt @@ -0,0 +1,178 @@ +HYTECH-INTERNATIONAL BV +UNIFIED TESTRELEASE 030704SD (REVISED!!) + +MANIFEST + +-rw-r--r-- 1 Administ mkpasswd 11437595 Jul 4 17:58 cygrel.zip +-rw-r--r-- 1 Administ mkpasswd 15704968 Jul 4 17:57 cygwin.zip +-rw-r--r-- 1 Administ mkpasswd 3544 Jul 5 14:02 db.h +-rw-r--r-- 1 Administ mkpasswd 936 Jul 4 18:29 minmount.reg +-rw-r--r-- 1 Administ mkpasswd 951 Jul 5 14:08 mknbat-b.bat +-rw-r--r-- 1 Administ mkpasswd 950 Jul 5 14:08 mknbat-l.bat +-rw-r--r-- 1 Administ mkpasswd 589 Jul 5 14:08 n.bat +-rw-r--r-- 1 Administ mkpasswd 10832 Jul 5 13:55 n.ucp +-rw-r--r-- 1 Administ mkpasswd 106651 May 28 16:57 uzboot.gz +-rw-r--r-- 1 Administ mkpasswd 12531481 Jul 4 17:12 uzi.zip + +INTRODUCTION + +This unified release is supposed to tie together the work done by Nick, Rob B. +and Joost over the last few months, and give us a (beta) platform to develop on +for the next few months. Nick has taken Rob B's latest uzi.zip (030702SD), and +done a few cleanups. Nick has added Joost's latest patches and compiled them. + +Please note that Joost's "grlogin" is not executed by default. This change is +meant to make it easier for Rob B's and Nick's development. Joost, if you want +to run "grlogin", edit "c:\uzi\bin\inittab.txt" and uncomment the last line. I +noticed that Rob's account doesn't run "/bin/test" by default, so use your own. + +Please note that Nick has made a few decisions wrt. the new "db" package. The +flash card building scripts have been updated to install "db" into the system. +To test the database, log in as root and execute "db", then at SQL> type this: + SEL "*" FR test +Nice work Joost!! At the moment, only the "test" table is loaded. Is this OK? + +** LATE BREAKING NOTE: New uzi.zip incorporating the changes mentioned below!! + +** LATE BREAKING NOTE: "c:\uzi\bin\n.ucp" HAD A BUG IN IT, SOME DUPLICATES OF +THE COMMANDS FROM "c:\uzi\bin\appinst.ucp", SO PLEASE APPLY "n.ucp" ON TOP!!!! + +** LATE BREAKING NOTE: "c:\uzi\src\db\db.h" IS REVISED ACCORDING TO JOOST'S +SUGGESTION, "#ifdef INTEL" IS REVISED TO "#ifndef ZILOG" OR "#else", PLS ADOPT! + +** LATE BREAKING NOTE: "c:\uzi\src\db\n.bat" HAD WRONG OPTIMIZATION SETTINGS, +SO PLEASE APPLY "n.bat" ON TOP, AND RECOMPILE THE DATABASE BY RUNNING THE FILE. + +** LATE BREAKING NOTE: "c:\uzi\src\bin\mknbat-b.bat" HAD WRONG OPTIMIZATION +SETTINGS (AND WARNINGS STUPIDLY DISABLED) SO PLEASE ADOPT THIS FILE ON TOP!!!! + +** LATE BREAKING NOTE: "c:\uzi\src\bin\mknbat-l.bat" HAD WRONG OPTIMIZATION +SETTINGS (AND WARNINGS STUPIDLY DISABLED) SO PLEASE ADOPT THIS FILE ON TOP!!!! + +** LATE BREAKING NOTE: "c:\uzi\bin\uzboot.gz" HAD ROB'S LATEST EXPERIMENTAL +CHANGES IN IT, BUT THIS MAY HAVE BEEN A MISTAKE. TO REVERSE THE CHANGE PLEASE +INSTALL "uzboot.gz" ON TOP (THIS CAME FROM ROB'S 030528SD INITAL TESTSYSTEM). +AFTER INSTALLING "uzboot.gz" RUN "c:\uzi\bin\n.bat" TO REBUILD THE CARD, BUT DO +NOT RUN "c:\uzi\bin\mkboot.bat" BECAUSE THIS WILL REGENERATE THE "uzboot.gz"!! +FURTHER NOTE: AFTER DOWNLOADING "uzboot.gz" RUN "gunzip --test" ON IT, IF YOU +SEE NO MESSAGES THEN THE FILE DOWNLOADED OK. IF ANY "crc error", GET IT AGAIN! + +DETAILS OF CHANGES TO FLASH CARD + +A few of the files loaded into the flash card have changed in this release, and +there are a couple of extra directories as well. The changes are as follows: + +1. Deleted the user "90". This user had only been present as a compatibility +measure while waiting for Joost's latest "login.c". Please log in as the users +"downingn", "morsinkj" or "buijsr". We also have Rob B's new "tsys" user. + +2. There is now a directory "/usr/db" which Joost is using for database files. +This is done by putting a "mkdir /db" command into "appinst.ucp". Since the +directory "/db" is made on the flash card, and the card is mounted on "/usr", +the net effect is a directory reachable via the path "/usr/db". Since this is +on the flash card, access will be slower, but the file is transportable between +terminals by removing the flash card and inserting it into some other terminal. + +3. In the flash card building directory "c:\uzi\bin" there is a new subfolder +called "c:\uzi\bin\db". This contains the files "test.DAT" and "test.TBL" that +are eventually accessible at the terminal level via the path "/usr/db". The +script "appinst.ucp" is hard coded to grab the two files from "c:\uzi\bin\db". +In the folder "c:\uzi\src\db" the new "n.bat" has commands to put them there. + +4. When building the flash card (generally by running "c:\uzi\bin\n.bat" or +"c:\uzi\bin\appinst.bat"), we normally copy the flash card image onto the card. +This is done with a command such as "copy uzidisk.dat e:\". Nick has revised +this to "copy uzidisk.dat %FLASHCARDPATH%" for the new unified release. This +shoul be more convenient, but you will have to set up your system by clicking: + Right-click "My Computer" + Click "Properties" + Click "Advanced" + Click "Environment Variables" + In the top panel (user section), click "New" + Variable name should be: FLASHCARDPATH + Variable value should be: E:\ (or whatever) + Click "OK". +Finally you should exit all command windows you are running, because they will +not have received the change. Click "Start -> Run" and type "cmd.exe", and the +new shell will have the new environment variable. Run "sh.exe" if you prefer. + +DETAILS OF CHANGES TO SOURCE FOLDERS + +1. In "c:\uzi\src\bin" we now have some extra compile time utilities. These +are mostly "cygwin" binaries so they may be duplicates of the binaries you have +already in "c:\cygwin\bin" or "c:\cygwin\usr\bin". Please set up your paths so +that you get your utilities from "c:\uzi\src\bin" by default. That way we are +all using exactly the same "cygwin" version for the most critical steps, so we +should all get the same result if we need to rebuild everything from scratch. + +2. A short list of the new commands that you can use in your compile scripts: + diff.sh (runs diff.exe with Hytech preferred options) + diffdir.sh (runs diff.exe with recursion and redirected output) + diff.exe (compares files and outputs differences) + sed.exe (stream editor for simple text based transformations) + cat.exe (lets you concatenate files, useful for stream editing) + sh.exe (lets you execute shell fragments from your makefiles) + d2u.exe (converts text files from DOS to Unix line endings) + u2d.exe (converts text files from Unix to DOS line endings) + patch.exe (lets you apply the results of "diff.sh" to some file) + cproto.exe (generates function prototypes by scanning 'C' source) + indent.exe ('C' source code beautifier, for Nick's experiments) + gzip.exe (creates the "uzboot.gz" self extracting "bomb" file) + gunzip.exe (might be useful for troubleshooting the "uzboot.gz") + xxd.exe (weird and wonderful hex dump/stream editor utility) + +3. Removed "c:\uzi\src\bin\cr.exe" since it was duplicating the function of +"d2u" and "u2d". The new utilities should be more powerful and more standard. + +4. Cleaned up "c:\uzi\src\font" and "c:\uzi\src\mkfont" since Nick and Rob B. +were in a big hurry and didn't apply the patches properly in Rob B's version. +Fixed it by following the instructions supplied with the "uzipatch.zip" files. + +5. Removed *%, *.org and *.org% everywhere. These are available from Nick if +you really need them, or else you could easily recover them from 030702SD! + +6. Removed "avrsample" and "avrsample.old" and "nicktemp" from "c:\uzi\src". +These were halfway experiments and Nick has now resolved some issues, so please +wait until Nick re-introduces the AVR-GCC stuff with the preferred path names. +Removed "avr_make" and "avr_make2" from "c:\uzi\src\bin" (should be "makedir"). + +7. Re-added "c:\uzi\src\mkutil\make-3.80". I wasn't sure whether we should be +building our own "make" utility from the publicly available "gnu" source, but I +have decided we should do this. There is a subtle difference between the file +"c:\uzi\src\bin\make.exe" and your possible file "c:\cygwin\bin\make.exe". The +former is built natively for Windows and does not require "cygwin1.dll". This +may be better. For now, please try to use the native Windows version! Nick is +working on a native Windows version of "sh.exe". This may resolve a few bugs. + +8. Created the new folder "c:\uzi\src\db" which has Joost's "db.zip" contents. +Nick has added a few build scripts, these were created by following the steps: + mknbat-b db + mklink-b db +Edit "n.bat" and copy out the first 5 lines or so, ie. the lines which compile +"db.c". In the new copy change "db" to "main". It will now compile both. The +linker script "db.lnk" needs the addition of a new line "main" before "db". I +also aded some "copy" commands to put the compiled files under "c:\uzi\bin". + +9. Updated the folder "c:\uzi\src\wnd" with Joost's "wnd.zip" contents. This +has been cleaned up by Joost with the removal of a few old source backup files. +Nick has edited "wnd.c" (again) to remove a flushing of the input buffer, as it +corrupts the continuity of the testscript if we flush any testsystem data. The +software has been compiled, by running "m.bat" and "t.bat", and it expects the +new fontfiles, so Nick has copied "apibus$.hfm" over "apibus.hfm". Very neat!! + +DETAILS OF THE OFFICIAL HYTECH CYGWIN PACKAGE + +1. For perfectly repeatable results, and to save people time downloading files +from the "cygwin" website, Nick has put together a package of the latest cygwin +available at the time of writing. This is available in two forms. Firstly you +could unpack "cygwin.zip" into a directory called "c:\cygwin" and use it. This +has been prepared by Nick for ease of installation. If you take this route, an +extra command "regedit minmount.reg" must be executed, to initialise "cygwin". + +2. If you want to update or upgrade the package then you should download the +"cygrel.zip" instead. This contains the original materials downloaded from the +"cygwin" website, plus a script "minsetup.sh" by Nick which unpacks the files. +To repeat the steps followed by Nick, just unpack "cygrel.zip" into a directory +"c:\cygrel", change directory to "c:\cygrel" and execute "sh.exe minsetup.sh". +This creates a "c:\cygrel\cygwin" folder that then needs to be moved to "c:\". + diff --git a/src/avrsample.old/aaa b/src/avrsample.old/aaa deleted file mode 100644 index f3c95bd5d22196cd5b5581f49919975bf6d15375..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72407 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 VXZP8CcAro9{D1R;It>6|1OT`e&v^g< diff --git a/src/avrsample.old/avr_make b/src/avrsample.old/avr_make deleted file mode 100644 index eace73ec..00000000 --- a/src/avrsample.old/avr_make +++ /dev/null @@ -1,68 +0,0 @@ -# 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% deleted file mode 100644 index 682da205..00000000 --- a/src/avrsample.old/avr_make% +++ /dev/null @@ -1,68 +0,0 @@ -# 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 deleted file mode 100644 index e203f007..00000000 --- a/src/avrsample.old/hello.c +++ /dev/null @@ -1,60 +0,0 @@ -/* 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 deleted file mode 100644 index 8290ef0588deecf8ee7ba72433bd225dba561fe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/avrsample.old/hello.h b/src/avrsample.old/hello.h deleted file mode 100644 index 62e13902..00000000 --- a/src/avrsample.old/hello.h +++ /dev/null @@ -1,7 +0,0 @@ -/* 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 deleted file mode 100644 index f5889074..00000000 --- a/src/avrsample.old/hello.hex +++ /dev/null @@ -1,14 +0,0 @@ -: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 deleted file mode 100644 index 827574ce..00000000 --- a/src/avrsample.old/hello.lst +++ /dev/null @@ -1,325 +0,0 @@ -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 deleted file mode 100644 index d64094d1..00000000 --- a/src/avrsample.old/hello.map +++ /dev/null @@ -1,311 +0,0 @@ -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 deleted file mode 100644 index ba38dfb088b83d582f332e654b89bb5d58702805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/avrsample.old/hello.s b/src/avrsample.old/hello.s deleted file mode 100644 index 8944fb73..00000000 --- a/src/avrsample.old/hello.s +++ /dev/null @@ -1,228 +0,0 @@ - .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 deleted file mode 100644 index 568687399ad11a000ca48f17576222aa89a1237f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33194 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 HGU5LKe5Bwj diff --git a/src/avrsample.old/ispd.exe b/src/avrsample.old/ispd.exe deleted file mode 100644 index 4963ef02fae4f79c13be35bb76c9455489555694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69514 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 diff --git a/src/avrsample.old/libc/calloc.c b/src/avrsample.old/libc/calloc.c deleted file mode 100644 index 93f72462..00000000 --- a/src/avrsample.old/libc/calloc.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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 deleted file mode 100644 index 0e174d41..00000000 --- a/src/avrsample.old/libc/calloc.s +++ /dev/null @@ -1,82 +0,0 @@ - .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 deleted file mode 100644 index f52c4583..00000000 --- a/src/avrsample.old/libc/fdevopen.c +++ /dev/null @@ -1,102 +0,0 @@ -/* 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 deleted file mode 100644 index 1a8df297..00000000 --- a/src/avrsample.old/libc/fdevopen.s +++ /dev/null @@ -1,139 +0,0 @@ - .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 deleted file mode 100644 index dfe4d2c5..00000000 --- a/src/avrsample.old/libc/gcrt1.S +++ /dev/null @@ -1,177 +0,0 @@ -/* 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 deleted file mode 100644 index bf13aa37..00000000 --- a/src/avrsample.old/libc/gcrt1.i +++ /dev/null @@ -1,157 +0,0 @@ -# 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 deleted file mode 100644 index 29a8978a..00000000 --- a/src/avrsample.old/libc/macros.inc +++ /dev/null @@ -1,216 +0,0 @@ -/* 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 deleted file mode 100644 index 6912b1e5..00000000 --- a/src/avrsample.old/libc/malloc.c +++ /dev/null @@ -1,420 +0,0 @@ -/* - * 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 deleted file mode 100644 index 610f133a..00000000 --- a/src/avrsample.old/libc/malloc.s +++ /dev/null @@ -1,600 +0,0 @@ - .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 deleted file mode 100644 index cc049cfb..00000000 --- a/src/avrsample.old/libc/memset.S +++ /dev/null @@ -1,78 +0,0 @@ -/* 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 deleted file mode 100644 index f05cb503..00000000 --- a/src/avrsample.old/libc/memset.i +++ /dev/null @@ -1,86 +0,0 @@ -# 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 deleted file mode 100644 index 16a8fbef..00000000 --- a/src/avrsample.old/libc/stdio_private.h +++ /dev/null @@ -1,67 +0,0 @@ -/* 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 deleted file mode 100644 index 71214fd4..00000000 --- a/src/avrsample.old/makefile +++ /dev/null @@ -1,38 +0,0 @@ -# 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% deleted file mode 100644 index 0dc1ef71..00000000 --- a/src/avrsample.old/makefile% +++ /dev/null @@ -1,39 +0,0 @@ -# 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 deleted file mode 100644 index 2ecd204f..00000000 --- a/src/avrsample.old/n.bat +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 2ab5e80c..00000000 --- a/src/avrsample.old/nick +++ /dev/null @@ -1,123 +0,0 @@ -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 deleted file mode 100644 index 43c4d94d..00000000 --- a/src/avrsample.old/r.bat +++ /dev/null @@ -1 +0,0 @@ -revava -e hello.hex -o hello.s diff --git a/src/avrsample.old/x.bat b/src/avrsample.old/x.bat deleted file mode 100644 index fbce676a..00000000 --- a/src/avrsample.old/x.bat +++ /dev/null @@ -1 +0,0 @@ -avr-gcc -mmcu=at90s4433 -S hello.c diff --git a/src/avrsample/a.sh b/src/avrsample/a.sh deleted file mode 100644 index f5282def..00000000 --- a/src/avrsample/a.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/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% deleted file mode 100644 index f5282def..00000000 --- a/src/avrsample/a.sh% +++ /dev/null @@ -1,7 +0,0 @@ -#!/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 deleted file mode 100644 index 0748a87fcc6761cccde9b41685d5089b72bbad2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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 VXZP8CcAro9{D1R;It>6|1OT`e&v^g< diff --git a/src/avrsample/avr_make b/src/avrsample/avr_make deleted file mode 100644 index 261036ed..00000000 --- a/src/avrsample/avr_make +++ /dev/null @@ -1,68 +0,0 @@ -# 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% deleted file mode 100644 index 82c4ddbb..00000000 --- a/src/avrsample/avr_make% +++ /dev/null @@ -1,68 +0,0 @@ -# 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 deleted file mode 100644 index add0fd10..00000000 --- a/src/avrsample/hello.c +++ /dev/null @@ -1,118 +0,0 @@ -/* 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% deleted file mode 100644 index 0f3b6e65..00000000 --- a/src/avrsample/hello.c% +++ /dev/null @@ -1,116 +0,0 @@ -/* 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 diff --git a/src/avrsample/hello.s b/src/avrsample/hello.s deleted file mode 100644 index dbaf1a9a..00000000 --- a/src/avrsample/hello.s +++ /dev/null @@ -1,416 +0,0 @@ - .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 deleted file mode 100644 index 4a9cb3bd6f894a86151de22710fddba3c091da66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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` diff --git a/src/avrsample/io.com b/src/avrsample/io.com deleted file mode 100644 index 568687399ad11a000ca48f17576222aa89a1237f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33194 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 HGU5LKe5Bwj diff --git a/src/avrsample/ispd.exe b/src/avrsample/ispd.exe deleted file mode 100644 index 4963ef02fae4f79c13be35bb76c9455489555694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69514 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 diff --git a/src/avrsample/libc/calloc.c b/src/avrsample/libc/calloc.c deleted file mode 100644 index 93f72462..00000000 --- a/src/avrsample/libc/calloc.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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 deleted file mode 100644 index 0e174d41..00000000 --- a/src/avrsample/libc/calloc.s +++ /dev/null @@ -1,82 +0,0 @@ - .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 deleted file mode 100644 index f52c4583..00000000 --- a/src/avrsample/libc/fdevopen.c +++ /dev/null @@ -1,102 +0,0 @@ -/* 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 deleted file mode 100644 index 1a8df297..00000000 --- a/src/avrsample/libc/fdevopen.s +++ /dev/null @@ -1,139 +0,0 @@ - .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 deleted file mode 100644 index dfe4d2c5..00000000 --- a/src/avrsample/libc/gcrt1.S +++ /dev/null @@ -1,177 +0,0 @@ -/* 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 deleted file mode 100644 index bf13aa37..00000000 --- a/src/avrsample/libc/gcrt1.i +++ /dev/null @@ -1,157 +0,0 @@ -# 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 deleted file mode 100644 index 29a8978a..00000000 --- a/src/avrsample/libc/macros.inc +++ /dev/null @@ -1,216 +0,0 @@ -/* 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 deleted file mode 100644 index 6912b1e5..00000000 --- a/src/avrsample/libc/malloc.c +++ /dev/null @@ -1,420 +0,0 @@ -/* - * 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 deleted file mode 100644 index 610f133a..00000000 --- a/src/avrsample/libc/malloc.s +++ /dev/null @@ -1,600 +0,0 @@ - .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 deleted file mode 100644 index cc049cfb..00000000 --- a/src/avrsample/libc/memset.S +++ /dev/null @@ -1,78 +0,0 @@ -/* 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 deleted file mode 100644 index f05cb503..00000000 --- a/src/avrsample/libc/memset.i +++ /dev/null @@ -1,86 +0,0 @@ -# 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 deleted file mode 100644 index 16a8fbef..00000000 --- a/src/avrsample/libc/stdio_private.h +++ /dev/null @@ -1,67 +0,0 @@ -/* 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 deleted file mode 100644 index eda5bc89..00000000 --- a/src/avrsample/makefile +++ /dev/null @@ -1,39 +0,0 @@ -# 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% deleted file mode 100644 index 911d00aa..00000000 --- a/src/avrsample/makefile% +++ /dev/null @@ -1,39 +0,0 @@ -# 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 deleted file mode 100644 index 2ecd204f..00000000 --- a/src/avrsample/n.bat +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 556d7779..00000000 --- a/src/avrsample/n.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -avr-gcc -mmcu=at90s4433 -Wl,--oformat,ihex hello.c -o hello.hex diff --git a/src/avrsample/nick b/src/avrsample/nick deleted file mode 100644 index 2ab5e80c..00000000 --- a/src/avrsample/nick +++ /dev/null @@ -1,123 +0,0 @@ -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 deleted file mode 100644 index b4b3ac85..00000000 --- a/src/avrsample/out.s +++ /dev/null @@ -1,187 +0,0 @@ -#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 deleted file mode 100644 index 43c4d94d..00000000 --- a/src/avrsample/r.bat +++ /dev/null @@ -1 +0,0 @@ -revava -e hello.hex -o hello.s diff --git a/src/avrsample/r.sh b/src/avrsample/r.sh deleted file mode 100644 index 43c4d94d..00000000 --- a/src/avrsample/r.sh +++ /dev/null @@ -1 +0,0 @@ -revava -e hello.hex -o hello.s diff --git a/src/avrsample/x.bat b/src/avrsample/x.bat deleted file mode 100644 index fbce676a..00000000 --- a/src/avrsample/x.bat +++ /dev/null @@ -1 +0,0 @@ -avr-gcc -mmcu=at90s4433 -S hello.c diff --git a/src/bin/avr_make b/src/bin/avr_make deleted file mode 100644 index d4049a00..00000000 --- a/src/bin/avr_make +++ /dev/null @@ -1,63 +0,0 @@ -# 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 deleted file mode 100644 index 3f64dada..00000000 --- a/src/bin/avr_make2 +++ /dev/null @@ -1,64 +0,0 @@ -# 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/bmp2txt.exe b/src/bin/bmp2txt.exe index 0b1ec454b48f02e88a66cf34467bd349ebf4b5ad..017ab5711be49e21bce0339941d202573d9595e1 100644 GIT binary patch delta 14496 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 delta 19422 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 diff --git a/src/bin/cat.exe b/src/bin/cat.exe new file mode 100644 index 0000000000000000000000000000000000000000..909716b4eff20d12184703426f8d01bd2f4efe31 GIT binary patch literal 17408 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 literal 0 HcmV?d00001 diff --git a/src/bin/chs2cmd.exe b/src/bin/chs2cmd.exe index c2d1b243cc4d251438614398b6212e992b1f7e3d..8185fe690ba64c948e3c4189fae0bd03f5102bf1 100644 GIT binary patch delta 11642 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 diff --git a/src/bin/cproto.exe b/src/bin/cproto.exe new file mode 100644 index 0000000000000000000000000000000000000000..b8500b3e51c90af7ff24fc7d71602587a95c7f92 GIT binary patch literal 172230 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%0DH_zOMDekNQZc=(=Wg=O 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 literal 0 HcmV?d00001 diff --git a/src/bin/cr.exe b/src/bin/cr.exe deleted file mode 100644 index dccde719026f62b465a43be3ebdb542b70258e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73769 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 Ol3!SsKBwsW-oF71#mdP5 diff --git a/src/bin/cygpopt-0.dll b/src/bin/cygpopt-0.dll new file mode 100644 index 0000000000000000000000000000000000000000..27fe24c2ddf686fca4cf2e0ff702585268582ebf GIT binary patch literal 22528 zcmeHv4|G)3wfC7n36n4|g9M2haexGa7|f6WN%%L(WCCgelY}IwM2Tb|!4P6{F9sw! za5Ku~I(DqB+SXe6>epJ^zS2HhqwRwLHUn+nE5){kf^Afuz3JpBl{Ai+I`6m7y)y}F z-+C6;_xi2%Zq}J|?)kINKKtym&pvyfn~GaQ%)}ToBgA5i^&qCl#ee_nA3usGU-Qyr z_I%2}&g?Oi|Le@PP0bySw)SnC+Z(nzHa4`jZWA1L`W)?ItE0KqQM#tuv2|OcZ~ml7 zshK)xuZOX6Lo)lqka1bOw*fYJ)TMLc4V+*gmQ$7 zpWgY+T0Kr1(1_zkb1?345xjO^%eIX=jh;p!;a7`r@zZ

    ;Jy}qfnqm{Dty-zK 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®H43t7{WaWQD*w6#&AA}| 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ŜUWXj>DcH!&f@WOWC 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 LxK#RQ{rmp{YL%*b literal 0 HcmV?d00001 diff --git a/src/bin/d2u.exe b/src/bin/d2u.exe new file mode 100644 index 0000000000000000000000000000000000000000..d08a70f4333a4ecf71d06b9ccad0770d029866f5 GIT binary patch literal 17408 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 z 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 $1-$2.diff diff --git a/src/bin/gunzip.exe b/src/bin/gunzip.exe new file mode 100644 index 0000000000000000000000000000000000000000..94bac19a1ec07938e8867a35aa3e66e8d7302a5a GIT binary patch literal 59392 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⩔XBFqHP2vN{y!9vNTv#sO{xoDgpAxWj;)%Nu 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 literal 0 HcmV?d00001 diff --git a/src/bin/gzip.exe b/src/bin/gzip.exe new file mode 100644 index 0000000000000000000000000000000000000000..94bac19a1ec07938e8867a35aa3e66e8d7302a5a GIT binary patch literal 59392 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⩔XBFqHP2vN{y!9vNTv#sO{xoDgpAxWj;)%Nu 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 literal 0 HcmV?d00001 diff --git a/src/bin/hfmdump.exe b/src/bin/hfmdump.exe index 366ccf9ab4a54f2639cdbad2952f75e28ba01841..0931428d9f9407fedea82810c9989faa6d56820a 100644 GIT binary patch delta 13074 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 delta 17797 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 E2VR^Q^8f$< delta 21892 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 z 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μuYYC)NDl=*RW407FxFyj7Y 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 delta 18501 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�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 Q+hXtkpUMigIAPKM0ozmxvH$=8 delta 6958 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 diff --git a/src/bin/mknbat-b.bat b/src/bin/mknbat-b.bat index d0c375be..fdc1f7e2 100644 --- a/src/bin/mknbat-b.bat +++ b/src/bin/mknbat-b.bat @@ -1,6 +1,6 @@ @if .%1==. goto failure -@echo iccz80 -S -w -mb -v1 -z -A -I..\..\include\ %1>n.bat +@echo iccz80 -mb -v1 -s9 -A -I..\..\include\ %1>n.bat @echo @if errorlevel 1 goto failure>>n.bat @echo del %1.r01>>n.bat @echo as-z80 -l -o %1.s01>>n.bat diff --git a/src/bin/mknbat-l.bat b/src/bin/mknbat-l.bat index 921a0bd6..2214ffde 100644 --- a/src/bin/mknbat-l.bat +++ b/src/bin/mknbat-l.bat @@ -1,6 +1,6 @@ @if .%1==. goto failure -@echo iccz80 -S -w -ml -v1 -z -A -I..\..\include\ %1>n.bat +@echo iccz80 -ml -v1 -s9 -A -I..\..\include\ %1>n.bat @echo @if errorlevel 1 goto failure>>n.bat @echo del %1.r01>>n.bat @echo as-z80 -l -o %1.s01>>n.bat diff --git a/src/bin/patch.exe b/src/bin/patch.exe new file mode 100644 index 0000000000000000000000000000000000000000..254019601576f7034067fb312bff4e662fdb3f69 GIT binary patch literal 85504 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 literal 0 HcmV?d00001 diff --git a/src/bin/sed.exe b/src/bin/sed.exe new file mode 100644 index 0000000000000000000000000000000000000000..cd61f5df4a8efd4681c4c7898c7d714efc63af11 GIT binary patch literal 92160 zcmeFa4R{pQ**89$EU<*dSu`MOz*U0~1tfyiC7_$c4Il;)i1~5Mzo4TH7eFwCvBtH5W$l7_d921cN5gd=l{Rn z|HpN`Tx@pceBS3i_t&}4ea;r%x>-q86vd5CZ?B?k$2b24#ow>~Q;X~~&VTj{<>|qH zzF@oS`afT=U}aggzp|=gMODda|I(83@(Rs=d#S%FT<$L`_g{O%eE;f-Wu+5`4o%Cn zo1Pm|l*FkzvN4oOL=mjeEfg%??kP1orVs_EdcZch+|C*LV&VFQIQ ztpnK#$ByACxAGT1@UbR+(3?wika{;OqsWwJei z8{kOsAY)12@i_xo|6>dk=^sQoJq=1_u2SEqxemNpb4qK{|>zwL&(3ufIgr+DJTiT=B*msXWkY7;8TSKT?G zZ25%piU}3k%F?O{GQGxsTUmK!SevlCY*i^Mq^0@&6UxW?Crr2_Tvn>_p&D7`8q)jy zs}5IIR+Uy)`%A)F#p)8RY$*g-S-DnLzQSLz++SIuX{A-={_4t-rKN1O)GzyFo2BbS z)v}86=`!*3=1Z0>^8-@5l3%M3Z%ZpyuP!NHR?TtPBQ@_itSgGuE6wQ ziU7nif!cl(AFd|iWv(Bk!>dZFkl@Uy7+GTGCZ>TT{S&I$baiQENmYqPa_ILDGf-W& zthCC;O-Z%iDeFfC5G=qgDfc72#9s{x!{l(%%F4qP;p)?yTU7xftk$YZOIASvLm8Unx z!B>Pe@ReWoSPku6g|y{Bnq7Rtgq5YMDg_pnl~scfIAgE@L@Fp82rVPiO}L4muPLn( z^x!n>yqA?@CdqrCm3XDJSORGQz+C;xUch#!2s?yaZ zKq;oeX#mp)Jd~HL2EBvVlJJ>B!UxnzNi3Tt$r&t=1Yfm=v6fUVvkL<#O!P9yE-2ak<})fKBt z*Mbg9(W%H>vSfbv_HUIg)utkMd0FWy0HEAnQGORj99&Tzo>)<}La8oYrr1(k$nTMQ z_;Vxd(TjWPyS1SW4|U`!#?4-9NOX;2zj&x8e9#l)FNcJOVrb|>(n@`Ac)F0;IQbp0HWSSAA_2Y3RK_v=>lj2A+ zB}v#QLL(?r9bjaVm6ZfnDK=Fqq+#WtmwM42(C2+Y6C@6h;|>NI7_#7Psc{EErN ztfQDPqCpMIt4cAU;I_5sJqL}+>8!2@S1m0SvTtcc<(;HU$Pfr*a8ETzc7dGUYX6)Y z(onOiq+Gi*2Q;bqOTizaUSVin{>z|uD zZ^5kmqU&?#`R5kR!-zxU(`?lxM5gAiEUj8y2GzLCfBT*ORV8adHJhW_#Y#Rvsw!Kt zQuB|?&+=bBY0_kW0mm`l9*4gGLJ8ssz>fFNDqlKLi9UTXCpNlsEWbcs*^M{Nk97JY zN4w1OkV`R&Jx17TUNl2m7$hE=5BO(RFwLDw8lmywKO402;$`tP^JV#bInyW0vUzx} zZ&V*{RJS#5c^oupo{J2aJ{Re35~nc1@lA7AG5=BEQX)OBH3MgE$*csC58OgBPPS)2 zuDX`#W{nwW8sFYYD2Z>e$}q2Ar=W#iwT^~+#JnlebG~}t-_dq&W_|5BLB*F5RFpJV4O#`kub^jk&(l?$q9mJPDl&>*` z_3e=zJ<;21z4xrh9nNvZ-ut&R%yhoKidTUuv~op59nc&&RC9-s@txonzJQL*N_1)C zd{L&`#=H3wU_@Y>qx}1&iV{aS>qXt)p?Ec~y#ZjgI9cYuCMa<(`OhWbuF@X;&~1y0 zTO4?&0A5krdeSCm$$!Ydh3uk@CoDp;&+`y3tC7l{KnmvB02Bo`v*7Ih1?OUU;1v8v zz9>kXnim2LR1(jvNdICLciFPiHJ4Ru%gV|X=MgqY{JFHM>Psrx%@u}MX=RnLtCn0a zwpuAFhf08QgP2+}eyox&JrcD1E}cWEw_y%#F<~h9VX1Q+fI6^5mab%#yT|rvp=PWS zTBlW&_?JQ-l%Ulr7y>YcsvP4J*>-P>?2IKPW5@fKEFH_vmXwWEmeh>(FRLi6E+4D; z*FrMG+_}@~xwKlD`c;|vSTqRpepv;pmn>acTG_vW!m?`Gm2rSrhZYqVPJWCV_DXrF z(;)^2;9)MpmR;r~(iART*EefPb= zOw+z)3@4a?BA7GWkEb=hXkM=XUEP+~8#tt$2TpE3AMAhqI6&pjRJXMVF*NjM1q%Cf zdIqFefn00gh(zu^L6>56^pQ6W96pc~ow-FIqTWG70-rDj+?w0+7wr&yRI>uPAqycC%1?SHW==oMi=F^o7b}0 zW>F_m<2~zuz>miWdC;d3@`_>fd=s*^vpD8M9po=Gio7>vcN;b7IYqwtM)62BG8TG3 zKQtSL#se96RClEaVu+ZNB0b+w@B0u!koy0Ept9(~pz>pU9>?bie13<|pYYjs=%TN#^HuHrPxHR4|LlEwcm2L~qXI8)I7jcwQ=e)B zf}&Gg)k7q19y|&J<`j9gGxRQ_(6h;|Q)CkjneHu1c7#dG0M+kzwR{wzP|H@0LbG7%e)46Ainu(-H zvriX!fw%PHPPJ|`avE-C*%xIUSM%}q3z{3QWs)eE)sod5cx%HzeW+-1N@fGUjpEKN zY|ni8R^TC3Z_aM4?}f=;->c`lVW{8j0ec%MdcIdb*N_-{0T?s#J&`>bf`VwTN@g`e zK1`9v)E1zrHmjv}=t{Jl5?cmrLxu(MLKBe2y4g{QMg&}Pps_J1WaPVzt70jFGJqyq zUOMYvV>Eir0aRBSXGPt$QTM&AL66cJ9E?wz(uP)H^aKSB=%bC|9wRJeV_aWE8pmN! zm{o|Ed^ehC>PQhnrur6+9j#lxOrC$r8`6u{sPUK&enxs*thcCj=eaOXCyUj(ljxCx zJez`iJd(7rk(0M+DmL+elxPiOB)dkm_!ferJ@g% z*4~Nqlxt^`@XtgW#2S#Um>*%1tf!w7{Px&pJLfj$G{VLNMMrujqIO!OXDS(EdU%rq z#pB42^b{j=YFxepCbg~#*alo`T^Sxk>9+}WrBgoqW=^;({90@RvU5UR;r+3TocXc) z2fHa|ko~vB{z1_$0bb1HESdZgle_!i^Brg}y|s^iGB52BJPjbP}a5s%i}62ARn zx?)!&X|3bgNyww@UP)nLPwjGFS6hKt6SWmkfGXy<0hitq4Z0#d8`S&GhIoc1yMA0y z(YtFe2`aaK%};XKxnHx+*KOM=S8?grhsUY&UBL2nJ}jR+2B-el`JUNtydU>_|2l2_ zPs+5|?H{nezpDSwz5bAwc?v{b!%QhWqH}&RChZ@aP zy(#jpOSmRp?TEaWIvA<7@1-gSGe7gRZz}M`dOsJyEMcqj?N)QpD%-N20d(WBA}8Ow zzz_KLKqxEbIpmlEZ)_O2jib|np_m&l6tj>&WHz6t|dcjNS_)Cv&t>k&`vr$jHfyw6nnYLJk!dp~H2@!0D~*YBajCWrASdtC3BS^9^=} z*2?FLcNjKx$cgOnQ324Fj_ap{d>oa~{RV95Lsb7G)%y)JYz&p^f26Jc_iHPq-hb!I z^nM%k{t4*)QPlTB>DPA)olmvxqSDTFYr~9zdalPPaO=5Vqrju*`e=verjus&NvQWtd;Nq-aCAE8O)cg&I*F`peT6+9RIAzS<=|mDV691^B2$ z%mBXi7GZ+EZFZrD=(Lg1qP>BWdeP46^FcQ1wt>?YsdW#dg=rUSH%1FwfgZiJ$_$*W zI?o901eV)^G`7&uAwAC>*>k;|$P5^4d$Qiq*TX=ez4j24rBSp~5AD?ReAWwb`v6p} zcV!)-iG&KGXjyVm)G0+ z)FllW5YkjF5a5d0IR|7i%8#TiOmE{lQ)$Z=7JK9rY*8+6BB#<|>VXkNU9!Tz;BGa2 z|B$9wvlgIyo)S3$%72dKPoU!cc+eLl)oEg#BY$`5h(+Q7Y75$X@s@vzQUG&SJmDvV zFh9}tU3?d-1+h*zT!`1ycI0>{o z%`ws=1Mfy9pGa84ZksaOxZN zJdgGsYh8+UVWe?@o?^X9h4*h1L;*;awiHs1xl`bKgO4GNNw76dbc@SbT}(KAo5a*^>L)9 zkWX&wL-zk*Cx$UCzF~wm6f-9PSxAVzT;lv2vl$ym47xM_Jt_$LOqZt4Yj9OqKQ|w> z&_YXW4N4T1OMj~!_%KyLfWne7OUEiz+-G#Gda1uRc9I&=P5nW&?r%eFaw8Ko;-&BW zqlZXO4o35-Ghc&TnI8Dhjz(ZL)oo;jkSAJvh$H$t!h|SNTPe8BcVJfmq1lk_5fk+7 zQoj>GaT{l1jXi!g-UpgvfQd-Yc)d-ndkmx!>Ae7pJv>BbxbzcPS!}u~O}+1Vxwv?8 zN>JH6>&l=~{QsfPFTU}=51!v7jq`ZYbN}%Vx+(z!pOfEN_QHV7chdQNH`12d^;YF1 z>USnR_wOh9y$5w!@4I$?hwZkU{+aKT|FZrc0Sq7E`^zMd{LfUJuM5fcf>{`3m z5FTwChg_6_**H{{C&!z5o$ zgM%?vDjD`=X5`oz7a;?MpPh`fu`&&2b`h!iqZ;du7(tDA1DX^LXOg(r5%~ zn!{`mdg0XQU8G%rc6U=*nKz?x%9m(?FhjGjo{G_RY(Drm0&TsI=I5}}-Krep6NAy| zb7mvzasAXL9kRb{D-f1v>`Bx$h6)Vq(>575xj_sY9l-Cl+gOS=Vk-exKU7UN%Lq<`W&Gc z>o`=X&KC2#crtF{PK-ym2Gij$080?(yMY%&63G;(VWZ}Nu~=-`AQS28wxCa1qhj6A zl#M1+krivg9665R`Itl?&{;%^MO53ZXjcF#2Ob+P3yq{B;JTp_%a_AoiM=mpTV!P0 z8RsyAG-s;Nmd0@3SF)~wGFwcbLYRt;8`1&p zxbyMe=#`K#W*c*8HfFkL3zCpxnP3`}`yvNLER2pCR(%Wy{#7ouZUM|7^NRN+t&j$= z6ta8eo4KDnD~ZL2qVb9kTnBY+gbrj2OYLYrD{iMZ8w7iC90XFy_hL8EYwU6#T_)bY{+lk($g0n0B)xVMokYkom8xLNf5 zTRdiCZLyP;%mqj@imh8~wV1%~P07tfQTopm9rJ!Tpz(xIBdKqIpHfafq2C7SPIubn~kiY~AHj4lbW@P?W&U$_vx z6+LNOd%``V)t#!iig)JJG^+OpL6|7s=KcX`}H9IvD$mb;0$I>K$+y?|;rr7@d z0x!S7M8uwxfjXjO*e+R&lCk5GsI%F`B0J++X55bqYpApJEWUx2Xkoj4J$zq10!iDm zdN@?`B0&5F!^BeC^$yUgXWSbURM5D7rwFXEh1&hZdJQONFK6}vyg>@JgeNc!34aD* znVUMe4X{V^+T)BBW6#2DeiwAw7MslH<+21#bm%ngO6r#^s<;sb8vab(=7V_H_1`x0^4266eBBQAxk%swon<))0Y@;9FB#oVv? zRKLj^n~aVf7twF%F9LXuXk(9NXA$t5EZSCqf*LX@qDbN%Bgp6@pui%}CD$&}#J&s1OuxM>w9j&Mv%!g};Ri za}5fjb20K05YVuk3L`a#QnagWT`AT!bFan}7P!rsC~b_;+l-WmNv>A!%RnP=D${}z;p8Y*zt#FNCOhPu-sAGr=N&Uxk^8& zr5PeLuzsI*PT+X;FuhydmXbGZ(WX>wM1J6ts*m9+?r}D$h5t72N%h|l9+DR^u|Zm{ z-uF3rg_H3=^0DT9HH1I^=kvb>2RGYzU4rlbu%BQ2Z*a}|IGj{QDUkEyvA=!x_egxV zrVfgwK|NxA$E&;2oYjKMm6=l4sHH|?{!M$Q1oJkf#*V^bPw)fdtMZZh5>hE~u$qI? z7c!Wbhy|EvO@3h#1r&lM(Cs(h)yS2MDb!hB%QE71O zR`ER~Ht+Pxly9sI6HoNLj+O7-EcVZ_e*zxJ-e(l~^r7RyN?XWwB3jJVzGWPqVT5w= zjW05J!z9S|;1>SfLKcKDquiedi#_`wVul3Q;#^y2p21xz=#A`&L$D|!0&b`+Apo|^f8K(UJ!zc*v;i-h{;@4a(n42 z5q$Wq@ajqttcWujr^mzF{?_3_CDzb|SN|}igz)E5qfEhzaRrwQIE}HgzdbgJZU8ux z$4V)NAQLKf?5WWx+cnY!drGZ4jOjFPONY9C2U%EesP#`WX`rDR3**`sE{Q)M70bZZ z@Dqk;7zhv@AJ)=k`@p#Qq%71D{=^u?Wj_kpK%B8z1QJ~%gFg3p*a9nX>2MgK%a1z+3h9fVKV}b68&9h=Vu?zZqx;YTR36t-U*Xq|1-f+ z)@%0sh*AsUh}zex7!$E%=hZ2vR;b1&kVG#osF*?Y&qt8 zs|RxHG2e^q$cgN=-nM)%+E$+BAGkcC?#soj%$UMiadlx1jp9#@aF0>rgju0fb~l|z z7#PZW%#%PCngbsgL-g71ti7&w+1J`Vdb3q;!-pn#zUfoKSA)fYCz>%Ru-IEQ$(Z9t zYaZ8L44kl$i->=Hv8PYhas1dD^V}9eGuCb=BN5+9`^V|eDE5gi(^0nmFoLJTXY_5B zPD1vJX4!S2Xx42McEP98<_21#8AH^%AL2pXHO$dE2!NGZ=Oh27VUZ6{=GOOWPu`$i z5qMK;=tpmTYq^B3YDTTxz?*!VNTQ|{H&Z7w64LH4sCuOVZ};8Jyv+TGslwS#P0qi5|2(3^p1L(ujj^vqgK z@Epx{8wEanzDKkIB5|WEm-J$0BG|Y=v>)K1(xP>o3=iW66XStya<3>%(ot)ufu}Gc zkZn1ny9B95zE3akB}OUebtWj4YqdfQQLxlpuQAf7bQ|kDdeI(Zu1_y&G=}Lu<3_hW z*KOSB(dT-M8@)P;-RRSieU5&ITfY;8wTGb=aFg7KF8VT3f?l&5!Tt^zJN(S}af)Fm zMUJKx-$wpOK<_cjt`m#)<_+EkX4kGy!4iB1R(4Q5;WK5-Dm0IWs=rYv)%t@QMvJl> zJzCw0RN*UGjODCQ*mh8c-hG{Q*v4!;eoe@i9xw^F)xw|GHyXw1M%WkD>bt{1smgEm zK;`gUnLR(T;S&_h5Z1>HJgft_-c6ubPMke{Kx5Ao{h)EH0&M9u=UxiA_p`qA4ugUC zU|AwVlpBX~u?jGNL*K-la5SEp2Cl3{j{%E1N? zqoB1PXK^t9+cW%%0wcw2gu~MqCHgsx;AlbbAYs}lzrdt*Ht8PBI_7$ZO2SNmJS0$Xnqw5^F-}g{G(w#Pt~P5slTq3{!eqqg z+JVzN%(50c$y5Efy#5PPmFk#K6K>wa@mDZ{o{2d4;V_!o45K4T~*Sc1B2F}HH8Ge$D8o{1neIDd(p z@8FgGT-(L7khyZB|17q4CEjBtn0UQ=dE3B=iuFL;UN!G#RWZhmcmg92M-6l~`Cpj9 zxa(mNTnnV7B>x3RMylEmuYK*l#2ec{MR z$79RE{;}U9>k^!av)S5_$J7UoG8hR8g5+THFe0_Ss~H1qC8!l-6oN1Y{$YmZeEuw# zdb?kkkHNI+uN?bTcsWh`Vw5(*UDSJAMWhStd5Bk$VisaB#webD1X0x=ZVNI9PYIvX zSDOgQAmw#(M(m&1wls>mjJ$NtQ3IW(gLbtH+CjoO`+rO@(EC)=ZfU*Lc2!2u+k zK}bFw}XGnK@@i6P5UMlQ|BhNm&X zLLiW$ASkK*`R%p8>2DDRgZY~g&{I3&_`(7+kn2_-;`w#!=X$qshugTt6L`CN2y(Iy z9zPa%-Fi1r<*6D0((O8atp1>WquY8pUO&4rCJt3N=jrVBe%NUJPS`&>eD013E#m3= z@ec%C`%Msu3%URw$cGBt`gKA-IrtRoJ1(ARlB&C^J@wscJvBD105~xCG}|rc0t?Zx zt@$1o5kEky#GkdZW@_m)rm=1_Zv{_*hTJHk)ZRT<(J~OH+YJmPi;l#4w9EQ1c|IaN z1H*qZ?g46yTy9B)I`y98cX+ajI-v;>Q)~Se>F{y5+O3ZTKVy@Pz0xa(ULT0vWE%#y zJf=zR&WzoT)J16uj%tjVG`XVh`A=xa?86&7J2``o`cbfflWa`qoX^zj>4*rbb=#2* zw5i+Fx_#;O^v zYE3P-tk%>u*56uFms{_)rdC-;lIa8Thaz+ZZ5-n^AC^WxF+vD>mq*+B@#FD)FZzmeNSi-BeZr|NM88aKjJhi}L2eM@-^KCxciJ`K`nArA$a zZ@Zuv8X;NgJ5X83I=!AD3Jpg{JP#kmBW=7j@I+ws1x6l-d=pxJ`!=&i ze^Dp^+dho8yIS`hl%!bB6-x*O&cDc=9_*%dgOZJ*53yyJ{u0H>36L^Is&2a(XF6PJ z{YQKs{s>A)&2t5HxRH`IfSl+OC~w%w`e|8vxA396B}J{TMXl}@Px#yI7T&{C+4qfJ zn5RQF?ja5YEn^+(mEs$)vpHh6feKr|z8+g-R{NJ1NUSF2vE+Y%mAJa4ok3KQ7Tt@2 zf?vs=<|=r_MQhBVVNIcXU#bfT;<3M9p^W-W&^ahx5dD*hDX=YJHh^j#-Y+N?p4W(a zB4DJQ0Am3lfF6WS)MxVTR;8;!$Mv0&ZJe8REO1=C_xnf&FO4pG291?;&Jl;}*@ zmJR@9zKPkz^cWA5XLIIy)O#mDxrx~tfQMwbvrZ5Us7ZGEF@kHXC;Q10yEJ%mH_1z% zPR?R+^y%4*?(i*G+&lz=9jTP?FWO;Wz zg?5dkZMT=0$dml=WUxQ+<5I^AKRl!NNbi0ktphL_dd1pVpUw%nRCM+qfVtz#3Yu8;!~db*9#zf%mA8 zz;F&@5iNu>r47pKQA%bp%Y&xCG~hu=weASUWnLo&+7o{ln#26hzNpTJY6ji)zY zX4Y=-DDXbW9!barKF%n{APtSjfj^AdYn~MYvdd6Tm|ox&%+kZ{WQ@97F=XRWJ|h-$ zI?W1ffYwhyY7#B=u`&iCG}vJd4v&V0c>zWvt&BI(dtzF`bK#*S>JuJS0it7Nym^B4 zHjFj|I53~?wuLemR${(>bd=K^w>P%Y-uMA(8BqdF_sek7gs_NUX$)<64P&q^jdPO5 zK+R#EKoEHB14wvYQNzJne@$9{lUO8$3TPcfdd*kCKH_2!v?mOcd*20$VVGP8>ofK+ z+B512jWNgT+S?lJWni&bTiAmknuLbA6}S_N1Z4CP1{;}iJsL`aSPBC)b^6rC{wVo? zB4H>2`8{|x=0$xe2s#^hOB<|!2{zZ?fx}Sb={vBO?9fObu8$2si_Wy3ZmT93w+$$? z{`1RA#zqpf#aQsDb$3Ipn+23T5YoQbDr$Kda{USd+G30NE?s6gYBUFL4j27Y4v%bp zC6d3Qx4)ufKb*yegIyA##{U8>XCIbqgRSXD4+vThJj`#s{t*8@PkTd+8~}2RdZrsg zDdOeEtw_jfj>@8tXo4(jkAni*;*q$$;Q_+N5#ma(Z)6+i>JRV1Hw?gwUC)bFg*_sB zuKJ;fJnduO$X;y-L|xZjBg(c&0q*_a32G|0S&hyyx#wX@*^ww}$Y*ymJZ#&n2V^~r zTV`InU${i4b_44Aov0LOQ=|LAsuC}*_N<;@K&UhI-k%{^SgA&oP-BlLx))QJ84vR>1b(6yBg)nZCF6R{S?Dk(ZvGSMbiX0c?`k##5K-^hDCKrFOM*+!%sON| z%KCsN>!iT*It{N{ zjE=+*c&cu5VVcx!Zr>&sww|m08G99}kf)%df50>_fALqr-L%6*7t4lX5Kp0uqX=#P z1pHTGeLoHR#WoEh#xKt7s}WR;WQWgzRmHqTrun`nmv161gfzInLwlD%foOy2^wLuG z;=OI51I*7p91Y{SozDnwr)Rz`)WJ9IR6tBR{A@0Qm`7c|vtP3a_X8jx$rc5;(?Y|6{%Hp0p-0WMrx>CDSUN2YqrI+~4DqmBws%#mG@rvVe zTy(l<46mUnre6?qOZ&r^0#yAaaaOC~nNPr|` z`-W(@=^rVPzlpg2hX9*^!TfFkwK*F%9%kPH8muqrD<6$K{S&>Z@x4Lnw)~8?eBpS? zyvNgCzi(512IAFV9sc+=R29v05QhP>@vvyF*cZ5UWc6U@fYT5|3?XJg)M9{}fvV`E zBhjO|;w^L|_r`b!0S)UZpNJ%L8XC7+`}oI1Jg*(!gMD|%8v21pY6}o>2Ogn|kr6CT zd+AxNXpt6SO$IZ4!YpjVFw@P&SY0EQ2cF*J?Fj49JDbe&otx$C{UgyPqdRlT*5na z3IBE-|48p@>N&sZ#K0_ENTm<2MQZlJz>E6u&3M|<^$r;Q3U$|6*umW*>J3*AHE3cZ zl5#!WynFx_Anhnc;7SK!UGjcJZty${9QRr;3;#Rd%WmY3&K4hP8>85UxZ)>*cEsgK zci{oZYhbTCwi2|VY;{Wq{+PuirxuYXAli(Q<~Sq*gmW4QV_*O)BKQOumx-&vZ|6$P>KESV~lYw-f{*IY1#$qu8~23 z4c>MnE}YsGy9T3;`)8gLV}DnCG02SLwZ7Ajo_OCE%!tR)WaLDeHVtbB?MkU;!37QR z?l0@t{e|i-pWQvG4M4T<%lq{9lhhzkqMk1qHRL&&Wc}S#K@Z7Y@{4%|0k@D|j7Kqi(yw zvuUr0_&S3(7r2+t-Y`Hc*lOQ%@&1L>%;O$(n6_z#2j{s-SLl4b9MHzko&=F-C6T6d zq)O5P!cV2)3O;1Jz?GwzN9lU!8|QJRqxtwzWj_ZZw}xRbI5 zp_b~y&0^4}aKjMBe$p6D@=ex)LjEbI}^|jSbI?5 z)SA>e!dH-=l&kjZ1veS}Tl9mOkj`xT{xh=QJpkH_0`JDqMoh7B1t~4?v3^{ekhGpM za0$#1^_TTmH=cx>>z=i#k(R-MF1;x%Zfg4u=1eXk@&A z$6WV!J2$H*x|LbF=*t1Be>|7H-!h!=sJrvr(Yrb~_Oe=Ao)_RU+y?9rL;?aL-0HoL zG0ow>wh)}fz4yopYTdIO-xZXD>h2kC{iLh4pFe;;@kmQL#asyqbhcM-cI}tdwcB%w zx@yw&qAvZLzUBJbGVTC39%M==%F z(|Y&DlY7|ruVIdKkdw8?)!hZ|UBUlA)tRE|XL{4dCIV~K$K&6C?(9bTO@V!56ek+t zw}H2{Ne#7VEvsF9sxh$GXJf)!5A-V9nP@mIt66>OVATD6W_fb~HSQ5Y8;N*0N8bx6 zWK$wTd&z{8I8CES?15uWyc!@8YEl$XS>QHb;8@tSRkes0$?oQjUHTP|qb4IpV9Y?J z|AB?8eUX2pqqU2i`5__AL=F%*kaUHDI$qHv?*}y};JJbA2zB2U@+9qT*X!;T+u zjbi=TurahT3H=L{`3Yks^8`}%$Alpg{vaaEgMJ1UW5r;Z$JZNx7x9>Oc$b&!sJZKc zG=XF&6ve^5579nPSVW6(dP6wKkWbeuC+S6WCvpJ^k;4*9&qq3vXiA%F(ZaN_ybtAS zT2f@JknVb|YV0Ut9?;!wi+a`d!iw<8we9#p#UC zfulC;lkUUE>JKhQ)HdVGoU2v)%X1NuEzVGhEzm_6aG*xfVP!gy=U3IvR})r0U;e%$$ipq;kxe%VNHIVgD-29tX?2Jzeh3<9&+ zY7XN7TFkdlTuycep2TF^XA+jc&t}!fDOmgrkTZfLc_YtPLD1PS6XQgX3+M=HIG-TT zT1a_gejA-ct{RLhP*LOo^Z*bR#z82yK>)NV>x0~tcAIa)#fhM9rfB#Ogwl9H z^6k6@=Kf! zgXjSMZo#|tx=m(GpnPVGeSyd3pJ!mc5d5d`ZT+~fKQGlf5XackRTcOt0cXy|wx&a` zShET$+6jj0hqoO^iMJ6p-ulxky1f|)0oE=+IXQ7-@x+M()~3|hSla?0s`cEM>dVGd z-z@$q3kv66J8K@ll*_c$aIsK73wXwX;HdOOJXU=-s8O526-Dp6XcrQx#rzkZqSuZT z_}T|_04?I0KXD-q8Duy5HLrOO5aDPIj=PaqsbvAui_Cfr4N#zkpFqk%rZhV#5AS*% z@74oxwBd?+{FDx)$Ldo2pwyjx;^!p((1weX0>Uq5c%fW|3Ca2G_eDo7+Ti%rj41u> z4d`(*e7#oeH2G0%{W{)tRq2G&dY6Qo@c-HLF3t~tv!-JQA`8n*(feP40g_|i-v7ql z&lJ5wc*u#3T@EWv@1~cA>t#scm*exn^NKcotnUCZkO)&*99Snu%s`?|9!c~hnC=MZ z3B`yR`hchj&*7{{CKUP{c>sH0ajX%|#1D!kkB@{z)dDa~{+}#1asc)$9nSS3{Qdi?e8aF)Lo5%L;5RPTAs)c|1*2vZTuYy2d$_t)?5CD zxvGW>>)Uan0g>CdWixa% zYd;QF6?JS_lieM7y=FY}aRW-|h|?d68AV52AG4VCf^cknXLsj>kJgNd zuLnhcor(UACifRQ>I!vP5A^?qujKIwe&qa!pYXwPJ@8I?1jjoG#TEhq7l|KVX7dr8 zGY;ZO-F8;(i3!>jwI?ps{8;ge*xfCYkQ0|+340l}nUin5FMAc95RqhA6DBCsHTJLB zEx}=7{*qnE>f6g!h~E!X&`h5KOIgJExf#m6wfMc6_^;UEOxo%HlIu^H@PDs9Ygd)x z_tx;cI{$6QHYn^rTwYbWv|>eh*6_D6 zo`GJo8wE#SzlFb=CCHY0u=5dS(y$3BP_JVl!sS*cjO;=l?O>FL*zEI4D_Eb-q75W$ zi0{GTgg8!pVEIe|5g0}4*NgY?N*X>Ip*?{CWQGj`1W!b!lc;gI)C9~RBwL_(k6QQc zU`6>HC3pW8{6q72%Dv*(i}fa)HYw;0?U5p=80T`O;E{bb;|LLI;=&)bjz9KcFTe9) zG(qs`!v!csdvqzf3O#{B6b!Rq@gDZ#{s|5%X_pyS5F{K494dU0&PBxNR^UnaeR27e zK9mErI@E1*U2t^l!x|)e9|ZGYu(Vn?1kFYlxZwOGW{kpg#4gmmi9l6}7rVQ4t_j+3 zqbP%yZ|+29?Yb02t$WG?{Tk|`Qo%VWRBsD)@}(_=wIP)88*L$kNzn00Ieyl(>6!}u zo`EQ3yt=1N4}WTJ8R9l>UJa;Cp}yqY^+3XM{COsE0!@=w1p*_q}-bn(v||>xq8)$SB4!A+_#Lq$M$9(d%5ggZA2MfTt7a2&HgZ z0MV1PaY3l0V?spua^mnAAs%YMDOf0uk$M{I%*SmBh)uscY9Dy-KB6;_~njkGkxX&KoLjT zlkmdR{U@-7-UPx#z>jP;-lnfk;!3v3mb~V3s7yzit-qkJB6qqG(maILh~S)>4A5ny zIfW;hC6T)gfs@#WoDMOl#_;4gIOhP2<|{elB1VMCP6$8K_WgBd5Cb<-*clsl>cVQwH*cfxDYqJdxapl3iIRr-zl(TTpUoZRd$uV{Ns?s>p|o#Eyr$Z6wdA z2;Nn99n-@{Xug_v!5=QUOMjzwsuCV3`G#2PCG(%0s@8S$;i`qwAB}6WUA3Q0)duNZ zu`r|Lzz*nN8!oHs(JYtqs~mzO|m&HI-jm721UOLV14K!3}UnU?5Y$$lt?i+8&JfElK+qCEu_yD8!r(V$R!F#_eSTwv1Ej z4^U8q+QI0hF#jO47CU1dEvF75Vce^IMON$vU^PBeIq8$?zf4R`MQ!Vkar-oMh%<*@ zUEplswqgQPcu1T{&}N(_jsEK(vqwtShrGhh6L>kaL-6;}8Sai_b@S0{~u zS>o{G)#xtJqT!bXFiYBC5FO@8vD)-776*Iv&;e^FABzxc^BQyXq64vAkN^pLJB}ai z?9&-3b_>cHLj`{J;ipNiAR9@^sipn#8g*AoY!8IlAE#QM#wSQ($6=#Xhy=+-?}Hz# z=QkVEMQga@))*CpP=qNlxnJF%CC@DDn@^ywQFufj%Kl>;fy92)yxpN@>&3Xpiv1_( zX0x2rlUXhJEe){7P_zVuUBJ`1aDT(rAX;MYVH7%!^@cjIVvD_IzZG}DBoSyUJ}Tm= zXd8Mn)m=fkfZhDD6yzp4ie;mcICL7bAOPd~OW1IT2B7?}`#y5Subsv=;VICp)?bHj zA+d#-7|X$HU;9;9e$tlIVfjS?t+4#+@Bs6Q?v+^pBR*F03l_vrK}~@>3-#z)JALthlz4lhGTJ+>KF*4v z8SFpv_6?tT5>c6=HMyQl)aS&0jrz|y^(8n2-HneJ4qxz(@6LzsFl^%==bh#GfetwB z17&zx+832`(jc_NKfZGmtnakZ|J|wcRo_nCuPT$A$3FOB8Uabp>;Ilue__{xHzfp4 z$sa>dx1EuFumINljM~p8A=F`0=$N{#N&MExVExs#snJ_uU@+~Ktmbe*-99Z(*jxRp z85xgG`hHMJuC3np3;=_dX)u1k#A(4@w=dk1-5B*giae#Z<{0{HS=@+9uevy|3buPT|D8-0^RYh{DZ=Ul>9l z^C9for`9eX_ZhC)iR|$SK>0Howpi*N{y1c?)#}&>fX9vp>I0Bblkuf6ZOH5cme=*9 z3xH`w^u!}_HUZvb2fQ1IlVW*?&pDv z?;=@Wj9)H1A4?wKEPA&GKU)Y~&gU-;O1ai4`kD+qg||TfN|6bO#eIT zo(jyzgCXQVZ2JLyr-b3=!>Y}V%}#=%sRV-yT!P`ZwxLn`@i%h#v2TNfq`U(R0M-80 zC&*{a7v(>ftDphx{6Krvm}LK+O!nYPsDA}~RUa3__!DcS7QDT0b&>w;`Gz;P1{ag@ zUbdNm6IF|4E8Y3yTt<}}_Z#KMVVv);ojooE`!1hoqXVa^j|8r+I;7w2luWE_WA>u@z2?F71BaAgP{eLEFbm9~zk$uL*Jsxs#-SEr0-3)=e>`#2tmSSRQ7|n{3nTZQ_dsn} zY4Zf53zxTb>UidU&J$R}fLq$ISc7XGXSPznWcoR{GB&HldQ$W)pbEUMof9oM1)3aK zyW!MOZA9xpK#VN~V6h4OVgKqGgjw&Vf>U#>4wACZIshU8cHC4-W)AuijfoETOJdir z+Rn_j6#msu#CW*gY{D2s$u?yK#%cY`mal@oGkEPC@6GaHjT30ukOB;>r;WlG9cgsX zzJQsLAnmuAH##AIKl9$O)fVR`>}~x4}4R zVS?%T{tahw!>2&nv$eniAimO=Jr3ZOV(XvB^ zILcw?r-OwPAll%`^R0Td&w4v)J;X{}CtLeuF}=t7Nx$)k{m1xzmX|PuXBzqA0NOCU zIvqDzAU+G>&|=%2`$HTfcp$eGHzU%<0&quc$ipuIZ1fe6N8mv0^23tK|CYsm%6KdU z;eN1C{8%z5;PYd@0mqPrK=vS7ubv0Rny%+zO5ton&CP+N*BMz=e4jl9s0K${=NI%5XW?72@}y=<>|O zFLOlmJ2ts-`QT^kTlG1JhDs1Ho1r72TrbkUtcV{=o`Oe^MjQ4g+6){Pi3{Ln;0L6i%9Aqhm@RZ{1S2p9&FM= zA>%9;A^?r~=wW6rWT9K#<&EFShBhUNJx{vAD)ugu=_RW=Bdgl~qzn2aJXsP6$a^GO!){ncc4PnjFhPHC6IyTC z^apyJ$#;7fl07Bg=OPS@SU90i$u8n75a|HNfyirSH@cG)ml>XjAp>SlR<$q2`yb^F zraTRg+Y7UJEFQnd+=B7WA7{Nug2Zk=Q*l9slU;;tYa7Vcm7jrPu6%!X+tf$`ol(c^jZbnnTgvsQo*c*BRm)oh*!6MDz*^gOQH|^_a2L7$%%s7!-MQSZa~W? ztg8^;b59eX==b{u0$j6{IWNfgMH&;>azD7PI%jT%HU}02NGru5X577rnGTPQocJd8 zhlS)wLvVR~hU3Q>q`Z)Z@keoc7{d;UTbD6zjMIZCf=yF z-LAKC&Q>4fQD%F`2siR}2VShX0%db^m087K@4*)D+!1YOi^k?*% zqk4^5b75clE653V)?9#{dZWg~)>^>*%=%6yogtEr$|P+@R=Cp$9gU`MrQOcE(CGE( zB;qLyRv@&3_6CeFM1|mb(hvZDBwu&`0az)(FFOJ=;v%L3VaN*@QRt}k@MisNMu^~O zxSLl>aZAQ+UWMiyYT^-xGbn`wdSg8Q{)P7QcrJ#xFyMJ5SbRl?)VeO<8zcZjs!4sI z1urxZd5RJSEgm1(%Euapc@MHlXfb+5U`w2Y)Vj9;l)a;erUD@|zRM@vbHwo8YfO1Y54Q(CRv#d5_J)vb0^cwQ>;$*~ zn$aDdSzQL4u(x2nWJ2=-fTj;qT>I^AUGK<_#pT85I3gu~XLVWk z_NBj^!gidQC6Y`dd{p=TFb}~gv16EK2@g<&OEqD5*zySe)(kKiBod~(3v%8DKlUnI z+~gnONj^so13akeU?^NdSm?3-BJ787*B7yL>{IqA*O$UxAU$zo^9X4Kw8zyZ!d}$6 z7ny)nK;-qWaYcL^ z;!sQ@;|Dd|zsKcLVwmYy>g_ls7j^qy=?P?PRHJvH60R2woLc`r!fVv%yMo}zX1t6F zWS%ct?V^LZxD!HUj8SL?+&``v#r7Z@u!j^V?gB?+GSMGzurk(vm=*4bPWuzu!tgq= z=*en{x+jAtquA{wJMvZwEEhT)9*;c7!SGIAPGuehoA5-D0^4{sTkC%>T?K!7G0iTV ztC{E4i;e(hO18Ub`GdP4wK~-M-@;S?y@60yO$pHFKnaB1;=#`N>p0Ny4!Q**ZC-fk zYjjO2z_u@z09}YZ%5^(xE01cG_I=e4NoC%q2&;&$VKPn z*d~C9E~1TKIrKU!sJ`tvG$+MAI08S}X4XuK>r>KMu@~WUHc^3{Nmuu((F;K~L5NCB z!1^~K4}yWV^>aWvkce5IfyJ^!)y}B<2OMm4E?h*yu}JtR^s9D|bT|lfz_PHpGJe<_ zbW4+y$G#7k*I1Sccj0vJBs8JFgGMl^m`^kdY1ZOM zv*_KFX3*Grs-vrkEl_kGu7C%h2ha+LBI=!-T9u^lqj$R3jIdSy8OFfqogTZH+_=t1 zI|xP26JdID;CbaZZuZ0o8RUuH6g!OhPximjzQQpT3>}k&wHOvbyh;un?9Q3()`r4} zNStE93Df=9x&xAK6a0-Gyny?M;lp`>{p*iOWAT;b^#JH2`ydPl?@jY1Q($a)+1=5Z zy@8i%3eZSDdp4S$?MyA^by}omG-bt0>pz6A_$F6i+8^Qmnt4Ix=BHcug@gsrO`e8@Em}=8eDL5I~1$H+n;}6yKqt(cRa zrr^ZYsfV>o9VClwNApc_dsNuDJpj139SFFv7?J+M%|y4s9oPXt82jJ*+s`)tL!QAo zG8dPnjlW=jG<{w)W3w?NFx$N$g9O5@+D*}1m!6umQslH>J2-{%L4-L&hdZ33{Za6s zy~YF&dW<2~Hrv01!y!Wd!PCcegpZy{AwPI4i9N{G#tm-BJ&;qr527#6R(o7vq;IA0 z4I<#H9Y43^j`W8&VSe!z2Tb;|g5xSNbMlZF-~LcG#Tiwj13|re_R;mb4Td_SxBL-D>m} zIWZEy5-J`>sdYKxVYFIDdw}jRT-6L6Xa>-i*fTobiUeGD0Y8R#m~P*O;Ut8|A8(~Q zR+J#$YUf4%7SyUxp4vNX|8SAx@1s512{Qx1Emqu^9lAfdS9wq=SU9 zcr|~G8)@vxsl6e?AIo4*)A0MCr~>x*RbTsxlXt6I-q}rhFtTHBaQ2+|J~ZKry?_+E z8s6QpKPBFYQF`lR-$9zBkGOxvnC}C9V+B9LHa}ke9Z)X>h`C2Rit|o8#G^QR`aAI` zZouDy$Ha+(hw&!pb$)oMxc(LQysR$KmabG17qXmo*^864v|`n&60Ho!-8#Z&xCSCv#(`^!sKmnsXYO3Lutfh%x3_tI}yBR$a#QxccIC`IK03dDim=EoJa zw=GUe8OM}G2>0a3V0w87TDpv=6}?#03R$O=Eg^pjxC63}P$_b-BoMC=52y2j%( z6Q5Fi*5UKu|Kjak;G?R}{qH1fV8GEGWx$9L(-tlCPz$Z6Iwsa!7(gKkYQ!q>*1NS9 zVFtV;5S$s!b~~EWYHM3Voi9P4KE_;MM8jtJ>rk^HuG@s}p$Dc5WrvLkCAE-!{nYsQ=cN6$)94w4H-rN}8Gz~}Hxsm({ zP$;^*xBjSFJM#pTDhw>!AgXl`eju+++aV5)#V-}v*9Ck_$eVOHvx>>3^uOAlCgf2{ zrC}xBTR#~z@69Mr-n7q1djr{(j3LR+$acxhw+&=j!u43W{_n$_zOET2c4}hjx?NV= z3xAJvwqL}OFr@Oem6E)paC&pX7UW*b!_$7ybYD5!{-(0wR0oZCF*pel*?@c*o`3Np zki|b{-Zwk_Ru1m zo!3}WJx4$|FBS+7vad`jk{4#8=Jn=cvhtnOPuN$wZ;YLp$LxsnVhVW9ohkjuYoL~C z>#Apl^|a0oR@k(?WIr3Qf4eg$$_L*Ml-!y41MTdK=CVqc8@Z&~^rmQfLo}W6WU`~i zmdD(g(zU$5{!m{@xAL}|OX*VHqvq1g=ObJO;|P~<^B&}#^QM$OUj4C_^L???`#Qzc zPJ*;8O}*9gr!MJnXHHRFt*UDzB7^O;Vk$I?H~)Da>g5&ua@xR}lj&w?UzDtCtyanf zZyp918u?q{8!}E#FE`UPg>Q`e-JL$wJUCttqFO(}_S?~V(960ZID}dbAe%57`TGvT z|CLqFRPu2ZM~5BoT>XKs3_lO)+cjMY6acEiywntvJ`o7{?#Iw?yBdV1B@;W+H(3{u zIBe<3;J9eig*^2bA75Wjy6lCO9D$52-CylGhQ})2&LjJVrgFduO|7c0d;0f{BS>V6t z{q^5xo`c7Me|#)`Qyd!B$jIByKHTKZ(T1G$7xfu0vL^0)L5+a2%ch&eivgNcH%FI` zDBVG@NSNP2gY)iYzML6Tat#ElO~qS8zXzOSqo~MT7R5E?lSqPuj&m=Yf+BYe5I9N} zNI!Z=>p5^SnaS#!Aqj#J8uP{o&y*CyDKoy4WLyi?>>)b7P|h}fA$P&oHIz#`o3bhQSF!$N(csar}L}vYK;Gl3I;1w6PgS&p!fS#@?nn6w=zu`bBY3pqf(Q+QVIYXpyJfm zgt{SxRA7V(>>@#|V0O;wPJJzAB-=f|1~U@9w6k9p#Yt?>C;2Vr&(j`_uWvoRh(23) z#ecLq{1-%9)HWuXrEEKb;}8M_AeqlfO>9K&bri{ezQR1R!F)OR)3k~>mpJ3 zuJXU2B)z4W<_(a~8<@Jyq@N9Dsj&SZ`=nb^TWvj?$`o$(dkH=B<3DBbHzqhh`U)U* z2oz`_MUb(*@$5BO!FVEm(SXICk9OnBoio+uUU4_wN2 z_B(#rQoK0U`q^pQ%zCp{1Ht|oglbGb8gE#aCCQx`JX%3;*!|{|TjZ{uQ_gLdRjzk3 z`I)D|yL?z1Z;bTsI4GxA9SQK6kX1#i zszetxo*v2{p|=LRGyeP4Y!>keap*7My-;T(>p)?_DzE$P^vB3e z2aP9uAJhBUR2mxkg8IN0sI=KnkF*ZX5VDCzpVBrQr3Qti=a*~MbPmP=rDZDa(pItL5 z_*f~R{SLGv{&iXHdX~R|KW2Qs{XQHYW7VNK>Ta#8QC-+;wRcY$UsJa9$`E`BcXkCk zqcDKahq5g3or=5^R0U8Oa~}8$?GBN5gW;@HFK1U2HfVh6_CADlVxYB5+V&rpJgsg2 zgrwcJKb9QbwtsALc-#IHQV;nJk=;aAZgQJI)EX+N-a#`U6lnKOGku`+7Y%4GR8M5| zXE`KKF^`UQXT^qeH_@9v4-l9RBZOQ>FDPH=@yC{WG6cWQYg2za!;&*iNdoc$C=7QR zdkc4k#UBldzgo=Crx1`QKUxX{{T@T~qirqESQzM@WhD)e=v++}tSWJ*pTTOjGvDXk zEITt&MW&yDrEHIsUk`|5I<54JVk}6G$ByRZQoX_I74u^XqMQe0h!7ij)~HtT=c>{k zxSV|Jf_&qP{ry2GhTYzwGOR(x4(NC3}HcTxaT2s*o<#SGm(q zH(pWgNt99sQAl{E@PeQRsgF|_bM-k@_|ym6|0Ai4gZ6Pu;k{1v=AQ#S2Jm+<5++!` zfMHsH2nAWATgog!azb)?j`?oF_9&5?K?I$)Og}`QOs9X!d*J8J18;9O6f0n_zC2mo z9D_E*o*C7&r|>^yxO)>veNdg?b;4kO?e;4G#I$YZJPCnqUM0~q#KaT|MfBdSuOx)v z{3_yQ{D})@Sp4V=W^E6hK1_E{3c71&4`{Iz)lSEqzS8deuXtW;k5;fd_I>u6qXAyH z*>bJT1L6wHOc^!>0a@Ix`B232omx&)I4|oB!x2}a|CoOSR7MPd8EE}Rxg-p zwLC?=ff6b``k{f|58;odKPCZTO|a8e0b1w9!v4npl)MHoiDm}t_rmdt#2-0>6XKzN zSjH^LlXw%7B$NsSPOk~jK#wQV9rRGSq=!>!;jv)fWFWeJ`5u_^E1~FW=&9Sh9Yy4b zpfA(*7H-A{{+B_1qyEyKWVQue2`Ti(z`_Cond+-@v9oiPCUQ&7)*2LwKdtp|XCGGC z*643o1p*T@<6Kw)wJ3M~)Yh`z!sRdyteA!_l{`V%Ill^vQqEc~G1M*DJAKm#3&BmK ztrhF%g>Q+;99J{Uz6Hw!e1Px2V=iL;dFikMe}5q@xqp(WIFa4!Yt0j zSO$t>ypjaF+)3U{pNtevfb>p6q693?Vg&sb_|dn;`lJkId^!sP(vyoVCs@I;j@EZb zkNOa~k-g?jRH&aMqL3pw)~a&Rvz^UO<2n(gKUYJR?A$y+GgN+Zr-S~LYt_swx_4<1 zy693peBaKjV#ti;de=Id6!cDFv)-^#mLDQcx)qOrlrDkgqdPQk%zLT^mP4Oy_m_QQb1aYPsE{HVC@G90PF}PB$p#ed23oy4^)pg~$C>h%hIImfAKJ2BT7m zrki|wnszxuj9OywE2ytNf6X^z4EPLU({y%P30N z<|sjgXy|!aDGyj$ooVlb?c>sY7umNi@)uVRbJ5scTXH4;zs&yz{-X@a&_vz1@X zX@CD`*|}vg1;?4K4Eenz0pJBIAoUtgK@Vme`vcFaK*?u$7AtHI?zV6@wy?>^%k*1i zso(P8_`)xFT}$Er=I#VDvs0ZBh3^E_ex0XOE7MlN4W6a_XQOy#c*a1Devl1sEAtC{ zG^A&CcJ2W34%a8jr0v&aXaCcGbyR*z(Zi~N^7N}De{|8S;RCPao67I?vD&oqs*le{ z=AZW;9%EJj!it@hbBtbDCUp``7rk2JzZ#zZ2^S&#F#59z6BO%BDIX{1G=)~V^D5%= zs+LcnHZdU{z`I>}Qpp`Kpx>B4j>@vO0}I*_c<{KAfacQV+4e&l(tXXzDg0SpneO{= z@(8Lq){iG#!{xBT8$Q2I_g$9S&4Uqz7x-IN*m;osg?Kj3vZSv(8@HOQ}xygmhcihLc&S|b3Kqz8hNy}v271q!aOJ<7WP(Af6u z7f}K$W1>S2jd?!{j?)s0R9~&phN-K8!kD@>lw$p~mJb zk^U0zJCz7udvPOH28uNGMbuzeug4K6B{P%b5oyOEZXGiaTR-S8OT@ZNA_c_k=gmRb zS)Gnhcxup}82IxL-B6#|4|%$zY7I3;49mc#%?r`C(E!XyPXmF;Pv&gU$@O+tHt4ox z)^ViiWXr#=Lxo^wPo6s>?5rO8aq=9pz^XV6wB95l|dZhx_mjWP=bC)jb4UY3I%5` zVE(#-<~UQBRhj>rS(-!R9YS~mY<${sXh_6NPK<$cvSpE12)LB*MSA1xN?W%AbAo(nKa~WfPztEX-hoIMl@sj=p z8TvHX=#o)1csC8EItFLFYlKjp@xNBAKRX)=8-dZ+1fwgct?--)DSXTv%~518s4=t2 z{$W<3Vn&sY0ow^k#?ourjRVqhKS8LSed}kyHYDPXKi4WOt?+bh$$tLpSN}VnsV#~3 z4Bm&&i+{hx`(N>Y<6+8e<5>xHoW%d=LG`L`{qN@g#n0BtQ%LZ!J8S^GL)>1&%9RhEnVEigX*;!U@({AKNh3%Ac8}q&eKNOYP?Mi_^R@koUgUZ*b^4}I7 zAf+F1;TRN~cKhgF_=iZMQGE7LpRXA0rbbh<_Xp-)Ep0LsA@gxo24O)sLN3x8Qf&LC z2DW&-6ToI{dsl#c_1F+#zC-FsRu-f1iJRHxMeWRlp`g5Az!C3}v2fZ?(|Yg@)Ir2B zpBa9BoL-3y8cW^4xQwYz#s!v=DvEhy(aenK+IEvQ*3N!}@AfIihs2E8_j6;aH1e%d z9KPc?FWdUA5eRq z5CCC-H;IHt#O7W=pdg-WGo?pTG=IE6I0g^iMHP##CzvDM(*1US@>=Ay1@Ab5d%NFt z1bKiSqV^@h2+rrXf94!NftY4ZQd$0+48Y`oD!2-ournDZXhpT;qvXPO?80&H-i6N= zbsIWDK3bnA9QWIoCe)2-c@bS9ar zU0h8NIwW=q@?*>;S<#GfhE}~YSsPi>Ws2{!GoN7w^XU2x&Vrw1zKi;|cO$$JEsfhzw8GfupMdr{=K;0fL#vJ`sG z0v%ZS7^06m-*QJDLS>Ks6EhLZIf7FM7DuP5cgUTM$8Ayj4ktn(6paZa>PZ`t8?Oz3dXp!^(vAG%1IIw7_b~EgV`W!q!04Zc|B{d5 zJ9I^Dt)Ma(c2^mSOG)9cupwCeHapt~<`jMzpbhyye3D&w1Uzs$*S~sVY4_GXki)k( z58zX1El()voM55j_b^@8Rv?$VA`Yi%^(cW)rY$|=Y{ghhf7lEe(X>>~_8LExoMpEHj`m;56ld@job4~+jM#vkU? z1@%D(mZ6VK5$|J61;n7%&Wxh{bnDK4C95=q#+^jgT2AAxn&C;ihUm{Vuoh|&fy4$( zIRpY8K|#67am6%ePvSRNsm}x6X*;T$ceWl)`;s)ngyfGiS@_l?H{ z+Mag?t;wi`&j4wkItBG&wDcae)oPE^g+#xwA^9Z`?+bL-L_Lw)omBiA?A+DBgN|VJ zHb7-Y7YU%$#{rD~(ab|CO;RbUQWyM>FSRnna;Ub!fFZu2<@Ox`@v>)q!P_UW`KMe-+rM>uh> z)f>?KPxnbgTuc+CfYjc6e6Rk}tIrEItIEqH{UxI&0P2*kL4c74FsrwR0*i|LC zdbGB8>zlb1&UMzNI_p?{dtCklVtJxh#u_w*yWpGD7PHDnGiP}nEM6>M`}Wx{@U-oW zDR#Dj3*ky}CnMfzkRcdzUUeR9|7eOqw~kHS$LFbgx)M7@kn(>KUo~1H^l#duMngmq zl6&4AlipuuXZ}X9^nT0E?B;@85`8=qQ%U#ntecDMqic`gCw29-{`CG~c7`CplJqCI zXyYQ=zZL>gl4{h!!l^6lhb~1c=PF@8w8VfBi|a#E3qSQA>_B~xZMdTF zRgrpD((i9lhf(RT0U1sG`Kz>I%pN}P0srmNmyML@=LXf*wS(iq6@TQ%zxewF=o>+o zpWeHYVLybJmy_ZAYXj^WTk%?6kmxz=u#2eNo+Y{Z_`fJMUi``tC?i;z}%>j~fSgQ@mv9x!zzg|{s)Jz$_DIDC_Rg2fF znga7)y1|$xwsx@X?ZNhLu!1Ovri}ei57-fGkQilsGcWsX@VOst1HHb%pNGtD3YeqG4{cw?nL+OpqGu!pBWM=Juks598}#E1On<}j%b2dhpNi|t zC04q33q^9x9ZupdAqYCSIz|1t#6A4L&vo<<&waV{I5V%$OrkU2U`2{|Zd^s{-P1WY{GZ52#iI|8F z3zNSbkWGiv5%!(X^O)K+_C-rD@ZNw?4B&tEEzqGk9EVO5t zcnfl$$OB9wQ^`qJqwx)5a2Z^^ z)gB!&qp$&aj{;QDR#VoTdWllJ#VtsIP1XpbY^3`}$&@~7DPemflhBk){Ix+M;S%t) zr0_SQ7gHXH&{ZN~rtlZ42t@X6rv6C&M&^7i!Js-l3HTfo?;2aU^Me6yxi@i4ZSv%|o#%dk z#;dg@zm_`x#t)L^+}94?r-uJ_26rkor|9X-X*-O|VQ9QMTgRSp{wyZ=GD#Kjrt}yl zcuT{I1O3##Z0jHs4D=h-dwx;9wL!h1J-n#?DmGlbTm6M^tHR>$*9R2_?G@Fh9C+_m zp9y(Yl@}NF@vN{)=yy?lI*s*R>r*(G>Jv-@h^ML#h2^mKQrG_kbzS!F>$2WUU7rf- z`gBoUrxo{WFMHm;{%+%Y%Gk&>z9Nh|-1xM4?pQ7(ZrY(289dCu)QJlkx6Wwa~%U1sW$MOyc~{~+R)RrTSykQV*c;jdW>E= zZwJ;>(0tHiMgr}&{T0az+V&4m&Z(J_oYl7f*yIUoRp!k8<O+K?XAd}PUA zYvN0Hq!0Wn`DaC7lI7rAh|9U@bGr+VnLwne1R6hstRG~PJ;eS8e_$piF@&OH^`hR* zi-gT&@wlLiS6uIKF18#J)35`qKBfV7)tgvwr#=e%?y9d;sjm7e{W$d$ny4#M35?0^ zVXt`jjkWI~#`Udb`2>JQIes`vHYM@)ZM013JNUV95%fXH8TfRJW|8o%3 zRlMI}{CGmzv<&PN!rovVehW63>h-yp3rvzO>@> z4_G67LE2c*&Z29D=Y#1U*iR;d96R@8-ENtCzRW2GBdOamLfmL_^0FIcMzn2C_XsP! zUwa8SCqzt~UU&tX4GeU$F#)KXhv1V5?6f>h2$o9? zk5eklFL3%H`F1KaG2LHMme0!ac3HAxJOYptJoj_2wvswg?AHLue6hI zl2FJ$I}~Kx&|yF-UltmW>@))vqlUza>aHw2G>8wAcp+;MIuC1CJE$uS&Gj9mvby-P zvQe>suS|J#%lk5duA(D45R3-n1=4#|pXsb$pV0@TmmR(yj99W4S9n!Hb;a;E@|Ef{ zK#*8Aed5HT&N0gxCV-RrH_*4BPC!t_L$)JNq z{*F%l?zQhQwA;5RpT&64=|R1I*76ci2q+lchVFawK(CxN!FkRMN#1imt|HEJ`eJ|x z(uHI0We9v8nC=BOfT(c+M2(WcPT{B0LsbO%_TX^uC+eJthGP4#@cN!FA{xK!&msZt zocN326vp4Cq6Meu-Z167%?L0yeCGPkd0h^69j7dppZb7B7scjXdanl~Wyd z4Kv1q_ccW`WoOy}A+rU5BZTBH0D~~)Vu2f2aN?l;flECf+S$wK;UhxO{Du4xIBj>XLJ;HY?Q{<>*ouQQ=uREp zIt_USCPJ4>^6R-5nh1D(5A&rzQF*z1!Kr=ED3UpfzQ`bF zcAzrBLty)I0Nb1P0o%K-7K)X}M=WZlCgz8eE5dpu;dzhnwcMXnZD;1wVbKMc>JNBcSgH9l_5%Pav$wMHVQM6A%3IMg zlQ$*i9OsaY7Isn>!D;|mZo8`TEtA2bq^r)zp% z6(KGytKGL`j-bOIRC)^5Y?2cO6dHA`lf9UiN|YZf#&7oZm=|W4n2`y4aPKzN)SoI0 z*r^9Mk`B_&Y}Mr@HQGwJNtfra2blb|T)sVR-L!4rOLAz@uaBflx!+w+Q_k3hJm7e@ z>&?#_KT%VPwSXrfS0Cx-Ofz+J=;rJKTCE!0*KGC0WsnoR!t22m>AlO|Vi5R4;?|7?2yG#TEM! zleCOkocp$tGIM?Y#B9HF-$M0B$;A^p$y0{C>+?LY+vif5bDwP9X0EP3f}hf7oSdEv zgmv5nh@HC^@QAGKNA8_*RBh@Q00AUJ;OU)fCKHH$&i$S4HE&-KKelBZJlxDo!Mo~?oEvVxd z)v+Y%*Ri*LF0d{})HC^h;9K(P0Rf>-@+48o>~6Z|nn^9)P;F+rB^oy{wsTiOq0_%p zXPA9j>9*n04uC-MgdPkKm z*lKC(*gsgJ+ZsB5Sw>cU3>lh;PzXyQM-T?P<*Yjuy zYU(4QuAOb>Re-*BZtgpm`%hjK{_M|_eft$u{|;UGo#{#+T}d4^+b`d`J^v9t2tLm3 zeVYzW;6aD0bK*8T-KCr3JgFPK1M$Gd_+*e4s2#XV&Ev4~`D^ICl5aXPvu6aq{;cP(B37TqXHSxh|&v zzQ6J!z8d5&W@03=ljLQkzLMC24ZMV)3MaAJCE0T2FAV`iyGpF_)`AC4VwJFY6u9L! zQ3QOzVyzWgInmVTeZ`bospl_JXRdi|F7`{+PWpCi(QfO?CCBbdtW>?pqq;`w4bKoQ zl@5RXG-zmg6ng{?z$y(<%igrie9IY4RUmA^v^t^{49lx#i@kCIyF;d<|fL{M^zQ z6&u%^y5QA`P9@glPXgw~d8zKPOdJ}Zvub!5mn4jF`U0c-Y8q8#iIvn~X|4Ka$3(q1 zjr)J4)1}X5@>wty^mHYSvWKr;4APsT$~C}MU5Qm@*b6O(-Zrgq$fG4CKcuDf2ABgc zy#r1Hndn9cFR#u36*}U>N*$ts$KiPcuzKV&P)OVGhuA*??XFkNWBLg7Jap9rP8QJh zqNsa1z7qxJ%sf?zOzf-$8*(<`-G9SZ^USFyLb7^EFC!FKc4~(^Q)rZ336=H9vz@($ z>y=jW11qWHKe^Th;>2!6EC{~?6-Hk-u{S%amg_6x^;OHRX8z^H3AQgIj-@c?Wgj(g zM{k5WHto?NAA{6!MWvyR8}tHXs{w(CaRe8!)vybva_S7LBhT?-4*= zF+=s?&C(?8je%7=sa%a=Y%a2=ANrZsz7$$16ljDF_-b}uRwhu5 zj9*RBS@L9PL6!0MV1|C_xBB~kWH?ACoo_h3;8ICddKV!FBa-#|I+>FaS(s|_U#3bw z|3AWM!>Rep)db)Orl8?ew^ng9T0jvmvl2peCMDd4TGPdWcrYX4U~1LCAAn8?R^+BY z^!%#sX2jx&-S(Zgih{9T8L?aQGgirwGf3Z_+P&i* znHMuD%NUqoy&l$(e}F$7VNuKqlv7VHVUuTI2^&j=Ld^Wt6!qz+bVWkam|@@`F3XWa zW?_3*flmH+nUARY9{zwIxbL<3BQi^6k>L%*>x)IG{5J+69&wkRp5FuuI4sbY*5rT8 zy8)mtJvIML?xpDX$rf0C#Xz@zNI#Z{p)9S5337hrgwdVJsds^GoBkl$t=yIHd@VdEHY z#C#Gam6moEexzVX#Wl(6E#QIUIjhG&Psfu*y?Jp%fxcyu$-34v0yeYl#yXwNoNJ&E zKl)^6jKIAgsr6bqQ)g$iKgezEVU1mAs9S55RNh~Fhs+qP2LNlgpRFQ5jqVI&a&nJ` z37C-;4dXu4182XM_BcMtZ>IuHMy-{Lm1$`-Rk))|H!B)Y+)8^|3uob4rmWh@KCkj7 zel2@Hmw9PSL;Vlx0*$s-(R{2!{iU-y52R_ASMnXY98}e=5QQMzik|0cE}ix$yYkh0 zOME&V@dk{qU=aKQnbP6VD>;YBlP-iyk!XVWR)7JHc7c>CxSuegd$G^lRKb zBdCm=7}cbfX!*IyEo)ZqC|o1@VtKdu^)Y#S@}*{c!i=d#2dMDXVhsHN-Oq0VIraEX zD;BsK6R>w09VS#U-wBB!Vsfn+BZ<09{Aekbj?VlK^(x^N-V7Z*gZ69RT5DuJtV=X$ zHeq46!4Rh{H@!~tZl!5I#vuk9IBc!sm;nyYaEMXJsby`J;3$nfoHCHBJb(R*!)dmmY;)NGrP?xx7#1kSQQH;%3=@pfN?B=-qM{toj`a*b~F9W>}lY&KWT603EL|Z4+rEhSYBaB^oVMr{t_FPFD=$bM48;CbtpgLygtwM zPg~qZGuYJ)vZ-X(QqUqVHN&qNF4~TUXe1rT2mTTBgp1>rZwQ z8)% z@L*8q*QnFyYpV~5?~GPo60x%az1z4JdT|x!2lOo-AIdwiO`QBTGTpMtBCA$yyl>Ip z;(f_U|F-dqP2+jrlV`>>PGd4A8MC)4=v4_%r>)D6r|AKEEch`MVCI@OJ56i7*DjQd z(rwJi#r#;V=GF+d@aZJ0JFWF&({_Yta<)m*?`N z`m~m(gJiHR+@?25gz(S*K;BS3HMA0zFgyDsnIS6+)~&IS>*nhBC^Oj@m{e_bqN0@p z?_$aEX*M+4E??>!v3BiK25xM#tl5OqlTps$j-woX%kA%lp|YO_`5)(mC=TDFadIA& zD5kk-3yhGRJj#S5dVB^3Y4MsDgnwG@;HTo@-Nr3?FATVl#(i%^xwnHAB0RIR59))& z7QVgX>s*rg5$hmrHEwZljHGMsEHO@$M7OE2yL#?K`%d9ZKkpk+qIRmgF1@KEo?)|W zsYWPBj*tXEo|VLA_|q&a{wF)9n70srnl?)}gp_XQ5DoY~VoMJvq`g9*qJ7Jss4}fg zHKI!Z5hI$pKy3MiT9d@J-HZ*rNp9%@ks+bMM!gfJ8M-+(7zgc4Z^x=`XSee?_`v~5 z&i>_t3tPNyTInwRZ1db4QtJ+Za~FPg*O^C8rf%=_$%2T ze=9*+i}U=i_xIN(&u83>dH{bpNx{B-q!tsTK$|QSTMpD{$|RnF-qC=DQts6PCQS_{ zz2+_GLw9}w_Bw4xusU8ik9P3p&GB{frp=tERk$B`_!1ZBpbiToJOoX~oQcw`AEjI- zWZO&v8^yK8g7bZ%z7ZqsSwl@2KG|7Ja~Nvw3>VT6{ww*nMhhSn<)G0jF|yEqXnh;t zaGn?t#?*f+4Ey-c^2c}FP9eiE~PBjPoK%-}Xv{4tl)11T2YD&?7LWOWV_c!8o`;troXrHqmU%DCIk=TJal>r`7nOL z*H^;qUD^+2ln+`9h=^p9x=8`s&DC@O{CMMbJD1UthghdXDo7-p{HPXDKr%v2=O+|0 znvV1savb{m>&-^{4xVsS9(A>>4Vve=b!slvGq65YzerJs4DYOH?Xcl<-V}?VE(FXdCK~RjO~)TElpml zQg<4M9NKr>Pk-I(qyWhDrx=lW5IEgpfe?}5CD?dT&TI>a~0x$dfU8e7x zSP)~3nohg{B%l?}&6}iTY?{j(ZujRh`MY3X?XxvudF=!4Fod(4?u$Tq-!>Jd{>MM9 zMa%pV3bDn7KZEPdk1v`6pQyf`BwboY^uTSd%vt9vc~_#>A2LcthnNY9`>co?`*qHG zilQZxImoI?xhrBf6Zqp+!f>=cW(!x%hCs8$+Oc3#wI8Bb4pE<*Rq8_sc%R_N>x=aj;8JijD>|P?WrczCjvI=qSdGN zq#hU08>^~kMN{hvo6s+Lk1nL6AS$Y(y{R9BJ&&ZmMLoif!gq@Kfy9xjU@E0rcN^S#s>m^rp)A z6D@xcd7o$HV>C_q`e?j9l6ujw+g)VbbEiiluGxj+3r6BM*4cPCeJmlBvrru)EgB)| z`ECYt=&^RjN-i(=%qDX}MS#IMk)%1~PnXf;5kloz73QpHk=~gwYq5ZHD$J%JoK&f8 z`H%825bykWIK?l_wep`+VQe=SS@{JjG7z5?z%c(;WM+ZU_ostjVe}r~BUCl^+PVJ* z6s%Vk8pbD9&pl?vg-fcbg7sc~F-h*cWjDqzwpvmG2@Y~bM}D{6uC-y7kPw`h8)Y+x z;ELUTuY02v|5xj*knL+kR32T8oc1`J+6cO=#68v4w_m75G#~~Hj#onRDM)&$H6l1>)ZJ*{!{UZ;8cLGXvH@8(D>a(->auLHl>$I#P#h?q}v z0ekCddDd;-mECduDI!WRL+A)x7$PsiE_My)_C8>GWoIX=b#}Vl#11mf9JO(&yR)sl z#beE%;0JsFVI}G+=N z%B^Q(9U||g_q5=?F*5#uM1`odMnaV@>=>bcRaas)Foe)?wa#44 z23J?NHV*Pz;L*H_RZ5hRNLKS|nH!tei1Ig+qGfuYRb6do?#7x6Ijz32(vJ_&NoA+@ zCstEg%fpDosda=^jZSZDae91l*!Pt^G9AZlKA3Q$PYG$vjwc{vd8d3xor}UEWrHRQv16ZqFcTyNvR@YbAcb=t5 z2Kn$s%3^D0%nski2YsEvpwe%QIFJg-*^zvKhzQiEWDO%ucM7q@X#K5KZqtK&$Esfm z>YAJ^+*WvR?DG*WixSh-;13Geo?GfP-cvoh0vQwiV;CTwEIkB;yeSr+Yb_riKONG^ zH@Gn67i^B!0VO`*V3ou=^>{t-aX8935t9)BGYU?^BnvUoFJU79_1Fp%vWb;cwDjB-#jch6YHnE@jSTKA4JdN z9Hx@Jis$)j`7>yLoFk(fO97sC9-er0y^g$(busL+^U672^2F+Sm968EZM|Q=U+5YM z5_6b5WBMk+;l6$d3GrJ(2$TKHeyFlssW@;#2pR6vi;KwHXlIlOo3w5&D|UXld!2GQ z9#OqCwyf2u{JFD~3ES?@nu8K|GRCnf;DY>Is6Lu+@F(gidE!7fQi^>WpHnf8nXfKc)LJdScKFwA^XXa#!INqgQBgnd2>J)|)z( zmDp)!B6);!Q3c)0-^lmQMKRLn`D}wIuKZ;@3+0FYx{7H#^2%x8W0^0{$bMipha)|l zYjFnm31N9fKO)J@Bu{p?6-$;k#2@$V2mV&=4vkCm;Zr2_YX3xIkNFD~6}D=>U+5o` z7$?8JA!W6!sqM0b8I3?o-SXD8`hfE@#AN?VlanY%C0-b@Z~vaTlci{a%n$(8_f6`< zk!kZGWTGtfd1D**JG9-*Q5my!m}%;4@muq8P}8J(!31y8ZNL!m#+XJAoGG-#ToHAi z?XRsEbgl*OckrIL&+r%~k!g*vLe?}NE;CIif9Oj~s8dnT!Yd47vPR2iFusZ(e6C66>nfqD{o1Q?@0tl;8s03t zoDt_S;-)5dI!&wXtf9$Fu3U~m&T+8CZ1U$J0>Xo6PwE^TrfF5_`pIVVUn8tpOxG;f zbv_Z3d-q@>_TUX>Z~(n4Asr9$4^Y;bGg>zWGNw9|cv!T5B(ytR%&6UB;zly}PGCs~ z;CfP(Gm5w&hK)2M|Fl105E2xtp>bP2rHEEB}4Kv=gVN_oE$ zE0rD7&me-E2AIvO$Y08g82hH30X+Tr<4gsHOl-$Fo*%`%86OpDh~g$ey9Pg=$eJN$ zu~G(u%zs2k#2HXVR`lnO9Hlh_^x0pB`TOb75c}OVBqlf0;>-U;S5JyFQX{|M4rg9k zCn3Bkys%-a+q@2Oll81MB*DHSUfG=_+y6$sY3Y$M<(h!OhR3ue)*{t6JuEqHYUyLu z7ncj?a>iZTv{w2-eN2kN<<{gkIOIwu8Q4iDlW?j^ zH7)y%k<}*UcQ6eHt=BM82N;Uzg6DW2jhu^x@guBv>2!$ zU%U^2DXaiSRbOF_2C*}(v=cg)%zOqU)PQp>P{FaWd8kv=Y2NIl^mM*=nmY?8grrYrdHo|7&Z59`#@bi<#gK_d1>Y zRr)&Ko7|1olCgmU=g1(kCWpJuD-J?sNEdVLd%l**2nDM_eLl#~BQeTdXvP20`f*nq zvvfi@2Fru+PsSzd&RlE*z(YiyO7b6En|1Mjw7g`(HvIGqMe=WRd3=28uLJT4<;Ri% zWWc`V%V#V0+|EoIT3CUrew+OC?PP#pImOZ&kd0SC<=bDxuOWhfy?B(nJs|c2rLTG2zHMY=6U~X@Fuq6YDsivV2ti%tUNW(?hx4v$NzZlr za8t=D_jq>oHm^+$b5d)?1%b#s_#VWP;z*3EjqI`3X?_^AivPoDD0j}Ouro@h0mXGI z+X2aFX$^K((!c;QyEmR#Yv-g2(}QV`R-c3K)KClh!*^IsF2pU#E{89fuQme=J~o2T zfWq*5nOksG-NYF!vMv3o_49zy_$$^)*c;+HT{085X|i5^=QCweJKYErsI2g#LtLdY zg-5;D#|Yi*>|^TXc~&65>*V)u^+QZrx8N@QI1nY1k5qn9p2mBmtc0BHI!mI-M%D3} zW;3;gFxRZvVW(kY^zym>TA%A5E+p=!*J;6$H)x{~hc}B}nEKVhqnC$zt}#wB4pw>{ zTV^}N=O8EDAJsJ6J8d0w8h7d4>t?+#u_oTQmKDWBLbY*O-{FWRU>)4%Hs33m!ou3L zD!VQ>3;bVe-__|n;Sd7_lURMu`<`|##scxM7Q)39M#^JflDskZbH)t-@a{k^geV;8 z^sLw@3^pRBO8BM`?^^Rd<>!JcJcBd@bTZ1i9%jKYCPg}@oxk8V#svdeXe3~Do9>m& z;5I%8An3_Gyz~7Vb0${usLDGNy!Bz8`8oqL#^;0NWuPfDN#MX%uh(8L@nWON9~ZpD zD;}^D?=j{;`Sdp0SrJW5=ZSPUf1{`~ejsL_h}*z5c(_SaAg!}W37>o=TTP~@G{6n* z8<%Fl{29A$V91fR7okOby!l?n$>MuZ#Mf=Q2N=Y7QNdHQwbGk8h-n#WgUSLU5Obqi z1cFq;H*$n{QQW&U{GBmACS;WVzw z@59D^DE~74Z2w3ohNrG$PE)^ozod_&)z?|A|H&Jo3uOAlDJCk2+qKpmJcDyO(wtCT zLM_W5o!Dw&Q%Xc1F)30MBrqCDQPbgVz@T26OonkU@;9g<&TIq1(7K3da@|DQ%Ed7A zcNm+Y@!IQi`WNxqOcl*SS6H8~{WI&Kc~$WMk{v!tmk~ztcUTO}wGx#nbGbXL~a_>@Tj|9lna4IWo9Nbxp(c^Xb1F-|9(%@9wde+V^r8Le; zoB_MS{yfIa8X>bb*;#lDHzh)GcV1510e_l79wG>LF&0T7Lq%O|M#McUa;fz=rV&#N zCaKkdN$P~;31X36pe;5|@nZrO7)}6xX0lDl73}HCln=r@L?CpGXeKM-iPfzqhg+AJ z&E}OZ$M`)?(#H5~OKQ^UbYf*CrCOf%ds4Vv&;il4q1*BzrsCu|5_32lV0NUG#acP} zF{f!&ywlFSpg|4O!I(%fSVw6gaMRcs&7S7hxBq*OFn7=b7!PGC*i0PkZCzznm3%uP zmw51tqIf7jcJ?ShsXF{UmEI+wnU8gAbL?s+BG`%MDK+Epl@`` z?~{?A*i9;+hv704zTm*o=7}QxIn2j+Kj24r1>shjt6?Z>C7=+Jrgx0_ zy^9#U)Lq&yqzyQ{hV`-J?~*#FFuE0;It{~V>hR77lvrORV9XMKM4ph;(;*ab6L$?z zo!fZHg6gvGxPmLFPOi38JW81K2tW>IRhcI-?1%?2uB@s2epUV*^~2x0e|$XHK6gX z>IFwztuviJGk&*mwLATz#x|_TybkRF{eT982?|0zNZ7v!69|U%62djLG*mB`X0`kl zLJRZ#fZMb>v>cheCIZ80gWvp20y*fQ-q5CsLZfo{iNq3c{oKTo5geKjBFPV6XZG`j zzh^9}_Hf_<59_~FMt|?owb|N+2-?`Oe%J8Q^}HBmeHCe)B$NG#Rp~@q6rkF-%MBZV z8b^F$l}sY5-09i1IySEsP&an$S9 zRU_?NE~2u%iCWbOK%Wc_j++e_cyLey=Fvl$Ud<#4-QF~d6$;wqZBK=1iYn0KdhVY2V1Ng z@6i+>NYzg&+~$kP;TtnKys>_6PDmNB#|{OPor^L)w<%*lW&HUed{W~MhRyE$Uqv1K z>;#SX7Va}ka<$Lrl^195tn-gUGZFToghHa*?9BbZTEz!2PQ^i|5}}BMl~heFkh) zVAw+F4k%#{OrQ#rnwE3M6N=#F6B9ca(20P9cO`b4dTz8F<2H-?`5nwev|bu+k4N5a zGv?%soCvXQfAg_PW}dx9v%JV!|60U9yfxiNV)O4pF4Mo$t1))wivu^~lE?KY+TyKk zE#G%db1OD#Fh&6AN^GXM)E&m5D~6z-z4g&rM&Li`@qc#uKPG&I5$G;Oj+@Q>@F671 zwi}`)H(2SxnYz^mY^D+R;CI?T)8GofSYJXdtd*;aC4gJ?fz+|u->DQ?C;_S zaTdMpXq+|ZwnyWPzMr28EraPtSE5DwBQYPZ;t>pcH9vg3h95p&%MTwv%#R5@FduK^ zuF^G`CfuCBCLXTEI`S%C(o8Vov;k9WC zAE!)KlC;Tx5lx$>_z?uF;s&wo+f8Qsq6sBp(a)4}gOz{rZK^cseH8{j2%s(WoH2Iu z!x*>o!x-VL8skoW7~?K}0MKrJDuXK64Q-w8)6<-_g5?X%G8!F|168a8S6~Vk1UMQH zUNejUj{_vu(({q|JrIxli5i2UAaJD*%J^soo5n2ZgD7NA^Qxex1}Le*S|HS)f1Ra! zFh9*L<=vjS+Z3Cep5*T>= zc%~xJA^!sH*$*9KDs{FFNnbk(^vx?pWJst7?Z1INT!*`oj?lM+$9zAjoxNQsZgx1@ z4@Jq6(qPpbo4mSaOmareIC5m~;K*^l!Y1Bo4v+1awyy21(aCX{M^mGqdTlpGORf*L zsBb7d$rDk&|=c=7w#P@4+j0C3E4CwPKu7kWZ^6)x~4%5~s$&1W>1*MI0r{${p-LYV zelZwN5af%4_3zOu^zrJslkh~eCLq%~g@p*Vsq8j&Pwl8)R^HOemU{JXTct2n)__KL zMkPOSsd^9VX;W{%B3t)V*H3DBggd_17x(+`h<{=~X4+5wpLg{T$1?BRxGel8xLK^{ zGo*EUpV#wmh4>iLanm>gcyXS}G{k7Tf_ad0yXobZic;vuSrv>{9_0S~Q-3H5ISX{wL;>C|Dg%Jx%sihS2VO9T3%9P^p zf<{+N-W;Dfv2~a;bE0B-{g514yuu1YJpBQ~MY7$Hyo?qxC7xg5TwLYWR_3CAP|qi? zANV3ylg?Rk^I}wb4_lK2F?Uwg)+;J~Q|8Pn%|jR7HiKw+?fnjxYY;!uS{`RpLRPt% z0Z9CM_BMXcTvx=ekJ?#dMgNGt3gVZ5(5$L_J4FWccgAoL^TMuwmq^dYTR-eBtP1H_ zE_R$wmN>DrbL;+rLB(5cv0BIGE-58=>A4_6HK^a&T6i_+prPliSA;#%8_la|eLs;I z?DQGZe?KBls6dI9e<+vd!S+1SBY88SM{kOxFP&7qbV~9f_wuPS8dL#V%m^Zc-igP9 zujjEAeqna4xicrZu@$WDaS#g-32UNxA_Hhy|IA4T(|XBUIqT#8j<=ap+?iTc0UOXN|4Fs4*Ohd1XxRGKe^Sjs_p=VVpFZT?z!#TA z6PxGT$enw9`h}4gUCkNA$)mVhexyl9%^tQ2Z9wI06?30_-9#gCBun9C?{mkolfZ`( z_00#BF2Y30As$PJuspW?nVIPgBb7sQ`IEawZOUxB{#EeBnHppXIs_lz!}r(_mLAjg zLTzRnsr3YJj1E*?T%HrhumeS`=a)(>jk@s+1+OY z%(iptN-Frjfd9I_mH+o0^#9Y`-^l;)J*bmQylJrbEs=-DH=R!5J0_zs?L8A0)|BH^ zN<>T7XLj6B=8i&-a0m<=WO}9lD7<9UU;Gj_ey*Qu0|u4%XZ1>)2D@P3`X3EnE_Xj4(2uD!LL8y#qD!ia!X> zOJHeAdo-#!h6r7<)HOX4yp3g6S$cubkoB#@d5#MD6%2#6%^E+I%Js42n|tVAp=SW! z!tt?)q7LyA(&ljIV8WIej)`JY-yb zgJy@{{|L|kV(5NLc7s`>2S?y|7@-3!nsvaRnSpcl{gGw{j)qu_<-DRxqRA@=Zpxj5 z7?Fh375?TP*{vy3f%7`{)|Zzi&%l))uRzfX%biBKmlQ4jBsmt0o88-hJ3nmZX$9)` znEhPTpV}OhEc`Vr@DK&O>-eMjZqCnS9L4L+$O+|;49o0Uhr>Rlk;2MBlS^m_!ceSF z1oQ_AC=xVYq+(&ZuPXTg{w%i{*YI>-d1^d@qbN|{RNc=lyoN5yXzQ$k=e-2o5BaV1 z6Q7@@`e13frK8%GkGe6*PTHZdIP7g~?)CoT7{)4Z#GI+6xuv6}4xf(NBhHlAW6<>r zx}}7(zD{q)>vny}Mmc7wZU6bnGurmgO&%cW8la$PV3h)fzGs{H#8xryMe^|*C9b_IBAyI>UvV%97DTJMpT zR}FX)Qb_-=b&U66;5ikh*F_i$u3nL-sP{5%(!&%hA1Eg36ZL*iG1CLdz>RN){YY=D zy7V$(t-pRvymY0A3*o^xSC2NkfsUG)AR;DQ_bw)vVD7d{6;-V?U8=xeUFY}?tJK!tQaXN0wjXzo4F z9p_q)5bxe!>Wpw=k1YA(Q2L&metcQHk4<`uKXXvq#hqI=>!6oK9a}c#;7)l|%HS7$ zPyM*{Ms+C2x+4E+00E8Ma*ONP>eqv!t-)Ej1;>{be)-Pj?K?(O^P%75bxeV#h66N%gnW>qKlBpcYfs3o&S ztB?e14`DfKVU6=h>)rmdF>h%#d>ZRGwBxd!ky@0Q8*wPt+?qb%{le=cIq_W+~a`x0#AG>&zb8IlJ?l`Bn zv|ITFYSr;nDlhm@P0!eQo-etRuib`!uKBGDFu|74(n-hR?pUdpZH)FD87e*m)1Nw(G}nkdV@1bc0%RT}z9M;Zq!tCC!ylh}F)Po)iPI5c7GqS`o;^G; zKMoKD%ya+g12c9IFtfxR-rQO97C?dlc@KvH+{H`<5x&{+(B?NNSMdF-R}eM?*scW z<}hM>8|5pB$^ASAF8%I;itTMKT>H;Drh4ic0VcBox6jemq6baNQD zG^HI2xMc?seA;C8AK)KENHT0+A&7YM`5>+c(eP zd4P=hC2;>k*LQF}4I)t}pPqa~Ny!673ZBZ@Ipd4?LG=VX{fh8+NsM0oBT#2PN~ufy z@n9S*Q;-pYmG^g<^2e$kG7gYCH~BvIsDteD@yMcRZf?x2l@;%GBvewC_d6d=MF(q6 z{Uq$x^3n2YlIew`z_B2du~`k8X#Z-4h_k`By)(+K)W;>gVZ+uk*a=1pRKYS3#40EH zVp`NY@gD$~qXU9;yO(QO^#sf64L&S96prL1GbIX|7t_rXj58>2`utV1%O=uI>t8z} zbrxDfnVtD0>s~XCT4rbeLpMZma^l4iMCGh_p&#vVRHrkqT=uIY;=RdH{xhDCc$P?B zoxdU8Ya)6Rk-fF5^JdNM#X+6tnThrQ?5OxcjBKT9!<2-|Xpatjz5G0MnZ`Y0?aykN zE520*nB4~HJy8r{xc8*$A}1etaS2Jh(JJkW_hPo=sX~edK2dpZA7oQyNqljGj-qBx zF4yr4jl0fs=lnY2uupz(ATPoeKV&}E)_HgOx5MyatG{VCTQ-i;qg?F7+0OK@MG6FH z?95q8g+J$(NNP1yPp#Bjr6htwbGTxJ0io$4v)^`hd8somOzFq|z1@PZSr+E-VU4Ph zo)#Vl3|E{B7zSt)eum5|tP5VW@xm-zpDIx%N7}+5{t#D_51p5wrsnM1zvf-7Cxs9C zuwztaF-E-gl*xaIw`9MT_Ad1M9g{4sPC}cmTBFVA=?~4*Jv<#5JT+2H{wO{s3}B>M zU?_x51|6`xQz3Arn@ksW=hw(X;k%?`> zGcBie57}=My^9-H9MFs8DM5A9f8|3^fo{HBe#00U=-3P4R$|B~XIv#j_3>!I&m%Js zz|)C6R(eCEI@P=A7kGxZ5tiB5yZHT~ey7OO>A#3D)GF6h{`E*bdv1Ccz3j|~e#M+w z11Smhp5o4QH&TbK-v8&zA1n6A#s9!MCo6I7R;x6kMPr!+;nVi!n%lj%ha(P~a}ThmcYaSj zaGvNA6iT{kjbUcMKxwsIRma1Ke(dZ|D6z?SZl~sQIF$P1Z!I~>*?aa3^wsuZ4e_^@ zzPV`_o9MJ}Y;6^VC-+M9xRNWg9v9Q_v~BU%7k?mNm%cpibWiSWYxz+7)a2Pet81S# zsi!{v`l44gnjjqTQWl8}AY;{4GJAb*qxp?|Z?pMTI)U%W0OAHl&+xlwi_568sn2xDVIwf<>`{0{_piFY)A4FL0(Q+qJK^PK0?>mz5DfLM#lSLF4Z9#!&T{TA|**K_Uca<;e% zR_))#H{e6D{|~GA|I^;}hPG8j@ssynF=CX8oeu1z!a538O?4l-QL!QWQ&~6aR_4Ht zG|hWy!d{YR^0IX>u+p-vbV9&^1&b6Nt{-H}hkcMSp$?%N%u#Sc2OCzI(&5yuR_TXI z{GI!n^z|;A73K$V7k;_tcg}hD&$;iPoOA&Gw~@oN%aE45db>{XI| zLb6|x_>9EoB;F(OV-i0u@iP)1mbhPPpDo!tB|a(fFC~6U;?olEUB+=f*^O)YE@ydf z!_`d9^7%I=TLZIrf82w!phwwoHT?@O4dO;+X}yit%W;k9!vTyF>tc?Bw3((q@xo?FVr4d*8W269w~n967P_B=Q7Uixw#cDlrODs@4ea0+)3y_VFu?o zaqfUjIBz~k|L+KFadrRmC!0$w4e2Xz&!WaaKI!67@ay0_+u#%jestMQ@LBL;NhakKxJ-SThSdQ&jCl)BhIlOUc)pxME|=%{tD@c<>^0j0 z{3Vb({J0#RMYh4dv5dV~4*T(%UJicU_weI>ik-K$e0^-MK|K7h*On=V>uH9)6ZX?( z?3xB;pVKd11FGB}poh!&aXlRO8rav}#Xbsq8|>T4*f~}gU>||~Y#FfET8}6izKRncV+e3b!n0laV zn)OhNOE&~vJ9KwTG1zRN7dQqC1EWA5I0sAsw}3f-e)EtISPiTN{6HhH31|h{fet_i zET9MI2XeqLFbbRj#(+z}ByaM``tq|z3mkwT$RIFm8(ugK(uY^2jkz7|wNPK4vQ z^xL$C<*ra9n}!Ovnagn>Rw4(x55$w9c+xh~$*>9C zDMdHUP$X^pL!m8g4Gor&4q53`#K>gmvSReaQU6sX8i^%RI+t+`vYE>8)P;UfqI$|Q zcp5^}N;GO_Ghzzyvl5M)hG;G=C{f{3P@+~E^+w^VsL`|$)=A|YCHd4S{{PvgN;PU5 zrb(;R=z(~mdB7>P)X zr(E={kgbC(PqCax?dQV3XE|e_hnQ!niG3N{NLY|H%_{ZLt68G`8#T+0ajQd#tZnp! z%v6M{r&lC>HtAS)X;zlot!voGgbuzonUgd!wbeG8@6N<%Gp}dadD2awWM3VJyAf{19mDA zAUaN4P`*RHpsj|@;tm80w&y(H+f#bhG+M$*-DDl{d3X^f&b1bwZ(X|oqU;=<4KLt` mq$>2q4cK@To_|SLG0%YAjcuEE?%3S=a?y+cJxKpX1pWd!BZ%Vw literal 0 HcmV?d00001 diff --git a/src/bin/sh.exe b/src/bin/sh.exe new file mode 100644 index 0000000000000000000000000000000000000000..5f736fd9dc01f97a2a0f3c4f77684e16334cfcc8 GIT binary patch literal 69632 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 delta 17851 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 diff --git a/src/bin/u2d.exe b/src/bin/u2d.exe new file mode 100644 index 0000000000000000000000000000000000000000..ad52d41b3a4396643e120e8e69f7d2a862bbcc50 GIT binary patch literal 17408 zcmeHP4Rlo1wZ4;FWC#N@>VQ8`xoTpGhAw-kBtq zpuV-<&+2=TY11Ss1q9qq{YNR^aiEjfEhyj&lco9Q1*UThP#q!M3ffqOiCrpZeMh3JVK!%3Iw*uO}qb6$lGMgNC zK(W;$_yYlds7*wnh1ID?vq$tai69s9hl5QXts56EYEBbMQ_$R}N|y`!+O`)p`$JrF zQFt26hP73-_T%vT0R}@1;836 z^&|ImK*RrouHR%B&@TA2db|OyuGPN{a>9N>RiWJz3c0s>xG;NHw1om*cc-u=*yd>w zSX&08!xId(`F&g(N2_B4QiVq_ueyvG9JSu&+d2j7{!1L(O_R8!@;A^%&mJvj6}-Yo zeOlWw9jpVe-)e1RI+z!*bGkM(o%i&{p16)0YuwNTe?Y`6Lc(I&U)@l#cF4jV2zWd5 zxius$4PhEPx}(-rUsbynI^QVV(dJ{i+UE5L-nNiPja*)6g|NllEVzSP!|fiQC{ROQ zC`Yp*s%aa$yQ#?&!1%sSW{|4b1+g>Wndt0?<_B{GETr2fELoBVp6Oj6EXjlUZEN-T z)HP1W3|Q_aOb8aStxarIVLo@e2g9rL|L+*zlL=WaJUort?rHZ2A!x7H-{hth5In)4 zKbXVy!ti6yew@|^{>>g=AA7Dil}g=eAFHz;-!*aq#uPa@s_eJ%?Z` z7A35w(7;L2dbB)Eo3=eJMQ=l;f6t{3v~NU_nl`KXlNHFHAAx0^m7>jrMt!7jI|zLI zo$pFfFG{iJb`#n{qVRx=8lu$j)V07RoB%5JWA+!N2YRR!w~t9t5hc07^ukf<6kDUV zzbHk&!b(!KSIh5L^KW+{mtx)Yjy{NYEJ~~$idN&zNzZL3z>_=Z9j(ALF$4DAL2u`S zlJf~UOX71C`34Ro{puuJRztVCj(g zzTKb@ITto}N7cfeDl-8V^Ly-6SrGob!giIbHvE=5So{`RO2S1bIx;|LG8l2_X_0Pwm_QFinYsqwKpF zoJ5Oh&dYO^M^TgKF|OBP`;wt%~Xx!ZWE)B@%Mh@{ZTb_)Bz5q5QCJ~_Z3<8ZhgkMSg z0>$*oP3`jOOqayNK#Dv^>zyTjH7$M2!AiRi&Bd0U3r`|2(Z+<_LYt5>A2VW+u{wUD zE@`rEQC!+&QUT27~OmzNdua`6TOY#OxXhuMy4pvIF!9K`KG2z z2=q85ng+F%lP0vF8e3j0jph$U#`(L7Wanu9@37E3h{q}ojHx2v5bo!Y11>p@k%J4# z5E6^2cjZ~hIRbPV{nuAOO6$-Hb$CJ!j~u#)Oa4fDKY7122LAhdEe@{n0QQdbR!-Z| z`Jo|e5wyKX3}N%2ZO!KqJicaZ?I9L;;nXFxV8aUuEkS?#`D6rv1y3Qd6Pw~<+jg5f zUl9H5=sMBXEHFUM`Q3Yk=~0Qsd4#9$Pr^wD4Ble=an>+t)k|1LsRo z5Z2SC?DK1Kq);jyPGDR22%&(dsja2W(_Fv=tc4IP+|5CZDP&?^if<7Ex6yvyDP$sD zVnmxFc6o?pa%`N#3F*+8hGnrdNomUd8X37@pELmmBs+&zOm9o)OXU7``5O!?*6>8E*# zN~l*ijiU54f-0dw9XvD5bt>GlaH<$SmF{1pF`|Q0(9Fbmi3;!4!L5KNo`4^$rBE>w zIbO)Zg=wQ!L46S53m$hI;HQ*FS9 z0|?qgIGLq*Lu+XOZNFycUFa*+!-!?dA!)!*D&p0wU_#rMubL`Rid&SE6YxDcIBv{1 z<=_O|vS@1mN`gNIxZHS_G;)f6m~umhaJMDs0q_16aT|<#rO@dQQ+SUPZ!-=A!L}`7 z99Y{Z$ZuZCB3<0ywY79olX?Os>lHo0cGbJ0vU+WUu-fDE1l?Z272blAm7pD(5yN+I zZrl%2Yp500zonB|ef zHXQ7fRP|5Z0HjTUWZae#1(3pn+}(o(^{CfmquEUieV~k`KClVkh>e9InQ>u6zwT zl$KRhSJiKz`BhfcuXWbd36-_$gi^s(x~{&eyrH^uo#1L%=c=u9779Wg1PIo_-G#+Z zjuqFhaN+R9Zd`IqYX=*k0HIcY*xM|$x;t=n>uK_|;p#(h!;S*PBa_jEhxrf*xxIdz zvL_CA+QDz7&_=c;76{vdbVs7?3sW?M>Cc3A6bMzmrosZ@6D2~u2cq-{F0yW6iBK0N z63dp^3WPF$Nc8&(gql)8uoc*}feu<=?Z;JrFHn@{Bgd{75pLiDdw;TeAJ zS(urh<(jGEl@b2f1U#UFGx_{x0=`EFucrQeDm*jZ{0V%^wNuBV{Y)W#A_uK^u=~pa zCp#%NCS1IBKY6(n9+$%=Y3Esar$uT!jnzfaAnkzP-tjKZDp*!fp<^C)HeNBJpWJv_ z+G&z^o|VEzIZTm2!f+;)BK@G4+i8@Y7RhO9OsoWf4~l0jX{wh1Q3{(7SxAjWHMmIJ zhaiD&BDmldZrc{F8JiK5FbAPA?5GJ>WORj<7a~VHaUX&Bf7eKL7Il5c z?M8FAB^#~kiQ;E@4tAozF@cU0CvkbJ9;5laDnuzo6FU}ne;34{Y9s^Y{VO4e=&KaH zsKNZxKv(9exC7>HCvfSYq47gU(cS2R(<+_$e+&|l_ve_qPaCL^BhIDilc4K>lsp>Q zY05Hp(+M9^L=-o3z-dB-Lpx4xGK!kYvp$Q^r(E1P`M#IND^8CmmSQY%WXd?nD=^M$ zL{FTh(MrCB0#2SBBl=51cr(3!KqgTf@s1M|q+bFM^`0TB8Zk~Y)F9lFe*aQJiRVvp}SNE*ZLEl6|0-!*9ON1T>Q zz5$MtBUC>W; z0~p#gQK@ZXmw`h&c*w+!=|U>+N4p#d|1bsir1JLY>fh4UAJ*0Tb@c~z_1(Jq6T13i zQ|c`KG@APwjP`ifnUuI7^7_oknXG=2u{al{yXLSP#OSf`$BL`+mgOTC8UKyTssQcLVx5?$%q;aM`THrOw zAANZL$oq@7UDEZsqx+aRn<-b%Yeaf7*$IBM^I(I;+y_4mcln#H_g&`h{a{}jiVT}0 z<0kXH`%p{eMo(W)i*tj6Ta4sIqVm^~eymF(>R(1m!zF8O%y}9L#w+iUX4agR_LEzS zz9?SWGn5-xWf5`3VlwROKHixn&yt;1$tVrNZIl0oTn&FszG>c@6WO1YJi=&=GFpFP zv__@<$v*Q7ImzK(87O@6`;-}z-;u^*W!aJ8v$8Sf;*&p69-0qls$PUo$P?f1=zM`K zrqLufSmYXOq?ilO)S~}^a`hgx++^NcZjtKvfov#wO1jxNXM84o)+@I_yDcs_Z5yb| z^9oSJy;8YVx)LM?oJNAN{S08*&meE|84#$pLzt)t7eUKI0%|4tbnt+DRDAXPBWJ^d z&rP37)M;RBC>N*PKMy3(8J4R&i2lhT)r+h8%jRdHBY!z=bFJDG%CV^$wfS}3Yyr<~ zj_1wmHqicndF2DFJFopG=SL?yHj9^Wn#C^5CSuK1eyRy#>VA)Skw-)!&yKzrzQ`WG z9Z^Vn1%5*P=dcyHIC@N+CykZdZW1@kW!Bhdthm_Vp(uZn=h$e82%)xjtjuB%SIA|i zlFP-p8N3^T_aMNG?a|OenCHcSi?;IKF!B`ASiacXuTT~ zt1*ws_C|7-EpQn;Ei+O7HO&+b7-7#BG0>Fw1Ny1@AGyXvF6c^f6@kdOAYO~tU1rQ{ zMr7O)z7n4~$ODbrsP0PsSuQnVwxxVhQN9bJy%~L4%px<``Z$8K*tS_+cg^~uXtu`@ zgdz5#AdJ{ro*Qc%Ri3#7bH#}}R&6uHw&h4B!~^exSzJ`&{*lzRjjF(q_LUO!N~-Ql z@4x20`CVt$i7UF!xWw7yLaW2yD6LE?=01bELvUQ~UFNAsV$YXv9>vsdu7PsvsXP<{$;f#`wk z7;$H&9RwqB7PhG_%A~x7&~q9zO9qX+k4bp}Xp957VH6%M%}3;*aK~pG52WR--5h{8RW1`}4lxP2#&G9Lw{5K1q|{+7c`YxEMh+SC z4{N;(S??k0jj)dv;|Oi+toH~tiR|l&Ntrjn>4;o2I>9NsQ9dw5-_rNp7I`}#3n1>1 zc8;36d*Ee&mZ}+*8%JZ-1+g+i$$02@l5xqYgghU>+?{K5z)6hVS)gZ10Z~jo_$cvl?-z+7^=2OW zm!U&5=jF+Cj;eI9>@+z(wsCx-%eu2*Fhsjrl*TAHrgQ6wnR90RVnk8MPEvr0V8Z`{YaQ<=- zvM-NFE3SE+h}{dyvOmXar{Pg^WDbPbUvW zggg||n0wJlFOO@f4P;W`Rr0OI=rIW{v=RsX5itj@J%12N7`$@oYKOmSkEa(}8cm)i zHI|{57naLakcV_8^12yfGtz!#WuGoc&(LC0&Yf1}HXk`D;T1Z$F(piV4tk>s?=Q5U zGySQ?jLm&zmfbi;x8g8B`MYp%yLof>5XfWM>0-cng2s|vd`ZIzvX_P-bL0UUeN2l# zjGO6K2^4DxXBTiK1U}i5l2g5fbLb9iDB~lU|l$=LG`IGMtWap8X>C;COa($0c zE;Guvn@XIfkV$&E$LfYJ&}jX_Cs{px|=D z;Q?oyKAPG1%(B$_srtBM_3eW!w(Ox zoU|XTyviK;BSb8BSi#j_wXnYkShuV5skBO2P%8@fl)r#4c^=V`2IMTnp;yaub@vk` z#-J(YvdRvG-{Dh;P%EtnD2i||ryi6*IsC(P*!+7V_NbIt4JS)N%aXBcl=0@hmE@e6 zzKvB{`0ytwdNcP8kr|wTMw5nUWe}xwS%<0iOgz9Gpl#dG1-@% zNgi7g_^58$bQ7P)D-&<3`zx((nMFFZ@6WTtH^KMgT5SXDo>m;kGIR6>s?->z(S5_S zOXbh(jnD8<)0mQy8*c=#lgtqqIl4(@4n;aS2A1S>;9)s!7D@3aX)~w(} zAb*iJjF*g>qd!F}y08NY>q7X-yKtL?8&>2_UaA?!nrxCk%gZ&xwQ}`SMycjR#(!a3 zyqpJw8kK#(NwfnRTlgdt zmHkTTV_=zf^|<))0SE53)Yh4-bp)+5wN`dYNX$iNdpt3dM!-}|83uS|IUJnf5M$wF z;t7~BSjddcEAwcBKa}_;0Lp7Krk=Og(`C{#Lcqb%&s26=l{*)(ewmv>$&H&~^i{Be09E;86%NAj1{wDD)gN(A5$=LjD;U|bm<4gTEz zB7XEXwz6h4bWQqvCpTKbdLz|B%owW|Ke-F+3&^^bM_B7pQRG~znUFXv%_k3M9l`(>{ZGRIfv*< zML7atnfJzVWza%aY9yoKb8#}~>|?RU9%UmIEf%{C_KvIh{f`m{(ys<+A-MquyOX^4PN@)<_F^FT5)}US>(*3j*)aop>jl>;g>k&mTZn=0!(ZI zb!~lbk^T_bXZ#fXiAK<}D?xc=7Po}*WFmhb%F?iOL`Ja0r-so7`at)Q>Mv6o$L+@_ zg)mAjhQVzJc9N@ijqE`sh66HAPjhQ+b!`?|1ES z^+w4QJ#Ox%qtie+zZ;qT#i!S@nlXu)MdJhICfwk0lH5h_f9htig28eqMY-(+%dEBl zbff#50LhWZ@P3qjFgQ@Y9Yylo1Le8JtYM9d;a5A5N#%3om7GrtTYl_CR zFYY%2%R+1=nz2kEMbcC52adEK5g;y@hNM?ifAtQOXR`2^{2Wu{m&$9_)or@^a$UVu zSO1ExUazZrb@gIheT}Z(rK|7I)w^|dQCF|f)dRYEfv&zvSKqFySL^BcZ z!w#cq2H#`A-$SB>K4%Q)JGd(3>@)FPV|Nx0C(F&@3-B&RieK;GPE7;n>2q>~=jq38 z_hjRO9C<5J9N*LY$o2G8{A@OEFW|NU2S;P*@rVxXnwtS%F%3LThw$hQ<6+=!{Qx|g zC;joLWy$p85nKS=0eIdtbZ8t0-~qsYIt`rX(HK$ZMQ2{2(81y0dfvQf9Fn^Y@arxB z-wpU?z;B)gPO>@-_#VKYo(9h3a&Ig(s6{Fi)E){ z+P_SP%hno1@6BeoF5nIV_j{nPUq5wyCUAEEx2wp(***g9Zs6`&=HRkE0`9B8jW2g_ zOFsfGhe?ip!oht9eLjd^l5qiWA1;ROO-C1P9Au0`b4JD+fj?Y=@5>*7b`Nm7Rynw* zrjs%Hb0lFNNT80_f7w&tH9_jxZrJ@Uj(c@d+X&hoL>os*drVP|J2iLvLUTPsz9nnx(#VFQY(^()P?jFqz94qARR_}6=@i01Zf<}7~wc8l7Liz zRE$)CR)$H|dY6^Wf8xbMSIx{u|0slSS0-GxB&hT zv&`LG%l=*y{*mhRo7Qqaq|W~S|9aN8+9Q?*w}#N?hID-b1*c8w2b{I&16oA8h_$&$ z-1HZp+_H&!1N#$M;1sjAI*-VHTCXy}kO3=EVPY^N@zUnzQvAh6DaYNXAeY!!5BMbXnVfER Su3PJ@URI=mF{%Ii&wl`%pc4!L literal 0 HcmV?d00001 diff --git a/src/bin/xxd.exe b/src/bin/xxd.exe new file mode 100644 index 0000000000000000000000000000000000000000..174894efff5f8390a35f494992136be7b1ada747 GIT binary patch literal 18944 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 +#include +#include +#include "db.h" + +void dbDeleteList(DbListEntry* lst) +{ + if(lst!=NULL){ + if(lst->data!=NULL) free(lst->data); + if(lst->next!=NULL) dbDeleteList(lst->next); + free(lst); + } +} + +WORD dbListIndex(DbListEntry* lst) +{ + DbListEntry* tmp=lst; + WORD i=0; + while(tmp->previous!=NULL){ + tmp=tmp->previous; + i++; + } + return i; +} + +WORD dbListSize(DbListEntry* lst) +{ + WORD i; + DbListEntry* tmp=lst; + i=dbListIndex(tmp)+1; + while(tmp->next!=NULL){ + tmp=tmp->next; + i++; + } + return i; +} + +void dbSkipLiteral(char ch, char* str, WORD* src, WORD* dst) +{ + str[*dst]=str[*src]; + while(str[++(*src)]!=ch) + str[++(*dst)]=str[*src]; + str[++*(dst)]=str[*src]; +} + +void dbTrimString(char* str) +{ + WORD src=0,dst=0; + char last=' '; + + while(str[src]!=0){ + if(str[src]=='\'' || str[src]=='"') + dbSkipLiteral(str[src],str,&src,&dst); + if(last==' ' && (str[src]==',' || str[src]==')' || str[src]=='(' + || str[src]=='+' || str[src]=='-' || str[src]=='*' || str[src]=='/' + || str[src]=='&' || str[src]=='|' || str[src]=='=' || str[src]=='<' + || str[src]=='>')) + dst--; + + str[dst]=str[src]; + + if((last!=',' && last!=' ' && last!='(' && last!='+' && last!='-' && + last!='*' && last!='/' && last!='&' && last!='|' && last!='=' && + last!='>' && last!='<') + || str[src]!=' ') + dst++; + + last=str[src]; + src++; + } + if(last==' ') + str[--dst]=0; + else + str[dst]=0; +} + +char* dbReplaceChar(char* str, char fnd, char rep){ + WORD i=0; + while(str[i]!=fnd && str[i]!=0x00) + i++; + if(str[i]!=0x00) str[i]=rep; + return str+i; +} + +DbListEntry* dbParseList(char* str, char eoe, char eol, WORD* ptr) +{ + WORD eptr=0; + char element[32]; + BYTE instr=(0==1); + BYTE inbrace=0; + DbListEntry* prev=NULL; + DbListEntry* first; + DbListEntry* current=malloc(sizeof(DbListEntry)); + first=current; + current->previous=NULL; + while((str[*ptr]!=eol || instr) && str[*ptr]!=0){ + switch(str[*ptr]){ + case '\'': + case '\"': + instr=!instr; + break; + case '(': + if(!instr) + inbrace++; + break; + case ')': + if(!instr) + inbrace--; + } + + if(str[*ptr]!=eoe || instr || inbrace>0) + element[eptr]=str[*ptr]; + else { + element[eptr]=0; + current->data=malloc(strlen(element)+1); + strcpy(current->data,element); + eptr=-1; + prev=current; + current->next=malloc(sizeof(DbListEntry)); + current=current->next; + current->previous=prev; + } + (*ptr)++; + eptr++; + } + element[eptr]=0; + current->data=malloc(strlen(element)+1); + strcpy(current->data,element); + current->next=NULL; + return first; +} + +DbStatement* dbParseStatement(char* str) +{ + char* stat=malloc(strlen(str)+1); + strcpy(stat,str); + dbTrimString(stat); +#ifdef FULLSQL + if(strncmp(stat,"SELECT",6)==0) + return dbParseSelect(stat); + if(strncmp(stat,"INSERT",6)==0) + return dbParseInsert(stat); + if(strncmp(stat,"UPDATE",6)==0) + return dbParseUpdate(stat); + if(strncmp(stat,"DELETE",6)==0) + return dbParseDelete(stat); +#else + if(strncmp(stat,"SEL",3)==0) + return dbParseSelect(stat); + if(strncmp(stat,"INS",3)==0) + return dbParseInsert(stat); + if(strncmp(stat,"UPD",3)==0) + return dbParseUpdate(stat); + if(strncmp(stat,"DEL",3)==0) + return dbParseDelete(stat); +#endif + return NULL; +} + +DbStatement* dbParseSelect(char* str) +{ + WORD strptr; + DbStatement* stat=malloc(sizeof(DbStatement)); + stat->type=STMT_SELECT; + stat->wheres=NULL; + stat->auxlist=NULL; +#ifdef FULLSQL + strptr=6; +#else + strptr=3; +#endif + if(str[strptr]==' ') strptr++; + + stat->fields=dbParseList(str,',',' ',&strptr); +#ifdef FULLSQL + if(strncmp(str+strptr," FROM ",6)==0) + strptr+=6; +#else + if(strncmp(str+strptr," FR ",4)==0) + strptr+=4; +#endif + else + return NULL; + stat->tables=dbParseList(str,',',' ',&strptr); + + +#ifdef FULLSQL + if(strncmp(str+strptr," WHERE",6)==0){ + strptr+=6; +#else + if(strncmp(str+strptr," WH",3)==0){ + strptr+=3; +#endif + if(str[strptr]==' ') strptr++; + stat->wheres=dbParseList(str,',',' ',&strptr); + } +#ifdef FULLSQL + if(strncmp(str+strptr," ORDER BY ",10)==0){ + strptr+=10; +#else + if(strncmp(str+strptr," ORD ",5)==0){ + strptr+=5; +#endif + stat->auxlist=dbParseList(str,',',' ',&strptr); + } + + return stat; +} + +DbStatement* dbParseInsert(char* str) +{ + WORD strptr; + DbStatement* stat=malloc(sizeof(DbStatement)); + stat->type=STMT_INSERT; + stat->wheres=NULL; +#ifdef FULLSQL + strptr=7; +#else + strptr=4; +#endif + + stat->tables=dbParseList(str,',','(',&strptr); + if(strncmp(str+strptr,"(",1)==0) + strptr+=1; + else + return NULL; + stat->fields=dbParseList(str,',',')',&strptr); +#ifdef FULLSQL + if(strncmp(str+strptr,") VALUES(",9)==0){ + strptr+=9; +#else + if(strncmp(str+strptr,") VAL(",6)==0){ + strptr+=6; +#endif + stat->auxlist=dbParseList(str,',',')',&strptr); + } else + return NULL; + return stat; +} + +DbStatement* dbParseUpdate(char* str) +{ + WORD strptr; + DbStatement* stat=malloc(sizeof(DbStatement)); + stat->type=STMT_UPDATE; + stat->wheres=NULL; + stat->auxlist=NULL; +#ifdef FULLSQL + strptr=7; +#else + strptr=4; +#endif + + stat->tables=dbParseList(str,',',' ',&strptr); +#ifdef FULLSQL + if(strncmp(str+strptr," SET ",5)==0) + strptr+=5; +#else + if(strncmp(str+strptr," ST ",4)==0) + strptr+=4; +#endif + else + return NULL; + stat->fields=dbParseList(str,',',' ',&strptr); + +#ifdef FULLSQL + if(strncmp(str+strptr," WHERE",6)==0){\ + strptr+=6; +#else + if(strncmp(str+strptr," WH",3)==0){ + strptr+=3; +#endif + if(str[strptr]==' ') strptr++; + stat->wheres=dbParseList(str,',',' ',&strptr); + + } + + return stat; +} + +DbStatement* dbParseDelete(char* str) +{ + WORD strptr; + DbStatement* stat=malloc(sizeof(DbStatement)); + stat->type=STMT_DELETE; + stat->wheres=NULL; + stat->auxlist=NULL; + stat->fields=NULL; +#ifdef FULLSQL + strptr=7; +#else + strptr=4; +#endif + + stat->tables=dbParseList(str,',',' ',&strptr); +#ifdef FULLSQL + if(strncmp(str+strptr," WHERE",6)==0){ + strptr+=6; + if(str[strptr]==' ') strptr++; + stat->wheres=dbParseList(str,',',' ',&strptr); + + } +#else + if(strncmp(str+strptr," WH",3)==0){ + strptr+=3; + if(str[strptr]==' ') strptr++; + stat->wheres=dbParseList(str,',',' ',&strptr); + } +#endif + + return stat; +} + +void dbTableOpen(DbTable* tbl) +{ + FILE *ff; + WORD nfield,i; + BYTE* buf=malloc(64); + strcpy(buf,DB_DIRECTORY); + strcat(buf,tbl->name); + strcat(buf,".TBL"); + tbl->open=0; + + ff=fopen(buf,"rb"); + fread(buf,4,1,ff); + if(buf[0]!='T' || buf[1]!='B' || buf[2]!='L' || buf[3]!=' ') + goto einde; + fread(buf,4,1,ff); + nfield=buf[0]; + tbl->fields=nfield; + tbl->fieldspecs=(DbField*) malloc(sizeof(DbField)*nfield); + for(i=0; ifieldspecs[i].name,8,1,ff); + tbl->fieldspecs[i].name[8]=0; + fread(&(tbl->fieldspecs[i].datatype),3,1,ff); + fread(buf,1,1,ff); + } + strcpy(buf,DB_DIRECTORY); + strcat(buf,tbl->name); + strcat(buf,".DAT"); + tbl->datafile=fopen(buf,"r+b"); + tbl->open=1; + fread(buf,4,1,tbl->datafile); + if(buf[0]!='D' || buf[1]!='A' || buf[2]!='T' || buf[3]!=' '){ + tbl->open=0; + fclose(tbl->datafile); + }else { + fread(&(tbl->numrecs),2,1,tbl->datafile); + fread(&(tbl->unusedrecs),2,1,tbl->datafile); + fread(buf,2,1,tbl->datafile); + } +einde: + fclose(ff); + free(buf); +} + +void dbTableClose(DbTable* tbl) +{ + fclose(tbl->datafile); + free(tbl->fieldspecs); + free(tbl); + tbl=NULL; +} + +void dbStatementClose(DbStatement* stat) +{ + dbDeleteList(stat->fields); + dbDeleteList(stat->tables); + dbDeleteList(stat->wheres); + dbDeleteList(stat->auxlist); + free(stat); + stat=NULL; +} + +void dbResultSetClose(DbResultSet* rs) +{ + fclose(rs->datafile); + free(rs->fieldspecs); + free(rs); + rs=NULL; +} + +WORD dbFieldOffset(DbResultSet* tbl, WORD field) +{ + WORD i,s=0; + for(i=0; ifieldspecs[i].size; + s+=2; + return s; +} + +WORD dbRecordSize(DbResultSet* tbl) +{ + return dbFieldOffset(tbl,tbl->fields); +} + +WORD dbFieldSearch(DbResultSet* tbl,char* str) +{ + WORD i; + for(i=0; ifields; i++) + if(strcmp(tbl->fieldspecs[i].name,str)==0) + return i; + return -1; +} + +DbResultSet* dbExecuteQuery(DbStatement* stat) +{ + DbResultSet* rs=malloc(sizeof(DbResultSet)); + DbTable* tbl=malloc(sizeof(DbTable)); + DbField* field; + DbListEntry* current; + WORD* offset; + WORD* size; + BYTE *src,*dst; + WORD ptr; + WORD i,j,rowsize,recsize; + DbExpression* where; + WORD sp=0; + DbRow* dummy=dbNewRow(); + + strcpy(tbl->name,stat->tables->data); + dbTableOpen(tbl); + + rs->rows=0; + rs->rowptr=0; + + if(strcmp(stat->fields[0].data,"\"*\"")==0){ + rs->fields=tbl->fields; + offset=malloc(rs->fields*2); + size=malloc(rs->fields*2); + rs->fieldspecs=malloc(sizeof(DbField)*rs->fields); + for(i=0; ifields; i++){ + field=&(tbl->fieldspecs[i]); + offset[i]=dbFieldOffset((DbResultSet*) tbl,i); + size[i]=field->size; + memcpy(&(rs->fieldspecs[i]),&(tbl->fieldspecs[i]),sizeof(DbField)); + } + }else{ + rs->fields=dbListSize(stat->fields); + offset=malloc(rs->fields*2); + size=malloc(rs->fields*2); + rs->fieldspecs=malloc(sizeof(DbField)*rs->fields); + current=stat->fields; + for(i=0; ifields; i++){ + WORD j=dbFieldSearch((DbResultSet*) tbl,current->data); + field=&(tbl->fieldspecs[j]); + offset[i]=dbFieldOffset((DbResultSet*) tbl,j); + size[i]=field->size; + memcpy(&(rs->fieldspecs[i]),&(tbl->fieldspecs[j]),sizeof(DbField)); + current=current->next; + } + } + recsize=dbRecordSize((DbResultSet*) tbl); + src=malloc(recsize); + rowsize=dbRecordSize(rs); + dst=malloc(rowsize); + dummy->source=(DbResultSet*) tbl; + dummy->rownr=0; + dummy->data=src; + + rs->datafile=fopen("result","wb"); + if(stat->wheres!=NULL) + where=dbParseExpression(stat->wheres->data,&sp); + else + where=dbParseExpression(NULL,&sp); + + for(i=0; inumrecs; i++){ + fread(src,recsize,1,tbl->datafile); + if(src[0]==0x01){ + dst[0]=1; + dst[1]=0; + ptr=2; + for(j=0; jfields; j++){ + memcpy(dst+ptr,src+offset[j],size[j]); + ptr+=size[j]; + } + dbEvaluateExpression(where,dummy); + if(where->result==1){ + fwrite(dst,rowsize,1,rs->datafile); + rs->rows++; + } + } + } + free(src); + free(offset); + free(size); + free(dummy); + dbDeleteExpression(where); + + dbTableClose(tbl); + fclose(rs->datafile); + rs->datafile=fopen("result","r+b"); + return rs; +} + +DbResultSet* dbExecuteInsert(DbStatement* stat) +{ + DbTable *tbl=malloc(sizeof(DbTable)); + BYTE* record; + BYTE* buf; + DbListEntry *currentf,*currentv; + DbField* field; + WORD fields; + WORD i; + WORD offset,size; + WORD recsize; + strcpy(tbl->name,stat->tables->data); + dbTableOpen(tbl); + + recsize=dbRecordSize((DbResultSet*) tbl); + record=malloc(recsize); + for(i=0; ifields); + currentf=stat->fields; + currentv=stat->auxlist; + for(i=0; idata); + field=&(tbl->fieldspecs[j]); + offset=dbFieldOffset((DbResultSet*) tbl,j); + size=field->size; + if(currentv->data[0]=='\''){ + currentv->data[strlen(currentv->data)-1]=0; + switch(field->datatype){ + case 'S': + memcpy(record+offset,currentv->data+1,size); + break; + case 'I': + if(field->size==2) + *((WORD*) (record+offset))=atoi(currentv->data+1); + else if(field->size==4) + *((LONG*) (record+offset))=atol(currentv->data+1); + } + }else{ + switch(field->datatype){ + case 'I': + if(field->size==2) + *((WORD*) (record+offset))=atoi(currentv->data); + else if(field->size==4) + *((LONG*) (record+offset))=atol(currentv->data); + } + } + currentf=currentf->next; + currentv=currentv->next; + } + + if(tbl->unusedrecs==0){ + fseek(tbl->datafile,4,SEEK_SET); + *((WORD*) buf)=tbl->numrecs+1; + fwrite(buf,2,1,tbl->datafile); + fseek(tbl->datafile,0L,SEEK_END); + } else { + fseek(tbl->datafile,6,SEEK_SET); + *((WORD*) buf)=tbl->unusedrecs-1; + fwrite(buf,2,1,tbl->datafile); + fseek(tbl->datafile,0x0a,SEEK_SET); + ((WORD*) buf)[0]=(WORD) 0xffff; + while(buf[0]!=0x00) + fread(buf,recsize,1,tbl->datafile); + fseek(tbl->datafile,-recsize,SEEK_CUR); + } + fwrite(record,recsize,1,tbl->datafile); + + free(record); + free(buf); + + dbTableClose(tbl); + + return NULL; +} + +DbResultSet* dbExecuteDelete(DbStatement* stat) +{ + DbTable *tbl=malloc(sizeof(DbTable)); + BYTE* record; + WORD i; + WORD recsize; + WORD deletes; + DbExpression* expr; + DbRow* row; + strcpy(tbl->name,stat->tables->data); + dbTableOpen(tbl); + + recsize=dbRecordSize((DbResultSet*) tbl); + record=malloc(recsize); + i=0; + if(stat->wheres!=NULL) + expr=dbParseExpression(stat->wheres->data,&i); + else + expr=dbParseExpression(NULL,&i); + row=dbNewRow(); + row->source=(DbResultSet*) tbl; + row->data=record; + row->rownr=0; + deletes=0; + for(i=0; inumrecs; i++) + { + fread(row->data,recsize,1,tbl->datafile); + if(record[0]==0x01){ + dbEvaluateExpression(expr,row); + if(expr->result==1){ + record[0]=0; + fseek(tbl->datafile,-recsize,SEEK_CUR); + fwrite(row->data,recsize,1,tbl->datafile); + fseek(tbl->datafile,0,SEEK_CUR); + deletes++; + } + } + } + dbDeleteRow(row); + fseek(tbl->datafile,6,SEEK_SET); + deletes+=tbl->unusedrecs; + fwrite(&deletes,2,1,tbl->datafile); + + dbDeleteExpression(expr); + dbTableClose(tbl); + return NULL; +} + +DbResultSet* dbExecuteUpdate(DbStatement* stat){ + DbTable *tbl=malloc(sizeof(DbTable)); + BYTE* record; + WORD i,j,k,l; + WORD recsize; + WORD nfields; + DbExpression* expr; + DbExpression** fieldexpr; + DbRow* row; + DbListEntry* current; + char* str; + strcpy(tbl->name,stat->tables->data); + dbTableOpen(tbl); + + recsize=dbRecordSize((DbResultSet*) tbl); + record=malloc(recsize); + i=0; + if(stat->wheres!=NULL) + expr=dbParseExpression(stat->wheres->data,&i); + else + expr=dbParseExpression(NULL,&i); + row=dbNewRow(); + row->source=(DbResultSet*) tbl; + row->data=record; + row->rownr=0; + nfields=dbListSize(stat->fields); + fieldexpr=malloc(nfields*sizeof(DbExpression*)); + current=stat->fields; + + for(j=0; jdata,'=',(BYTE) 0x00); + l=0; + fieldexpr[j]=dbParseExpression(str+1,&l); + current=current->next; + } + + for(i=0; inumrecs; i++) + { + fread(row->data,recsize,1,tbl->datafile); + if(record[0]==0x01){ + dbEvaluateExpression(expr,row); + if(expr->result==1){ + fseek(tbl->datafile,-recsize,SEEK_CUR); + for(j=0; jfields; + for(j=0; jdata); + l=dbFieldOffset((DbResultSet*) tbl,k); + switch(tbl->fieldspecs[k].datatype){ + case 'S': + memcpy(row->data+l,fieldexpr[j]->sresult,tbl->fieldspecs[k].size); + break; + case 'I': + memcpy(row->data+l,&(fieldexpr[j]->result),tbl->fieldspecs[k].size); + break; + } + current=current->next; + } + + fwrite(row->data,recsize,1,tbl->datafile); + fseek(tbl->datafile,0,SEEK_CUR); + } + } + } + dbDeleteRow(row); + for(j=0; jtype){ + case STMT_SELECT: + rs=dbExecuteQuery(stat); break; + case STMT_INSERT: + rs=dbExecuteInsert(stat); break; + case STMT_DELETE: + rs=dbExecuteDelete(stat); break; + case STMT_UPDATE: + rs=dbExecuteUpdate(stat); break; + } + dbStatementClose(stat); + return rs; +} + +void dbNextRow(DbResultSet* rs, DbRow* row) +{ + WORD s; + + s=dbRecordSize(rs); + + if(row->data==NULL){ + row->data=malloc(s); + } + if(rs->rowptr>=rs->rows){ + row->rownr=-1; + free(row->data); + row->data=NULL; + }else{ + row->rownr=rs->rowptr++; + row->source=rs; + fread(row->data,s,1,rs->datafile); + } +} + +void dbDeleteRow(DbRow* row) +{ + if(row!=NULL){ + if(row->data!=NULL) + free(row->data); + free(row); + } +} + +DbRow* dbNewRow() +{ + DbRow* row=malloc(sizeof(DbRow)); + row->data=NULL; + row->source=NULL; + row->rownr=-1; + return row; +} + + +void dbGetString(DbRow* row, WORD field, char* dest) +{ + WORD o,i; + BYTE* dat=(BYTE*)(row->data); + o=dbFieldOffset(row->source,field); + i=0; + switch(row->source->fieldspecs[field].datatype){ + case 'S': + strcpy(dest,dat+o); + break; + case 'I': + if(row->source->fieldspecs[field].size==2) + itoa(*((WORD*) (dat+o)),dest,10); + else if (row->source->fieldspecs[field].size==4) + ltoa(*((LONG*) (dat+o)),dest,10); + break; + } +} + +WORD dbGetInt(DbRow* row, WORD field) +{ + WORD o; + BYTE* dat=(BYTE*)(row->data); + o=dbFieldOffset(row->source,field); + switch(row->source->fieldspecs[field].datatype){ + case 'S': + return atoi(dat+o); + case 'I': + return *((WORD*) (dat+o)); + default: + return 0; + } +} + +LONG dbGetLong(DbRow* row, WORD field) +{ + WORD o; + BYTE* dat=(BYTE*)(row->data); + o=dbFieldOffset(row->source,field); + switch(row->source->fieldspecs[field].datatype){ + case 'S': + return atol(dat+o); + case 'I': + if(row->source->fieldspecs[field].size==2) + return (LONG) (*((WORD*) (dat+o))); + else + return *((LONG*) (dat+o)); + default: + return 0; + } +} + +BYTE dbOperatorPrecedence(BYTE oper){ + switch(oper){ + case '(': + return 1; + case '^': + return 2; + case '*': + case '/': + return 3; + case '+': + case '-': + return 4; + case '=': /* 5 = OPERATOR_LOGIC */ + case '>': + case '<': + case ']': + case '[': + return 5; + case '&': + case '|': + return 6; + case ';': + case ')': + case 0x00: + return 63; + default: + return 0; + } +} + +DbExpression* dbNewExpression(DbExpression* p, BYTE t){ + DbExpression* r=malloc(sizeof(DbExpression)); + r->eval=0; + r->expr[0]=NULL; + r->expr[1]=NULL; + r->oper=0; + r->parent=p; + r->type=t; + r->result=0; + return r; +} + +DbExpression* dbParseExpression(char* str, WORD* strptr){ + DbExpression *ret,*fetch; + DbExpression* expr=NULL; + char value[64]; + WORD prec; + WORD i; + WORD valptr=0; + if(str==NULL){ + ret=dbNewExpression(NULL,EXPR_VALUE); + ret->value[0]='1'; + ret->value[1]=0; + return ret; + } + + for(i=0; i<64; i++) + value[i]=0; +#ifdef EXPR_DISPLAY + printf("Parsing: '%s'\n",str+(*strptr)); +#endif + ret=dbNewExpression(NULL,EXPR_EXPR); + fetch=ret; +#ifdef EXPR_DISPLAY + DisplayExpression(ret);printf("\n"); +#endif + do{ + expr=NULL; +terug: + prec=dbOperatorPrecedence(str[*strptr]); + if(prec==0) + value[valptr]=str[*strptr]; + else if(prec==1){ + if(str[*strptr]==')') + prec=63; + if(str[*strptr]=='('){ + valptr=0; + (*strptr)++; + expr=dbParseExpression(str,strptr); + goto terug; + } + } else { + value[valptr]=0; + if(fetch->expr[0]==NULL){ + if(expr==NULL){ + fetch->expr[0]=dbNewExpression(fetch,EXPR_VALUE); + strcpy(fetch->expr[0]->value,value); + }else + fetch->expr[0]=expr; + fetch->oper=str[*strptr]; + } else { + if(dbOperatorPrecedence(fetch->oper)>prec){ + fetch->expr[1]=dbNewExpression(fetch,EXPR_EXPR); + if(expr==NULL){ + fetch->expr[1]->expr[0]=dbNewExpression(fetch->expr[1],EXPR_VALUE); + strcpy(fetch->expr[1]->expr[0]->value,value); + }else + fetch->expr[1]->expr[0]=expr; + fetch->expr[1]->oper=str[*strptr]; + fetch=fetch->expr[1]; + } else if(prec==63){ + if(expr==NULL){ + fetch->expr[1]=dbNewExpression(fetch,EXPR_VALUE); + strcpy(fetch->expr[1]->value,value); + }else + fetch->expr[1]=expr; + } else if(dbOperatorPrecedence(fetch->oper)<=prec){ + if(expr==NULL){ + fetch->expr[1]=dbNewExpression(fetch,EXPR_VALUE); + strcpy(fetch->expr[1]->value,value); + }else + fetch->expr[1]=expr; + while (dbOperatorPrecedence(fetch->oper)<=prec && fetch->parent!=NULL) + { + fetch=fetch->parent; + } + if(fetch->parent==NULL && dbOperatorPrecedence(fetch->oper)<=prec){ + ret=dbNewExpression(NULL,EXPR_EXPR); + ret->expr[0]=fetch; + ret->oper=str[*strptr]; + fetch=ret; + }else if(fetch->parent==NULL && dbOperatorPrecedence(fetch->oper)>prec){ + DbExpression* dummy; + dummy=dbNewExpression(fetch,EXPR_EXPR); + dummy->expr[0]=fetch->expr[1]; + dummy->oper=str[*strptr]; + dummy->expr[0]->parent=dummy; + fetch->expr[1]=dummy; + fetch=dummy; + }else{ + DbExpression* par=fetch->parent; + par->expr[1]=dbNewExpression(par,EXPR_EXPR); + par->expr[1]->expr[0]=fetch; + par->expr[1]->oper=str[*strptr]; + fetch=par->expr[1]; + } + } + } + valptr=-1; +#ifdef EXPR_DISPLAY + DisplayExpression(ret);printf("\n"); +#endif + } + valptr++; (*strptr)++; + } while(prec<63); + while(ret->expr[1]==NULL && ret->type==EXPR_EXPR){ + fetch=ret; + ret=ret->expr[0]; + free(fetch); + } + return ret; +} + +void dbDeleteExpression(DbExpression* expr){ + if(expr->type==EXPR_EXPR){ + dbDeleteExpression(expr->expr[0]); + dbDeleteExpression(expr->expr[1]); + } + free(expr); + +} + +#ifdef EXPR_DISPLAY + +void DisplayExpression(DbExpression* expr){ + if(expr==NULL) + printf(".."); + else{ + if(expr->type==EXPR_EXPR){ + printf("("); + DisplayExpression(expr->expr[0]); + printf("%c",expr->oper); + DisplayExpression(expr->expr[1]); + printf(")"); + } else + printf("%s",expr->value); + } +} + +void DisplayExpressionTree(char* str){ + DbExpression* expr; + WORD ptr=0; + expr=dbParseExpression(str,&ptr); + DisplayExpression(expr); + dbDeleteExpression(expr); + printf("\n"); +} + +#endif + +void dbEvaluateExpression(DbExpression* expr, DbRow* row){ + if(expr->type==EXPR_EXPR){ + dbEvaluateExpression(expr->expr[0],row); + dbEvaluateExpression(expr->expr[1],row); + if(dbOperatorPrecedence(expr->oper)expr[0]->valuetype==VALTYPE_INT && expr->expr[1]->valuetype==VALTYPE_INT){ + LONG res; + expr->valuetype=VALTYPE_INT; + switch(expr->oper){ + case '+': + res=expr->expr[0]->result + expr->expr[1]->result; + break; + case '-': + res=expr->expr[0]->result - expr->expr[1]->result; + break; + case '*': + res=expr->expr[0]->result * expr->expr[1]->result; + break; + case '/': + res=expr->expr[0]->result / expr->expr[1]->result; + break; + } + expr->result=res; + } + } else { + if(expr->expr[0]->valuetype!=VALTYPE_STRING && expr->expr[1]->valuetype!=VALTYPE_STRING){ + expr->valuetype=VALTYPE_BOOLEAN; + switch(expr->oper){ + case '=': + expr->result=expr->expr[0]->result == expr->expr[1]->result?1:0; + break; + case '<': + expr->result=expr->expr[0]->result < expr->expr[1]->result?1:0; + break; + case '>': + expr->result=expr->expr[0]->result > expr->expr[1]->result?1:0; + break; + case '[': + expr->result=expr->expr[0]->result <= expr->expr[1]->result?1:0; + break; + case ']': + expr->result=expr->expr[0]->result >= expr->expr[1]->result?1:0; + break; + case '&': + expr->result=expr->expr[0]->result & expr->expr[1]->result; + break; + case '|': + expr->result=expr->expr[0]->result | expr->expr[1]->result; + break; + } + } + + if(expr->expr[0]->valuetype==VALTYPE_STRING && expr->expr[1]->valuetype==VALTYPE_STRING){ + WORD cmp=strcmp(expr->expr[0]->sresult,expr->expr[1]->sresult); + switch(expr->oper){ + case '=': + expr->valuetype=VALTYPE_BOOLEAN; + expr->result=(cmp==0)?1:0; + break; + case '<': + expr->valuetype=VALTYPE_BOOLEAN; + expr->result=(cmp<0)?1:0; + break; + case '>': + expr->valuetype=VALTYPE_BOOLEAN; + expr->result=(cmp>0)?1:0; + break; + case '[': + expr->valuetype=VALTYPE_BOOLEAN; + expr->result=(cmp<=0)?1:0; + break; + case ']': + expr->valuetype=VALTYPE_BOOLEAN; + expr->result=(cmp>=0)?1:0; + break; + case '+': + expr->valuetype=VALTYPE_STRING; + strcpy(expr->sresult,expr->expr[0]->sresult); + strcat(expr->sresult,expr->expr[1]->sresult); + break; + } + } + if(expr->expr[0]->valuetype==VALTYPE_BOOLEAN && expr->expr[1]->valuetype==VALTYPE_BOOLEAN){ + expr->valuetype=VALTYPE_BOOLEAN; + switch(expr->oper){ + case '&': + expr->result=expr->expr[0]->result & expr->expr[1]->result; + break; + case '|': + expr->result=expr->expr[0]->result | expr->expr[1]->result; + break; + } + } + } + + } else { + WORD i,n,f=-1; + if(row!=NULL){ + n=row->source->fields; + for(i=0; isource->fieldspecs[i].name,expr->value)==0) + f=i; + /*expr->type=EXPR_FIELD;*/ + } + } + if(f<0 || row==NULL){ + if(expr->value[0]=='\''){ + expr->valuetype=VALTYPE_STRING; + strcpy(expr->sresult,expr->value+1); + expr->sresult[strlen(expr->sresult)-1]=0; + } else { + expr->valuetype=VALTYPE_INT; + expr->result=atol(expr->value); + } + }else{ + if(row->source->fieldspecs[f].datatype=='I'){ + expr->valuetype=VALTYPE_INT; + expr->result=dbGetLong(row,f); + } else if (row->source->fieldspecs[f].datatype=='S'){ + expr->valuetype=VALTYPE_STRING; + dbGetString(row,f,expr->sresult); + } + } + } +#ifdef EXPR_DISPLAY + DisplayExpression(expr);printf("=%ld\n",expr->result); +#endif +} diff --git a/src/db/db.h b/src/db/db.h new file mode 100644 index 00000000..f2543c99 --- /dev/null +++ b/src/db/db.h @@ -0,0 +1,152 @@ +#ifndef _DB_H +#define _DB_H + +#include +/*#define INTEL removed by Nick - please see n.bat */ +/*#define EXPR_DISPLAY*/ +/*#define FULLSQL*/ + +typedef unsigned char BYTE; +#ifdef ZILOG +typedef int WORD; +typedef long LONG; +typedef float FLOAT; +#else +typedef short WORD; +typedef int LONG; +typedef float FLOAT; +#endif + +typedef struct DbListEntry{ + struct DbListEntry* previous; + struct DbListEntry* next; + BYTE* data; +} DbListEntry; + +typedef struct DbTreeListEntry{ + struct DbTreeListEntry* previous; + struct DbTreeListEntry* next; + BYTE* data; + struct DbTreeListEntry* firstchild; + BYTE operation; +} DbTreeListEntry; + +typedef struct DbStatement { + BYTE type; + DbListEntry* fields; + DbListEntry* tables; + DbListEntry* wheres; + DbListEntry* auxlist; +} DbStatement; + +typedef struct DbField { + char name[9]; + BYTE datatype; + BYTE size; + BYTE index; +} DbField; + +typedef struct DbTable { + WORD fields; + DbField* fieldspecs; + WORD numrecs; + WORD unusedrecs; + FILE* datafile; + BYTE open; + char name[9]; +} DbTable; + +typedef struct DbResultSet { + WORD fields; + DbField* fieldspecs; + WORD rows; + WORD rowptr; + FILE* datafile; +} DbResultSet; + +typedef union DbRowSet{ + DbTable astable; + DbResultSet asresult; +} DbRowSet; + +typedef struct DbRow { + DbResultSet* source; + WORD rownr; + BYTE* data; +} DbRow; + +typedef struct DbExpression { + BYTE type; + BYTE valuetype; + BYTE oper; + BYTE eval; + char value[32]; + LONG result; + char sresult[32]; + struct DbExpression* expr[2]; + struct DbExpression* parent; +} DbExpression; + +void dbDeleteList(DbListEntry* lst); +WORD dbListIndex(DbListEntry* lst); +WORD dbListSize(DbListEntry* lst); +void dbSkipLiteral(char ch, char* str, WORD* src, WORD* dst); + +void dbTrimString(char* str); +DbStatement* dbParseStatement(char* str); +DbStatement* dbParseSelect(char* str); +DbStatement* dbParseInsert(char* str); +DbStatement* dbParseUpdate(char* str); +DbStatement* dbParseDelete(char* str); +DbListEntry* dbParseList(char* str,char eoe,char eol,WORD* ptr); +DbResultSet* dbExecuteStatement(char* str); +DbResultSet* dbExecuteQuery(DbStatement* stat); +DbResultSet* dbExecuteInsert(DbStatement* stat); + +void dbTableOpen(DbTable* tbl); +void dbTableClose(DbTable* tbl); +void dbStatementClose(DbStatement* stat); +void dbResultSetClose(DbResultSet* rs); +void dbDeleteRow(DbRow* row); +DbRow* dbNewRow(); + +WORD dbFieldOffset(DbResultSet* tbl, WORD field); +WORD dbRecordSize(DbResultSet* tbl); +WORD dbFieldSearch(DbResultSet* tbl,char* str); + +void dbNextRow(DbResultSet* rs, DbRow* row); +void dbGetString(DbRow* row,WORD field, char* dest); +WORD dbGetInt(DbRow* row, WORD field); +LONG dbGetLong(DbRow* row, WORD field); + +BYTE dbOperatorPrecedence(BYTE oper); +DbExpression* dbParseExpression(char* str, WORD* strptr); +void dbDeleteExpression(DbExpression* expr); +void dbEvaluateExpression(DbExpression* expr, DbRow* row); +#ifdef EXPR_DISPLAY +void DisplayExpression(DbExpression* expr); +void DisplayExpressionTree(char* str); +#endif + +#define STMT_SELECT 's' +#define STMT_INSERT 'i' +#define STMT_UPDATE 'u' +#define STMT_DELETE 'd' +#ifdef ZILOG +#define DB_DIRECTORY "/usr/db/" +#else +#define DB_DIRECTORY ".\\" +#endif + +#define EXPR_VALUE 1 +#define EXPR_FIELD 2 /*Unused*/ +#define EXPR_EXPR 3 + +#define VALTYPE_INT 1 +#define VALTYPE_FLOAT 2 /*Unused*/ +#define VALTYPE_STRING 3 +#define VALTYPE_BOOLEAN 4 + +#define OPERATOR_LOGIC 5 /* Operator precedence base-nr. for logical operators*/ + +#endif \ No newline at end of file diff --git a/src/db/db.i86 b/src/db/db.i86 new file mode 100644 index 00000000..3299ad7c --- /dev/null +++ b/src/db/db.i86 @@ -0,0 +1,712 @@ +:020000040000FA +:20000000C9A6020078563412140000810081418684888498D1ED534186C1ED434386E122C1 +:130020004586219C6F3E00CD1982EB21AE4C3E01C319828D +:20055500DDE5D5DDE17BB22827DD7E04DDB6052803CD8A45DD7E02DDB603280EDD5E02DDB4 +:2005750056033E00215545CD1982DDE5D1CD9045DDE1C3A981DD5E04DD56053E00213C7E3C +:20059500C31982C5FDE5DDE5D56B62E5DDE1FD210000DD7E00DDB601280DDD6E00DD660169 +:2005B500E5DDE1FD2318EBFDE5E1F1DDE1FDE1C1C3A981C5FDE5DDE5D56B62E5DDE1EB3E8B +:2005D50000219845CD198223E5FDE1DD7E02DDB603280DDD6E02DD6603E5DDE1FD2318EB39 +:2005F500C3BC45FDE5DDE5D5C5DDE1210A00395E2356D5FDE1FD6E00FD66010956210C00DD +:20061500397E23666F5E23666B0972FDE5E14E234603702B71DDE5E1097E21000039BEFD81 +:200635006E00FD6601DDE5C10956D5210E00397E23666F5E235613722B73696019D120CAA7 +:2006550072E1DDE1FDE1C3A981C5FDE5DDE5DD210000DD39F5F5F5D5FDE1AFDD77FADD7749 +:20067500FBDD77FCDD77FDDD36FE20DD6EFADD66FBFDE5C1097EB7CADE47DD6EFADD66FBC2 +:20069500097EFE27280CDD6EFADD66FB097EFE22201D21020039E52B2BE5DD6EFADD66FBFF +:2006B500FDE5D1195E3E0021F845CD1982E1E1DD7EFEFE20C26D47DD6EFADD66FBFDE5C122 +:2006D500097EFE2CCA6047DD6EFADD66FB097EFE292878DD6EFADD66FB097EFE28286CDD71 +:2006F5006EFADD66FB097EFE2B2860DD6EFADD66FB097EFE2D2854DD6EFADD66FB097EFE4E +:200715002A2848DD6EFADD66FB097EFE2F283CDD6EFADD66FB097EFE262830DD6EFADD6681 +:20073500FB097EFE7C2824DD6EFADD66FB097EFE3D2818DD6EFADD66FB097EFE3C280CDD82 +:200755006EFADD66FB097EFE3E200DDD6EFCDD66FD2BDD75FCDD74FDDD6EFADD66FBFDE53B +:20077500C10956DD6EFCDD66FD0972DD7EFEFE2C282CFE202828FE282824FE2B2820FE2DEF +:20079500281CFE2A2818FE2F2814FE262810FE7C280CFE3D2808FE3E2804FE3C200CDD6EA1 +:2007B500FADD66FB097EFE202808DD34FC2003DD34FDDD6EFADD66FB0946DD70FEDD34FAB1 +:2007D500C28046DD34FBC38046DD7EFEFE20DD6EFCDD66FD20012B093600DDF9C3C045FDC3 +:2007F500E5DDE5C5D5FDE1DD210000DDE5E1FDE5C1097E21000039BE280CDDE5E1097EB7CD +:200815002804DD2318E5DDE5E1097EB7280CDDE5E109E5210C003946E170DDE5E1FDE5C1B1 +:2008350009F1DDE1FDE1C3A981FDE5DDE5DD210000DD39C5D521D8FF39F9110600CDE44993 +:20085500E5FDE1DD75DADD74DBAF772377DD77D6DD77D7DD77D4DD77D5DD6E0ADD660B4619 +:20087500236668DD4EFCDD46FD097EDDBE082007AFDDB6D4CA9649DD6E0ADD660B462366A9 +:2008950068DD46FD097EB7CA9649DD6E0ADD660B46236668DD46FD097EFE222804FE2720C2 +:2008B50010AFDDB6D420043E011801AFDD77D4181CFE28200BAFDDB6D42012DD34D5180DD2 +:2008D500FE292009AFDDB6D42003DD35D5DD6E0ADD660B46236668DD46FD097EDDBEFE2059 +:2008F5000BAFDDB6D42005DDB6D5281DDD6E0ADD660B46236668DD46FD094621080039DD68 +:200915005ED6DD56D71970186121080039DD4ED6DD46D7097721080039CDEC49EB13CDE492 +:2009350049FD7504FD7405210800394D44FD5E04FD5605CD024AFDE5E1DD75D8DD74D91182 +:200955000600CDE449FD7502FD7403FD6E02FD6603E5FDE1DD6ED8DD66D9E5FDE5E1C171EB +:200975002370DD36D6FFDD36D7FFDD6E0ADD660B3423200134DD34D6C26E48DD34D7C36E37 +:200995004821080039DD4ED6DD46D7097721080039CDEC49EB13CDE449FD7504FD740521B4 +:2009B5000800394D44FD5E04FD5605CD024AAFFD7702FD7703DD6EDADD66DBDDF9DDE1FD10 +:2009D500E1C3A981712370FD6E00FD660129EB3E0121824AC31982EB3E00215C7DC3198242 +:2009F5004D44FD6E4AFD664B11040019EB3E00211C7FC31982C5FDE5DDE5D5FDE1CDED495E +:200A1500EB13CDE449E5DDE1FDE5C1CD014ADDE5D13E00215E46CD1982210300E50181845E +:200A3500DDE5D1CDB54AF17DB4200ADDE5D13E0021BD4A1852210300E5018584DDE5D1CD20 +:200A5500B54AF17DB4200ADDE5D13E0021EC4B1836210300E5018984DDE5D1CDB54AF17DDB +:200A7500B4200ADDE5D13E0021934C181A210300E5018D84DDE5D1CDB54AF17DB4200DDDDA +:200A9500E5D13E0021604DCD19821803210000C3C045DD6EFCDD66FDDD5EFEDD56FF19EB1D +:200AB5003E00218B72C31982C5FDE5DDE5DD210000DD39D5F5110900CDE449E5FDE13673A0 +:200AD500AFFD7705FD7706FD7707FD7708DD36FC03DD77FDDD6EFEDD66FF2323237EFE2075 +:200AF5002008DD34FC2003DD34FD21000039E50E20C50E2CDD5EFEDD56FFCDE44BF1F1FDC9 +:200B15007501FD7402210400E5019184CDA74AF17DB4200D6F67397EC60477300A23341833 +:200B350006210000C3DA4B21000039E50E20C50E2CDD5EFEDD56FFCDE44BF1F1FD7503FD6A +:200B55007404210300E5019684CDA74AF17DB4203C6F67397EC60377300223346FDD66FDA3 +:200B7500DD4EFEDD46FF097EFE202008DD34FC2003DD34FD21000039E50E20C50E2CDD5E63 +:200B9500FE50CDE44BF1F1FD7505FD7406210500E5019A84CDA74AF17DB420266F67397E49 +:200BB500C605773002233421000039E50E20C50E2CDD5EFEDD56FFCDE44BF1F1FD7507FD2A +:200BD5007408FDE5E1DDF9C3C0450E2CFDE5D13E00213E48C31982C5FDE5DDE5F5D5FDE1E2 +:200BF500110900CDE449E5DDE13669AFDD7705DD77066F6739360423772BE50E28C5CDDF8E +:200C15004BF1F1DD7503DD7404210100E501A08423395623666AFDE5D1CDB34AF17DB42058 +:200C3500516F673934232001342BE50E29C5CDDF4BF1F1DD7501DD7402210600E501A284D5 +:200C55002E02395623666AFDE5D1CDB34AF17DB420206F67397EC606773002233421000074 +:200C750039E50E29C5CDDF4BF1F1DD7507DD740818052100001803DDE5E1F1C3C045C5FD43 +:200C9500E5DDE5F5D5FDE1110900CDE449E5DDE13675AFDD7705DD7706DD7707DD77086F06 +:200CB5006739360423772BE50E20C5CDDF4BF1F1DD7503DD7404210400E501A9842B2B395E +:200CD5005623666AFDE5D1CDB34AF17DB4200D6F67397EC604773009233418052100001836 +:200CF5006621000039E50E20C5CDDF4BF1F1DD7501DD7402210300E50196842B3956236661 +:200D15006AFDE5D1CDB34AF17DB420386F67397EC60377300223342100003947236668FD78 +:200D3500E5C1097EFE20200921000039342320013421000039E50E20C5CDDF4BF1F1DD75C7 +:200D550005DD7406DDE5E1F1C3C045C5FDE5DDE5F5D5FDE1110900CDE449E5DDE13664AFB5 +:200D7500DD7705DD7706DD7707DD7708DD7701DD77026F6739360423772BE50E20C5CDDFB7 +:200D95004BF1F1DD7503DD7404210300E50196842B395623666AFDE5D1CDB34AF17DB420D7 +:200DB500386F67397EC60377300223342100003947236668FDE5C1097EFE2020092100006C +:200DD50039342320013421000039E50E20C5CDDF4BF1F1DD7505DD7406DDE5E1F1C3C04504 +:200DF500C5FDE5DDE5DD210000DD39F5F5F5F5D5FDE1114000CDE449DD75F8DD74F901AE4C +:200E150084EBCDA850CD198201B784DD5EF8DD56F93E0021127ACD1982FD360A0021BC8495 +:200E3500E5210000E501FFFFDD5EF8DD56F93E0021A37ACD1982F1F1DD75FCDD74FDE521EC +:200E55000100E5010400DD5EF8DD56F93E0021DD70CD1982F1F1DD6EF8DD66F97EFE54C22C +:200E75007F50237EFE42C27F50237EFE4CC27F50237EFE20C27F50DD6EFCDD66FDE52101C2 +:200E950000E5010400DD5EF8DD56F93E0021DD70CD1982F1F1DD6EF8DD66F94EDD71FE06DF +:200EB50000DD70FFFDE5E1712370696029294D442909CDE349FD7502FD7403AFDD77FADD71 +:200ED50077FBDD4EFEDD46FFDD6EFADD66FBF680ED42E2EB4EACF2944FDD6EFCDD66FDE510 +:200EF500210100E5010800FD6E02FD6603E5DD6EFADD66FB29295D542919EBE119EB3E003F +:200F150021DD70CD1982F1F1FD6E02FD6603E5DD6EFADD66FB29294D4429094D44E1090138 +:200F350008000970DD6EFCDD66FDE5210100E50E03FD6E02FD6603E5DD6EFADD66FB29290A +:200F55005D542919EBE11911090019EB3E0021DD70CD1982F1F1DD6EFCDD66FDE521010002 +:200F7500E54D44DD5EF8DD56F93E0021DD70CD1982F1F1DD34FAC2D74EDD34FBC3D74E01AA +:200F9500AE84DD5EF8DD56F9CDA850CD198201BF84DD5EF8DD56F93E0021127ACD19822167 +:200FB500C484E5210000E501FFFFDD5EF8DD56F93E0021A37ACD1982F1F1FD7508FD7409D1 +:200FD500FD360A01FD6E08FD6609E5210100E5010400DD5EF8DD56F93E0021DD70CD19827B +:200FF500F1F1DD6EF8DD66F97EFE442012237EFE41200C237EFE542006237EFE20280FFD71 +:20101500360A00FD5E08FD5609CDA050185CFD6E08FD6609E5210100E50102002E04FDE5A9 +:20103500D119EB3E0021DD70CD1982F1F1FD6E08FD6609E5210100E50102002E06FDE5D11B +:2010550019EB3E0021DD70CD1982F1F1FD6E08FD6609E5210100E5010200DD5EF8DD56F954 +:201075003E0021DD70CD1982F1F1DD5EFCDD56FDCDA050DD5EF8DD56F9CD9045DDF9C3C0E7 +:2010950045D5DDE1210800195E23563E0121FD4CC319823E00211C7FCD1982210B00FDE5D3 +:2010B500C1094D44DD5EF8DD56F93E0021127AC9DDE5CD9650DD5E02DD56033E00213C7EAC +:2010D500CD1982DDE5D1CD9045DDE1C3A981DDE5D5DDE113EB5E23563E00215545CD198228 +:2010F500DD5E03DD56043E00215545CD1982DD5E05DD56063E00215545CD1982DD5E07DD0C +:2011150056083E00215545C3D550DDE5CD9650DD5E02DD56033E00213C7EC3D550FDE5DDD3 +:20113500E5C5D5DD210000FD210000210200394E2346FDE5E1F680ED42E25251ACF27C5194 +:201155002100003946236668232346236668E5FDE5E129294D4429094D44E109010A000920 +:201175004EDD09FD2318C4DD23DD23DDE5E1F1C33648C5DDE5D5DDE11A4F131A47DDE5D1CB +:201195003E00213251CD1982DDE1C1C3A981FDE5DDE5C5D5FDE1DD210000FD4E00FD4601DB +:2011B500DDE5E1F680ED42E2C051ACF2F351210000394E2346FD6E02FD6603E5DDE5E12968 +:2011D500295D542919EBE119EB3E0021937DCD19827DB42005DDE5E11807DD2318BC21FF2B +:2011F500FFC33648C5FDE5DDE5DD210000DD39D521DEFF39F9110A00CDE449E5FDE111141B +:2012150000CDE449DD75DEDD74DFAFDD77F8DD77F9CD8457DD75FADD74FBDD6EFEDD66FF4C +:2012350023232346236668010400094E2346210B00DD5EDEDD56DFCD004ADD5EDEDD56DF9B +:201255003E0021F54DCD1982AFFD7704FD7705FD7706FD770701C884DD6EFEDD66FF23568A +:2012750023666A110400195E23563E0021937DCD19827DB4C28353DD6EDEDD66DF462366A7 +:2012950068E5FDE5E1C1CDD949CD3557CD1982FD7502FD7403AFDD77EEDD77EFFD4E00FD54 +:2012B5004601DD6EEEDD66EFF680ED42E2C552ACF2B654DD6EDEDD66DF232346236668E574 +:2012D500DD6EEEDD66EF29294D4429094D44E109DD75E0DD74E1DD6EEEDD66EF29DD4EE4F7 +:2012F500DD46E509E5DD4EEEDD46EFDD5EDEDD56DF3E00213251CD19824D44E1712370DDF0 +:201315006EEEDD66EF29DD4EE6DD46E709E5210A00DD4EE0DD46E1094E0600E1712370215B +:201335000C00E5DD6EDEDD66DF232346236668E5DD6EEEDD66EF29294D4429094D44E109FF +:201355004D44FD6E02FD6603E5DD6EEEDD66EF29295D542919EBE119EB3E00211E75CD19D7 +:2013750082F1DD34EEC2B152DD34EFC3B152CD6457E5FDE5E1C1CDD949CD3557CD1982FDBD +:201395007502FD7403DD6EFEDD66FF2346DD70E22366DD74E3AFDD77EEDD77EFFD4E00FDF1 +:2013B5004601DD6EEEDD66EFF680ED42E2C553ACF2B654210400DD4EE2DD46E3094E234627 +:2013D500DD5EDEDD56DF3E0021A351CD1982DD75FCDD74FDDD4EDEDD46DF03030A6F030ADF +:2013F50067E5DD6EFCDD66FD29294D4429094D44E109DD75E0DD74E1DD6EEEDD66EF29DDA0 +:201415004EE4DD46E509E5DD4EFCDD46FDDD5EDEDD56DF3E00213251CD19824D44E17123CD +:2014350070DD6EEEDD66EF29DD4EE6DD46E709E5210A00DD4EE0DD46E1094E0600E171237E +:2014550070210C00E5DD6EDEDD66DF232346236668E5DD6EFCDD66FD29294D4429094D441B +:20147500E1094D44FD6E02FD6603E5DD6EEEDD66EF29295D542919EBE119EB3E00211E75B2 +:20149500CD1982F1DD6EE2DD66E3232346DD70E22366DD74E3DD34EEC2B153DD34EFC3B1DA +:2014B50053DD5EDEDD56DF3E00218751CD1982DD75F4DD74F5CDE349DD75E8DD74E9FDE51F +:2014D500D13E00218751CD1982DD75F2DD74F3CDE349DD75EADD74EBDD6EDEDD66DFE5DD81 +:2014F5006EFADD66FBC1712370DD6EFADD66FB2323AF772377210400DD4EFADD46FB09DD95 +:201515004EE871DD46E9237021D384E56F67E501FFFF11CC843E0021A37ACD1982F1F1FD35 +:201535007508FD7409210500DD4EFEDD46FF097E23B6211C00394D442817210500DD5EFE29 +:20155500DD56FF195623666A110400195E235618025F573E0021B265CD1982DD75F6DD7496 +:20157500F7AFDD77EEDD77EF210400DD4EDEDD46DF094E2346DD6EEEDD66EFF680ED42E249 +:201595009855ACF2C656210800DD4EDEDD46DF094E2346C5210100E5DD4EF4DD46F5DD5E5D +:2015B500E8DD56E93E0021DD70CD1982F1F1DD6EE8DD66E94605C2BA56DD6EEADD66EB3607 +:2015D500012370DD36EC02DD70EDAFDD77F0DD77F1FD4E00FD4601DD6EF0DD66F1F680ED8E +:2015F50042E2FA55ACF26856DD6EF0DD66F129DD4EE6DD46E7095E2356D5DD6EF0DD66F130 +:2016150029DD5EE4DD56E5195623666ADD5EE8DD56E9194D44DD6EECDD66EDDD5EEADD564B +:20163500EB19EB3E00211E75CD1982F1DD6EF0DD66F129DD4EE6DD46E7094E2346211000B7 +:20165500397E8177237E8877DD34F02084DD34F1C3E655DD4EFADD46FBDD5EF6DD56F73EA5 +:201675000021156ACD1982212400DD4EF6DD46F7093E01AE23B623B623B62029FD6E08FD93 +:201695006609E5210100E5DD4EF2DD46F3DD5EEADD56EB3E0021F677CD1982F1F1FD340419 +:2016B5002003FD3405DD34EEC27D55DD34EFC37D55DD5EE8DD56E9CD9045DD5EE4DD56E57C +:2016D500CD9045DD5EE6DD56E7CD9045DD5EFADD56FBCD9045DD5EF6DD56F73E0021EC6962 +:2016F500CD1982DD5EDEDD56DF3E0021C550CD1982FD5E08FD5609CDA05021C484E521007B +:2017150000E501FFFF11CC843E0021A37ACD1982F1F1FD7508FD7409FDE5E1DDF9C3C04554 +:20173500DD75E4DD74E5FD6E00FD660129EB3E0121824ACD1982DD75E6DD74E7FD6E00FDD9 +:20175500660129294D442909EB3E0121824AC9DD6EFEDD66FF235E23563E0021C845C3194B +:20177500823E0021B265CD1982DD75F8DD74F93E00219962C31982DD5EF8DD56F93E0021EA +:20179500156ACD1982212400DD4EF8DD46F9093E01AE23B623B623B6C9C5FDE5DDE5DD2118 +:2017B5000000DD39D521E8FF39F9111400CDE449DD75E6DD74E7DD4EFEDD46FF0303030A02 +:2017D5006F030A67010400094E2346210B00DD5EE6DD56E7CD004ADD5EE6DD56E73E002134 +:2017F500F54DCD1982DD5EE6DD56E73E00218751CD1982DD75FADD74FBCDE349DD75E8DDA8 +:2018150074E9AFDD77F4DD77F5DD4EFADD46FBDD6EF4DD66F5F680ED42E23258ACF24E5807 +:20183500DD6EF4DD66F5DD4EE8DD46E9093600DD34F420D5DD34F518D05950CDE449DD75E1 +:20185500EADD74EBDD6EE8DD66E93601233600CD6457DD75F2DD74F3DD6EFEDD66FF23465A +:20187500DD70EC2366DD74ED210700DD4EFEDD46FF0946236668E5FDE1AFDD77F4DD77F59D +:20189500DD4EF2DD46F3DD6EF4DD66F5F680ED42E2A958ACF2395A210400DD4EECDD46ED84 +:2018B500094E2346DD5EE6DD56E73E0021A351CD1982DD75FCDD74FDDD4EE6DD46E70303A0 +:2018D5000A6F030A67E5DD6EFCDD66FD29294D4429094D44E109DD75F0DD74F1DD4EFCDD82 +:2018F50046FDDD5EE6DD56E73E00213251CD1982DD75F6DD74F7210A00DD4EF0DD46F10918 +:201915004EDD71F8DD36F900FD6E04FD66057EFE27C2AD59FD5E04FD5605CDED49FD4E04C7 +:20193500FD4605092B3600210900DD4EF0DD46F1097EFE532028DD6EF8DD66F9E5FD4E04B4 +:20195500FD460503DD6EF6DD66F7DD5EE8DD56E919EB3E00211E75CD1982F1C3135AFE49A7 +:20197500C2135A210A00094605052017DD6EF6DD66F7DD4EE8DD46E909E5FD5E04FD560529 +:2019950013183E210A00DD46F1097EFE04206FFD5E04FD5605131848210900DD4EF0097E7C +:2019B500FE49205A210A00094605052021DD6EF6DD66F7DD4EE8DD46E909E5FD5E04FD5652 +:2019D500053E0021437FCD19824D44E1182D210A00DD46F1097EFE042024FD5E04FD5605EA +:2019F5003E01212049CD1982E5DD6EF6DD66F7DD5EE8DD56E919D173237223712370DD6E9E +:201A1500ECDD66ED232346DD70EC2366DD74EDFD6E02FD6603E5FDE1DD34F4C29558DD34AE +:201A3500F5C39558210600DD4EE6DD46E7097E23B620506F67E5E52E04E52E08095E23560D +:201A5500CDAF5BF1F1F1210400095623666A23E5DD6EEADD66EBD1732372210800095E2359 +:201A750056D5210100E5010200DD5EEADD56EB3E0021F677CD1982F1F1210200E52B2BE580 +:201A9500C34B5B210000E5E52E06E52323095E2356CDAF5BF1F1F1210600095623666A2B50 +:201AB500E5DD6EEADD66EBD1732372210800095E2356D5210100E5010200DD5EEADD56EBC5 +:201AD5003E0021F677CD1982F1F1210000E5E52E0AE52B2BDD4EE6DD46E7095E2356CDAF06 +:201AF5005BF1F1F1DD6EEADD66EB36FF2336FFDD6EEADD66EBAFB6282A210800DD4EE6DD82 +:201B150046E7094E2346C5210100E5DD4EFADD46FBDD5EEADD56EB3E0021DD70CD1982F16C +:201B3500F118CC210100E5DD4EFADD46FB2BED427C079F4F41C5E5210800DD4EE6DD46E777 +:201B5500095E2356CDAF5BF1F1F1210800095E2356D5210100E5DD4EFADD46FBDD5EE8DDBE +:201B750056E93E0021F677CD1982F1F1DD5EE8DD56E9CD9045DD5EEADD56EBCD9045DD5EFA +:201B9500E6DD56E73E0021C550CD1982210000DDF9C3C045FD5E08FD56093E0021A075C39F +:201BB5001982C5FDE5DDE5DD210000DD39D521F4FF39F9CD695DDD75FADD74FBCDE349DDDC +:201BD50075FCDD74FDAFDD77F4DD77F5210500DD4EFEDD46FF097E23B6210200394D44280B +:201BF50017210500DD5EFEDD56FF195623666A110400195E235618025F57CD7657DD75F213 +:201C1500DD74F3FDE5C1712370210400DD4EF2DD46F309DD5EFC73DD56FD237269602323E5 +:201C3500AF772377DD77F6DD77F7DD77F4DD77F5FD4E04FD4605DD6EF4DD66F5F680ED42F6 +:201C5500E2595CACF2015DFD6E08FD6609E5210100E5DD4EFADD46FB2E04DD5EF2DD56F349 +:201C7500195E23563E0021DD70CD1982F1F1DD6EFCDD66FD46052068DD4EF2DD46F3CD8C83 +:201C950057205DDD6EFCDD66FD77210100E5DD4EFADD46FB2BED427C079F4F41C5E5CDA9E7 +:201CB5005BF1F1F1FD6E08FD6609E5210100E5DD4EFADD46FB2E04DD5EF2DD56F3195E23B4 +:201CD500563E0021F677CD1982F1F1210100E52BE5E5CDA95BF1F1F1DD34F62003DD34F7B1 +:201CF500DD34F4C2455CDD34F5C3455CDD5EF2DD56F33E00217A62CD1982210000E5E52EEE +:201D150006E5CDA95BF1F1F1210400397EFD860677237EFD8E0777FD6E08FD6609E52101B3 +:201D350000E50102002E0839EB3E0021F677CD1982F1F1DD5EF8DD56F93E0021EC69CD193D +:201D550082FDE5D13E0021C550CD1982210000DDF9C3C0451114003E0121824ACD1982E500 +:201D7500FDE1DD4EFEDD46FF0303030A6F030A67010400094E2346210B00FDE5D119EB3E49 +:201D950000211C7FCD1982FDE5D13E0021F54DCD1982FDE5D13E00218751CD1982C9C5FD71 +:201DB500E5DDE5DD210000DD39D521E8FF39F9CD695DDD75F2DD74F3CDE349DD75FADD7493 +:201DD500FBAFDD77EEDD77EF210500DD4EFEDD46FF097E23B6210800394D44281721050096 +:201DF500DD5EFEDD56FF195623666A110400195E235618025F57CD7657DD75E8DD74E9FD21 +:201E1500E5C1712370210400DD4EE8DD46E909DD5EFA73DD56FB237269602323AF7723777C +:201E3500CD6457DD75F0DD74F1CDE249DD75ECDD74EDDD6EFEDD66FF2346DD70EA2366DD7C +:201E550074EBAFDD77E6DD77E7DD4EF0DD46F1DD6EE6DD66E7F680ED42E2725EACF2E35E2A +:201E75000E00C50E3D210400DD5EEADD56EB195E23563E0021F447CD1982F1DD75FCDD7445 +:201E9500FDAFDD77F4DD77F5DD6EE6DD66E729DD4EECDD46ED09E5211000394D44DD5EFC25 +:201EB500DD56FD133E0021B265CD19824D44E1712370DD6EEADD66EB232346DD70EA2366C7 +:201ED500DD74EBDD34E62081DD34E7C35E5EAFDD77EEDD77EFFD4E04FD4605DD6EEEDD665B +:201EF500EFF680ED42E2FE5EACF20861FD6E08FD6609E5210100E5DD4EF2DD46F32E04DDE7 +:201F15005EE8DD56E9195E23563E0021DD70CD1982F1F1DD6EFADD66FB4605C2FC60DD4E4D +:201F3500E8DD46E9CD8C57C2FC60210100E5DD4EF2DD46F32BED427C079F4F41C5E5CDA964 +:201F55005BF1F1F1AFDD77E6DD77E7DD4EF0DD46F1DD6EE6DD66E7F680ED42E2745FACF298 +:201F7500A05FDD4EE8DD46E9DD6EE6DD66E729DD5EECDD56ED195E23563E0021156ACD19AF +:201F950082DD34E620C5DD34E718C0DD6EFEDD66FF2346DD70EA2366DD74EBAFDD77E6DD48 +:201FB50077E7DD4EF0DD46F1DD6EE6DD66E7F680ED42E2CB5FACF2C860210400DD4EEADD96 +:201FD50046EB094E2346FDE5D13E0021A351CD1982DD75F6DD74F74D44FDE5D13E00213228 +:201FF50051CD1982DD75F4DD74F5FD6E02FD6603E5DD6EF6DD66F729294D4429094D44E1CD +:2020150009010900097EFE532034FD6E02FD6603E5DD6EF6DD66F729294D4429094D44E1B2 +:2020350009010A00094EC5DD6EE6DD66E729DD4EECDD46ED09462366680128001836FE49B2 +:202055002054FD6E02FD6603E5DD6EF6DD66F729294D4429094D44E109010A00094EC5DD30 +:202075006EE6DD66E729DD4EECDD46ED0946236668012400094D44210400DD5EE8DD56E91A +:20209500195623666ADD5EF4DD56F519EB3E00211E75CD1982F1DD6EEADD66EB232346DD57 +:2020B50070EA2366DD74EBDD34E6C2B75FDD34E7C3B75FFD6E08FD6609E5210100E5DD4E56 +:2020D500F2DD46F32E04DD5EE8DD56E9195E23563E0021F677CD1982F1F1210100E52BE555 +:2020F500E5CDA95BF1F1F1DD34EEC2EA5EDD34EFC3EA5EDD5EE8DD56E93E00217A62CD19CE +:2021150082AFDD77E6DD77E7DD4EF0DD46F1DD6EE6DD66E7F680ED42E23161ACF25761DD2E +:202135006EE6DD66E729DD4EECDD46ED095E23563E0021EC69CD1982DD34E620CBDD34E7E6 +:2021550018C6DD5EECDD56EDCD9045FDE5D13E0021C550CD1982210000DDF9C3C045FDE573 +:20217500DDE5D5FD2100003E00210A4ACD1982E5DDE17DB420046F67184DDD7E00FE73205B +:202195000ADDE5D13E0021F9511828FE69200ADDE5D13E0021AE57181AFE64200ADDE5D1CB +:2021B5003E0021B75B180CFE75200EDDE5D13E0021B35DCD1982E5FDE1DDE5D13E0021E3D2 +:2021D50050CD1982FDE5E1C33648FDE5DDE5F5C5DDE1D5FDE121000039E53E00218751CD1C +:2021F5001982EBE1732372210400097E23B62009CDE449DD7504DD7405FD4E04FD4605FD73 +:202215006E06FD6607F680ED42E22262ACFA3962DD3602FFDD3603FFCD8A45AFDD7704DDD6 +:202235007705183EFD6E06FD660723FD7506FD74072BDD7502DD7403FDE5DDE5E1C171231C +:2022550070FD6E08FD6609E5210100E52E04394E2346DD5E04DD56053E0021DD70CD198281 +:20227500F1F1C35646DDE5D5DDE17BB22811DD7E04DDB6052803CD8A45DDE5D1CD9045DD7D +:20229500E1C3A981C5D5DDE5110600CDE449E5DDE101040009AF772377DDE5E1772377DDEC +:2022B5003602FFDD3603FFDDE5E1DDE1D1C1C3A981FDE5DDE5DD210000DD39C5F5F5F5D5AC +:2022D500FDE1210400197EDD77F82366DD74F9EB5E23563E00213251CD1982DD75FADD7487 +:2022F500FBFD6E00FD6601232346236668E5DD6EFEDD66FF29294D4429094D44E109010978 +:2023150000097EFE53201BDD6EFADD66FBDD4EF8DD46F9094D44DD5E08DD5609CD024AC3DE +:20233500CF63FE49C2CF63FD6E00FD6601232346236668E5DD6EFEDD66FF29294D4429094A +:202355004D44E109010A00094605052021C5DD4E08DD4609DD6EFADD66FBDD5EF8DD56F942 +:20237500195E23563E01219441CD1982184BFD6E00FD6601232346236668E5DD6EFEDD669B +:20239500FF29294D4429094D44E109010A00097EFE042026C5DD6E08DD6609E5DD6EFADD54 +:2023B50066FBDD4EF8DD46F9095E2356234E23463E01213649CD1982F1F1C3D049FDE5DDEA +:2023D500E5C5F5D5DDE1210400197E23666FE5FDE121000039E5EB5E23563E00213251CD8F +:2023F50019824D44E1712370DD6E00DD6601232346236668E5210400394623666829294D92 +:202415004429094D44E109010900097EFE53201668603946236668FDE5C109EB3E0021432D +:202435007FCD19821813FE496860200D3946236668FDE5C10946236668F1C33648FDE5DDF5 +:20245500E5DD210000DD39C5F5F5D5FDE1210400197EDD77FA2366DD74FBEB5E23563E002D +:20247500213251CD1982DD75FCDD74FDFD6E00FD6601232346236668E5DD6EFEDD66FF29BA +:20249500294D4429094D44E109010900097EFE532018DD6EFCDD66FDDD4EFADD46FB09EBE8 +:2024B5003E01212049CD1982184FFE492048FD6E00FD6601232346236668E5DD6EFEDD6603 +:2024D500FF29294D4429094D44E109010A0009460505DD6EFCDD66FDDD4EFADD46FB092001 +:2024F5000B4623667C68079F4F41180D5E2356234E2346EB1803486960C3D049D5CDE28105 +:202515001000002628292A2B2D2F3B3C3D3E5B5D5E7C65655D654D655965596559655965B4 +:20253500596561655165556555655165616549655D6561652E01181A2E0218162E0318120C +:202555002E04180E2E05180A2E0618062E3F18022E00F1C3A981DDE5C5D5114E00CDE4491F +:20257500E5DDE12323233600AFDD7748DD7749DD774ADD774BDD77026F673946DD704C2378 +:2025950066DD744DDD7100DD7724DD7725DD7726DD7727DDE5E1F1F1DDE1C3A981FDE5DDFF +:2025B500E5DD210000DD39C5D521B2FF39F9AFDD77F8DD77F97BB220240E015F57CDB46907 +:2025D500DD75AEDD74AF010400093631210500DD4EAEDD46AF0936006960C3AC69AFDD77BD +:2025F500F6DD77F7014080DD6EF6DD66F778AC67ED42301621060039DD4EF6DD46F709366F +:202615000003DD71F6DD70F718DA0E03110000CDB469DD75AEDD74AFE5FDE1AFDD77B2DDC7 +:2026350077B3DD6EFEDD66FF46236668DD4EFCDD46FD095E3E00211165CD19822600DD7536 +:20265500F4DD74F57DB7201EDD6EFEDD66FF46236668DD46FD094621060039DD5EF8DD56C2 +:20267500F91970C358693E01AD205EDD6EFEDD66FF46236668DD46FD097EFE292008DD360A +:20269500F43FDD36F500DD6EFEDD66FF46236668DD46FD097EFE28C25869DD6EFEDD66FF4D +:2026B5003423200134DD4EFEDD46FFDD5EFCDD56FD3E0021B265CD1982DD75B2DD74B3AF12 +:2026D500DD77F8DD77F9C337662E0639DD4EF8DD46F9093600FD7E48FDB6492046DD7EB2CF +:2026F500DDB6B3201ACDAF69FD7548FD7449210600394D44FD6E48FD6649CDFD49180CDD88 +:202715006EB2FD7548DD66B3FD7449DD6EFEDD66FF46236668DD4EFCDD46FD0946FD700253 +:20273500C35069CDBC69E23F67ACF2B9670E03CDB169FD754AFD744BDD7EB2DDB6B3FD6EA2 +:202755004AFD664B01480009202BE50E01FD5E4AFD564BCDB4694D44E171237021060039D8 +:202775004D44FD6E4AFD664B114800195623666ACDFD491809DD4EB271DD46B32370FD6E3F +:202795004AFD664B2323E5DD6EFEDD66FF46236668DD4EFCDD46FD0946E170FD6E4AFD6640 +:2027B5004BC34D693E3FDDAEF4DDB6F5202ADD7EB2DDB6B32013CDAF69FD754AFD744B216E +:2027D500060039CDF549C35069DD6EB2FD754ADD66B3FD744BC35069CDD569E2F467ACFA49 +:2027F5005069DD7EB2DDB6B32012CDAF69FD754AFD744B21060039CDF549180CDD6EB2FDA0 +:20281500754ADD66B3FD744BCDBC69E22468ACFA3A68FD7E4CFDB64D280BFD6E4CFD664D29 +:20283500E5FDE118E3FD7E4CFDB64D2041CDD569E24968ACFA83680E035850CDB469DD7579 +:20285500AEDD74AF01480009FDE5C1712370DD6EFEDD66FF5623666ADD5EFCDD56FD195612 +:20287500DD6EAEDD66AF2323722B2BC34D69FD7E4CFDB64D205CCDD569E29268ACF2E768BA +:202895000E03CDB169DD75FADD74FB01480009FD4E4A71FD464B2370DD6EFEDD66FF462326 +:2028B5006668DD4EFCDD46FD0946DD6EFADD66FB232370214800DD4EFADD46FB09562366D2 +:2028D5006A114C0019712370FD714AFD704B69601866FD6E4CDD75FAFD664DDD74FB0E4AF1 +:2028F50009E50E03DD5EFADD56FBCDB4694D44E1712370214A00DD4EFADD46FB095623666B +:202915006A11480019FDE5D1732372214A00097E23666F2323E5DD6EFEDD66FF7E23666FF5 +:20293500DD4EFCDD46FD0946E170214A00DD4EFADD46FB0946236668E5FDE1DD36F8FFDD03 +:2029550036F9FFDD34F82003DD34F9DD6EFEDD66FF3423200134013F80DD6EF4DD66F57818 +:20297500AC67ED42DA3066214A00DD4EAEDD46AF097E23B6201F69607EFE032018E5FDE198 +:202995002148000956DD72AE2366DD74AFFDE5D1CD904518D26960C3D0490E01FDE5D13EF0 +:2029B50000216B65C31982FD5E023E00211165CD19824D0600DD6EF4DD66F5F680ED42C9E1 +:2029D500FD5E023E00211165CD19824DDD6EF4DD66F5F680ED42C9DDE5D5DDE11AFE032086 +:2029F5001CDD5E48DD56493E0021EC69CD1982DD5E4ADD564B3E0021EC69CD1982C3D85081 +:202A1500FDE5DDE5DD210000DD39C5F5F5F5D5FDE11AFE03C2E56DFD5E48FD56493E0021C5 +:202A3500156ACD1982DD4EFEDD46FFFD5E4AFD564B3E0021156ACD1982FD5E023E002111F9 +:202A550065CD19827DFE05FD6E48FD664923D25A6B4605C25A6FFD6E4AFD664B234605C292 +:202A75005A6FFD360101FD7E02FE2B202DFD6E4AFD664B0E24094E2346235E2356D5C5FD6A +:202A95006E48FD6649012400094E2346235E23566960C109EBC1ED4A1833FE2D2034FD6E35 +:202AB5004AFD664B0E24094E2346235E23566960D5E5FD6E48FD6649012400094E23462333 +:202AD5005E23566960A7C1ED42EBC1ED424D44EB1858FE2A2029FD6E48FD66490E24094E8A +:202AF5002346235E2356D5C5FD6E4AFD664B012400095E2356234E2346EBCD1F81182BFEE9 +:202B15002F2033FD6E4AFD664B0E24094E2346235E2356D5C5FD6E48FD6649012400095E4A +:202B35002356234E2346EBCD9382DD75F8DD74F9DD71FADD70FBDD4EFADD46FBDD6EF8DDD9 +:202B550066F9C3016F7EFE03CA8F6CFD6E4AFD664B237EFE03CA8F6CFD360104FD5E02CD5E +:202B7500E2810700263C3D3E5B5D7C8F6C6D6C316C0E6CEB6B906BCE6B556CFD6E4AFD6677 +:202B95004B012400094E2346235E2356D5C5FD6E48FD6649012400094E2346235E235669B5 +:202BB50060C1A7ED42C1200BEBED4220064D4423C3836C010000C3516CFD6E4AFD664B0192 +:202BD5002400094E2346235E2356D5C5CD5D6F01000030681861FD6E48FD66490124000930 +:202BF5004E2346235E2356D5C5FD6E4AFD664BCD636F0100003045183EFD6E48FD66490147 +:202C15002400094E2346235E2356D5C5FD6E4AFD664BCD636F0100003822181BFD6E4AFDE5 +:202C3500664B012400094E2346235E2356D5C5CD5D6F010000380521010018326960182E03 +:202C5500FD6E4AFD664B012400094E2346235E2356D5C5CD726F1816FD6E4AFD664B01241F +:202C750000094E2346235E2356D5C5CD876FFD7524FD7425FD7126FD7027FD6E48FD664975 +:202C9500237EFE03C2896DFD6E4AFD664B237EFE03C2896DFD6E4AFD664B012800094D44E2 +:202CB500FD6E48FD664911280019EB3E0021937DCD1982FD5E02CDE28106002B3C3D3E5BBC +:202CD5005D896D346D1B6D026DE46CF56C546DFD3601047DB420044F47184F010000184F90 +:202CF500FD360104CB7C0100002844183DFD3601044D44210000F680ED42E2136DAC0100E0 +:202D150000F2446D1824FD3601044D44210000F680ED42E22C6DAC010000FA446D180BFD3D +:202D3500360104CB7C010000200521010018026960FD7524FD7425FD7126FD70271835FD33 +:202D5500360103FD6E48FD6649012800094D44212800FDE5D1CD004AFD6E4AFD664B012863 +:202D750000094D44212800FDE5D119EB3E0021127ACD1982FD6E48FD6649237EFE04C25A33 +:202D95006FFD6E4AFD664B237EFE04C25A6FFD360104FD7E02FE262019FD6E4AFD664B01A8 +:202DB5002400094E2346235E2356D5C5CD726FC3016FFE7CC25A6FFD6E4AFD664B01240018 +:202DD500094E2346235E2356D5C5CD876FC3016FDD36FCFFDD36FDFF79B0287969607E2343 +:202DF500666F46DD70FA2366DD74FBAFDD77F8DD77F9DD4EFADD46FBDD6EF8DD66F9F68007 +:202E1500ED42E21B6EACF26A6E210400FDE5C1094D44DD6EFEDD66FF5623666A2323562398 +:202E3500666AE5DD6EF8DD66F929295D542919EBE119EB3E0021937DCD19827DB4200CDD23 +:202E55006EF8DD66F9DD75FCDD74FDDD34F820A2DD34F9189DDDCBFD7E2008DD7EFEDDB65E +:202E7500FF2047FD7E04FE27202AFD360103210400FDE5C1094D4403212800FDE5D1CD0084 +:202E95004A212800FDE5C109CDEC49090127000970C35A6FFD360101210400FDE5C109EBB5 +:202EB5003E01212049CD19821842DD6EFEDD66FF46236668232346236668E5DD6EFCDD66C4 +:202ED500FD29294D4429094D44E109010900097EFE492026FD360101DD4EFCDD46FDDD5E7B +:202EF500FEDD56FF3E00215264CD1982FD7524FD7425FD7126FD7027184BDD6EFEDD66FFCE +:202F150046236668232346236668E5DD6EFCDD66FD29294D4429094D44E109010900097E5B +:202F3500FE532021FD360103212800FDE5C109E5DD4EFCDD46FDDD5EFEDD56FF3E0021C602 +:202F550062CD1982E1C3D049FD6E48FD6649012400095E2356234E2346EBC34482FD6E4870 +:202F7500FD6649012400095E2356234E2346EBC32682FD6E48FD6649012400095E235623D4 +:072F95004E2346EBC3C4818B +:2003950053454C00494E53005550440044454C00204652200020574800204F5244200028D8 +:2003B50000292056414C280020535420002F7573722F64622F002E54424C007262002E44EA +:1503D500415400722B6200222A2200726573756C740077620099 +:202F9C00C5D5FDE5DDE52192FE39F921460139EB215A84012700EDB01106003E0121824A61 +:202FBC00CD19821114003E0121824ACD1982210400397001D68421040039EB3E0021937DF3 +:202FDC00CD19827DB4CACF7021D984E53E0021327ACD1982F1110D853E0021EC72CD1982A4 +:202FFC0021040039EB3E0121C449CD198221000039E521060039EB3E00217361CD19824D25 +:20301C0044E17123703E00219962CD1982E5FDE179B0CAC170FDE5C1210000395E23563EB0 +:20303C000021DF61CD1982FDCB037E2069DD210000210000397E23666F4E2346DDE5E1F6BB +:20305C0080ED42E26370ACF2917021040139E5DDE5C1FDE5D13E0021C662CD1982E12104E2 +:20307C000139E521DF84E53E0021327ACD1982F1F1DD2318BC21E584E53E0021327ACD1923 +:20309C0082F1189121000018925E189156189021DF6118901891210000395E23563E0021E6 +:2030BC001F51CD1982FDE5D13E00217A62CD1982C3CF6F216E0139F9DDE1FDE1D1C1C3A969 +:0130DC008172 +:1103EA0051540053514C3E2000272573272C000A00F3 +:20036E0053454C20636F6C756D6E312C20636F6C756D6E322C20746573747465737420466E +:07038E005220746573740036 +:2030DD00CD7582F8FFAFDD77FEDD77FF3E0021B877CD1982DD7E02DDB6032818DD7E04DD5F +:2030FD00B6052810DD7E0ADDB60B2808DD7E0CDDB60D2006210000C38872210C00DD4E0C1E +:20311D00DD460D0946236668DD75FADD74FB7DE680280EDD5E0CDD560D3E0021EC72CD1947 +:20313D0082DD7EFAE6106FDD7EFBE603673E10ADB42806210000C38872DD4E0ADD460BDD95 +:20315D005E04DD5605CDAE81DD73FCDD72FDDD6E0CDD660D4E2346DD6E0CDD660D23237E5B +:20317D0023666FA7ED42DD75F8DD74F9A7ED523839DD6EFCDD66FDE5DD6E0CDD660D4E23F5 +:20319D0046DD5E02DD56033E00211E75CD1982F1DD6E0CDD660D7EDD86FC77237EDD8EFD0A +:2031BD0077DD6EFCDD66FDC38872DD4EF8DD46F9210000CDC382302BDD6EF8DD66F9E5DD29 +:2031DD006E0CDD660D4E2346DD5E02DD56033E00211E75CD1982F1DD6EF8DD66F9DD75FEC4 +:2031FD00DD74FFDD4EFEDD46FFDD6EFCDD66FDA7ED42E5DD6E02DD6603094D44210A00DDA0 +:20321D005E0CDD560D195E23563E0121DE4CCD1982F1DD75F8DD74F9CB7C281C210C00DDEB +:20323D004E0CDD460D097EF60077237EF60277AFDD77F8DD77F9181BDD7EF8DDB6F9201356 +:20325D00210C00DD4E0CDD460D097EF60077237EF60177DD6EF8DD66F9DD4EFEDD46FF09E7 +:0E327D00EBDD4E04DD4605CDF882EBC3A381E8 +:20003300E3D5DDE5DD210000DD39DD5609DD7409DD5E08DD7508D5C5F5DD6E0462ED6CDD76 +:200053005605ED5C1959DD5607ED5C19DD5E0650ED5C19E5DD5E04DD56FEED5CDD6E05DD1D +:200073006607ED6C19DD4606ED4C09E5DD5E04DD5607ED5CDD6E05DD6606ED6CAF1917F5B6 +:20009300DD5E04DD5606ED5C4A0600AF091755C14CE10984C1814D47EBF1D1D1DDE1D13387 +:0400B300333333C9E7 +:20328B00CD7582FEFFDD36FE00DD36FF00DD6E0ADD660B2BDD750ADD740B237DB42832DD2E +:2032AB006E04DD660523DD7504DD74052B46DD70FFDD6E02DD660323DD7502DD74032B4EE6 +:2032CB00DD71FE79B82006AFDDB6FE2002180218BCDD4EFF0600DD6EFE2600A7ED42C3A315 +:0132EB008161 +:0B00B700DDF9DDE1D1C1F1ED3939C9FF +:2032EC00CD7582F8FFAFDD77FEDD77FFDD7E02DDB603207811F5843E0021EC72CD19827DFC +:20330C00B4201E110D853E0021EC72CD19827DB4200F1125853E0021EC72CD19827DB4284E +:20332C000621FFFFC3FC742AF384DD7502DD7403DD7E02DDB603282EDD5E02DD56033E00E6 +:20334C0021EC72CD19827DB4280621FFFFC3FC74211600DD4E02DD4603095623666ADD759B +:20336C0002DD740318CA210000C3FC74210C00DD4E02DD4603097EE680CA5274210600DDB4 +:20338C004E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7DB4CA5074210600DD9D +:2033AC004E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DD4EF8DD46F9210A00E5 +:2033CC00DD5E02DD5603195E23563E0021FF74CD1982F1DD75FCDD74FD4D44210000CDC375 +:2033EC0082301E210000397EDD86FC77237EDD8EFD77210200397EDD96FC77237EDD9EFDEA +:20340C0077DD4EFCDD46FD210000CDC38238A1DD7EFCDDA6FD3C20092A47863E04ADB428D8 +:20342C008FDD7EFADDB6FB281B210C00DD4E02DD4603097EF60077237EF60277DD36FEFF37 +:20344C00DD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E02DD66034E2346DD6E88 +:20346C0002DD660323235623666AA7ED42DD75FADD74FB4D44210000CDC3823033210100B2 +:20348C00E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD4E02DD4603095E239D +:2034AC00563E0021617ACD1982F1F1F1CB782800210C00DD4E02DD4603097EE63F77237E86 +:2034CC00E6FA7769602323E5210400DD4E02DD460309E5210600095623666AE56960C171D6 +:2034EC002370E1712370E1712370DD6EFEDD66FFC3A381CD0D82DD6E0ADD660BE5C5D52152 +:20350C002400E53E01216E4ECD1982F1F1F1F1C3A381CD7582FCFFDD6E02DD6603DD75FCC7 +:20352C00DD74FDDD71FEDD70FFDD6E0ADD660B2BDD750ADD740B237DB42820DD6EFEDD66EB +:20354C00FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD75FCDD74FD2B7018CEDD6E02DD66D5 +:04356C0003C3A38171 +:1600C200F5C5E5784251676BED4CED6CED5C79858257E1C1F1C99E +:20357000CD0D82210000E5210000E5210000E53E0021A075CD1982F1F1F1210C00DD4E02C4 +:20359000DD4603097EE6FF77237EE6FC77C3A381CD7582FCFF210C00DD4E02DD4603097E6B +:2035B000E6404F237EE604473E40A9B0C2FE76DD7E0EDDB60F280B3E01DDAE0EDDB60FC22D +:2035D000FE76210100E5210000E5210000E5210A00DD4E02DD4603095E23563E0021617ABC +:2035F000CD1982F1F1F1DD75FCDD74FDDD71FEDD70FF7DA4A1A03C200621FFFFC34A773EA7 +:2036100001DDAE0EDDB60F2046AFDD770EDD770F210E0039E5DD4E02DD4603030369604EC7 +:203630002346DD6E02DD66035623666AA7ED42EB7A079F4F41C5D5DD6EFCDD66FDC109EBEE +:20365000DD6EFEDD66FFC1ED4A4D44E1CDF481DD7E0EDDB60FC2FE76DD6EFEDD66FFE5DD95 +:203670006EFCDD66FDE5DD4E0CDD460DDD6E0ADD660BCD44823077DD6E02DD660323234E40 +:203690002346210600DD5E02DD5603195623666AA7ED427C079F4F41C5E5DD6EFCDD66FDFC +:2036B000C109EBDD6EFEDD66FFC1ED4AE5D5DD4E0CDD460DDD6E0ADD660BCD4482382FDD27 +:2036D0004EFCDD46FDDD6E0ADD660BA7ED42E5DD4E02DD4603030369604E2346E109E5DD8D +:2036F0006E02DD6603C1712370210000184CDD5E02DD56033E0021EC72CD19827DA43C289D +:2037100031DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5210A00DD4E02DD4603093D +:203730005E23563E0021617ACD1982F1F1F1CB78280521FFFF1803210000C3A381CD7582B7 +:20375000FEFF2AF384DD75FEDD74FF110D853E0021EC72CD19821125853E0021EC72CD19F5 +:2037700082DD7EFEDDB6FF283CDD5EFEDD56FF3E0021EC72CD1982210A00DD4EFEDD46FF62 +:20379000095E23563E00218E7ACD1982210A000936FF2336FF211600095623666ADD75FED0 +:2037B000DD74FF18BCC3A381C5D52A3D857DB42002182E210000223D851101003E0021EA6F +:2037D0007DCD19827DB4280C2119857EF60177237EF600770E00114D773E0121CD50CD1990 +:0637F00082D1C1C3A981D2 +:2004070000004C864C864C864C864C8700001000000000000000000000004C874C874C8731 +:200427004C874C88010020000000000000000000000033853385338533853585020022002F +:0C044700000000000000000000000100A8 +:2037F600CD7582F8FF3E0021B877CD1982DD7E02DDB6032818DD7E04DDB6052810DD7E0A3B +:20381600DDB60B2808DD7E0CDDB60D2006210000C30F7A210C00DD4E0CDD460D09462366BE +:2038360068DD75FADD74FB7DE6402818DD5E0CDD560D3E0021EC72CD19827DB42806210063 +:2038560000C30F7ADD7EFAE6206FDD7EFBE603673E20ADB42806210000C30F7ADD4E0ADD2A +:20387600460BDD5E04DD5605CDAE81DD73FCDD72FDDD6E0CDD660D4E2346210800DD5E0C08 +:20389600DD560D195623666AA7ED42DD75F8DD74F9DD4EFCDD46FDA7ED423018DD5E0CDD7D +:2038B600560D3E0021EC72CD19827DB42806210000C30F7ADD6E0CDD660D4E234621080017 +:2038D600DD5E0CDD560D195623666AA7ED42DD75F8DD74F9DD4EFCDD46FDA7ED42386121A8 +:2038F6000C00DD4E0CDD460D097EF68077237EF60077DD6EFCDD66FDE5DD4E02DD4603DD21 +:203916006E0CDD660D5E23563E00211E75CD1982F1DD6E0CDD660D7EDD86FC77237EDD8E9E +:20393600FD77DD7EFAE603280EDD5E0CDD560D3E0021EC72CD1982DD6E0ADD660BC30F7AEE +:20395600DD6EFCDD66FDDD75FEDD74FFDD6EFCDD66FDE5DD4E02DD4603210A00DD5E0CDD1C +:20397600560D195E23563E0021FF74CD1982F1DD75F8DD74F94D44210000CDC3823022DD2C +:203996006EF8DD66F9DD4E02DD460309DD7502DD7403210400397EDD96F877237EDD9EF998 +:2039B60077DD4EF8DD46F9210000CDC382389DDD7EF8DDA6F93C20092A47863E04ADB4283D +:2039D6008BDDCBF97E2813210C00DD4E0CDD460D097EF60077237EF60277210600397EDD99 +:2039F60096FC77237EDD9EFD77DD4E04DD4605DD5EFEDD56FFCDF882EBC3A381CD0D82D50C +:203A16003E00215C7DCD1982D119EB3E00211C7FCD1982DD6E02DD6603C3A381CD7582FC7F +:203A3600FF210E003901020009DD75FCDD74FDE5DD4E0ADD460B110D853E0121C543CD1928 +:203A560082F1DD75FEDD74FFC3A381CD0D82DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADDAC +:203A7600660BE5D5211900E53E0121E050CD1982F1F1F1F1F1C35E83CD0D82D5210600E558 +:203A96003E01216E4ECD1982F1F1C3A381CD7582FAFFAFDD77FADD77FBAFDD77FCDD77FD6A +:203AB600AFDD77FEDD77FFDD7E0ADDB60B2835210C00DD4E0ADD460B097EE60F5F237EE64A +:203AD6000057210200397EB377237EB277210C00097EE6F377237EE6FF7759503E0121FDA4 +:203AF6004CCD1982DD6E0CDD660DAFB62870DD6E0CDD660D23DD750CDD740D2B5ECDE28119 +:203B160004002B617277727B357B267B4C7B637B210200397EF61077237EF60077183D2158 +:203B36000200397EF62077237EF60077DD36FA00DD36FB031826210200397EF62077237EB7 +:203B5600F60077DD36FA00DD36FB21180F210200397EF63077237EF6007718001886DD7EE9 +:203B7600FCE6304FDD7EFDE6004779B02006210000C3597D3E10A9B0200218243E20A9B084 +:203B9600200F210000397EF60177237EF60077180F210000397EF60277237EF600771800F8 +:203BB600DD7E0ADDB60B201E0118001101003E0121FD41CD1982DD75FEDD74FF7DB4200686 +:203BD600210000C3597DDD7E02DDB603282321B601E5DD6EFADD66FBE5DD6E02DD6603E53A +:203BF6003E01219949CD1982F1F1F1DD7504DD7405DDCB057E282E2A4786DD75FADD74FB76 +:203C1600DD7EFEDDB6FF280EDD5EFEDD56FF3E00213C7ECD1982DD6EFADD66FB22478621EE +:203C36000000C3597DDD7E0ADDB60BC20D7DDD6EFEDD66FFDD750ADD740B01160009ED4BEB +:203C5600F384712370DD6E0ADD660B22F384210C00DD4E0ADD460B093608233600DD5E0428 +:203C7600DD56053E0021EA7DCD19827DB42813210C00DD4E0ADD460B097EF60177237EF640 +:203C96000077210600DD4E0ADD460B09E50100011101003E0121FD41CD19824D44E17123FF +:203CB6007079B02029210600DD4E0ADD460B09E5210E0009EBE173237221080009E5210E42 +:203CD6000009010800094D44E17123701829210800DD4E0ADD460B09E52106000956236673 +:203CF6006A3E018467EBE1732372210C00097EF60477237EF60077DD6E0ADD660B2323E545 +:203D1600210400DD4E0ADD460B09E5210600095E2356E1732372E17323726960732372214C +:203D36000C00DD4E0ADD460B097EDDB6FC77237EDDB6FD77210A0009DD5E04DD5605732388 +:203D5600726960C3A381CD7582FEFFDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB6281F +:203D76000ADD34FE2003DD34FF18ECDD4E02DD4603DD6EFEDD66FFA7ED42C3A381CD75827E +:203D9600FAFFDD6E02DD6603DD75FADD74FBDD71FCDD70FDDD6EFCDD66FD23DD75FCDD740C +:203DB600FD2B46DD70FFDD6EFADD66FB23DD75FADD74FB2B4EDD71FE79B82008AFDDB6FE97 +:143DD600280218D0DD4EFF0600DD6EFE2600A7ED42C3A3816B +:2000D800EBE3F5E5210600397EB377237EB277D1237E73B14F237E72B047F1D1E1C9E3F55B +:2000F800C54E2346237BEDB12002232309C38982F57E83775F237E8A7757237E89774F2319 +:090118007E8877472B2B2BF1C9DF +:203DEA00CD7582E2FF210000394D44DD5E02DD56033E0021257ECD19827DA43C2812DD7E5A +:203E0A00E6E6006FDD7EE7E6F0673E20ACB528052100001803210100C3A381CD0D82C5D5B7 +:203E2A00210D00E53E01216E4ECD1982F1F1F1C3A381CD7582FCFF21FCFFDD4E02DD4603F9 +:203E4A0009DD75FEDD74FF23237E23B6280621FFFFC3197F2A5088DD75FCDD74FDDD4EFCA5 +:203E6A00DD46FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FF19 +:203E8A00A7ED423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD4631 +:203EAA00FFDD6EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED4269 +:203ECA0030021814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF23236C +:203EEA00E5DD4EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FF09 +:123F0A00712370DD6EFCDD66FD225088210000C3A38118 +:19012100E1C5D5DDE5DD210000DD39E9E526806F7EED2039ED3939E3E9A2 +:203F1C00CD0D8259503E00215C7DCD198223E5DD4E04DD4605DD5E02DD56033E00211E751C +:073F3C00CD1982F1C3A3813E +:20013A00EBE3F5E5210600397EA377237EA277D1237E73A14F237E72A047F1D1E1C9EBE342 +:20015A00D5C5F5D5C5EB210F00397EEE8047722B4E73EBE17CEE8067ED42E1200AEB2B7E8C +:20017A002B6E67EBA7ED52C178C1E1D13333C9E1C5D5DDE5DD210000DD395E235623EB394A +:0D019A00F9EBE909097E23666FC1F1E3C9A5 +:163F4300CD0D82210A00E50100003E01217652CD1982F1C3A38193 +:20400000CD7582D6FFDD6E0ADD660BDD75F8DD74F921000039DD75FADD74FB212C0039DD7B +:2040200075FCDD74FD213A00397ED60A77DD4E0CDD460D212400CDC3823811010280DD6E83 +:204040000CDD660D3E80AC67ED423003C38341DD6EFCDD66FD23237EE60047237EE680B01B +:204060002831AFDDB60E282BDD6EF8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6EDE +:2040800002DD6603CDDD82DD7502DD7403DD7104DD7005DD6EFCDD66FD23237E23B620021A +:2040A000184EDD6E0CDD660D7C079F4F41C5E5DD4E04DD4605DD6E02DD6603CDF483E5DDA7 +:2040C0006EFADD66FB23DD75FADD74FB2BC171212C0039DD5E0CDD560D7A079F4F41CDE4B4 +:2040E00083DD6EFCDD66FD23237E23B620B41830DD5E02DD5603DD4E0CDD460DCDEF82DD08 +:204100006EFADD66FB23DD75FADD74FB2B73DD5E02DD5603CDF882DD6EFCDD66FD73237257 +:20412000DD6EFCDD66FD7E23B620C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB6E5 +:20414000FF2840DD6EFADD66FB2BDD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77C4 +:20416000FE1809DD7EFEDD8610DD77FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD35FE +:20418000FF18BADD6EF8DD66F93600DD6E0ADD660BC3A381CD7582FEFFDD36FE41DDCB0B49 +:2041A0007E2816DD36FE61DD4E0ADD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5BD +:2041C000DD6E0ADD660BE5DD6E04DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A073F +:2041E0009F4F411809DD5E02DD56030100003E01210040CD1982F1F1F1F1C3A381CD758284 +:20420000FCFFDD5E02DD5603CDAE81DD73FCDD72FD3E0121824ACD1982DD75FEDD74FF7DEB +:20422000B42819DD6EFCDD66FDE5010000DD5EFEDD56FF3E0121984FCD1982F1DD6EFEDDEB +:0542400066FFC3A3812D +:2001A700EBE3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD7508AFCDA083CD0683DD +:1001C700E1C1B7CC8A83C4D582DDE1F1D13333C92C +:20424500CD7582FAFFAFDD77FBDD77FC59503E00215C7DCD1982DD75FDDD74FEDD6E04DD3B +:2042650066057EFE2D2014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A2829 +:2042850008DD34FD2003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDC3C9 +:2042A50082300CDD6E10DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDC382300CAC +:2042C500DD6EFDDD66FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FDEF +:2042E50077237EDD9EFE77DD7E0EDDB60F2009DD7EFDDDB6FECABC43DD7E08DDB609203478 +:20430500DD7E0EDDB60F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DDCD +:20432500460CDD70FADD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60A53 +:20434500280CDD460ADD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FA4B +:20436500DD6EFDDD66FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDD32 +:20438500740FDD4E02DD4603DD5EFA16003E01210F51CD1982DD7EFAFE0A20183E01DDAE70 +:2043A50012DDB613200EDD5E02DD56033E0021EC72CD1982C3EC42DD6EFBDD66FCC3998325 +:2043C500CD7582A2FFAFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DDA1 +:2043E50071FDDD70FE210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CACA48DD6E04BE +:20440500DD66057EFE25C27D483E02DDAEFDDDB6FE200EDD5E02DD56033E0021EC72CD198A +:2044250082AFDD77A4DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDDA4 +:2044450036A8FFDD36A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD77E5 +:20446500A6DD77A7AFDD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6EDB +:2044850004DD66053E39BE3002186521000039010A00CD8083DD6E04DD66054E060021D0D6 +:2044A500FF094D44210000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A8A8 +:2044C500DD74A91821DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A389 +:2044E500DD75ACDD74ADDD34042003DD34051883DD6E04DD66055ECDE28114000020212335 +:204505002A2B2D2E5862636468696C6F707375787948814689460C485C465246D845ED45B5 +:20452500E345ED45C94748467746CD454F455A456E456745AB475A453F45DD6E04DD660571 +:204545002BDD7504DD7405C37D48DD36A401DD36A500C36944DD6E04DD660546DD70B3C377 +:204565006944DD36B401C36944216800397EC60277237ECE00772B6E672B2B46236668DD82 +:2045850075A2DD74A3DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD6659 +:2045A500A3DD75ACDD74ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DDF7 +:2045C50075ACDD74ADC36944DD36AA01DD36AB00C36944DD36A601DD36A700C36944AFDDEB +:2045E50077A6DD77A7C36944210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC60434 +:2046050077237ECE00772B6E6701FCFF095E2356234E2346181A216C00397EC60277237E2C +:20462500CE00772B6E672B2B5E23567A079F4F413E01213649CD1982F1F1DD75B5DD74B61C +:20464500C33048DD36AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD36BF +:20466500B230DD36AC05DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF0EC +:20468500DD36AFFFDD7EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF0967 +:2046A5005E2356234E2346EB1819216800397EC60277237ECE00772B6E672B2B4623666836 +:2046C500010000DD75B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DDC5 +:2046E5004EBBDD46BCDD5EB9DD56BA3E01212152CD1982F1F1DD75B5DD74B6DD36B7E7DD33 +:2047050036B884AFDDB6B4CAA8473E02DDAEAEDDB6AF200ADD36B7E8DD36B88418493E08E6 +:20472500DDAEAEDDB6AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B7EBDD36B884182750 +:204745003E10DDAEAEDDB6AF200ADD36B7EDDD36B88418133E0FDDAEAEDDA6AF3C2008DD37 +:2047650036B7F0DD36B884DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395DF8 +:20478500543E00211C7FCD1982DD4EB5DD46B6211B00395D543E0021127ACD1982DD75B525 +:2047A500DD74B6C33048DD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DD56 +:2047C5003405181C216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A38D +:2047E500DD46A2DD6EB5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B646CB +:20480500DD70B21822181C216800397EC60277237ECE00772B6E672B2B46236668DD75B52D +:20482500DD74B6DD36B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE5C3 +:20484500DD6EB2E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CD4542EB2146 +:204865000C0039F9EB4D44210E00397E8177237E8877180218021842DD4E02DD4603DD6ECF +:2048850004DD66055E16003E01210F51CD1982DD34B02003DD34B1DD6E04DD66057EFE0A68 +:2048A50020183E01DDAEFDDDB6FE200EDD5E02DD56033E0021EC72CD1982DD34042003DD88 +:2048C5003405C3F743210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDD41 +:2048E500B6FE200EDD5E02DD56033E0021EC72CD19823E01DDAEFDDDB6FE2016210400DDA9 +:1B4905004E02DD460309E5210600094E2346E1712370DD6EB0DD66B1C3A38191 +:0C03FB0000306200300030780030580004 +:20492000CD0D82210A00E50100003E01217652CD1982F1C35E83CD7582FEFFDD36FE41DDF5 +:20494000CB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE53ECB +:204960000ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660DE5DD6E0ADD660BE5DD4E78 +:1949800004DD4605DD5E02DD56033E01210040CD1982F1F1F1F1C3A381CC +:2001D700C5E5F57CEE806778EE8047F1A7ED42E1C1C92CC024C00CC004C9F5AF956F3E006A +:0C01F7009C673E00994F3E009847F1C9FC +:20499900CD0D82DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E01216E16 +:0B49B9004ECD1982F1F1F1F1C3A38192 +:09020300F5E5CD6A83EBE1F1C9D8 +:2049C400CD7582FCFFDD6E02DD6603DD75FEDD74FF11F5843E0121884ECD1982DD75FCDD8E +:2049E40074FD7DA43C281E3E0ADDAEFCDDB6FD2814DD46FCDD6EFEDD66FF23DD75FEDD7496 +:204A0400FF2B7018CCDD6EFEDD66FF3600DD7EFCDDA6FD3C2016DD6E02DD6603DD4EFEDD71 +:204A240046FFA7ED4220052100001806DD6E02DD6603C3A381CD7582FEFF010D85DD5E02E8 +:204A4400DD56033E01213353CD1982DD75FEDD74FF7DA43C2813010D85110A003E01210F79 +:1E4A640051CD19827DA43C200521FFFF180DDD6EFEDD66FF23DD75FEDD74FFC3A38180 +:0E020C00F5E5CD6A837B2F5F7A2F57E1F1C9AC +:204A8200CD7582FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2A5088B8 +:204AA200DD75FCDD74FD7DB42011DD36FC4CDD36FD88214C88224E88225088DD6EFCDD6692 +:204AC200FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA7D8 +:204AE200ED42CA724BDD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E23463B +:204B0200E1A7ED42206ADD6EFADD66FB232346236668ED4B5088A7ED422015DD6EFADD66AF +:204B2200FB232346236668232346236668225088DD6EFADD66FB23237E23666F4E2346DDB1 +:204B42006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604E89 +:204B62002346030369604E2346E1712370C3CF4ADD6EFADD66FB46236668DD4EFEDD46FF7E +:204B8200A7ED42DA304CDD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD6646 +:204BA200FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DDF5 +:204BC2004EFADD46FB09225088DD6EFCDD66FD2323ED5B50887323722A50882323E5030342 +:204BE20069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52A50888C +:204C0200D1732372DD6EFADD66FB712370DD6EFCDD66FD225088DD6EFADD66FB2323AF77C2 +:204C22002377210400DD4EFADD46FB0918272A5088DD4EFADD46FBA7ED42204F1100043E4B +:204C420001211E53CD1982DD75FADD74FB7DA43C2006210000C3A381DD6EFADD66FB36007B +:204C6200233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E00213C7ECD0D +:204C820019822A5088DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB232346AF +:0C4CA200236668DD75FADD74FBC3CF4AA1 +:204CAE00CD0D822A49863A4B86B5B42812010000DD5E02DD56033A4B862A4986CD1982DD26 +:104CCE005E02DD56033E0121FA50CD1982C3A38147 +:20021A00F5210000010000DD36F82118021937DDCBFC16DDCBFD16DDCBFE16DDCBFF16DD4C +:20023A0035F8282ECB11CB10CB15CB14ED5238DD201078DD960738D5200879DD960638CD09 +:18025A00180479DD96064F78DD9E074730C12BA718BDF1E56069C1C92D +:204CDE00CD0D82DD6E0ADD660BE5C5D5211700E53E01216E4ECD1982F1F1F1F1C3A381CD1F +:204CFE007582FAFFAFDD77FADD77FBDD7E02DDB603200C21160022478621FFFFC36B4EDD9D +:204D1E005E02DD56033E0021EC72CD19827DB4280621FFFFC36B4E210A00DD4E02DD460342 +:204D3E00095E23563E00218E7ACD19827DB42808DD36FAFFDD36FBFF210A00DD4E02DD46B1 +:204D5E00030936FF2336FF210C00097EE6042834210600DD4E02DD4603095E23563E0021E9 +:204D7E003C7ECD1982210C00097EE6FB77237EE6FF7721060009E521080009AF772377E102 +:204D9E00AF772377210C00DD4E02DD4603097EE608CA574E2AF384DD75FCDD74FDAFDD7791 +:204DBE00FEDD77FF210C00DD4E02DD460309AF772377DD7EFCDDB6FD2827DD6E02DD660372 +:204DDE00DD4EFCDD46FDA7ED422816211600DD4EFCDD46FD095623666ADD75FCDD74FD18D6 +:204DFE00D1DD6E02DD6603DD4EFCDD46FDA7ED422037DD7EFEDDB6FF2013211600DD4E023B +:204E1E00DD4603094623666822F384181C211600DD4EFEDD46FF09E5211600DD4E02DD464A +:204E3E0003094E2346E1712370DD5E02DD56033E00213C7ECD1982180E210C00DD4E02DD5B +:104E5E00460309AF772377DD6EFADD66FBC3A381C8 +:20027200DDF9DDE1D13333F1ED3939C92100003E11CB13CB123DC8CB15CB14ED4230F2093F +:0202920018EF63 +:1A4E6E0021040039C5D55E2356234D44F7300622478621FFFFD1C1C3A981ED +:0A0294005E2356CDAE81722B73C9B4 +:204E8800CD7582FEFF210C00DD4E02DD4603097EE680280EDD5E02DD56033E0021EC72CDA9 +:204EA8001982210C00DD4E02DD4603097EE6104F237EE603473E10A9B0280621FFFFC395E6 +:204EC8004FDD6E02DD660323234E2346DD6E02DD66035623666AA7ED42DA7B4FDD6E02DD6B +:204EE80066032323E5210600DD4E02DD4603095E2356E17323726960732372DD6E02DD6672 +:204F080003E5210600DD4E02DD4603095E2356210800097E23666FA7ED52E5010100DD6E87 +:204F280002DD66035E23563E0021DD70CD1982F1F1DD75FEDD74FF7DB4200521FFFF184DDA +:204F4800DD6E02DD660323237EDD86FE77237EDD8EFF77210C00DD4E02DD4603097EF6405B +:204F680077237EF60077210C00097EE6FF77237EE6FB77DD6E02DD66034E234603702B7142 +:104F88000B0A4F0600DD71FEDD70FF6960C3A38167 +:0F029E00F57D2F6F7C2F67792F4F782F47F1C990 +:204F9800CD7582FEFFDD6E02DD6603DD75FEDD74FFDD6E0ADD660B2BDD750ADD740B237DDF +:204FB800B42814DD4604DD6EFEDD66FF23DD75FEDD74FF2B7018DADD6E02DD6603C3A3816D +:204FD800CD7582FAFF2A3F852BDD75FADD74FB21FFFF223F853E00210000324B86224986F3 +:204FF800DDCBFB7E2053010500DD5EFADD56FBCDAE81215288195E23562346EBDD75FCDD36 +:2050180074FDDD70FE110500DD4EFADD46FBCDAE81215588194E2346DD5E02DD5603DD7ECB +:20503800FEDD6EFCDD66FDCD1982DD6EFADD66FB2BDD75FADD74FB18A7C3A381CD0D822AF9 +:205058003F85CB7C200E010A802A3F853E80AC67ED42380B210C0022478621FFFF18533E5F +:205078000121D84F324B86224986DD7E02DDB603DDB604283A010500ED5B3F85CDAE8121C0 +:20509800528819DD5604DD4E02DD46037123702372010500ED5B3F85CDAE8121558819DDE0 +:2050B8004E0ADD460B7123702A3F8523223F85210000C3A381CD0D82210000E53E01215439 +:0850D80050CD1982F1C3A38140 +:020453000000A7 +:2050E00021040039D55E2356234D44F7300822478621FFFF4D44D1C3A981CD0D82D5210B09 +:0F51000000E53E01216E4ECD1982F1F1C3A3816E +:0702AD00DDF9DDE1D1C1C95B +:20510F00CD7582FEFF3E0021B877CD1982210C000946236668DD75FEDD74FF7DE6402818D9 +:20512F00DD5E04DD56053E0021EC72CD19827DB4280621FFFFC31E52DD7EFEE6206FDD7EEA +:20514F00FFE603673E20ADB4280621FFFFC31E52210800DD4E04DD4605095E23560A6F03D6 +:20516F000A67A7ED523818DD5E04DD56053E0021EC72CD19827DB4280621FFFFC31E52DD4F +:20518F006E04DD66054E234603702B710B6960DD460270210C00DD4E04DD4605097EF68096 +:2051AF0077237EF600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5EA7 +:2051CF0004DD56053E0021EC72CD19827DB4280521FFFF183ADD7EFEE6032818210400DD0C +:2051EF004E04DD460509E5210600094E2346E17123701816210400DD4E04DD460509E521B3 +:20520F000800094E2346E1712370DD6E022600C3A381CD7582FEFFDD36FE41DDCB0D7E280A +:20522F0016DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE50E00C5DD6E71 +:20524F000CDD660DE5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E01210040CD1982A4 +:20526F00F1F1F1F1C3A381CD7582F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD59 +:20528F006EFEDD66FF4E0600214185097EE610280ADD34FE2003DD34FF18E4DD6EFEDD669D +:2052AF00FF7EFE2D2012DD34FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFE53 +:2052CF002B2008DD34FE2003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E01A1 +:2052EF00211754CD1982F1DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CDDD82180C32 +:0F530F00DD4EFADD46FBDD6EF8DD66F9C35E8329 +:2002B400CB7A2818424BDD6607DD6E06CD8A83CDD5825059DD7407DD75063E01DDCBFF7EC2 +:2002D400C8F5DD46FFDD4EFEDD66FDDD6EFCCD8A83CDD582DD70FFDD71FEDD74FDDD75FC49 +:2002F400F1EE01C9C5D55E2356234E2346EBCD1984C34184EBE3F5DDE5DD210000DD39C5BB +:20031400D5DD5609DD7409DD5E08DD7508CD0683DDF9DDE1F1D13333C9EBE3F5DDE5DD2163 +:200334000000DD39C5D5DD5609DD7409DD5E08DD7508CD0683E1C1CD8A83DDE1F1D133330E +:01035400C9DF +:20531E00CD0D82D5211800E53E01216E4ECD1982F1F1C3A381CD7582FCFFAFDD77FCDD77C1 +:20533E00FDDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB62833DD4E04DD4605DD6EFE34 +:20535E00DD66FF23DD75FEDD74FF2B5E16003E01210F51CD19827DA43C200521FFFF18109A +:13537E00DD34FC2003DD34FD18C3DD6EFCDD66FDC3A38195 +:09035500EB702B712B722B73C9A4 +:20539100CD7582FEFFDD36FEFFDD36FFFFDD5E021600214185197EE608280FDD4E020600F1 +:2053B10021D0FF09DD75FEDD74FFDD4E020600214185097EE604280FDD4E02060021A9FF85 +:2053D10009DD75FEDD74FFDD4E020600214185097EE602280FDD4E02060021B0FF09DD75F5 +:2053F100FEDD74FFDD4E04DD4605DD6EFEDD66FFCDC3823808DD36FEFFDD36FFFFDD6EFEB0 +:20541100DD66FFC39983CD7582FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADDFF +:20543100460B212400CDC3823007AFDD770ADD770BDD6E02DD66034E0600214185097EE6D5 +:2054510010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD340305 +:20547100186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FE15 +:20549100582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD66033C +:2054B100237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DD6E +:2054D100360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AFEC +:2054F100DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECD9153DD75FEDD2B +:2055110074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CD4A8421000039DD5EFE99 +:20553100DD56FF7A079F4F41CDF481DD34022003DD340318B7DD7E04DDB6052811DD6E02A0 +:20555100DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC35E83CD0D82E9 +:205571001600214185197EE604280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C365 +:20559100A381CD0D821600214185197EE602280EDD7E02EE206FDD7E03EE00671806DD6ED2 +:0755B10002DD6603C3A381C4 +:20045500010101010101010101111111111101010101010101010101010101010101010117 +:200475001020202020202020202020202020202048484848484848484848202020202020E7 +:200495002042424242424202020202020202020202020202020202020202022020202020D3 +:2004B50020444444444444040404040404040404040404040404040404040420202020019E +:2004D500000000000000000000000000000000000000000000000000000000000000000007 +:2004F5000000000000000000000000000000000000000000000000000000000000000000E7 +:200515000000000000000000000000000000000000000000000000000000000000000000C6 +:200535000000000000000000000000000000000000000000000000000000000000000000A6 +:10035E00C5D55E2356234E2346EBCD1F81C3418464 +:00000001FF diff --git a/src/db/db.lnk b/src/db/db.lnk new file mode 100644 index 00000000..a17ca65c --- /dev/null +++ b/src/db/db.lnk @@ -0,0 +1,14 @@ +-k ..\..\lib +-l libcb.lib +-l libsysb.lib +-l libiar.lib +-m +-u +-i +-o db +-bl RCODE=0x8100 +-bl CODE=0x4000,0x10000 +-bc CODE=0x4000 +..\..\lib\c0b.rel +db +main diff --git a/src/db/db.lst b/src/db/db.lst new file mode 100644 index 00000000..72cb74c7 --- /dev/null +++ b/src/db/db.lst @@ -0,0 +1,6551 @@ + 1 NAME db(17) + 2 RSEG CODE(0) + 3 RSEG CSTR(0) + 4 EXTERN __fopen + 5 EXTERN atoi + 6 EXTERN atol + 7 PUBLIC dbDeleteExpression + 8 PUBLIC dbDeleteList + 9 PUBLIC dbDeleteRow + 10 PUBLIC dbEvaluateExpression + 11 PUBLIC dbExecuteDelete + 12 PUBLIC dbExecuteInsert + 13 PUBLIC dbExecuteQuery + 14 PUBLIC dbExecuteStatement + 15 PUBLIC dbExecuteUpdate + 16 PUBLIC dbFieldOffset + 17 PUBLIC dbFieldSearch + 18 PUBLIC dbGetInt + 19 PUBLIC dbGetLong + 20 PUBLIC dbGetString + 21 PUBLIC dbListIndex + 22 PUBLIC dbListSize + 23 PUBLIC dbNewExpression + 24 PUBLIC dbNewRow + 25 PUBLIC dbNextRow + 26 PUBLIC dbOperatorPrecedence + 27 PUBLIC dbParseDelete + 28 PUBLIC dbParseExpression + 29 PUBLIC dbParseInsert + 30 PUBLIC dbParseList + 31 PUBLIC dbParseSelect + 32 PUBLIC dbParseStatement + 33 PUBLIC dbParseUpdate + 34 PUBLIC dbRecordSize + 35 PUBLIC dbReplaceChar + 36 PUBLIC dbResultSetClose + 37 PUBLIC dbSkipLiteral + 38 PUBLIC dbStatementClose + 39 PUBLIC dbTableClose + 40 PUBLIC dbTableOpen + 41 PUBLIC dbTrimString + 42 EXTERN fclose + 43 EXTERN fread + 44 EXTERN free + 45 EXTERN fseek + 46 EXTERN fwrite + 47 EXTERN itoa + 48 EXTERN ltoa + 49 EXTERN malloc + 50 EXTERN memcpy + 51 EXTERN strcat + 52 EXTERN strcmp + 53 EXTERN strcpy + 54 EXTERN strlen + 55 EXTERN strncmp + 56 EXTERN ?CL64180B_4_06_L00 + 57 EXTERN ?L_MUL_L03 + 58 EXTERN ?SL_DIV_L03 + 59 EXTERN ?L_AND_L03 + 60 EXTERN ?L_OR_L03 + 61 EXTERN ?SL_CMP_L03 + 62 EXTERN ?C_V_SWITCH_L06 + 63 EXTERN ?BANK_CALL_DIRECT_L08 + 64 EXTERN ?BANK_FAST_LEAVE_L08 + 65 RSEG CODE + 00000000 66 dbDeleteList: + 00000000 DD E5 67 PUSH IX + 00000002 D5 68 PUSH DE + 00000003 DD E1 69 POP IX + 00000005 7B 70 LD A,E + 00000006 B2 71 OR D + 00000007 28 27 72 JR Z,?0001 + 00000009 73 ?0000: + 00000009 DD 7E 04 74 LD A,(IX+4) + 0000000C DD B6 05 75 OR (IX+5) + 0000000F 28 03 76 JR Z,?0003 + 00000011 77 ?0002: + 00000011 CD 35 00 78 CALL LWRD ?0638 + 00000014 79 ?0003: + 00000014 DD 7E 02 80 LD A,(IX+2) + 00000017 DD B6 03 81 OR (IX+3) + 0000001A 28 0E 82 JR Z,?0005 + 0000001C 83 ?0004: + 0000001C DD 5E 02 84 LD E,(IX+2) + 0000001F DD 56 03 85 LD D,(IX+3) + 00000022 3E 00 86 LD A,BYTE3 dbDeleteList + 00000024 21 00 00 87 LD HL,LWRD dbDeleteList + 00000027 CD 00 00 88 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000002A 89 ?0005: + 0000002A DD E5 90 PUSH IX + 0000002C D1 91 POP DE + 0000002D CD 3B 00 92 CALL LWRD ?0639 + 00000030 93 ?0001: + 00000030 DD E1 94 POP IX + 00000032 C3 00 00 95 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000035 96 ?0638: + 00000035 DD 5E 04 97 LD E,(IX+4) + 00000038 DD 56 05 98 LD D,(IX+5) + 0000003B 99 ?0639: + 0000003B 3E 00 100 LD A,BYTE3 free + 0000003D 21 00 00 101 LD HL,LWRD free + 00000040 C3 00 00 102 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000043 103 dbListIndex: + 00000043 C5 104 PUSH BC + 00000044 FD E5 105 PUSH IY + 00000046 DD E5 106 PUSH IX + 00000048 D5 107 PUSH DE + 00000049 6B 108 LD L,E + 0000004A 62 109 LD H,D + 0000004B E5 110 PUSH HL + 0000004C DD E1 111 POP IX + 0000004E FD 21 00 00 112 LD IY,0 + 00000052 113 ?0007: + 00000052 DD 7E 00 114 LD A,(IX+0) + 00000055 DD B6 01 115 OR (IX+1) + 00000058 28 0D 116 JR Z,?0006 + 0000005A 117 ?0008: + 0000005A DD 6E 00 118 LD L,(IX+0) + 0000005D DD 66 01 119 LD H,(IX+1) + 00000060 E5 120 PUSH HL + 00000061 DD E1 121 POP IX + 00000063 FD 23 122 INC IY + 00000065 18 EB 123 JR ?0007 + 00000067 124 ?0006: + 00000067 FD E5 125 PUSH IY + 00000069 E1 126 POP HL + 0000006A F1 127 POP AF + 0000006B 128 ?0614: + 0000006B DD E1 129 POP IX + 0000006D FD E1 130 POP IY + 0000006F C1 131 POP BC + 00000070 C3 00 00 132 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000073 133 dbListSize: + 00000073 C5 134 PUSH BC + 00000074 FD E5 135 PUSH IY + 00000076 DD E5 136 PUSH IX + 00000078 D5 137 PUSH DE + 00000079 6B 138 LD L,E + 0000007A 62 139 LD H,D + 0000007B E5 140 PUSH HL + 0000007C DD E1 141 POP IX + 0000007E EB 142 EX DE,HL + 0000007F 3E 43 143 LD A,BYTE3 dbListIndex + 00000081 21 43 00 144 LD HL,LWRD dbListIndex + 00000084 CD 00 00 145 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000087 23 146 INC HL + 00000088 E5 147 PUSH HL + 00000089 FD E1 148 POP IY + 0000008B 149 ?0010: + 0000008B DD 7E 02 150 LD A,(IX+2) + 0000008E DD B6 03 151 OR (IX+3) + 00000091 28 0D 152 JR Z,?0009 + 00000093 153 ?0011: + 00000093 DD 6E 02 154 LD L,(IX+2) + 00000096 DD 66 03 155 LD H,(IX+3) + 00000099 E5 156 PUSH HL + 0000009A DD E1 157 POP IX + 0000009C FD 23 158 INC IY + 0000009E 18 EB 159 JR ?0010 + 000000A0 160 ?0009: + 000000A0 C3 67 00 161 JP LWRD ?0006 + 000000A3 162 dbSkipLiteral: + 000000A3 FD E5 163 PUSH IY + 000000A5 DD E5 164 PUSH IX + 000000A7 D5 165 PUSH DE + 000000A8 C5 166 PUSH BC + 000000A9 DD E1 167 POP IX + 000000AB 21 0A 00 168 LD HL,10 + 000000AE 39 169 ADD HL,SP + 000000AF 5E 170 LD E,(HL) + 000000B0 23 171 INC HL + 000000B1 56 172 LD D,(HL) + 000000B2 D5 173 PUSH DE + 000000B3 FD E1 174 POP IY + 000000B5 FD 6E 00 175 LD L,(IY+0) + 000000B8 FD 66 01 176 LD H,(IY+1) + 000000BB 09 177 ADD HL,BC + 000000BC 56 178 LD D,(HL) + 000000BD 21 0C 00 179 LD HL,12 + 000000C0 39 180 ADD HL,SP + 000000C1 7E 181 LD A,(HL) + 000000C2 23 182 INC HL + 000000C3 66 183 LD H,(HL) + 000000C4 6F 184 LD L,A + 000000C5 5E 185 LD E,(HL) + 000000C6 23 186 INC HL + 000000C7 66 187 LD H,(HL) + 000000C8 6B 188 LD L,E + 000000C9 09 189 ADD HL,BC + 000000CA 190 ?0458: + 000000CA 72 191 LD (HL),D + 000000CB 192 ?0013: + 000000CB FD E5 193 PUSH IY + 000000CD E1 194 POP HL + 000000CE 4E 195 LD C,(HL) + 000000CF 23 196 INC HL + 000000D0 46 197 LD B,(HL) + 000000D1 03 198 INC BC + 000000D2 70 199 LD (HL),B + 000000D3 2B 200 DEC HL + 000000D4 71 201 LD (HL),C + 000000D5 DD E5 202 PUSH IX + 000000D7 E1 203 POP HL + 000000D8 09 204 ADD HL,BC + 000000D9 7E 205 LD A,(HL) + 000000DA 21 00 00 206 LD HL,0 + 000000DD 39 207 ADD HL,SP + 000000DE BE 208 CP (HL) + 000000DF FD 6E 00 209 LD L,(IY+0) + 000000E2 FD 66 01 210 LD H,(IY+1) + 000000E5 DD E5 211 PUSH IX + 000000E7 C1 212 POP BC + 000000E8 09 213 ADD HL,BC + 000000E9 56 214 LD D,(HL) + 000000EA D5 215 PUSH DE + 000000EB 21 0E 00 216 LD HL,14 + 000000EE 39 217 ADD HL,SP + 000000EF 7E 218 LD A,(HL) + 000000F0 23 219 INC HL + 000000F1 66 220 LD H,(HL) + 000000F2 6F 221 LD L,A + 000000F3 5E 222 LD E,(HL) + 000000F4 23 223 INC HL + 000000F5 56 224 LD D,(HL) + 000000F6 13 225 INC DE + 000000F7 72 226 LD (HL),D + 000000F8 2B 227 DEC HL + 000000F9 73 228 LD (HL),E + 000000FA 69 229 LD L,C + 000000FB 60 230 LD H,B + 000000FC 19 231 ADD HL,DE + 000000FD D1 232 POP DE + 000000FE 20 CA 233 JR NZ,?0458 + 00000100 234 ?0014: + 00000100 235 ?0012: + 00000100 72 236 LD (HL),D + 00000101 237 ?0625: + 00000101 E1 238 POP HL + 00000102 DD E1 239 POP IX + 00000104 FD E1 240 POP IY + 00000106 C3 00 00 241 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000109 242 dbTrimString: + 00000109 C5 243 PUSH BC + 0000010A FD E5 244 PUSH IY + 0000010C DD E5 245 PUSH IX + 0000010E DD 21 00 00 246 LD IX,0 + 00000112 DD 39 247 ADD IX,SP + 00000114 F5 248 PUSH AF + 00000115 F5 249 PUSH AF + 00000116 F5 250 PUSH AF + 00000117 D5 251 PUSH DE + 00000118 FD E1 252 POP IY + 0000011A AF 253 XOR A + 0000011B DD 77 FA 254 LD (IX-6),A + 0000011E DD 77 FB 255 LD (IX-5),A + 00000121 DD 77 FC 256 LD (IX-4),A + 00000124 DD 77 FD 257 LD (IX-3),A + 00000127 DD 36 FE 20 258 LD (IX-2),32 + 0000012B 259 ?0016: + 0000012B DD 6E FA 260 LD L,(IX-6) + 0000012E DD 66 FB 261 LD H,(IX-5) + 00000131 FD E5 262 PUSH IY + 00000133 C1 263 POP BC + 00000134 09 264 ADD HL,BC + 00000135 7E 265 LD A,(HL) + 00000136 B7 266 OR A + 00000137 CA 89 02 267 JP Z,?0015 + 0000013A 268 ?0017: + 0000013A DD 6E FA 269 LD L,(IX-6) + 0000013D DD 66 FB 270 LD H,(IX-5) + 00000140 09 271 ADD HL,BC + 00000141 7E 272 LD A,(HL) + 00000142 FE 27 273 CP 39 + 00000144 28 0C 274 JR Z,?0020 + 00000146 DD 6E FA 275 LD L,(IX-6) + 00000149 DD 66 FB 276 LD H,(IX-5) + 0000014C 09 277 ADD HL,BC + 0000014D 7E 278 LD A,(HL) + 0000014E FE 22 279 CP 34 + 00000150 20 1D 280 JR NZ,?0019 + 00000152 281 ?0020: + 00000152 282 ?0021: + 00000152 283 ?0018: + 00000152 21 02 00 284 LD HL,2 + 00000155 39 285 ADD HL,SP + 00000156 E5 286 PUSH HL + 00000157 2B 287 DEC HL + 00000158 2B 288 DEC HL + 00000159 E5 289 PUSH HL + 0000015A DD 6E FA 290 LD L,(IX-6) + 0000015D DD 66 FB 291 LD H,(IX-5) + 00000160 FD E5 292 PUSH IY + 00000162 D1 293 POP DE + 00000163 19 294 ADD HL,DE + 00000164 5E 295 LD E,(HL) + 00000165 3E A3 296 LD A,BYTE3 dbSkipLiteral + 00000167 21 A3 00 297 LD HL,LWRD dbSkipLiteral + 0000016A CD 00 00 298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000016D E1 299 POP HL + 0000016E E1 300 POP HL + 0000016F 301 ?0019: + 0000016F DD 7E FE 302 LD A,(IX-2) + 00000172 FE 20 303 CP 32 + 00000174 C2 18 02 304 JP NZ,?0023 + 00000177 DD 6E FA 305 LD L,(IX-6) + 0000017A DD 66 FB 306 LD H,(IX-5) + 0000017D FD E5 307 PUSH IY + 0000017F C1 308 POP BC + 00000180 09 309 ADD HL,BC + 00000181 7E 310 LD A,(HL) + 00000182 FE 2C 311 CP 44 + 00000184 CA 0B 02 312 JP Z,?0026 + 00000187 DD 6E FA 313 LD L,(IX-6) + 0000018A DD 66 FB 314 LD H,(IX-5) + 0000018D 09 315 ADD HL,BC + 0000018E 7E 316 LD A,(HL) + 0000018F FE 29 317 CP 41 + 00000191 28 78 318 JR Z,?0026 + 00000193 DD 6E FA 319 LD L,(IX-6) + 00000196 DD 66 FB 320 LD H,(IX-5) + 00000199 09 321 ADD HL,BC + 0000019A 7E 322 LD A,(HL) + 0000019B FE 28 323 CP 40 + 0000019D 28 6C 324 JR Z,?0026 + 0000019F DD 6E FA 325 LD L,(IX-6) + 000001A2 DD 66 FB 326 LD H,(IX-5) + 000001A5 09 327 ADD HL,BC + 000001A6 7E 328 LD A,(HL) + 000001A7 FE 2B 329 CP 43 + 000001A9 28 60 330 JR Z,?0026 + 000001AB DD 6E FA 331 LD L,(IX-6) + 000001AE DD 66 FB 332 LD H,(IX-5) + 000001B1 09 333 ADD HL,BC + 000001B2 7E 334 LD A,(HL) + 000001B3 FE 2D 335 CP 45 + 000001B5 28 54 336 JR Z,?0026 + 000001B7 DD 6E FA 337 LD L,(IX-6) + 000001BA DD 66 FB 338 LD H,(IX-5) + 000001BD 09 339 ADD HL,BC + 000001BE 7E 340 LD A,(HL) + 000001BF FE 2A 341 CP 42 + 000001C1 28 48 342 JR Z,?0026 + 000001C3 DD 6E FA 343 LD L,(IX-6) + 000001C6 DD 66 FB 344 LD H,(IX-5) + 000001C9 09 345 ADD HL,BC + 000001CA 7E 346 LD A,(HL) + 000001CB FE 2F 347 CP 47 + 000001CD 28 3C 348 JR Z,?0026 + 000001CF DD 6E FA 349 LD L,(IX-6) + 000001D2 DD 66 FB 350 LD H,(IX-5) + 000001D5 09 351 ADD HL,BC + 000001D6 7E 352 LD A,(HL) + 000001D7 FE 26 353 CP 38 + 000001D9 28 30 354 JR Z,?0026 + 000001DB DD 6E FA 355 LD L,(IX-6) + 000001DE DD 66 FB 356 LD H,(IX-5) + 000001E1 09 357 ADD HL,BC + 000001E2 7E 358 LD A,(HL) + 000001E3 FE 7C 359 CP 124 + 000001E5 28 24 360 JR Z,?0026 + 000001E7 DD 6E FA 361 LD L,(IX-6) + 000001EA DD 66 FB 362 LD H,(IX-5) + 000001ED 09 363 ADD HL,BC + 000001EE 7E 364 LD A,(HL) + 000001EF FE 3D 365 CP 61 + 000001F1 28 18 366 JR Z,?0026 + 000001F3 DD 6E FA 367 LD L,(IX-6) + 000001F6 DD 66 FB 368 LD H,(IX-5) + 000001F9 09 369 ADD HL,BC + 000001FA 7E 370 LD A,(HL) + 000001FB FE 3C 371 CP 60 + 000001FD 28 0C 372 JR Z,?0026 + 000001FF DD 6E FA 373 LD L,(IX-6) + 00000202 DD 66 FB 374 LD H,(IX-5) + 00000205 09 375 ADD HL,BC + 00000206 7E 376 LD A,(HL) + 00000207 FE 3E 377 CP 62 + 00000209 20 0D 378 JR NZ,?0023 + 0000020B 379 ?0026: + 0000020B 380 ?0027: + 0000020B 381 ?0025: + 0000020B 382 ?0024: + 0000020B 383 ?0022: + 0000020B DD 6E FC 384 LD L,(IX-4) + 0000020E DD 66 FD 385 LD H,(IX-3) + 00000211 2B 386 DEC HL + 00000212 DD 75 FC 387 LD (IX-4),L + 00000215 DD 74 FD 388 LD (IX-3),H + 00000218 389 ?0023: + 00000218 DD 6E FA 390 LD L,(IX-6) + 0000021B DD 66 FB 391 LD H,(IX-5) + 0000021E FD E5 392 PUSH IY + 00000220 C1 393 POP BC + 00000221 09 394 ADD HL,BC + 00000222 56 395 LD D,(HL) + 00000223 DD 6E FC 396 LD L,(IX-4) + 00000226 DD 66 FD 397 LD H,(IX-3) + 00000229 09 398 ADD HL,BC + 0000022A 72 399 LD (HL),D + 0000022B DD 7E FE 400 LD A,(IX-2) + 0000022E FE 2C 401 CP 44 + 00000230 28 2C 402 JR Z,?0031 + 00000232 FE 20 403 CP 32 + 00000234 28 28 404 JR Z,?0031 + 00000236 FE 28 405 CP 40 + 00000238 28 24 406 JR Z,?0031 + 0000023A FE 2B 407 CP 43 + 0000023C 28 20 408 JR Z,?0031 + 0000023E FE 2D 409 CP 45 + 00000240 28 1C 410 JR Z,?0031 + 00000242 FE 2A 411 CP 42 + 00000244 28 18 412 JR Z,?0031 + 00000246 FE 2F 413 CP 47 + 00000248 28 14 414 JR Z,?0031 + 0000024A FE 26 415 CP 38 + 0000024C 28 10 416 JR Z,?0031 + 0000024E FE 7C 417 CP 124 + 00000250 28 0C 418 JR Z,?0031 + 00000252 FE 3D 419 CP 61 + 00000254 28 08 420 JR Z,?0031 + 00000256 FE 3E 421 CP 62 + 00000258 28 04 422 JR Z,?0031 + 0000025A FE 3C 423 CP 60 + 0000025C 20 0C 424 JR NZ,?0032 + 0000025E 425 ?0031: + 0000025E 426 ?0030: + 0000025E DD 6E FA 427 LD L,(IX-6) + 00000261 DD 66 FB 428 LD H,(IX-5) + 00000264 09 429 ADD HL,BC + 00000265 7E 430 LD A,(HL) + 00000266 FE 20 431 CP 32 + 00000268 28 08 432 JR Z,?0459 + 0000026A 433 ?0032: + 0000026A 434 ?0033: + 0000026A 435 ?0028: + 0000026A DD 34 FC 436 INC (IX-4) + 0000026D 20 03 437 JR NZ,?0459 + 0000026F DD 34 FD 438 INC (IX-3) + 00000272 439 ?0459: + 00000272 440 ?0029: + 00000272 DD 6E FA 441 LD L,(IX-6) + 00000275 DD 66 FB 442 LD H,(IX-5) + 00000278 09 443 ADD HL,BC + 00000279 46 444 LD B,(HL) + 0000027A DD 70 FE 445 LD (IX-2),B + 0000027D DD 34 FA 446 INC (IX-6) + 00000280 C2 2B 01 447 JP NZ,?0016 + 00000283 DD 34 FB 448 INC (IX-5) + 00000286 C3 2B 01 449 JP LWRD ?0016 + 00000289 450 ?0015: + 00000289 DD 7E FE 451 LD A,(IX-2) + 0000028C FE 20 452 CP 32 + 0000028E DD 6E FC 453 LD L,(IX-4) + 00000291 DD 66 FD 454 LD H,(IX-3) + 00000294 20 01 455 JR NZ,?0035 + 00000296 456 ?0034: + 00000296 2B 457 DEC HL + 00000297 458 ?0035: + 00000297 09 459 ADD HL,BC + 00000298 36 00 460 LD (HL),0 + 0000029A 461 ?0036: + 0000029A DD F9 462 LD SP,IX + 0000029C C3 6B 00 463 JP LWRD ?0614 + 0000029F 464 dbReplaceChar: + 0000029F FD E5 465 PUSH IY + 000002A1 DD E5 466 PUSH IX + 000002A3 C5 467 PUSH BC + 000002A4 D5 468 PUSH DE + 000002A5 FD E1 469 POP IY + 000002A7 DD 21 00 00 470 LD IX,0 + 000002AB 471 ?0038: + 000002AB DD E5 472 PUSH IX + 000002AD E1 473 POP HL + 000002AE FD E5 474 PUSH IY + 000002B0 C1 475 POP BC + 000002B1 09 476 ADD HL,BC + 000002B2 7E 477 LD A,(HL) + 000002B3 21 00 00 478 LD HL,0 + 000002B6 39 479 ADD HL,SP + 000002B7 BE 480 CP (HL) + 000002B8 28 0C 481 JR Z,?0037 + 000002BA DD E5 482 PUSH IX + 000002BC E1 483 POP HL + 000002BD 09 484 ADD HL,BC + 000002BE 7E 485 LD A,(HL) + 000002BF B7 486 OR A + 000002C0 28 04 487 JR Z,?0037 + 000002C2 488 ?0041: + 000002C2 489 ?0040: + 000002C2 490 ?0039: + 000002C2 DD 23 491 INC IX + 000002C4 18 E5 492 JR ?0038 + 000002C6 493 ?0037: + 000002C6 DD E5 494 PUSH IX + 000002C8 E1 495 POP HL + 000002C9 09 496 ADD HL,BC + 000002CA 7E 497 LD A,(HL) + 000002CB B7 498 OR A + 000002CC 28 0C 499 JR Z,?0043 + 000002CE 500 ?0042: + 000002CE DD E5 501 PUSH IX + 000002D0 E1 502 POP HL + 000002D1 09 503 ADD HL,BC + 000002D2 E5 504 PUSH HL + 000002D3 21 0C 00 505 LD HL,12 + 000002D6 39 506 ADD HL,SP + 000002D7 46 507 LD B,(HL) + 000002D8 E1 508 POP HL + 000002D9 70 509 LD (HL),B + 000002DA 510 ?0043: + 000002DA DD E5 511 PUSH IX + 000002DC E1 512 POP HL + 000002DD FD E5 513 PUSH IY + 000002DF C1 514 POP BC + 000002E0 09 515 ADD HL,BC + 000002E1 516 ?0626: + 000002E1 F1 517 POP AF + 000002E2 DD E1 518 POP IX + 000002E4 FD E1 519 POP IY + 000002E6 C3 00 00 520 JP LWRD ?BANK_FAST_LEAVE_L08 + 000002E9 521 dbParseList: + 000002E9 FD E5 522 PUSH IY + 000002EB DD E5 523 PUSH IX + 000002ED DD 21 00 00 524 LD IX,0 + 000002F1 DD 39 525 ADD IX,SP + 000002F3 C5 526 PUSH BC + 000002F4 D5 527 PUSH DE + 000002F5 21 D8 FF 528 LD HL,65496 + 000002F8 39 529 ADD HL,SP + 000002F9 F9 530 LD SP,HL + 000002FA 11 06 00 531 LD DE,6 + 000002FD CD 8F 04 532 CALL LWRD ?0641 + 00000300 E5 533 PUSH HL + 00000301 FD E1 534 POP IY + 00000303 DD 75 DA 535 LD (IX-38),L + 00000306 DD 74 DB 536 LD (IX-37),H + 00000309 AF 537 XOR A + 0000030A 77 538 LD (HL),A + 0000030B 23 539 INC HL + 0000030C 77 540 LD (HL),A + 0000030D DD 77 D6 541 LD (IX-42),A + 00000310 DD 77 D7 542 LD (IX-41),A + 00000313 DD 77 D4 543 LD (IX-44),A + 00000316 DD 77 D5 544 LD (IX-43),A + 00000319 545 ?0045: + 00000319 DD 6E 0A 546 LD L,(IX+10) + 0000031C DD 66 0B 547 LD H,(IX+11) + 0000031F 46 548 LD B,(HL) + 00000320 23 549 INC HL + 00000321 66 550 LD H,(HL) + 00000322 68 551 LD L,B + 00000323 DD 4E FC 552 LD C,(IX-4) + 00000326 DD 46 FD 553 LD B,(IX-3) + 00000329 09 554 ADD HL,BC + 0000032A 7E 555 LD A,(HL) + 0000032B DD BE 08 556 CP (IX+8) + 0000032E 20 07 557 JR NZ,?0047 + 00000330 AF 558 XOR A + 00000331 DD B6 D4 559 OR (IX-44) + 00000334 CA 41 04 560 JP Z,?0044 + 00000337 561 ?0047: + 00000337 562 ?0048: + 00000337 DD 6E 0A 563 LD L,(IX+10) + 0000033A DD 66 0B 564 LD H,(IX+11) + 0000033D 46 565 LD B,(HL) + 0000033E 23 566 INC HL + 0000033F 66 567 LD H,(HL) + 00000340 68 568 LD L,B + 00000341 DD 46 FD 569 LD B,(IX-3) + 00000344 09 570 ADD HL,BC + 00000345 7E 571 LD A,(HL) + 00000346 B7 572 OR A + 00000347 CA 41 04 573 JP Z,?0044 + 0000034A 574 ?0050: + 0000034A 575 ?0049: + 0000034A 576 ?0046: + 0000034A DD 6E 0A 577 LD L,(IX+10) + 0000034D DD 66 0B 578 LD H,(IX+11) + 00000350 46 579 LD B,(HL) + 00000351 23 580 INC HL + 00000352 66 581 LD H,(HL) + 00000353 68 582 LD L,B + 00000354 DD 46 FD 583 LD B,(IX-3) + 00000357 09 584 ADD HL,BC + 00000358 7E 585 LD A,(HL) + 00000359 FE 22 586 CP 34 + 0000035B 28 04 587 JR Z,?0052 + 0000035D FE 27 588 CP 39 + 0000035F 20 10 589 JR NZ,?0053 + 00000361 590 ?0052: + 00000361 AF 591 XOR A + 00000362 DD B6 D4 592 OR (IX-44) + 00000365 20 04 593 JR NZ,?0463 + 00000367 3E 01 594 LD A,1 + 00000369 18 01 595 JR ?0464 + 0000036B 596 ?0463: + 0000036B AF 597 XOR A + 0000036C 598 ?0464: + 0000036C DD 77 D4 599 LD (IX-44),A + 0000036F 18 1C 600 JR ?0058 + 00000371 601 ?0053: + 00000371 FE 28 602 CP 40 + 00000373 20 0B 603 JR NZ,?0056 + 00000375 AF 604 XOR A + 00000376 DD B6 D4 605 OR (IX-44) + 00000379 20 12 606 JR NZ,?0058 + 0000037B 607 ?0054: + 0000037B DD 34 D5 608 INC (IX-43) + 0000037E 609 ?0055: + 0000037E 18 0D 610 JR ?0058 + 00000380 611 ?0056: + 00000380 FE 29 612 CP 41 + 00000382 20 09 613 JR NZ,?0058 + 00000384 AF 614 XOR A + 00000385 DD B6 D4 615 OR (IX-44) + 00000388 20 03 616 JR NZ,?0058 + 0000038A 617 ?0057: + 0000038A DD 35 D5 618 DEC (IX-43) + 0000038D 619 ?0058: + 0000038D 620 ?0051: + 0000038D DD 6E 0A 621 LD L,(IX+10) + 00000390 DD 66 0B 622 LD H,(IX+11) + 00000393 46 623 LD B,(HL) + 00000394 23 624 INC HL + 00000395 66 625 LD H,(HL) + 00000396 68 626 LD L,B + 00000397 DD 46 FD 627 LD B,(IX-3) + 0000039A 09 628 ADD HL,BC + 0000039B 7E 629 LD A,(HL) + 0000039C DD BE FE 630 CP (IX-2) + 0000039F 20 0B 631 JR NZ,?0061 + 000003A1 AF 632 XOR A + 000003A2 DD B6 D4 633 OR (IX-44) + 000003A5 20 05 634 JR NZ,?0061 + 000003A7 DD B6 D5 635 OR (IX-43) + 000003AA 28 1D 636 JR Z,?0060 + 000003AC 637 ?0061: + 000003AC 638 ?0062: + 000003AC 639 ?0059: + 000003AC DD 6E 0A 640 LD L,(IX+10) + 000003AF DD 66 0B 641 LD H,(IX+11) + 000003B2 46 642 LD B,(HL) + 000003B3 23 643 INC HL + 000003B4 66 644 LD H,(HL) + 000003B5 68 645 LD L,B + 000003B6 DD 46 FD 646 LD B,(IX-3) + 000003B9 09 647 ADD HL,BC + 000003BA 46 648 LD B,(HL) + 000003BB 21 08 00 649 LD HL,8 + 000003BE 39 650 ADD HL,SP + 000003BF DD 5E D6 651 LD E,(IX-42) + 000003C2 DD 56 D7 652 LD D,(IX-41) + 000003C5 19 653 ADD HL,DE + 000003C6 70 654 LD (HL),B + 000003C7 18 61 655 JR ?0063 + 000003C9 656 ?0060: + 000003C9 21 08 00 657 LD HL,8 + 000003CC 39 658 ADD HL,SP + 000003CD DD 4E D6 659 LD C,(IX-42) + 000003D0 DD 46 D7 660 LD B,(IX-41) + 000003D3 09 661 ADD HL,BC + 000003D4 77 662 LD (HL),A + 000003D5 21 08 00 663 LD HL,8 + 000003D8 39 664 ADD HL,SP + 000003D9 CD 97 04 665 CALL LWRD ?0648 + 000003DC EB 666 EX DE,HL + 000003DD 13 667 INC DE + 000003DE CD 8F 04 668 CALL LWRD ?0641 + 000003E1 FD 75 04 669 LD (IY+4),L + 000003E4 FD 74 05 670 LD (IY+5),H + 000003E7 21 08 00 671 LD HL,8 + 000003EA 39 672 ADD HL,SP + 000003EB 4D 673 LD C,L + 000003EC 44 674 LD B,H + 000003ED FD 5E 04 675 LD E,(IY+4) + 000003F0 FD 56 05 676 LD D,(IY+5) + 000003F3 CD AD 04 677 CALL LWRD ?0651 + 000003F6 FD E5 678 PUSH IY + 000003F8 E1 679 POP HL + 000003F9 DD 75 D8 680 LD (IX-40),L + 000003FC DD 74 D9 681 LD (IX-39),H + 000003FF 11 06 00 682 LD DE,6 + 00000402 CD 8F 04 683 CALL LWRD ?0641 + 00000405 FD 75 02 684 LD (IY+2),L + 00000408 FD 74 03 685 LD (IY+3),H + 0000040B FD 6E 02 686 LD L,(IY+2) + 0000040E FD 66 03 687 LD H,(IY+3) + 00000411 E5 688 PUSH HL + 00000412 FD E1 689 POP IY + 00000414 DD 6E D8 690 LD L,(IX-40) + 00000417 DD 66 D9 691 LD H,(IX-39) + 0000041A E5 692 PUSH HL + 0000041B FD E5 693 PUSH IY + 0000041D E1 694 POP HL + 0000041E C1 695 POP BC + 0000041F 71 696 LD (HL),C + 00000420 23 697 INC HL + 00000421 70 698 LD (HL),B + 00000422 DD 36 D6 FF 699 LD (IX-42),255 + 00000426 DD 36 D7 FF 700 LD (IX-41),255 + 0000042A 701 ?0063: + 0000042A DD 6E 0A 702 LD L,(IX+10) + 0000042D DD 66 0B 703 LD H,(IX+11) + 00000430 34 704 INC (HL) + 00000431 23 705 INC HL + 00000432 20 01 706 JR NZ,?0465 + 00000434 34 707 INC (HL) + 00000435 708 ?0465: + 00000435 DD 34 D6 709 INC (IX-42) + 00000438 C2 19 03 710 JP NZ,?0045 + 0000043B DD 34 D7 711 INC (IX-41) + 0000043E C3 19 03 712 JP LWRD ?0045 + 00000441 713 ?0044: + 00000441 21 08 00 714 LD HL,8 + 00000444 39 715 ADD HL,SP + 00000445 DD 4E D6 716 LD C,(IX-42) + 00000448 DD 46 D7 717 LD B,(IX-41) + 0000044B 09 718 ADD HL,BC + 0000044C 77 719 LD (HL),A + 0000044D 21 08 00 720 LD HL,8 + 00000450 39 721 ADD HL,SP + 00000451 CD 97 04 722 CALL LWRD ?0648 + 00000454 EB 723 EX DE,HL + 00000455 13 724 INC DE + 00000456 CD 8F 04 725 CALL LWRD ?0641 + 00000459 FD 75 04 726 LD (IY+4),L + 0000045C FD 74 05 727 LD (IY+5),H + 0000045F 21 08 00 728 LD HL,8 + 00000462 39 729 ADD HL,SP + 00000463 4D 730 LD C,L + 00000464 44 731 LD B,H + 00000465 FD 5E 04 732 LD E,(IY+4) + 00000468 FD 56 05 733 LD D,(IY+5) + 0000046B CD AD 04 734 CALL LWRD ?0651 + 0000046E AF 735 XOR A + 0000046F FD 77 02 736 LD (IY+2),A + 00000472 FD 77 03 737 LD (IY+3),A + 00000475 DD 6E DA 738 LD L,(IX-38) + 00000478 DD 66 DB 739 LD H,(IX-37) + 0000047B 740 ?0630: + 0000047B DD F9 741 LD SP,IX + 0000047D DD E1 742 POP IX + 0000047F FD E1 743 POP IY + 00000481 C3 00 00 744 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000484 745 ?0643: + 00000484 71 746 LD (HL),C + 00000485 23 747 INC HL + 00000486 70 748 LD (HL),B + 00000487 FD 6E 00 749 LD L,(IY+0) + 0000048A FD 66 01 750 LD H,(IY+1) + 0000048D 751 ?0644: + 0000048D 29 752 ADD HL,HL + 0000048E 753 ?0642: + 0000048E EB 754 EX DE,HL + 0000048F 755 ?0641: + 0000048F 3E 00 756 LD A,BYTE3 malloc + 00000491 21 00 00 757 LD HL,LWRD malloc + 00000494 C3 00 00 758 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000497 759 ?0648: + 00000497 EB 760 EX DE,HL + 00000498 761 ?0649: + 00000498 3E 00 762 LD A,BYTE3 strlen + 0000049A 21 00 00 763 LD HL,LWRD strlen + 0000049D C3 00 00 764 JP LWRD ?BANK_CALL_DIRECT_L08 + 000004A0 765 ?0655: + 000004A0 4D 766 LD C,L + 000004A1 44 767 LD B,H + 000004A2 FD 6E 4A 768 LD L,(IY+74) + 000004A5 FD 66 4B 769 LD H,(IY+75) + 000004A8 770 ?0654: + 000004A8 11 04 00 771 LD DE,4 + 000004AB 772 ?0653: + 000004AB 19 773 ADD HL,DE + 000004AC 774 ?0652: + 000004AC EB 775 EX DE,HL + 000004AD 776 ?0651: + 000004AD 3E 00 777 LD A,BYTE3 strcpy + 000004AF 21 00 00 778 LD HL,LWRD strcpy + 000004B2 C3 00 00 779 JP LWRD ?BANK_CALL_DIRECT_L08 + 000004B5 780 dbParseStatement: + 000004B5 C5 781 PUSH BC + 000004B6 FD E5 782 PUSH IY + 000004B8 DD E5 783 PUSH IX + 000004BA D5 784 PUSH DE + 000004BB FD E1 785 POP IY + 000004BD CD 98 04 786 CALL LWRD ?0649 + 000004C0 EB 787 EX DE,HL + 000004C1 13 788 INC DE + 000004C2 CD 8F 04 789 CALL LWRD ?0641 + 000004C5 E5 790 PUSH HL + 000004C6 DD E1 791 POP IX + 000004C8 FD E5 792 PUSH IY + 000004CA C1 793 POP BC + 000004CB CD AC 04 794 CALL LWRD ?0652 + 000004CE DD E5 795 PUSH IX + 000004D0 D1 796 POP DE + 000004D1 3E 09 797 LD A,BYTE3 dbTrimString + 000004D3 21 09 01 798 LD HL,LWRD dbTrimString + 000004D6 CD 00 00 799 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000004D9 21 03 00 800 LD HL,3 + 000004DC E5 801 PUSH HL + 000004DD 01 00 00 802 LD BC,?0066 + 000004E0 DD E5 803 PUSH IX + 000004E2 D1 804 POP DE + 000004E3 CD 60 05 805 CALL LWRD ?0656 + 000004E6 F1 806 POP AF + 000004E7 7D 807 LD A,L + 000004E8 B4 808 OR H + 000004E9 20 0A 809 JR NZ,?0065 + 000004EB 810 ?0064: + 000004EB DD E5 811 PUSH IX + 000004ED D1 812 POP DE + 000004EE 3E 68 813 LD A,BYTE3 dbParseSelect + 000004F0 21 68 05 814 LD HL,LWRD dbParseSelect + 000004F3 18 52 815 JR ?0472 + 000004F5 816 ?0065: + 000004F5 21 03 00 817 LD HL,3 + 000004F8 E5 818 PUSH HL + 000004F9 01 04 00 819 LD BC,?0069 + 000004FC DD E5 820 PUSH IX + 000004FE D1 821 POP DE + 000004FF CD 60 05 822 CALL LWRD ?0656 + 00000502 F1 823 POP AF + 00000503 7D 824 LD A,L + 00000504 B4 825 OR H + 00000505 20 0A 826 JR NZ,?0068 + 00000507 827 ?0067: + 00000507 DD E5 828 PUSH IX + 00000509 D1 829 POP DE + 0000050A 3E 97 830 LD A,BYTE3 dbParseInsert + 0000050C 21 97 06 831 LD HL,LWRD dbParseInsert + 0000050F 18 36 832 JR ?0472 + 00000511 833 ?0068: + 00000511 21 03 00 834 LD HL,3 + 00000514 E5 835 PUSH HL + 00000515 01 08 00 836 LD BC,?0072 + 00000518 DD E5 837 PUSH IX + 0000051A D1 838 POP DE + 0000051B CD 60 05 839 CALL LWRD ?0656 + 0000051E F1 840 POP AF + 0000051F 7D 841 LD A,L + 00000520 B4 842 OR H + 00000521 20 0A 843 JR NZ,?0071 + 00000523 844 ?0070: + 00000523 DD E5 845 PUSH IX + 00000525 D1 846 POP DE + 00000526 3E 3E 847 LD A,BYTE3 dbParseUpdate + 00000528 21 3E 07 848 LD HL,LWRD dbParseUpdate + 0000052B 18 1A 849 JR ?0472 + 0000052D 850 ?0071: + 0000052D 21 03 00 851 LD HL,3 + 00000530 E5 852 PUSH HL + 00000531 01 0C 00 853 LD BC,?0075 + 00000534 DD E5 854 PUSH IX + 00000536 D1 855 POP DE + 00000537 CD 60 05 856 CALL LWRD ?0656 + 0000053A F1 857 POP AF + 0000053B 7D 858 LD A,L + 0000053C B4 859 OR H + 0000053D 20 0D 860 JR NZ,?0074 + 0000053F 861 ?0073: + 0000053F DD E5 862 PUSH IX + 00000541 D1 863 POP DE + 00000542 3E 0B 864 LD A,BYTE3 dbParseDelete + 00000544 21 0B 08 865 LD HL,LWRD dbParseDelete + 00000547 866 ?0472: + 00000547 CD 00 00 867 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000054A 18 03 868 JR ?0076 + 0000054C 869 ?0074: + 0000054C 21 00 00 870 LD HL,0 + 0000054F 871 ?0076: + 0000054F C3 6B 00 872 JP LWRD ?0614 + 00000552 873 ?0657: + 00000552 DD 6E FC 874 LD L,(IX-4) + 00000555 DD 66 FD 875 LD H,(IX-3) + 00000558 DD 5E FE 876 LD E,(IX-2) + 0000055B DD 56 FF 877 LD D,(IX-1) + 0000055E 878 ?0658: + 0000055E 19 879 ADD HL,DE + 0000055F EB 880 EX DE,HL + 00000560 881 ?0656: + 00000560 3E 00 882 LD A,BYTE3 strncmp + 00000562 21 00 00 883 LD HL,LWRD strncmp + 00000565 C3 00 00 884 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000568 885 dbParseSelect: + 00000568 C5 886 PUSH BC + 00000569 FD E5 887 PUSH IY + 0000056B DD E5 888 PUSH IX + 0000056D DD 21 00 00 889 LD IX,0 + 00000571 DD 39 890 ADD IX,SP + 00000573 D5 891 PUSH DE + 00000574 F5 892 PUSH AF + 00000575 11 09 00 893 LD DE,9 + 00000578 CD 8F 04 894 CALL LWRD ?0641 + 0000057B E5 895 PUSH HL + 0000057C FD E1 896 POP IY + 0000057E 36 73 897 LD (HL),115 + 00000580 AF 898 XOR A + 00000581 FD 77 05 899 LD (IY+5),A + 00000584 FD 77 06 900 LD (IY+6),A + 00000587 FD 77 07 901 LD (IY+7),A + 0000058A FD 77 08 902 LD (IY+8),A + 0000058D DD 36 FC 03 903 LD (IX-4),3 + 00000591 DD 77 FD 904 LD (IX-3),A + 00000594 DD 6E FE 905 LD L,(IX-2) + 00000597 DD 66 FF 906 LD H,(IX-1) + 0000059A 23 907 INC HL + 0000059B 23 908 INC HL + 0000059C 23 909 INC HL + 0000059D 7E 910 LD A,(HL) + 0000059E FE 20 911 CP 32 + 000005A0 20 08 912 JR NZ,?0473 + 000005A2 913 ?0077: + 000005A2 DD 34 FC 914 INC (IX-4) + 000005A5 20 03 915 JR NZ,?0473 + 000005A7 DD 34 FD 916 INC (IX-3) + 000005AA 917 ?0473: + 000005AA 918 ?0078: + 000005AA 21 00 00 919 LD HL,0 + 000005AD 39 920 ADD HL,SP + 000005AE E5 921 PUSH HL + 000005AF 0E 20 922 LD C,32 + 000005B1 C5 923 PUSH BC + 000005B2 0E 2C 924 LD C,44 + 000005B4 DD 5E FE 925 LD E,(IX-2) + 000005B7 DD 56 FF 926 LD D,(IX-1) + 000005BA CD 8F 06 927 CALL LWRD ?0659 + 000005BD F1 928 POP AF + 000005BE F1 929 POP AF + 000005BF FD 75 01 930 LD (IY+1),L + 000005C2 FD 74 02 931 LD (IY+2),H + 000005C5 21 04 00 932 LD HL,4 + 000005C8 E5 933 PUSH HL + 000005C9 01 10 00 934 LD BC,?0081 + 000005CC CD 52 05 935 CALL LWRD ?0657 + 000005CF F1 936 POP AF + 000005D0 7D 937 LD A,L + 000005D1 B4 938 OR H + 000005D2 20 0D 939 JR NZ,?0080 + 000005D4 940 ?0079: + 000005D4 6F 941 LD L,A + 000005D5 67 942 LD H,A + 000005D6 39 943 ADD HL,SP + 000005D7 7E 944 LD A,(HL) + 000005D8 C6 04 945 ADD A,4 + 000005DA 77 946 LD (HL),A + 000005DB 30 0A 947 JR NC,?0082 + 000005DD 23 948 INC HL + 000005DE 34 949 INC (HL) + 000005DF 18 06 950 JR ?0082 + 000005E1 951 ?0080: + 000005E1 21 00 00 952 LD HL,0 + 000005E4 C3 85 06 953 JP LWRD ?0091 + 000005E7 954 ?0082: + 000005E7 21 00 00 955 LD HL,0 + 000005EA 39 956 ADD HL,SP + 000005EB E5 957 PUSH HL + 000005EC 0E 20 958 LD C,32 + 000005EE C5 959 PUSH BC + 000005EF 0E 2C 960 LD C,44 + 000005F1 DD 5E FE 961 LD E,(IX-2) + 000005F4 DD 56 FF 962 LD D,(IX-1) + 000005F7 CD 8F 06 963 CALL LWRD ?0659 + 000005FA F1 964 POP AF + 000005FB F1 965 POP AF + 000005FC FD 75 03 966 LD (IY+3),L + 000005FF FD 74 04 967 LD (IY+4),H + 00000602 21 03 00 968 LD HL,3 + 00000605 E5 969 PUSH HL + 00000606 01 15 00 970 LD BC,?0085 + 00000609 CD 52 05 971 CALL LWRD ?0657 + 0000060C F1 972 POP AF + 0000060D 7D 973 LD A,L + 0000060E B4 974 OR H + 0000060F 20 3C 975 JR NZ,?0084 + 00000611 976 ?0083: + 00000611 6F 977 LD L,A + 00000612 67 978 LD H,A + 00000613 39 979 ADD HL,SP + 00000614 7E 980 LD A,(HL) + 00000615 C6 03 981 ADD A,3 + 00000617 77 982 LD (HL),A + 00000618 30 02 983 JR NC,?0475 + 0000061A 23 984 INC HL + 0000061B 34 985 INC (HL) + 0000061C 986 ?0475: + 0000061C 6F 987 LD L,A + 0000061D DD 66 FD 988 LD H,(IX-3) + 00000620 DD 4E FE 989 LD C,(IX-2) + 00000623 DD 46 FF 990 LD B,(IX-1) + 00000626 09 991 ADD HL,BC + 00000627 7E 992 LD A,(HL) + 00000628 FE 20 993 CP 32 + 0000062A 20 08 994 JR NZ,?0476 + 0000062C 995 ?0086: + 0000062C DD 34 FC 996 INC (IX-4) + 0000062F 20 03 997 JR NZ,?0476 + 00000631 DD 34 FD 998 INC (IX-3) + 00000634 999 ?0476: + 00000634 1000 ?0087: + 00000634 21 00 00 1001 LD HL,0 + 00000637 39 1002 ADD HL,SP + 00000638 E5 1003 PUSH HL + 00000639 0E 20 1004 LD C,32 + 0000063B C5 1005 PUSH BC + 0000063C 0E 2C 1006 LD C,44 + 0000063E DD 5E FE 1007 LD E,(IX-2) + 00000641 50 1008 LD D,B + 00000642 CD 8F 06 1009 CALL LWRD ?0659 + 00000645 F1 1010 POP AF + 00000646 F1 1011 POP AF + 00000647 FD 75 05 1012 LD (IY+5),L + 0000064A FD 74 06 1013 LD (IY+6),H + 0000064D 1014 ?0084: + 0000064D 21 05 00 1015 LD HL,5 + 00000650 E5 1016 PUSH HL + 00000651 01 19 00 1017 LD BC,?0090 + 00000654 CD 52 05 1018 CALL LWRD ?0657 + 00000657 F1 1019 POP AF + 00000658 7D 1020 LD A,L + 00000659 B4 1021 OR H + 0000065A 20 26 1022 JR NZ,?0089 + 0000065C 1023 ?0088: + 0000065C 6F 1024 LD L,A + 0000065D 67 1025 LD H,A + 0000065E 39 1026 ADD HL,SP + 0000065F 7E 1027 LD A,(HL) + 00000660 C6 05 1028 ADD A,5 + 00000662 77 1029 LD (HL),A + 00000663 30 02 1030 JR NC,?0477 + 00000665 23 1031 INC HL + 00000666 34 1032 INC (HL) + 00000667 1033 ?0477: + 00000667 21 00 00 1034 LD HL,0 + 0000066A 39 1035 ADD HL,SP + 0000066B E5 1036 PUSH HL + 0000066C 0E 20 1037 LD C,32 + 0000066E C5 1038 PUSH BC + 0000066F 0E 2C 1039 LD C,44 + 00000671 DD 5E FE 1040 LD E,(IX-2) + 00000674 DD 56 FF 1041 LD D,(IX-1) + 00000677 CD 8F 06 1042 CALL LWRD ?0659 + 0000067A F1 1043 POP AF + 0000067B F1 1044 POP AF + 0000067C FD 75 07 1045 LD (IY+7),L + 0000067F FD 74 08 1046 LD (IY+8),H + 00000682 1047 ?0089: + 00000682 FD E5 1048 PUSH IY + 00000684 E1 1049 POP HL + 00000685 1050 ?0091: + 00000685 DD F9 1051 LD SP,IX + 00000687 C3 6B 00 1052 JP LWRD ?0614 + 0000068A 1053 ?0660: + 0000068A 0E 2C 1054 LD C,44 + 0000068C FD E5 1055 PUSH IY + 0000068E D1 1056 POP DE + 0000068F 1057 ?0659: + 0000068F 3E E9 1058 LD A,BYTE3 dbParseList + 00000691 21 E9 02 1059 LD HL,LWRD dbParseList + 00000694 C3 00 00 1060 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000697 1061 dbParseInsert: + 00000697 C5 1062 PUSH BC + 00000698 FD E5 1063 PUSH IY + 0000069A DD E5 1064 PUSH IX + 0000069C F5 1065 PUSH AF + 0000069D D5 1066 PUSH DE + 0000069E FD E1 1067 POP IY + 000006A0 11 09 00 1068 LD DE,9 + 000006A3 CD 8F 04 1069 CALL LWRD ?0641 + 000006A6 E5 1070 PUSH HL + 000006A7 DD E1 1071 POP IX + 000006A9 36 69 1072 LD (HL),105 + 000006AB AF 1073 XOR A + 000006AC DD 77 05 1074 LD (IX+5),A + 000006AF DD 77 06 1075 LD (IX+6),A + 000006B2 6F 1076 LD L,A + 000006B3 67 1077 LD H,A + 000006B4 39 1078 ADD HL,SP + 000006B5 36 04 1079 LD (HL),4 + 000006B7 23 1080 INC HL + 000006B8 77 1081 LD (HL),A + 000006B9 2B 1082 DEC HL + 000006BA E5 1083 PUSH HL + 000006BB 0E 28 1084 LD C,40 + 000006BD C5 1085 PUSH BC + 000006BE CD 8A 06 1086 CALL LWRD ?0660 + 000006C1 F1 1087 POP AF + 000006C2 F1 1088 POP AF + 000006C3 DD 75 03 1089 LD (IX+3),L + 000006C6 DD 74 04 1090 LD (IX+4),H + 000006C9 21 01 00 1091 LD HL,1 + 000006CC E5 1092 PUSH HL + 000006CD 01 1F 00 1093 LD BC,?0094 + 000006D0 23 1094 INC HL + 000006D1 39 1095 ADD HL,SP + 000006D2 56 1096 LD D,(HL) + 000006D3 23 1097 INC HL + 000006D4 66 1098 LD H,(HL) + 000006D5 6A 1099 LD L,D + 000006D6 FD E5 1100 PUSH IY + 000006D8 D1 1101 POP DE + 000006D9 CD 5E 05 1102 CALL LWRD ?0658 + 000006DC F1 1103 POP AF + 000006DD 7D 1104 LD A,L + 000006DE B4 1105 OR H + 000006DF 20 51 1106 JR NZ,?0097 + 000006E1 1107 ?0092: + 000006E1 6F 1108 LD L,A + 000006E2 67 1109 LD H,A + 000006E3 39 1110 ADD HL,SP + 000006E4 34 1111 INC (HL) + 000006E5 23 1112 INC HL + 000006E6 20 01 1113 JR NZ,?0481 + 000006E8 34 1114 INC (HL) + 000006E9 1115 ?0481: + 000006E9 1116 ?0093: + 000006E9 1117 ?0095: + 000006E9 2B 1118 DEC HL + 000006EA E5 1119 PUSH HL + 000006EB 0E 29 1120 LD C,41 + 000006ED C5 1121 PUSH BC + 000006EE CD 8A 06 1122 CALL LWRD ?0660 + 000006F1 F1 1123 POP AF + 000006F2 F1 1124 POP AF + 000006F3 DD 75 01 1125 LD (IX+1),L + 000006F6 DD 74 02 1126 LD (IX+2),H + 000006F9 21 06 00 1127 LD HL,6 + 000006FC E5 1128 PUSH HL + 000006FD 01 21 00 1129 LD BC,?0098 + 00000700 2E 02 1130 LD L,2 + 00000702 39 1131 ADD HL,SP + 00000703 56 1132 LD D,(HL) + 00000704 23 1133 INC HL + 00000705 66 1134 LD H,(HL) + 00000706 6A 1135 LD L,D + 00000707 FD E5 1136 PUSH IY + 00000709 D1 1137 POP DE + 0000070A CD 5E 05 1138 CALL LWRD ?0658 + 0000070D F1 1139 POP AF + 0000070E 7D 1140 LD A,L + 0000070F B4 1141 OR H + 00000710 20 20 1142 JR NZ,?0097 + 00000712 1143 ?0096: + 00000712 6F 1144 LD L,A + 00000713 67 1145 LD H,A + 00000714 39 1146 ADD HL,SP + 00000715 7E 1147 LD A,(HL) + 00000716 C6 06 1148 ADD A,6 + 00000718 77 1149 LD (HL),A + 00000719 30 02 1150 JR NC,?0482 + 0000071B 23 1151 INC HL + 0000071C 34 1152 INC (HL) + 0000071D 1153 ?0482: + 0000071D 21 00 00 1154 LD HL,0 + 00000720 39 1155 ADD HL,SP + 00000721 E5 1156 PUSH HL + 00000722 0E 29 1157 LD C,41 + 00000724 C5 1158 PUSH BC + 00000725 CD 8A 06 1159 CALL LWRD ?0660 + 00000728 F1 1160 POP AF + 00000729 F1 1161 POP AF + 0000072A DD 75 07 1162 LD (IX+7),L + 0000072D DD 74 08 1163 LD (IX+8),H + 00000730 18 05 1164 JR ?0099 + 00000732 1165 ?0097: + 00000732 21 00 00 1166 LD HL,0 + 00000735 18 03 1167 JR ?0100 + 00000737 1168 ?0099: + 00000737 DD E5 1169 PUSH IX + 00000739 E1 1170 POP HL + 0000073A 1171 ?0100: + 0000073A F1 1172 POP AF + 0000073B C3 6B 00 1173 JP LWRD ?0614 + 0000073E 1174 dbParseUpdate: + 0000073E C5 1175 PUSH BC + 0000073F FD E5 1176 PUSH IY + 00000741 DD E5 1177 PUSH IX + 00000743 F5 1178 PUSH AF + 00000744 D5 1179 PUSH DE + 00000745 FD E1 1180 POP IY + 00000747 11 09 00 1181 LD DE,9 + 0000074A CD 8F 04 1182 CALL LWRD ?0641 + 0000074D E5 1183 PUSH HL + 0000074E DD E1 1184 POP IX + 00000750 36 75 1185 LD (HL),117 + 00000752 AF 1186 XOR A + 00000753 DD 77 05 1187 LD (IX+5),A + 00000756 DD 77 06 1188 LD (IX+6),A + 00000759 DD 77 07 1189 LD (IX+7),A + 0000075C DD 77 08 1190 LD (IX+8),A + 0000075F 6F 1191 LD L,A + 00000760 67 1192 LD H,A + 00000761 39 1193 ADD HL,SP + 00000762 36 04 1194 LD (HL),4 + 00000764 23 1195 INC HL + 00000765 77 1196 LD (HL),A + 00000766 2B 1197 DEC HL + 00000767 E5 1198 PUSH HL + 00000768 0E 20 1199 LD C,32 + 0000076A C5 1200 PUSH BC + 0000076B CD 8A 06 1201 CALL LWRD ?0660 + 0000076E F1 1202 POP AF + 0000076F F1 1203 POP AF + 00000770 DD 75 03 1204 LD (IX+3),L + 00000773 DD 74 04 1205 LD (IX+4),H + 00000776 21 04 00 1206 LD HL,4 + 00000779 E5 1207 PUSH HL + 0000077A 01 28 00 1208 LD BC,?0103 + 0000077D 2B 1209 DEC HL + 0000077E 2B 1210 DEC HL + 0000077F 39 1211 ADD HL,SP + 00000780 56 1212 LD D,(HL) + 00000781 23 1213 INC HL + 00000782 66 1214 LD H,(HL) + 00000783 6A 1215 LD L,D + 00000784 FD E5 1216 PUSH IY + 00000786 D1 1217 POP DE + 00000787 CD 5E 05 1218 CALL LWRD ?0658 + 0000078A F1 1219 POP AF + 0000078B 7D 1220 LD A,L + 0000078C B4 1221 OR H + 0000078D 20 0D 1222 JR NZ,?0102 + 0000078F 1223 ?0101: + 0000078F 6F 1224 LD L,A + 00000790 67 1225 LD H,A + 00000791 39 1226 ADD HL,SP + 00000792 7E 1227 LD A,(HL) + 00000793 C6 04 1228 ADD A,4 + 00000795 77 1229 LD (HL),A + 00000796 30 09 1230 JR NC,?0104 + 00000798 23 1231 INC HL + 00000799 34 1232 INC (HL) + 0000079A 18 05 1233 JR ?0104 + 0000079C 1234 ?0102: + 0000079C 21 00 00 1235 LD HL,0 + 0000079F 18 66 1236 JR ?0109 + 000007A1 1237 ?0104: + 000007A1 21 00 00 1238 LD HL,0 + 000007A4 39 1239 ADD HL,SP + 000007A5 E5 1240 PUSH HL + 000007A6 0E 20 1241 LD C,32 + 000007A8 C5 1242 PUSH BC + 000007A9 CD 8A 06 1243 CALL LWRD ?0660 + 000007AC F1 1244 POP AF + 000007AD F1 1245 POP AF + 000007AE DD 75 01 1246 LD (IX+1),L + 000007B1 DD 74 02 1247 LD (IX+2),H + 000007B4 21 03 00 1248 LD HL,3 + 000007B7 E5 1249 PUSH HL + 000007B8 01 15 00 1250 LD BC,?0085 + 000007BB 2B 1251 DEC HL + 000007BC 39 1252 ADD HL,SP + 000007BD 56 1253 LD D,(HL) + 000007BE 23 1254 INC HL + 000007BF 66 1255 LD H,(HL) + 000007C0 6A 1256 LD L,D + 000007C1 FD E5 1257 PUSH IY + 000007C3 D1 1258 POP DE + 000007C4 CD 5E 05 1259 CALL LWRD ?0658 + 000007C7 F1 1260 POP AF + 000007C8 7D 1261 LD A,L + 000007C9 B4 1262 OR H + 000007CA 20 38 1263 JR NZ,?0106 + 000007CC 1264 ?0105: + 000007CC 6F 1265 LD L,A + 000007CD 67 1266 LD H,A + 000007CE 39 1267 ADD HL,SP + 000007CF 7E 1268 LD A,(HL) + 000007D0 C6 03 1269 ADD A,3 + 000007D2 77 1270 LD (HL),A + 000007D3 30 02 1271 JR NC,?0488 + 000007D5 23 1272 INC HL + 000007D6 34 1273 INC (HL) + 000007D7 1274 ?0488: + 000007D7 21 00 00 1275 LD HL,0 + 000007DA 39 1276 ADD HL,SP + 000007DB 47 1277 LD B,A + 000007DC 23 1278 INC HL + 000007DD 66 1279 LD H,(HL) + 000007DE 68 1280 LD L,B + 000007DF FD E5 1281 PUSH IY + 000007E1 C1 1282 POP BC + 000007E2 09 1283 ADD HL,BC + 000007E3 7E 1284 LD A,(HL) + 000007E4 FE 20 1285 CP 32 + 000007E6 20 09 1286 JR NZ,?0489 + 000007E8 1287 ?0107: + 000007E8 21 00 00 1288 LD HL,0 + 000007EB 39 1289 ADD HL,SP + 000007EC 34 1290 INC (HL) + 000007ED 23 1291 INC HL + 000007EE 20 01 1292 JR NZ,?0489 + 000007F0 34 1293 INC (HL) + 000007F1 1294 ?0489: + 000007F1 1295 ?0108: + 000007F1 21 00 00 1296 LD HL,0 + 000007F4 39 1297 ADD HL,SP + 000007F5 E5 1298 PUSH HL + 000007F6 0E 20 1299 LD C,32 + 000007F8 C5 1300 PUSH BC + 000007F9 CD 8A 06 1301 CALL LWRD ?0660 + 000007FC F1 1302 POP AF + 000007FD F1 1303 POP AF + 000007FE DD 75 05 1304 LD (IX+5),L + 00000801 DD 74 06 1305 LD (IX+6),H + 00000804 1306 ?0106: + 00000804 DD E5 1307 PUSH IX + 00000806 E1 1308 POP HL + 00000807 1309 ?0109: + 00000807 F1 1310 POP AF + 00000808 C3 6B 00 1311 JP LWRD ?0614 + 0000080B 1312 dbParseDelete: + 0000080B C5 1313 PUSH BC + 0000080C FD E5 1314 PUSH IY + 0000080E DD E5 1315 PUSH IX + 00000810 F5 1316 PUSH AF + 00000811 D5 1317 PUSH DE + 00000812 FD E1 1318 POP IY + 00000814 11 09 00 1319 LD DE,9 + 00000817 CD 8F 04 1320 CALL LWRD ?0641 + 0000081A E5 1321 PUSH HL + 0000081B DD E1 1322 POP IX + 0000081D 36 64 1323 LD (HL),100 + 0000081F AF 1324 XOR A + 00000820 DD 77 05 1325 LD (IX+5),A + 00000823 DD 77 06 1326 LD (IX+6),A + 00000826 DD 77 07 1327 LD (IX+7),A + 00000829 DD 77 08 1328 LD (IX+8),A + 0000082C DD 77 01 1329 LD (IX+1),A + 0000082F DD 77 02 1330 LD (IX+2),A + 00000832 6F 1331 LD L,A + 00000833 67 1332 LD H,A + 00000834 39 1333 ADD HL,SP + 00000835 36 04 1334 LD (HL),4 + 00000837 23 1335 INC HL + 00000838 77 1336 LD (HL),A + 00000839 2B 1337 DEC HL + 0000083A E5 1338 PUSH HL + 0000083B 0E 20 1339 LD C,32 + 0000083D C5 1340 PUSH BC + 0000083E CD 8A 06 1341 CALL LWRD ?0660 + 00000841 F1 1342 POP AF + 00000842 F1 1343 POP AF + 00000843 DD 75 03 1344 LD (IX+3),L + 00000846 DD 74 04 1345 LD (IX+4),H + 00000849 21 03 00 1346 LD HL,3 + 0000084C E5 1347 PUSH HL + 0000084D 01 15 00 1348 LD BC,?0085 + 00000850 2B 1349 DEC HL + 00000851 39 1350 ADD HL,SP + 00000852 56 1351 LD D,(HL) + 00000853 23 1352 INC HL + 00000854 66 1353 LD H,(HL) + 00000855 6A 1354 LD L,D + 00000856 FD E5 1355 PUSH IY + 00000858 D1 1356 POP DE + 00000859 CD 5E 05 1357 CALL LWRD ?0658 + 0000085C F1 1358 POP AF + 0000085D 7D 1359 LD A,L + 0000085E B4 1360 OR H + 0000085F 20 38 1361 JR NZ,?0111 + 00000861 1362 ?0110: + 00000861 6F 1363 LD L,A + 00000862 67 1364 LD H,A + 00000863 39 1365 ADD HL,SP + 00000864 7E 1366 LD A,(HL) + 00000865 C6 03 1367 ADD A,3 + 00000867 77 1368 LD (HL),A + 00000868 30 02 1369 JR NC,?0492 + 0000086A 23 1370 INC HL + 0000086B 34 1371 INC (HL) + 0000086C 1372 ?0492: + 0000086C 21 00 00 1373 LD HL,0 + 0000086F 39 1374 ADD HL,SP + 00000870 47 1375 LD B,A + 00000871 23 1376 INC HL + 00000872 66 1377 LD H,(HL) + 00000873 68 1378 LD L,B + 00000874 FD E5 1379 PUSH IY + 00000876 C1 1380 POP BC + 00000877 09 1381 ADD HL,BC + 00000878 7E 1382 LD A,(HL) + 00000879 FE 20 1383 CP 32 + 0000087B 20 09 1384 JR NZ,?0493 + 0000087D 1385 ?0112: + 0000087D 21 00 00 1386 LD HL,0 + 00000880 39 1387 ADD HL,SP + 00000881 34 1388 INC (HL) + 00000882 23 1389 INC HL + 00000883 20 01 1390 JR NZ,?0493 + 00000885 34 1391 INC (HL) + 00000886 1392 ?0493: + 00000886 1393 ?0113: + 00000886 21 00 00 1394 LD HL,0 + 00000889 39 1395 ADD HL,SP + 0000088A E5 1396 PUSH HL + 0000088B 0E 20 1397 LD C,32 + 0000088D C5 1398 PUSH BC + 0000088E CD 8A 06 1399 CALL LWRD ?0660 + 00000891 F1 1400 POP AF + 00000892 F1 1401 POP AF + 00000893 DD 75 05 1402 LD (IX+5),L + 00000896 DD 74 06 1403 LD (IX+6),H + 00000899 1404 ?0111: + 00000899 DD E5 1405 PUSH IX + 0000089B E1 1406 POP HL + 0000089C F1 1407 POP AF + 0000089D C3 6B 00 1408 JP LWRD ?0614 + 000008A0 1409 dbTableOpen: + 000008A0 C5 1410 PUSH BC + 000008A1 FD E5 1411 PUSH IY + 000008A3 DD E5 1412 PUSH IX + 000008A5 DD 21 00 00 1413 LD IX,0 + 000008A9 DD 39 1414 ADD IX,SP + 000008AB F5 1415 PUSH AF + 000008AC F5 1416 PUSH AF + 000008AD F5 1417 PUSH AF + 000008AE F5 1418 PUSH AF + 000008AF D5 1419 PUSH DE + 000008B0 FD E1 1420 POP IY + 000008B2 11 40 00 1421 LD DE,64 + 000008B5 CD 8F 04 1422 CALL LWRD ?0641 + 000008B8 DD 75 F8 1423 LD (IX-8),L + 000008BB DD 74 F9 1424 LD (IX-7),H + 000008BE 01 2D 00 1425 LD BC,?0114 + 000008C1 EB 1426 EX DE,HL + 000008C2 CD 53 0B 1427 CALL LWRD ?0650 + 000008C5 CD 00 00 1428 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000008C8 01 36 00 1429 LD BC,?0115 + 000008CB DD 5E F8 1430 LD E,(IX-8) + 000008CE DD 56 F9 1431 LD D,(IX-7) + 000008D1 3E 00 1432 LD A,BYTE3 strcat + 000008D3 21 00 00 1433 LD HL,LWRD strcat + 000008D6 CD 00 00 1434 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000008D9 FD 36 0A 00 1435 LD (IY+10),0 + 000008DD 21 3B 00 1436 LD HL,?0116 + 000008E0 E5 1437 PUSH HL + 000008E1 21 00 00 1438 LD HL,0 + 000008E4 E5 1439 PUSH HL + 000008E5 01 FF FF 1440 LD BC,65535 + 000008E8 DD 5E F8 1441 LD E,(IX-8) + 000008EB DD 56 F9 1442 LD D,(IX-7) + 000008EE 3E 00 1443 LD A,BYTE3 __fopen + 000008F0 21 00 00 1444 LD HL,LWRD __fopen + 000008F3 CD 00 00 1445 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000008F6 F1 1446 POP AF + 000008F7 F1 1447 POP AF + 000008F8 DD 75 FC 1448 LD (IX-4),L + 000008FB DD 74 FD 1449 LD (IX-3),H + 000008FE E5 1450 PUSH HL + 000008FF 21 01 00 1451 LD HL,1 + 00000902 E5 1452 PUSH HL + 00000903 01 04 00 1453 LD BC,4 + 00000906 DD 5E F8 1454 LD E,(IX-8) + 00000909 DD 56 F9 1455 LD D,(IX-7) + 0000090C 3E 00 1456 LD A,BYTE3 fread + 0000090E 21 00 00 1457 LD HL,LWRD fread + 00000911 CD 00 00 1458 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000914 F1 1459 POP AF + 00000915 F1 1460 POP AF + 00000916 DD 6E F8 1461 LD L,(IX-8) + 00000919 DD 66 F9 1462 LD H,(IX-7) + 0000091C 7E 1463 LD A,(HL) + 0000091D FE 54 1464 CP 84 + 0000091F C2 2A 0B 1465 JP NZ,?0132 + 00000922 23 1466 INC HL + 00000923 7E 1467 LD A,(HL) + 00000924 FE 42 1468 CP 66 + 00000926 C2 2A 0B 1469 JP NZ,?0132 + 00000929 23 1470 INC HL + 0000092A 7E 1471 LD A,(HL) + 0000092B FE 4C 1472 CP 76 + 0000092D C2 2A 0B 1473 JP NZ,?0132 + 00000930 23 1474 INC HL + 00000931 7E 1475 LD A,(HL) + 00000932 FE 20 1476 CP 32 + 00000934 C2 2A 0B 1477 JP NZ,?0132 + 00000937 1478 ?0119: + 00000937 1479 ?0120: + 00000937 1480 ?0117: + 00000937 1481 ?0118: + 00000937 DD 6E FC 1482 LD L,(IX-4) + 0000093A DD 66 FD 1483 LD H,(IX-3) + 0000093D E5 1484 PUSH HL + 0000093E 21 01 00 1485 LD HL,1 + 00000941 E5 1486 PUSH HL + 00000942 01 04 00 1487 LD BC,4 + 00000945 DD 5E F8 1488 LD E,(IX-8) + 00000948 DD 56 F9 1489 LD D,(IX-7) + 0000094B 3E 00 1490 LD A,BYTE3 fread + 0000094D 21 00 00 1491 LD HL,LWRD fread + 00000950 CD 00 00 1492 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000953 F1 1493 POP AF + 00000954 F1 1494 POP AF + 00000955 DD 6E F8 1495 LD L,(IX-8) + 00000958 DD 66 F9 1496 LD H,(IX-7) + 0000095B 4E 1497 LD C,(HL) + 0000095C DD 71 FE 1498 LD (IX-2),C + 0000095F 06 00 1499 LD B,0 + 00000961 DD 70 FF 1500 LD (IX-1),B + 00000964 FD E5 1501 PUSH IY + 00000966 E1 1502 POP HL + 00000967 71 1503 LD (HL),C + 00000968 23 1504 INC HL + 00000969 70 1505 LD (HL),B + 0000096A 69 1506 LD L,C + 0000096B 60 1507 LD H,B + 0000096C 29 1508 ADD HL,HL + 0000096D 29 1509 ADD HL,HL + 0000096E 4D 1510 LD C,L + 0000096F 44 1511 LD B,H + 00000970 29 1512 ADD HL,HL + 00000971 09 1513 ADD HL,BC + 00000972 CD 8E 04 1514 CALL LWRD ?0642 + 00000975 FD 75 02 1515 LD (IY+2),L + 00000978 FD 74 03 1516 LD (IY+3),H + 0000097B AF 1517 XOR A + 0000097C DD 77 FA 1518 LD (IX-6),A + 0000097F DD 77 FB 1519 LD (IX-5),A + 00000982 1520 ?0123: + 00000982 DD 4E FE 1521 LD C,(IX-2) + 00000985 DD 46 FF 1522 LD B,(IX-1) + 00000988 DD 6E FA 1523 LD L,(IX-6) + 0000098B DD 66 FB 1524 LD H,(IX-5) + 0000098E F6 80 1525 OR 128 + 00000990 ED 42 1526 SBC HL,BC + 00000992 E2 96 09 1527 JP PO,?0494 + 00000995 AC 1528 XOR H + 00000996 1529 ?0494: + 00000996 F2 3F 0A 1530 JP P,?0122 + 00000999 1531 ?0124: + 00000999 DD 6E FC 1532 LD L,(IX-4) + 0000099C DD 66 FD 1533 LD H,(IX-3) + 0000099F E5 1534 PUSH HL + 000009A0 21 01 00 1535 LD HL,1 + 000009A3 E5 1536 PUSH HL + 000009A4 01 08 00 1537 LD BC,8 + 000009A7 FD 6E 02 1538 LD L,(IY+2) + 000009AA FD 66 03 1539 LD H,(IY+3) + 000009AD E5 1540 PUSH HL + 000009AE DD 6E FA 1541 LD L,(IX-6) + 000009B1 DD 66 FB 1542 LD H,(IX-5) + 000009B4 29 1543 ADD HL,HL + 000009B5 29 1544 ADD HL,HL + 000009B6 5D 1545 LD E,L + 000009B7 54 1546 LD D,H + 000009B8 29 1547 ADD HL,HL + 000009B9 19 1548 ADD HL,DE + 000009BA EB 1549 EX DE,HL + 000009BB E1 1550 POP HL + 000009BC 19 1551 ADD HL,DE + 000009BD EB 1552 EX DE,HL + 000009BE 3E 00 1553 LD A,BYTE3 fread + 000009C0 21 00 00 1554 LD HL,LWRD fread + 000009C3 CD 00 00 1555 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000009C6 F1 1556 POP AF + 000009C7 F1 1557 POP AF + 000009C8 FD 6E 02 1558 LD L,(IY+2) + 000009CB FD 66 03 1559 LD H,(IY+3) + 000009CE E5 1560 PUSH HL + 000009CF DD 6E FA 1561 LD L,(IX-6) + 000009D2 DD 66 FB 1562 LD H,(IX-5) + 000009D5 29 1563 ADD HL,HL + 000009D6 29 1564 ADD HL,HL + 000009D7 4D 1565 LD C,L + 000009D8 44 1566 LD B,H + 000009D9 29 1567 ADD HL,HL + 000009DA 09 1568 ADD HL,BC + 000009DB 4D 1569 LD C,L + 000009DC 44 1570 LD B,H + 000009DD E1 1571 POP HL + 000009DE 09 1572 ADD HL,BC + 000009DF 01 08 00 1573 LD BC,8 + 000009E2 09 1574 ADD HL,BC + 000009E3 70 1575 LD (HL),B + 000009E4 DD 6E FC 1576 LD L,(IX-4) + 000009E7 DD 66 FD 1577 LD H,(IX-3) + 000009EA E5 1578 PUSH HL + 000009EB 21 01 00 1579 LD HL,1 + 000009EE E5 1580 PUSH HL + 000009EF 0E 03 1581 LD C,3 + 000009F1 FD 6E 02 1582 LD L,(IY+2) + 000009F4 FD 66 03 1583 LD H,(IY+3) + 000009F7 E5 1584 PUSH HL + 000009F8 DD 6E FA 1585 LD L,(IX-6) + 000009FB DD 66 FB 1586 LD H,(IX-5) + 000009FE 29 1587 ADD HL,HL + 000009FF 29 1588 ADD HL,HL + 00000A00 5D 1589 LD E,L + 00000A01 54 1590 LD D,H + 00000A02 29 1591 ADD HL,HL + 00000A03 19 1592 ADD HL,DE + 00000A04 EB 1593 EX DE,HL + 00000A05 E1 1594 POP HL + 00000A06 19 1595 ADD HL,DE + 00000A07 11 09 00 1596 LD DE,9 + 00000A0A 19 1597 ADD HL,DE + 00000A0B EB 1598 EX DE,HL + 00000A0C 3E 00 1599 LD A,BYTE3 fread + 00000A0E 21 00 00 1600 LD HL,LWRD fread + 00000A11 CD 00 00 1601 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000A14 F1 1602 POP AF + 00000A15 F1 1603 POP AF + 00000A16 DD 6E FC 1604 LD L,(IX-4) + 00000A19 DD 66 FD 1605 LD H,(IX-3) + 00000A1C E5 1606 PUSH HL + 00000A1D 21 01 00 1607 LD HL,1 + 00000A20 E5 1608 PUSH HL + 00000A21 4D 1609 LD C,L + 00000A22 44 1610 LD B,H + 00000A23 DD 5E F8 1611 LD E,(IX-8) + 00000A26 DD 56 F9 1612 LD D,(IX-7) + 00000A29 3E 00 1613 LD A,BYTE3 fread + 00000A2B 21 00 00 1614 LD HL,LWRD fread + 00000A2E CD 00 00 1615 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000A31 F1 1616 POP AF + 00000A32 F1 1617 POP AF + 00000A33 DD 34 FA 1618 INC (IX-6) + 00000A36 C2 82 09 1619 JP NZ,?0123 + 00000A39 DD 34 FB 1620 INC (IX-5) + 00000A3C C3 82 09 1621 JP LWRD ?0123 + 00000A3F 1622 ?0122: + 00000A3F 01 2D 00 1623 LD BC,?0114 + 00000A42 DD 5E F8 1624 LD E,(IX-8) + 00000A45 DD 56 F9 1625 LD D,(IX-7) + 00000A48 CD 53 0B 1626 CALL LWRD ?0650 + 00000A4B CD 00 00 1627 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000A4E 01 3E 00 1628 LD BC,?0126 + 00000A51 DD 5E F8 1629 LD E,(IX-8) + 00000A54 DD 56 F9 1630 LD D,(IX-7) + 00000A57 3E 00 1631 LD A,BYTE3 strcat + 00000A59 21 00 00 1632 LD HL,LWRD strcat + 00000A5C CD 00 00 1633 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000A5F 21 43 00 1634 LD HL,?0127 + 00000A62 E5 1635 PUSH HL + 00000A63 21 00 00 1636 LD HL,0 + 00000A66 E5 1637 PUSH HL + 00000A67 01 FF FF 1638 LD BC,65535 + 00000A6A DD 5E F8 1639 LD E,(IX-8) + 00000A6D DD 56 F9 1640 LD D,(IX-7) + 00000A70 3E 00 1641 LD A,BYTE3 __fopen + 00000A72 21 00 00 1642 LD HL,LWRD __fopen + 00000A75 CD 00 00 1643 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000A78 F1 1644 POP AF + 00000A79 F1 1645 POP AF + 00000A7A FD 75 08 1646 LD (IY+8),L + 00000A7D FD 74 09 1647 LD (IY+9),H + 00000A80 FD 36 0A 01 1648 LD (IY+10),1 + 00000A84 FD 6E 08 1649 LD L,(IY+8) + 00000A87 FD 66 09 1650 LD H,(IY+9) + 00000A8A E5 1651 PUSH HL + 00000A8B 21 01 00 1652 LD HL,1 + 00000A8E E5 1653 PUSH HL + 00000A8F 01 04 00 1654 LD BC,4 + 00000A92 DD 5E F8 1655 LD E,(IX-8) + 00000A95 DD 56 F9 1656 LD D,(IX-7) + 00000A98 3E 00 1657 LD A,BYTE3 fread + 00000A9A 21 00 00 1658 LD HL,LWRD fread + 00000A9D CD 00 00 1659 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000AA0 F1 1660 POP AF + 00000AA1 F1 1661 POP AF + 00000AA2 DD 6E F8 1662 LD L,(IX-8) + 00000AA5 DD 66 F9 1663 LD H,(IX-7) + 00000AA8 7E 1664 LD A,(HL) + 00000AA9 FE 44 1665 CP 68 + 00000AAB 20 12 1666 JR NZ,?0130 + 00000AAD 23 1667 INC HL + 00000AAE 7E 1668 LD A,(HL) + 00000AAF FE 41 1669 CP 65 + 00000AB1 20 0C 1670 JR NZ,?0130 + 00000AB3 23 1671 INC HL + 00000AB4 7E 1672 LD A,(HL) + 00000AB5 FE 54 1673 CP 84 + 00000AB7 20 06 1674 JR NZ,?0130 + 00000AB9 23 1675 INC HL + 00000ABA 7E 1676 LD A,(HL) + 00000ABB FE 20 1677 CP 32 + 00000ABD 28 0F 1678 JR Z,?0129 + 00000ABF 1679 ?0130: + 00000ABF 1680 ?0131: + 00000ABF 1681 ?0128: + 00000ABF FD 36 0A 00 1682 LD (IY+10),0 + 00000AC3 FD 5E 08 1683 LD E,(IY+8) + 00000AC6 FD 56 09 1684 LD D,(IY+9) + 00000AC9 CD 4B 0B 1685 CALL LWRD ?0645 + 00000ACC 18 5C 1686 JR ?0132 + 00000ACE 1687 ?0129: + 00000ACE FD 6E 08 1688 LD L,(IY+8) + 00000AD1 FD 66 09 1689 LD H,(IY+9) + 00000AD4 E5 1690 PUSH HL + 00000AD5 21 01 00 1691 LD HL,1 + 00000AD8 E5 1692 PUSH HL + 00000AD9 01 02 00 1693 LD BC,2 + 00000ADC 2E 04 1694 LD L,4 + 00000ADE FD E5 1695 PUSH IY + 00000AE0 D1 1696 POP DE + 00000AE1 19 1697 ADD HL,DE + 00000AE2 EB 1698 EX DE,HL + 00000AE3 3E 00 1699 LD A,BYTE3 fread + 00000AE5 21 00 00 1700 LD HL,LWRD fread + 00000AE8 CD 00 00 1701 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000AEB F1 1702 POP AF + 00000AEC F1 1703 POP AF + 00000AED FD 6E 08 1704 LD L,(IY+8) + 00000AF0 FD 66 09 1705 LD H,(IY+9) + 00000AF3 E5 1706 PUSH HL + 00000AF4 21 01 00 1707 LD HL,1 + 00000AF7 E5 1708 PUSH HL + 00000AF8 01 02 00 1709 LD BC,2 + 00000AFB 2E 06 1710 LD L,6 + 00000AFD FD E5 1711 PUSH IY + 00000AFF D1 1712 POP DE + 00000B00 19 1713 ADD HL,DE + 00000B01 EB 1714 EX DE,HL + 00000B02 3E 00 1715 LD A,BYTE3 fread + 00000B04 21 00 00 1716 LD HL,LWRD fread + 00000B07 CD 00 00 1717 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000B0A F1 1718 POP AF + 00000B0B F1 1719 POP AF + 00000B0C FD 6E 08 1720 LD L,(IY+8) + 00000B0F FD 66 09 1721 LD H,(IY+9) + 00000B12 E5 1722 PUSH HL + 00000B13 21 01 00 1723 LD HL,1 + 00000B16 E5 1724 PUSH HL + 00000B17 01 02 00 1725 LD BC,2 + 00000B1A DD 5E F8 1726 LD E,(IX-8) + 00000B1D DD 56 F9 1727 LD D,(IX-7) + 00000B20 3E 00 1728 LD A,BYTE3 fread + 00000B22 21 00 00 1729 LD HL,LWRD fread + 00000B25 CD 00 00 1730 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000B28 F1 1731 POP AF + 00000B29 F1 1732 POP AF + 00000B2A 1733 ?0132: + 00000B2A 1734 ?0121: + 00000B2A DD 5E FC 1735 LD E,(IX-4) + 00000B2D DD 56 FD 1736 LD D,(IX-3) + 00000B30 CD 4B 0B 1737 CALL LWRD ?0645 + 00000B33 DD 5E F8 1738 LD E,(IX-8) + 00000B36 DD 56 F9 1739 LD D,(IX-7) + 00000B39 CD 3B 00 1740 CALL LWRD ?0639 + 00000B3C DD F9 1741 LD SP,IX + 00000B3E C3 6B 00 1742 JP LWRD ?0614 + 00000B41 1743 ?0646: + 00000B41 D5 1744 PUSH DE + 00000B42 DD E1 1745 POP IX + 00000B44 21 08 00 1746 LD HL,8 + 00000B47 19 1747 ADD HL,DE + 00000B48 5E 1748 LD E,(HL) + 00000B49 23 1749 INC HL + 00000B4A 56 1750 LD D,(HL) + 00000B4B 1751 ?0645: + 00000B4B 3E 00 1752 LD A,BYTE3 fclose + 00000B4D 21 00 00 1753 LD HL,LWRD fclose + 00000B50 C3 00 00 1754 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000B53 1755 ?0650: + 00000B53 3E 00 1756 LD A,BYTE3 strcpy + 00000B55 21 00 00 1757 LD HL,LWRD strcpy + 00000B58 CD 00 00 1758 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000B5B 21 0B 00 1759 LD HL,11 + 00000B5E FD E5 1760 PUSH IY + 00000B60 C1 1761 POP BC + 00000B61 09 1762 ADD HL,BC + 00000B62 4D 1763 LD C,L + 00000B63 44 1764 LD B,H + 00000B64 DD 5E F8 1765 LD E,(IX-8) + 00000B67 DD 56 F9 1766 LD D,(IX-7) + 00000B6A 3E 00 1767 LD A,BYTE3 strcat + 00000B6C 21 00 00 1768 LD HL,LWRD strcat + 00000B6F C9 1769 RET + 00000B70 1770 dbTableClose: + 00000B70 DD E5 1771 PUSH IX + 00000B72 CD 41 0B 1772 CALL LWRD ?0646 + 00000B75 DD 5E 02 1773 LD E,(IX+2) + 00000B78 DD 56 03 1774 LD D,(IX+3) + 00000B7B 3E 00 1775 LD A,BYTE3 free + 00000B7D 21 00 00 1776 LD HL,LWRD free + 00000B80 1777 ?0634: + 00000B80 CD 00 00 1778 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000B83 1779 ?0636: + 00000B83 DD E5 1780 PUSH IX + 00000B85 D1 1781 POP DE + 00000B86 CD 3B 00 1782 CALL LWRD ?0639 + 00000B89 DD E1 1783 POP IX + 00000B8B C3 00 00 1784 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000B8E 1785 dbStatementClose: + 00000B8E DD E5 1786 PUSH IX + 00000B90 D5 1787 PUSH DE + 00000B91 DD E1 1788 POP IX + 00000B93 13 1789 INC DE + 00000B94 EB 1790 EX DE,HL + 00000B95 5E 1791 LD E,(HL) + 00000B96 23 1792 INC HL + 00000B97 56 1793 LD D,(HL) + 00000B98 3E 00 1794 LD A,BYTE3 dbDeleteList + 00000B9A 21 00 00 1795 LD HL,LWRD dbDeleteList + 00000B9D CD 00 00 1796 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000BA0 DD 5E 03 1797 LD E,(IX+3) + 00000BA3 DD 56 04 1798 LD D,(IX+4) + 00000BA6 3E 00 1799 LD A,BYTE3 dbDeleteList + 00000BA8 21 00 00 1800 LD HL,LWRD dbDeleteList + 00000BAB CD 00 00 1801 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000BAE DD 5E 05 1802 LD E,(IX+5) + 00000BB1 DD 56 06 1803 LD D,(IX+6) + 00000BB4 3E 00 1804 LD A,BYTE3 dbDeleteList + 00000BB6 21 00 00 1805 LD HL,LWRD dbDeleteList + 00000BB9 CD 00 00 1806 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000BBC DD 5E 07 1807 LD E,(IX+7) + 00000BBF DD 56 08 1808 LD D,(IX+8) + 00000BC2 3E 00 1809 LD A,BYTE3 dbDeleteList + 00000BC4 21 00 00 1810 LD HL,LWRD dbDeleteList + 00000BC7 C3 80 0B 1811 JP LWRD ?0634 + 00000BCA 1812 dbResultSetClose: + 00000BCA DD E5 1813 PUSH IX + 00000BCC CD 41 0B 1814 CALL LWRD ?0646 + 00000BCF DD 5E 02 1815 LD E,(IX+2) + 00000BD2 DD 56 03 1816 LD D,(IX+3) + 00000BD5 3E 00 1817 LD A,BYTE3 free + 00000BD7 21 00 00 1818 LD HL,LWRD free + 00000BDA C3 80 0B 1819 JP LWRD ?0634 + 00000BDD 1820 dbFieldOffset: + 00000BDD FD E5 1821 PUSH IY + 00000BDF DD E5 1822 PUSH IX + 00000BE1 C5 1823 PUSH BC + 00000BE2 D5 1824 PUSH DE + 00000BE3 DD 21 00 00 1825 LD IX,0 + 00000BE7 FD 21 00 00 1826 LD IY,0 + 00000BEB 1827 ?0134: + 00000BEB 21 02 00 1828 LD HL,2 + 00000BEE 39 1829 ADD HL,SP + 00000BEF 4E 1830 LD C,(HL) + 00000BF0 23 1831 INC HL + 00000BF1 46 1832 LD B,(HL) + 00000BF2 FD E5 1833 PUSH IY + 00000BF4 E1 1834 POP HL + 00000BF5 F6 80 1835 OR 128 + 00000BF7 ED 42 1836 SBC HL,BC + 00000BF9 E2 FD 0B 1837 JP PO,?0498 + 00000BFC AC 1838 XOR H + 00000BFD 1839 ?0498: + 00000BFD F2 27 0C 1840 JP P,?0133 + 00000C00 1841 ?0135: + 00000C00 21 00 00 1842 LD HL,0 + 00000C03 39 1843 ADD HL,SP + 00000C04 46 1844 LD B,(HL) + 00000C05 23 1845 INC HL + 00000C06 66 1846 LD H,(HL) + 00000C07 68 1847 LD L,B + 00000C08 23 1848 INC HL + 00000C09 23 1849 INC HL + 00000C0A 46 1850 LD B,(HL) + 00000C0B 23 1851 INC HL + 00000C0C 66 1852 LD H,(HL) + 00000C0D 68 1853 LD L,B + 00000C0E E5 1854 PUSH HL + 00000C0F FD E5 1855 PUSH IY + 00000C11 E1 1856 POP HL + 00000C12 29 1857 ADD HL,HL + 00000C13 29 1858 ADD HL,HL + 00000C14 4D 1859 LD C,L + 00000C15 44 1860 LD B,H + 00000C16 29 1861 ADD HL,HL + 00000C17 09 1862 ADD HL,BC + 00000C18 4D 1863 LD C,L + 00000C19 44 1864 LD B,H + 00000C1A E1 1865 POP HL + 00000C1B 09 1866 ADD HL,BC + 00000C1C 01 0A 00 1867 LD BC,10 + 00000C1F 09 1868 ADD HL,BC + 00000C20 4E 1869 LD C,(HL) + 00000C21 DD 09 1870 ADD IX,BC + 00000C23 FD 23 1871 INC IY + 00000C25 18 C4 1872 JR ?0134 + 00000C27 1873 ?0133: + 00000C27 DD 23 1874 INC IX + 00000C29 DD 23 1875 INC IX + 00000C2B DD E5 1876 PUSH IX + 00000C2D E1 1877 POP HL + 00000C2E F1 1878 POP AF + 00000C2F C3 E1 02 1879 JP LWRD ?0626 + 00000C32 1880 dbRecordSize: + 00000C32 C5 1881 PUSH BC + 00000C33 DD E5 1882 PUSH IX + 00000C35 D5 1883 PUSH DE + 00000C36 DD E1 1884 POP IX + 00000C38 1A 1885 LD A,(DE) + 00000C39 4F 1886 LD C,A + 00000C3A 13 1887 INC DE + 00000C3B 1A 1888 LD A,(DE) + 00000C3C 47 1889 LD B,A + 00000C3D DD E5 1890 PUSH IX + 00000C3F D1 1891 POP DE + 00000C40 3E DD 1892 LD A,BYTE3 dbFieldOffset + 00000C42 21 DD 0B 1893 LD HL,LWRD dbFieldOffset + 00000C45 CD 00 00 1894 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000C48 DD E1 1895 POP IX + 00000C4A C1 1896 POP BC + 00000C4B C3 00 00 1897 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000C4E 1898 dbFieldSearch: + 00000C4E FD E5 1899 PUSH IY + 00000C50 DD E5 1900 PUSH IX + 00000C52 C5 1901 PUSH BC + 00000C53 D5 1902 PUSH DE + 00000C54 FD E1 1903 POP IY + 00000C56 DD 21 00 00 1904 LD IX,0 + 00000C5A 1905 ?0138: + 00000C5A FD 4E 00 1906 LD C,(IY+0) + 00000C5D FD 46 01 1907 LD B,(IY+1) + 00000C60 DD E5 1908 PUSH IX + 00000C62 E1 1909 POP HL + 00000C63 F6 80 1910 OR 128 + 00000C65 ED 42 1911 SBC HL,BC + 00000C67 E2 6B 0C 1912 JP PO,?0500 + 00000C6A AC 1913 XOR H + 00000C6B 1914 ?0500: + 00000C6B F2 9E 0C 1915 JP P,?0137 + 00000C6E 1916 ?0139: + 00000C6E 21 00 00 1917 LD HL,0 + 00000C71 39 1918 ADD HL,SP + 00000C72 4E 1919 LD C,(HL) + 00000C73 23 1920 INC HL + 00000C74 46 1921 LD B,(HL) + 00000C75 FD 6E 02 1922 LD L,(IY+2) + 00000C78 FD 66 03 1923 LD H,(IY+3) + 00000C7B E5 1924 PUSH HL + 00000C7C DD E5 1925 PUSH IX + 00000C7E E1 1926 POP HL + 00000C7F 29 1927 ADD HL,HL + 00000C80 29 1928 ADD HL,HL + 00000C81 5D 1929 LD E,L + 00000C82 54 1930 LD D,H + 00000C83 29 1931 ADD HL,HL + 00000C84 19 1932 ADD HL,DE + 00000C85 EB 1933 EX DE,HL + 00000C86 E1 1934 POP HL + 00000C87 19 1935 ADD HL,DE + 00000C88 EB 1936 EX DE,HL + 00000C89 3E 00 1937 LD A,BYTE3 strcmp + 00000C8B 21 00 00 1938 LD HL,LWRD strcmp + 00000C8E CD 00 00 1939 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000C91 7D 1940 LD A,L + 00000C92 B4 1941 OR H + 00000C93 20 05 1942 JR NZ,?0142 + 00000C95 1943 ?0141: + 00000C95 DD E5 1944 PUSH IX + 00000C97 E1 1945 POP HL + 00000C98 18 07 1946 JR ?0143 + 00000C9A 1947 ?0142: + 00000C9A DD 23 1948 INC IX + 00000C9C 18 BC 1949 JR ?0138 + 00000C9E 1950 ?0137: + 00000C9E 21 FF FF 1951 LD HL,65535 + 00000CA1 1952 ?0143: + 00000CA1 C3 E1 02 1953 JP LWRD ?0626 + 00000CA4 1954 dbExecuteQuery: + 00000CA4 C5 1955 PUSH BC + 00000CA5 FD E5 1956 PUSH IY + 00000CA7 DD E5 1957 PUSH IX + 00000CA9 DD 21 00 00 1958 LD IX,0 + 00000CAD DD 39 1959 ADD IX,SP + 00000CAF D5 1960 PUSH DE + 00000CB0 21 DE FF 1961 LD HL,65502 + 00000CB3 39 1962 ADD HL,SP + 00000CB4 F9 1963 LD SP,HL + 00000CB5 11 0A 00 1964 LD DE,10 + 00000CB8 CD 8F 04 1965 CALL LWRD ?0641 + 00000CBB E5 1966 PUSH HL + 00000CBC FD E1 1967 POP IY + 00000CBE 11 14 00 1968 LD DE,20 + 00000CC1 CD 8F 04 1969 CALL LWRD ?0641 + 00000CC4 DD 75 DE 1970 LD (IX-34),L + 00000CC7 DD 74 DF 1971 LD (IX-33),H + 00000CCA AF 1972 XOR A + 00000CCB DD 77 F8 1973 LD (IX-8),A + 00000CCE DD 77 F9 1974 LD (IX-7),A + 00000CD1 CD 2F 12 1975 CALL LWRD ?0661 + 00000CD4 DD 75 FA 1976 LD (IX-6),L + 00000CD7 DD 74 FB 1977 LD (IX-5),H + 00000CDA DD 6E FE 1978 LD L,(IX-2) + 00000CDD DD 66 FF 1979 LD H,(IX-1) + 00000CE0 23 1980 INC HL + 00000CE1 23 1981 INC HL + 00000CE2 23 1982 INC HL + 00000CE3 46 1983 LD B,(HL) + 00000CE4 23 1984 INC HL + 00000CE5 66 1985 LD H,(HL) + 00000CE6 68 1986 LD L,B + 00000CE7 01 04 00 1987 LD BC,4 + 00000CEA 09 1988 ADD HL,BC + 00000CEB 4E 1989 LD C,(HL) + 00000CEC 23 1990 INC HL + 00000CED 46 1991 LD B,(HL) + 00000CEE 21 0B 00 1992 LD HL,11 + 00000CF1 DD 5E DE 1993 LD E,(IX-34) + 00000CF4 DD 56 DF 1994 LD D,(IX-33) + 00000CF7 CD AB 04 1995 CALL LWRD ?0653 + 00000CFA DD 5E DE 1996 LD E,(IX-34) + 00000CFD DD 56 DF 1997 LD D,(IX-33) + 00000D00 3E A0 1998 LD A,BYTE3 dbTableOpen + 00000D02 21 A0 08 1999 LD HL,LWRD dbTableOpen + 00000D05 CD 00 00 2000 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000D08 AF 2001 XOR A + 00000D09 FD 77 04 2002 LD (IY+4),A + 00000D0C FD 77 05 2003 LD (IY+5),A + 00000D0F FD 77 06 2004 LD (IY+6),A + 00000D12 FD 77 07 2005 LD (IY+7),A + 00000D15 01 47 00 2006 LD BC,?0146 + 00000D18 DD 6E FE 2007 LD L,(IX-2) + 00000D1B DD 66 FF 2008 LD H,(IX-1) + 00000D1E 23 2009 INC HL + 00000D1F 56 2010 LD D,(HL) + 00000D20 23 2011 INC HL + 00000D21 66 2012 LD H,(HL) + 00000D22 6A 2013 LD L,D + 00000D23 11 04 00 2014 LD DE,4 + 00000D26 19 2015 ADD HL,DE + 00000D27 5E 2016 LD E,(HL) + 00000D28 23 2017 INC HL + 00000D29 56 2018 LD D,(HL) + 00000D2A 3E 00 2019 LD A,BYTE3 strcmp + 00000D2C 21 00 00 2020 LD HL,LWRD strcmp + 00000D2F CD 00 00 2021 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000D32 7D 2022 LD A,L + 00000D33 B4 2023 OR H + 00000D34 C2 2E 0E 2024 JP NZ,?0145 + 00000D37 2025 ?0144: + 00000D37 DD 6E DE 2026 LD L,(IX-34) + 00000D3A DD 66 DF 2027 LD H,(IX-33) + 00000D3D 46 2028 LD B,(HL) + 00000D3E 23 2029 INC HL + 00000D3F 66 2030 LD H,(HL) + 00000D40 68 2031 LD L,B + 00000D41 E5 2032 PUSH HL + 00000D42 FD E5 2033 PUSH IY + 00000D44 E1 2034 POP HL + 00000D45 C1 2035 POP BC + 00000D46 CD 84 04 2036 CALL LWRD ?0643 + 00000D49 CD E0 11 2037 CALL LWRD ?0640 + 00000D4C CD 00 00 2038 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000D4F FD 75 02 2039 LD (IY+2),L + 00000D52 FD 74 03 2040 LD (IY+3),H + 00000D55 AF 2041 XOR A + 00000D56 DD 77 EE 2042 LD (IX-18),A + 00000D59 DD 77 EF 2043 LD (IX-17),A + 00000D5C 2044 ?0148: + 00000D5C FD 4E 00 2045 LD C,(IY+0) + 00000D5F FD 46 01 2046 LD B,(IY+1) + 00000D62 DD 6E EE 2047 LD L,(IX-18) + 00000D65 DD 66 EF 2048 LD H,(IX-17) + 00000D68 F6 80 2049 OR 128 + 00000D6A ED 42 2050 SBC HL,BC + 00000D6C E2 70 0D 2051 JP PO,?0501 + 00000D6F AC 2052 XOR H + 00000D70 2053 ?0501: + 00000D70 F2 61 0F 2054 JP P,?0152 + 00000D73 2055 ?0149: + 00000D73 DD 6E DE 2056 LD L,(IX-34) + 00000D76 DD 66 DF 2057 LD H,(IX-33) + 00000D79 23 2058 INC HL + 00000D7A 23 2059 INC HL + 00000D7B 46 2060 LD B,(HL) + 00000D7C 23 2061 INC HL + 00000D7D 66 2062 LD H,(HL) + 00000D7E 68 2063 LD L,B + 00000D7F E5 2064 PUSH HL + 00000D80 DD 6E EE 2065 LD L,(IX-18) + 00000D83 DD 66 EF 2066 LD H,(IX-17) + 00000D86 29 2067 ADD HL,HL + 00000D87 29 2068 ADD HL,HL + 00000D88 4D 2069 LD C,L + 00000D89 44 2070 LD B,H + 00000D8A 29 2071 ADD HL,HL + 00000D8B 09 2072 ADD HL,BC + 00000D8C 4D 2073 LD C,L + 00000D8D 44 2074 LD B,H + 00000D8E E1 2075 POP HL + 00000D8F 09 2076 ADD HL,BC + 00000D90 DD 75 E0 2077 LD (IX-32),L + 00000D93 DD 74 E1 2078 LD (IX-31),H + 00000D96 DD 6E EE 2079 LD L,(IX-18) + 00000D99 DD 66 EF 2080 LD H,(IX-17) + 00000D9C 29 2081 ADD HL,HL + 00000D9D DD 4E E4 2082 LD C,(IX-28) + 00000DA0 DD 46 E5 2083 LD B,(IX-27) + 00000DA3 09 2084 ADD HL,BC + 00000DA4 E5 2085 PUSH HL + 00000DA5 DD 4E EE 2086 LD C,(IX-18) + 00000DA8 DD 46 EF 2087 LD B,(IX-17) + 00000DAB DD 5E DE 2088 LD E,(IX-34) + 00000DAE DD 56 DF 2089 LD D,(IX-33) + 00000DB1 3E DD 2090 LD A,BYTE3 dbFieldOffset + 00000DB3 21 DD 0B 2091 LD HL,LWRD dbFieldOffset + 00000DB6 CD 00 00 2092 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000DB9 4D 2093 LD C,L + 00000DBA 44 2094 LD B,H + 00000DBB E1 2095 POP HL + 00000DBC 71 2096 LD (HL),C + 00000DBD 23 2097 INC HL + 00000DBE 70 2098 LD (HL),B + 00000DBF DD 6E EE 2099 LD L,(IX-18) + 00000DC2 DD 66 EF 2100 LD H,(IX-17) + 00000DC5 29 2101 ADD HL,HL + 00000DC6 DD 4E E6 2102 LD C,(IX-26) + 00000DC9 DD 46 E7 2103 LD B,(IX-25) + 00000DCC 09 2104 ADD HL,BC + 00000DCD E5 2105 PUSH HL + 00000DCE 21 0A 00 2106 LD HL,10 + 00000DD1 DD 4E E0 2107 LD C,(IX-32) + 00000DD4 DD 46 E1 2108 LD B,(IX-31) + 00000DD7 09 2109 ADD HL,BC + 00000DD8 4E 2110 LD C,(HL) + 00000DD9 06 00 2111 LD B,0 + 00000DDB E1 2112 POP HL + 00000DDC 71 2113 LD (HL),C + 00000DDD 23 2114 INC HL + 00000DDE 70 2115 LD (HL),B + 00000DDF 21 0C 00 2116 LD HL,12 + 00000DE2 E5 2117 PUSH HL + 00000DE3 DD 6E DE 2118 LD L,(IX-34) + 00000DE6 DD 66 DF 2119 LD H,(IX-33) + 00000DE9 23 2120 INC HL + 00000DEA 23 2121 INC HL + 00000DEB 46 2122 LD B,(HL) + 00000DEC 23 2123 INC HL + 00000DED 66 2124 LD H,(HL) + 00000DEE 68 2125 LD L,B + 00000DEF E5 2126 PUSH HL + 00000DF0 DD 6E EE 2127 LD L,(IX-18) + 00000DF3 DD 66 EF 2128 LD H,(IX-17) + 00000DF6 29 2129 ADD HL,HL + 00000DF7 29 2130 ADD HL,HL + 00000DF8 4D 2131 LD C,L + 00000DF9 44 2132 LD B,H + 00000DFA 29 2133 ADD HL,HL + 00000DFB 09 2134 ADD HL,BC + 00000DFC 4D 2135 LD C,L + 00000DFD 44 2136 LD B,H + 00000DFE E1 2137 POP HL + 00000DFF 09 2138 ADD HL,BC + 00000E00 4D 2139 LD C,L + 00000E01 44 2140 LD B,H + 00000E02 FD 6E 02 2141 LD L,(IY+2) + 00000E05 FD 66 03 2142 LD H,(IY+3) + 00000E08 E5 2143 PUSH HL + 00000E09 DD 6E EE 2144 LD L,(IX-18) + 00000E0C DD 66 EF 2145 LD H,(IX-17) + 00000E0F 29 2146 ADD HL,HL + 00000E10 29 2147 ADD HL,HL + 00000E11 5D 2148 LD E,L + 00000E12 54 2149 LD D,H + 00000E13 29 2150 ADD HL,HL + 00000E14 19 2151 ADD HL,DE + 00000E15 EB 2152 EX DE,HL + 00000E16 E1 2153 POP HL + 00000E17 19 2154 ADD HL,DE + 00000E18 EB 2155 EX DE,HL + 00000E19 3E 00 2156 LD A,BYTE3 memcpy + 00000E1B 21 00 00 2157 LD HL,LWRD memcpy + 00000E1E CD 00 00 2158 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000E21 F1 2159 POP AF + 00000E22 DD 34 EE 2160 INC (IX-18) + 00000E25 C2 5C 0D 2161 JP NZ,?0148 + 00000E28 DD 34 EF 2162 INC (IX-17) + 00000E2B C3 5C 0D 2163 JP LWRD ?0148 + 00000E2E 2164 ?0147: + 00000E2E 2165 ?0145: + 00000E2E CD 0F 12 2166 CALL LWRD ?0647 + 00000E31 E5 2167 PUSH HL + 00000E32 FD E5 2168 PUSH IY + 00000E34 E1 2169 POP HL + 00000E35 C1 2170 POP BC + 00000E36 CD 84 04 2171 CALL LWRD ?0643 + 00000E39 CD E0 11 2172 CALL LWRD ?0640 + 00000E3C CD 00 00 2173 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000E3F FD 75 02 2174 LD (IY+2),L + 00000E42 FD 74 03 2175 LD (IY+3),H + 00000E45 DD 6E FE 2176 LD L,(IX-2) + 00000E48 DD 66 FF 2177 LD H,(IX-1) + 00000E4B 23 2178 INC HL + 00000E4C 46 2179 LD B,(HL) + 00000E4D DD 70 E2 2180 LD (IX-30),B + 00000E50 23 2181 INC HL + 00000E51 66 2182 LD H,(HL) + 00000E52 DD 74 E3 2183 LD (IX-29),H + 00000E55 AF 2184 XOR A + 00000E56 DD 77 EE 2185 LD (IX-18),A + 00000E59 DD 77 EF 2186 LD (IX-17),A + 00000E5C 2187 ?0153: + 00000E5C FD 4E 00 2188 LD C,(IY+0) + 00000E5F FD 46 01 2189 LD B,(IY+1) + 00000E62 DD 6E EE 2190 LD L,(IX-18) + 00000E65 DD 66 EF 2191 LD H,(IX-17) + 00000E68 F6 80 2192 OR 128 + 00000E6A ED 42 2193 SBC HL,BC + 00000E6C E2 70 0E 2194 JP PO,?0503 + 00000E6F AC 2195 XOR H + 00000E70 2196 ?0503: + 00000E70 F2 61 0F 2197 JP P,?0152 + 00000E73 2198 ?0154: + 00000E73 21 04 00 2199 LD HL,4 + 00000E76 DD 4E E2 2200 LD C,(IX-30) + 00000E79 DD 46 E3 2201 LD B,(IX-29) + 00000E7C 09 2202 ADD HL,BC + 00000E7D 4E 2203 LD C,(HL) + 00000E7E 23 2204 INC HL + 00000E7F 46 2205 LD B,(HL) + 00000E80 DD 5E DE 2206 LD E,(IX-34) + 00000E83 DD 56 DF 2207 LD D,(IX-33) + 00000E86 3E 4E 2208 LD A,BYTE3 dbFieldSearch + 00000E88 21 4E 0C 2209 LD HL,LWRD dbFieldSearch + 00000E8B CD 00 00 2210 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000E8E DD 75 FC 2211 LD (IX-4),L + 00000E91 DD 74 FD 2212 LD (IX-3),H + 00000E94 DD 4E DE 2213 LD C,(IX-34) + 00000E97 DD 46 DF 2214 LD B,(IX-33) + 00000E9A 03 2215 INC BC + 00000E9B 03 2216 INC BC + 00000E9C 0A 2217 LD A,(BC) + 00000E9D 6F 2218 LD L,A + 00000E9E 03 2219 INC BC + 00000E9F 0A 2220 LD A,(BC) + 00000EA0 67 2221 LD H,A + 00000EA1 E5 2222 PUSH HL + 00000EA2 DD 6E FC 2223 LD L,(IX-4) + 00000EA5 DD 66 FD 2224 LD H,(IX-3) + 00000EA8 29 2225 ADD HL,HL + 00000EA9 29 2226 ADD HL,HL + 00000EAA 4D 2227 LD C,L + 00000EAB 44 2228 LD B,H + 00000EAC 29 2229 ADD HL,HL + 00000EAD 09 2230 ADD HL,BC + 00000EAE 4D 2231 LD C,L + 00000EAF 44 2232 LD B,H + 00000EB0 E1 2233 POP HL + 00000EB1 09 2234 ADD HL,BC + 00000EB2 DD 75 E0 2235 LD (IX-32),L + 00000EB5 DD 74 E1 2236 LD (IX-31),H + 00000EB8 DD 6E EE 2237 LD L,(IX-18) + 00000EBB DD 66 EF 2238 LD H,(IX-17) + 00000EBE 29 2239 ADD HL,HL + 00000EBF DD 4E E4 2240 LD C,(IX-28) + 00000EC2 DD 46 E5 2241 LD B,(IX-27) + 00000EC5 09 2242 ADD HL,BC + 00000EC6 E5 2243 PUSH HL + 00000EC7 DD 4E FC 2244 LD C,(IX-4) + 00000ECA DD 46 FD 2245 LD B,(IX-3) + 00000ECD DD 5E DE 2246 LD E,(IX-34) + 00000ED0 DD 56 DF 2247 LD D,(IX-33) + 00000ED3 3E DD 2248 LD A,BYTE3 dbFieldOffset + 00000ED5 21 DD 0B 2249 LD HL,LWRD dbFieldOffset + 00000ED8 CD 00 00 2250 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000EDB 4D 2251 LD C,L + 00000EDC 44 2252 LD B,H + 00000EDD E1 2253 POP HL + 00000EDE 71 2254 LD (HL),C + 00000EDF 23 2255 INC HL + 00000EE0 70 2256 LD (HL),B + 00000EE1 DD 6E EE 2257 LD L,(IX-18) + 00000EE4 DD 66 EF 2258 LD H,(IX-17) + 00000EE7 29 2259 ADD HL,HL + 00000EE8 DD 4E E6 2260 LD C,(IX-26) + 00000EEB DD 46 E7 2261 LD B,(IX-25) + 00000EEE 09 2262 ADD HL,BC + 00000EEF E5 2263 PUSH HL + 00000EF0 21 0A 00 2264 LD HL,10 + 00000EF3 DD 4E E0 2265 LD C,(IX-32) + 00000EF6 DD 46 E1 2266 LD B,(IX-31) + 00000EF9 09 2267 ADD HL,BC + 00000EFA 4E 2268 LD C,(HL) + 00000EFB 06 00 2269 LD B,0 + 00000EFD E1 2270 POP HL + 00000EFE 71 2271 LD (HL),C + 00000EFF 23 2272 INC HL + 00000F00 70 2273 LD (HL),B + 00000F01 21 0C 00 2274 LD HL,12 + 00000F04 E5 2275 PUSH HL + 00000F05 DD 6E DE 2276 LD L,(IX-34) + 00000F08 DD 66 DF 2277 LD H,(IX-33) + 00000F0B 23 2278 INC HL + 00000F0C 23 2279 INC HL + 00000F0D 46 2280 LD B,(HL) + 00000F0E 23 2281 INC HL + 00000F0F 66 2282 LD H,(HL) + 00000F10 68 2283 LD L,B + 00000F11 E5 2284 PUSH HL + 00000F12 DD 6E FC 2285 LD L,(IX-4) + 00000F15 DD 66 FD 2286 LD H,(IX-3) + 00000F18 29 2287 ADD HL,HL + 00000F19 29 2288 ADD HL,HL + 00000F1A 4D 2289 LD C,L + 00000F1B 44 2290 LD B,H + 00000F1C 29 2291 ADD HL,HL + 00000F1D 09 2292 ADD HL,BC + 00000F1E 4D 2293 LD C,L + 00000F1F 44 2294 LD B,H + 00000F20 E1 2295 POP HL + 00000F21 09 2296 ADD HL,BC + 00000F22 4D 2297 LD C,L + 00000F23 44 2298 LD B,H + 00000F24 FD 6E 02 2299 LD L,(IY+2) + 00000F27 FD 66 03 2300 LD H,(IY+3) + 00000F2A E5 2301 PUSH HL + 00000F2B DD 6E EE 2302 LD L,(IX-18) + 00000F2E DD 66 EF 2303 LD H,(IX-17) + 00000F31 29 2304 ADD HL,HL + 00000F32 29 2305 ADD HL,HL + 00000F33 5D 2306 LD E,L + 00000F34 54 2307 LD D,H + 00000F35 29 2308 ADD HL,HL + 00000F36 19 2309 ADD HL,DE + 00000F37 EB 2310 EX DE,HL + 00000F38 E1 2311 POP HL + 00000F39 19 2312 ADD HL,DE + 00000F3A EB 2313 EX DE,HL + 00000F3B 3E 00 2314 LD A,BYTE3 memcpy + 00000F3D 21 00 00 2315 LD HL,LWRD memcpy + 00000F40 CD 00 00 2316 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F43 F1 2317 POP AF + 00000F44 DD 6E E2 2318 LD L,(IX-30) + 00000F47 DD 66 E3 2319 LD H,(IX-29) + 00000F4A 23 2320 INC HL + 00000F4B 23 2321 INC HL + 00000F4C 46 2322 LD B,(HL) + 00000F4D DD 70 E2 2323 LD (IX-30),B + 00000F50 23 2324 INC HL + 00000F51 66 2325 LD H,(HL) + 00000F52 DD 74 E3 2326 LD (IX-29),H + 00000F55 DD 34 EE 2327 INC (IX-18) + 00000F58 C2 5C 0E 2328 JP NZ,?0153 + 00000F5B DD 34 EF 2329 INC (IX-17) + 00000F5E C3 5C 0E 2330 JP LWRD ?0153 + 00000F61 2331 ?0152: + 00000F61 2332 ?0151: + 00000F61 DD 5E DE 2333 LD E,(IX-34) + 00000F64 DD 56 DF 2334 LD D,(IX-33) + 00000F67 3E 32 2335 LD A,BYTE3 dbRecordSize + 00000F69 21 32 0C 2336 LD HL,LWRD dbRecordSize + 00000F6C CD 00 00 2337 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F6F DD 75 F4 2338 LD (IX-12),L + 00000F72 DD 74 F5 2339 LD (IX-11),H + 00000F75 CD 8E 04 2340 CALL LWRD ?0642 + 00000F78 DD 75 E8 2341 LD (IX-24),L + 00000F7B DD 74 E9 2342 LD (IX-23),H + 00000F7E FD E5 2343 PUSH IY + 00000F80 D1 2344 POP DE + 00000F81 3E 32 2345 LD A,BYTE3 dbRecordSize + 00000F83 21 32 0C 2346 LD HL,LWRD dbRecordSize + 00000F86 CD 00 00 2347 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F89 DD 75 F2 2348 LD (IX-14),L + 00000F8C DD 74 F3 2349 LD (IX-13),H + 00000F8F CD 8E 04 2350 CALL LWRD ?0642 + 00000F92 DD 75 EA 2351 LD (IX-22),L + 00000F95 DD 74 EB 2352 LD (IX-21),H + 00000F98 DD 6E DE 2353 LD L,(IX-34) + 00000F9B DD 66 DF 2354 LD H,(IX-33) + 00000F9E E5 2355 PUSH HL + 00000F9F DD 6E FA 2356 LD L,(IX-6) + 00000FA2 DD 66 FB 2357 LD H,(IX-5) + 00000FA5 C1 2358 POP BC + 00000FA6 71 2359 LD (HL),C + 00000FA7 23 2360 INC HL + 00000FA8 70 2361 LD (HL),B + 00000FA9 DD 6E FA 2362 LD L,(IX-6) + 00000FAC DD 66 FB 2363 LD H,(IX-5) + 00000FAF 23 2364 INC HL + 00000FB0 23 2365 INC HL + 00000FB1 AF 2366 XOR A + 00000FB2 77 2367 LD (HL),A + 00000FB3 23 2368 INC HL + 00000FB4 77 2369 LD (HL),A + 00000FB5 21 04 00 2370 LD HL,4 + 00000FB8 DD 4E FA 2371 LD C,(IX-6) + 00000FBB DD 46 FB 2372 LD B,(IX-5) + 00000FBE 09 2373 ADD HL,BC + 00000FBF DD 4E E8 2374 LD C,(IX-24) + 00000FC2 71 2375 LD (HL),C + 00000FC3 DD 46 E9 2376 LD B,(IX-23) + 00000FC6 23 2377 INC HL + 00000FC7 70 2378 LD (HL),B + 00000FC8 21 52 00 2379 LD HL,?0157 + 00000FCB E5 2380 PUSH HL + 00000FCC 6F 2381 LD L,A + 00000FCD 67 2382 LD H,A + 00000FCE E5 2383 PUSH HL + 00000FCF 01 FF FF 2384 LD BC,65535 + 00000FD2 11 4B 00 2385 LD DE,?0156 + 00000FD5 3E 00 2386 LD A,BYTE3 __fopen + 00000FD7 21 00 00 2387 LD HL,LWRD __fopen + 00000FDA CD 00 00 2388 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000FDD F1 2389 POP AF + 00000FDE F1 2390 POP AF + 00000FDF FD 75 08 2391 LD (IY+8),L + 00000FE2 FD 74 09 2392 LD (IY+9),H + 00000FE5 21 05 00 2393 LD HL,5 + 00000FE8 DD 4E FE 2394 LD C,(IX-2) + 00000FEB DD 46 FF 2395 LD B,(IX-1) + 00000FEE 09 2396 ADD HL,BC + 00000FEF 7E 2397 LD A,(HL) + 00000FF0 23 2398 INC HL + 00000FF1 B6 2399 OR (HL) + 00000FF2 21 1C 00 2400 LD HL,28 + 00000FF5 39 2401 ADD HL,SP + 00000FF6 4D 2402 LD C,L + 00000FF7 44 2403 LD B,H + 00000FF8 28 17 2404 JR Z,?0159 + 00000FFA 2405 ?0158: + 00000FFA 21 05 00 2406 LD HL,5 + 00000FFD DD 5E FE 2407 LD E,(IX-2) + 00001000 DD 56 FF 2408 LD D,(IX-1) + 00001003 19 2409 ADD HL,DE + 00001004 56 2410 LD D,(HL) + 00001005 23 2411 INC HL + 00001006 66 2412 LD H,(HL) + 00001007 6A 2413 LD L,D + 00001008 11 04 00 2414 LD DE,4 + 0000100B 19 2415 ADD HL,DE + 0000100C 5E 2416 LD E,(HL) + 0000100D 23 2417 INC HL + 0000100E 56 2418 LD D,(HL) + 0000100F 18 02 2419 JR ?0510 + 00001011 2420 ?0159: + 00001011 5F 2421 LD E,A + 00001012 57 2422 LD D,A + 00001013 2423 ?0510: + 00001013 3E 5D 2424 LD A,BYTE3 dbParseExpression + 00001015 21 5D 20 2425 LD HL,LWRD dbParseExpression + 00001018 CD 00 00 2426 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000101B DD 75 F6 2427 LD (IX-10),L + 0000101E DD 74 F7 2428 LD (IX-9),H + 00001021 2429 ?0160: + 00001021 AF 2430 XOR A + 00001022 DD 77 EE 2431 LD (IX-18),A + 00001025 DD 77 EF 2432 LD (IX-17),A + 00001028 2433 ?0162: + 00001028 21 04 00 2434 LD HL,4 + 0000102B DD 4E DE 2435 LD C,(IX-34) + 0000102E DD 46 DF 2436 LD B,(IX-33) + 00001031 09 2437 ADD HL,BC + 00001032 4E 2438 LD C,(HL) + 00001033 23 2439 INC HL + 00001034 46 2440 LD B,(HL) + 00001035 DD 6E EE 2441 LD L,(IX-18) + 00001038 DD 66 EF 2442 LD H,(IX-17) + 0000103B F6 80 2443 OR 128 + 0000103D ED 42 2444 SBC HL,BC + 0000103F E2 43 10 2445 JP PO,?0505 + 00001042 AC 2446 XOR H + 00001043 2447 ?0505: + 00001043 F2 71 11 2448 JP P,?0161 + 00001046 2449 ?0163: + 00001046 21 08 00 2450 LD HL,8 + 00001049 DD 4E DE 2451 LD C,(IX-34) + 0000104C DD 46 DF 2452 LD B,(IX-33) + 0000104F 09 2453 ADD HL,BC + 00001050 4E 2454 LD C,(HL) + 00001051 23 2455 INC HL + 00001052 46 2456 LD B,(HL) + 00001053 C5 2457 PUSH BC + 00001054 21 01 00 2458 LD HL,1 + 00001057 E5 2459 PUSH HL + 00001058 DD 4E F4 2460 LD C,(IX-12) + 0000105B DD 46 F5 2461 LD B,(IX-11) + 0000105E DD 5E E8 2462 LD E,(IX-24) + 00001061 DD 56 E9 2463 LD D,(IX-23) + 00001064 3E 00 2464 LD A,BYTE3 fread + 00001066 21 00 00 2465 LD HL,LWRD fread + 00001069 CD 00 00 2466 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000106C F1 2467 POP AF + 0000106D F1 2468 POP AF + 0000106E DD 6E E8 2469 LD L,(IX-24) + 00001071 DD 66 E9 2470 LD H,(IX-23) + 00001074 46 2471 LD B,(HL) + 00001075 05 2472 DEC B + 00001076 C2 65 11 2473 JP NZ,?0508 + 00001079 2474 ?0165: + 00001079 DD 6E EA 2475 LD L,(IX-22) + 0000107C DD 66 EB 2476 LD H,(IX-21) + 0000107F 36 01 2477 LD (HL),1 + 00001081 23 2478 INC HL + 00001082 70 2479 LD (HL),B + 00001083 DD 36 EC 02 2480 LD (IX-20),2 + 00001087 DD 70 ED 2481 LD (IX-19),B + 0000108A AF 2482 XOR A + 0000108B DD 77 F0 2483 LD (IX-16),A + 0000108E DD 77 F1 2484 LD (IX-15),A + 00001091 2485 ?0168: + 00001091 FD 4E 00 2486 LD C,(IY+0) + 00001094 FD 46 01 2487 LD B,(IY+1) + 00001097 DD 6E F0 2488 LD L,(IX-16) + 0000109A DD 66 F1 2489 LD H,(IX-15) + 0000109D F6 80 2490 OR 128 + 0000109F ED 42 2491 SBC HL,BC + 000010A1 E2 A5 10 2492 JP PO,?0506 + 000010A4 AC 2493 XOR H + 000010A5 2494 ?0506: + 000010A5 F2 13 11 2495 JP P,?0167 + 000010A8 2496 ?0169: + 000010A8 DD 6E F0 2497 LD L,(IX-16) + 000010AB DD 66 F1 2498 LD H,(IX-15) + 000010AE 29 2499 ADD HL,HL + 000010AF DD 4E E6 2500 LD C,(IX-26) + 000010B2 DD 46 E7 2501 LD B,(IX-25) + 000010B5 09 2502 ADD HL,BC + 000010B6 5E 2503 LD E,(HL) + 000010B7 23 2504 INC HL + 000010B8 56 2505 LD D,(HL) + 000010B9 D5 2506 PUSH DE + 000010BA DD 6E F0 2507 LD L,(IX-16) + 000010BD DD 66 F1 2508 LD H,(IX-15) + 000010C0 29 2509 ADD HL,HL + 000010C1 DD 5E E4 2510 LD E,(IX-28) + 000010C4 DD 56 E5 2511 LD D,(IX-27) + 000010C7 19 2512 ADD HL,DE + 000010C8 56 2513 LD D,(HL) + 000010C9 23 2514 INC HL + 000010CA 66 2515 LD H,(HL) + 000010CB 6A 2516 LD L,D + 000010CC DD 5E E8 2517 LD E,(IX-24) + 000010CF DD 56 E9 2518 LD D,(IX-23) + 000010D2 19 2519 ADD HL,DE + 000010D3 4D 2520 LD C,L + 000010D4 44 2521 LD B,H + 000010D5 DD 6E EC 2522 LD L,(IX-20) + 000010D8 DD 66 ED 2523 LD H,(IX-19) + 000010DB DD 5E EA 2524 LD E,(IX-22) + 000010DE DD 56 EB 2525 LD D,(IX-21) + 000010E1 19 2526 ADD HL,DE + 000010E2 EB 2527 EX DE,HL + 000010E3 3E 00 2528 LD A,BYTE3 memcpy + 000010E5 21 00 00 2529 LD HL,LWRD memcpy + 000010E8 CD 00 00 2530 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000010EB F1 2531 POP AF + 000010EC DD 6E F0 2532 LD L,(IX-16) + 000010EF DD 66 F1 2533 LD H,(IX-15) + 000010F2 29 2534 ADD HL,HL + 000010F3 DD 4E E6 2535 LD C,(IX-26) + 000010F6 DD 46 E7 2536 LD B,(IX-25) + 000010F9 09 2537 ADD HL,BC + 000010FA 4E 2538 LD C,(HL) + 000010FB 23 2539 INC HL + 000010FC 46 2540 LD B,(HL) + 000010FD 21 10 00 2541 LD HL,16 + 00001100 39 2542 ADD HL,SP + 00001101 7E 2543 LD A,(HL) + 00001102 81 2544 ADD A,C + 00001103 77 2545 LD (HL),A + 00001104 23 2546 INC HL + 00001105 7E 2547 LD A,(HL) + 00001106 88 2548 ADC A,B + 00001107 77 2549 LD (HL),A + 00001108 DD 34 F0 2550 INC (IX-16) + 0000110B 20 84 2551 JR NZ,?0168 + 0000110D DD 34 F1 2552 INC (IX-15) + 00001110 C3 91 10 2553 JP LWRD ?0168 + 00001113 2554 ?0167: + 00001113 DD 4E FA 2555 LD C,(IX-6) + 00001116 DD 46 FB 2556 LD B,(IX-5) + 00001119 DD 5E F6 2557 LD E,(IX-10) + 0000111C DD 56 F7 2558 LD D,(IX-9) + 0000111F 3E C0 2559 LD A,BYTE3 dbEvaluateExpression + 00001121 21 C0 24 2560 LD HL,LWRD dbEvaluateExpression + 00001124 CD 00 00 2561 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001127 21 24 00 2562 LD HL,36 + 0000112A DD 4E F6 2563 LD C,(IX-10) + 0000112D DD 46 F7 2564 LD B,(IX-9) + 00001130 09 2565 ADD HL,BC + 00001131 3E 01 2566 LD A,1 + 00001133 AE 2567 XOR (HL) + 00001134 23 2568 INC HL + 00001135 B6 2569 OR (HL) + 00001136 23 2570 INC HL + 00001137 B6 2571 OR (HL) + 00001138 23 2572 INC HL + 00001139 B6 2573 OR (HL) + 0000113A 20 29 2574 JR NZ,?0508 + 0000113C 2575 ?0171: + 0000113C FD 6E 08 2576 LD L,(IY+8) + 0000113F FD 66 09 2577 LD H,(IY+9) + 00001142 E5 2578 PUSH HL + 00001143 21 01 00 2579 LD HL,1 + 00001146 E5 2580 PUSH HL + 00001147 DD 4E F2 2581 LD C,(IX-14) + 0000114A DD 46 F3 2582 LD B,(IX-13) + 0000114D DD 5E EA 2583 LD E,(IX-22) + 00001150 DD 56 EB 2584 LD D,(IX-21) + 00001153 3E 00 2585 LD A,BYTE3 fwrite + 00001155 21 00 00 2586 LD HL,LWRD fwrite + 00001158 CD 00 00 2587 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000115B F1 2588 POP AF + 0000115C F1 2589 POP AF + 0000115D FD 34 04 2590 INC (IY+4) + 00001160 20 03 2591 JR NZ,?0508 + 00001162 FD 34 05 2592 INC (IY+5) + 00001165 2593 ?0508: + 00001165 2594 ?0172: + 00001165 2595 ?0166: + 00001165 DD 34 EE 2596 INC (IX-18) + 00001168 C2 28 10 2597 JP NZ,?0162 + 0000116B DD 34 EF 2598 INC (IX-17) + 0000116E C3 28 10 2599 JP LWRD ?0162 + 00001171 2600 ?0161: + 00001171 DD 5E E8 2601 LD E,(IX-24) + 00001174 DD 56 E9 2602 LD D,(IX-23) + 00001177 CD 3B 00 2603 CALL LWRD ?0639 + 0000117A DD 5E E4 2604 LD E,(IX-28) + 0000117D DD 56 E5 2605 LD D,(IX-27) + 00001180 CD 3B 00 2606 CALL LWRD ?0639 + 00001183 DD 5E E6 2607 LD E,(IX-26) + 00001186 DD 56 E7 2608 LD D,(IX-25) + 00001189 CD 3B 00 2609 CALL LWRD ?0639 + 0000118C DD 5E FA 2610 LD E,(IX-6) + 0000118F DD 56 FB 2611 LD D,(IX-5) + 00001192 CD 3B 00 2612 CALL LWRD ?0639 + 00001195 DD 5E F6 2613 LD E,(IX-10) + 00001198 DD 56 F7 2614 LD D,(IX-9) + 0000119B 3E 97 2615 LD A,BYTE3 dbDeleteExpression + 0000119D 21 97 24 2616 LD HL,LWRD dbDeleteExpression + 000011A0 CD 00 00 2617 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000011A3 DD 5E DE 2618 LD E,(IX-34) + 000011A6 DD 56 DF 2619 LD D,(IX-33) + 000011A9 3E 70 2620 LD A,BYTE3 dbTableClose + 000011AB 21 70 0B 2621 LD HL,LWRD dbTableClose + 000011AE CD 00 00 2622 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000011B1 FD 5E 08 2623 LD E,(IY+8) + 000011B4 FD 56 09 2624 LD D,(IY+9) + 000011B7 CD 4B 0B 2625 CALL LWRD ?0645 + 000011BA 21 43 00 2626 LD HL,?0127 + 000011BD E5 2627 PUSH HL + 000011BE 21 00 00 2628 LD HL,0 + 000011C1 E5 2629 PUSH HL + 000011C2 01 FF FF 2630 LD BC,65535 + 000011C5 11 4B 00 2631 LD DE,?0156 + 000011C8 3E 00 2632 LD A,BYTE3 __fopen + 000011CA 21 00 00 2633 LD HL,LWRD __fopen + 000011CD CD 00 00 2634 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000011D0 F1 2635 POP AF + 000011D1 F1 2636 POP AF + 000011D2 FD 75 08 2637 LD (IY+8),L + 000011D5 FD 74 09 2638 LD (IY+9),H + 000011D8 FD E5 2639 PUSH IY + 000011DA E1 2640 POP HL + 000011DB DD F9 2641 LD SP,IX + 000011DD C3 6B 00 2642 JP LWRD ?0614 + 000011E0 2643 ?0640: + 000011E0 DD 75 E4 2644 LD (IX-28),L + 000011E3 DD 74 E5 2645 LD (IX-27),H + 000011E6 FD 6E 00 2646 LD L,(IY+0) + 000011E9 FD 66 01 2647 LD H,(IY+1) + 000011EC 29 2648 ADD HL,HL + 000011ED EB 2649 EX DE,HL + 000011EE 3E 00 2650 LD A,BYTE3 malloc + 000011F0 21 00 00 2651 LD HL,LWRD malloc + 000011F3 CD 00 00 2652 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000011F6 DD 75 E6 2653 LD (IX-26),L + 000011F9 DD 74 E7 2654 LD (IX-25),H + 000011FC FD 6E 00 2655 LD L,(IY+0) + 000011FF FD 66 01 2656 LD H,(IY+1) + 00001202 29 2657 ADD HL,HL + 00001203 29 2658 ADD HL,HL + 00001204 4D 2659 LD C,L + 00001205 44 2660 LD B,H + 00001206 29 2661 ADD HL,HL + 00001207 09 2662 ADD HL,BC + 00001208 EB 2663 EX DE,HL + 00001209 3E 00 2664 LD A,BYTE3 malloc + 0000120B 21 00 00 2665 LD HL,LWRD malloc + 0000120E C9 2666 RET + 0000120F 2667 ?0647: + 0000120F DD 6E FE 2668 LD L,(IX-2) + 00001212 DD 66 FF 2669 LD H,(IX-1) + 00001215 23 2670 INC HL + 00001216 5E 2671 LD E,(HL) + 00001217 23 2672 INC HL + 00001218 56 2673 LD D,(HL) + 00001219 3E 73 2674 LD A,BYTE3 dbListSize + 0000121B 21 73 00 2675 LD HL,LWRD dbListSize + 0000121E C3 00 00 2676 JP LWRD ?BANK_CALL_DIRECT_L08 + 00001221 2677 ?0662: + 00001221 3E 5D 2678 LD A,BYTE3 dbParseExpression + 00001223 21 5D 20 2679 LD HL,LWRD dbParseExpression + 00001226 CD 00 00 2680 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001229 DD 75 F8 2681 LD (IX-8),L + 0000122C DD 74 F9 2682 LD (IX-7),H + 0000122F 2683 ?0661: + 0000122F 3E 44 2684 LD A,BYTE3 dbNewRow + 00001231 21 44 1D 2685 LD HL,LWRD dbNewRow + 00001234 C3 00 00 2686 JP LWRD ?BANK_CALL_DIRECT_L08 + 00001237 2687 ?0663: + 00001237 DD 5E F8 2688 LD E,(IX-8) + 0000123A DD 56 F9 2689 LD D,(IX-7) + 0000123D 3E C0 2690 LD A,BYTE3 dbEvaluateExpression + 0000123F 21 C0 24 2691 LD HL,LWRD dbEvaluateExpression + 00001242 CD 00 00 2692 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001245 21 24 00 2693 LD HL,36 + 00001248 DD 4E F8 2694 LD C,(IX-8) + 0000124B DD 46 F9 2695 LD B,(IX-7) + 0000124E 09 2696 ADD HL,BC + 0000124F 3E 01 2697 LD A,1 + 00001251 AE 2698 XOR (HL) + 00001252 23 2699 INC HL + 00001253 B6 2700 OR (HL) + 00001254 23 2701 INC HL + 00001255 B6 2702 OR (HL) + 00001256 23 2703 INC HL + 00001257 B6 2704 OR (HL) + 00001258 C9 2705 RET + 00001259 2706 dbExecuteInsert: + 00001259 C5 2707 PUSH BC + 0000125A FD E5 2708 PUSH IY + 0000125C DD E5 2709 PUSH IX + 0000125E DD 21 00 00 2710 LD IX,0 + 00001262 DD 39 2711 ADD IX,SP + 00001264 D5 2712 PUSH DE + 00001265 21 E8 FF 2713 LD HL,65512 + 00001268 39 2714 ADD HL,SP + 00001269 F9 2715 LD SP,HL + 0000126A 11 14 00 2716 LD DE,20 + 0000126D CD 8F 04 2717 CALL LWRD ?0641 + 00001270 DD 75 E6 2718 LD (IX-26),L + 00001273 DD 74 E7 2719 LD (IX-25),H + 00001276 DD 4E FE 2720 LD C,(IX-2) + 00001279 DD 46 FF 2721 LD B,(IX-1) + 0000127C 03 2722 INC BC + 0000127D 03 2723 INC BC + 0000127E 03 2724 INC BC + 0000127F 0A 2725 LD A,(BC) + 00001280 6F 2726 LD L,A + 00001281 03 2727 INC BC + 00001282 0A 2728 LD A,(BC) + 00001283 67 2729 LD H,A + 00001284 01 04 00 2730 LD BC,4 + 00001287 09 2731 ADD HL,BC + 00001288 4E 2732 LD C,(HL) + 00001289 23 2733 INC HL + 0000128A 46 2734 LD B,(HL) + 0000128B 21 0B 00 2735 LD HL,11 + 0000128E DD 5E E6 2736 LD E,(IX-26) + 00001291 DD 56 E7 2737 LD D,(IX-25) + 00001294 CD AB 04 2738 CALL LWRD ?0653 + 00001297 DD 5E E6 2739 LD E,(IX-26) + 0000129A DD 56 E7 2740 LD D,(IX-25) + 0000129D 3E A0 2741 LD A,BYTE3 dbTableOpen + 0000129F 21 A0 08 2742 LD HL,LWRD dbTableOpen + 000012A2 CD 00 00 2743 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000012A5 DD 5E E6 2744 LD E,(IX-26) + 000012A8 DD 56 E7 2745 LD D,(IX-25) + 000012AB 3E 32 2746 LD A,BYTE3 dbRecordSize + 000012AD 21 32 0C 2747 LD HL,LWRD dbRecordSize + 000012B0 CD 00 00 2748 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000012B3 DD 75 FA 2749 LD (IX-6),L + 000012B6 DD 74 FB 2750 LD (IX-5),H + 000012B9 CD 8E 04 2751 CALL LWRD ?0642 + 000012BC DD 75 E8 2752 LD (IX-24),L + 000012BF DD 74 E9 2753 LD (IX-23),H + 000012C2 AF 2754 XOR A + 000012C3 DD 77 F4 2755 LD (IX-12),A + 000012C6 DD 77 F5 2756 LD (IX-11),A + 000012C9 2757 ?0174: + 000012C9 DD 4E FA 2758 LD C,(IX-6) + 000012CC DD 46 FB 2759 LD B,(IX-5) + 000012CF DD 6E F4 2760 LD L,(IX-12) + 000012D2 DD 66 F5 2761 LD H,(IX-11) + 000012D5 F6 80 2762 OR 128 + 000012D7 ED 42 2763 SBC HL,BC + 000012D9 E2 DD 12 2764 JP PO,?0511 + 000012DC AC 2765 XOR H + 000012DD 2766 ?0511: + 000012DD F2 F9 12 2767 JP P,?0173 + 000012E0 2768 ?0175: + 000012E0 DD 6E F4 2769 LD L,(IX-12) + 000012E3 DD 66 F5 2770 LD H,(IX-11) + 000012E6 DD 4E E8 2771 LD C,(IX-24) + 000012E9 DD 46 E9 2772 LD B,(IX-23) + 000012EC 09 2773 ADD HL,BC + 000012ED 36 00 2774 LD (HL),0 + 000012EF DD 34 F4 2775 INC (IX-12) + 000012F2 20 D5 2776 JR NZ,?0174 + 000012F4 DD 34 F5 2777 INC (IX-11) + 000012F7 18 D0 2778 JR ?0174 + 000012F9 2779 ?0173: + 000012F9 59 2780 LD E,C + 000012FA 50 2781 LD D,B + 000012FB CD 8F 04 2782 CALL LWRD ?0641 + 000012FE DD 75 EA 2783 LD (IX-22),L + 00001301 DD 74 EB 2784 LD (IX-21),H + 00001304 DD 6E E8 2785 LD L,(IX-24) + 00001307 DD 66 E9 2786 LD H,(IX-23) + 0000130A 36 01 2787 LD (HL),1 + 0000130C 23 2788 INC HL + 0000130D 36 00 2789 LD (HL),0 + 0000130F CD 0F 12 2790 CALL LWRD ?0647 + 00001312 DD 75 F2 2791 LD (IX-14),L + 00001315 DD 74 F3 2792 LD (IX-13),H + 00001318 DD 6E FE 2793 LD L,(IX-2) + 0000131B DD 66 FF 2794 LD H,(IX-1) + 0000131E 23 2795 INC HL + 0000131F 46 2796 LD B,(HL) + 00001320 DD 70 EC 2797 LD (IX-20),B + 00001323 23 2798 INC HL + 00001324 66 2799 LD H,(HL) + 00001325 DD 74 ED 2800 LD (IX-19),H + 00001328 21 07 00 2801 LD HL,7 + 0000132B DD 4E FE 2802 LD C,(IX-2) + 0000132E DD 46 FF 2803 LD B,(IX-1) + 00001331 09 2804 ADD HL,BC + 00001332 46 2805 LD B,(HL) + 00001333 23 2806 INC HL + 00001334 66 2807 LD H,(HL) + 00001335 68 2808 LD L,B + 00001336 E5 2809 PUSH HL + 00001337 FD E1 2810 POP IY + 00001339 AF 2811 XOR A + 0000133A DD 77 F4 2812 LD (IX-12),A + 0000133D DD 77 F5 2813 LD (IX-11),A + 00001340 2814 ?0178: + 00001340 DD 4E F2 2815 LD C,(IX-14) + 00001343 DD 46 F3 2816 LD B,(IX-13) + 00001346 DD 6E F4 2817 LD L,(IX-12) + 00001349 DD 66 F5 2818 LD H,(IX-11) + 0000134C F6 80 2819 OR 128 + 0000134E ED 42 2820 SBC HL,BC + 00001350 E2 54 13 2821 JP PO,?0513 + 00001353 AC 2822 XOR H + 00001354 2823 ?0513: + 00001354 F2 E4 14 2824 JP P,?0177 + 00001357 2825 ?0179: + 00001357 21 04 00 2826 LD HL,4 + 0000135A DD 4E EC 2827 LD C,(IX-20) + 0000135D DD 46 ED 2828 LD B,(IX-19) + 00001360 09 2829 ADD HL,BC + 00001361 4E 2830 LD C,(HL) + 00001362 23 2831 INC HL + 00001363 46 2832 LD B,(HL) + 00001364 DD 5E E6 2833 LD E,(IX-26) + 00001367 DD 56 E7 2834 LD D,(IX-25) + 0000136A 3E 4E 2835 LD A,BYTE3 dbFieldSearch + 0000136C 21 4E 0C 2836 LD HL,LWRD dbFieldSearch + 0000136F CD 00 00 2837 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001372 DD 75 FC 2838 LD (IX-4),L + 00001375 DD 74 FD 2839 LD (IX-3),H + 00001378 DD 4E E6 2840 LD C,(IX-26) + 0000137B DD 46 E7 2841 LD B,(IX-25) + 0000137E 03 2842 INC BC + 0000137F 03 2843 INC BC + 00001380 0A 2844 LD A,(BC) + 00001381 6F 2845 LD L,A + 00001382 03 2846 INC BC + 00001383 0A 2847 LD A,(BC) + 00001384 67 2848 LD H,A + 00001385 E5 2849 PUSH HL + 00001386 DD 6E FC 2850 LD L,(IX-4) + 00001389 DD 66 FD 2851 LD H,(IX-3) + 0000138C 29 2852 ADD HL,HL + 0000138D 29 2853 ADD HL,HL + 0000138E 4D 2854 LD C,L + 0000138F 44 2855 LD B,H + 00001390 29 2856 ADD HL,HL + 00001391 09 2857 ADD HL,BC + 00001392 4D 2858 LD C,L + 00001393 44 2859 LD B,H + 00001394 E1 2860 POP HL + 00001395 09 2861 ADD HL,BC + 00001396 DD 75 F0 2862 LD (IX-16),L + 00001399 DD 74 F1 2863 LD (IX-15),H + 0000139C DD 4E FC 2864 LD C,(IX-4) + 0000139F DD 46 FD 2865 LD B,(IX-3) + 000013A2 DD 5E E6 2866 LD E,(IX-26) + 000013A5 DD 56 E7 2867 LD D,(IX-25) + 000013A8 3E DD 2868 LD A,BYTE3 dbFieldOffset + 000013AA 21 DD 0B 2869 LD HL,LWRD dbFieldOffset + 000013AD CD 00 00 2870 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000013B0 DD 75 F6 2871 LD (IX-10),L + 000013B3 DD 74 F7 2872 LD (IX-9),H + 000013B6 21 0A 00 2873 LD HL,10 + 000013B9 DD 4E F0 2874 LD C,(IX-16) + 000013BC DD 46 F1 2875 LD B,(IX-15) + 000013BF 09 2876 ADD HL,BC + 000013C0 4E 2877 LD C,(HL) + 000013C1 DD 71 F8 2878 LD (IX-8),C + 000013C4 DD 36 F9 00 2879 LD (IX-7),0 + 000013C8 FD 6E 04 2880 LD L,(IY+4) + 000013CB FD 66 05 2881 LD H,(IY+5) + 000013CE 7E 2882 LD A,(HL) + 000013CF FE 27 2883 CP 39 + 000013D1 C2 58 14 2884 JP NZ,?0182 + 000013D4 2885 ?0181: + 000013D4 FD 5E 04 2886 LD E,(IY+4) + 000013D7 FD 56 05 2887 LD D,(IY+5) + 000013DA CD 98 04 2888 CALL LWRD ?0649 + 000013DD FD 4E 04 2889 LD C,(IY+4) + 000013E0 FD 46 05 2890 LD B,(IY+5) + 000013E3 09 2891 ADD HL,BC + 000013E4 2B 2892 DEC HL + 000013E5 36 00 2893 LD (HL),0 + 000013E7 21 09 00 2894 LD HL,9 + 000013EA DD 4E F0 2895 LD C,(IX-16) + 000013ED DD 46 F1 2896 LD B,(IX-15) + 000013F0 09 2897 ADD HL,BC + 000013F1 7E 2898 LD A,(HL) + 000013F2 FE 53 2899 CP 83 + 000013F4 20 28 2900 JR NZ,?0185 + 000013F6 2901 ?0184: + 000013F6 DD 6E F8 2902 LD L,(IX-8) + 000013F9 DD 66 F9 2903 LD H,(IX-7) + 000013FC E5 2904 PUSH HL + 000013FD FD 4E 04 2905 LD C,(IY+4) + 00001400 FD 46 05 2906 LD B,(IY+5) + 00001403 03 2907 INC BC + 00001404 DD 6E F6 2908 LD L,(IX-10) + 00001407 DD 66 F7 2909 LD H,(IX-9) + 0000140A DD 5E E8 2910 LD E,(IX-24) + 0000140D DD 56 E9 2911 LD D,(IX-23) + 00001410 19 2912 ADD HL,DE + 00001411 EB 2913 EX DE,HL + 00001412 3E 00 2914 LD A,BYTE3 memcpy + 00001414 21 00 00 2915 LD HL,LWRD memcpy + 00001417 CD 00 00 2916 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000141A F1 2917 POP AF + 0000141B C3 BE 14 2918 JP LWRD ?0198 + 0000141E 2919 ?0185: + 0000141E FE 49 2920 CP 73 + 00001420 C2 BE 14 2921 JP NZ,?0198 + 00001423 21 0A 00 2922 LD HL,10 + 00001426 09 2923 ADD HL,BC + 00001427 46 2924 LD B,(HL) + 00001428 05 2925 DEC B + 00001429 05 2926 DEC B + 0000142A 20 17 2927 JR NZ,?0187 + 0000142C 2928 ?0186: + 0000142C DD 6E F6 2929 LD L,(IX-10) + 0000142F DD 66 F7 2930 LD H,(IX-9) + 00001432 DD 4E E8 2931 LD C,(IX-24) + 00001435 DD 46 E9 2932 LD B,(IX-23) + 00001438 09 2933 ADD HL,BC + 00001439 E5 2934 PUSH HL + 0000143A FD 5E 04 2935 LD E,(IY+4) + 0000143D FD 56 05 2936 LD D,(IY+5) + 00001440 13 2937 INC DE + 00001441 18 3E 2938 JR ?0520 + 00001443 2939 ?0187: + 00001443 21 0A 00 2940 LD HL,10 + 00001446 DD 46 F1 2941 LD B,(IX-15) + 00001449 09 2942 ADD HL,BC + 0000144A 7E 2943 LD A,(HL) + 0000144B FE 04 2944 CP 4 + 0000144D 20 6F 2945 JR NZ,?0198 + 0000144F 2946 ?0189: + 0000144F FD 5E 04 2947 LD E,(IY+4) + 00001452 FD 56 05 2948 LD D,(IY+5) + 00001455 13 2949 INC DE + 00001456 18 48 2950 JR ?0519 + 00001458 2951 ?0190: + 00001458 2952 ?0188: + 00001458 2953 ?0183: + 00001458 2954 ?0182: + 00001458 21 09 00 2955 LD HL,9 + 0000145B DD 4E F0 2956 LD C,(IX-16) + 0000145E 09 2957 ADD HL,BC + 0000145F 7E 2958 LD A,(HL) + 00001460 FE 49 2959 CP 73 + 00001462 20 5A 2960 JR NZ,?0198 + 00001464 2961 ?0193: + 00001464 21 0A 00 2962 LD HL,10 + 00001467 09 2963 ADD HL,BC + 00001468 46 2964 LD B,(HL) + 00001469 05 2965 DEC B + 0000146A 05 2966 DEC B + 0000146B 20 21 2967 JR NZ,?0195 + 0000146D 2968 ?0194: + 0000146D DD 6E F6 2969 LD L,(IX-10) + 00001470 DD 66 F7 2970 LD H,(IX-9) + 00001473 DD 4E E8 2971 LD C,(IX-24) + 00001476 DD 46 E9 2972 LD B,(IX-23) + 00001479 09 2973 ADD HL,BC + 0000147A E5 2974 PUSH HL + 0000147B FD 5E 04 2975 LD E,(IY+4) + 0000147E FD 56 05 2976 LD D,(IY+5) + 00001481 2977 ?0520: + 00001481 3E 00 2978 LD A,BYTE3 atoi + 00001483 21 00 00 2979 LD HL,LWRD atoi + 00001486 CD 00 00 2980 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001489 4D 2981 LD C,L + 0000148A 44 2982 LD B,H + 0000148B E1 2983 POP HL + 0000148C 18 2D 2984 JR ?0516 + 0000148E 2985 ?0195: + 0000148E 21 0A 00 2986 LD HL,10 + 00001491 DD 46 F1 2987 LD B,(IX-15) + 00001494 09 2988 ADD HL,BC + 00001495 7E 2989 LD A,(HL) + 00001496 FE 04 2990 CP 4 + 00001498 20 24 2991 JR NZ,?0198 + 0000149A 2992 ?0197: + 0000149A FD 5E 04 2993 LD E,(IY+4) + 0000149D FD 56 05 2994 LD D,(IY+5) + 000014A0 2995 ?0519: + 000014A0 3E 00 2996 LD A,BYTE3 atol + 000014A2 21 00 00 2997 LD HL,LWRD atol + 000014A5 CD 00 00 2998 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000014A8 E5 2999 PUSH HL + 000014A9 DD 6E F6 3000 LD L,(IX-10) + 000014AC DD 66 F7 3001 LD H,(IX-9) + 000014AF DD 5E E8 3002 LD E,(IX-24) + 000014B2 DD 56 E9 3003 LD D,(IX-23) + 000014B5 19 3004 ADD HL,DE + 000014B6 D1 3005 POP DE + 000014B7 73 3006 LD (HL),E + 000014B8 23 3007 INC HL + 000014B9 72 3008 LD (HL),D + 000014BA 23 3009 INC HL + 000014BB 3010 ?0516: + 000014BB 71 3011 LD (HL),C + 000014BC 23 3012 INC HL + 000014BD 70 3013 LD (HL),B + 000014BE 3014 ?0198: + 000014BE 3015 ?0196: + 000014BE 3016 ?0192: + 000014BE 3017 ?0191: + 000014BE DD 6E EC 3018 LD L,(IX-20) + 000014C1 DD 66 ED 3019 LD H,(IX-19) + 000014C4 23 3020 INC HL + 000014C5 23 3021 INC HL + 000014C6 46 3022 LD B,(HL) + 000014C7 DD 70 EC 3023 LD (IX-20),B + 000014CA 23 3024 INC HL + 000014CB 66 3025 LD H,(HL) + 000014CC DD 74 ED 3026 LD (IX-19),H + 000014CF FD 6E 02 3027 LD L,(IY+2) + 000014D2 FD 66 03 3028 LD H,(IY+3) + 000014D5 E5 3029 PUSH HL + 000014D6 FD E1 3030 POP IY + 000014D8 DD 34 F4 3031 INC (IX-12) + 000014DB C2 40 13 3032 JP NZ,?0178 + 000014DE DD 34 F5 3033 INC (IX-11) + 000014E1 C3 40 13 3034 JP LWRD ?0178 + 000014E4 3035 ?0177: + 000014E4 21 06 00 3036 LD HL,6 + 000014E7 DD 4E E6 3037 LD C,(IX-26) + 000014EA DD 46 E7 3038 LD B,(IX-25) + 000014ED 09 3039 ADD HL,BC + 000014EE 7E 3040 LD A,(HL) + 000014EF 23 3041 INC HL + 000014F0 B6 3042 OR (HL) + 000014F1 20 50 3043 JR NZ,?0200 + 000014F3 3044 ?0199: + 000014F3 6F 3045 LD L,A + 000014F4 67 3046 LD H,A + 000014F5 E5 3047 PUSH HL + 000014F6 E5 3048 PUSH HL + 000014F7 2E 04 3049 LD L,4 + 000014F9 E5 3050 PUSH HL + 000014FA 2E 08 3051 LD L,8 + 000014FC 09 3052 ADD HL,BC + 000014FD 5E 3053 LD E,(HL) + 000014FE 23 3054 INC HL + 000014FF 56 3055 LD D,(HL) + 00001500 CD 5A 16 3056 CALL LWRD ?0664 + 00001503 F1 3057 POP AF + 00001504 F1 3058 POP AF + 00001505 F1 3059 POP AF + 00001506 21 04 00 3060 LD HL,4 + 00001509 09 3061 ADD HL,BC + 0000150A 56 3062 LD D,(HL) + 0000150B 23 3063 INC HL + 0000150C 66 3064 LD H,(HL) + 0000150D 6A 3065 LD L,D + 0000150E 23 3066 INC HL + 0000150F E5 3067 PUSH HL + 00001510 DD 6E EA 3068 LD L,(IX-22) + 00001513 DD 66 EB 3069 LD H,(IX-21) + 00001516 D1 3070 POP DE + 00001517 73 3071 LD (HL),E + 00001518 23 3072 INC HL + 00001519 72 3073 LD (HL),D + 0000151A 21 08 00 3074 LD HL,8 + 0000151D 09 3075 ADD HL,BC + 0000151E 5E 3076 LD E,(HL) + 0000151F 23 3077 INC HL + 00001520 56 3078 LD D,(HL) + 00001521 D5 3079 PUSH DE + 00001522 21 01 00 3080 LD HL,1 + 00001525 E5 3081 PUSH HL + 00001526 01 02 00 3082 LD BC,2 + 00001529 DD 5E EA 3083 LD E,(IX-22) + 0000152C DD 56 EB 3084 LD D,(IX-21) + 0000152F 3E 00 3085 LD A,BYTE3 fwrite + 00001531 21 00 00 3086 LD HL,LWRD fwrite + 00001534 CD 00 00 3087 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001537 F1 3088 POP AF + 00001538 F1 3089 POP AF + 00001539 21 02 00 3090 LD HL,2 + 0000153C E5 3091 PUSH HL + 0000153D 2B 3092 DEC HL + 0000153E 2B 3093 DEC HL + 0000153F E5 3094 PUSH HL + 00001540 C3 F6 15 3095 JP LWRD ?0517 + 00001543 3096 ?0200: + 00001543 21 00 00 3097 LD HL,0 + 00001546 E5 3098 PUSH HL + 00001547 E5 3099 PUSH HL + 00001548 2E 06 3100 LD L,6 + 0000154A E5 3101 PUSH HL + 0000154B 23 3102 INC HL + 0000154C 23 3103 INC HL + 0000154D 09 3104 ADD HL,BC + 0000154E 5E 3105 LD E,(HL) + 0000154F 23 3106 INC HL + 00001550 56 3107 LD D,(HL) + 00001551 CD 5A 16 3108 CALL LWRD ?0664 + 00001554 F1 3109 POP AF + 00001555 F1 3110 POP AF + 00001556 F1 3111 POP AF + 00001557 21 06 00 3112 LD HL,6 + 0000155A 09 3113 ADD HL,BC + 0000155B 56 3114 LD D,(HL) + 0000155C 23 3115 INC HL + 0000155D 66 3116 LD H,(HL) + 0000155E 6A 3117 LD L,D + 0000155F 2B 3118 DEC HL + 00001560 E5 3119 PUSH HL + 00001561 DD 6E EA 3120 LD L,(IX-22) + 00001564 DD 66 EB 3121 LD H,(IX-21) + 00001567 D1 3122 POP DE + 00001568 73 3123 LD (HL),E + 00001569 23 3124 INC HL + 0000156A 72 3125 LD (HL),D + 0000156B 21 08 00 3126 LD HL,8 + 0000156E 09 3127 ADD HL,BC + 0000156F 5E 3128 LD E,(HL) + 00001570 23 3129 INC HL + 00001571 56 3130 LD D,(HL) + 00001572 D5 3131 PUSH DE + 00001573 21 01 00 3132 LD HL,1 + 00001576 E5 3133 PUSH HL + 00001577 01 02 00 3134 LD BC,2 + 0000157A DD 5E EA 3135 LD E,(IX-22) + 0000157D DD 56 EB 3136 LD D,(IX-21) + 00001580 3E 00 3137 LD A,BYTE3 fwrite + 00001582 21 00 00 3138 LD HL,LWRD fwrite + 00001585 CD 00 00 3139 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001588 F1 3140 POP AF + 00001589 F1 3141 POP AF + 0000158A 21 00 00 3142 LD HL,0 + 0000158D E5 3143 PUSH HL + 0000158E E5 3144 PUSH HL + 0000158F 2E 0A 3145 LD L,10 + 00001591 E5 3146 PUSH HL + 00001592 2B 3147 DEC HL + 00001593 2B 3148 DEC HL + 00001594 DD 4E E6 3149 LD C,(IX-26) + 00001597 DD 46 E7 3150 LD B,(IX-25) + 0000159A 09 3151 ADD HL,BC + 0000159B 5E 3152 LD E,(HL) + 0000159C 23 3153 INC HL + 0000159D 56 3154 LD D,(HL) + 0000159E CD 5A 16 3155 CALL LWRD ?0664 + 000015A1 F1 3156 POP AF + 000015A2 F1 3157 POP AF + 000015A3 F1 3158 POP AF + 000015A4 DD 6E EA 3159 LD L,(IX-22) + 000015A7 DD 66 EB 3160 LD H,(IX-21) + 000015AA 36 FF 3161 LD (HL),255 + 000015AC 23 3162 INC HL + 000015AD 36 FF 3163 LD (HL),255 + 000015AF 3164 ?0203: + 000015AF DD 6E EA 3165 LD L,(IX-22) + 000015B2 DD 66 EB 3166 LD H,(IX-21) + 000015B5 AF 3167 XOR A + 000015B6 B6 3168 OR (HL) + 000015B7 28 2A 3169 JR Z,?0202 + 000015B9 3170 ?0204: + 000015B9 21 08 00 3171 LD HL,8 + 000015BC DD 4E E6 3172 LD C,(IX-26) + 000015BF DD 46 E7 3173 LD B,(IX-25) + 000015C2 09 3174 ADD HL,BC + 000015C3 4E 3175 LD C,(HL) + 000015C4 23 3176 INC HL + 000015C5 46 3177 LD B,(HL) + 000015C6 C5 3178 PUSH BC + 000015C7 21 01 00 3179 LD HL,1 + 000015CA E5 3180 PUSH HL + 000015CB DD 4E FA 3181 LD C,(IX-6) + 000015CE DD 46 FB 3182 LD B,(IX-5) + 000015D1 DD 5E EA 3183 LD E,(IX-22) + 000015D4 DD 56 EB 3184 LD D,(IX-21) + 000015D7 3E 00 3185 LD A,BYTE3 fread + 000015D9 21 00 00 3186 LD HL,LWRD fread + 000015DC CD 00 00 3187 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000015DF F1 3188 POP AF + 000015E0 F1 3189 POP AF + 000015E1 18 CC 3190 JR ?0203 + 000015E3 3191 ?0202: + 000015E3 21 01 00 3192 LD HL,1 + 000015E6 E5 3193 PUSH HL + 000015E7 DD 4E FA 3194 LD C,(IX-6) + 000015EA DD 46 FB 3195 LD B,(IX-5) + 000015ED 2B 3196 DEC HL + 000015EE ED 42 3197 SBC HL,BC + 000015F0 7C 3198 LD A,H + 000015F1 07 3199 RLCA + 000015F2 9F 3200 SBC A,A + 000015F3 4F 3201 LD C,A + 000015F4 41 3202 LD B,C + 000015F5 C5 3203 PUSH BC + 000015F6 3204 ?0517: + 000015F6 E5 3205 PUSH HL + 000015F7 21 08 00 3206 LD HL,8 + 000015FA DD 4E E6 3207 LD C,(IX-26) + 000015FD DD 46 E7 3208 LD B,(IX-25) + 00001600 09 3209 ADD HL,BC + 00001601 5E 3210 LD E,(HL) + 00001602 23 3211 INC HL + 00001603 56 3212 LD D,(HL) + 00001604 CD 5A 16 3213 CALL LWRD ?0664 + 00001607 F1 3214 POP AF + 00001608 F1 3215 POP AF + 00001609 F1 3216 POP AF + 0000160A 3217 ?0201: + 0000160A 21 08 00 3218 LD HL,8 + 0000160D 09 3219 ADD HL,BC + 0000160E 5E 3220 LD E,(HL) + 0000160F 23 3221 INC HL + 00001610 56 3222 LD D,(HL) + 00001611 D5 3223 PUSH DE + 00001612 21 01 00 3224 LD HL,1 + 00001615 E5 3225 PUSH HL + 00001616 DD 4E FA 3226 LD C,(IX-6) + 00001619 DD 46 FB 3227 LD B,(IX-5) + 0000161C DD 5E E8 3228 LD E,(IX-24) + 0000161F DD 56 E9 3229 LD D,(IX-23) + 00001622 3E 00 3230 LD A,BYTE3 fwrite + 00001624 21 00 00 3231 LD HL,LWRD fwrite + 00001627 CD 00 00 3232 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000162A F1 3233 POP AF + 0000162B F1 3234 POP AF + 0000162C DD 5E E8 3235 LD E,(IX-24) + 0000162F DD 56 E9 3236 LD D,(IX-23) + 00001632 CD 3B 00 3237 CALL LWRD ?0639 + 00001635 DD 5E EA 3238 LD E,(IX-22) + 00001638 DD 56 EB 3239 LD D,(IX-21) + 0000163B CD 3B 00 3240 CALL LWRD ?0639 + 0000163E DD 5E E6 3241 LD E,(IX-26) + 00001641 DD 56 E7 3242 LD D,(IX-25) + 00001644 3E 70 3243 LD A,BYTE3 dbTableClose + 00001646 21 70 0B 3244 LD HL,LWRD dbTableClose + 00001649 CD 00 00 3245 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000164C 21 00 00 3246 LD HL,0 + 0000164F DD F9 3247 LD SP,IX + 00001651 C3 6B 00 3248 JP LWRD ?0614 + 00001654 3249 ?0665: + 00001654 FD 5E 08 3250 LD E,(IY+8) + 00001657 FD 56 09 3251 LD D,(IY+9) + 0000165A 3252 ?0664: + 0000165A 3E 00 3253 LD A,BYTE3 fseek + 0000165C 21 00 00 3254 LD HL,LWRD fseek + 0000165F C3 00 00 3255 JP LWRD ?BANK_CALL_DIRECT_L08 + 00001662 3256 dbExecuteDelete: + 00001662 C5 3257 PUSH BC + 00001663 FD E5 3258 PUSH IY + 00001665 DD E5 3259 PUSH IX + 00001667 DD 21 00 00 3260 LD IX,0 + 0000166B DD 39 3261 ADD IX,SP + 0000166D D5 3262 PUSH DE + 0000166E 21 F4 FF 3263 LD HL,65524 + 00001671 39 3264 ADD HL,SP + 00001672 F9 3265 LD SP,HL + 00001673 CD 14 18 3266 CALL LWRD ?0637 + 00001676 DD 75 FA 3267 LD (IX-6),L + 00001679 DD 74 FB 3268 LD (IX-5),H + 0000167C CD 8E 04 3269 CALL LWRD ?0642 + 0000167F DD 75 FC 3270 LD (IX-4),L + 00001682 DD 74 FD 3271 LD (IX-3),H + 00001685 AF 3272 XOR A + 00001686 DD 77 F4 3273 LD (IX-12),A + 00001689 DD 77 F5 3274 LD (IX-11),A + 0000168C 21 05 00 3275 LD HL,5 + 0000168F DD 4E FE 3276 LD C,(IX-2) + 00001692 DD 46 FF 3277 LD B,(IX-1) + 00001695 09 3278 ADD HL,BC + 00001696 7E 3279 LD A,(HL) + 00001697 23 3280 INC HL + 00001698 B6 3281 OR (HL) + 00001699 21 02 00 3282 LD HL,2 + 0000169C 39 3283 ADD HL,SP + 0000169D 4D 3284 LD C,L + 0000169E 44 3285 LD B,H + 0000169F 28 17 3286 JR Z,?0206 + 000016A1 3287 ?0205: + 000016A1 21 05 00 3288 LD HL,5 + 000016A4 DD 5E FE 3289 LD E,(IX-2) + 000016A7 DD 56 FF 3290 LD D,(IX-1) + 000016AA 19 3291 ADD HL,DE + 000016AB 56 3292 LD D,(HL) + 000016AC 23 3293 INC HL + 000016AD 66 3294 LD H,(HL) + 000016AE 6A 3295 LD L,D + 000016AF 11 04 00 3296 LD DE,4 + 000016B2 19 3297 ADD HL,DE + 000016B3 5E 3298 LD E,(HL) + 000016B4 23 3299 INC HL + 000016B5 56 3300 LD D,(HL) + 000016B6 18 02 3301 JR ?0524 + 000016B8 3302 ?0206: + 000016B8 5F 3303 LD E,A + 000016B9 57 3304 LD D,A + 000016BA 3305 ?0524: + 000016BA 3306 ?0207: + 000016BA CD 21 12 3307 CALL LWRD ?0662 + 000016BD DD 75 F2 3308 LD (IX-14),L + 000016C0 DD 74 F3 3309 LD (IX-13),H + 000016C3 FD E5 3310 PUSH IY + 000016C5 C1 3311 POP BC + 000016C6 71 3312 LD (HL),C + 000016C7 23 3313 INC HL + 000016C8 70 3314 LD (HL),B + 000016C9 21 04 00 3315 LD HL,4 + 000016CC DD 4E F2 3316 LD C,(IX-14) + 000016CF DD 46 F3 3317 LD B,(IX-13) + 000016D2 09 3318 ADD HL,BC + 000016D3 DD 5E FC 3319 LD E,(IX-4) + 000016D6 73 3320 LD (HL),E + 000016D7 DD 56 FD 3321 LD D,(IX-3) + 000016DA 23 3322 INC HL + 000016DB 72 3323 LD (HL),D + 000016DC 69 3324 LD L,C + 000016DD 60 3325 LD H,B + 000016DE 23 3326 INC HL + 000016DF 23 3327 INC HL + 000016E0 AF 3328 XOR A + 000016E1 77 3329 LD (HL),A + 000016E2 23 3330 INC HL + 000016E3 77 3331 LD (HL),A + 000016E4 DD 77 F6 3332 LD (IX-10),A + 000016E7 DD 77 F7 3333 LD (IX-9),A + 000016EA DD 77 F4 3334 LD (IX-12),A + 000016ED DD 77 F5 3335 LD (IX-11),A + 000016F0 3336 ?0209: + 000016F0 FD 4E 04 3337 LD C,(IY+4) + 000016F3 FD 46 05 3338 LD B,(IY+5) + 000016F6 DD 6E F4 3339 LD L,(IX-12) + 000016F9 DD 66 F5 3340 LD H,(IX-11) + 000016FC F6 80 3341 OR 128 + 000016FE ED 42 3342 SBC HL,BC + 00001700 E2 04 17 3343 JP PO,?0521 + 00001703 AC 3344 XOR H + 00001704 3345 ?0521: + 00001704 F2 AC 17 3346 JP P,?0208 + 00001707 3347 ?0210: + 00001707 FD 6E 08 3348 LD L,(IY+8) + 0000170A FD 66 09 3349 LD H,(IY+9) + 0000170D E5 3350 PUSH HL + 0000170E 21 01 00 3351 LD HL,1 + 00001711 E5 3352 PUSH HL + 00001712 DD 4E FA 3353 LD C,(IX-6) + 00001715 DD 46 FB 3354 LD B,(IX-5) + 00001718 2E 04 3355 LD L,4 + 0000171A DD 5E F2 3356 LD E,(IX-14) + 0000171D DD 56 F3 3357 LD D,(IX-13) + 00001720 19 3358 ADD HL,DE + 00001721 5E 3359 LD E,(HL) + 00001722 23 3360 INC HL + 00001723 56 3361 LD D,(HL) + 00001724 3E 00 3362 LD A,BYTE3 fread + 00001726 21 00 00 3363 LD HL,LWRD fread + 00001729 CD 00 00 3364 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000172C F1 3365 POP AF + 0000172D F1 3366 POP AF + 0000172E DD 6E FC 3367 LD L,(IX-4) + 00001731 DD 66 FD 3368 LD H,(IX-3) + 00001734 46 3369 LD B,(HL) + 00001735 05 3370 DEC B + 00001736 20 68 3371 JR NZ,?0522 + 00001738 3372 ?0212: + 00001738 DD 4E F2 3373 LD C,(IX-14) + 0000173B DD 46 F3 3374 LD B,(IX-13) + 0000173E CD 37 12 3375 CALL LWRD ?0663 + 00001741 20 5D 3376 JR NZ,?0522 + 00001743 3377 ?0214: + 00001743 DD 6E FC 3378 LD L,(IX-4) + 00001746 DD 66 FD 3379 LD H,(IX-3) + 00001749 77 3380 LD (HL),A + 0000174A 21 01 00 3381 LD HL,1 + 0000174D E5 3382 PUSH HL + 0000174E DD 4E FA 3383 LD C,(IX-6) + 00001751 DD 46 FB 3384 LD B,(IX-5) + 00001754 2B 3385 DEC HL + 00001755 ED 42 3386 SBC HL,BC + 00001757 7C 3387 LD A,H + 00001758 07 3388 RLCA + 00001759 9F 3389 SBC A,A + 0000175A 4F 3390 LD C,A + 0000175B 41 3391 LD B,C + 0000175C C5 3392 PUSH BC + 0000175D E5 3393 PUSH HL + 0000175E CD 54 16 3394 CALL LWRD ?0665 + 00001761 F1 3395 POP AF + 00001762 F1 3396 POP AF + 00001763 F1 3397 POP AF + 00001764 FD 6E 08 3398 LD L,(IY+8) + 00001767 FD 66 09 3399 LD H,(IY+9) + 0000176A E5 3400 PUSH HL + 0000176B 21 01 00 3401 LD HL,1 + 0000176E E5 3402 PUSH HL + 0000176F DD 4E FA 3403 LD C,(IX-6) + 00001772 DD 46 FB 3404 LD B,(IX-5) + 00001775 2E 04 3405 LD L,4 + 00001777 DD 5E F2 3406 LD E,(IX-14) + 0000177A DD 56 F3 3407 LD D,(IX-13) + 0000177D 19 3408 ADD HL,DE + 0000177E 5E 3409 LD E,(HL) + 0000177F 23 3410 INC HL + 00001780 56 3411 LD D,(HL) + 00001781 3E 00 3412 LD A,BYTE3 fwrite + 00001783 21 00 00 3413 LD HL,LWRD fwrite + 00001786 CD 00 00 3414 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001789 F1 3415 POP AF + 0000178A F1 3416 POP AF + 0000178B 21 01 00 3417 LD HL,1 + 0000178E E5 3418 PUSH HL + 0000178F 2B 3419 DEC HL + 00001790 E5 3420 PUSH HL + 00001791 E5 3421 PUSH HL + 00001792 CD 54 16 3422 CALL LWRD ?0665 + 00001795 F1 3423 POP AF + 00001796 F1 3424 POP AF + 00001797 F1 3425 POP AF + 00001798 DD 34 F6 3426 INC (IX-10) + 0000179B 20 03 3427 JR NZ,?0522 + 0000179D DD 34 F7 3428 INC (IX-9) + 000017A0 3429 ?0522: + 000017A0 3430 ?0215: + 000017A0 3431 ?0213: + 000017A0 DD 34 F4 3432 INC (IX-12) + 000017A3 C2 F0 16 3433 JP NZ,?0209 + 000017A6 DD 34 F5 3434 INC (IX-11) + 000017A9 C3 F0 16 3435 JP LWRD ?0209 + 000017AC 3436 ?0208: + 000017AC DD 5E F2 3437 LD E,(IX-14) + 000017AF DD 56 F3 3438 LD D,(IX-13) + 000017B2 3E 25 3439 LD A,BYTE3 dbDeleteRow + 000017B4 21 25 1D 3440 LD HL,LWRD dbDeleteRow + 000017B7 CD 00 00 3441 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000017BA 21 00 00 3442 LD HL,0 + 000017BD E5 3443 PUSH HL + 000017BE E5 3444 PUSH HL + 000017BF 2E 06 3445 LD L,6 + 000017C1 E5 3446 PUSH HL + 000017C2 CD 54 16 3447 CALL LWRD ?0665 + 000017C5 F1 3448 POP AF + 000017C6 F1 3449 POP AF + 000017C7 F1 3450 POP AF + 000017C8 21 04 00 3451 LD HL,4 + 000017CB 39 3452 ADD HL,SP + 000017CC 7E 3453 LD A,(HL) + 000017CD FD 86 06 3454 ADD A,(IY+6) + 000017D0 77 3455 LD (HL),A + 000017D1 23 3456 INC HL + 000017D2 7E 3457 LD A,(HL) + 000017D3 FD 8E 07 3458 ADC A,(IY+7) + 000017D6 77 3459 LD (HL),A + 000017D7 FD 6E 08 3460 LD L,(IY+8) + 000017DA FD 66 09 3461 LD H,(IY+9) + 000017DD E5 3462 PUSH HL + 000017DE 21 01 00 3463 LD HL,1 + 000017E1 E5 3464 PUSH HL + 000017E2 01 02 00 3465 LD BC,2 + 000017E5 2E 08 3466 LD L,8 + 000017E7 39 3467 ADD HL,SP + 000017E8 EB 3468 EX DE,HL + 000017E9 3E 00 3469 LD A,BYTE3 fwrite + 000017EB 21 00 00 3470 LD HL,LWRD fwrite + 000017EE CD 00 00 3471 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000017F1 F1 3472 POP AF + 000017F2 F1 3473 POP AF + 000017F3 DD 5E F8 3474 LD E,(IX-8) + 000017F6 DD 56 F9 3475 LD D,(IX-7) + 000017F9 3E 97 3476 LD A,BYTE3 dbDeleteExpression + 000017FB 21 97 24 3477 LD HL,LWRD dbDeleteExpression + 000017FE CD 00 00 3478 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001801 FD E5 3479 PUSH IY + 00001803 D1 3480 POP DE + 00001804 3E 70 3481 LD A,BYTE3 dbTableClose + 00001806 21 70 0B 3482 LD HL,LWRD dbTableClose + 00001809 CD 00 00 3483 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000180C 21 00 00 3484 LD HL,0 + 0000180F DD F9 3485 LD SP,IX + 00001811 C3 6B 00 3486 JP LWRD ?0614 + 00001814 3487 ?0637: + 00001814 11 14 00 3488 LD DE,20 + 00001817 3E 00 3489 LD A,BYTE3 malloc + 00001819 21 00 00 3490 LD HL,LWRD malloc + 0000181C CD 00 00 3491 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000181F E5 3492 PUSH HL + 00001820 FD E1 3493 POP IY + 00001822 DD 4E FE 3494 LD C,(IX-2) + 00001825 DD 46 FF 3495 LD B,(IX-1) + 00001828 03 3496 INC BC + 00001829 03 3497 INC BC + 0000182A 03 3498 INC BC + 0000182B 0A 3499 LD A,(BC) + 0000182C 6F 3500 LD L,A + 0000182D 03 3501 INC BC + 0000182E 0A 3502 LD A,(BC) + 0000182F 67 3503 LD H,A + 00001830 01 04 00 3504 LD BC,4 + 00001833 09 3505 ADD HL,BC + 00001834 4E 3506 LD C,(HL) + 00001835 23 3507 INC HL + 00001836 46 3508 LD B,(HL) + 00001837 21 0B 00 3509 LD HL,11 + 0000183A FD E5 3510 PUSH IY + 0000183C D1 3511 POP DE + 0000183D 19 3512 ADD HL,DE + 0000183E EB 3513 EX DE,HL + 0000183F 3E 00 3514 LD A,BYTE3 strcpy + 00001841 21 00 00 3515 LD HL,LWRD strcpy + 00001844 CD 00 00 3516 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001847 FD E5 3517 PUSH IY + 00001849 D1 3518 POP DE + 0000184A 3E A0 3519 LD A,BYTE3 dbTableOpen + 0000184C 21 A0 08 3520 LD HL,LWRD dbTableOpen + 0000184F CD 00 00 3521 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001852 FD E5 3522 PUSH IY + 00001854 D1 3523 POP DE + 00001855 3E 32 3524 LD A,BYTE3 dbRecordSize + 00001857 21 32 0C 3525 LD HL,LWRD dbRecordSize + 0000185A CD 00 00 3526 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000185D C9 3527 RET + 0000185E 3528 dbExecuteUpdate: + 0000185E C5 3529 PUSH BC + 0000185F FD E5 3530 PUSH IY + 00001861 DD E5 3531 PUSH IX + 00001863 DD 21 00 00 3532 LD IX,0 + 00001867 DD 39 3533 ADD IX,SP + 00001869 D5 3534 PUSH DE + 0000186A 21 E8 FF 3535 LD HL,65512 + 0000186D 39 3536 ADD HL,SP + 0000186E F9 3537 LD SP,HL + 0000186F CD 14 18 3538 CALL LWRD ?0637 + 00001872 DD 75 F2 3539 LD (IX-14),L + 00001875 DD 74 F3 3540 LD (IX-13),H + 00001878 CD 8E 04 3541 CALL LWRD ?0642 + 0000187B DD 75 FA 3542 LD (IX-6),L + 0000187E DD 74 FB 3543 LD (IX-5),H + 00001881 AF 3544 XOR A + 00001882 DD 77 EE 3545 LD (IX-18),A + 00001885 DD 77 EF 3546 LD (IX-17),A + 00001888 21 05 00 3547 LD HL,5 + 0000188B DD 4E FE 3548 LD C,(IX-2) + 0000188E DD 46 FF 3549 LD B,(IX-1) + 00001891 09 3550 ADD HL,BC + 00001892 7E 3551 LD A,(HL) + 00001893 23 3552 INC HL + 00001894 B6 3553 OR (HL) + 00001895 21 08 00 3554 LD HL,8 + 00001898 39 3555 ADD HL,SP + 00001899 4D 3556 LD C,L + 0000189A 44 3557 LD B,H + 0000189B 28 17 3558 JR Z,?0217 + 0000189D 3559 ?0216: + 0000189D 21 05 00 3560 LD HL,5 + 000018A0 DD 5E FE 3561 LD E,(IX-2) + 000018A3 DD 56 FF 3562 LD D,(IX-1) + 000018A6 19 3563 ADD HL,DE + 000018A7 56 3564 LD D,(HL) + 000018A8 23 3565 INC HL + 000018A9 66 3566 LD H,(HL) + 000018AA 6A 3567 LD L,D + 000018AB 11 04 00 3568 LD DE,4 + 000018AE 19 3569 ADD HL,DE + 000018AF 5E 3570 LD E,(HL) + 000018B0 23 3571 INC HL + 000018B1 56 3572 LD D,(HL) + 000018B2 18 02 3573 JR ?0535 + 000018B4 3574 ?0217: + 000018B4 5F 3575 LD E,A + 000018B5 57 3576 LD D,A + 000018B6 3577 ?0535: + 000018B6 3578 ?0218: + 000018B6 CD 21 12 3579 CALL LWRD ?0662 + 000018B9 DD 75 E8 3580 LD (IX-24),L + 000018BC DD 74 E9 3581 LD (IX-23),H + 000018BF FD E5 3582 PUSH IY + 000018C1 C1 3583 POP BC + 000018C2 71 3584 LD (HL),C + 000018C3 23 3585 INC HL + 000018C4 70 3586 LD (HL),B + 000018C5 21 04 00 3587 LD HL,4 + 000018C8 DD 4E E8 3588 LD C,(IX-24) + 000018CB DD 46 E9 3589 LD B,(IX-23) + 000018CE 09 3590 ADD HL,BC + 000018CF DD 5E FA 3591 LD E,(IX-6) + 000018D2 73 3592 LD (HL),E + 000018D3 DD 56 FB 3593 LD D,(IX-5) + 000018D6 23 3594 INC HL + 000018D7 72 3595 LD (HL),D + 000018D8 69 3596 LD L,C + 000018D9 60 3597 LD H,B + 000018DA 23 3598 INC HL + 000018DB 23 3599 INC HL + 000018DC AF 3600 XOR A + 000018DD 77 3601 LD (HL),A + 000018DE 23 3602 INC HL + 000018DF 77 3603 LD (HL),A + 000018E0 CD 0F 12 3604 CALL LWRD ?0647 + 000018E3 DD 75 F0 3605 LD (IX-16),L + 000018E6 DD 74 F1 3606 LD (IX-15),H + 000018E9 CD 8D 04 3607 CALL LWRD ?0644 + 000018EC DD 75 EC 3608 LD (IX-20),L + 000018EF DD 74 ED 3609 LD (IX-19),H + 000018F2 DD 6E FE 3610 LD L,(IX-2) + 000018F5 DD 66 FF 3611 LD H,(IX-1) + 000018F8 23 3612 INC HL + 000018F9 46 3613 LD B,(HL) + 000018FA DD 70 EA 3614 LD (IX-22),B + 000018FD 23 3615 INC HL + 000018FE 66 3616 LD H,(HL) + 000018FF DD 74 EB 3617 LD (IX-21),H + 00001902 AF 3618 XOR A + 00001903 DD 77 E6 3619 LD (IX-26),A + 00001906 DD 77 E7 3620 LD (IX-25),A + 00001909 3621 ?0220: + 00001909 DD 4E F0 3622 LD C,(IX-16) + 0000190C DD 46 F1 3623 LD B,(IX-15) + 0000190F DD 6E E6 3624 LD L,(IX-26) + 00001912 DD 66 E7 3625 LD H,(IX-25) + 00001915 F6 80 3626 OR 128 + 00001917 ED 42 3627 SBC HL,BC + 00001919 E2 1D 19 3628 JP PO,?0525 + 0000191C AC 3629 XOR H + 0000191D 3630 ?0525: + 0000191D F2 8E 19 3631 JP P,?0219 + 00001920 3632 ?0221: + 00001920 0E 00 3633 LD C,0 + 00001922 C5 3634 PUSH BC + 00001923 0E 3D 3635 LD C,61 + 00001925 21 04 00 3636 LD HL,4 + 00001928 DD 5E EA 3637 LD E,(IX-22) + 0000192B DD 56 EB 3638 LD D,(IX-21) + 0000192E 19 3639 ADD HL,DE + 0000192F 5E 3640 LD E,(HL) + 00001930 23 3641 INC HL + 00001931 56 3642 LD D,(HL) + 00001932 3E 9F 3643 LD A,BYTE3 dbReplaceChar + 00001934 21 9F 02 3644 LD HL,LWRD dbReplaceChar + 00001937 CD 00 00 3645 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000193A F1 3646 POP AF + 0000193B DD 75 FC 3647 LD (IX-4),L + 0000193E DD 74 FD 3648 LD (IX-3),H + 00001941 AF 3649 XOR A + 00001942 DD 77 F4 3650 LD (IX-12),A + 00001945 DD 77 F5 3651 LD (IX-11),A + 00001948 DD 6E E6 3652 LD L,(IX-26) + 0000194B DD 66 E7 3653 LD H,(IX-25) + 0000194E 29 3654 ADD HL,HL + 0000194F DD 4E EC 3655 LD C,(IX-20) + 00001952 DD 46 ED 3656 LD B,(IX-19) + 00001955 09 3657 ADD HL,BC + 00001956 E5 3658 PUSH HL + 00001957 21 10 00 3659 LD HL,16 + 0000195A 39 3660 ADD HL,SP + 0000195B 4D 3661 LD C,L + 0000195C 44 3662 LD B,H + 0000195D DD 5E FC 3663 LD E,(IX-4) + 00001960 DD 56 FD 3664 LD D,(IX-3) + 00001963 13 3665 INC DE + 00001964 3E 5D 3666 LD A,BYTE3 dbParseExpression + 00001966 21 5D 20 3667 LD HL,LWRD dbParseExpression + 00001969 CD 00 00 3668 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000196C 4D 3669 LD C,L + 0000196D 44 3670 LD B,H + 0000196E E1 3671 POP HL + 0000196F 71 3672 LD (HL),C + 00001970 23 3673 INC HL + 00001971 70 3674 LD (HL),B + 00001972 DD 6E EA 3675 LD L,(IX-22) + 00001975 DD 66 EB 3676 LD H,(IX-21) + 00001978 23 3677 INC HL + 00001979 23 3678 INC HL + 0000197A 46 3679 LD B,(HL) + 0000197B DD 70 EA 3680 LD (IX-22),B + 0000197E 23 3681 INC HL + 0000197F 66 3682 LD H,(HL) + 00001980 DD 74 EB 3683 LD (IX-21),H + 00001983 DD 34 E6 3684 INC (IX-26) + 00001986 20 81 3685 JR NZ,?0220 + 00001988 DD 34 E7 3686 INC (IX-25) + 0000198B C3 09 19 3687 JP LWRD ?0220 + 0000198E 3688 ?0219: + 0000198E AF 3689 XOR A + 0000198F DD 77 EE 3690 LD (IX-18),A + 00001992 DD 77 EF 3691 LD (IX-17),A + 00001995 3692 ?0224: + 00001995 FD 4E 04 3693 LD C,(IY+4) + 00001998 FD 46 05 3694 LD B,(IY+5) + 0000199B DD 6E EE 3695 LD L,(IX-18) + 0000199E DD 66 EF 3696 LD H,(IX-17) + 000019A1 F6 80 3697 OR 128 + 000019A3 ED 42 3698 SBC HL,BC + 000019A5 E2 A9 19 3699 JP PO,?0527 + 000019A8 AC 3700 XOR H + 000019A9 3701 ?0527: + 000019A9 F2 B3 1B 3702 JP P,?0223 + 000019AC 3703 ?0225: + 000019AC FD 6E 08 3704 LD L,(IY+8) + 000019AF FD 66 09 3705 LD H,(IY+9) + 000019B2 E5 3706 PUSH HL + 000019B3 21 01 00 3707 LD HL,1 + 000019B6 E5 3708 PUSH HL + 000019B7 DD 4E F2 3709 LD C,(IX-14) + 000019BA DD 46 F3 3710 LD B,(IX-13) + 000019BD 2E 04 3711 LD L,4 + 000019BF DD 5E E8 3712 LD E,(IX-24) + 000019C2 DD 56 E9 3713 LD D,(IX-23) + 000019C5 19 3714 ADD HL,DE + 000019C6 5E 3715 LD E,(HL) + 000019C7 23 3716 INC HL + 000019C8 56 3717 LD D,(HL) + 000019C9 3E 00 3718 LD A,BYTE3 fread + 000019CB 21 00 00 3719 LD HL,LWRD fread + 000019CE CD 00 00 3720 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000019D1 F1 3721 POP AF + 000019D2 F1 3722 POP AF + 000019D3 DD 6E FA 3723 LD L,(IX-6) + 000019D6 DD 66 FB 3724 LD H,(IX-5) + 000019D9 46 3725 LD B,(HL) + 000019DA 05 3726 DEC B + 000019DB C2 A7 1B 3727 JP NZ,?0230 + 000019DE 3728 ?0227: + 000019DE DD 4E E8 3729 LD C,(IX-24) + 000019E1 DD 46 E9 3730 LD B,(IX-23) + 000019E4 CD 37 12 3731 CALL LWRD ?0663 + 000019E7 C2 A7 1B 3732 JP NZ,?0230 + 000019EA 3733 ?0229: + 000019EA 21 01 00 3734 LD HL,1 + 000019ED E5 3735 PUSH HL + 000019EE DD 4E F2 3736 LD C,(IX-14) + 000019F1 DD 46 F3 3737 LD B,(IX-13) + 000019F4 2B 3738 DEC HL + 000019F5 ED 42 3739 SBC HL,BC + 000019F7 7C 3740 LD A,H + 000019F8 07 3741 RLCA + 000019F9 9F 3742 SBC A,A + 000019FA 4F 3743 LD C,A + 000019FB 41 3744 LD B,C + 000019FC C5 3745 PUSH BC + 000019FD E5 3746 PUSH HL + 000019FE CD 54 16 3747 CALL LWRD ?0665 + 00001A01 F1 3748 POP AF + 00001A02 F1 3749 POP AF + 00001A03 F1 3750 POP AF + 00001A04 AF 3751 XOR A + 00001A05 DD 77 E6 3752 LD (IX-26),A + 00001A08 DD 77 E7 3753 LD (IX-25),A + 00001A0B 3754 ?0232: + 00001A0B DD 4E F0 3755 LD C,(IX-16) + 00001A0E DD 46 F1 3756 LD B,(IX-15) + 00001A11 DD 6E E6 3757 LD L,(IX-26) + 00001A14 DD 66 E7 3758 LD H,(IX-25) + 00001A17 F6 80 3759 OR 128 + 00001A19 ED 42 3760 SBC HL,BC + 00001A1B E2 1F 1A 3761 JP PO,?0528 + 00001A1E AC 3762 XOR H + 00001A1F 3763 ?0528: + 00001A1F F2 4B 1A 3764 JP P,?0231 + 00001A22 3765 ?0233: + 00001A22 DD 4E E8 3766 LD C,(IX-24) + 00001A25 DD 46 E9 3767 LD B,(IX-23) + 00001A28 DD 6E E6 3768 LD L,(IX-26) + 00001A2B DD 66 E7 3769 LD H,(IX-25) + 00001A2E 29 3770 ADD HL,HL + 00001A2F DD 5E EC 3771 LD E,(IX-20) + 00001A32 DD 56 ED 3772 LD D,(IX-19) + 00001A35 19 3773 ADD HL,DE + 00001A36 5E 3774 LD E,(HL) + 00001A37 23 3775 INC HL + 00001A38 56 3776 LD D,(HL) + 00001A39 3E C0 3777 LD A,BYTE3 dbEvaluateExpression + 00001A3B 21 C0 24 3778 LD HL,LWRD dbEvaluateExpression + 00001A3E CD 00 00 3779 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001A41 DD 34 E6 3780 INC (IX-26) + 00001A44 20 C5 3781 JR NZ,?0232 + 00001A46 DD 34 E7 3782 INC (IX-25) + 00001A49 18 C0 3783 JR ?0232 + 00001A4B 3784 ?0231: + 00001A4B DD 6E FE 3785 LD L,(IX-2) + 00001A4E DD 66 FF 3786 LD H,(IX-1) + 00001A51 23 3787 INC HL + 00001A52 46 3788 LD B,(HL) + 00001A53 DD 70 EA 3789 LD (IX-22),B + 00001A56 23 3790 INC HL + 00001A57 66 3791 LD H,(HL) + 00001A58 DD 74 EB 3792 LD (IX-21),H + 00001A5B AF 3793 XOR A + 00001A5C DD 77 E6 3794 LD (IX-26),A + 00001A5F DD 77 E7 3795 LD (IX-25),A + 00001A62 3796 ?0236: + 00001A62 DD 4E F0 3797 LD C,(IX-16) + 00001A65 DD 46 F1 3798 LD B,(IX-15) + 00001A68 DD 6E E6 3799 LD L,(IX-26) + 00001A6B DD 66 E7 3800 LD H,(IX-25) + 00001A6E F6 80 3801 OR 128 + 00001A70 ED 42 3802 SBC HL,BC + 00001A72 E2 76 1A 3803 JP PO,?0530 + 00001A75 AC 3804 XOR H + 00001A76 3805 ?0530: + 00001A76 F2 73 1B 3806 JP P,?0235 + 00001A79 3807 ?0237: + 00001A79 21 04 00 3808 LD HL,4 + 00001A7C DD 4E EA 3809 LD C,(IX-22) + 00001A7F DD 46 EB 3810 LD B,(IX-21) + 00001A82 09 3811 ADD HL,BC + 00001A83 4E 3812 LD C,(HL) + 00001A84 23 3813 INC HL + 00001A85 46 3814 LD B,(HL) + 00001A86 FD E5 3815 PUSH IY + 00001A88 D1 3816 POP DE + 00001A89 3E 4E 3817 LD A,BYTE3 dbFieldSearch + 00001A8B 21 4E 0C 3818 LD HL,LWRD dbFieldSearch + 00001A8E CD 00 00 3819 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001A91 DD 75 F6 3820 LD (IX-10),L + 00001A94 DD 74 F7 3821 LD (IX-9),H + 00001A97 4D 3822 LD C,L + 00001A98 44 3823 LD B,H + 00001A99 FD E5 3824 PUSH IY + 00001A9B D1 3825 POP DE + 00001A9C 3E DD 3826 LD A,BYTE3 dbFieldOffset + 00001A9E 21 DD 0B 3827 LD HL,LWRD dbFieldOffset + 00001AA1 CD 00 00 3828 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001AA4 DD 75 F4 3829 LD (IX-12),L + 00001AA7 DD 74 F5 3830 LD (IX-11),H + 00001AAA FD 6E 02 3831 LD L,(IY+2) + 00001AAD FD 66 03 3832 LD H,(IY+3) + 00001AB0 E5 3833 PUSH HL + 00001AB1 DD 6E F6 3834 LD L,(IX-10) + 00001AB4 DD 66 F7 3835 LD H,(IX-9) + 00001AB7 29 3836 ADD HL,HL + 00001AB8 29 3837 ADD HL,HL + 00001AB9 4D 3838 LD C,L + 00001ABA 44 3839 LD B,H + 00001ABB 29 3840 ADD HL,HL + 00001ABC 09 3841 ADD HL,BC + 00001ABD 4D 3842 LD C,L + 00001ABE 44 3843 LD B,H + 00001ABF E1 3844 POP HL + 00001AC0 09 3845 ADD HL,BC + 00001AC1 01 09 00 3846 LD BC,9 + 00001AC4 09 3847 ADD HL,BC + 00001AC5 7E 3848 LD A,(HL) + 00001AC6 FE 53 3849 CP 83 + 00001AC8 20 34 3850 JR NZ,?0241 + 00001ACA 3851 ?0240: + 00001ACA FD 6E 02 3852 LD L,(IY+2) + 00001ACD FD 66 03 3853 LD H,(IY+3) + 00001AD0 E5 3854 PUSH HL + 00001AD1 DD 6E F6 3855 LD L,(IX-10) + 00001AD4 DD 66 F7 3856 LD H,(IX-9) + 00001AD7 29 3857 ADD HL,HL + 00001AD8 29 3858 ADD HL,HL + 00001AD9 4D 3859 LD C,L + 00001ADA 44 3860 LD B,H + 00001ADB 29 3861 ADD HL,HL + 00001ADC 09 3862 ADD HL,BC + 00001ADD 4D 3863 LD C,L + 00001ADE 44 3864 LD B,H + 00001ADF E1 3865 POP HL + 00001AE0 09 3866 ADD HL,BC + 00001AE1 01 0A 00 3867 LD BC,10 + 00001AE4 09 3868 ADD HL,BC + 00001AE5 4E 3869 LD C,(HL) + 00001AE6 C5 3870 PUSH BC + 00001AE7 DD 6E E6 3871 LD L,(IX-26) + 00001AEA DD 66 E7 3872 LD H,(IX-25) + 00001AED 29 3873 ADD HL,HL + 00001AEE DD 4E EC 3874 LD C,(IX-20) + 00001AF1 DD 46 ED 3875 LD B,(IX-19) + 00001AF4 09 3876 ADD HL,BC + 00001AF5 46 3877 LD B,(HL) + 00001AF6 23 3878 INC HL + 00001AF7 66 3879 LD H,(HL) + 00001AF8 68 3880 LD L,B + 00001AF9 01 28 00 3881 LD BC,40 + 00001AFC 18 36 3882 JR ?0536 + 00001AFE 3883 ?0241: + 00001AFE FE 49 3884 CP 73 + 00001B00 20 54 3885 JR NZ,?0239 + 00001B02 FD 6E 02 3886 LD L,(IY+2) + 00001B05 FD 66 03 3887 LD H,(IY+3) + 00001B08 E5 3888 PUSH HL + 00001B09 DD 6E F6 3889 LD L,(IX-10) + 00001B0C DD 66 F7 3890 LD H,(IX-9) + 00001B0F 29 3891 ADD HL,HL + 00001B10 29 3892 ADD HL,HL + 00001B11 4D 3893 LD C,L + 00001B12 44 3894 LD B,H + 00001B13 29 3895 ADD HL,HL + 00001B14 09 3896 ADD HL,BC + 00001B15 4D 3897 LD C,L + 00001B16 44 3898 LD B,H + 00001B17 E1 3899 POP HL + 00001B18 09 3900 ADD HL,BC + 00001B19 01 0A 00 3901 LD BC,10 + 00001B1C 09 3902 ADD HL,BC + 00001B1D 4E 3903 LD C,(HL) + 00001B1E C5 3904 PUSH BC + 00001B1F DD 6E E6 3905 LD L,(IX-26) + 00001B22 DD 66 E7 3906 LD H,(IX-25) + 00001B25 29 3907 ADD HL,HL + 00001B26 DD 4E EC 3908 LD C,(IX-20) + 00001B29 DD 46 ED 3909 LD B,(IX-19) + 00001B2C 09 3910 ADD HL,BC + 00001B2D 46 3911 LD B,(HL) + 00001B2E 23 3912 INC HL + 00001B2F 66 3913 LD H,(HL) + 00001B30 68 3914 LD L,B + 00001B31 01 24 00 3915 LD BC,36 + 00001B34 3916 ?0536: + 00001B34 09 3917 ADD HL,BC + 00001B35 4D 3918 LD C,L + 00001B36 44 3919 LD B,H + 00001B37 21 04 00 3920 LD HL,4 + 00001B3A DD 5E E8 3921 LD E,(IX-24) + 00001B3D DD 56 E9 3922 LD D,(IX-23) + 00001B40 19 3923 ADD HL,DE + 00001B41 56 3924 LD D,(HL) + 00001B42 23 3925 INC HL + 00001B43 66 3926 LD H,(HL) + 00001B44 6A 3927 LD L,D + 00001B45 DD 5E F4 3928 LD E,(IX-12) + 00001B48 DD 56 F5 3929 LD D,(IX-11) + 00001B4B 19 3930 ADD HL,DE + 00001B4C EB 3931 EX DE,HL + 00001B4D 3E 00 3932 LD A,BYTE3 memcpy + 00001B4F 21 00 00 3933 LD HL,LWRD memcpy + 00001B52 CD 00 00 3934 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001B55 F1 3935 POP AF + 00001B56 3936 ?0239: + 00001B56 DD 6E EA 3937 LD L,(IX-22) + 00001B59 DD 66 EB 3938 LD H,(IX-21) + 00001B5C 23 3939 INC HL + 00001B5D 23 3940 INC HL + 00001B5E 46 3941 LD B,(HL) + 00001B5F DD 70 EA 3942 LD (IX-22),B + 00001B62 23 3943 INC HL + 00001B63 66 3944 LD H,(HL) + 00001B64 DD 74 EB 3945 LD (IX-21),H + 00001B67 DD 34 E6 3946 INC (IX-26) + 00001B6A C2 62 1A 3947 JP NZ,?0236 + 00001B6D DD 34 E7 3948 INC (IX-25) + 00001B70 C3 62 1A 3949 JP LWRD ?0236 + 00001B73 3950 ?0235: + 00001B73 FD 6E 08 3951 LD L,(IY+8) + 00001B76 FD 66 09 3952 LD H,(IY+9) + 00001B79 E5 3953 PUSH HL + 00001B7A 21 01 00 3954 LD HL,1 + 00001B7D E5 3955 PUSH HL + 00001B7E DD 4E F2 3956 LD C,(IX-14) + 00001B81 DD 46 F3 3957 LD B,(IX-13) + 00001B84 2E 04 3958 LD L,4 + 00001B86 DD 5E E8 3959 LD E,(IX-24) + 00001B89 DD 56 E9 3960 LD D,(IX-23) + 00001B8C 19 3961 ADD HL,DE + 00001B8D 5E 3962 LD E,(HL) + 00001B8E 23 3963 INC HL + 00001B8F 56 3964 LD D,(HL) + 00001B90 3E 00 3965 LD A,BYTE3 fwrite + 00001B92 21 00 00 3966 LD HL,LWRD fwrite + 00001B95 CD 00 00 3967 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001B98 F1 3968 POP AF + 00001B99 F1 3969 POP AF + 00001B9A 21 01 00 3970 LD HL,1 + 00001B9D E5 3971 PUSH HL + 00001B9E 2B 3972 DEC HL + 00001B9F E5 3973 PUSH HL + 00001BA0 E5 3974 PUSH HL + 00001BA1 CD 54 16 3975 CALL LWRD ?0665 + 00001BA4 F1 3976 POP AF + 00001BA5 F1 3977 POP AF + 00001BA6 F1 3978 POP AF + 00001BA7 3979 ?0230: + 00001BA7 3980 ?0228: + 00001BA7 DD 34 EE 3981 INC (IX-18) + 00001BAA C2 95 19 3982 JP NZ,?0224 + 00001BAD DD 34 EF 3983 INC (IX-17) + 00001BB0 C3 95 19 3984 JP LWRD ?0224 + 00001BB3 3985 ?0223: + 00001BB3 DD 5E E8 3986 LD E,(IX-24) + 00001BB6 DD 56 E9 3987 LD D,(IX-23) + 00001BB9 3E 25 3988 LD A,BYTE3 dbDeleteRow + 00001BBB 21 25 1D 3989 LD HL,LWRD dbDeleteRow + 00001BBE CD 00 00 3990 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001BC1 AF 3991 XOR A + 00001BC2 DD 77 E6 3992 LD (IX-26),A + 00001BC5 DD 77 E7 3993 LD (IX-25),A + 00001BC8 3994 ?0243: + 00001BC8 DD 4E F0 3995 LD C,(IX-16) + 00001BCB DD 46 F1 3996 LD B,(IX-15) + 00001BCE DD 6E E6 3997 LD L,(IX-26) + 00001BD1 DD 66 E7 3998 LD H,(IX-25) + 00001BD4 F6 80 3999 OR 128 + 00001BD6 ED 42 4000 SBC HL,BC + 00001BD8 E2 DC 1B 4001 JP PO,?0533 + 00001BDB AC 4002 XOR H + 00001BDC 4003 ?0533: + 00001BDC F2 02 1C 4004 JP P,?0242 + 00001BDF 4005 ?0244: + 00001BDF DD 6E E6 4006 LD L,(IX-26) + 00001BE2 DD 66 E7 4007 LD H,(IX-25) + 00001BE5 29 4008 ADD HL,HL + 00001BE6 DD 4E EC 4009 LD C,(IX-20) + 00001BE9 DD 46 ED 4010 LD B,(IX-19) + 00001BEC 09 4011 ADD HL,BC + 00001BED 5E 4012 LD E,(HL) + 00001BEE 23 4013 INC HL + 00001BEF 56 4014 LD D,(HL) + 00001BF0 3E 97 4015 LD A,BYTE3 dbDeleteExpression + 00001BF2 21 97 24 4016 LD HL,LWRD dbDeleteExpression + 00001BF5 CD 00 00 4017 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001BF8 DD 34 E6 4018 INC (IX-26) + 00001BFB 20 CB 4019 JR NZ,?0243 + 00001BFD DD 34 E7 4020 INC (IX-25) + 00001C00 18 C6 4021 JR ?0243 + 00001C02 4022 ?0242: + 00001C02 DD 5E EC 4023 LD E,(IX-20) + 00001C05 DD 56 ED 4024 LD D,(IX-19) + 00001C08 CD 3B 00 4025 CALL LWRD ?0639 + 00001C0B FD E5 4026 PUSH IY + 00001C0D D1 4027 POP DE + 00001C0E 3E 70 4028 LD A,BYTE3 dbTableClose + 00001C10 21 70 0B 4029 LD HL,LWRD dbTableClose + 00001C13 CD 00 00 4030 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001C16 21 00 00 4031 LD HL,0 + 00001C19 DD F9 4032 LD SP,IX + 00001C1B C3 6B 00 4033 JP LWRD ?0614 + 00001C1E 4034 dbExecuteStatement: + 00001C1E FD E5 4035 PUSH IY + 00001C20 DD E5 4036 PUSH IX + 00001C22 D5 4037 PUSH DE + 00001C23 FD 21 00 00 4038 LD IY,0 + 00001C27 3E B5 4039 LD A,BYTE3 dbParseStatement + 00001C29 21 B5 04 4040 LD HL,LWRD dbParseStatement + 00001C2C CD 00 00 4041 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001C2F E5 4042 PUSH HL + 00001C30 DD E1 4043 POP IX + 00001C32 7D 4044 LD A,L + 00001C33 B4 4045 OR H + 00001C34 20 04 4046 JR NZ,?0247 + 00001C36 4047 ?0246: + 00001C36 6F 4048 LD L,A + 00001C37 67 4049 LD H,A + 00001C38 18 4D 4050 JR ?0253 + 00001C3A 4051 ?0247: + 00001C3A DD 7E 00 4052 LD A,(IX+0) + 00001C3D FE 73 4053 CP 115 + 00001C3F 20 0A 4054 JR NZ,?0250 + 00001C41 4055 ?0249: + 00001C41 DD E5 4056 PUSH IX + 00001C43 D1 4057 POP DE + 00001C44 3E A4 4058 LD A,BYTE3 dbExecuteQuery + 00001C46 21 A4 0C 4059 LD HL,LWRD dbExecuteQuery + 00001C49 18 28 4060 JR ?0545 + 00001C4B 4061 ?0250: + 00001C4B FE 69 4062 CP 105 + 00001C4D 20 0A 4063 JR NZ,?0251 + 00001C4F DD E5 4064 PUSH IX + 00001C51 D1 4065 POP DE + 00001C52 3E 59 4066 LD A,BYTE3 dbExecuteInsert + 00001C54 21 59 12 4067 LD HL,LWRD dbExecuteInsert + 00001C57 18 1A 4068 JR ?0545 + 00001C59 4069 ?0251: + 00001C59 FE 64 4070 CP 100 + 00001C5B 20 0A 4071 JR NZ,?0252 + 00001C5D DD E5 4072 PUSH IX + 00001C5F D1 4073 POP DE + 00001C60 3E 62 4074 LD A,BYTE3 dbExecuteDelete + 00001C62 21 62 16 4075 LD HL,LWRD dbExecuteDelete + 00001C65 18 0C 4076 JR ?0545 + 00001C67 4077 ?0252: + 00001C67 FE 75 4078 CP 117 + 00001C69 20 0E 4079 JR NZ,?0248 + 00001C6B DD E5 4080 PUSH IX + 00001C6D D1 4081 POP DE + 00001C6E 3E 5E 4082 LD A,BYTE3 dbExecuteUpdate + 00001C70 21 5E 18 4083 LD HL,LWRD dbExecuteUpdate + 00001C73 4084 ?0545: + 00001C73 CD 00 00 4085 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001C76 E5 4086 PUSH HL + 00001C77 FD E1 4087 POP IY + 00001C79 4088 ?0248: + 00001C79 DD E5 4089 PUSH IX + 00001C7B D1 4090 POP DE + 00001C7C 3E 8E 4091 LD A,BYTE3 dbStatementClose + 00001C7E 21 8E 0B 4092 LD HL,LWRD dbStatementClose + 00001C81 CD 00 00 4093 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001C84 FD E5 4094 PUSH IY + 00001C86 E1 4095 POP HL + 00001C87 4096 ?0253: + 00001C87 C3 E1 02 4097 JP LWRD ?0626 + 00001C8A 4098 dbNextRow: + 00001C8A FD E5 4099 PUSH IY + 00001C8C DD E5 4100 PUSH IX + 00001C8E F5 4101 PUSH AF + 00001C8F C5 4102 PUSH BC + 00001C90 DD E1 4103 POP IX + 00001C92 D5 4104 PUSH DE + 00001C93 FD E1 4105 POP IY + 00001C95 21 00 00 4106 LD HL,0 + 00001C98 39 4107 ADD HL,SP + 00001C99 E5 4108 PUSH HL + 00001C9A 3E 32 4109 LD A,BYTE3 dbRecordSize + 00001C9C 21 32 0C 4110 LD HL,LWRD dbRecordSize + 00001C9F CD 00 00 4111 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001CA2 EB 4112 EX DE,HL + 00001CA3 E1 4113 POP HL + 00001CA4 73 4114 LD (HL),E + 00001CA5 23 4115 INC HL + 00001CA6 72 4116 LD (HL),D + 00001CA7 21 04 00 4117 LD HL,4 + 00001CAA 09 4118 ADD HL,BC + 00001CAB 7E 4119 LD A,(HL) + 00001CAC 23 4120 INC HL + 00001CAD B6 4121 OR (HL) + 00001CAE 20 09 4122 JR NZ,?0255 + 00001CB0 4123 ?0254: + 00001CB0 CD 8F 04 4124 CALL LWRD ?0641 + 00001CB3 DD 75 04 4125 LD (IX+4),L + 00001CB6 DD 74 05 4126 LD (IX+5),H + 00001CB9 4127 ?0255: + 00001CB9 FD 4E 04 4128 LD C,(IY+4) + 00001CBC FD 46 05 4129 LD B,(IY+5) + 00001CBF FD 6E 06 4130 LD L,(IY+6) + 00001CC2 FD 66 07 4131 LD H,(IY+7) + 00001CC5 F6 80 4132 OR 128 + 00001CC7 ED 42 4133 SBC HL,BC + 00001CC9 E2 CD 1C 4134 JP PO,?0547 + 00001CCC AC 4135 XOR H + 00001CCD 4136 ?0547: + 00001CCD FA E4 1C 4137 JP M,?0257 + 00001CD0 4138 ?0256: + 00001CD0 DD 36 02 FF 4139 LD (IX+2),255 + 00001CD4 DD 36 03 FF 4140 LD (IX+3),255 + 00001CD8 CD 35 00 4141 CALL LWRD ?0638 + 00001CDB AF 4142 XOR A + 00001CDC DD 77 04 4143 LD (IX+4),A + 00001CDF DD 77 05 4144 LD (IX+5),A + 00001CE2 18 3E 4145 JR ?0258 + 00001CE4 4146 ?0257: + 00001CE4 FD 6E 06 4147 LD L,(IY+6) + 00001CE7 FD 66 07 4148 LD H,(IY+7) + 00001CEA 23 4149 INC HL + 00001CEB FD 75 06 4150 LD (IY+6),L + 00001CEE FD 74 07 4151 LD (IY+7),H + 00001CF1 2B 4152 DEC HL + 00001CF2 DD 75 02 4153 LD (IX+2),L + 00001CF5 DD 74 03 4154 LD (IX+3),H + 00001CF8 FD E5 4155 PUSH IY + 00001CFA DD E5 4156 PUSH IX + 00001CFC E1 4157 POP HL + 00001CFD C1 4158 POP BC + 00001CFE 71 4159 LD (HL),C + 00001CFF 23 4160 INC HL + 00001D00 70 4161 LD (HL),B + 00001D01 FD 6E 08 4162 LD L,(IY+8) + 00001D04 FD 66 09 4163 LD H,(IY+9) + 00001D07 E5 4164 PUSH HL + 00001D08 21 01 00 4165 LD HL,1 + 00001D0B E5 4166 PUSH HL + 00001D0C 2E 04 4167 LD L,4 + 00001D0E 39 4168 ADD HL,SP + 00001D0F 4E 4169 LD C,(HL) + 00001D10 23 4170 INC HL + 00001D11 46 4171 LD B,(HL) + 00001D12 DD 5E 04 4172 LD E,(IX+4) + 00001D15 DD 56 05 4173 LD D,(IX+5) + 00001D18 3E 00 4174 LD A,BYTE3 fread + 00001D1A 21 00 00 4175 LD HL,LWRD fread + 00001D1D CD 00 00 4176 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001D20 F1 4177 POP AF + 00001D21 F1 4178 POP AF + 00001D22 4179 ?0258: + 00001D22 C3 01 01 4180 JP LWRD ?0625 + 00001D25 4181 dbDeleteRow: + 00001D25 DD E5 4182 PUSH IX + 00001D27 D5 4183 PUSH DE + 00001D28 DD E1 4184 POP IX + 00001D2A 7B 4185 LD A,E + 00001D2B B2 4186 OR D + 00001D2C 28 11 4187 JR Z,?0260 + 00001D2E 4188 ?0259: + 00001D2E DD 7E 04 4189 LD A,(IX+4) + 00001D31 DD B6 05 4190 OR (IX+5) + 00001D34 28 03 4191 JR Z,?0262 + 00001D36 4192 ?0261: + 00001D36 CD 35 00 4193 CALL LWRD ?0638 + 00001D39 4194 ?0262: + 00001D39 DD E5 4195 PUSH IX + 00001D3B D1 4196 POP DE + 00001D3C CD 3B 00 4197 CALL LWRD ?0639 + 00001D3F 4198 ?0260: + 00001D3F DD E1 4199 POP IX + 00001D41 C3 00 00 4200 JP LWRD ?BANK_FAST_LEAVE_L08 + 00001D44 4201 dbNewRow: + 00001D44 C5 4202 PUSH BC + 00001D45 D5 4203 PUSH DE + 00001D46 DD E5 4204 PUSH IX + 00001D48 11 06 00 4205 LD DE,6 + 00001D4B CD 8F 04 4206 CALL LWRD ?0641 + 00001D4E E5 4207 PUSH HL + 00001D4F DD E1 4208 POP IX + 00001D51 01 04 00 4209 LD BC,4 + 00001D54 09 4210 ADD HL,BC + 00001D55 AF 4211 XOR A + 00001D56 77 4212 LD (HL),A + 00001D57 23 4213 INC HL + 00001D58 77 4214 LD (HL),A + 00001D59 DD E5 4215 PUSH IX + 00001D5B E1 4216 POP HL + 00001D5C 77 4217 LD (HL),A + 00001D5D 23 4218 INC HL + 00001D5E 77 4219 LD (HL),A + 00001D5F DD 36 02 FF 4220 LD (IX+2),255 + 00001D63 DD 36 03 FF 4221 LD (IX+3),255 + 00001D67 DD E5 4222 PUSH IX + 00001D69 E1 4223 POP HL + 00001D6A DD E1 4224 POP IX + 00001D6C D1 4225 POP DE + 00001D6D C1 4226 POP BC + 00001D6E C3 00 00 4227 JP LWRD ?BANK_FAST_LEAVE_L08 + 00001D71 4228 dbGetString: + 00001D71 FD E5 4229 PUSH IY + 00001D73 DD E5 4230 PUSH IX + 00001D75 DD 21 00 00 4231 LD IX,0 + 00001D79 DD 39 4232 ADD IX,SP + 00001D7B C5 4233 PUSH BC + 00001D7C F5 4234 PUSH AF + 00001D7D F5 4235 PUSH AF + 00001D7E F5 4236 PUSH AF + 00001D7F D5 4237 PUSH DE + 00001D80 FD E1 4238 POP IY + 00001D82 21 04 00 4239 LD HL,4 + 00001D85 19 4240 ADD HL,DE + 00001D86 7E 4241 LD A,(HL) + 00001D87 DD 77 F8 4242 LD (IX-8),A + 00001D8A 23 4243 INC HL + 00001D8B 66 4244 LD H,(HL) + 00001D8C DD 74 F9 4245 LD (IX-7),H + 00001D8F EB 4246 EX DE,HL + 00001D90 5E 4247 LD E,(HL) + 00001D91 23 4248 INC HL + 00001D92 56 4249 LD D,(HL) + 00001D93 3E DD 4250 LD A,BYTE3 dbFieldOffset + 00001D95 21 DD 0B 4251 LD HL,LWRD dbFieldOffset + 00001D98 CD 00 00 4252 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001D9B DD 75 FA 4253 LD (IX-6),L + 00001D9E DD 74 FB 4254 LD (IX-5),H + 00001DA1 FD 6E 00 4255 LD L,(IY+0) + 00001DA4 FD 66 01 4256 LD H,(IY+1) + 00001DA7 23 4257 INC HL + 00001DA8 23 4258 INC HL + 00001DA9 46 4259 LD B,(HL) + 00001DAA 23 4260 INC HL + 00001DAB 66 4261 LD H,(HL) + 00001DAC 68 4262 LD L,B + 00001DAD E5 4263 PUSH HL + 00001DAE DD 6E FE 4264 LD L,(IX-2) + 00001DB1 DD 66 FF 4265 LD H,(IX-1) + 00001DB4 29 4266 ADD HL,HL + 00001DB5 29 4267 ADD HL,HL + 00001DB6 4D 4268 LD C,L + 00001DB7 44 4269 LD B,H + 00001DB8 29 4270 ADD HL,HL + 00001DB9 09 4271 ADD HL,BC + 00001DBA 4D 4272 LD C,L + 00001DBB 44 4273 LD B,H + 00001DBC E1 4274 POP HL + 00001DBD 09 4275 ADD HL,BC + 00001DBE 01 09 00 4276 LD BC,9 + 00001DC1 09 4277 ADD HL,BC + 00001DC2 7E 4278 LD A,(HL) + 00001DC3 FE 53 4279 CP 83 + 00001DC5 20 1B 4280 JR NZ,?0265 + 00001DC7 4281 ?0264: + 00001DC7 DD 6E FA 4282 LD L,(IX-6) + 00001DCA DD 66 FB 4283 LD H,(IX-5) + 00001DCD DD 4E F8 4284 LD C,(IX-8) + 00001DD0 DD 46 F9 4285 LD B,(IX-7) + 00001DD3 09 4286 ADD HL,BC + 00001DD4 4D 4287 LD C,L + 00001DD5 44 4288 LD B,H + 00001DD6 DD 5E 08 4289 LD E,(IX+8) + 00001DD9 DD 56 09 4290 LD D,(IX+9) + 00001DDC CD AD 04 4291 CALL LWRD ?0651 + 00001DDF C3 7A 1E 4292 JP LWRD ?0270 + 00001DE2 4293 ?0265: + 00001DE2 FE 49 4294 CP 73 + 00001DE4 C2 7A 1E 4295 JP NZ,?0270 + 00001DE7 FD 6E 00 4296 LD L,(IY+0) + 00001DEA FD 66 01 4297 LD H,(IY+1) + 00001DED 23 4298 INC HL + 00001DEE 23 4299 INC HL + 00001DEF 46 4300 LD B,(HL) + 00001DF0 23 4301 INC HL + 00001DF1 66 4302 LD H,(HL) + 00001DF2 68 4303 LD L,B + 00001DF3 E5 4304 PUSH HL + 00001DF4 DD 6E FE 4305 LD L,(IX-2) + 00001DF7 DD 66 FF 4306 LD H,(IX-1) + 00001DFA 29 4307 ADD HL,HL + 00001DFB 29 4308 ADD HL,HL + 00001DFC 4D 4309 LD C,L + 00001DFD 44 4310 LD B,H + 00001DFE 29 4311 ADD HL,HL + 00001DFF 09 4312 ADD HL,BC + 00001E00 4D 4313 LD C,L + 00001E01 44 4314 LD B,H + 00001E02 E1 4315 POP HL + 00001E03 09 4316 ADD HL,BC + 00001E04 01 0A 00 4317 LD BC,10 + 00001E07 09 4318 ADD HL,BC + 00001E08 46 4319 LD B,(HL) + 00001E09 05 4320 DEC B + 00001E0A 05 4321 DEC B + 00001E0B 20 21 4322 JR NZ,?0267 + 00001E0D 4323 ?0266: + 00001E0D C5 4324 PUSH BC + 00001E0E DD 4E 08 4325 LD C,(IX+8) + 00001E11 DD 46 09 4326 LD B,(IX+9) + 00001E14 DD 6E FA 4327 LD L,(IX-6) + 00001E17 DD 66 FB 4328 LD H,(IX-5) + 00001E1A DD 5E F8 4329 LD E,(IX-8) + 00001E1D DD 56 F9 4330 LD D,(IX-7) + 00001E20 19 4331 ADD HL,DE + 00001E21 5E 4332 LD E,(HL) + 00001E22 23 4333 INC HL + 00001E23 56 4334 LD D,(HL) + 00001E24 3E 00 4335 LD A,BYTE3 itoa + 00001E26 21 00 00 4336 LD HL,LWRD itoa + 00001E29 CD 00 00 4337 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001E2C 18 4B 4338 JR ?0548 + 00001E2E 4339 ?0267: + 00001E2E FD 6E 00 4340 LD L,(IY+0) + 00001E31 FD 66 01 4341 LD H,(IY+1) + 00001E34 23 4342 INC HL + 00001E35 23 4343 INC HL + 00001E36 46 4344 LD B,(HL) + 00001E37 23 4345 INC HL + 00001E38 66 4346 LD H,(HL) + 00001E39 68 4347 LD L,B + 00001E3A E5 4348 PUSH HL + 00001E3B DD 6E FE 4349 LD L,(IX-2) + 00001E3E DD 66 FF 4350 LD H,(IX-1) + 00001E41 29 4351 ADD HL,HL + 00001E42 29 4352 ADD HL,HL + 00001E43 4D 4353 LD C,L + 00001E44 44 4354 LD B,H + 00001E45 29 4355 ADD HL,HL + 00001E46 09 4356 ADD HL,BC + 00001E47 4D 4357 LD C,L + 00001E48 44 4358 LD B,H + 00001E49 E1 4359 POP HL + 00001E4A 09 4360 ADD HL,BC + 00001E4B 01 0A 00 4361 LD BC,10 + 00001E4E 09 4362 ADD HL,BC + 00001E4F 7E 4363 LD A,(HL) + 00001E50 FE 04 4364 CP 4 + 00001E52 20 26 4365 JR NZ,?0270 + 00001E54 4366 ?0269: + 00001E54 C5 4367 PUSH BC + 00001E55 DD 6E 08 4368 LD L,(IX+8) + 00001E58 DD 66 09 4369 LD H,(IX+9) + 00001E5B E5 4370 PUSH HL + 00001E5C DD 6E FA 4371 LD L,(IX-6) + 00001E5F DD 66 FB 4372 LD H,(IX-5) + 00001E62 DD 4E F8 4373 LD C,(IX-8) + 00001E65 DD 46 F9 4374 LD B,(IX-7) + 00001E68 09 4375 ADD HL,BC + 00001E69 5E 4376 LD E,(HL) + 00001E6A 23 4377 INC HL + 00001E6B 56 4378 LD D,(HL) + 00001E6C 23 4379 INC HL + 00001E6D 4E 4380 LD C,(HL) + 00001E6E 23 4381 INC HL + 00001E6F 46 4382 LD B,(HL) + 00001E70 3E 00 4383 LD A,BYTE3 ltoa + 00001E72 21 00 00 4384 LD HL,LWRD ltoa + 00001E75 CD 00 00 4385 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001E78 F1 4386 POP AF + 00001E79 4387 ?0548: + 00001E79 F1 4388 POP AF + 00001E7A 4389 ?0270: + 00001E7A 4390 ?0268: + 00001E7A 4391 ?0263: + 00001E7A C3 7B 04 4392 JP LWRD ?0630 + 00001E7D 4393 dbGetInt: + 00001E7D FD E5 4394 PUSH IY + 00001E7F DD E5 4395 PUSH IX + 00001E81 C5 4396 PUSH BC + 00001E82 F5 4397 PUSH AF + 00001E83 D5 4398 PUSH DE + 00001E84 DD E1 4399 POP IX + 00001E86 21 04 00 4400 LD HL,4 + 00001E89 19 4401 ADD HL,DE + 00001E8A 7E 4402 LD A,(HL) + 00001E8B 23 4403 INC HL + 00001E8C 66 4404 LD H,(HL) + 00001E8D 6F 4405 LD L,A + 00001E8E E5 4406 PUSH HL + 00001E8F FD E1 4407 POP IY + 00001E91 21 00 00 4408 LD HL,0 + 00001E94 39 4409 ADD HL,SP + 00001E95 E5 4410 PUSH HL + 00001E96 EB 4411 EX DE,HL + 00001E97 5E 4412 LD E,(HL) + 00001E98 23 4413 INC HL + 00001E99 56 4414 LD D,(HL) + 00001E9A 3E DD 4415 LD A,BYTE3 dbFieldOffset + 00001E9C 21 DD 0B 4416 LD HL,LWRD dbFieldOffset + 00001E9F CD 00 00 4417 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001EA2 4D 4418 LD C,L + 00001EA3 44 4419 LD B,H + 00001EA4 E1 4420 POP HL + 00001EA5 71 4421 LD (HL),C + 00001EA6 23 4422 INC HL + 00001EA7 70 4423 LD (HL),B + 00001EA8 DD 6E 00 4424 LD L,(IX+0) + 00001EAB DD 66 01 4425 LD H,(IX+1) + 00001EAE 23 4426 INC HL + 00001EAF 23 4427 INC HL + 00001EB0 46 4428 LD B,(HL) + 00001EB1 23 4429 INC HL + 00001EB2 66 4430 LD H,(HL) + 00001EB3 68 4431 LD L,B + 00001EB4 E5 4432 PUSH HL + 00001EB5 21 04 00 4433 LD HL,4 + 00001EB8 39 4434 ADD HL,SP + 00001EB9 46 4435 LD B,(HL) + 00001EBA 23 4436 INC HL + 00001EBB 66 4437 LD H,(HL) + 00001EBC 68 4438 LD L,B + 00001EBD 29 4439 ADD HL,HL + 00001EBE 29 4440 ADD HL,HL + 00001EBF 4D 4441 LD C,L + 00001EC0 44 4442 LD B,H + 00001EC1 29 4443 ADD HL,HL + 00001EC2 09 4444 ADD HL,BC + 00001EC3 4D 4445 LD C,L + 00001EC4 44 4446 LD B,H + 00001EC5 E1 4447 POP HL + 00001EC6 09 4448 ADD HL,BC + 00001EC7 01 09 00 4449 LD BC,9 + 00001ECA 09 4450 ADD HL,BC + 00001ECB 7E 4451 LD A,(HL) + 00001ECC FE 53 4452 CP 83 + 00001ECE 20 16 4453 JR NZ,?0273 + 00001ED0 4454 ?0272: + 00001ED0 68 4455 LD L,B + 00001ED1 60 4456 LD H,B + 00001ED2 39 4457 ADD HL,SP + 00001ED3 46 4458 LD B,(HL) + 00001ED4 23 4459 INC HL + 00001ED5 66 4460 LD H,(HL) + 00001ED6 68 4461 LD L,B + 00001ED7 FD E5 4462 PUSH IY + 00001ED9 C1 4463 POP BC + 00001EDA 09 4464 ADD HL,BC + 00001EDB EB 4465 EX DE,HL + 00001EDC 3E 00 4466 LD A,BYTE3 atoi + 00001EDE 21 00 00 4467 LD HL,LWRD atoi + 00001EE1 CD 00 00 4468 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001EE4 18 13 4469 JR ?0274 + 00001EE6 4470 ?0273: + 00001EE6 FE 49 4471 CP 73 + 00001EE8 68 4472 LD L,B + 00001EE9 60 4473 LD H,B + 00001EEA 20 0D 4474 JR NZ,?0274 + 00001EEC 39 4475 ADD HL,SP + 00001EED 46 4476 LD B,(HL) + 00001EEE 23 4477 INC HL + 00001EEF 66 4478 LD H,(HL) + 00001EF0 68 4479 LD L,B + 00001EF1 FD E5 4480 PUSH IY + 00001EF3 C1 4481 POP BC + 00001EF4 09 4482 ADD HL,BC + 00001EF5 46 4483 LD B,(HL) + 00001EF6 23 4484 INC HL + 00001EF7 66 4485 LD H,(HL) + 00001EF8 68 4486 LD L,B + 00001EF9 4487 ?0274: + 00001EF9 4488 ?0275: + 00001EF9 F1 4489 POP AF + 00001EFA C3 E1 02 4490 JP LWRD ?0626 + 00001EFD 4491 ?0271: + 00001EFD 4492 dbGetLong: + 00001EFD FD E5 4493 PUSH IY + 00001EFF DD E5 4494 PUSH IX + 00001F01 DD 21 00 00 4495 LD IX,0 + 00001F05 DD 39 4496 ADD IX,SP + 00001F07 C5 4497 PUSH BC + 00001F08 F5 4498 PUSH AF + 00001F09 F5 4499 PUSH AF + 00001F0A D5 4500 PUSH DE + 00001F0B FD E1 4501 POP IY + 00001F0D 21 04 00 4502 LD HL,4 + 00001F10 19 4503 ADD HL,DE + 00001F11 7E 4504 LD A,(HL) + 00001F12 DD 77 FA 4505 LD (IX-6),A + 00001F15 23 4506 INC HL + 00001F16 66 4507 LD H,(HL) + 00001F17 DD 74 FB 4508 LD (IX-5),H + 00001F1A EB 4509 EX DE,HL + 00001F1B 5E 4510 LD E,(HL) + 00001F1C 23 4511 INC HL + 00001F1D 56 4512 LD D,(HL) + 00001F1E 3E DD 4513 LD A,BYTE3 dbFieldOffset + 00001F20 21 DD 0B 4514 LD HL,LWRD dbFieldOffset + 00001F23 CD 00 00 4515 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001F26 DD 75 FC 4516 LD (IX-4),L + 00001F29 DD 74 FD 4517 LD (IX-3),H + 00001F2C FD 6E 00 4518 LD L,(IY+0) + 00001F2F FD 66 01 4519 LD H,(IY+1) + 00001F32 23 4520 INC HL + 00001F33 23 4521 INC HL + 00001F34 46 4522 LD B,(HL) + 00001F35 23 4523 INC HL + 00001F36 66 4524 LD H,(HL) + 00001F37 68 4525 LD L,B + 00001F38 E5 4526 PUSH HL + 00001F39 DD 6E FE 4527 LD L,(IX-2) + 00001F3C DD 66 FF 4528 LD H,(IX-1) + 00001F3F 29 4529 ADD HL,HL + 00001F40 29 4530 ADD HL,HL + 00001F41 4D 4531 LD C,L + 00001F42 44 4532 LD B,H + 00001F43 29 4533 ADD HL,HL + 00001F44 09 4534 ADD HL,BC + 00001F45 4D 4535 LD C,L + 00001F46 44 4536 LD B,H + 00001F47 E1 4537 POP HL + 00001F48 09 4538 ADD HL,BC + 00001F49 01 09 00 4539 LD BC,9 + 00001F4C 09 4540 ADD HL,BC + 00001F4D 7E 4541 LD A,(HL) + 00001F4E FE 53 4542 CP 83 + 00001F50 20 18 4543 JR NZ,?0278 + 00001F52 4544 ?0277: + 00001F52 DD 6E FC 4545 LD L,(IX-4) + 00001F55 DD 66 FD 4546 LD H,(IX-3) + 00001F58 DD 4E FA 4547 LD C,(IX-6) + 00001F5B DD 46 FB 4548 LD B,(IX-5) + 00001F5E 09 4549 ADD HL,BC + 00001F5F EB 4550 EX DE,HL + 00001F60 3E 00 4551 LD A,BYTE3 atol + 00001F62 21 00 00 4552 LD HL,LWRD atol + 00001F65 CD 00 00 4553 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001F68 18 4F 4554 JR ?0282 + 00001F6A 4555 ?0278: + 00001F6A FE 49 4556 CP 73 + 00001F6C 20 48 4557 JR NZ,?0281 + 00001F6E FD 6E 00 4558 LD L,(IY+0) + 00001F71 FD 66 01 4559 LD H,(IY+1) + 00001F74 23 4560 INC HL + 00001F75 23 4561 INC HL + 00001F76 46 4562 LD B,(HL) + 00001F77 23 4563 INC HL + 00001F78 66 4564 LD H,(HL) + 00001F79 68 4565 LD L,B + 00001F7A E5 4566 PUSH HL + 00001F7B DD 6E FE 4567 LD L,(IX-2) + 00001F7E DD 66 FF 4568 LD H,(IX-1) + 00001F81 29 4569 ADD HL,HL + 00001F82 29 4570 ADD HL,HL + 00001F83 4D 4571 LD C,L + 00001F84 44 4572 LD B,H + 00001F85 29 4573 ADD HL,HL + 00001F86 09 4574 ADD HL,BC + 00001F87 4D 4575 LD C,L + 00001F88 44 4576 LD B,H + 00001F89 E1 4577 POP HL + 00001F8A 09 4578 ADD HL,BC + 00001F8B 01 0A 00 4579 LD BC,10 + 00001F8E 09 4580 ADD HL,BC + 00001F8F 46 4581 LD B,(HL) + 00001F90 05 4582 DEC B + 00001F91 05 4583 DEC B + 00001F92 DD 6E FC 4584 LD L,(IX-4) + 00001F95 DD 66 FD 4585 LD H,(IX-3) + 00001F98 DD 4E FA 4586 LD C,(IX-6) + 00001F9B DD 46 FB 4587 LD B,(IX-5) + 00001F9E 09 4588 ADD HL,BC + 00001F9F 20 0B 4589 JR NZ,?0280 + 00001FA1 4590 ?0279: + 00001FA1 46 4591 LD B,(HL) + 00001FA2 23 4592 INC HL + 00001FA3 66 4593 LD H,(HL) + 00001FA4 7C 4594 LD A,H + 00001FA5 68 4595 LD L,B + 00001FA6 07 4596 RLCA + 00001FA7 9F 4597 SBC A,A + 00001FA8 4F 4598 LD C,A + 00001FA9 41 4599 LD B,C + 00001FAA 18 0D 4600 JR ?0282 + 00001FAC 4601 ?0280: + 00001FAC 5E 4602 LD E,(HL) + 00001FAD 23 4603 INC HL + 00001FAE 56 4604 LD D,(HL) + 00001FAF 23 4605 INC HL + 00001FB0 4E 4606 LD C,(HL) + 00001FB1 23 4607 INC HL + 00001FB2 46 4608 LD B,(HL) + 00001FB3 EB 4609 EX DE,HL + 00001FB4 18 03 4610 JR ?0282 + 00001FB6 4611 ?0281: + 00001FB6 48 4612 LD C,B + 00001FB7 69 4613 LD L,C + 00001FB8 60 4614 LD H,B + 00001FB9 4615 ?0282: + 00001FB9 C3 7B 04 4616 JP LWRD ?0630 + 00001FBC 4617 ?0276: + 00001FBC 4618 dbOperatorPrecedence: + 00001FBC D5 4619 PUSH DE + 00001FBD CD 00 00 4620 CALL LWRD ?C_V_SWITCH_L06 + 00001FC0 10 00 4621 DEFW 16 + 00001FC2 00 4622 DEFB 0 + 00001FC3 26 4623 DEFB 38 + 00001FC4 28 4624 DEFB 40 + 00001FC5 29 4625 DEFB 41 + 00001FC6 2A 4626 DEFB 42 + 00001FC7 2B 4627 DEFB 43 + 00001FC8 2D 4628 DEFB 45 + 00001FC9 2F 4629 DEFB 47 + 00001FCA 3B 4630 DEFB 59 + 00001FCB 3C 4631 DEFB 60 + 00001FCC 3D 4632 DEFB 61 + 00001FCD 3E 4633 DEFB 62 + 00001FCE 5B 4634 DEFB 91 + 00001FCF 5D 4635 DEFB 93 + 00001FD0 5E 4636 DEFB 94 + 00001FD1 7C 4637 DEFB 124 + 00001FD2 10 20 4638 DEFW ?0291 + 00001FD4 08 20 4639 DEFW ?0289 + 00001FD6 F8 1F 4640 DEFW ?0285 + 00001FD8 04 20 4641 DEFW ?0288 + 00001FDA 04 20 4642 DEFW ?0288 + 00001FDC 04 20 4643 DEFW ?0288 + 00001FDE 04 20 4644 DEFW ?0288 + 00001FE0 04 20 4645 DEFW ?0288 + 00001FE2 0C 20 4646 DEFW ?0290 + 00001FE4 FC 1F 4647 DEFW ?0286 + 00001FE6 00 20 4648 DEFW ?0287 + 00001FE8 00 20 4649 DEFW ?0287 + 00001FEA FC 1F 4650 DEFW ?0286 + 00001FEC 0C 20 4651 DEFW ?0290 + 00001FEE F4 1F 4652 DEFW ?0284 + 00001FF0 08 20 4653 DEFW ?0289 + 00001FF2 0C 20 4654 DEFW ?0290 + 00001FF4 4655 ?0284: + 00001FF4 2E 01 4656 LD L,1 + 00001FF6 18 1A 4657 JR ?0292 + 00001FF8 4658 ?0285: + 00001FF8 2E 02 4659 LD L,2 + 00001FFA 18 16 4660 JR ?0292 + 00001FFC 4661 ?0286: + 00001FFC 2E 03 4662 LD L,3 + 00001FFE 18 12 4663 JR ?0292 + 00002000 4664 ?0287: + 00002000 2E 04 4665 LD L,4 + 00002002 18 0E 4666 JR ?0292 + 00002004 4667 ?0288: + 00002004 2E 05 4668 LD L,5 + 00002006 18 0A 4669 JR ?0292 + 00002008 4670 ?0289: + 00002008 2E 06 4671 LD L,6 + 0000200A 18 06 4672 JR ?0292 + 0000200C 4673 ?0290: + 0000200C 2E 3F 4674 LD L,63 + 0000200E 18 02 4675 JR ?0292 + 00002010 4676 ?0291: + 00002010 2E 00 4677 LD L,0 + 00002012 4678 ?0292: + 00002012 F1 4679 POP AF + 00002013 C3 00 00 4680 JP LWRD ?BANK_FAST_LEAVE_L08 + 00002016 4681 ?0283: + 00002016 4682 dbNewExpression: + 00002016 DD E5 4683 PUSH IX + 00002018 C5 4684 PUSH BC + 00002019 D5 4685 PUSH DE + 0000201A 11 4E 00 4686 LD DE,78 + 0000201D CD 8F 04 4687 CALL LWRD ?0641 + 00002020 E5 4688 PUSH HL + 00002021 DD E1 4689 POP IX + 00002023 23 4690 INC HL + 00002024 23 4691 INC HL + 00002025 23 4692 INC HL + 00002026 36 00 4693 LD (HL),0 + 00002028 AF 4694 XOR A + 00002029 DD 77 48 4695 LD (IX+72),A + 0000202C DD 77 49 4696 LD (IX+73),A + 0000202F DD 77 4A 4697 LD (IX+74),A + 00002032 DD 77 4B 4698 LD (IX+75),A + 00002035 DD 77 02 4699 LD (IX+2),A + 00002038 6F 4700 LD L,A + 00002039 67 4701 LD H,A + 0000203A 39 4702 ADD HL,SP + 0000203B 46 4703 LD B,(HL) + 0000203C DD 70 4C 4704 LD (IX+76),B + 0000203F 23 4705 INC HL + 00002040 66 4706 LD H,(HL) + 00002041 DD 74 4D 4707 LD (IX+77),H + 00002044 DD 71 00 4708 LD (IX+0),C + 00002047 DD 77 24 4709 LD (IX+36),A + 0000204A DD 77 25 4710 LD (IX+37),A + 0000204D DD 77 26 4711 LD (IX+38),A + 00002050 DD 77 27 4712 LD (IX+39),A + 00002053 DD E5 4713 PUSH IX + 00002055 E1 4714 POP HL + 00002056 F1 4715 POP AF + 00002057 F1 4716 POP AF + 00002058 DD E1 4717 POP IX + 0000205A C3 00 00 4718 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000205D 4719 dbParseExpression: + 0000205D FD E5 4720 PUSH IY + 0000205F DD E5 4721 PUSH IX + 00002061 DD 21 00 00 4722 LD IX,0 + 00002065 DD 39 4723 ADD IX,SP + 00002067 C5 4724 PUSH BC + 00002068 D5 4725 PUSH DE + 00002069 21 B2 FF 4726 LD HL,65458 + 0000206C 39 4727 ADD HL,SP + 0000206D F9 4728 LD SP,HL + 0000206E AF 4729 XOR A + 0000206F DD 77 F8 4730 LD (IX-8),A + 00002072 DD 77 F9 4731 LD (IX-7),A + 00002075 7B 4732 LD A,E + 00002076 B2 4733 OR D + 00002077 20 24 4734 JR NZ,?0294 + 00002079 4735 ?0293: + 00002079 0E 01 4736 LD C,1 + 0000207B 5F 4737 LD E,A + 0000207C 57 4738 LD D,A + 0000207D CD 5F 24 4739 CALL LWRD ?0666 + 00002080 DD 75 AE 4740 LD (IX-82),L + 00002083 DD 74 AF 4741 LD (IX-81),H + 00002086 01 04 00 4742 LD BC,4 + 00002089 09 4743 ADD HL,BC + 0000208A 36 31 4744 LD (HL),49 + 0000208C 21 05 00 4745 LD HL,5 + 0000208F DD 4E AE 4746 LD C,(IX-82) + 00002092 DD 46 AF 4747 LD B,(IX-81) + 00002095 09 4748 ADD HL,BC + 00002096 36 00 4749 LD (HL),0 + 00002098 69 4750 LD L,C + 00002099 60 4751 LD H,B + 0000209A C3 57 24 4752 JP LWRD ?0356 + 0000209D 4753 ?0294: + 0000209D AF 4754 XOR A + 0000209E DD 77 F6 4755 LD (IX-10),A + 000020A1 DD 77 F7 4756 LD (IX-9),A + 000020A4 4757 ?0296: + 000020A4 01 40 80 4758 LD BC,32832 + 000020A7 DD 6E F6 4759 LD L,(IX-10) + 000020AA DD 66 F7 4760 LD H,(IX-9) + 000020AD 78 4761 LD A,B + 000020AE AC 4762 XOR H + 000020AF 67 4763 LD H,A + 000020B0 ED 42 4764 SBC HL,BC + 000020B2 30 16 4765 JR NC,?0295 + 000020B4 4766 ?0297: + 000020B4 21 06 00 4767 LD HL,6 + 000020B7 39 4768 ADD HL,SP + 000020B8 DD 4E F6 4769 LD C,(IX-10) + 000020BB DD 46 F7 4770 LD B,(IX-9) + 000020BE 09 4771 ADD HL,BC + 000020BF 36 00 4772 LD (HL),0 + 000020C1 03 4773 INC BC + 000020C2 DD 71 F6 4774 LD (IX-10),C + 000020C5 DD 70 F7 4775 LD (IX-9),B + 000020C8 18 DA 4776 JR ?0296 + 000020CA 4777 ?0295: + 000020CA 0E 03 4778 LD C,3 + 000020CC 11 00 00 4779 LD DE,0 + 000020CF CD 5F 24 4780 CALL LWRD ?0666 + 000020D2 DD 75 AE 4781 LD (IX-82),L + 000020D5 DD 74 AF 4782 LD (IX-81),H + 000020D8 E5 4783 PUSH HL + 000020D9 FD E1 4784 POP IY + 000020DB 4785 ?0301: + 000020DB AF 4786 XOR A + 000020DC DD 77 B2 4787 LD (IX-78),A + 000020DF DD 77 B3 4788 LD (IX-77),A + 000020E2 4789 ?0302: + 000020E2 DD 6E FE 4790 LD L,(IX-2) + 000020E5 DD 66 FF 4791 LD H,(IX-1) + 000020E8 46 4792 LD B,(HL) + 000020E9 23 4793 INC HL + 000020EA 66 4794 LD H,(HL) + 000020EB 68 4795 LD L,B + 000020EC DD 4E FC 4796 LD C,(IX-4) + 000020EF DD 46 FD 4797 LD B,(IX-3) + 000020F2 09 4798 ADD HL,BC + 000020F3 5E 4799 LD E,(HL) + 000020F4 3E BC 4800 LD A,BYTE3 dbOperatorPrecedence + 000020F6 21 BC 1F 4801 LD HL,LWRD dbOperatorPrecedence + 000020F9 CD 00 00 4802 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000020FC 26 00 4803 LD H,0 + 000020FE DD 75 F4 4804 LD (IX-12),L + 00002101 DD 74 F5 4805 LD (IX-11),H + 00002104 7D 4806 LD A,L + 00002105 B7 4807 OR A + 00002106 20 1E 4808 JR NZ,?0304 + 00002108 4809 ?0303: + 00002108 DD 6E FE 4810 LD L,(IX-2) + 0000210B DD 66 FF 4811 LD H,(IX-1) + 0000210E 46 4812 LD B,(HL) + 0000210F 23 4813 INC HL + 00002110 66 4814 LD H,(HL) + 00002111 68 4815 LD L,B + 00002112 DD 46 FD 4816 LD B,(IX-3) + 00002115 09 4817 ADD HL,BC + 00002116 46 4818 LD B,(HL) + 00002117 21 06 00 4819 LD HL,6 + 0000211A 39 4820 ADD HL,SP + 0000211B DD 5E F8 4821 LD E,(IX-8) + 0000211E DD 56 F9 4822 LD D,(IX-7) + 00002121 19 4823 ADD HL,DE + 00002122 70 4824 LD (HL),B + 00002123 C3 03 24 4825 JP LWRD ?0312 + 00002126 4826 ?0304: + 00002126 3E 01 4827 LD A,1 + 00002128 AD 4828 XOR L + 00002129 20 5E 4829 JR NZ,?0307 + 0000212B 4830 ?0306: + 0000212B DD 6E FE 4831 LD L,(IX-2) + 0000212E DD 66 FF 4832 LD H,(IX-1) + 00002131 46 4833 LD B,(HL) + 00002132 23 4834 INC HL + 00002133 66 4835 LD H,(HL) + 00002134 68 4836 LD L,B + 00002135 DD 46 FD 4837 LD B,(IX-3) + 00002138 09 4838 ADD HL,BC + 00002139 7E 4839 LD A,(HL) + 0000213A FE 29 4840 CP 41 + 0000213C 20 08 4841 JR NZ,?0309 + 0000213E 4842 ?0308: + 0000213E DD 36 F4 3F 4843 LD (IX-12),63 + 00002142 DD 36 F5 00 4844 LD (IX-11),0 + 00002146 4845 ?0309: + 00002146 DD 6E FE 4846 LD L,(IX-2) + 00002149 DD 66 FF 4847 LD H,(IX-1) + 0000214C 46 4848 LD B,(HL) + 0000214D 23 4849 INC HL + 0000214E 66 4850 LD H,(HL) + 0000214F 68 4851 LD L,B + 00002150 DD 46 FD 4852 LD B,(IX-3) + 00002153 09 4853 ADD HL,BC + 00002154 7E 4854 LD A,(HL) + 00002155 FE 28 4855 CP 40 + 00002157 C2 03 24 4856 JP NZ,?0312 + 0000215A 4857 ?0310: + 0000215A DD 6E FE 4858 LD L,(IX-2) + 0000215D DD 66 FF 4859 LD H,(IX-1) + 00002160 34 4860 INC (HL) + 00002161 23 4861 INC HL + 00002162 20 01 4862 JR NZ,?0549 + 00002164 34 4863 INC (HL) + 00002165 4864 ?0549: + 00002165 DD 4E FE 4865 LD C,(IX-2) + 00002168 DD 46 FF 4866 LD B,(IX-1) + 0000216B DD 5E FC 4867 LD E,(IX-4) + 0000216E DD 56 FD 4868 LD D,(IX-3) + 00002171 3E 5D 4869 LD A,BYTE3 dbParseExpression + 00002173 21 5D 20 4870 LD HL,LWRD dbParseExpression + 00002176 CD 00 00 4871 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002179 DD 75 B2 4872 LD (IX-78),L + 0000217C DD 74 B3 4873 LD (IX-77),H + 0000217F AF 4874 XOR A + 00002180 DD 77 F8 4875 LD (IX-8),A + 00002183 DD 77 F9 4876 LD (IX-7),A + 00002186 C3 E2 20 4877 JP LWRD ?0302 + 00002189 4878 ?0311: + 00002189 4879 ?0307: + 00002189 2E 06 4880 LD L,6 + 0000218B 39 4881 ADD HL,SP + 0000218C DD 4E F8 4882 LD C,(IX-8) + 0000218F DD 46 F9 4883 LD B,(IX-7) + 00002192 09 4884 ADD HL,BC + 00002193 36 00 4885 LD (HL),0 + 00002195 FD 7E 48 4886 LD A,(IY+72) + 00002198 FD B6 49 4887 OR (IY+73) + 0000219B 20 46 4888 JR NZ,?0314 + 0000219D 4889 ?0313: + 0000219D DD 7E B2 4890 LD A,(IX-78) + 000021A0 DD B6 B3 4891 OR (IX-77) + 000021A3 20 1A 4892 JR NZ,?0316 + 000021A5 4893 ?0315: + 000021A5 CD 5A 24 4894 CALL LWRD ?0667 + 000021A8 FD 75 48 4895 LD (IY+72),L + 000021AB FD 74 49 4896 LD (IY+73),H + 000021AE 21 06 00 4897 LD HL,6 + 000021B1 39 4898 ADD HL,SP + 000021B2 4D 4899 LD C,L + 000021B3 44 4900 LD B,H + 000021B4 FD 6E 48 4901 LD L,(IY+72) + 000021B7 FD 66 49 4902 LD H,(IY+73) + 000021BA CD A8 04 4903 CALL LWRD ?0654 + 000021BD 18 0C 4904 JR ?0317 + 000021BF 4905 ?0316: + 000021BF DD 6E B2 4906 LD L,(IX-78) + 000021C2 FD 75 48 4907 LD (IY+72),L + 000021C5 DD 66 B3 4908 LD H,(IX-77) + 000021C8 FD 74 49 4909 LD (IY+73),H + 000021CB 4910 ?0317: + 000021CB DD 6E FE 4911 LD L,(IX-2) + 000021CE DD 66 FF 4912 LD H,(IX-1) + 000021D1 46 4913 LD B,(HL) + 000021D2 23 4914 INC HL + 000021D3 66 4915 LD H,(HL) + 000021D4 68 4916 LD L,B + 000021D5 DD 4E FC 4917 LD C,(IX-4) + 000021D8 DD 46 FD 4918 LD B,(IX-3) + 000021DB 09 4919 ADD HL,BC + 000021DC 46 4920 LD B,(HL) + 000021DD FD 70 02 4921 LD (IY+2),B + 000021E0 C3 FB 23 4922 JP LWRD ?0350 + 000021E3 4923 ?0314: + 000021E3 CD 67 24 4924 CALL LWRD ?0669 + 000021E6 E2 EA 21 4925 JP PO,?0550 + 000021E9 AC 4926 XOR H + 000021EA 4927 ?0550: + 000021EA F2 64 22 4928 JP P,?0320 + 000021ED 4929 ?0319: + 000021ED 0E 03 4930 LD C,3 + 000021EF CD 5C 24 4931 CALL LWRD ?0668 + 000021F2 FD 75 4A 4932 LD (IY+74),L + 000021F5 FD 74 4B 4933 LD (IY+75),H + 000021F8 DD 7E B2 4934 LD A,(IX-78) + 000021FB DD B6 B3 4935 OR (IX-77) + 000021FE FD 6E 4A 4936 LD L,(IY+74) + 00002201 FD 66 4B 4937 LD H,(IY+75) + 00002204 01 48 00 4938 LD BC,72 + 00002207 09 4939 ADD HL,BC + 00002208 20 2B 4940 JR NZ,?0322 + 0000220A 4941 ?0321: + 0000220A E5 4942 PUSH HL + 0000220B 0E 01 4943 LD C,1 + 0000220D FD 5E 4A 4944 LD E,(IY+74) + 00002210 FD 56 4B 4945 LD D,(IY+75) + 00002213 CD 5F 24 4946 CALL LWRD ?0666 + 00002216 4D 4947 LD C,L + 00002217 44 4948 LD B,H + 00002218 E1 4949 POP HL + 00002219 71 4950 LD (HL),C + 0000221A 23 4951 INC HL + 0000221B 70 4952 LD (HL),B + 0000221C 21 06 00 4953 LD HL,6 + 0000221F 39 4954 ADD HL,SP + 00002220 4D 4955 LD C,L + 00002221 44 4956 LD B,H + 00002222 FD 6E 4A 4957 LD L,(IY+74) + 00002225 FD 66 4B 4958 LD H,(IY+75) + 00002228 11 48 00 4959 LD DE,72 + 0000222B 19 4960 ADD HL,DE + 0000222C 56 4961 LD D,(HL) + 0000222D 23 4962 INC HL + 0000222E 66 4963 LD H,(HL) + 0000222F 6A 4964 LD L,D + 00002230 CD A8 04 4965 CALL LWRD ?0654 + 00002233 18 09 4966 JR ?0323 + 00002235 4967 ?0322: + 00002235 DD 4E B2 4968 LD C,(IX-78) + 00002238 71 4969 LD (HL),C + 00002239 DD 46 B3 4970 LD B,(IX-77) + 0000223C 23 4971 INC HL + 0000223D 70 4972 LD (HL),B + 0000223E 4973 ?0323: + 0000223E FD 6E 4A 4974 LD L,(IY+74) + 00002241 FD 66 4B 4975 LD H,(IY+75) + 00002244 23 4976 INC HL + 00002245 23 4977 INC HL + 00002246 E5 4978 PUSH HL + 00002247 DD 6E FE 4979 LD L,(IX-2) + 0000224A DD 66 FF 4980 LD H,(IX-1) + 0000224D 46 4981 LD B,(HL) + 0000224E 23 4982 INC HL + 0000224F 66 4983 LD H,(HL) + 00002250 68 4984 LD L,B + 00002251 DD 4E FC 4985 LD C,(IX-4) + 00002254 DD 46 FD 4986 LD B,(IX-3) + 00002257 09 4987 ADD HL,BC + 00002258 46 4988 LD B,(HL) + 00002259 E1 4989 POP HL + 0000225A 70 4990 LD (HL),B + 0000225B FD 6E 4A 4991 LD L,(IY+74) + 0000225E FD 66 4B 4992 LD H,(IY+75) + 00002261 C3 F8 23 4993 JP LWRD ?0557 + 00002264 4994 ?0320: + 00002264 3E 3F 4995 LD A,63 + 00002266 DD AE F4 4996 XOR (IX-12) + 00002269 DD B6 F5 4997 OR (IX-11) + 0000226C 20 2A 4998 JR NZ,?0326 + 0000226E 4999 ?0325: + 0000226E DD 7E B2 5000 LD A,(IX-78) + 00002271 DD B6 B3 5001 OR (IX-77) + 00002274 20 13 5002 JR NZ,?0328 + 00002276 5003 ?0327: + 00002276 CD 5A 24 5004 CALL LWRD ?0667 + 00002279 FD 75 4A 5005 LD (IY+74),L + 0000227C FD 74 4B 5006 LD (IY+75),H + 0000227F 21 06 00 5007 LD HL,6 + 00002282 39 5008 ADD HL,SP + 00002283 CD A0 04 5009 CALL LWRD ?0655 + 00002286 C3 FB 23 5010 JP LWRD ?0350 + 00002289 5011 ?0328: + 00002289 DD 6E B2 5012 LD L,(IX-78) + 0000228C FD 75 4A 5013 LD (IY+74),L + 0000228F DD 66 B3 5014 LD H,(IX-77) + 00002292 FD 74 4B 5015 LD (IY+75),H + 00002295 5016 ?0329: + 00002295 C3 FB 23 5017 JP LWRD ?0350 + 00002298 5018 ?0326: + 00002298 CD 80 24 5019 CALL LWRD ?0670 + 0000229B E2 9F 22 5020 JP PO,?0551 + 0000229E AC 5021 XOR H + 0000229F 5022 ?0551: + 0000229F FA FB 23 5023 JP M,?0350 + 000022A2 5024 ?0331: + 000022A2 DD 7E B2 5025 LD A,(IX-78) + 000022A5 DD B6 B3 5026 OR (IX-77) + 000022A8 20 12 5027 JR NZ,?0334 + 000022AA 5028 ?0333: + 000022AA CD 5A 24 5029 CALL LWRD ?0667 + 000022AD FD 75 4A 5030 LD (IY+74),L + 000022B0 FD 74 4B 5031 LD (IY+75),H + 000022B3 21 06 00 5032 LD HL,6 + 000022B6 39 5033 ADD HL,SP + 000022B7 CD A0 04 5034 CALL LWRD ?0655 + 000022BA 18 0C 5035 JR ?0335 + 000022BC 5036 ?0334: + 000022BC DD 6E B2 5037 LD L,(IX-78) + 000022BF FD 75 4A 5038 LD (IY+74),L + 000022C2 DD 66 B3 5039 LD H,(IX-77) + 000022C5 FD 74 4B 5040 LD (IY+75),H + 000022C8 5041 ?0335: + 000022C8 5042 ?0337: + 000022C8 CD 67 24 5043 CALL LWRD ?0669 + 000022CB E2 CF 22 5044 JP PO,?0552 + 000022CE AC 5045 XOR H + 000022CF 5046 ?0552: + 000022CF FA E5 22 5047 JP M,?0336 + 000022D2 FD 7E 4C 5048 LD A,(IY+76) + 000022D5 FD B6 4D 5049 OR (IY+77) + 000022D8 28 0B 5050 JR Z,?0336 + 000022DA 5051 ?0340: + 000022DA 5052 ?0339: + 000022DA 5053 ?0338: + 000022DA FD 6E 4C 5054 LD L,(IY+76) + 000022DD FD 66 4D 5055 LD H,(IY+77) + 000022E0 E5 5056 PUSH HL + 000022E1 FD E1 5057 POP IY + 000022E3 18 E3 5058 JR ?0335 + 000022E5 5059 ?0336: + 000022E5 FD 7E 4C 5060 LD A,(IY+76) + 000022E8 FD B6 4D 5061 OR (IY+77) + 000022EB 20 41 5062 JR NZ,?0342 + 000022ED CD 80 24 5063 CALL LWRD ?0670 + 000022F0 E2 F4 22 5064 JP PO,?0553 + 000022F3 AC 5065 XOR H + 000022F4 5066 ?0553: + 000022F4 FA 2E 23 5067 JP M,?0342 + 000022F7 5068 ?0344: + 000022F7 5069 ?0343: + 000022F7 5070 ?0341: + 000022F7 0E 03 5071 LD C,3 + 000022F9 58 5072 LD E,B + 000022FA 50 5073 LD D,B + 000022FB CD 5F 24 5074 CALL LWRD ?0666 + 000022FE DD 75 AE 5075 LD (IX-82),L + 00002301 DD 74 AF 5076 LD (IX-81),H + 00002304 01 48 00 5077 LD BC,72 + 00002307 09 5078 ADD HL,BC + 00002308 FD E5 5079 PUSH IY + 0000230A C1 5080 POP BC + 0000230B 71 5081 LD (HL),C + 0000230C 23 5082 INC HL + 0000230D 70 5083 LD (HL),B + 0000230E DD 6E FE 5084 LD L,(IX-2) + 00002311 DD 66 FF 5085 LD H,(IX-1) + 00002314 56 5086 LD D,(HL) + 00002315 23 5087 INC HL + 00002316 66 5088 LD H,(HL) + 00002317 6A 5089 LD L,D + 00002318 DD 5E FC 5090 LD E,(IX-4) + 0000231B DD 56 FD 5091 LD D,(IX-3) + 0000231E 19 5092 ADD HL,DE + 0000231F 56 5093 LD D,(HL) + 00002320 DD 6E AE 5094 LD L,(IX-82) + 00002323 DD 66 AF 5095 LD H,(IX-81) + 00002326 23 5096 INC HL + 00002327 23 5097 INC HL + 00002328 72 5098 LD (HL),D + 00002329 2B 5099 DEC HL + 0000232A 2B 5100 DEC HL + 0000232B C3 F8 23 5101 JP LWRD ?0557 + 0000232E 5102 ?0342: + 0000232E FD 7E 4C 5103 LD A,(IY+76) + 00002331 FD B6 4D 5104 OR (IY+77) + 00002334 20 5C 5105 JR NZ,?0347 + 00002336 CD 80 24 5106 CALL LWRD ?0670 + 00002339 E2 3D 23 5107 JP PO,?0554 + 0000233C AC 5108 XOR H + 0000233D 5109 ?0554: + 0000233D F2 92 23 5110 JP P,?0347 + 00002340 5111 ?0349: + 00002340 5112 ?0348: + 00002340 5113 ?0346: + 00002340 0E 03 5114 LD C,3 + 00002342 CD 5C 24 5115 CALL LWRD ?0668 + 00002345 DD 75 FA 5116 LD (IX-6),L + 00002348 DD 74 FB 5117 LD (IX-5),H + 0000234B 01 48 00 5118 LD BC,72 + 0000234E 09 5119 ADD HL,BC + 0000234F FD 4E 4A 5120 LD C,(IY+74) + 00002352 71 5121 LD (HL),C + 00002353 FD 46 4B 5122 LD B,(IY+75) + 00002356 23 5123 INC HL + 00002357 70 5124 LD (HL),B + 00002358 DD 6E FE 5125 LD L,(IX-2) + 0000235B DD 66 FF 5126 LD H,(IX-1) + 0000235E 46 5127 LD B,(HL) + 0000235F 23 5128 INC HL + 00002360 66 5129 LD H,(HL) + 00002361 68 5130 LD L,B + 00002362 DD 4E FC 5131 LD C,(IX-4) + 00002365 DD 46 FD 5132 LD B,(IX-3) + 00002368 09 5133 ADD HL,BC + 00002369 46 5134 LD B,(HL) + 0000236A DD 6E FA 5135 LD L,(IX-6) + 0000236D DD 66 FB 5136 LD H,(IX-5) + 00002370 23 5137 INC HL + 00002371 23 5138 INC HL + 00002372 70 5139 LD (HL),B + 00002373 21 48 00 5140 LD HL,72 + 00002376 DD 4E FA 5141 LD C,(IX-6) + 00002379 DD 46 FB 5142 LD B,(IX-5) + 0000237C 09 5143 ADD HL,BC + 0000237D 56 5144 LD D,(HL) + 0000237E 23 5145 INC HL + 0000237F 66 5146 LD H,(HL) + 00002380 6A 5147 LD L,D + 00002381 11 4C 00 5148 LD DE,76 + 00002384 19 5149 ADD HL,DE + 00002385 71 5150 LD (HL),C + 00002386 23 5151 INC HL + 00002387 70 5152 LD (HL),B + 00002388 FD 71 4A 5153 LD (IY+74),C + 0000238B FD 70 4B 5154 LD (IY+75),B + 0000238E 69 5155 LD L,C + 0000238F 60 5156 LD H,B + 00002390 18 66 5157 JR ?0557 + 00002392 5158 ?0347: + 00002392 FD 6E 4C 5159 LD L,(IY+76) + 00002395 DD 75 FA 5160 LD (IX-6),L + 00002398 FD 66 4D 5161 LD H,(IY+77) + 0000239B DD 74 FB 5162 LD (IX-5),H + 0000239E 0E 4A 5163 LD C,74 + 000023A0 09 5164 ADD HL,BC + 000023A1 E5 5165 PUSH HL + 000023A2 0E 03 5166 LD C,3 + 000023A4 DD 5E FA 5167 LD E,(IX-6) + 000023A7 DD 56 FB 5168 LD D,(IX-5) + 000023AA CD 5F 24 5169 CALL LWRD ?0666 + 000023AD 4D 5170 LD C,L + 000023AE 44 5171 LD B,H + 000023AF E1 5172 POP HL + 000023B0 71 5173 LD (HL),C + 000023B1 23 5174 INC HL + 000023B2 70 5175 LD (HL),B + 000023B3 21 4A 00 5176 LD HL,74 + 000023B6 DD 4E FA 5177 LD C,(IX-6) + 000023B9 DD 46 FB 5178 LD B,(IX-5) + 000023BC 09 5179 ADD HL,BC + 000023BD 56 5180 LD D,(HL) + 000023BE 23 5181 INC HL + 000023BF 66 5182 LD H,(HL) + 000023C0 6A 5183 LD L,D + 000023C1 11 48 00 5184 LD DE,72 + 000023C4 19 5185 ADD HL,DE + 000023C5 FD E5 5186 PUSH IY + 000023C7 D1 5187 POP DE + 000023C8 73 5188 LD (HL),E + 000023C9 23 5189 INC HL + 000023CA 72 5190 LD (HL),D + 000023CB 21 4A 00 5191 LD HL,74 + 000023CE 09 5192 ADD HL,BC + 000023CF 7E 5193 LD A,(HL) + 000023D0 23 5194 INC HL + 000023D1 66 5195 LD H,(HL) + 000023D2 6F 5196 LD L,A + 000023D3 23 5197 INC HL + 000023D4 23 5198 INC HL + 000023D5 E5 5199 PUSH HL + 000023D6 DD 6E FE 5200 LD L,(IX-2) + 000023D9 DD 66 FF 5201 LD H,(IX-1) + 000023DC 7E 5202 LD A,(HL) + 000023DD 23 5203 INC HL + 000023DE 66 5204 LD H,(HL) + 000023DF 6F 5205 LD L,A + 000023E0 DD 4E FC 5206 LD C,(IX-4) + 000023E3 DD 46 FD 5207 LD B,(IX-3) + 000023E6 09 5208 ADD HL,BC + 000023E7 46 5209 LD B,(HL) + 000023E8 E1 5210 POP HL + 000023E9 70 5211 LD (HL),B + 000023EA 21 4A 00 5212 LD HL,74 + 000023ED DD 4E FA 5213 LD C,(IX-6) + 000023F0 DD 46 FB 5214 LD B,(IX-5) + 000023F3 09 5215 ADD HL,BC + 000023F4 46 5216 LD B,(HL) + 000023F5 23 5217 INC HL + 000023F6 66 5218 LD H,(HL) + 000023F7 68 5219 LD L,B + 000023F8 5220 ?0557: + 000023F8 E5 5221 PUSH HL + 000023F9 FD E1 5222 POP IY + 000023FB 5223 ?0350: + 000023FB 5224 ?0345: + 000023FB 5225 ?0332: + 000023FB 5226 ?0330: + 000023FB 5227 ?0324: + 000023FB 5228 ?0318: + 000023FB DD 36 F8 FF 5229 LD (IX-8),255 + 000023FF DD 36 F9 FF 5230 LD (IX-7),255 + 00002403 5231 ?0312: + 00002403 5232 ?0305: + 00002403 DD 34 F8 5233 INC (IX-8) + 00002406 20 03 5234 JR NZ,?0555 + 00002408 DD 34 F9 5235 INC (IX-7) + 0000240B 5236 ?0555: + 0000240B DD 6E FE 5237 LD L,(IX-2) + 0000240E DD 66 FF 5238 LD H,(IX-1) + 00002411 34 5239 INC (HL) + 00002412 23 5240 INC HL + 00002413 20 01 5241 JR NZ,?0556 + 00002415 34 5242 INC (HL) + 00002416 5243 ?0556: + 00002416 01 3F 80 5244 LD BC,32831 + 00002419 DD 6E F4 5245 LD L,(IX-12) + 0000241C DD 66 F5 5246 LD H,(IX-11) + 0000241F 78 5247 LD A,B + 00002420 AC 5248 XOR H + 00002421 67 5249 LD H,A + 00002422 ED 42 5250 SBC HL,BC + 00002424 DA DB 20 5251 JP C,?0301 + 00002427 5252 ?0299: + 00002427 5253 ?0352: + 00002427 21 4A 00 5254 LD HL,74 + 0000242A DD 4E AE 5255 LD C,(IX-82) + 0000242D DD 46 AF 5256 LD B,(IX-81) + 00002430 09 5257 ADD HL,BC + 00002431 7E 5258 LD A,(HL) + 00002432 23 5259 INC HL + 00002433 B6 5260 OR (HL) + 00002434 20 1F 5261 JR NZ,?0351 + 00002436 69 5262 LD L,C + 00002437 60 5263 LD H,B + 00002438 7E 5264 LD A,(HL) + 00002439 FE 03 5265 CP 3 + 0000243B 20 18 5266 JR NZ,?0351 + 0000243D 5267 ?0355: + 0000243D 5268 ?0354: + 0000243D 5269 ?0353: + 0000243D E5 5270 PUSH HL + 0000243E FD E1 5271 POP IY + 00002440 21 48 00 5272 LD HL,72 + 00002443 09 5273 ADD HL,BC + 00002444 56 5274 LD D,(HL) + 00002445 DD 72 AE 5275 LD (IX-82),D + 00002448 23 5276 INC HL + 00002449 66 5277 LD H,(HL) + 0000244A DD 74 AF 5278 LD (IX-81),H + 0000244D FD E5 5279 PUSH IY + 0000244F D1 5280 POP DE + 00002450 CD 3B 00 5281 CALL LWRD ?0639 + 00002453 18 D2 5282 JR ?0299 + 00002455 5283 ?0351: + 00002455 69 5284 LD L,C + 00002456 60 5285 LD H,B + 00002457 5286 ?0356: + 00002457 C3 7B 04 5287 JP LWRD ?0630 + 0000245A 5288 ?0667: + 0000245A 0E 01 5289 LD C,1 + 0000245C 5290 ?0668: + 0000245C FD E5 5291 PUSH IY + 0000245E D1 5292 POP DE + 0000245F 5293 ?0666: + 0000245F 3E 16 5294 LD A,BYTE3 dbNewExpression + 00002461 21 16 20 5295 LD HL,LWRD dbNewExpression + 00002464 C3 00 00 5296 JP LWRD ?BANK_CALL_DIRECT_L08 + 00002467 5297 ?0669: + 00002467 FD 5E 02 5298 LD E,(IY+2) + 0000246A 3E BC 5299 LD A,BYTE3 dbOperatorPrecedence + 0000246C 21 BC 1F 5300 LD HL,LWRD dbOperatorPrecedence + 0000246F CD 00 00 5301 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002472 4D 5302 LD C,L + 00002473 06 00 5303 LD B,0 + 00002475 DD 6E F4 5304 LD L,(IX-12) + 00002478 DD 66 F5 5305 LD H,(IX-11) + 0000247B F6 80 5306 OR 128 + 0000247D ED 42 5307 SBC HL,BC + 0000247F C9 5308 RET + 00002480 5309 ?0670: + 00002480 FD 5E 02 5310 LD E,(IY+2) + 00002483 3E BC 5311 LD A,BYTE3 dbOperatorPrecedence + 00002485 21 BC 1F 5312 LD HL,LWRD dbOperatorPrecedence + 00002488 CD 00 00 5313 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000248B 4D 5314 LD C,L + 0000248C DD 6E F4 5315 LD L,(IX-12) + 0000248F DD 66 F5 5316 LD H,(IX-11) + 00002492 F6 80 5317 OR 128 + 00002494 ED 42 5318 SBC HL,BC + 00002496 C9 5319 RET + 00002497 5320 dbDeleteExpression: + 00002497 DD E5 5321 PUSH IX + 00002499 D5 5322 PUSH DE + 0000249A DD E1 5323 POP IX + 0000249C 1A 5324 LD A,(DE) + 0000249D FE 03 5325 CP 3 + 0000249F 20 1C 5326 JR NZ,?0358 + 000024A1 5327 ?0357: + 000024A1 DD 5E 48 5328 LD E,(IX+72) + 000024A4 DD 56 49 5329 LD D,(IX+73) + 000024A7 3E 97 5330 LD A,BYTE3 dbDeleteExpression + 000024A9 21 97 24 5331 LD HL,LWRD dbDeleteExpression + 000024AC CD 00 00 5332 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000024AF DD 5E 4A 5333 LD E,(IX+74) + 000024B2 DD 56 4B 5334 LD D,(IX+75) + 000024B5 3E 97 5335 LD A,BYTE3 dbDeleteExpression + 000024B7 21 97 24 5336 LD HL,LWRD dbDeleteExpression + 000024BA CD 00 00 5337 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000024BD 5338 ?0358: + 000024BD C3 83 0B 5339 JP LWRD ?0636 + 000024C0 5340 dbEvaluateExpression: + 000024C0 FD E5 5341 PUSH IY + 000024C2 DD E5 5342 PUSH IX + 000024C4 DD 21 00 00 5343 LD IX,0 + 000024C8 DD 39 5344 ADD IX,SP + 000024CA C5 5345 PUSH BC + 000024CB F5 5346 PUSH AF + 000024CC F5 5347 PUSH AF + 000024CD F5 5348 PUSH AF + 000024CE D5 5349 PUSH DE + 000024CF FD E1 5350 POP IY + 000024D1 1A 5351 LD A,(DE) + 000024D2 FE 03 5352 CP 3 + 000024D4 C2 90 28 5353 JP NZ,?0360 + 000024D7 5354 ?0359: + 000024D7 FD 5E 48 5355 LD E,(IY+72) + 000024DA FD 56 49 5356 LD D,(IY+73) + 000024DD 3E C0 5357 LD A,BYTE3 dbEvaluateExpression + 000024DF 21 C0 24 5358 LD HL,LWRD dbEvaluateExpression + 000024E2 CD 00 00 5359 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000024E5 DD 4E FE 5360 LD C,(IX-2) + 000024E8 DD 46 FF 5361 LD B,(IX-1) + 000024EB FD 5E 4A 5362 LD E,(IY+74) + 000024EE FD 56 4B 5363 LD D,(IY+75) + 000024F1 3E C0 5364 LD A,BYTE3 dbEvaluateExpression + 000024F3 21 C0 24 5365 LD HL,LWRD dbEvaluateExpression + 000024F6 CD 00 00 5366 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000024F9 FD 5E 02 5367 LD E,(IY+2) + 000024FC 3E BC 5368 LD A,BYTE3 dbOperatorPrecedence + 000024FE 21 BC 1F 5369 LD HL,LWRD dbOperatorPrecedence + 00002501 CD 00 00 5370 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002504 7D 5371 LD A,L + 00002505 FE 05 5372 CP 5 + 00002507 FD 6E 48 5373 LD L,(IY+72) + 0000250A FD 66 49 5374 LD H,(IY+73) + 0000250D 23 5375 INC HL + 0000250E D2 05 26 5376 JP NC,?0362 + 00002511 5377 ?0361: + 00002511 46 5378 LD B,(HL) + 00002512 05 5379 DEC B + 00002513 C2 05 2A 5380 JP NZ,?0454 + 00002516 FD 6E 4A 5381 LD L,(IY+74) + 00002519 FD 66 4B 5382 LD H,(IY+75) + 0000251C 23 5383 INC HL + 0000251D 46 5384 LD B,(HL) + 0000251E 05 5385 DEC B + 0000251F C2 05 2A 5386 JP NZ,?0454 + 00002522 5387 ?0366: + 00002522 5388 ?0365: + 00002522 5389 ?0363: + 00002522 FD 36 01 01 5390 LD (IY+1),1 + 00002526 FD 7E 02 5391 LD A,(IY+2) + 00002529 FE 2B 5392 CP 43 + 0000252B 20 2D 5393 JR NZ,?0369 + 0000252D 5394 ?0368: + 0000252D FD 6E 4A 5395 LD L,(IY+74) + 00002530 FD 66 4B 5396 LD H,(IY+75) + 00002533 0E 24 5397 LD C,36 + 00002535 09 5398 ADD HL,BC + 00002536 4E 5399 LD C,(HL) + 00002537 23 5400 INC HL + 00002538 46 5401 LD B,(HL) + 00002539 23 5402 INC HL + 0000253A 5E 5403 LD E,(HL) + 0000253B 23 5404 INC HL + 0000253C 56 5405 LD D,(HL) + 0000253D D5 5406 PUSH DE + 0000253E C5 5407 PUSH BC + 0000253F FD 6E 48 5408 LD L,(IY+72) + 00002542 FD 66 49 5409 LD H,(IY+73) + 00002545 01 24 00 5410 LD BC,36 + 00002548 09 5411 ADD HL,BC + 00002549 4E 5412 LD C,(HL) + 0000254A 23 5413 INC HL + 0000254B 46 5414 LD B,(HL) + 0000254C 23 5415 INC HL + 0000254D 5E 5416 LD E,(HL) + 0000254E 23 5417 INC HL + 0000254F 56 5418 LD D,(HL) + 00002550 69 5419 LD L,C + 00002551 60 5420 LD H,B + 00002552 C1 5421 POP BC + 00002553 09 5422 ADD HL,BC + 00002554 EB 5423 EX DE,HL + 00002555 C1 5424 POP BC + 00002556 ED 4A 5425 ADC HL,BC + 00002558 18 33 5426 JR ?0564 + 0000255A 5427 ?0369: + 0000255A FE 2D 5428 CP 45 + 0000255C 20 34 5429 JR NZ,?0370 + 0000255E FD 6E 4A 5430 LD L,(IY+74) + 00002561 FD 66 4B 5431 LD H,(IY+75) + 00002564 0E 24 5432 LD C,36 + 00002566 09 5433 ADD HL,BC + 00002567 4E 5434 LD C,(HL) + 00002568 23 5435 INC HL + 00002569 46 5436 LD B,(HL) + 0000256A 23 5437 INC HL + 0000256B 5E 5438 LD E,(HL) + 0000256C 23 5439 INC HL + 0000256D 56 5440 LD D,(HL) + 0000256E 69 5441 LD L,C + 0000256F 60 5442 LD H,B + 00002570 D5 5443 PUSH DE + 00002571 E5 5444 PUSH HL + 00002572 FD 6E 48 5445 LD L,(IY+72) + 00002575 FD 66 49 5446 LD H,(IY+73) + 00002578 01 24 00 5447 LD BC,36 + 0000257B 09 5448 ADD HL,BC + 0000257C 4E 5449 LD C,(HL) + 0000257D 23 5450 INC HL + 0000257E 46 5451 LD B,(HL) + 0000257F 23 5452 INC HL + 00002580 5E 5453 LD E,(HL) + 00002581 23 5454 INC HL + 00002582 56 5455 LD D,(HL) + 00002583 69 5456 LD L,C + 00002584 60 5457 LD H,B + 00002585 A7 5458 AND A + 00002586 C1 5459 POP BC + 00002587 ED 42 5460 SBC HL,BC + 00002589 EB 5461 EX DE,HL + 0000258A C1 5462 POP BC + 0000258B ED 42 5463 SBC HL,BC + 0000258D 5464 ?0564: + 0000258D 4D 5465 LD C,L + 0000258E 44 5466 LD B,H + 0000258F EB 5467 EX DE,HL + 00002590 18 58 5468 JR ?0583 + 00002592 5469 ?0370: + 00002592 FE 2A 5470 CP 42 + 00002594 20 29 5471 JR NZ,?0371 + 00002596 FD 6E 48 5472 LD L,(IY+72) + 00002599 FD 66 49 5473 LD H,(IY+73) + 0000259C 0E 24 5474 LD C,36 + 0000259E 09 5475 ADD HL,BC + 0000259F 4E 5476 LD C,(HL) + 000025A0 23 5477 INC HL + 000025A1 46 5478 LD B,(HL) + 000025A2 23 5479 INC HL + 000025A3 5E 5480 LD E,(HL) + 000025A4 23 5481 INC HL + 000025A5 56 5482 LD D,(HL) + 000025A6 D5 5483 PUSH DE + 000025A7 C5 5484 PUSH BC + 000025A8 FD 6E 4A 5485 LD L,(IY+74) + 000025AB FD 66 4B 5486 LD H,(IY+75) + 000025AE 01 24 00 5487 LD BC,36 + 000025B1 09 5488 ADD HL,BC + 000025B2 5E 5489 LD E,(HL) + 000025B3 23 5490 INC HL + 000025B4 56 5491 LD D,(HL) + 000025B5 23 5492 INC HL + 000025B6 4E 5493 LD C,(HL) + 000025B7 23 5494 INC HL + 000025B8 46 5495 LD B,(HL) + 000025B9 EB 5496 EX DE,HL + 000025BA CD 00 00 5497 CALL LWRD ?L_MUL_L03 + 000025BD 18 2B 5498 JR ?0583 + 000025BF 5499 ?0371: + 000025BF FE 2F 5500 CP 47 + 000025C1 20 33 5501 JR NZ,?0367 + 000025C3 FD 6E 4A 5502 LD L,(IY+74) + 000025C6 FD 66 4B 5503 LD H,(IY+75) + 000025C9 0E 24 5504 LD C,36 + 000025CB 09 5505 ADD HL,BC + 000025CC 4E 5506 LD C,(HL) + 000025CD 23 5507 INC HL + 000025CE 46 5508 LD B,(HL) + 000025CF 23 5509 INC HL + 000025D0 5E 5510 LD E,(HL) + 000025D1 23 5511 INC HL + 000025D2 56 5512 LD D,(HL) + 000025D3 D5 5513 PUSH DE + 000025D4 C5 5514 PUSH BC + 000025D5 FD 6E 48 5515 LD L,(IY+72) + 000025D8 FD 66 49 5516 LD H,(IY+73) + 000025DB 01 24 00 5517 LD BC,36 + 000025DE 09 5518 ADD HL,BC + 000025DF 5E 5519 LD E,(HL) + 000025E0 23 5520 INC HL + 000025E1 56 5521 LD D,(HL) + 000025E2 23 5522 INC HL + 000025E3 4E 5523 LD C,(HL) + 000025E4 23 5524 INC HL + 000025E5 46 5525 LD B,(HL) + 000025E6 EB 5526 EX DE,HL + 000025E7 CD 00 00 5527 CALL LWRD ?SL_DIV_L03 + 000025EA 5528 ?0583: + 000025EA DD 75 F8 5529 LD (IX-8),L + 000025ED DD 74 F9 5530 LD (IX-7),H + 000025F0 DD 71 FA 5531 LD (IX-6),C + 000025F3 DD 70 FB 5532 LD (IX-5),B + 000025F6 5533 ?0367: + 000025F6 DD 4E FA 5534 LD C,(IX-6) + 000025F9 DD 46 FB 5535 LD B,(IX-5) + 000025FC DD 6E F8 5536 LD L,(IX-8) + 000025FF DD 66 F9 5537 LD H,(IX-7) + 00002602 C3 AC 29 5538 JP LWRD ?0606 + 00002605 5539 ?0364: + 00002605 5540 ?0362: + 00002605 7E 5541 LD A,(HL) + 00002606 FE 03 5542 CP 3 + 00002608 CA 3A 27 5543 JP Z,?0377 + 0000260B FD 6E 4A 5544 LD L,(IY+74) + 0000260E FD 66 4B 5545 LD H,(IY+75) + 00002611 23 5546 INC HL + 00002612 7E 5547 LD A,(HL) + 00002613 FE 03 5548 CP 3 + 00002615 CA 3A 27 5549 JP Z,?0377 + 00002618 5550 ?0376: + 00002618 5551 ?0375: + 00002618 5552 ?0373: + 00002618 FD 36 01 04 5553 LD (IY+1),4 + 0000261C FD 5E 02 5554 LD E,(IY+2) + 0000261F CD 00 00 5555 CALL LWRD ?C_V_SWITCH_L06 + 00002622 07 00 5556 DEFW 7 + 00002624 26 5557 DEFB 38 + 00002625 3C 5558 DEFB 60 + 00002626 3D 5559 DEFB 61 + 00002627 3E 5560 DEFB 62 + 00002628 5B 5561 DEFB 91 + 00002629 5D 5562 DEFB 93 + 0000262A 7C 5563 DEFB 124 + 0000262B 3A 27 5564 DEFW ?0377 + 0000262D 18 27 5565 DEFW ?0399 + 0000262F DC 26 5566 DEFW ?0394 + 00002631 B9 26 5567 DEFW ?0390 + 00002633 96 26 5568 DEFW ?0386 + 00002635 3B 26 5569 DEFW ?0378 + 00002637 79 26 5570 DEFW ?0382 + 00002639 00 27 5571 DEFW ?0398 + 0000263B 5572 ?0378: + 0000263B FD 6E 4A 5573 LD L,(IY+74) + 0000263E FD 66 4B 5574 LD H,(IY+75) + 00002641 01 24 00 5575 LD BC,36 + 00002644 09 5576 ADD HL,BC + 00002645 4E 5577 LD C,(HL) + 00002646 23 5578 INC HL + 00002647 46 5579 LD B,(HL) + 00002648 23 5580 INC HL + 00002649 5E 5581 LD E,(HL) + 0000264A 23 5582 INC HL + 0000264B 56 5583 LD D,(HL) + 0000264C D5 5584 PUSH DE + 0000264D C5 5585 PUSH BC + 0000264E FD 6E 48 5586 LD L,(IY+72) + 00002651 FD 66 49 5587 LD H,(IY+73) + 00002654 01 24 00 5588 LD BC,36 + 00002657 09 5589 ADD HL,BC + 00002658 4E 5590 LD C,(HL) + 00002659 23 5591 INC HL + 0000265A 46 5592 LD B,(HL) + 0000265B 23 5593 INC HL + 0000265C 5E 5594 LD E,(HL) + 0000265D 23 5595 INC HL + 0000265E 56 5596 LD D,(HL) + 0000265F 69 5597 LD L,C + 00002660 60 5598 LD H,B + 00002661 C1 5599 POP BC + 00002662 A7 5600 AND A + 00002663 ED 42 5601 SBC HL,BC + 00002665 C1 5602 POP BC + 00002666 20 0B 5603 JR NZ,?0380 + 00002668 EB 5604 EX DE,HL + 00002669 ED 42 5605 SBC HL,BC + 0000266B 20 06 5606 JR NZ,?0380 + 0000266D 4D 5607 LD C,L + 0000266E 44 5608 LD B,H + 0000266F 23 5609 INC HL + 00002670 C3 2E 27 5610 JP LWRD ?0598 + 00002673 5611 ?0380: + 00002673 01 00 00 5612 LD BC,0 + 00002676 C3 FC 26 5613 JP LWRD ?0396 + 00002679 5614 ?0382: + 00002679 FD 6E 4A 5615 LD L,(IY+74) + 0000267C FD 66 4B 5616 LD H,(IY+75) + 0000267F 01 24 00 5617 LD BC,36 + 00002682 09 5618 ADD HL,BC + 00002683 4E 5619 LD C,(HL) + 00002684 23 5620 INC HL + 00002685 46 5621 LD B,(HL) + 00002686 23 5622 INC HL + 00002687 5E 5623 LD E,(HL) + 00002688 23 5624 INC HL + 00002689 56 5625 LD D,(HL) + 0000268A D5 5626 PUSH DE + 0000268B C5 5627 PUSH BC + 0000268C CD 08 2A 5628 CALL LWRD ?0671 + 0000268F 01 00 00 5629 LD BC,0 + 00002692 30 68 5630 JR NC,?0396 + 00002694 18 61 5631 JR ?0597 + 00002696 5632 ?0386: + 00002696 FD 6E 48 5633 LD L,(IY+72) + 00002699 FD 66 49 5634 LD H,(IY+73) + 0000269C 01 24 00 5635 LD BC,36 + 0000269F 09 5636 ADD HL,BC + 000026A0 4E 5637 LD C,(HL) + 000026A1 23 5638 INC HL + 000026A2 46 5639 LD B,(HL) + 000026A3 23 5640 INC HL + 000026A4 5E 5641 LD E,(HL) + 000026A5 23 5642 INC HL + 000026A6 56 5643 LD D,(HL) + 000026A7 D5 5644 PUSH DE + 000026A8 C5 5645 PUSH BC + 000026A9 FD 6E 4A 5646 LD L,(IY+74) + 000026AC FD 66 4B 5647 LD H,(IY+75) + 000026AF CD 0E 2A 5648 CALL LWRD ?0672 + 000026B2 01 00 00 5649 LD BC,0 + 000026B5 30 45 5650 JR NC,?0396 + 000026B7 18 3E 5651 JR ?0597 + 000026B9 5652 ?0390: + 000026B9 FD 6E 48 5653 LD L,(IY+72) + 000026BC FD 66 49 5654 LD H,(IY+73) + 000026BF 01 24 00 5655 LD BC,36 + 000026C2 09 5656 ADD HL,BC + 000026C3 4E 5657 LD C,(HL) + 000026C4 23 5658 INC HL + 000026C5 46 5659 LD B,(HL) + 000026C6 23 5660 INC HL + 000026C7 5E 5661 LD E,(HL) + 000026C8 23 5662 INC HL + 000026C9 56 5663 LD D,(HL) + 000026CA D5 5664 PUSH DE + 000026CB C5 5665 PUSH BC + 000026CC FD 6E 4A 5666 LD L,(IY+74) + 000026CF FD 66 4B 5667 LD H,(IY+75) + 000026D2 CD 0E 2A 5668 CALL LWRD ?0672 + 000026D5 01 00 00 5669 LD BC,0 + 000026D8 38 22 5670 JR C,?0396 + 000026DA 18 1B 5671 JR ?0597 + 000026DC 5672 ?0394: + 000026DC FD 6E 4A 5673 LD L,(IY+74) + 000026DF FD 66 4B 5674 LD H,(IY+75) + 000026E2 01 24 00 5675 LD BC,36 + 000026E5 09 5676 ADD HL,BC + 000026E6 4E 5677 LD C,(HL) + 000026E7 23 5678 INC HL + 000026E8 46 5679 LD B,(HL) + 000026E9 23 5680 INC HL + 000026EA 5E 5681 LD E,(HL) + 000026EB 23 5682 INC HL + 000026EC 56 5683 LD D,(HL) + 000026ED D5 5684 PUSH DE + 000026EE C5 5685 PUSH BC + 000026EF CD 08 2A 5686 CALL LWRD ?0671 + 000026F2 01 00 00 5687 LD BC,0 + 000026F5 38 05 5688 JR C,?0396 + 000026F7 5689 ?0597: + 000026F7 21 01 00 5690 LD HL,1 + 000026FA 18 32 5691 JR ?0598 + 000026FC 5692 ?0396: + 000026FC 69 5693 LD L,C + 000026FD 60 5694 LD H,B + 000026FE 18 2E 5695 JR ?0598 + 00002700 5696 ?0398: + 00002700 FD 6E 4A 5697 LD L,(IY+74) + 00002703 FD 66 4B 5698 LD H,(IY+75) + 00002706 01 24 00 5699 LD BC,36 + 00002709 09 5700 ADD HL,BC + 0000270A 4E 5701 LD C,(HL) + 0000270B 23 5702 INC HL + 0000270C 46 5703 LD B,(HL) + 0000270D 23 5704 INC HL + 0000270E 5E 5705 LD E,(HL) + 0000270F 23 5706 INC HL + 00002710 56 5707 LD D,(HL) + 00002711 D5 5708 PUSH DE + 00002712 C5 5709 PUSH BC + 00002713 CD 1D 2A 5710 CALL LWRD ?0673 + 00002716 18 16 5711 JR ?0598 + 00002718 5712 ?0399: + 00002718 FD 6E 4A 5713 LD L,(IY+74) + 0000271B FD 66 4B 5714 LD H,(IY+75) + 0000271E 01 24 00 5715 LD BC,36 + 00002721 09 5716 ADD HL,BC + 00002722 4E 5717 LD C,(HL) + 00002723 23 5718 INC HL + 00002724 46 5719 LD B,(HL) + 00002725 23 5720 INC HL + 00002726 5E 5721 LD E,(HL) + 00002727 23 5722 INC HL + 00002728 56 5723 LD D,(HL) + 00002729 D5 5724 PUSH DE + 0000272A C5 5725 PUSH BC + 0000272B CD 32 2A 5726 CALL LWRD ?0674 + 0000272E 5727 ?0598: + 0000272E FD 75 24 5728 LD (IY+36),L + 00002731 FD 74 25 5729 LD (IY+37),H + 00002734 FD 71 26 5730 LD (IY+38),C + 00002737 FD 70 27 5731 LD (IY+39),B + 0000273A 5732 ?0377: + 0000273A 5733 ?0374: + 0000273A FD 6E 48 5734 LD L,(IY+72) + 0000273D FD 66 49 5735 LD H,(IY+73) + 00002740 23 5736 INC HL + 00002741 7E 5737 LD A,(HL) + 00002742 FE 03 5738 CP 3 + 00002744 C2 34 28 5739 JP NZ,?0404 + 00002747 FD 6E 4A 5740 LD L,(IY+74) + 0000274A FD 66 4B 5741 LD H,(IY+75) + 0000274D 23 5742 INC HL + 0000274E 7E 5743 LD A,(HL) + 0000274F FE 03 5744 CP 3 + 00002751 C2 34 28 5745 JP NZ,?0404 + 00002754 5746 ?0403: + 00002754 5747 ?0402: + 00002754 5748 ?0400: + 00002754 FD 6E 4A 5749 LD L,(IY+74) + 00002757 FD 66 4B 5750 LD H,(IY+75) + 0000275A 01 28 00 5751 LD BC,40 + 0000275D 09 5752 ADD HL,BC + 0000275E 4D 5753 LD C,L + 0000275F 44 5754 LD B,H + 00002760 FD 6E 48 5755 LD L,(IY+72) + 00002763 FD 66 49 5756 LD H,(IY+73) + 00002766 11 28 00 5757 LD DE,40 + 00002769 19 5758 ADD HL,DE + 0000276A EB 5759 EX DE,HL + 0000276B 3E 00 5760 LD A,BYTE3 strcmp + 0000276D 21 00 00 5761 LD HL,LWRD strcmp + 00002770 CD 00 00 5762 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002773 FD 5E 02 5763 LD E,(IY+2) + 00002776 CD 00 00 5764 CALL LWRD ?C_V_SWITCH_L06 + 00002779 06 00 5765 DEFW 6 + 0000277B 2B 5766 DEFB 43 + 0000277C 3C 5767 DEFB 60 + 0000277D 3D 5768 DEFB 61 + 0000277E 3E 5769 DEFB 62 + 0000277F 5B 5770 DEFB 91 + 00002780 5D 5771 DEFB 93 + 00002781 34 28 5772 DEFW ?0404 + 00002783 DF 27 5773 DEFW ?0421 + 00002785 C6 27 5774 DEFW ?0417 + 00002787 AD 27 5775 DEFW ?0413 + 00002789 8F 27 5776 DEFW ?0405 + 0000278B A0 27 5777 DEFW ?0409 + 0000278D FF 27 5778 DEFW ?0425 + 0000278F 5779 ?0405: + 0000278F FD 36 01 04 5780 LD (IY+1),4 + 00002793 7D 5781 LD A,L + 00002794 B4 5782 OR H + 00002795 20 04 5783 JR NZ,?0407 + 00002797 4F 5784 LD C,A + 00002798 47 5785 LD B,A + 00002799 18 4F 5786 JR ?0604 + 0000279B 5787 ?0407: + 0000279B 01 00 00 5788 LD BC,0 + 0000279E 18 4F 5789 JR ?0423 + 000027A0 5790 ?0409: + 000027A0 FD 36 01 04 5791 LD (IY+1),4 + 000027A4 CB 7C 5792 BIT 7,H + 000027A6 01 00 00 5793 LD BC,0 + 000027A9 28 44 5794 JR Z,?0423 + 000027AB 18 3D 5795 JR ?0604 + 000027AD 5796 ?0413: + 000027AD FD 36 01 04 5797 LD (IY+1),4 + 000027B1 4D 5798 LD C,L + 000027B2 44 5799 LD B,H + 000027B3 21 00 00 5800 LD HL,0 + 000027B6 F6 80 5801 OR 128 + 000027B8 ED 42 5802 SBC HL,BC + 000027BA E2 BE 27 5803 JP PO,?0560 + 000027BD AC 5804 XOR H + 000027BE 5805 ?0560: + 000027BE 01 00 00 5806 LD BC,0 + 000027C1 F2 EF 27 5807 JP P,?0423 + 000027C4 18 24 5808 JR ?0604 + 000027C6 5809 ?0417: + 000027C6 FD 36 01 04 5810 LD (IY+1),4 + 000027CA 4D 5811 LD C,L + 000027CB 44 5812 LD B,H + 000027CC 21 00 00 5813 LD HL,0 + 000027CF F6 80 5814 OR 128 + 000027D1 ED 42 5815 SBC HL,BC + 000027D3 E2 D7 27 5816 JP PO,?0561 + 000027D6 AC 5817 XOR H + 000027D7 5818 ?0561: + 000027D7 01 00 00 5819 LD BC,0 + 000027DA FA EF 27 5820 JP M,?0423 + 000027DD 18 0B 5821 JR ?0604 + 000027DF 5822 ?0421: + 000027DF FD 36 01 04 5823 LD (IY+1),4 + 000027E3 CB 7C 5824 BIT 7,H + 000027E5 01 00 00 5825 LD BC,0 + 000027E8 20 05 5826 JR NZ,?0423 + 000027EA 5827 ?0604: + 000027EA 21 01 00 5828 LD HL,1 + 000027ED 18 02 5829 JR ?0424 + 000027EF 5830 ?0423: + 000027EF 69 5831 LD L,C + 000027F0 60 5832 LD H,B + 000027F1 5833 ?0424: + 000027F1 FD 75 24 5834 LD (IY+36),L + 000027F4 FD 74 25 5835 LD (IY+37),H + 000027F7 FD 71 26 5836 LD (IY+38),C + 000027FA FD 70 27 5837 LD (IY+39),B + 000027FD 18 35 5838 JR ?0404 + 000027FF 5839 ?0425: + 000027FF FD 36 01 03 5840 LD (IY+1),3 + 00002803 FD 6E 48 5841 LD L,(IY+72) + 00002806 FD 66 49 5842 LD H,(IY+73) + 00002809 01 28 00 5843 LD BC,40 + 0000280C 09 5844 ADD HL,BC + 0000280D 4D 5845 LD C,L + 0000280E 44 5846 LD B,H + 0000280F 21 28 00 5847 LD HL,40 + 00002812 FD E5 5848 PUSH IY + 00002814 D1 5849 POP DE + 00002815 CD AB 04 5850 CALL LWRD ?0653 + 00002818 FD 6E 4A 5851 LD L,(IY+74) + 0000281B FD 66 4B 5852 LD H,(IY+75) + 0000281E 01 28 00 5853 LD BC,40 + 00002821 09 5854 ADD HL,BC + 00002822 4D 5855 LD C,L + 00002823 44 5856 LD B,H + 00002824 21 28 00 5857 LD HL,40 + 00002827 FD E5 5858 PUSH IY + 00002829 D1 5859 POP DE + 0000282A 19 5860 ADD HL,DE + 0000282B EB 5861 EX DE,HL + 0000282C 3E 00 5862 LD A,BYTE3 strcat + 0000282E 21 00 00 5863 LD HL,LWRD strcat + 00002831 CD 00 00 5864 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002834 5865 ?0404: + 00002834 5866 ?0401: + 00002834 FD 6E 48 5867 LD L,(IY+72) + 00002837 FD 66 49 5868 LD H,(IY+73) + 0000283A 23 5869 INC HL + 0000283B 7E 5870 LD A,(HL) + 0000283C FE 04 5871 CP 4 + 0000283E C2 05 2A 5872 JP NZ,?0454 + 00002841 FD 6E 4A 5873 LD L,(IY+74) + 00002844 FD 66 4B 5874 LD H,(IY+75) + 00002847 23 5875 INC HL + 00002848 7E 5876 LD A,(HL) + 00002849 FE 04 5877 CP 4 + 0000284B C2 05 2A 5878 JP NZ,?0454 + 0000284E 5879 ?0429: + 0000284E 5880 ?0428: + 0000284E 5881 ?0426: + 0000284E FD 36 01 04 5882 LD (IY+1),4 + 00002852 FD 7E 02 5883 LD A,(IY+2) + 00002855 FE 26 5884 CP 38 + 00002857 20 19 5885 JR NZ,?0432 + 00002859 5886 ?0431: + 00002859 FD 6E 4A 5887 LD L,(IY+74) + 0000285C FD 66 4B 5888 LD H,(IY+75) + 0000285F 01 24 00 5889 LD BC,36 + 00002862 09 5890 ADD HL,BC + 00002863 4E 5891 LD C,(HL) + 00002864 23 5892 INC HL + 00002865 46 5893 LD B,(HL) + 00002866 23 5894 INC HL + 00002867 5E 5895 LD E,(HL) + 00002868 23 5896 INC HL + 00002869 56 5897 LD D,(HL) + 0000286A D5 5898 PUSH DE + 0000286B C5 5899 PUSH BC + 0000286C CD 1D 2A 5900 CALL LWRD ?0673 + 0000286F C3 AC 29 5901 JP LWRD ?0606 + 00002872 5902 ?0432: + 00002872 FE 7C 5903 CP 124 + 00002874 C2 05 2A 5904 JP NZ,?0454 + 00002877 FD 6E 4A 5905 LD L,(IY+74) + 0000287A FD 66 4B 5906 LD H,(IY+75) + 0000287D 01 24 00 5907 LD BC,36 + 00002880 09 5908 ADD HL,BC + 00002881 4E 5909 LD C,(HL) + 00002882 23 5910 INC HL + 00002883 46 5911 LD B,(HL) + 00002884 23 5912 INC HL + 00002885 5E 5913 LD E,(HL) + 00002886 23 5914 INC HL + 00002887 56 5915 LD D,(HL) + 00002888 D5 5916 PUSH DE + 00002889 C5 5917 PUSH BC + 0000288A CD 32 2A 5918 CALL LWRD ?0674 + 0000288D C3 AC 29 5919 JP LWRD ?0606 + 00002890 5920 ?0430: + 00002890 5921 ?0427: + 00002890 5922 ?0372: + 00002890 5923 ?0360: + 00002890 DD 36 FC FF 5924 LD (IX-4),255 + 00002894 DD 36 FD FF 5925 LD (IX-3),255 + 00002898 79 5926 LD A,C + 00002899 B0 5927 OR B + 0000289A 28 79 5928 JR Z,?0436 + 0000289C 5929 ?0434: + 0000289C 69 5930 LD L,C + 0000289D 60 5931 LD H,B + 0000289E 7E 5932 LD A,(HL) + 0000289F 23 5933 INC HL + 000028A0 66 5934 LD H,(HL) + 000028A1 6F 5935 LD L,A + 000028A2 46 5936 LD B,(HL) + 000028A3 DD 70 FA 5937 LD (IX-6),B + 000028A6 23 5938 INC HL + 000028A7 66 5939 LD H,(HL) + 000028A8 DD 74 FB 5940 LD (IX-5),H + 000028AB AF 5941 XOR A + 000028AC DD 77 F8 5942 LD (IX-8),A + 000028AF DD 77 F9 5943 LD (IX-7),A + 000028B2 5944 ?0437: + 000028B2 DD 4E FA 5945 LD C,(IX-6) + 000028B5 DD 46 FB 5946 LD B,(IX-5) + 000028B8 DD 6E F8 5947 LD L,(IX-8) + 000028BB DD 66 F9 5948 LD H,(IX-7) + 000028BE F6 80 5949 OR 128 + 000028C0 ED 42 5950 SBC HL,BC + 000028C2 E2 C6 28 5951 JP PO,?0562 + 000028C5 AC 5952 XOR H + 000028C6 5953 ?0562: + 000028C6 F2 15 29 5954 JP P,?0436 + 000028C9 5955 ?0438: + 000028C9 21 04 00 5956 LD HL,4 + 000028CC FD E5 5957 PUSH IY + 000028CE C1 5958 POP BC + 000028CF 09 5959 ADD HL,BC + 000028D0 4D 5960 LD C,L + 000028D1 44 5961 LD B,H + 000028D2 DD 6E FE 5962 LD L,(IX-2) + 000028D5 DD 66 FF 5963 LD H,(IX-1) + 000028D8 56 5964 LD D,(HL) + 000028D9 23 5965 INC HL + 000028DA 66 5966 LD H,(HL) + 000028DB 6A 5967 LD L,D + 000028DC 23 5968 INC HL + 000028DD 23 5969 INC HL + 000028DE 56 5970 LD D,(HL) + 000028DF 23 5971 INC HL + 000028E0 66 5972 LD H,(HL) + 000028E1 6A 5973 LD L,D + 000028E2 E5 5974 PUSH HL + 000028E3 DD 6E F8 5975 LD L,(IX-8) + 000028E6 DD 66 F9 5976 LD H,(IX-7) + 000028E9 29 5977 ADD HL,HL + 000028EA 29 5978 ADD HL,HL + 000028EB 5D 5979 LD E,L + 000028EC 54 5980 LD D,H + 000028ED 29 5981 ADD HL,HL + 000028EE 19 5982 ADD HL,DE + 000028EF EB 5983 EX DE,HL + 000028F0 E1 5984 POP HL + 000028F1 19 5985 ADD HL,DE + 000028F2 EB 5986 EX DE,HL + 000028F3 3E 00 5987 LD A,BYTE3 strcmp + 000028F5 21 00 00 5988 LD HL,LWRD strcmp + 000028F8 CD 00 00 5989 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000028FB 7D 5990 LD A,L + 000028FC B4 5991 OR H + 000028FD 20 0C 5992 JR NZ,?0441 + 000028FF 5993 ?0440: + 000028FF DD 6E F8 5994 LD L,(IX-8) + 00002902 DD 66 F9 5995 LD H,(IX-7) + 00002905 DD 75 FC 5996 LD (IX-4),L + 00002908 DD 74 FD 5997 LD (IX-3),H + 0000290B 5998 ?0441: + 0000290B DD 34 F8 5999 INC (IX-8) + 0000290E 20 A2 6000 JR NZ,?0437 + 00002910 DD 34 F9 6001 INC (IX-7) + 00002913 18 9D 6002 JR ?0437 + 00002915 6003 ?0436: + 00002915 6004 ?0435: + 00002915 DD CB FD 7E 6005 BIT 7,(IX-3) + 00002919 20 08 6006 JR NZ,?0444 + 0000291B DD 7E FE 6007 LD A,(IX-2) + 0000291E DD B6 FF 6008 OR (IX-1) + 00002921 20 47 6009 JR NZ,?0443 + 00002923 6010 ?0444: + 00002923 6011 ?0445: + 00002923 6012 ?0442: + 00002923 FD 7E 04 6013 LD A,(IY+4) + 00002926 FE 27 6014 CP 39 + 00002928 20 2A 6015 JR NZ,?0447 + 0000292A 6016 ?0446: + 0000292A FD 36 01 03 6017 LD (IY+1),3 + 0000292E 21 04 00 6018 LD HL,4 + 00002931 FD E5 6019 PUSH IY + 00002933 C1 6020 POP BC + 00002934 09 6021 ADD HL,BC + 00002935 4D 6022 LD C,L + 00002936 44 6023 LD B,H + 00002937 03 6024 INC BC + 00002938 21 28 00 6025 LD HL,40 + 0000293B FD E5 6026 PUSH IY + 0000293D D1 6027 POP DE + 0000293E CD AB 04 6028 CALL LWRD ?0653 + 00002941 21 28 00 6029 LD HL,40 + 00002944 FD E5 6030 PUSH IY + 00002946 C1 6031 POP BC + 00002947 09 6032 ADD HL,BC + 00002948 CD 97 04 6033 CALL LWRD ?0648 + 0000294B 09 6034 ADD HL,BC + 0000294C 01 27 00 6035 LD BC,39 + 0000294F 09 6036 ADD HL,BC + 00002950 70 6037 LD (HL),B + 00002951 C3 05 2A 6038 JP LWRD ?0454 + 00002954 6039 ?0447: + 00002954 FD 36 01 01 6040 LD (IY+1),1 + 00002958 21 04 00 6041 LD HL,4 + 0000295B FD E5 6042 PUSH IY + 0000295D C1 6043 POP BC + 0000295E 09 6044 ADD HL,BC + 0000295F EB 6045 EX DE,HL + 00002960 3E 00 6046 LD A,BYTE3 atol + 00002962 21 00 00 6047 LD HL,LWRD atol + 00002965 CD 00 00 6048 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002968 18 42 6049 JR ?0606 + 0000296A 6050 ?0448: + 0000296A 6051 ?0443: + 0000296A DD 6E FE 6052 LD L,(IX-2) + 0000296D DD 66 FF 6053 LD H,(IX-1) + 00002970 46 6054 LD B,(HL) + 00002971 23 6055 INC HL + 00002972 66 6056 LD H,(HL) + 00002973 68 6057 LD L,B + 00002974 23 6058 INC HL + 00002975 23 6059 INC HL + 00002976 46 6060 LD B,(HL) + 00002977 23 6061 INC HL + 00002978 66 6062 LD H,(HL) + 00002979 68 6063 LD L,B + 0000297A E5 6064 PUSH HL + 0000297B DD 6E FC 6065 LD L,(IX-4) + 0000297E DD 66 FD 6066 LD H,(IX-3) + 00002981 29 6067 ADD HL,HL + 00002982 29 6068 ADD HL,HL + 00002983 4D 6069 LD C,L + 00002984 44 6070 LD B,H + 00002985 29 6071 ADD HL,HL + 00002986 09 6072 ADD HL,BC + 00002987 4D 6073 LD C,L + 00002988 44 6074 LD B,H + 00002989 E1 6075 POP HL + 0000298A 09 6076 ADD HL,BC + 0000298B 01 09 00 6077 LD BC,9 + 0000298E 09 6078 ADD HL,BC + 0000298F 7E 6079 LD A,(HL) + 00002990 FE 49 6080 CP 73 + 00002992 20 26 6081 JR NZ,?0451 + 00002994 6082 ?0450: + 00002994 FD 36 01 01 6083 LD (IY+1),1 + 00002998 DD 4E FC 6084 LD C,(IX-4) + 0000299B DD 46 FD 6085 LD B,(IX-3) + 0000299E DD 5E FE 6086 LD E,(IX-2) + 000029A1 DD 56 FF 6087 LD D,(IX-1) + 000029A4 3E FD 6088 LD A,BYTE3 dbGetLong + 000029A6 21 FD 1E 6089 LD HL,LWRD dbGetLong + 000029A9 CD 00 00 6090 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000029AC 6091 ?0606: + 000029AC FD 75 24 6092 LD (IY+36),L + 000029AF FD 74 25 6093 LD (IY+37),H + 000029B2 FD 71 26 6094 LD (IY+38),C + 000029B5 FD 70 27 6095 LD (IY+39),B + 000029B8 18 4B 6096 JR ?0454 + 000029BA 6097 ?0451: + 000029BA DD 6E FE 6098 LD L,(IX-2) + 000029BD DD 66 FF 6099 LD H,(IX-1) + 000029C0 46 6100 LD B,(HL) + 000029C1 23 6101 INC HL + 000029C2 66 6102 LD H,(HL) + 000029C3 68 6103 LD L,B + 000029C4 23 6104 INC HL + 000029C5 23 6105 INC HL + 000029C6 46 6106 LD B,(HL) + 000029C7 23 6107 INC HL + 000029C8 66 6108 LD H,(HL) + 000029C9 68 6109 LD L,B + 000029CA E5 6110 PUSH HL + 000029CB DD 6E FC 6111 LD L,(IX-4) + 000029CE DD 66 FD 6112 LD H,(IX-3) + 000029D1 29 6113 ADD HL,HL + 000029D2 29 6114 ADD HL,HL + 000029D3 4D 6115 LD C,L + 000029D4 44 6116 LD B,H + 000029D5 29 6117 ADD HL,HL + 000029D6 09 6118 ADD HL,BC + 000029D7 4D 6119 LD C,L + 000029D8 44 6120 LD B,H + 000029D9 E1 6121 POP HL + 000029DA 09 6122 ADD HL,BC + 000029DB 01 09 00 6123 LD BC,9 + 000029DE 09 6124 ADD HL,BC + 000029DF 7E 6125 LD A,(HL) + 000029E0 FE 53 6126 CP 83 + 000029E2 20 21 6127 JR NZ,?0454 + 000029E4 6128 ?0453: + 000029E4 FD 36 01 03 6129 LD (IY+1),3 + 000029E8 21 28 00 6130 LD HL,40 + 000029EB FD E5 6131 PUSH IY + 000029ED C1 6132 POP BC + 000029EE 09 6133 ADD HL,BC + 000029EF E5 6134 PUSH HL + 000029F0 DD 4E FC 6135 LD C,(IX-4) + 000029F3 DD 46 FD 6136 LD B,(IX-3) + 000029F6 DD 5E FE 6137 LD E,(IX-2) + 000029F9 DD 56 FF 6138 LD D,(IX-1) + 000029FC 3E 71 6139 LD A,BYTE3 dbGetString + 000029FE 21 71 1D 6140 LD HL,LWRD dbGetString + 00002A01 CD 00 00 6141 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002A04 E1 6142 POP HL + 00002A05 6143 ?0454: + 00002A05 6144 ?0452: + 00002A05 6145 ?0449: + 00002A05 6146 ?0433: + 00002A05 C3 7B 04 6147 JP LWRD ?0630 + 00002A08 6148 ?0671: + 00002A08 FD 6E 48 6149 LD L,(IY+72) + 00002A0B FD 66 49 6150 LD H,(IY+73) + 00002A0E 6151 ?0672: + 00002A0E 01 24 00 6152 LD BC,36 + 00002A11 09 6153 ADD HL,BC + 00002A12 5E 6154 LD E,(HL) + 00002A13 23 6155 INC HL + 00002A14 56 6156 LD D,(HL) + 00002A15 23 6157 INC HL + 00002A16 4E 6158 LD C,(HL) + 00002A17 23 6159 INC HL + 00002A18 46 6160 LD B,(HL) + 00002A19 EB 6161 EX DE,HL + 00002A1A C3 00 00 6162 JP LWRD ?SL_CMP_L03 + 00002A1D 6163 ?0673: + 00002A1D FD 6E 48 6164 LD L,(IY+72) + 00002A20 FD 66 49 6165 LD H,(IY+73) + 00002A23 01 24 00 6166 LD BC,36 + 00002A26 09 6167 ADD HL,BC + 00002A27 5E 6168 LD E,(HL) + 00002A28 23 6169 INC HL + 00002A29 56 6170 LD D,(HL) + 00002A2A 23 6171 INC HL + 00002A2B 4E 6172 LD C,(HL) + 00002A2C 23 6173 INC HL + 00002A2D 46 6174 LD B,(HL) + 00002A2E EB 6175 EX DE,HL + 00002A2F C3 00 00 6176 JP LWRD ?L_AND_L03 + 00002A32 6177 ?0674: + 00002A32 FD 6E 48 6178 LD L,(IY+72) + 00002A35 FD 66 49 6179 LD H,(IY+73) + 00002A38 01 24 00 6180 LD BC,36 + 00002A3B 09 6181 ADD HL,BC + 00002A3C 5E 6182 LD E,(HL) + 00002A3D 23 6183 INC HL + 00002A3E 56 6184 LD D,(HL) + 00002A3F 23 6185 INC HL + 00002A40 4E 6186 LD C,(HL) + 00002A41 23 6187 INC HL + 00002A42 46 6188 LD B,(HL) + 00002A43 EB 6189 EX DE,HL + 00002A44 C3 00 00 6190 JP LWRD ?L_OR_L03 + 6191 RSEG CSTR + 00000000 6192 ?0066: + 00000000 53 45 4C 6193 DEFB 'SEL' + 00000003 00 6194 DEFB 0 + 00000004 6195 ?0069: + 00000004 49 4E 53 6196 DEFB 'INS' + 00000007 00 6197 DEFB 0 + 00000008 6198 ?0072: + 00000008 55 50 44 6199 DEFB 'UPD' + 0000000B 00 6200 DEFB 0 + 0000000C 6201 ?0075: + 0000000C 44 45 4C 6202 DEFB 'DEL' + 0000000F 00 6203 DEFB 0 + 00000010 6204 ?0081: + 00000010 20 46 52 20 6205 DEFB ' FR ' + 00000014 00 6206 DEFB 0 + 00000015 6207 ?0085: + 00000015 20 57 48 6208 DEFB ' WH' + 00000018 00 6209 DEFB 0 + 00000019 6210 ?0090: + 00000019 20 4F 52 44 20 6211 DEFB ' ORD ' + 0000001E 00 6212 DEFB 0 + 0000001F 6213 ?0094: + 0000001F 28 6214 DEFB '(' + 00000020 00 6215 DEFB 0 + 00000021 6216 ?0098: + 00000021 29 20 56 41 4C 28 6217 DEFB ') VAL(' + 00000027 00 6218 DEFB 0 + 00000028 6219 ?0103: + 00000028 20 53 54 20 6220 DEFB ' ST ' + 0000002C 00 6221 DEFB 0 + 0000002D 6222 ?0114: + 0000002D 2F 75 73 72 2F 64 62 6223 DEFB '/usr/db/' + 2F + 00000035 00 6224 DEFB 0 + 00000036 6225 ?0115: + 00000036 2E 54 42 4C 6226 DEFB '.TBL' + 0000003A 00 6227 DEFB 0 + 0000003B 6228 ?0116: + 0000003B 72 62 6229 DEFB 'rb' + 0000003D 00 6230 DEFB 0 + 0000003E 6231 ?0126: + 0000003E 2E 44 41 54 6232 DEFB '.DAT' + 00000042 00 6233 DEFB 0 + 00000043 6234 ?0127: + 00000043 72 2B 62 6235 DEFB 'r+b' + 00000046 00 6236 DEFB 0 + 00000047 6237 ?0146: + 00000047 22 2A 22 6238 DEFB '"*"' + 0000004A 00 6239 DEFB 0 + 0000004B 6240 ?0156: + 0000004B 72 65 73 75 6C 74 6241 DEFB 'result' + 00000051 00 6242 DEFB 0 + 00000052 6243 ?0157: + 00000052 77 62 6244 DEFB 'wb' + 00000054 00 6245 DEFB 0 + 00000055 6246 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | 1 ?0000 00000009 R + 1 ?0001 00000030 R | 1 ?0002 00000011 R + 1 ?0003 00000014 R | 1 ?0004 0000001C R + 1 ?0005 0000002A R | 1 ?0006 00000067 R + 1 ?0007 00000052 R | 1 ?0008 0000005A R + 1 ?0009 000000A0 R | 1 ?0010 0000008B R + 1 ?0011 00000093 R | 1 ?0012 00000100 R + 1 ?0013 000000CB R | 1 ?0014 00000100 R + 1 ?0015 00000289 R | 1 ?0016 0000012B R + 1 ?0017 0000013A R | 1 ?0018 00000152 R + 1 ?0019 0000016F R | 1 ?0020 00000152 R + 1 ?0021 00000152 R | 1 ?0022 0000020B R + 1 ?0023 00000218 R | 1 ?0024 0000020B R + 1 ?0025 0000020B R | 1 ?0026 0000020B R + 1 ?0027 0000020B R | 1 ?0028 0000026A R + 1 ?0029 00000272 R | 1 ?0030 0000025E R + 1 ?0031 0000025E R | 1 ?0032 0000026A R + 1 ?0033 0000026A R | 1 ?0034 00000296 R + 1 ?0035 00000297 R | 1 ?0036 0000029A R + 1 ?0037 000002C6 R | 1 ?0038 000002AB R + 1 ?0039 000002C2 R | 1 ?0040 000002C2 R + 1 ?0041 000002C2 R | 1 ?0042 000002CE R + 1 ?0043 000002DA R | 1 ?0044 00000441 R + 1 ?0045 00000319 R | 1 ?0046 0000034A R + 1 ?0047 00000337 R | 1 ?0048 00000337 R + 1 ?0049 0000034A R | 1 ?0050 0000034A R + 1 ?0051 0000038D R | 1 ?0052 00000361 R + 1 ?0053 00000371 R | 1 ?0054 0000037B R + 1 ?0055 0000037E R | 1 ?0056 00000380 R + 1 ?0057 0000038A R | 1 ?0058 0000038D R + 1 ?0059 000003AC R | 1 ?0060 000003C9 R + 1 ?0061 000003AC R | 1 ?0062 000003AC R + 1 ?0063 0000042A R | 1 ?0064 000004EB R + 1 ?0065 000004F5 R | 2 ?0066 00000000 R + 1 ?0067 00000507 R | 1 ?0068 00000511 R + 2 ?0069 00000004 R | 1 ?0070 00000523 R + 1 ?0071 0000052D R | 2 ?0072 00000008 R + 1 ?0073 0000053F R | 1 ?0074 0000054C R + 2 ?0075 0000000C R | 1 ?0076 0000054F R + 1 ?0077 000005A2 R | 1 ?0078 000005AA R + 1 ?0079 000005D4 R | 1 ?0080 000005E1 R + 2 ?0081 00000010 R | 1 ?0082 000005E7 R + 1 ?0083 00000611 R | 1 ?0084 0000064D R + 2 ?0085 00000015 R | 1 ?0086 0000062C R + 1 ?0087 00000634 R | 1 ?0088 0000065C R + 1 ?0089 00000682 R | 2 ?0090 00000019 R + 1 ?0091 00000685 R | 1 ?0092 000006E1 R + 1 ?0093 000006E9 R | 2 ?0094 0000001F R + 1 ?0095 000006E9 R | 1 ?0096 00000712 R + 1 ?0097 00000732 R | 2 ?0098 00000021 R + 1 ?0099 00000737 R | 1 ?0100 0000073A R + 1 ?0101 0000078F R | 1 ?0102 0000079C R + 2 ?0103 00000028 R | 1 ?0104 000007A1 R + 1 ?0105 000007CC R | 1 ?0106 00000804 R + 1 ?0107 000007E8 R | 1 ?0108 000007F1 R + 1 ?0109 00000807 R | 1 ?0110 00000861 R + 1 ?0111 00000899 R | 1 ?0112 0000087D R + 1 ?0113 00000886 R | 2 ?0114 0000002D R + 2 ?0115 00000036 R | 2 ?0116 0000003B R + 1 ?0117 00000937 R | 1 ?0118 00000937 R + 1 ?0119 00000937 R | 1 ?0120 00000937 R + 1 ?0121 00000B2A R | 1 ?0122 00000A3F R + 1 ?0123 00000982 R | 1 ?0124 00000999 R + 2 ?0126 0000003E R | 2 ?0127 00000043 R + 1 ?0128 00000ABF R | 1 ?0129 00000ACE R + 1 ?0130 00000ABF R | 1 ?0131 00000ABF R + 1 ?0132 00000B2A R | 1 ?0133 00000C27 R + 1 ?0134 00000BEB R | 1 ?0135 00000C00 R + 1 ?0137 00000C9E R | 1 ?0138 00000C5A R + 1 ?0139 00000C6E R | 1 ?0141 00000C95 R + 1 ?0142 00000C9A R | 1 ?0143 00000CA1 R + 1 ?0144 00000D37 R | 1 ?0145 00000E2E R + 2 ?0146 00000047 R | 1 ?0147 00000E2E R + 1 ?0148 00000D5C R | 1 ?0149 00000D73 R + 1 ?0151 00000F61 R | 1 ?0152 00000F61 R + 1 ?0153 00000E5C R | 1 ?0154 00000E73 R + 2 ?0156 0000004B R | 2 ?0157 00000052 R + 1 ?0158 00000FFA R | 1 ?0159 00001011 R + 1 ?0160 00001021 R | 1 ?0161 00001171 R + 1 ?0162 00001028 R | 1 ?0163 00001046 R + 1 ?0165 00001079 R | 1 ?0166 00001165 R + 1 ?0167 00001113 R | 1 ?0168 00001091 R + 1 ?0169 000010A8 R | 1 ?0171 0000113C R + 1 ?0172 00001165 R | 1 ?0173 000012F9 R + 1 ?0174 000012C9 R | 1 ?0175 000012E0 R + 1 ?0177 000014E4 R | 1 ?0178 00001340 R + 1 ?0179 00001357 R | 1 ?0181 000013D4 R + 1 ?0182 00001458 R | 1 ?0183 00001458 R + 1 ?0184 000013F6 R | 1 ?0185 0000141E R + 1 ?0186 0000142C R | 1 ?0187 00001443 R + 1 ?0188 00001458 R | 1 ?0189 0000144F R + 1 ?0190 00001458 R | 1 ?0191 000014BE R + 1 ?0192 000014BE R | 1 ?0193 00001464 R + 1 ?0194 0000146D R | 1 ?0195 0000148E R + 1 ?0196 000014BE R | 1 ?0197 0000149A R + 1 ?0198 000014BE R | 1 ?0199 000014F3 R + 1 ?0200 00001543 R | 1 ?0201 0000160A R + 1 ?0202 000015E3 R | 1 ?0203 000015AF R + 1 ?0204 000015B9 R | 1 ?0205 000016A1 R + 1 ?0206 000016B8 R | 1 ?0207 000016BA R + 1 ?0208 000017AC R | 1 ?0209 000016F0 R + 1 ?0210 00001707 R | 1 ?0212 00001738 R + 1 ?0213 000017A0 R | 1 ?0214 00001743 R + 1 ?0215 000017A0 R | 1 ?0216 0000189D R + 1 ?0217 000018B4 R | 1 ?0218 000018B6 R + 1 ?0219 0000198E R | 1 ?0220 00001909 R + 1 ?0221 00001920 R | 1 ?0223 00001BB3 R + 1 ?0224 00001995 R | 1 ?0225 000019AC R + 1 ?0227 000019DE R | 1 ?0228 00001BA7 R + 1 ?0229 000019EA R | 1 ?0230 00001BA7 R + 1 ?0231 00001A4B R | 1 ?0232 00001A0B R + 1 ?0233 00001A22 R | 1 ?0235 00001B73 R + 1 ?0236 00001A62 R | 1 ?0237 00001A79 R + 1 ?0239 00001B56 R | 1 ?0240 00001ACA R + 1 ?0241 00001AFE R | 1 ?0242 00001C02 R + 1 ?0243 00001BC8 R | 1 ?0244 00001BDF R + 1 ?0246 00001C36 R | 1 ?0247 00001C3A R + 1 ?0248 00001C79 R | 1 ?0249 00001C41 R + 1 ?0250 00001C4B R | 1 ?0251 00001C59 R + 1 ?0252 00001C67 R | 1 ?0253 00001C87 R + 1 ?0254 00001CB0 R | 1 ?0255 00001CB9 R + 1 ?0256 00001CD0 R | 1 ?0257 00001CE4 R + 1 ?0258 00001D22 R | 1 ?0259 00001D2E R + 1 ?0260 00001D3F R | 1 ?0261 00001D36 R + 1 ?0262 00001D39 R | 1 ?0263 00001E7A R + 1 ?0264 00001DC7 R | 1 ?0265 00001DE2 R + 1 ?0266 00001E0D R | 1 ?0267 00001E2E R + 1 ?0268 00001E7A R | 1 ?0269 00001E54 R + 1 ?0270 00001E7A R | 1 ?0271 00001EFD R + 1 ?0272 00001ED0 R | 1 ?0273 00001EE6 R + 1 ?0274 00001EF9 R | 1 ?0275 00001EF9 R + 1 ?0276 00001FBC R | 1 ?0277 00001F52 R + 1 ?0278 00001F6A R | 1 ?0279 00001FA1 R + 1 ?0280 00001FAC R | 1 ?0281 00001FB6 R + 1 ?0282 00001FB9 R | 1 ?0283 00002016 R + 1 ?0284 00001FF4 R | 1 ?0285 00001FF8 R + 1 ?0286 00001FFC R | 1 ?0287 00002000 R + 1 ?0288 00002004 R | 1 ?0289 00002008 R + 1 ?0290 0000200C R | 1 ?0291 00002010 R + 1 ?0292 00002012 R | 1 ?0293 00002079 R + 1 ?0294 0000209D R | 1 ?0295 000020CA R + 1 ?0296 000020A4 R | 1 ?0297 000020B4 R + 1 ?0299 00002427 R | 1 ?0301 000020DB R + 1 ?0302 000020E2 R | 1 ?0303 00002108 R + 1 ?0304 00002126 R | 1 ?0305 00002403 R + 1 ?0306 0000212B R | 1 ?0307 00002189 R + 1 ?0308 0000213E R | 1 ?0309 00002146 R + 1 ?0310 0000215A R | 1 ?0311 00002189 R + 1 ?0312 00002403 R | 1 ?0313 0000219D R + 1 ?0314 000021E3 R | 1 ?0315 000021A5 R + 1 ?0316 000021BF R | 1 ?0317 000021CB R + 1 ?0318 000023FB R | 1 ?0319 000021ED R + 1 ?0320 00002264 R | 1 ?0321 0000220A R + 1 ?0322 00002235 R | 1 ?0323 0000223E R + 1 ?0324 000023FB R | 1 ?0325 0000226E R + 1 ?0326 00002298 R | 1 ?0327 00002276 R + 1 ?0328 00002289 R | 1 ?0329 00002295 R + 1 ?0330 000023FB R | 1 ?0331 000022A2 R + 1 ?0332 000023FB R | 1 ?0333 000022AA R + 1 ?0334 000022BC R | 1 ?0335 000022C8 R + 1 ?0336 000022E5 R | 1 ?0337 000022C8 R + 1 ?0338 000022DA R | 1 ?0339 000022DA R + 1 ?0340 000022DA R | 1 ?0341 000022F7 R + 1 ?0342 0000232E R | 1 ?0343 000022F7 R + 1 ?0344 000022F7 R | 1 ?0345 000023FB R + 1 ?0346 00002340 R | 1 ?0347 00002392 R + 1 ?0348 00002340 R | 1 ?0349 00002340 R + 1 ?0350 000023FB R | 1 ?0351 00002455 R + 1 ?0352 00002427 R | 1 ?0353 0000243D R + 1 ?0354 0000243D R | 1 ?0355 0000243D R + 1 ?0356 00002457 R | 1 ?0357 000024A1 R + 1 ?0358 000024BD R | 1 ?0359 000024D7 R + 1 ?0360 00002890 R | 1 ?0361 00002511 R + 1 ?0362 00002605 R | 1 ?0363 00002522 R + 1 ?0364 00002605 R | 1 ?0365 00002522 R + 1 ?0366 00002522 R | 1 ?0367 000025F6 R + 1 ?0368 0000252D R | 1 ?0369 0000255A R + 1 ?0370 00002592 R | 1 ?0371 000025BF R + 1 ?0372 00002890 R | 1 ?0373 00002618 R + 1 ?0374 0000273A R | 1 ?0375 00002618 R + 1 ?0376 00002618 R | 1 ?0377 0000273A R + 1 ?0378 0000263B R | 1 ?0380 00002673 R + 1 ?0382 00002679 R | 1 ?0386 00002696 R + 1 ?0390 000026B9 R | 1 ?0394 000026DC R + 1 ?0396 000026FC R | 1 ?0398 00002700 R + 1 ?0399 00002718 R | 1 ?0400 00002754 R + 1 ?0401 00002834 R | 1 ?0402 00002754 R + 1 ?0403 00002754 R | 1 ?0404 00002834 R + 1 ?0405 0000278F R | 1 ?0407 0000279B R + 1 ?0409 000027A0 R | 1 ?0413 000027AD R + 1 ?0417 000027C6 R | 1 ?0421 000027DF R + 1 ?0423 000027EF R | 1 ?0424 000027F1 R + 1 ?0425 000027FF R | 1 ?0426 0000284E R + 1 ?0427 00002890 R | 1 ?0428 0000284E R + 1 ?0429 0000284E R | 1 ?0430 00002890 R + 1 ?0431 00002859 R | 1 ?0432 00002872 R + 1 ?0433 00002A05 R | 1 ?0434 0000289C R + 1 ?0435 00002915 R | 1 ?0436 00002915 R + 1 ?0437 000028B2 R | 1 ?0438 000028C9 R + 1 ?0440 000028FF R | 1 ?0441 0000290B R + 1 ?0442 00002923 R | 1 ?0443 0000296A R + 1 ?0444 00002923 R | 1 ?0445 00002923 R + 1 ?0446 0000292A R | 1 ?0447 00002954 R + 1 ?0448 0000296A R | 1 ?0449 00002A05 R + 1 ?0450 00002994 R | 1 ?0451 000029BA R + 1 ?0452 00002A05 R | 1 ?0453 000029E4 R + 1 ?0454 00002A05 R | 1 ?0458 000000CA R + 1 ?0459 00000272 R | 1 ?0463 0000036B R + 1 ?0464 0000036C R | 1 ?0465 00000435 R + 1 ?0472 00000547 R | 1 ?0473 000005AA R + 1 ?0475 0000061C R | 1 ?0476 00000634 R + 1 ?0477 00000667 R | 1 ?0481 000006E9 R + 1 ?0482 0000071D R | 1 ?0488 000007D7 R + 1 ?0489 000007F1 R | 1 ?0492 0000086C R + 1 ?0493 00000886 R | 1 ?0494 00000996 R + 1 ?0498 00000BFD R | 1 ?0500 00000C6B R + 1 ?0501 00000D70 R | 1 ?0503 00000E70 R + 1 ?0505 00001043 R | 1 ?0506 000010A5 R + 1 ?0508 00001165 R | 1 ?0510 00001013 R + 1 ?0511 000012DD R | 1 ?0513 00001354 R + 1 ?0516 000014BB R | 1 ?0517 000015F6 R + 1 ?0519 000014A0 R | 1 ?0520 00001481 R + 1 ?0521 00001704 R | 1 ?0522 000017A0 R + 1 ?0524 000016BA R | 1 ?0525 0000191D R + 1 ?0527 000019A9 R | 1 ?0528 00001A1F R + 1 ?0530 00001A76 R | 1 ?0533 00001BDC R + 1 ?0535 000018B6 R | 1 ?0536 00001B34 R + 1 ?0545 00001C73 R | 1 ?0547 00001CCD R + 1 ?0548 00001E79 R | 1 ?0549 00002165 R + 1 ?0550 000021EA R | 1 ?0551 0000229F R + 1 ?0552 000022CF R | 1 ?0553 000022F4 R + 1 ?0554 0000233D R | 1 ?0555 0000240B R + 1 ?0556 00002416 R | 1 ?0557 000023F8 R + 1 ?0560 000027BE R | 1 ?0561 000027D7 R + 1 ?0562 000028C6 R | 1 ?0564 0000258D R + 1 ?0583 000025EA R | 1 ?0597 000026F7 R + 1 ?0598 0000272E R | 1 ?0604 000027EA R + 1 ?0606 000029AC R | 1 ?0614 0000006B R + 1 ?0625 00000101 R | 1 ?0626 000002E1 R + 1 ?0630 0000047B R | 1 ?0634 00000B80 R + 1 ?0636 00000B83 R | 1 ?0637 00001814 R + 1 ?0638 00000035 R | 1 ?0639 0000003B R + 1 ?0640 000011E0 R | 1 ?0641 0000048F R + 1 ?0642 0000048E R | 1 ?0643 00000484 R + 1 ?0644 0000048D R | 1 ?0645 00000B4B R + 1 ?0646 00000B41 R | 1 ?0647 0000120F R + 1 ?0648 00000497 R | 1 ?0649 00000498 R + 1 ?0650 00000B53 R | 1 ?0651 000004AD R + 1 ?0652 000004AC R | 1 ?0653 000004AB R + 1 ?0654 000004A8 R | 1 ?0655 000004A0 R + 1 ?0656 00000560 R | 1 ?0657 00000552 R + 1 ?0658 0000055E R | 1 ?0659 0000068F R + 1 ?0660 0000068A R | 1 ?0661 0000122F R + 1 ?0662 00001221 R | 1 ?0663 00001237 R + 1 ?0664 0000165A R | 1 ?0665 00001654 R + 1 ?0666 0000245F R | 1 ?0667 0000245A R + 1 ?0668 0000245C R | 1 ?0669 00002467 R + 1 ?0670 00002480 R | 1 ?0671 00002A08 R + 1 ?0672 00002A0E R | 1 ?0673 00002A1D R + 1 ?0674 00002A32 R | ?BANK_CALL_DIR ******** GX + ?BANK_FAST_LEA ******** GX | ?CL64180B_4_06 ******** GX + ?C_V_SWITCH_L0 ******** GX | ?L_AND_L03 ******** GX + ?L_MUL_L03 ******** GX | ?L_OR_L03 ******** GX + ?SL_CMP_L03 ******** GX | ?SL_DIV_L03 ******** GX + __fopen ******** GX | atoi ******** GX + atol ******** GX | 1 dbDeleteExpres 00002497 GR + 1 dbDeleteList 00000000 GR | 1 dbDeleteRow 00001D25 GR + 1 dbEvaluateExpr 000024C0 GR | 1 dbExecuteDelet 00001662 GR + 1 dbExecuteInser 00001259 GR | 1 dbExecuteQuery 00000CA4 GR + 1 dbExecuteState 00001C1E GR | 1 dbExecuteUpdat 0000185E GR + 1 dbFieldOffset 00000BDD GR | 1 dbFieldSearch 00000C4E GR + 1 dbGetInt 00001E7D GR | 1 dbGetLong 00001EFD GR + 1 dbGetString 00001D71 GR | 1 dbListIndex 00000043 GR + 1 dbListSize 00000073 GR | 1 dbNewExpressio 00002016 GR + 1 dbNewRow 00001D44 GR | 1 dbNextRow 00001C8A GR + 1 dbOperatorPrec 00001FBC GR | 1 dbParseDelete 0000080B GR + 1 dbParseExpress 0000205D GR | 1 dbParseInsert 00000697 GR + 1 dbParseList 000002E9 GR | 1 dbParseSelect 00000568 GR + 1 dbParseStateme 000004B5 GR | 1 dbParseUpdate 0000073E GR + 1 dbRecordSize 00000C32 GR | 1 dbReplaceChar 0000029F GR + 1 dbResultSetClo 00000BCA GR | 1 dbSkipLiteral 000000A3 GR + 1 dbStatementClo 00000B8E GR | 1 dbTableClose 00000B70 GR + 1 dbTableOpen 000008A0 GR | 1 dbTrimString 00000109 GR + fclose ******** GX | fread ******** GX + free ******** GX | fseek ******** GX + fwrite ******** GX | itoa ******** GX + ltoa ******** GX | malloc ******** GX + memcpy ******** GX | strcat ******** GX + strcmp ******** GX | strcpy ******** GX + strlen ******** GX | strncmp ******** 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 2A47 flags 0 + 2 CSTR size 55 flags 0 diff --git a/src/gui/wnd.map b/src/db/db.map similarity index 52% rename from src/gui/wnd.map rename to src/db/db.map index b5732b9f..789ad464 100644 --- a/src/gui/wnd.map +++ b/src/db/db.map @@ -8,16 +8,16 @@ Area Addr Size Decimal Bytes (Attributes) ----- ------ ----- ------ ----- ------ 00000000 s__DEFAUL | 00000000 l_CCSTR | 00000000 l_ECSTR 00000000 .__.ABS. | 00000000 ?CL64180L | 00000000 ?CL64180B - 00000014 e__DEFAUL | 00000014 l__DEFAUL | 0000002F l_CONST - 00000153 l_CSTR | 00000170 l_CDATA0 | 00000170 l_IDATA0 - 000003B5 l_UDATA0 | 00000430 l_RCODE | 00001000 l_CSTACK - 00004000 s_CODE | 00008100 s_RCODE | 00008530 e_RCODE - 00008530 s_CONST | 0000855F s_CSTR | 0000855F e_CONST - 000086B2 e_CSTR | 000086B2 s_IDATA0 | 000086B2 s_CDATA0 - 00008822 s_UDATA0 | 00008822 e_CCSTR | 00008822 e_ECSTR - 00008822 s_CCSTR | 00008822 e_CDATA0 | 00008822 s_ECSTR - 00008822 e_IDATA0 | 00008BD7 e_UDATA0 | 00008BD7 s_CSTACK - 00009BD7 e_CSTACK | 0000C257 l_CODE | 00010257 e_CODE + 00000014 e__DEFAUL | 00000014 l__DEFAUL | 00000027 l_CONST + 00000072 l_CSTR | 0000014E l_CDATA0 | 0000014E l_IDATA0 + 00000243 l_UDATA0 | 0000035A l_RCODE | 00001000 l_CSTACK + 00004000 s_CODE | 00008100 s_RCODE | 0000845A e_RCODE + 0000845A s_CONST | 00008481 s_CSTR | 00008481 e_CONST + 000084F3 e_CSTR | 000084F3 s_IDATA0 | 000084F3 s_CDATA0 + 00008641 s_UDATA0 | 00008641 e_CCSTR | 00008641 e_ECSTR + 00008641 s_CCSTR | 00008641 e_CDATA0 | 00008641 s_ECSTR + 00008641 e_IDATA0 | 00008884 e_UDATA0 | 00008884 s_CSTACK + 00009884 e_CSTACK | 0000C0A7 l_CODE | 000100A7 e_CODE Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -30,30 +30,26 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -RCODE 00008100 00000430 = 1072. bytes (REL,CON) +RCODE 00008100 0000035A = 858. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ 00008100 __init | 0000811F ?L_MUL_L0 | 000081A3 ?BANK_LEA - 000081A9 ?BANK_FAS | 000081AE ?S_MUL_L0 | 000081C4 ?C_V_SWIT - 000081D6 ?L_ADDASG | 000081EF ?ENT_PARM | 000081FB ?BANK_CAL - 00008208 ?S_S_SWIT | 0000821C ?S_V_SWIT | 00008239 ?S_SWITCH - 00008247 ?SL_MOD_L | 0000827A ?ENT_AUTO | 0000828E ?V_SWITCH - 00008298 ?SL_DIV_L | 000082C8 ?SS_CMP_L | 000082DA ?L_INC_L0 - 000082E2 ?US_MOD_L | 000082EB ?SS_DIV_L | 00008307 ?UL_RSHAS - 00008315 ?US_DIV_L | 00008323 ?SL_RSH_L | 00008331 ?UL_RSH_L - 0000834C ?L_DIVMOD | 000083A4 ?BANK_LEA | 000083B0 ?SS_RSH_L - 000083BA ?L_LSH_L0 | 000083D2 ?S_DIVMOD | 000083E8 ?S_MULASG - 000083F2 ?L_END_AS | 000083FB ?L_NOT_L0 | 0000840A ?L_XOR_L0 - 00008428 ?L_ORASG_ | 00008441 ?LEAVE_DI | 00008448 ?L_FIND_S - 0000848C ?UL_DIVAS | 0000849C ?UL_MOD_L | 000084C1 ?S_FIND_S - 000084DD ?UL_DIV_L | 00008505 ?L_NEG_L0 | 00008517 ?L_MULASG - 00008527 ?L_END_MU + 000081A9 ?BANK_FAS | 000081AE ?S_MUL_L0 | 000081C4 ?L_OR_L03 + 000081E2 ?C_V_SWIT | 000081F4 ?L_ADDASG | 0000820D ?ENT_PARM + 00008219 ?BANK_CAL | 00008226 ?L_AND_L0 | 00008244 ?SL_CMP_L + 00008275 ?ENT_AUTO | 00008289 ?V_SWITCH | 00008293 ?SL_DIV_L + 000082C3 ?SS_CMP_L | 000082D5 ?L_INC_L0 | 000082DD ?L_NEG_L0 + 000082EF ?US_MOD_L | 000082F8 ?US_DIV_L | 00008306 ?L_DIVMOD + 0000835E ?BANK_LEA | 0000836A ?S_DIVMOD | 00008380 ?S_MULASG + 0000838A ?L_NOT_L0 | 00008399 ?LEAVE_DI | 000083A0 ?L_FIND_S + 000083E4 ?UL_DIVAS | 000083F4 ?UL_MOD_L | 00008419 ?UL_DIV_L + 00008441 ?L_END_MU | 0000844A ?L_MULASG Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CONST 00008530 0000002F = 47. bytes (REL,CON) +CONST 0000845A 00000027 = 39. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -61,7 +57,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CSTR 0000855F 00000153 = 339. bytes (REL,CON) +CSTR 00008481 00000072 = 114. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -69,18 +65,17 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -IDATA0 000086B2 00000170 = 368. bytes (NUL,CON) +IDATA0 000084F3 0000014E = 334. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 000086CA __IO_list | 000086CC stdin | 000086E4 stdout - 000086FC stderr | 0000871A _path_pas | 0000871C __sys_err - 0000871E __sys_ner | 00008720 __on_exit | 00008722 __ctype + 000084F3 __IO_list | 000084F5 stdin | 0000850D stdout + 00008525 stderr | 0000853F __on_exit | 00008541 __ctype Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CDATA0 000086B2 00000170 = 368. bytes (REL,CON) +CDATA0 000084F3 0000014E = 334. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -88,7 +83,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -ECSTR 00008822 00000000 = 0. bytes (NUL,CON) +ECSTR 00008641 00000000 = 0. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -96,7 +91,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CCSTR 00008822 00000000 = 0. bytes (REL,CON) +CCSTR 00008641 00000000 = 0. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -104,69 +99,55 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CODE 00004000 0000C257 = 49751. bytes (NUL,CON) +CODE 00004000 0000C0A7 = 49319. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 00004736 GraphicsO | 000047D2 GraphicsC | 000047EA Move - 00004829 ClearRect | 0000486C DrawRectN | 000048B1 FillRect - 000048F6 FillRectN | 0000493B GrayRect | 00004980 Text - 000049AC TouchRegi | 00004A03 ClearScre | 00004A40 EnableScr - 00004A7E grSetFont | 00004ABB fontSearc | 00004AEB setCurren - 00004B87 loadFont | 00004C2E stringwid | 00004CA7 stringhei - 00004CC4 stringhei | 00004CD7 stringhei | 00004CE0 stringwid - 00004CF1 stringwid | 00004CFA stringwid | 00004D03 Component - 00004DAD Component | 00004DFA Component | 00004E58 Component - 00004E9E Component | 00004EE2 Component | 00004F1A Component - 000050EB Component | 0000510A Component | 00005173 Component - 00005226 Window_ha | 00005490 Window_pa | 0000561C Root_pain - 00005653 Window_ad | 00005661 Window_ne | 000056B3 Button_ha - 0000576A Button_dr | 00005838 Button_pa | 0000590B Button_ad - 00005911 Button_ne | 00005963 ToggleBut | 000059FC ToggleBut - 00005AE8 ToggleBut | 00005B3A Dialog_ha | 00005BF3 Dialog_ne - 00005CE2 Display_h | 00005D60 Display_p | 00005E7D Display_n - 00005ED7 Label_han | 00005EDD Label_pai | 00005F3E Label_new - 00005F97 Transacti | 000065D5 rootWindo | 000065F3 screenbui - 000069BB root_acti | 00006CF0 read_stri | 00006DC5 gui_globa - 00006DCB GUIinit | 00006EFB GUIunit | 00006F20 GUIgo - 00006F9F login | 000070C8 login_act | 0000723B main - 000072A2 setgid | 000072BC unix | 000072D6 sprintf - 0000731A strrchr | 00007382 fflush | 00007595 chdir - 000075AA _write | 000075C9 setuid | 000075E3 printf - 00007612 lseek | 0000763F __stdio_c | 000076AA __stdio_i - 000076E8 setenv | 00007964 unsetenv | 00007A04 close - 00007A19 strlen | 00007A50 strcmp | 00007AF1 perror - 00007B2E execv | 00007B41 ioctl | 00007B6C isatty - 00007BA7 fstat | 00007BBE free | 00007C9E getpwnam - 00007D00 setpwent | 00007D45 endpwent | 00007D64 getpwent - 00007D82 strcpy | 00014000 __getpwen | 00014288 atoi - 0001441E vfprintf | 00014979 ltoa | 000149DC atol - 000149F2 __longtoa | 00014B86 itoa | 00014BEF crypt - 00014E9C fputs | 00014EFA open | 00014F25 malloc - 00015151 exit | 00015181 _read | 000151A0 memcmp - 0001520D execve | 0001522C strerror | 000153E9 memset - 00015429 memcpy | 000154F7 on_exit | 00015570 atexit - 00015583 strcat | 000155A3 unix_long | 000155BD strchr - 000155F8 _exit | 00015693 strtoul | 000157EA fputc - 000158FC toupper | 00015921 tolower | 00015946 ultoa - 0001599B strtol | 00015A43 sbrk + 00004555 dbDeleteL | 00004598 dbListInd | 000045C8 dbListSiz + 000045F8 dbSkipLit | 0000465E dbTrimStr | 000047F4 dbReplace + 0000483E dbParseLi | 00004A0A dbParseSt | 00004ABD dbParseSe + 00004BEC dbParseIn | 00004C93 dbParseUp | 00004D60 dbParseDe + 00004DF5 dbTableOp | 000050C5 dbTableCl | 000050E3 dbStateme + 0000511F dbResultS | 00005132 dbFieldOf | 00005187 dbRecordS + 000051A3 dbFieldSe | 000051F9 dbExecute | 000057AE dbExecute + 00005BB7 dbExecute | 00005DB3 dbExecute | 00006173 dbExecute + 000061DF dbNextRow | 0000627A dbDeleteR | 00006299 dbNewRow + 000062C6 dbGetStri | 000063D2 dbGetInt | 00006452 dbGetLong + 00006511 dbOperato | 0000656B dbNewExpr | 000065B2 dbParseEx + 000069EC dbDeleteE | 00006A15 dbEvaluat | 00006F9C main + 000070DD fread | 0000728B strncmp | 000072EC fflush + 000074FF _write | 0000751E memcpy | 00007570 rewind + 000075A0 fseek | 0000774D __stdio_c | 000077B8 __stdio_i + 000077F6 fwrite | 00007A12 strcat | 00007A32 printf + 00007A61 lseek | 00007A8E close | 00007AA3 __fopen + 00007D5C strlen | 00007D93 strcmp | 00007DEA isatty + 00007E25 fstat | 00007E3C free | 00007F1C strcpy + 00007F43 atoi | 00014000 __longtoa | 00014194 itoa + 000141FD calloc | 000143C5 vfprintf | 00014920 atol + 00014936 ltoa | 00014999 open | 000149C4 gets + 00014A39 puts | 00014A82 malloc | 00014CAE exit + 00014CDE _read | 00014CFD fclose | 00014E6E unix + 00014E88 fgetc | 00014F98 memset | 00015054 on_exit + 000150CD atexit | 000150E0 unix_long | 000150FA _exit + 0001510F fputc | 00015221 ultoa | 00015276 strtol + 0001531E sbrk | 00015333 fputs | 00015417 strtoul + 0001556E toupper | 00015593 tolower Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -UDATA0 00008822 000003B5 = 949. bytes (REL,CON) +UDATA0 00008641 00000243 = 579. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 00008822 _argc | 00008824 _argv | 00008826 environ - 00008828 errno | 0000882A __cleanup | 0000882D global - 0000882F trans | 00008B4F __malloc_ | 00008B53 __malloc_ - 00008BA5 __on_exit + 00008641 _argc | 00008643 _argv | 00008645 environ + 00008647 errno | 00008649 __cleanup | 0000884C __malloc_ + 00008850 __malloc_ | 00008852 __on_exit Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CSTACK 00008BD7 00001000 = 4096. bytes (REL,CON) +CSTACK 00008884 00001000 = 4096. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -174,106 +155,87 @@ CSTACK 00008BD7 00001000 = 4096. bytes (REL,CON) Files Linked [ module(s) ] ..\..\lib\c0b.rel [ _c0b ] -wnd [ wnd ] -login [ login ] +db [ db ] +main [ main ] Libraries Linked [ object file ] -..\..\lib\libsysb.lib [ relsysb\setgid.rel ] -..\..\lib\libsysb.lib [ relsysb\sys0b.rel ] -..\..\lib\libcb.lib [ relcb\sprintf.rel ] +..\..\lib\libcb.lib [ relcb\fread.rel ] ..\..\lib\libiar.lib [ reliar\LMUL.rel ] +..\..\lib\libcb.lib [ relcb\strncmp.rel ] ..\..\lib\libiar.lib [ reliar\BANKLEAVEDIRECT.rel ] -..\..\lib\libcb.lib [ relcb\strrchr.rel ] ..\..\lib\libcb.lib [ relcb\fflush.rel ] -..\..\lib\libsysb.lib [ relsysb\chdir.rel ] ..\..\lib\libsysb.lib [ relsysb\write.rel ] +..\..\lib\libcb.lib [ relcb\memcpy.rel ] ..\..\lib\libiar.lib [ reliar\SMUL.rel ] -..\..\lib\libsysb.lib [ relsysb\setuid.rel ] +..\..\lib\libcb.lib [ relcb\rewind.rel ] +..\..\lib\libcb.lib [ relcb\stdio0.rel ] +..\..\lib\libcb.lib [ relcb\fwrite.rel ] +..\..\lib\libcb.lib [ relcb\strcat.rel ] ..\..\lib\libcb.lib [ relcb\printf.rel ] ..\..\lib\libsysb.lib [ relsysb\lseek.rel ] -..\..\lib\libcb.lib [ relcb\stdio0.rel ] -..\..\lib\libcb.lib [ relcb\setenv.rel ] ..\..\lib\libsysb.lib [ relsysb\close.rel ] +..\..\lib\libcb.lib [ relcb\fopen.rel ] ..\..\lib\libcb.lib [ relcb\strlen.rel ] ..\..\lib\libcb.lib [ relcb\strcmp.rel ] +..\..\lib\libiar.lib [ reliar\LOR.rel ] ..\..\lib\libiar.lib [ reliar\CVSWITCH.rel ] -..\..\lib\libcb.lib [ relcb\perror.rel ] -..\..\lib\libcb.lib [ relcb\execv.rel ] -..\..\lib\libsysb.lib [ relsysb\ioctl.rel ] ..\..\lib\libiar.lib [ reliar\LADDASG.rel ] ..\..\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\libiar.lib [ reliar\SSSWITCH.rel ] -..\..\lib\libiar.lib [ reliar\SVSWITCH.rel ] -..\..\lib\libiar.lib [ reliar\SSWITCHEND.rel ] -..\..\lib\libiar.lib [ reliar\SLMOD.rel ] -..\..\lib\libcb.lib [ relcb\getpwent.rel ] +..\..\lib\libiar.lib [ reliar\LAND.rel ] +..\..\lib\libiar.lib [ reliar\SLCMP.rel ] ..\..\lib\libiar.lib [ reliar\ENTAUTODIRECT.rel ] ..\..\lib\libiar.lib [ reliar\VSWITCHEND.rel ] ..\..\lib\libcb.lib [ relcb\atoi.rel ] +..\..\lib\libcb.lib [ relcb\itoa.rel ] +..\..\lib\libcb.lib [ relcb\calloc.rel ] ..\..\lib\libiar.lib [ reliar\SLDIV.rel ] ..\..\lib\libcb.lib [ relcb\vfprintf.rel ] -..\..\lib\libcb.lib [ relcb\ltoa.rel ] ..\..\lib\libcb.lib [ relcb\atol.rel ] +..\..\lib\libcb.lib [ relcb\ltoa.rel ] ..\..\lib\libiar.lib [ reliar\SSCMP.rel ] -..\..\lib\libcb.lib [ relcb\itoa.rel ] ..\..\lib\libiar.lib [ reliar\LINC.rel ] -..\..\lib\libcb.lib [ relcb\crypt.rel ] -..\..\lib\libcb.lib [ relcb\fputs.rel ] +..\..\lib\libiar.lib [ reliar\LNEG.rel ] ..\..\lib\libsysb.lib [ relsysb\open.rel ] ..\..\lib\libiar.lib [ reliar\USMOD.rel ] -..\..\lib\libiar.lib [ reliar\SSDIV.rel ] -..\..\lib\libiar.lib [ reliar\ULRSHASG.rel ] +..\..\lib\libcb.lib [ relcb\gets.rel ] ..\..\lib\libiar.lib [ reliar\USDIV.rel ] ..\..\lib\libiar.lib [ reliar\LIBVERSION.rel ] ..\..\lib\libcb.lib [ relcb\malloc.rel ] -..\..\lib\libiar.lib [ reliar\SLRSH.rel ] -..\..\lib\libiar.lib [ reliar\ULRSH.rel ] ..\..\lib\libcb.lib [ relcb\exit.rel ] ..\..\lib\libiar.lib [ reliar\LDIVMOD.rel ] ..\..\lib\libsysb.lib [ relsysb\read.rel ] +..\..\lib\libcb.lib [ relcb\fclose.rel ] ..\..\lib\libiar.lib [ reliar\BANKLEAVE32.rel ] -..\..\lib\libiar.lib [ reliar\SSRSH.rel ] -..\..\lib\libiar.lib [ reliar\LLSH.rel ] -..\..\lib\libcb.lib [ relcb\memcmp.rel ] -..\..\lib\libsysb.lib [ relsysb\execve.rel ] ..\..\lib\libiar.lib [ reliar\SDIVMOD.rel ] -..\..\lib\libcb.lib [ relcb\error.rel ] +..\..\lib\libsysb.lib [ relsysb\sys0b.rel ] ..\..\lib\libiar.lib [ reliar\SMULASG.rel ] -..\..\lib\libiar.lib [ reliar\LENDASG.rel ] +..\..\lib\libcb.lib [ relcb\fgetc.rel ] ..\..\lib\libiar.lib [ reliar\LNOT.rel ] ..\..\lib\libcb.lib [ relcb\memset.rel ] -..\..\lib\libcb.lib [ relcb\memcpy.rel ] ..\..\lib\libcb.lib [ relcb\atexit.rel ] -..\..\lib\libiar.lib [ reliar\LXOR.rel ] -..\..\lib\libcb.lib [ relcb\strcat.rel ] ..\..\lib\libsysb.lib [ relsysb\sys1b.rel ] -..\..\lib\libiar.lib [ reliar\LORASG.rel ] -..\..\lib\libcb.lib [ relcb\strchr.rel ] ..\..\lib\libsysb.lib [ relsysb\_exit.rel ] ..\..\lib\libiar.lib [ reliar\LEAVEDIRECT.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\libcb.lib [ relcb\strtol.rel ] ..\..\lib\libiar.lib [ reliar\LFINDSIGN.rel ] ..\..\lib\libiar.lib [ reliar\ULDIVASG.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\LMULASG.rel ] +..\..\lib\libcb.lib [ relcb\fputs.rel ] ..\..\lib\libiar.lib [ reliar\LENDMULDIVASG.rel ] +..\..\lib\libcb.lib [ relcb\strtoul.rel ] +..\..\lib\libcb.lib [ relcb\ctype.rel ] +..\..\lib\libiar.lib [ reliar\LMULASG.rel ] User Base Address Definitions diff --git a/src/db/db.rel b/src/db/db.rel new file mode 100644 index 00000000..0c10afd3 --- /dev/null +++ b/src/db/db.rel @@ -0,0 +1,3930 @@ +XL4 +H 3 areas 3E global symbols +M db +S fread Ref00000000 +S ?L_MUL_L03 Ref00000000 +S ?BANK_FAST_LEAVE_L08 Ref00000000 +S strncmp Ref00000000 +S memcpy Ref00000000 +S fseek Ref00000000 +S strcat Ref00000000 +S fwrite Ref00000000 +S __fopen Ref00000000 +S strlen Ref00000000 +S ?C_V_SWITCH_L06 Ref00000000 +S ?L_OR_L03 Ref00000000 +S strcmp Ref00000000 +S free Ref00000000 +S ?BANK_CALL_DIRECT_L08 Ref00000000 +S strcpy Ref00000000 +S ?SL_CMP_L03 Ref00000000 +S ?L_AND_L03 Ref00000000 +S itoa Ref00000000 +S atoi Ref00000000 +S ?SL_DIV_L03 Ref00000000 +S ltoa Ref00000000 +S atol Ref00000000 +S ?CL64180B_4_06_L00 Ref00000000 +S malloc Ref00000000 +S fclose Ref00000000 +S .__.ABS. Def00000000 +A _DEFAULT size 0 flags 0 +A CODE size 2A47 flags 0 +S dbTableOpen Def000008A0 +S dbReplaceChar Def0000029F +S dbRecordSize Def00000C32 +S dbOperatorPrecedence Def00001FBC +S dbFieldSearch Def00000C4E +S dbResultSetClose Def00000BCA +S dbDeleteExpression Def00002497 +S dbExecuteStatement Def00001C1E +S dbExecuteInsert Def00001259 +S dbGetInt Def00001E7D +S dbFieldOffset Def00000BDD +S dbDeleteRow Def00001D25 +S dbParseDelete Def0000080B +S dbTrimString Def00000109 +S dbListIndex Def00000043 +S dbParseList Def000002E9 +S dbNextRow Def00001C8A +S dbGetString Def00001D71 +S dbNewExpression Def00002016 +S dbParseSelect Def00000568 +S dbTableClose Def00000B70 +S dbParseUpdate Def0000073E +S dbNewRow Def00001D44 +S dbSkipLiteral Def000000A3 +S dbExecuteDelete Def00001662 +S dbEvaluateExpression Def000024C0 +S dbExecuteQuery Def00000CA4 +S dbStatementClose Def00000B8E +S dbParseExpression Def0000205D +S dbDeleteList Def00000000 +S dbParseStatement Def000004B5 +S dbParseInsert Def00000697 +S dbGetLong Def00001EFD +S dbExecuteUpdate Def0000185E +S dbListSize Def00000073 +A CSTR size 55 flags 0 +T 00 00 00 00 +R 00 00 01 00 +T 00 00 00 00 DD E5 D5 DD E1 7B B2 28 27 +R 00 00 01 00 +T 09 00 00 00 +R 00 00 01 00 +T 09 00 00 00 DD 7E 04 DD B6 05 28 03 +R 00 00 01 00 +T 11 00 00 00 +R 00 00 01 00 +T 11 00 00 00 CD 35 00 00 00 +R 00 00 01 00 00 05 01 00 +T 14 00 00 00 +R 00 00 01 00 +T 14 00 00 00 DD 7E 02 DD B6 03 28 0E +R 00 00 01 00 +T 1C 00 00 00 +R 00 00 01 00 +T 1C 00 00 00 DD 5E 02 DD 56 03 3E 00 00 00 00 +R 00 00 01 00 29 0B 01 00 +T 24 00 00 00 21 00 00 00 00 CD 00 00 00 00 +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T 2A 00 00 00 +R 00 00 01 00 +T 2A 00 00 00 DD E5 D1 CD 3B 00 00 00 +R 00 00 01 00 00 08 01 00 +T 30 00 00 00 +R 00 00 01 00 +T 30 00 00 00 DD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 02 00 +T 35 00 00 00 +R 00 00 01 00 +T 35 00 00 00 DD 5E 04 DD 56 05 +R 00 00 01 00 +T 3B 00 00 00 +R 00 00 01 00 +T 3B 00 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 0D 00 02 0A 0D 00 +T 41 00 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 43 00 00 00 +R 00 00 01 00 +T 43 00 00 00 C5 FD E5 DD E5 D5 6B 62 E5 DD E1 +R 00 00 01 00 +T 4E 00 00 00 FD 21 00 00 +R 00 00 01 00 +T 52 00 00 00 +R 00 00 01 00 +T 52 00 00 00 DD 7E 00 DD B6 01 28 0D +R 00 00 01 00 +T 5A 00 00 00 +R 00 00 01 00 +T 5A 00 00 00 DD 6E 00 DD 66 01 E5 DD E1 FD 23 +R 00 00 01 00 +T 65 00 00 00 18 EB +R 00 00 01 00 +T 67 00 00 00 +R 00 00 01 00 +T 67 00 00 00 FD E5 E1 F1 +R 00 00 01 00 +T 6B 00 00 00 +R 00 00 01 00 +T 6B 00 00 00 DD E1 FD E1 C1 C3 00 00 00 00 +R 00 00 01 00 02 0A 02 00 +T 73 00 00 00 +R 00 00 01 00 +T 73 00 00 00 C5 FD E5 DD E5 D5 6B 62 E5 DD E1 +R 00 00 01 00 +T 7E 00 00 00 EB 3E 43 00 00 00 21 43 00 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 84 00 00 00 CD 00 00 00 00 23 E5 FD E1 +R 00 00 01 00 02 05 0E 00 +T 8B 00 00 00 +R 00 00 01 00 +T 8B 00 00 00 DD 7E 02 DD B6 03 28 0D +R 00 00 01 00 +T 93 00 00 00 +R 00 00 01 00 +T 93 00 00 00 DD 6E 02 DD 66 03 E5 DD E1 FD 23 +R 00 00 01 00 +T 9E 00 00 00 18 EB +R 00 00 01 00 +T A0 00 00 00 +R 00 00 01 00 +T A0 00 00 00 C3 67 00 00 00 +R 00 00 01 00 00 05 01 00 +T A3 00 00 00 +R 00 00 01 00 +T A3 00 00 00 FD E5 DD E5 D5 C5 DD E1 21 0A 00 +R 00 00 01 00 +T AE 00 00 00 39 5E 23 56 D5 FD E1 FD 6E 00 FD +R 00 00 01 00 +T B9 00 00 00 66 01 09 56 21 0C 00 39 7E 23 66 +R 00 00 01 00 +T C4 00 00 00 6F 5E 23 66 6B 09 +R 00 00 01 00 +T CA 00 00 00 +R 00 00 01 00 +T CA 00 00 00 72 +R 00 00 01 00 +T CB 00 00 00 +R 00 00 01 00 +T CB 00 00 00 FD E5 E1 4E 23 46 03 70 2B 71 DD +R 00 00 01 00 +T D6 00 00 00 E5 E1 09 7E 21 00 00 39 BE FD 6E +R 00 00 01 00 +T E1 00 00 00 00 FD 66 01 DD E5 C1 09 56 D5 21 +R 00 00 01 00 +T EC 00 00 00 0E 00 39 7E 23 66 6F 5E 23 56 13 +R 00 00 01 00 +T F7 00 00 00 72 2B 73 69 60 19 D1 20 CA +R 00 00 01 00 +T 00 01 00 00 +R 00 00 01 00 +T 00 01 00 00 +R 00 00 01 00 +T 00 01 00 00 72 +R 00 00 01 00 +T 01 01 00 00 +R 00 00 01 00 +T 01 01 00 00 E1 DD E1 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 0A 02 00 +T 09 01 00 00 +R 00 00 01 00 +T 09 01 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T 14 01 00 00 F5 F5 F5 D5 FD E1 AF DD 77 FA DD +R 00 00 01 00 +T 1F 01 00 00 77 FB DD 77 FC DD 77 FD DD 36 FE +R 00 00 01 00 +T 2A 01 00 00 20 +R 00 00 01 00 +T 2B 01 00 00 +R 00 00 01 00 +T 2B 01 00 00 DD 6E FA DD 66 FB FD E5 C1 09 7E +R 00 00 01 00 +T 36 01 00 00 B7 CA 89 02 00 00 +R 00 00 01 00 00 06 01 00 +T 3A 01 00 00 +R 00 00 01 00 +T 3A 01 00 00 DD 6E FA DD 66 FB 09 7E FE 27 28 +R 00 00 01 00 +T 45 01 00 00 0C DD 6E FA DD 66 FB 09 7E FE 22 +R 00 00 01 00 +T 50 01 00 00 20 1D +R 00 00 01 00 +T 52 01 00 00 +R 00 00 01 00 +T 52 01 00 00 +R 00 00 01 00 +T 52 01 00 00 +R 00 00 01 00 +T 52 01 00 00 21 02 00 39 E5 2B 2B E5 DD 6E FA +R 00 00 01 00 +T 5D 01 00 00 DD 66 FB FD E5 D1 19 5E 3E +R 00 00 01 00 +T 66 01 00 00 A3 00 00 00 21 A3 00 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 6B 01 00 00 00 00 00 00 E1 E1 +R 00 00 01 00 02 04 0E 00 +T 6F 01 00 00 +R 00 00 01 00 +T 6F 01 00 00 DD 7E FE FE 20 C2 18 02 00 00 DD +R 00 00 01 00 00 0A 01 00 +T 78 01 00 00 6E FA DD 66 FB FD E5 C1 09 7E FE +R 00 00 01 00 +T 83 01 00 00 2C CA 0B 02 00 00 DD 6E FA DD 66 +R 00 00 01 00 00 06 01 00 +T 8C 01 00 00 FB 09 7E FE 29 28 78 DD 6E FA DD +R 00 00 01 00 +T 97 01 00 00 66 FB 09 7E FE 28 28 6C DD 6E FA +R 00 00 01 00 +T A2 01 00 00 DD 66 FB 09 7E FE 2B 28 60 DD 6E +R 00 00 01 00 +T AD 01 00 00 FA DD 66 FB 09 7E FE 2D 28 54 DD +R 00 00 01 00 +T B8 01 00 00 6E FA DD 66 FB 09 7E FE 2A 28 48 +R 00 00 01 00 +T C3 01 00 00 DD 6E FA DD 66 FB 09 7E FE 2F 28 +R 00 00 01 00 +T CE 01 00 00 3C DD 6E FA DD 66 FB 09 7E FE 26 +R 00 00 01 00 +T D9 01 00 00 28 30 DD 6E FA DD 66 FB 09 7E FE +R 00 00 01 00 +T E4 01 00 00 7C 28 24 DD 6E FA DD 66 FB 09 7E +R 00 00 01 00 +T EF 01 00 00 FE 3D 28 18 DD 6E FA DD 66 FB 09 +R 00 00 01 00 +T FA 01 00 00 7E FE 3C 28 0C DD 6E FA DD 66 FB +R 00 00 01 00 +T 05 02 00 00 09 7E FE 3E 20 0D +R 00 00 01 00 +T 0B 02 00 00 +R 00 00 01 00 +T 0B 02 00 00 +R 00 00 01 00 +T 0B 02 00 00 +R 00 00 01 00 +T 0B 02 00 00 +R 00 00 01 00 +T 0B 02 00 00 +R 00 00 01 00 +T 0B 02 00 00 DD 6E FC DD 66 FD 2B DD 75 FC DD +R 00 00 01 00 +T 16 02 00 00 74 FD +R 00 00 01 00 +T 18 02 00 00 +R 00 00 01 00 +T 18 02 00 00 DD 6E FA DD 66 FB FD E5 C1 09 56 +R 00 00 01 00 +T 23 02 00 00 DD 6E FC DD 66 FD 09 72 DD 7E FE +R 00 00 01 00 +T 2E 02 00 00 FE 2C 28 2C FE 20 28 28 FE 28 28 +R 00 00 01 00 +T 39 02 00 00 24 FE 2B 28 20 FE 2D 28 1C FE 2A +R 00 00 01 00 +T 44 02 00 00 28 18 FE 2F 28 14 FE 26 28 10 FE +R 00 00 01 00 +T 4F 02 00 00 7C 28 0C FE 3D 28 08 FE 3E 28 04 +R 00 00 01 00 +T 5A 02 00 00 FE 3C 20 0C +R 00 00 01 00 +T 5E 02 00 00 +R 00 00 01 00 +T 5E 02 00 00 +R 00 00 01 00 +T 5E 02 00 00 DD 6E FA DD 66 FB 09 7E FE 20 28 +R 00 00 01 00 +T 69 02 00 00 08 +R 00 00 01 00 +T 6A 02 00 00 +R 00 00 01 00 +T 6A 02 00 00 +R 00 00 01 00 +T 6A 02 00 00 +R 00 00 01 00 +T 6A 02 00 00 DD 34 FC 20 03 DD 34 FD +R 00 00 01 00 +T 72 02 00 00 +R 00 00 01 00 +T 72 02 00 00 +R 00 00 01 00 +T 72 02 00 00 DD 6E FA DD 66 FB 09 46 DD 70 FE +R 00 00 01 00 +T 7D 02 00 00 DD 34 FA C2 2B 01 00 00 DD 34 FB +R 00 00 01 00 00 08 01 00 +T 86 02 00 00 C3 2B 01 00 00 +R 00 00 01 00 00 05 01 00 +T 89 02 00 00 +R 00 00 01 00 +T 89 02 00 00 DD 7E FE FE 20 DD 6E FC DD 66 FD +R 00 00 01 00 +T 94 02 00 00 20 01 +R 00 00 01 00 +T 96 02 00 00 +R 00 00 01 00 +T 96 02 00 00 2B +R 00 00 01 00 +T 97 02 00 00 +R 00 00 01 00 +T 97 02 00 00 09 36 00 +R 00 00 01 00 +T 9A 02 00 00 +R 00 00 01 00 +T 9A 02 00 00 DD F9 C3 6B 00 00 00 +R 00 00 01 00 00 07 01 00 +T 9F 02 00 00 +R 00 00 01 00 +T 9F 02 00 00 FD E5 DD E5 C5 D5 FD E1 DD 21 +R 00 00 01 00 +T A9 02 00 00 00 00 +R 00 00 01 00 +T AB 02 00 00 +R 00 00 01 00 +T AB 02 00 00 DD E5 E1 FD E5 C1 09 7E 21 00 00 +R 00 00 01 00 +T B6 02 00 00 39 BE 28 0C DD E5 E1 09 7E B7 28 +R 00 00 01 00 +T C1 02 00 00 04 +R 00 00 01 00 +T C2 02 00 00 +R 00 00 01 00 +T C2 02 00 00 +R 00 00 01 00 +T C2 02 00 00 +R 00 00 01 00 +T C2 02 00 00 DD 23 18 E5 +R 00 00 01 00 +T C6 02 00 00 +R 00 00 01 00 +T C6 02 00 00 DD E5 E1 09 7E B7 28 0C +R 00 00 01 00 +T CE 02 00 00 +R 00 00 01 00 +T CE 02 00 00 DD E5 E1 09 E5 21 0C 00 39 46 E1 +R 00 00 01 00 +T D9 02 00 00 70 +R 00 00 01 00 +T DA 02 00 00 +R 00 00 01 00 +T DA 02 00 00 DD E5 E1 FD E5 C1 09 +R 00 00 01 00 +T E1 02 00 00 +R 00 00 01 00 +T E1 02 00 00 F1 DD E1 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 0A 02 00 +T E9 02 00 00 +R 00 00 01 00 +T E9 02 00 00 FD E5 DD E5 DD 21 00 00 DD 39 C5 +R 00 00 01 00 +T F4 02 00 00 D5 21 D8 FF 39 F9 11 06 00 CD +R 00 00 01 00 +T FE 02 00 00 8F 04 00 00 E5 FD E1 DD 75 DA DD +R 00 00 01 00 00 04 01 00 +T 07 03 00 00 74 DB AF 77 23 77 DD 77 D6 DD 77 +R 00 00 01 00 +T 12 03 00 00 D7 DD 77 D4 DD 77 D5 +R 00 00 01 00 +T 19 03 00 00 +R 00 00 01 00 +T 19 03 00 00 DD 6E 0A DD 66 0B 46 23 66 68 DD +R 00 00 01 00 +T 24 03 00 00 4E FC DD 46 FD 09 7E DD BE 08 20 +R 00 00 01 00 +T 2F 03 00 00 07 AF DD B6 D4 CA 41 04 00 00 +R 00 00 01 00 00 0A 01 00 +T 37 03 00 00 +R 00 00 01 00 +T 37 03 00 00 +R 00 00 01 00 +T 37 03 00 00 DD 6E 0A DD 66 0B 46 23 66 68 DD +R 00 00 01 00 +T 42 03 00 00 46 FD 09 7E B7 CA 41 04 00 00 +R 00 00 01 00 00 0A 01 00 +T 4A 03 00 00 +R 00 00 01 00 +T 4A 03 00 00 +R 00 00 01 00 +T 4A 03 00 00 +R 00 00 01 00 +T 4A 03 00 00 DD 6E 0A DD 66 0B 46 23 66 68 DD +R 00 00 01 00 +T 55 03 00 00 46 FD 09 7E FE 22 28 04 FE 27 20 +R 00 00 01 00 +T 60 03 00 00 10 +R 00 00 01 00 +T 61 03 00 00 +R 00 00 01 00 +T 61 03 00 00 AF DD B6 D4 20 04 3E 01 18 01 +R 00 00 01 00 +T 6B 03 00 00 +R 00 00 01 00 +T 6B 03 00 00 AF +R 00 00 01 00 +T 6C 03 00 00 +R 00 00 01 00 +T 6C 03 00 00 DD 77 D4 18 1C +R 00 00 01 00 +T 71 03 00 00 +R 00 00 01 00 +T 71 03 00 00 FE 28 20 0B AF DD B6 D4 20 12 +R 00 00 01 00 +T 7B 03 00 00 +R 00 00 01 00 +T 7B 03 00 00 DD 34 D5 +R 00 00 01 00 +T 7E 03 00 00 +R 00 00 01 00 +T 7E 03 00 00 18 0D +R 00 00 01 00 +T 80 03 00 00 +R 00 00 01 00 +T 80 03 00 00 FE 29 20 09 AF DD B6 D4 20 03 +R 00 00 01 00 +T 8A 03 00 00 +R 00 00 01 00 +T 8A 03 00 00 DD 35 D5 +R 00 00 01 00 +T 8D 03 00 00 +R 00 00 01 00 +T 8D 03 00 00 +R 00 00 01 00 +T 8D 03 00 00 DD 6E 0A DD 66 0B 46 23 66 68 DD +R 00 00 01 00 +T 98 03 00 00 46 FD 09 7E DD BE FE 20 0B AF DD +R 00 00 01 00 +T A3 03 00 00 B6 D4 20 05 DD B6 D5 28 1D +R 00 00 01 00 +T AC 03 00 00 +R 00 00 01 00 +T AC 03 00 00 +R 00 00 01 00 +T AC 03 00 00 +R 00 00 01 00 +T AC 03 00 00 DD 6E 0A DD 66 0B 46 23 66 68 DD +R 00 00 01 00 +T B7 03 00 00 46 FD 09 46 21 08 00 39 DD 5E D6 +R 00 00 01 00 +T C2 03 00 00 DD 56 D7 19 70 18 61 +R 00 00 01 00 +T C9 03 00 00 +R 00 00 01 00 +T C9 03 00 00 21 08 00 39 DD 4E D6 DD 46 D7 09 +R 00 00 01 00 +T D4 03 00 00 77 21 08 00 39 CD 97 04 00 00 EB +R 00 00 01 00 00 0A 01 00 +T DD 03 00 00 13 CD 8F 04 00 00 FD 75 04 FD 74 +R 00 00 01 00 00 06 01 00 +T E6 03 00 00 05 21 08 00 39 4D 44 FD 5E 04 FD +R 00 00 01 00 +T F1 03 00 00 56 05 CD AD 04 00 00 FD E5 E1 DD +R 00 00 01 00 00 07 01 00 +T FA 03 00 00 75 D8 DD 74 D9 11 06 00 CD +R 00 00 01 00 +T 03 04 00 00 8F 04 00 00 FD 75 02 FD 74 03 FD +R 00 00 01 00 00 04 01 00 +T 0C 04 00 00 6E 02 FD 66 03 E5 FD E1 DD 6E D8 +R 00 00 01 00 +T 17 04 00 00 DD 66 D9 E5 FD E5 E1 C1 71 23 70 +R 00 00 01 00 +T 22 04 00 00 DD 36 D6 FF DD 36 D7 FF +R 00 00 01 00 +T 2A 04 00 00 +R 00 00 01 00 +T 2A 04 00 00 DD 6E 0A DD 66 0B 34 23 20 01 34 +R 00 00 01 00 +T 35 04 00 00 +R 00 00 01 00 +T 35 04 00 00 DD 34 D6 C2 19 03 00 00 DD 34 D7 +R 00 00 01 00 00 08 01 00 +T 3E 04 00 00 C3 19 03 00 00 +R 00 00 01 00 00 05 01 00 +T 41 04 00 00 +R 00 00 01 00 +T 41 04 00 00 21 08 00 39 DD 4E D6 DD 46 D7 09 +R 00 00 01 00 +T 4C 04 00 00 77 21 08 00 39 CD 97 04 00 00 EB +R 00 00 01 00 00 0A 01 00 +T 55 04 00 00 13 CD 8F 04 00 00 FD 75 04 FD 74 +R 00 00 01 00 00 06 01 00 +T 5E 04 00 00 05 21 08 00 39 4D 44 FD 5E 04 FD +R 00 00 01 00 +T 69 04 00 00 56 05 CD AD 04 00 00 AF FD 77 02 +R 00 00 01 00 00 07 01 00 +T 72 04 00 00 FD 77 03 DD 6E DA DD 66 DB +R 00 00 01 00 +T 7B 04 00 00 +R 00 00 01 00 +T 7B 04 00 00 DD F9 DD E1 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 0B 02 00 +T 84 04 00 00 +R 00 00 01 00 +T 84 04 00 00 71 23 70 FD 6E 00 FD 66 01 +R 00 00 01 00 +T 8D 04 00 00 +R 00 00 01 00 +T 8D 04 00 00 29 +R 00 00 01 00 +T 8E 04 00 00 +R 00 00 01 00 +T 8E 04 00 00 EB +R 00 00 01 00 +T 8F 04 00 00 +R 00 00 01 00 +T 8F 04 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 18 00 02 0A 18 00 +T 95 04 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 97 04 00 00 +R 00 00 01 00 +T 97 04 00 00 EB +R 00 00 01 00 +T 98 04 00 00 +R 00 00 01 00 +T 98 04 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 09 00 02 0A 09 00 +T 9E 04 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T A0 04 00 00 +R 00 00 01 00 +T A0 04 00 00 4D 44 FD 6E 4A FD 66 4B +R 00 00 01 00 +T A8 04 00 00 +R 00 00 01 00 +T A8 04 00 00 11 04 00 +R 00 00 01 00 +T AB 04 00 00 +R 00 00 01 00 +T AB 04 00 00 19 +R 00 00 01 00 +T AC 04 00 00 +R 00 00 01 00 +T AC 04 00 00 EB +R 00 00 01 00 +T AD 04 00 00 +R 00 00 01 00 +T AD 04 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 0F 00 02 0A 0F 00 +T B3 04 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T B5 04 00 00 +R 00 00 01 00 +T B5 04 00 00 C5 FD E5 DD E5 D5 FD E1 CD +R 00 00 01 00 +T BE 04 00 00 98 04 00 00 EB 13 CD 8F 04 00 00 +R 00 00 01 00 00 04 01 00 00 0B 01 00 +T C5 04 00 00 E5 DD E1 FD E5 C1 CD AC 04 00 00 +R 00 00 01 00 00 0B 01 00 +T CE 04 00 00 DD E5 D1 3E 09 01 00 00 21 +R 00 00 01 00 29 08 01 00 +T D4 04 00 00 09 01 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T DA 04 00 00 03 00 E5 01 00 00 00 00 DD E5 D1 +R 00 00 01 00 00 08 02 00 +T E3 04 00 00 CD 60 05 00 00 F1 7D B4 20 0A +R 00 00 01 00 00 05 01 00 +T EB 04 00 00 +R 00 00 01 00 +T EB 04 00 00 DD E5 D1 3E 68 05 00 00 21 +R 00 00 01 00 29 08 01 00 +T F1 04 00 00 68 05 00 00 18 52 +R 00 00 01 00 00 04 01 00 +T F5 04 00 00 +R 00 00 01 00 +T F5 04 00 00 21 03 00 E5 01 04 00 00 00 DD E5 +R 00 00 01 00 00 09 02 00 +T FE 04 00 00 D1 CD 60 05 00 00 F1 7D B4 20 0A +R 00 00 01 00 00 06 01 00 +T 07 05 00 00 +R 00 00 01 00 +T 07 05 00 00 DD E5 D1 3E 97 06 00 00 21 +R 00 00 01 00 29 08 01 00 +T 0D 05 00 00 97 06 00 00 18 36 +R 00 00 01 00 00 04 01 00 +T 11 05 00 00 +R 00 00 01 00 +T 11 05 00 00 21 03 00 E5 01 08 00 00 00 DD E5 +R 00 00 01 00 00 09 02 00 +T 1A 05 00 00 D1 CD 60 05 00 00 F1 7D B4 20 0A +R 00 00 01 00 00 06 01 00 +T 23 05 00 00 +R 00 00 01 00 +T 23 05 00 00 DD E5 D1 3E 3E 07 00 00 21 +R 00 00 01 00 29 08 01 00 +T 29 05 00 00 3E 07 00 00 18 1A +R 00 00 01 00 00 04 01 00 +T 2D 05 00 00 +R 00 00 01 00 +T 2D 05 00 00 21 03 00 E5 01 0C 00 00 00 DD E5 +R 00 00 01 00 00 09 02 00 +T 36 05 00 00 D1 CD 60 05 00 00 F1 7D B4 20 0D +R 00 00 01 00 00 06 01 00 +T 3F 05 00 00 +R 00 00 01 00 +T 3F 05 00 00 DD E5 D1 3E 0B 08 00 00 21 +R 00 00 01 00 29 08 01 00 +T 45 05 00 00 0B 08 00 00 +R 00 00 01 00 00 04 01 00 +T 47 05 00 00 +R 00 00 01 00 +T 47 05 00 00 CD 00 00 00 00 18 03 +R 00 00 01 00 02 05 0E 00 +T 4C 05 00 00 +R 00 00 01 00 +T 4C 05 00 00 21 00 00 +R 00 00 01 00 +T 4F 05 00 00 +R 00 00 01 00 +T 4F 05 00 00 C3 6B 00 00 00 +R 00 00 01 00 00 05 01 00 +T 52 05 00 00 +R 00 00 01 00 +T 52 05 00 00 DD 6E FC DD 66 FD DD 5E FE DD 56 +R 00 00 01 00 +T 5D 05 00 00 FF +R 00 00 01 00 +T 5E 05 00 00 +R 00 00 01 00 +T 5E 05 00 00 19 EB +R 00 00 01 00 +T 60 05 00 00 +R 00 00 01 00 +T 60 05 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 03 00 02 0A 03 00 +T 66 05 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 68 05 00 00 +R 00 00 01 00 +T 68 05 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T 73 05 00 00 D5 F5 11 09 00 CD 8F 04 00 00 E5 +R 00 00 01 00 00 0A 01 00 +T 7C 05 00 00 FD E1 36 73 AF FD 77 05 FD 77 06 +R 00 00 01 00 +T 87 05 00 00 FD 77 07 FD 77 08 DD 36 FC 03 DD +R 00 00 01 00 +T 92 05 00 00 77 FD DD 6E FE DD 66 FF 23 23 23 +R 00 00 01 00 +T 9D 05 00 00 7E FE 20 20 08 +R 00 00 01 00 +T A2 05 00 00 +R 00 00 01 00 +T A2 05 00 00 DD 34 FC 20 03 DD 34 FD +R 00 00 01 00 +T AA 05 00 00 +R 00 00 01 00 +T AA 05 00 00 +R 00 00 01 00 +T AA 05 00 00 21 00 00 39 E5 0E 20 C5 0E 2C DD +R 00 00 01 00 +T B5 05 00 00 5E FE DD 56 FF CD 8F 06 00 00 F1 +R 00 00 01 00 00 0A 01 00 +T BE 05 00 00 F1 FD 75 01 FD 74 02 21 04 00 E5 +R 00 00 01 00 +T C9 05 00 00 01 10 00 00 00 CD 52 05 00 00 F1 +R 00 00 01 00 00 05 02 00 00 0A 01 00 +T D0 05 00 00 7D B4 20 0D +R 00 00 01 00 +T D4 05 00 00 +R 00 00 01 00 +T D4 05 00 00 6F 67 39 7E C6 04 77 30 0A 23 34 +R 00 00 01 00 +T DF 05 00 00 18 06 +R 00 00 01 00 +T E1 05 00 00 +R 00 00 01 00 +T E1 05 00 00 21 00 00 C3 85 06 00 00 +R 00 00 01 00 00 08 01 00 +T E7 05 00 00 +R 00 00 01 00 +T E7 05 00 00 21 00 00 39 E5 0E 20 C5 0E 2C DD +R 00 00 01 00 +T F2 05 00 00 5E FE DD 56 FF CD 8F 06 00 00 F1 +R 00 00 01 00 00 0A 01 00 +T FB 05 00 00 F1 FD 75 03 FD 74 04 21 03 00 E5 +R 00 00 01 00 +T 06 06 00 00 01 15 00 00 00 CD 52 05 00 00 F1 +R 00 00 01 00 00 05 02 00 00 0A 01 00 +T 0D 06 00 00 7D B4 20 3C +R 00 00 01 00 +T 11 06 00 00 +R 00 00 01 00 +T 11 06 00 00 6F 67 39 7E C6 03 77 30 02 23 34 +R 00 00 01 00 +T 1C 06 00 00 +R 00 00 01 00 +T 1C 06 00 00 6F DD 66 FD DD 4E FE DD 46 FF 09 +R 00 00 01 00 +T 27 06 00 00 7E FE 20 20 08 +R 00 00 01 00 +T 2C 06 00 00 +R 00 00 01 00 +T 2C 06 00 00 DD 34 FC 20 03 DD 34 FD +R 00 00 01 00 +T 34 06 00 00 +R 00 00 01 00 +T 34 06 00 00 +R 00 00 01 00 +T 34 06 00 00 21 00 00 39 E5 0E 20 C5 0E 2C DD +R 00 00 01 00 +T 3F 06 00 00 5E FE 50 CD 8F 06 00 00 F1 F1 FD +R 00 00 01 00 00 08 01 00 +T 48 06 00 00 75 05 FD 74 06 +R 00 00 01 00 +T 4D 06 00 00 +R 00 00 01 00 +T 4D 06 00 00 21 05 00 E5 01 19 00 00 00 CD +R 00 00 01 00 00 09 02 00 +T 55 06 00 00 52 05 00 00 F1 7D B4 20 26 +R 00 00 01 00 00 04 01 00 +T 5C 06 00 00 +R 00 00 01 00 +T 5C 06 00 00 6F 67 39 7E C6 05 77 30 02 23 34 +R 00 00 01 00 +T 67 06 00 00 +R 00 00 01 00 +T 67 06 00 00 21 00 00 39 E5 0E 20 C5 0E 2C DD +R 00 00 01 00 +T 72 06 00 00 5E FE DD 56 FF CD 8F 06 00 00 F1 +R 00 00 01 00 00 0A 01 00 +T 7B 06 00 00 F1 FD 75 07 FD 74 08 +R 00 00 01 00 +T 82 06 00 00 +R 00 00 01 00 +T 82 06 00 00 FD E5 E1 +R 00 00 01 00 +T 85 06 00 00 +R 00 00 01 00 +T 85 06 00 00 DD F9 C3 6B 00 00 00 +R 00 00 01 00 00 07 01 00 +T 8A 06 00 00 +R 00 00 01 00 +T 8A 06 00 00 0E 2C FD E5 D1 +R 00 00 01 00 +T 8F 06 00 00 +R 00 00 01 00 +T 8F 06 00 00 3E E9 02 00 00 21 E9 02 00 00 C3 +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 95 06 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 97 06 00 00 +R 00 00 01 00 +T 97 06 00 00 C5 FD E5 DD E5 F5 D5 FD E1 11 +R 00 00 01 00 +T A1 06 00 00 09 00 CD 8F 04 00 00 E5 DD E1 36 +R 00 00 01 00 00 07 01 00 +T AA 06 00 00 69 AF DD 77 05 DD 77 06 6F 67 39 +R 00 00 01 00 +T B5 06 00 00 36 04 23 77 2B E5 0E 28 C5 CD +R 00 00 01 00 +T BF 06 00 00 8A 06 00 00 F1 F1 DD 75 03 DD 74 +R 00 00 01 00 00 04 01 00 +T C8 06 00 00 04 21 01 00 E5 01 1F 00 00 00 23 +R 00 00 01 00 00 0A 02 00 +T D1 06 00 00 39 56 23 66 6A FD E5 D1 CD +R 00 00 01 00 +T DA 06 00 00 5E 05 00 00 F1 7D B4 20 51 +R 00 00 01 00 00 04 01 00 +T E1 06 00 00 +R 00 00 01 00 +T E1 06 00 00 6F 67 39 34 23 20 01 34 +R 00 00 01 00 +T E9 06 00 00 +R 00 00 01 00 +T E9 06 00 00 +R 00 00 01 00 +T E9 06 00 00 +R 00 00 01 00 +T E9 06 00 00 2B E5 0E 29 C5 CD 8A 06 00 00 F1 +R 00 00 01 00 00 0A 01 00 +T F2 06 00 00 F1 DD 75 01 DD 74 02 21 06 00 E5 +R 00 00 01 00 +T FD 06 00 00 01 21 00 00 00 2E 02 39 56 23 66 +R 00 00 01 00 00 05 02 00 +T 06 07 00 00 6A FD E5 D1 CD 5E 05 00 00 F1 7D +R 00 00 01 00 00 09 01 00 +T 0F 07 00 00 B4 20 20 +R 00 00 01 00 +T 12 07 00 00 +R 00 00 01 00 +T 12 07 00 00 6F 67 39 7E C6 06 77 30 02 23 34 +R 00 00 01 00 +T 1D 07 00 00 +R 00 00 01 00 +T 1D 07 00 00 21 00 00 39 E5 0E 29 C5 CD +R 00 00 01 00 +T 26 07 00 00 8A 06 00 00 F1 F1 DD 75 07 DD 74 +R 00 00 01 00 00 04 01 00 +T 2F 07 00 00 08 18 05 +R 00 00 01 00 +T 32 07 00 00 +R 00 00 01 00 +T 32 07 00 00 21 00 00 18 03 +R 00 00 01 00 +T 37 07 00 00 +R 00 00 01 00 +T 37 07 00 00 DD E5 E1 +R 00 00 01 00 +T 3A 07 00 00 +R 00 00 01 00 +T 3A 07 00 00 F1 C3 6B 00 00 00 +R 00 00 01 00 00 06 01 00 +T 3E 07 00 00 +R 00 00 01 00 +T 3E 07 00 00 C5 FD E5 DD E5 F5 D5 FD E1 11 +R 00 00 01 00 +T 48 07 00 00 09 00 CD 8F 04 00 00 E5 DD E1 36 +R 00 00 01 00 00 07 01 00 +T 51 07 00 00 75 AF DD 77 05 DD 77 06 DD 77 07 +R 00 00 01 00 +T 5C 07 00 00 DD 77 08 6F 67 39 36 04 23 77 2B +R 00 00 01 00 +T 67 07 00 00 E5 0E 20 C5 CD 8A 06 00 00 F1 F1 +R 00 00 01 00 00 09 01 00 +T 70 07 00 00 DD 75 03 DD 74 04 21 04 00 E5 01 +R 00 00 01 00 +T 7B 07 00 00 28 00 00 00 2B 2B 39 56 23 66 6A +R 00 00 01 00 00 04 02 00 +T 84 07 00 00 FD E5 D1 CD 5E 05 00 00 F1 7D B4 +R 00 00 01 00 00 08 01 00 +T 8D 07 00 00 20 0D +R 00 00 01 00 +T 8F 07 00 00 +R 00 00 01 00 +T 8F 07 00 00 6F 67 39 7E C6 04 77 30 09 23 34 +R 00 00 01 00 +T 9A 07 00 00 18 05 +R 00 00 01 00 +T 9C 07 00 00 +R 00 00 01 00 +T 9C 07 00 00 21 00 00 18 66 +R 00 00 01 00 +T A1 07 00 00 +R 00 00 01 00 +T A1 07 00 00 21 00 00 39 E5 0E 20 C5 CD +R 00 00 01 00 +T AA 07 00 00 8A 06 00 00 F1 F1 DD 75 01 DD 74 +R 00 00 01 00 00 04 01 00 +T B3 07 00 00 02 21 03 00 E5 01 15 00 00 00 2B +R 00 00 01 00 00 0A 02 00 +T BC 07 00 00 39 56 23 66 6A FD E5 D1 CD +R 00 00 01 00 +T C5 07 00 00 5E 05 00 00 F1 7D B4 20 38 +R 00 00 01 00 00 04 01 00 +T CC 07 00 00 +R 00 00 01 00 +T CC 07 00 00 6F 67 39 7E C6 03 77 30 02 23 34 +R 00 00 01 00 +T D7 07 00 00 +R 00 00 01 00 +T D7 07 00 00 21 00 00 39 47 23 66 68 FD E5 C1 +R 00 00 01 00 +T E2 07 00 00 09 7E FE 20 20 09 +R 00 00 01 00 +T E8 07 00 00 +R 00 00 01 00 +T E8 07 00 00 21 00 00 39 34 23 20 01 34 +R 00 00 01 00 +T F1 07 00 00 +R 00 00 01 00 +T F1 07 00 00 +R 00 00 01 00 +T F1 07 00 00 21 00 00 39 E5 0E 20 C5 CD +R 00 00 01 00 +T FA 07 00 00 8A 06 00 00 F1 F1 DD 75 05 DD 74 +R 00 00 01 00 00 04 01 00 +T 03 08 00 00 06 +R 00 00 01 00 +T 04 08 00 00 +R 00 00 01 00 +T 04 08 00 00 DD E5 E1 +R 00 00 01 00 +T 07 08 00 00 +R 00 00 01 00 +T 07 08 00 00 F1 C3 6B 00 00 00 +R 00 00 01 00 00 06 01 00 +T 0B 08 00 00 +R 00 00 01 00 +T 0B 08 00 00 C5 FD E5 DD E5 F5 D5 FD E1 11 +R 00 00 01 00 +T 15 08 00 00 09 00 CD 8F 04 00 00 E5 DD E1 36 +R 00 00 01 00 00 07 01 00 +T 1E 08 00 00 64 AF DD 77 05 DD 77 06 DD 77 07 +R 00 00 01 00 +T 29 08 00 00 DD 77 08 DD 77 01 DD 77 02 6F 67 +R 00 00 01 00 +T 34 08 00 00 39 36 04 23 77 2B E5 0E 20 C5 CD +R 00 00 01 00 +T 3F 08 00 00 8A 06 00 00 F1 F1 DD 75 03 DD 74 +R 00 00 01 00 00 04 01 00 +T 48 08 00 00 04 21 03 00 E5 01 15 00 00 00 2B +R 00 00 01 00 00 0A 02 00 +T 51 08 00 00 39 56 23 66 6A FD E5 D1 CD +R 00 00 01 00 +T 5A 08 00 00 5E 05 00 00 F1 7D B4 20 38 +R 00 00 01 00 00 04 01 00 +T 61 08 00 00 +R 00 00 01 00 +T 61 08 00 00 6F 67 39 7E C6 03 77 30 02 23 34 +R 00 00 01 00 +T 6C 08 00 00 +R 00 00 01 00 +T 6C 08 00 00 21 00 00 39 47 23 66 68 FD E5 C1 +R 00 00 01 00 +T 77 08 00 00 09 7E FE 20 20 09 +R 00 00 01 00 +T 7D 08 00 00 +R 00 00 01 00 +T 7D 08 00 00 21 00 00 39 34 23 20 01 34 +R 00 00 01 00 +T 86 08 00 00 +R 00 00 01 00 +T 86 08 00 00 +R 00 00 01 00 +T 86 08 00 00 21 00 00 39 E5 0E 20 C5 CD +R 00 00 01 00 +T 8F 08 00 00 8A 06 00 00 F1 F1 DD 75 05 DD 74 +R 00 00 01 00 00 04 01 00 +T 98 08 00 00 06 +R 00 00 01 00 +T 99 08 00 00 +R 00 00 01 00 +T 99 08 00 00 DD E5 E1 F1 C3 6B 00 00 00 +R 00 00 01 00 00 09 01 00 +T A0 08 00 00 +R 00 00 01 00 +T A0 08 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T AB 08 00 00 F5 F5 F5 F5 D5 FD E1 11 40 00 CD +R 00 00 01 00 +T B6 08 00 00 8F 04 00 00 DD 75 F8 DD 74 F9 01 +R 00 00 01 00 00 04 01 00 +T BF 08 00 00 2D 00 00 00 EB CD 53 0B 00 00 CD +R 00 00 01 00 00 04 02 00 00 0A 01 00 +T C6 08 00 00 00 00 00 00 01 36 00 00 00 DD 5E +R 00 00 01 00 02 04 0E 00 00 09 02 00 +T CD 08 00 00 F8 DD 56 F9 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 06 00 +T D4 08 00 00 00 00 00 00 CD 00 00 00 00 FD 36 +R 00 00 01 00 02 04 06 00 02 09 0E 00 +T DB 08 00 00 0A 00 21 3B 00 00 00 E5 21 00 00 +R 00 00 01 00 00 07 02 00 +T E4 08 00 00 E5 01 FF FF DD 5E F8 DD 56 F9 3E +R 00 00 01 00 +T EF 08 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 08 00 02 09 08 00 +T F4 08 00 00 00 00 00 00 F1 F1 DD 75 FC DD 74 +R 00 00 01 00 02 04 0E 00 +T FD 08 00 00 FD E5 21 01 00 E5 01 04 00 DD 5E +R 00 00 01 00 +T 08 09 00 00 F8 DD 56 F9 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 00 00 +T 0F 09 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 00 00 02 09 0E 00 +T 16 09 00 00 DD 6E F8 DD 66 F9 7E FE 54 C2 +R 00 00 01 00 +T 20 09 00 00 2A 0B 00 00 23 7E FE 42 C2 +R 00 00 01 00 00 04 01 00 +T 27 09 00 00 2A 0B 00 00 23 7E FE 4C C2 +R 00 00 01 00 00 04 01 00 +T 2E 09 00 00 2A 0B 00 00 23 7E FE 20 C2 +R 00 00 01 00 00 04 01 00 +T 35 09 00 00 2A 0B 00 00 +R 00 00 01 00 00 04 01 00 +T 37 09 00 00 +R 00 00 01 00 +T 37 09 00 00 +R 00 00 01 00 +T 37 09 00 00 +R 00 00 01 00 +T 37 09 00 00 +R 00 00 01 00 +T 37 09 00 00 DD 6E FC DD 66 FD E5 21 01 00 E5 +R 00 00 01 00 +T 42 09 00 00 01 04 00 DD 5E F8 DD 56 F9 3E +R 00 00 01 00 +T 4C 09 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T 51 09 00 00 00 00 00 00 F1 F1 DD 6E F8 DD 66 +R 00 00 01 00 02 04 0E 00 +T 5A 09 00 00 F9 4E DD 71 FE 06 00 DD 70 FF FD +R 00 00 01 00 +T 65 09 00 00 E5 E1 71 23 70 69 60 29 29 4D 44 +R 00 00 01 00 +T 70 09 00 00 29 09 CD 8E 04 00 00 FD 75 02 FD +R 00 00 01 00 00 07 01 00 +T 79 09 00 00 74 03 AF DD 77 FA DD 77 FB +R 00 00 01 00 +T 82 09 00 00 +R 00 00 01 00 +T 82 09 00 00 DD 4E FE DD 46 FF DD 6E FA DD 66 +R 00 00 01 00 +T 8D 09 00 00 FB F6 80 ED 42 E2 96 09 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 96 09 00 00 +R 00 00 01 00 +T 96 09 00 00 F2 3F 0A 00 00 +R 00 00 01 00 00 05 01 00 +T 99 09 00 00 +R 00 00 01 00 +T 99 09 00 00 DD 6E FC DD 66 FD E5 21 01 00 E5 +R 00 00 01 00 +T A4 09 00 00 01 08 00 FD 6E 02 FD 66 03 E5 DD +R 00 00 01 00 +T AF 09 00 00 6E FA DD 66 FB 29 29 5D 54 29 19 +R 00 00 01 00 +T BA 09 00 00 EB E1 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 00 00 +T C1 09 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 00 00 02 09 0E 00 +T C8 09 00 00 FD 6E 02 FD 66 03 E5 DD 6E FA DD +R 00 00 01 00 +T D3 09 00 00 66 FB 29 29 4D 44 29 09 4D 44 E1 +R 00 00 01 00 +T DE 09 00 00 09 01 08 00 09 70 DD 6E FC DD 66 +R 00 00 01 00 +T E9 09 00 00 FD E5 21 01 00 E5 0E 03 FD 6E 02 +R 00 00 01 00 +T F4 09 00 00 FD 66 03 E5 DD 6E FA DD 66 FB 29 +R 00 00 01 00 +T FF 09 00 00 29 5D 54 29 19 EB E1 19 11 09 00 +R 00 00 01 00 +T 0A 0A 00 00 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 00 00 +T 0F 0A 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 00 00 02 09 0E 00 +T 16 0A 00 00 DD 6E FC DD 66 FD E5 21 01 00 E5 +R 00 00 01 00 +T 21 0A 00 00 4D 44 DD 5E F8 DD 56 F9 3E +R 00 00 01 00 +T 2A 0A 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T 2F 0A 00 00 00 00 00 00 F1 F1 DD 34 FA C2 +R 00 00 01 00 02 04 0E 00 +T 37 0A 00 00 82 09 00 00 DD 34 FB C3 +R 00 00 01 00 00 04 01 00 +T 3D 0A 00 00 82 09 00 00 +R 00 00 01 00 00 04 01 00 +T 3F 0A 00 00 +R 00 00 01 00 +T 3F 0A 00 00 01 2D 00 00 00 DD 5E F8 DD 56 F9 +R 00 00 01 00 00 05 02 00 +T 48 0A 00 00 CD 53 0B 00 00 CD 00 00 00 00 01 +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T 4F 0A 00 00 3E 00 00 00 DD 5E F8 DD 56 F9 3E +R 00 00 01 00 00 04 02 00 +T 58 0A 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 06 00 02 09 06 00 +T 5D 0A 00 00 00 00 00 00 21 43 00 00 00 E5 21 +R 00 00 01 00 02 04 0E 00 00 09 02 00 +T 64 0A 00 00 00 00 E5 01 FF FF DD 5E F8 DD 56 +R 00 00 01 00 +T 6F 0A 00 00 F9 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 08 00 02 0B 08 00 +T 75 0A 00 00 CD 00 00 00 00 F1 F1 FD 75 08 FD +R 00 00 01 00 02 05 0E 00 +T 7E 0A 00 00 74 09 FD 36 0A 01 FD 6E 08 FD 66 +R 00 00 01 00 +T 89 0A 00 00 09 E5 21 01 00 E5 01 04 00 DD 5E +R 00 00 01 00 +T 94 0A 00 00 F8 DD 56 F9 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 00 00 +T 9B 0A 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 00 00 02 09 0E 00 +T A2 0A 00 00 DD 6E F8 DD 66 F9 7E FE 44 20 12 +R 00 00 01 00 +T AD 0A 00 00 23 7E FE 41 20 0C 23 7E FE 54 20 +R 00 00 01 00 +T B8 0A 00 00 06 23 7E FE 20 28 0F +R 00 00 01 00 +T BF 0A 00 00 +R 00 00 01 00 +T BF 0A 00 00 +R 00 00 01 00 +T BF 0A 00 00 +R 00 00 01 00 +T BF 0A 00 00 FD 36 0A 00 FD 5E 08 FD 56 09 CD +R 00 00 01 00 +T CA 0A 00 00 4B 0B 00 00 18 5C +R 00 00 01 00 00 04 01 00 +T CE 0A 00 00 +R 00 00 01 00 +T CE 0A 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T D9 0A 00 00 01 02 00 2E 04 FD E5 D1 19 EB 3E +R 00 00 01 00 +T E4 0A 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T E9 0A 00 00 00 00 00 00 F1 F1 FD 6E 08 FD 66 +R 00 00 01 00 02 04 0E 00 +T F2 0A 00 00 09 E5 21 01 00 E5 01 02 00 2E 06 +R 00 00 01 00 +T FD 0A 00 00 FD E5 D1 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 0A 00 00 +T 05 0B 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 00 00 02 09 0E 00 +T 0C 0B 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T 17 0B 00 00 01 02 00 DD 5E F8 DD 56 F9 3E +R 00 00 01 00 +T 21 0B 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T 26 0B 00 00 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 0E 00 +T 2A 0B 00 00 +R 00 00 01 00 +T 2A 0B 00 00 +R 00 00 01 00 +T 2A 0B 00 00 DD 5E FC DD 56 FD CD 4B 0B 00 00 +R 00 00 01 00 00 0B 01 00 +T 33 0B 00 00 DD 5E F8 DD 56 F9 CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 3C 0B 00 00 DD F9 C3 6B 00 00 00 +R 00 00 01 00 00 07 01 00 +T 41 0B 00 00 +R 00 00 01 00 +T 41 0B 00 00 D5 DD E1 21 08 00 19 5E 23 56 +R 00 00 01 00 +T 4B 0B 00 00 +R 00 00 01 00 +T 4B 0B 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 19 00 02 0A 19 00 +T 51 0B 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 53 0B 00 00 +R 00 00 01 00 +T 53 0B 00 00 3E 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 05 0F 00 02 0A 0F 00 +T 59 0B 00 00 00 00 00 00 21 0B 00 FD E5 C1 09 +R 00 00 01 00 02 04 0E 00 +T 62 0B 00 00 4D 44 DD 5E F8 DD 56 F9 3E +R 00 00 01 00 +T 6B 0B 00 00 00 00 00 00 21 00 00 00 00 C9 +R 00 00 01 00 2B 04 06 00 02 09 06 00 +T 70 0B 00 00 +R 00 00 01 00 +T 70 0B 00 00 DD E5 CD 41 0B 00 00 DD 5E 02 DD +R 00 00 01 00 00 07 01 00 +T 79 0B 00 00 56 03 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 0D 00 +T 7E 0B 00 00 00 00 00 00 +R 00 00 01 00 02 04 0D 00 +T 80 0B 00 00 +R 00 00 01 00 +T 80 0B 00 00 CD 00 00 00 00 +R 00 00 01 00 02 05 0E 00 +T 83 0B 00 00 +R 00 00 01 00 +T 83 0B 00 00 DD E5 D1 CD 3B 00 00 00 DD E1 C3 +R 00 00 01 00 00 08 01 00 +T 8C 0B 00 00 00 00 00 00 +R 00 00 01 00 02 04 02 00 +T 8E 0B 00 00 +R 00 00 01 00 +T 8E 0B 00 00 DD E5 D5 DD E1 13 EB 5E 23 56 3E +R 00 00 01 00 +T 99 0B 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 9E 0B 00 00 00 00 00 00 DD 5E 03 DD 56 04 3E +R 00 00 01 00 02 04 0E 00 +T A7 0B 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T AC 0B 00 00 00 00 00 00 DD 5E 05 DD 56 06 3E +R 00 00 01 00 02 04 0E 00 +T B5 0B 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T BA 0B 00 00 00 00 00 00 DD 5E 07 DD 56 08 3E +R 00 00 01 00 02 04 0E 00 +T C3 0B 00 00 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 29 04 01 00 00 09 01 00 +T C8 0B 00 00 80 0B 00 00 +R 00 00 01 00 00 04 01 00 +T CA 0B 00 00 +R 00 00 01 00 +T CA 0B 00 00 DD E5 CD 41 0B 00 00 DD 5E 02 DD +R 00 00 01 00 00 07 01 00 +T D3 0B 00 00 56 03 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 0D 00 +T D8 0B 00 00 00 00 00 00 C3 80 0B 00 00 +R 00 00 01 00 02 04 0D 00 00 09 01 00 +T DD 0B 00 00 +R 00 00 01 00 +T DD 0B 00 00 FD E5 DD E5 C5 D5 DD 21 00 00 FD +R 00 00 01 00 +T E8 0B 00 00 21 00 00 +R 00 00 01 00 +T EB 0B 00 00 +R 00 00 01 00 +T EB 0B 00 00 21 02 00 39 4E 23 46 FD E5 E1 F6 +R 00 00 01 00 +T F6 0B 00 00 80 ED 42 E2 FD 0B 00 00 AC +R 00 00 01 00 00 08 01 00 +T FD 0B 00 00 +R 00 00 01 00 +T FD 0B 00 00 F2 27 0C 00 00 +R 00 00 01 00 00 05 01 00 +T 00 0C 00 00 +R 00 00 01 00 +T 00 0C 00 00 21 00 00 39 46 23 66 68 23 23 46 +R 00 00 01 00 +T 0B 0C 00 00 23 66 68 E5 FD E5 E1 29 29 4D 44 +R 00 00 01 00 +T 16 0C 00 00 29 09 4D 44 E1 09 01 0A 00 09 4E +R 00 00 01 00 +T 21 0C 00 00 DD 09 FD 23 18 C4 +R 00 00 01 00 +T 27 0C 00 00 +R 00 00 01 00 +T 27 0C 00 00 DD 23 DD 23 DD E5 E1 F1 C3 +R 00 00 01 00 +T 30 0C 00 00 E1 02 00 00 +R 00 00 01 00 00 04 01 00 +T 32 0C 00 00 +R 00 00 01 00 +T 32 0C 00 00 C5 DD E5 D5 DD E1 1A 4F 13 1A 47 +R 00 00 01 00 +T 3D 0C 00 00 DD E5 D1 3E DD 0B 00 00 21 +R 00 00 01 00 29 08 01 00 +T 43 0C 00 00 DD 0B 00 00 CD 00 00 00 00 DD E1 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 4A 0C 00 00 C1 C3 00 00 00 00 +R 00 00 01 00 02 06 02 00 +T 4E 0C 00 00 +R 00 00 01 00 +T 4E 0C 00 00 FD E5 DD E5 C5 D5 FD E1 DD 21 +R 00 00 01 00 +T 58 0C 00 00 00 00 +R 00 00 01 00 +T 5A 0C 00 00 +R 00 00 01 00 +T 5A 0C 00 00 FD 4E 00 FD 46 01 DD E5 E1 F6 80 +R 00 00 01 00 +T 65 0C 00 00 ED 42 E2 6B 0C 00 00 AC +R 00 00 01 00 00 07 01 00 +T 6B 0C 00 00 +R 00 00 01 00 +T 6B 0C 00 00 F2 9E 0C 00 00 +R 00 00 01 00 00 05 01 00 +T 6E 0C 00 00 +R 00 00 01 00 +T 6E 0C 00 00 21 00 00 39 4E 23 46 FD 6E 02 FD +R 00 00 01 00 +T 79 0C 00 00 66 03 E5 DD E5 E1 29 29 5D 54 29 +R 00 00 01 00 +T 84 0C 00 00 19 EB E1 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 0A 0C 00 +T 8C 0C 00 00 00 00 00 00 CD 00 00 00 00 7D B4 +R 00 00 01 00 02 04 0C 00 02 09 0E 00 +T 93 0C 00 00 20 05 +R 00 00 01 00 +T 95 0C 00 00 +R 00 00 01 00 +T 95 0C 00 00 DD E5 E1 18 07 +R 00 00 01 00 +T 9A 0C 00 00 +R 00 00 01 00 +T 9A 0C 00 00 DD 23 18 BC +R 00 00 01 00 +T 9E 0C 00 00 +R 00 00 01 00 +T 9E 0C 00 00 21 FF FF +R 00 00 01 00 +T A1 0C 00 00 +R 00 00 01 00 +T A1 0C 00 00 C3 E1 02 00 00 +R 00 00 01 00 00 05 01 00 +T A4 0C 00 00 +R 00 00 01 00 +T A4 0C 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T AF 0C 00 00 D5 21 DE FF 39 F9 11 0A 00 CD +R 00 00 01 00 +T B9 0C 00 00 8F 04 00 00 E5 FD E1 11 14 00 CD +R 00 00 01 00 00 04 01 00 +T C2 0C 00 00 8F 04 00 00 DD 75 DE DD 74 DF AF +R 00 00 01 00 00 04 01 00 +T CB 0C 00 00 DD 77 F8 DD 77 F9 CD 2F 12 00 00 +R 00 00 01 00 00 0B 01 00 +T D4 0C 00 00 DD 75 FA DD 74 FB DD 6E FE DD 66 +R 00 00 01 00 +T DF 0C 00 00 FF 23 23 23 46 23 66 68 01 04 00 +R 00 00 01 00 +T EA 0C 00 00 09 4E 23 46 21 0B 00 DD 5E DE DD +R 00 00 01 00 +T F5 0C 00 00 56 DF CD AB 04 00 00 DD 5E DE DD +R 00 00 01 00 00 07 01 00 +T FE 0C 00 00 56 DF 3E A0 08 00 00 21 +R 00 00 01 00 29 07 01 00 +T 03 0D 00 00 A0 08 00 00 CD 00 00 00 00 AF FD +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 0A 0D 00 00 77 04 FD 77 05 FD 77 06 FD 77 07 +R 00 00 01 00 +T 15 0D 00 00 01 47 00 00 00 DD 6E FE DD 66 FF +R 00 00 01 00 00 05 02 00 +T 1E 0D 00 00 23 56 23 66 6A 11 04 00 19 5E 23 +R 00 00 01 00 +T 29 0D 00 00 56 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 0C 00 02 0B 0C 00 +T 2F 0D 00 00 CD 00 00 00 00 7D B4 C2 +R 00 00 01 00 02 05 0E 00 +T 35 0D 00 00 2E 0E 00 00 +R 00 00 01 00 00 04 01 00 +T 37 0D 00 00 +R 00 00 01 00 +T 37 0D 00 00 DD 6E DE DD 66 DF 46 23 66 68 E5 +R 00 00 01 00 +T 42 0D 00 00 FD E5 E1 C1 CD 84 04 00 00 CD +R 00 00 01 00 00 09 01 00 +T 4A 0D 00 00 E0 11 00 00 CD 00 00 00 00 FD 75 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 51 0D 00 00 02 FD 74 03 AF DD 77 EE DD 77 EF +R 00 00 01 00 +T 5C 0D 00 00 +R 00 00 01 00 +T 5C 0D 00 00 FD 4E 00 FD 46 01 DD 6E EE DD 66 +R 00 00 01 00 +T 67 0D 00 00 EF F6 80 ED 42 E2 70 0D 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 70 0D 00 00 +R 00 00 01 00 +T 70 0D 00 00 F2 61 0F 00 00 +R 00 00 01 00 00 05 01 00 +T 73 0D 00 00 +R 00 00 01 00 +T 73 0D 00 00 DD 6E DE DD 66 DF 23 23 46 23 66 +R 00 00 01 00 +T 7E 0D 00 00 68 E5 DD 6E EE DD 66 EF 29 29 4D +R 00 00 01 00 +T 89 0D 00 00 44 29 09 4D 44 E1 09 DD 75 E0 DD +R 00 00 01 00 +T 94 0D 00 00 74 E1 DD 6E EE DD 66 EF 29 DD 4E +R 00 00 01 00 +T 9F 0D 00 00 E4 DD 46 E5 09 E5 DD 4E EE DD 46 +R 00 00 01 00 +T AA 0D 00 00 EF DD 5E DE DD 56 DF 3E +R 00 00 01 00 +T B2 0D 00 00 DD 0B 00 00 21 DD 0B 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T B7 0D 00 00 00 00 00 00 4D 44 E1 71 23 70 DD +R 00 00 01 00 02 04 0E 00 +T C0 0D 00 00 6E EE DD 66 EF 29 DD 4E E6 DD 46 +R 00 00 01 00 +T CB 0D 00 00 E7 09 E5 21 0A 00 DD 4E E0 DD 46 +R 00 00 01 00 +T D6 0D 00 00 E1 09 4E 06 00 E1 71 23 70 21 +R 00 00 01 00 +T E0 0D 00 00 0C 00 E5 DD 6E DE DD 66 DF 23 23 +R 00 00 01 00 +T EB 0D 00 00 46 23 66 68 E5 DD 6E EE DD 66 EF +R 00 00 01 00 +T F6 0D 00 00 29 29 4D 44 29 09 4D 44 E1 09 4D +R 00 00 01 00 +T 01 0E 00 00 44 FD 6E 02 FD 66 03 E5 DD 6E EE +R 00 00 01 00 +T 0C 0E 00 00 DD 66 EF 29 29 5D 54 29 19 EB E1 +R 00 00 01 00 +T 17 0E 00 00 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 04 00 +T 1C 0E 00 00 00 00 00 00 CD 00 00 00 00 F1 DD +R 00 00 01 00 02 04 04 00 02 09 0E 00 +T 23 0E 00 00 34 EE C2 5C 0D 00 00 DD 34 EF C3 +R 00 00 01 00 00 07 01 00 +T 2C 0E 00 00 5C 0D 00 00 +R 00 00 01 00 00 04 01 00 +T 2E 0E 00 00 +R 00 00 01 00 +T 2E 0E 00 00 +R 00 00 01 00 +T 2E 0E 00 00 CD 0F 12 00 00 E5 FD E5 E1 C1 CD +R 00 00 01 00 00 05 01 00 +T 37 0E 00 00 84 04 00 00 CD E0 11 00 00 CD +R 00 00 01 00 00 04 01 00 00 09 01 00 +T 3D 0E 00 00 00 00 00 00 FD 75 02 FD 74 03 DD +R 00 00 01 00 02 04 0E 00 +T 46 0E 00 00 6E FE DD 66 FF 23 46 DD 70 E2 23 +R 00 00 01 00 +T 51 0E 00 00 66 DD 74 E3 AF DD 77 EE DD 77 EF +R 00 00 01 00 +T 5C 0E 00 00 +R 00 00 01 00 +T 5C 0E 00 00 FD 4E 00 FD 46 01 DD 6E EE DD 66 +R 00 00 01 00 +T 67 0E 00 00 EF F6 80 ED 42 E2 70 0E 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 70 0E 00 00 +R 00 00 01 00 +T 70 0E 00 00 F2 61 0F 00 00 +R 00 00 01 00 00 05 01 00 +T 73 0E 00 00 +R 00 00 01 00 +T 73 0E 00 00 21 04 00 DD 4E E2 DD 46 E3 09 4E +R 00 00 01 00 +T 7E 0E 00 00 23 46 DD 5E DE DD 56 DF 3E +R 00 00 01 00 +T 87 0E 00 00 4E 0C 00 00 21 4E 0C 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 8C 0E 00 00 00 00 00 00 DD 75 FC DD 74 FD DD +R 00 00 01 00 02 04 0E 00 +T 95 0E 00 00 4E DE DD 46 DF 03 03 0A 6F 03 0A +R 00 00 01 00 +T A0 0E 00 00 67 E5 DD 6E FC DD 66 FD 29 29 4D +R 00 00 01 00 +T AB 0E 00 00 44 29 09 4D 44 E1 09 DD 75 E0 DD +R 00 00 01 00 +T B6 0E 00 00 74 E1 DD 6E EE DD 66 EF 29 DD 4E +R 00 00 01 00 +T C1 0E 00 00 E4 DD 46 E5 09 E5 DD 4E FC DD 46 +R 00 00 01 00 +T CC 0E 00 00 FD DD 5E DE DD 56 DF 3E +R 00 00 01 00 +T D4 0E 00 00 DD 0B 00 00 21 DD 0B 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T D9 0E 00 00 00 00 00 00 4D 44 E1 71 23 70 DD +R 00 00 01 00 02 04 0E 00 +T E2 0E 00 00 6E EE DD 66 EF 29 DD 4E E6 DD 46 +R 00 00 01 00 +T ED 0E 00 00 E7 09 E5 21 0A 00 DD 4E E0 DD 46 +R 00 00 01 00 +T F8 0E 00 00 E1 09 4E 06 00 E1 71 23 70 21 +R 00 00 01 00 +T 02 0F 00 00 0C 00 E5 DD 6E DE DD 66 DF 23 23 +R 00 00 01 00 +T 0D 0F 00 00 46 23 66 68 E5 DD 6E FC DD 66 FD +R 00 00 01 00 +T 18 0F 00 00 29 29 4D 44 29 09 4D 44 E1 09 4D +R 00 00 01 00 +T 23 0F 00 00 44 FD 6E 02 FD 66 03 E5 DD 6E EE +R 00 00 01 00 +T 2E 0F 00 00 DD 66 EF 29 29 5D 54 29 19 EB E1 +R 00 00 01 00 +T 39 0F 00 00 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 04 00 +T 3E 0F 00 00 00 00 00 00 CD 00 00 00 00 F1 DD +R 00 00 01 00 02 04 04 00 02 09 0E 00 +T 45 0F 00 00 6E E2 DD 66 E3 23 23 46 DD 70 E2 +R 00 00 01 00 +T 50 0F 00 00 23 66 DD 74 E3 DD 34 EE C2 +R 00 00 01 00 +T 59 0F 00 00 5C 0E 00 00 DD 34 EF C3 +R 00 00 01 00 00 04 01 00 +T 5F 0F 00 00 5C 0E 00 00 +R 00 00 01 00 00 04 01 00 +T 61 0F 00 00 +R 00 00 01 00 +T 61 0F 00 00 +R 00 00 01 00 +T 61 0F 00 00 DD 5E DE DD 56 DF 3E 32 0C 00 00 +R 00 00 01 00 29 0B 01 00 +T 69 0F 00 00 21 32 0C 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T 70 0F 00 00 75 F4 DD 74 F5 CD 8E 04 00 00 DD +R 00 00 01 00 00 0A 01 00 +T 79 0F 00 00 75 E8 DD 74 E9 FD E5 D1 3E +R 00 00 01 00 +T 82 0F 00 00 32 0C 00 00 21 32 0C 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 87 0F 00 00 00 00 00 00 DD 75 F2 DD 74 F3 CD +R 00 00 01 00 02 04 0E 00 +T 90 0F 00 00 8E 04 00 00 DD 75 EA DD 74 EB DD +R 00 00 01 00 00 04 01 00 +T 99 0F 00 00 6E DE DD 66 DF E5 DD 6E FA DD 66 +R 00 00 01 00 +T A4 0F 00 00 FB C1 71 23 70 DD 6E FA DD 66 FB +R 00 00 01 00 +T AF 0F 00 00 23 23 AF 77 23 77 21 04 00 DD 4E +R 00 00 01 00 +T BA 0F 00 00 FA DD 46 FB 09 DD 4E E8 71 DD 46 +R 00 00 01 00 +T C5 0F 00 00 E9 23 70 21 52 00 00 00 E5 6F 67 +R 00 00 01 00 00 08 02 00 +T CE 0F 00 00 E5 01 FF FF 11 4B 00 00 00 3E +R 00 00 01 00 00 09 02 00 +T D6 0F 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 08 00 02 09 08 00 +T DB 0F 00 00 00 00 00 00 F1 F1 FD 75 08 FD 74 +R 00 00 01 00 02 04 0E 00 +T E4 0F 00 00 09 21 05 00 DD 4E FE DD 46 FF 09 +R 00 00 01 00 +T EF 0F 00 00 7E 23 B6 21 1C 00 39 4D 44 28 17 +R 00 00 01 00 +T FA 0F 00 00 +R 00 00 01 00 +T FA 0F 00 00 21 05 00 DD 5E FE DD 56 FF 19 56 +R 00 00 01 00 +T 05 10 00 00 23 66 6A 11 04 00 19 5E 23 56 18 +R 00 00 01 00 +T 10 10 00 00 02 +R 00 00 01 00 +T 11 10 00 00 +R 00 00 01 00 +T 11 10 00 00 5F 57 +R 00 00 01 00 +T 13 10 00 00 +R 00 00 01 00 +T 13 10 00 00 3E 5D 20 00 00 21 5D 20 00 00 CD +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 19 10 00 00 00 00 00 00 DD 75 F6 DD 74 F7 +R 00 00 01 00 02 04 0E 00 +T 21 10 00 00 +R 00 00 01 00 +T 21 10 00 00 AF DD 77 EE DD 77 EF +R 00 00 01 00 +T 28 10 00 00 +R 00 00 01 00 +T 28 10 00 00 21 04 00 DD 4E DE DD 46 DF 09 4E +R 00 00 01 00 +T 33 10 00 00 23 46 DD 6E EE DD 66 EF F6 80 ED +R 00 00 01 00 +T 3E 10 00 00 42 E2 43 10 00 00 AC +R 00 00 01 00 00 06 01 00 +T 43 10 00 00 +R 00 00 01 00 +T 43 10 00 00 F2 71 11 00 00 +R 00 00 01 00 00 05 01 00 +T 46 10 00 00 +R 00 00 01 00 +T 46 10 00 00 21 08 00 DD 4E DE DD 46 DF 09 4E +R 00 00 01 00 +T 51 10 00 00 23 46 C5 21 01 00 E5 DD 4E F4 DD +R 00 00 01 00 +T 5C 10 00 00 46 F5 DD 5E E8 DD 56 E9 3E +R 00 00 01 00 +T 65 10 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T 6A 10 00 00 00 00 00 00 F1 F1 DD 6E E8 DD 66 +R 00 00 01 00 02 04 0E 00 +T 73 10 00 00 E9 46 05 C2 65 11 00 00 +R 00 00 01 00 00 08 01 00 +T 79 10 00 00 +R 00 00 01 00 +T 79 10 00 00 DD 6E EA DD 66 EB 36 01 23 70 DD +R 00 00 01 00 +T 84 10 00 00 36 EC 02 DD 70 ED AF DD 77 F0 DD +R 00 00 01 00 +T 8F 10 00 00 77 F1 +R 00 00 01 00 +T 91 10 00 00 +R 00 00 01 00 +T 91 10 00 00 FD 4E 00 FD 46 01 DD 6E F0 DD 66 +R 00 00 01 00 +T 9C 10 00 00 F1 F6 80 ED 42 E2 A5 10 00 00 AC +R 00 00 01 00 00 0A 01 00 +T A5 10 00 00 +R 00 00 01 00 +T A5 10 00 00 F2 13 11 00 00 +R 00 00 01 00 00 05 01 00 +T A8 10 00 00 +R 00 00 01 00 +T A8 10 00 00 DD 6E F0 DD 66 F1 29 DD 4E E6 DD +R 00 00 01 00 +T B3 10 00 00 46 E7 09 5E 23 56 D5 DD 6E F0 DD +R 00 00 01 00 +T BE 10 00 00 66 F1 29 DD 5E E4 DD 56 E5 19 56 +R 00 00 01 00 +T C9 10 00 00 23 66 6A DD 5E E8 DD 56 E9 19 4D +R 00 00 01 00 +T D4 10 00 00 44 DD 6E EC DD 66 ED DD 5E EA DD +R 00 00 01 00 +T DF 10 00 00 56 EB 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 04 00 +T E6 10 00 00 00 00 00 00 CD 00 00 00 00 F1 DD +R 00 00 01 00 02 04 04 00 02 09 0E 00 +T ED 10 00 00 6E F0 DD 66 F1 29 DD 4E E6 DD 46 +R 00 00 01 00 +T F8 10 00 00 E7 09 4E 23 46 21 10 00 39 7E 81 +R 00 00 01 00 +T 03 11 00 00 77 23 7E 88 77 DD 34 F0 20 84 DD +R 00 00 01 00 +T 0E 11 00 00 34 F1 C3 91 10 00 00 +R 00 00 01 00 00 07 01 00 +T 13 11 00 00 +R 00 00 01 00 +T 13 11 00 00 DD 4E FA DD 46 FB DD 5E F6 DD 56 +R 00 00 01 00 +T 1E 11 00 00 F7 3E C0 24 00 00 21 C0 24 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 24 11 00 00 CD 00 00 00 00 21 24 00 DD 4E F6 +R 00 00 01 00 02 05 0E 00 +T 2D 11 00 00 DD 46 F7 09 3E 01 AE 23 B6 23 B6 +R 00 00 01 00 +T 38 11 00 00 23 B6 20 29 +R 00 00 01 00 +T 3C 11 00 00 +R 00 00 01 00 +T 3C 11 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T 47 11 00 00 DD 4E F2 DD 46 F3 DD 5E EA DD 56 +R 00 00 01 00 +T 52 11 00 00 EB 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 07 00 02 0B 07 00 +T 58 11 00 00 CD 00 00 00 00 F1 F1 FD 34 04 20 +R 00 00 01 00 02 05 0E 00 +T 61 11 00 00 03 FD 34 05 +R 00 00 01 00 +T 65 11 00 00 +R 00 00 01 00 +T 65 11 00 00 +R 00 00 01 00 +T 65 11 00 00 +R 00 00 01 00 +T 65 11 00 00 DD 34 EE C2 28 10 00 00 DD 34 EF +R 00 00 01 00 00 08 01 00 +T 6E 11 00 00 C3 28 10 00 00 +R 00 00 01 00 00 05 01 00 +T 71 11 00 00 +R 00 00 01 00 +T 71 11 00 00 DD 5E E8 DD 56 E9 CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 7A 11 00 00 DD 5E E4 DD 56 E5 CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 83 11 00 00 DD 5E E6 DD 56 E7 CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 8C 11 00 00 DD 5E FA DD 56 FB CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 95 11 00 00 DD 5E F6 DD 56 F7 3E 97 24 00 00 +R 00 00 01 00 29 0B 01 00 +T 9D 11 00 00 21 97 24 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T A4 11 00 00 5E DE DD 56 DF 3E 70 0B 00 00 21 +R 00 00 01 00 29 0A 01 00 +T AC 11 00 00 70 0B 00 00 CD 00 00 00 00 FD 5E +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T B3 11 00 00 08 FD 56 09 CD 4B 0B 00 00 21 +R 00 00 01 00 00 09 01 00 +T BB 11 00 00 43 00 00 00 E5 21 00 00 E5 01 +R 00 00 01 00 00 04 02 00 +T C3 11 00 00 FF FF 11 4B 00 00 00 3E +R 00 00 01 00 00 07 02 00 +T C9 11 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 08 00 02 09 08 00 +T CE 11 00 00 00 00 00 00 F1 F1 FD 75 08 FD 74 +R 00 00 01 00 02 04 0E 00 +T D7 11 00 00 09 FD E5 E1 DD F9 C3 6B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T E0 11 00 00 +R 00 00 01 00 +T E0 11 00 00 DD 75 E4 DD 74 E5 FD 6E 00 FD 66 +R 00 00 01 00 +T EB 11 00 00 01 29 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 18 00 +T F1 11 00 00 00 00 00 00 CD 00 00 00 00 DD 75 +R 00 00 01 00 02 04 18 00 02 09 0E 00 +T F8 11 00 00 E6 DD 74 E7 FD 6E 00 FD 66 01 29 +R 00 00 01 00 +T 03 12 00 00 29 4D 44 29 09 EB 3E 00 00 00 00 +R 00 00 01 00 2B 0B 18 00 +T 0B 12 00 00 21 00 00 00 00 C9 +R 00 00 01 00 02 05 18 00 +T 0F 12 00 00 +R 00 00 01 00 +T 0F 12 00 00 DD 6E FE DD 66 FF 23 5E 23 56 3E +R 00 00 01 00 +T 1A 12 00 00 73 00 00 00 21 73 00 00 00 C3 +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 1F 12 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 21 12 00 00 +R 00 00 01 00 +T 21 12 00 00 3E 5D 20 00 00 21 5D 20 00 00 CD +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 27 12 00 00 00 00 00 00 DD 75 F8 DD 74 F9 +R 00 00 01 00 02 04 0E 00 +T 2F 12 00 00 +R 00 00 01 00 +T 2F 12 00 00 3E 44 1D 00 00 21 44 1D 00 00 C3 +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 35 12 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 37 12 00 00 +R 00 00 01 00 +T 37 12 00 00 DD 5E F8 DD 56 F9 3E C0 24 00 00 +R 00 00 01 00 29 0B 01 00 +T 3F 12 00 00 21 C0 24 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T 46 12 00 00 24 00 DD 4E F8 DD 46 F9 09 3E 01 +R 00 00 01 00 +T 51 12 00 00 AE 23 B6 23 B6 23 B6 C9 +R 00 00 01 00 +T 59 12 00 00 +R 00 00 01 00 +T 59 12 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T 64 12 00 00 D5 21 E8 FF 39 F9 11 14 00 CD +R 00 00 01 00 +T 6E 12 00 00 8F 04 00 00 DD 75 E6 DD 74 E7 DD +R 00 00 01 00 00 04 01 00 +T 77 12 00 00 4E FE DD 46 FF 03 03 03 0A 6F 03 +R 00 00 01 00 +T 82 12 00 00 0A 67 01 04 00 09 4E 23 46 21 +R 00 00 01 00 +T 8C 12 00 00 0B 00 DD 5E E6 DD 56 E7 CD +R 00 00 01 00 +T 95 12 00 00 AB 04 00 00 DD 5E E6 DD 56 E7 3E +R 00 00 01 00 00 04 01 00 +T 9E 12 00 00 A0 08 00 00 21 A0 08 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T A3 12 00 00 00 00 00 00 DD 5E E6 DD 56 E7 3E +R 00 00 01 00 02 04 0E 00 +T AC 12 00 00 32 0C 00 00 21 32 0C 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T B1 12 00 00 00 00 00 00 DD 75 FA DD 74 FB CD +R 00 00 01 00 02 04 0E 00 +T BA 12 00 00 8E 04 00 00 DD 75 E8 DD 74 E9 AF +R 00 00 01 00 00 04 01 00 +T C3 12 00 00 DD 77 F4 DD 77 F5 +R 00 00 01 00 +T C9 12 00 00 +R 00 00 01 00 +T C9 12 00 00 DD 4E FA DD 46 FB DD 6E F4 DD 66 +R 00 00 01 00 +T D4 12 00 00 F5 F6 80 ED 42 E2 DD 12 00 00 AC +R 00 00 01 00 00 0A 01 00 +T DD 12 00 00 +R 00 00 01 00 +T DD 12 00 00 F2 F9 12 00 00 +R 00 00 01 00 00 05 01 00 +T E0 12 00 00 +R 00 00 01 00 +T E0 12 00 00 DD 6E F4 DD 66 F5 DD 4E E8 DD 46 +R 00 00 01 00 +T EB 12 00 00 E9 09 36 00 DD 34 F4 20 D5 DD 34 +R 00 00 01 00 +T F6 12 00 00 F5 18 D0 +R 00 00 01 00 +T F9 12 00 00 +R 00 00 01 00 +T F9 12 00 00 59 50 CD 8F 04 00 00 DD 75 EA DD +R 00 00 01 00 00 07 01 00 +T 02 13 00 00 74 EB DD 6E E8 DD 66 E9 36 01 23 +R 00 00 01 00 +T 0D 13 00 00 36 00 CD 0F 12 00 00 DD 75 F2 DD +R 00 00 01 00 00 07 01 00 +T 16 13 00 00 74 F3 DD 6E FE DD 66 FF 23 46 DD +R 00 00 01 00 +T 21 13 00 00 70 EC 23 66 DD 74 ED 21 07 00 DD +R 00 00 01 00 +T 2C 13 00 00 4E FE DD 46 FF 09 46 23 66 68 E5 +R 00 00 01 00 +T 37 13 00 00 FD E1 AF DD 77 F4 DD 77 F5 +R 00 00 01 00 +T 40 13 00 00 +R 00 00 01 00 +T 40 13 00 00 DD 4E F2 DD 46 F3 DD 6E F4 DD 66 +R 00 00 01 00 +T 4B 13 00 00 F5 F6 80 ED 42 E2 54 13 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 54 13 00 00 +R 00 00 01 00 +T 54 13 00 00 F2 E4 14 00 00 +R 00 00 01 00 00 05 01 00 +T 57 13 00 00 +R 00 00 01 00 +T 57 13 00 00 21 04 00 DD 4E EC DD 46 ED 09 4E +R 00 00 01 00 +T 62 13 00 00 23 46 DD 5E E6 DD 56 E7 3E +R 00 00 01 00 +T 6B 13 00 00 4E 0C 00 00 21 4E 0C 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 70 13 00 00 00 00 00 00 DD 75 FC DD 74 FD DD +R 00 00 01 00 02 04 0E 00 +T 79 13 00 00 4E E6 DD 46 E7 03 03 0A 6F 03 0A +R 00 00 01 00 +T 84 13 00 00 67 E5 DD 6E FC DD 66 FD 29 29 4D +R 00 00 01 00 +T 8F 13 00 00 44 29 09 4D 44 E1 09 DD 75 F0 DD +R 00 00 01 00 +T 9A 13 00 00 74 F1 DD 4E FC DD 46 FD DD 5E E6 +R 00 00 01 00 +T A5 13 00 00 DD 56 E7 3E DD 0B 00 00 21 +R 00 00 01 00 29 08 01 00 +T AB 13 00 00 DD 0B 00 00 CD 00 00 00 00 DD 75 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T B2 13 00 00 F6 DD 74 F7 21 0A 00 DD 4E F0 DD +R 00 00 01 00 +T BD 13 00 00 46 F1 09 4E DD 71 F8 DD 36 F9 00 +R 00 00 01 00 +T C8 13 00 00 FD 6E 04 FD 66 05 7E FE 27 C2 +R 00 00 01 00 +T D2 13 00 00 58 14 00 00 +R 00 00 01 00 00 04 01 00 +T D4 13 00 00 +R 00 00 01 00 +T D4 13 00 00 FD 5E 04 FD 56 05 CD 98 04 00 00 +R 00 00 01 00 00 0B 01 00 +T DD 13 00 00 FD 4E 04 FD 46 05 09 2B 36 00 21 +R 00 00 01 00 +T E8 13 00 00 09 00 DD 4E F0 DD 46 F1 09 7E FE +R 00 00 01 00 +T F3 13 00 00 53 20 28 +R 00 00 01 00 +T F6 13 00 00 +R 00 00 01 00 +T F6 13 00 00 DD 6E F8 DD 66 F9 E5 FD 4E 04 FD +R 00 00 01 00 +T 01 14 00 00 46 05 03 DD 6E F6 DD 66 F7 DD 5E +R 00 00 01 00 +T 0C 14 00 00 E8 DD 56 E9 19 EB 3E 00 00 00 00 +R 00 00 01 00 2B 0B 04 00 +T 14 14 00 00 21 00 00 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 02 05 04 00 02 0A 0E 00 +T 1B 14 00 00 C3 BE 14 00 00 +R 00 00 01 00 00 05 01 00 +T 1E 14 00 00 +R 00 00 01 00 +T 1E 14 00 00 FE 49 C2 BE 14 00 00 21 0A 00 09 +R 00 00 01 00 00 07 01 00 +T 27 14 00 00 46 05 05 20 17 +R 00 00 01 00 +T 2C 14 00 00 +R 00 00 01 00 +T 2C 14 00 00 DD 6E F6 DD 66 F7 DD 4E E8 DD 46 +R 00 00 01 00 +T 37 14 00 00 E9 09 E5 FD 5E 04 FD 56 05 13 18 +R 00 00 01 00 +T 42 14 00 00 3E +R 00 00 01 00 +T 43 14 00 00 +R 00 00 01 00 +T 43 14 00 00 21 0A 00 DD 46 F1 09 7E FE 04 20 +R 00 00 01 00 +T 4E 14 00 00 6F +R 00 00 01 00 +T 4F 14 00 00 +R 00 00 01 00 +T 4F 14 00 00 FD 5E 04 FD 56 05 13 18 48 +R 00 00 01 00 +T 58 14 00 00 +R 00 00 01 00 +T 58 14 00 00 +R 00 00 01 00 +T 58 14 00 00 +R 00 00 01 00 +T 58 14 00 00 +R 00 00 01 00 +T 58 14 00 00 21 09 00 DD 4E F0 09 7E FE 49 20 +R 00 00 01 00 +T 63 14 00 00 5A +R 00 00 01 00 +T 64 14 00 00 +R 00 00 01 00 +T 64 14 00 00 21 0A 00 09 46 05 05 20 21 +R 00 00 01 00 +T 6D 14 00 00 +R 00 00 01 00 +T 6D 14 00 00 DD 6E F6 DD 66 F7 DD 4E E8 DD 46 +R 00 00 01 00 +T 78 14 00 00 E9 09 E5 FD 5E 04 FD 56 05 +R 00 00 01 00 +T 81 14 00 00 +R 00 00 01 00 +T 81 14 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 87 14 00 00 00 00 00 00 4D 44 E1 18 2D +R 00 00 01 00 02 04 0E 00 +T 8E 14 00 00 +R 00 00 01 00 +T 8E 14 00 00 21 0A 00 DD 46 F1 09 7E FE 04 20 +R 00 00 01 00 +T 99 14 00 00 24 +R 00 00 01 00 +T 9A 14 00 00 +R 00 00 01 00 +T 9A 14 00 00 FD 5E 04 FD 56 05 +R 00 00 01 00 +T A0 14 00 00 +R 00 00 01 00 +T A0 14 00 00 3E 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 05 16 00 02 0A 16 00 +T A6 14 00 00 00 00 00 00 E5 DD 6E F6 DD 66 F7 +R 00 00 01 00 02 04 0E 00 +T AF 14 00 00 DD 5E E8 DD 56 E9 19 D1 73 23 72 +R 00 00 01 00 +T BA 14 00 00 23 +R 00 00 01 00 +T BB 14 00 00 +R 00 00 01 00 +T BB 14 00 00 71 23 70 +R 00 00 01 00 +T BE 14 00 00 +R 00 00 01 00 +T BE 14 00 00 +R 00 00 01 00 +T BE 14 00 00 +R 00 00 01 00 +T BE 14 00 00 +R 00 00 01 00 +T BE 14 00 00 DD 6E EC DD 66 ED 23 23 46 DD 70 +R 00 00 01 00 +T C9 14 00 00 EC 23 66 DD 74 ED FD 6E 02 FD 66 +R 00 00 01 00 +T D4 14 00 00 03 E5 FD E1 DD 34 F4 C2 +R 00 00 01 00 +T DC 14 00 00 40 13 00 00 DD 34 F5 C3 +R 00 00 01 00 00 04 01 00 +T E2 14 00 00 40 13 00 00 +R 00 00 01 00 00 04 01 00 +T E4 14 00 00 +R 00 00 01 00 +T E4 14 00 00 21 06 00 DD 4E E6 DD 46 E7 09 7E +R 00 00 01 00 +T EF 14 00 00 23 B6 20 50 +R 00 00 01 00 +T F3 14 00 00 +R 00 00 01 00 +T F3 14 00 00 6F 67 E5 E5 2E 04 E5 2E 08 09 5E +R 00 00 01 00 +T FE 14 00 00 23 56 CD 5A 16 00 00 F1 F1 F1 21 +R 00 00 01 00 00 07 01 00 +T 07 15 00 00 04 00 09 56 23 66 6A 23 E5 DD 6E +R 00 00 01 00 +T 12 15 00 00 EA DD 66 EB D1 73 23 72 21 08 00 +R 00 00 01 00 +T 1D 15 00 00 09 5E 23 56 D5 21 01 00 E5 01 +R 00 00 01 00 +T 27 15 00 00 02 00 DD 5E EA DD 56 EB 3E +R 00 00 01 00 +T 30 15 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 07 00 02 09 07 00 +T 35 15 00 00 00 00 00 00 F1 F1 21 02 00 E5 2B +R 00 00 01 00 02 04 0E 00 +T 3E 15 00 00 2B E5 C3 F6 15 00 00 +R 00 00 01 00 00 07 01 00 +T 43 15 00 00 +R 00 00 01 00 +T 43 15 00 00 21 00 00 E5 E5 2E 06 E5 23 23 09 +R 00 00 01 00 +T 4E 15 00 00 5E 23 56 CD 5A 16 00 00 F1 F1 F1 +R 00 00 01 00 00 08 01 00 +T 57 15 00 00 21 06 00 09 56 23 66 6A 2B E5 DD +R 00 00 01 00 +T 62 15 00 00 6E EA DD 66 EB D1 73 23 72 21 +R 00 00 01 00 +T 6C 15 00 00 08 00 09 5E 23 56 D5 21 01 00 E5 +R 00 00 01 00 +T 77 15 00 00 01 02 00 DD 5E EA DD 56 EB 3E +R 00 00 01 00 +T 81 15 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 07 00 02 09 07 00 +T 86 15 00 00 00 00 00 00 F1 F1 21 00 00 E5 E5 +R 00 00 01 00 02 04 0E 00 +T 8F 15 00 00 2E 0A E5 2B 2B DD 4E E6 DD 46 E7 +R 00 00 01 00 +T 9A 15 00 00 09 5E 23 56 CD 5A 16 00 00 F1 F1 +R 00 00 01 00 00 09 01 00 +T A3 15 00 00 F1 DD 6E EA DD 66 EB 36 FF 23 36 +R 00 00 01 00 +T AE 15 00 00 FF +R 00 00 01 00 +T AF 15 00 00 +R 00 00 01 00 +T AF 15 00 00 DD 6E EA DD 66 EB AF B6 28 2A +R 00 00 01 00 +T B9 15 00 00 +R 00 00 01 00 +T B9 15 00 00 21 08 00 DD 4E E6 DD 46 E7 09 4E +R 00 00 01 00 +T C4 15 00 00 23 46 C5 21 01 00 E5 DD 4E FA DD +R 00 00 01 00 +T CF 15 00 00 46 FB DD 5E EA DD 56 EB 3E +R 00 00 01 00 +T D8 15 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T DD 15 00 00 00 00 00 00 F1 F1 18 CC +R 00 00 01 00 02 04 0E 00 +T E3 15 00 00 +R 00 00 01 00 +T E3 15 00 00 21 01 00 E5 DD 4E FA DD 46 FB 2B +R 00 00 01 00 +T EE 15 00 00 ED 42 7C 07 9F 4F 41 C5 +R 00 00 01 00 +T F6 15 00 00 +R 00 00 01 00 +T F6 15 00 00 E5 21 08 00 DD 4E E6 DD 46 E7 09 +R 00 00 01 00 +T 01 16 00 00 5E 23 56 CD 5A 16 00 00 F1 F1 F1 +R 00 00 01 00 00 08 01 00 +T 0A 16 00 00 +R 00 00 01 00 +T 0A 16 00 00 21 08 00 09 5E 23 56 D5 21 01 00 +R 00 00 01 00 +T 15 16 00 00 E5 DD 4E FA DD 46 FB DD 5E E8 DD +R 00 00 01 00 +T 20 16 00 00 56 E9 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 07 00 +T 25 16 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 07 00 02 09 0E 00 +T 2C 16 00 00 DD 5E E8 DD 56 E9 CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 35 16 00 00 DD 5E EA DD 56 EB CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 3E 16 00 00 DD 5E E6 DD 56 E7 3E 70 0B 00 00 +R 00 00 01 00 29 0B 01 00 +T 46 16 00 00 21 70 0B 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T 4D 16 00 00 00 00 DD F9 C3 6B 00 00 00 +R 00 00 01 00 00 09 01 00 +T 54 16 00 00 +R 00 00 01 00 +T 54 16 00 00 FD 5E 08 FD 56 09 +R 00 00 01 00 +T 5A 16 00 00 +R 00 00 01 00 +T 5A 16 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 05 00 02 0A 05 00 +T 60 16 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 62 16 00 00 +R 00 00 01 00 +T 62 16 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T 6D 16 00 00 D5 21 F4 FF 39 F9 CD 14 18 00 00 +R 00 00 01 00 00 0B 01 00 +T 76 16 00 00 DD 75 FA DD 74 FB CD 8E 04 00 00 +R 00 00 01 00 00 0B 01 00 +T 7F 16 00 00 DD 75 FC DD 74 FD AF DD 77 F4 DD +R 00 00 01 00 +T 8A 16 00 00 77 F5 21 05 00 DD 4E FE DD 46 FF +R 00 00 01 00 +T 95 16 00 00 09 7E 23 B6 21 02 00 39 4D 44 28 +R 00 00 01 00 +T A0 16 00 00 17 +R 00 00 01 00 +T A1 16 00 00 +R 00 00 01 00 +T A1 16 00 00 21 05 00 DD 5E FE DD 56 FF 19 56 +R 00 00 01 00 +T AC 16 00 00 23 66 6A 11 04 00 19 5E 23 56 18 +R 00 00 01 00 +T B7 16 00 00 02 +R 00 00 01 00 +T B8 16 00 00 +R 00 00 01 00 +T B8 16 00 00 5F 57 +R 00 00 01 00 +T BA 16 00 00 +R 00 00 01 00 +T BA 16 00 00 +R 00 00 01 00 +T BA 16 00 00 CD 21 12 00 00 DD 75 F2 DD 74 F3 +R 00 00 01 00 00 05 01 00 +T C3 16 00 00 FD E5 C1 71 23 70 21 04 00 DD 4E +R 00 00 01 00 +T CE 16 00 00 F2 DD 46 F3 09 DD 5E FC 73 DD 56 +R 00 00 01 00 +T D9 16 00 00 FD 23 72 69 60 23 23 AF 77 23 77 +R 00 00 01 00 +T E4 16 00 00 DD 77 F6 DD 77 F7 DD 77 F4 DD 77 +R 00 00 01 00 +T EF 16 00 00 F5 +R 00 00 01 00 +T F0 16 00 00 +R 00 00 01 00 +T F0 16 00 00 FD 4E 04 FD 46 05 DD 6E F4 DD 66 +R 00 00 01 00 +T FB 16 00 00 F5 F6 80 ED 42 E2 04 17 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 04 17 00 00 +R 00 00 01 00 +T 04 17 00 00 F2 AC 17 00 00 +R 00 00 01 00 00 05 01 00 +T 07 17 00 00 +R 00 00 01 00 +T 07 17 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T 12 17 00 00 DD 4E FA DD 46 FB 2E 04 DD 5E F2 +R 00 00 01 00 +T 1D 17 00 00 DD 56 F3 19 5E 23 56 3E +R 00 00 01 00 +T 25 17 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T 2A 17 00 00 00 00 00 00 F1 F1 DD 6E FC DD 66 +R 00 00 01 00 02 04 0E 00 +T 33 17 00 00 FD 46 05 20 68 +R 00 00 01 00 +T 38 17 00 00 +R 00 00 01 00 +T 38 17 00 00 DD 4E F2 DD 46 F3 CD 37 12 00 00 +R 00 00 01 00 00 0B 01 00 +T 41 17 00 00 20 5D +R 00 00 01 00 +T 43 17 00 00 +R 00 00 01 00 +T 43 17 00 00 DD 6E FC DD 66 FD 77 21 01 00 E5 +R 00 00 01 00 +T 4E 17 00 00 DD 4E FA DD 46 FB 2B ED 42 7C 07 +R 00 00 01 00 +T 59 17 00 00 9F 4F 41 C5 E5 CD 54 16 00 00 F1 +R 00 00 01 00 00 0A 01 00 +T 62 17 00 00 F1 F1 FD 6E 08 FD 66 09 E5 21 +R 00 00 01 00 +T 6C 17 00 00 01 00 E5 DD 4E FA DD 46 FB 2E 04 +R 00 00 01 00 +T 77 17 00 00 DD 5E F2 DD 56 F3 19 5E 23 56 3E +R 00 00 01 00 +T 82 17 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 07 00 02 09 07 00 +T 87 17 00 00 00 00 00 00 F1 F1 21 01 00 E5 2B +R 00 00 01 00 02 04 0E 00 +T 90 17 00 00 E5 E5 CD 54 16 00 00 F1 F1 F1 DD +R 00 00 01 00 00 07 01 00 +T 99 17 00 00 34 F6 20 03 DD 34 F7 +R 00 00 01 00 +T A0 17 00 00 +R 00 00 01 00 +T A0 17 00 00 +R 00 00 01 00 +T A0 17 00 00 +R 00 00 01 00 +T A0 17 00 00 DD 34 F4 C2 F0 16 00 00 DD 34 F5 +R 00 00 01 00 00 08 01 00 +T A9 17 00 00 C3 F0 16 00 00 +R 00 00 01 00 00 05 01 00 +T AC 17 00 00 +R 00 00 01 00 +T AC 17 00 00 DD 5E F2 DD 56 F3 3E 25 1D 00 00 +R 00 00 01 00 29 0B 01 00 +T B4 17 00 00 21 25 1D 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T BB 17 00 00 00 00 E5 E5 2E 06 E5 CD +R 00 00 01 00 +T C3 17 00 00 54 16 00 00 F1 F1 F1 21 04 00 39 +R 00 00 01 00 00 04 01 00 +T CC 17 00 00 7E FD 86 06 77 23 7E FD 8E 07 77 +R 00 00 01 00 +T D7 17 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T E2 17 00 00 01 02 00 2E 08 39 EB 3E +R 00 00 01 00 +T EA 17 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 07 00 02 09 07 00 +T EF 17 00 00 00 00 00 00 F1 F1 DD 5E F8 DD 56 +R 00 00 01 00 02 04 0E 00 +T F8 17 00 00 F9 3E 97 24 00 00 21 97 24 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T FE 17 00 00 CD 00 00 00 00 FD E5 D1 3E +R 00 00 01 00 02 05 0E 00 +T 05 18 00 00 70 0B 00 00 21 70 0B 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 0A 18 00 00 00 00 00 00 21 00 00 DD F9 C3 +R 00 00 01 00 02 04 0E 00 +T 12 18 00 00 6B 00 00 00 +R 00 00 01 00 00 04 01 00 +T 14 18 00 00 +R 00 00 01 00 +T 14 18 00 00 11 14 00 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 18 00 +T 1A 18 00 00 00 00 00 00 CD 00 00 00 00 E5 FD +R 00 00 01 00 02 04 18 00 02 09 0E 00 +T 21 18 00 00 E1 DD 4E FE DD 46 FF 03 03 03 0A +R 00 00 01 00 +T 2C 18 00 00 6F 03 0A 67 01 04 00 09 4E 23 46 +R 00 00 01 00 +T 37 18 00 00 21 0B 00 FD E5 D1 19 EB 3E +R 00 00 01 00 +T 40 18 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 0F 00 02 09 0F 00 +T 45 18 00 00 00 00 00 00 FD E5 D1 3E +R 00 00 01 00 02 04 0E 00 +T 4B 18 00 00 A0 08 00 00 21 A0 08 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 50 18 00 00 00 00 00 00 FD E5 D1 3E +R 00 00 01 00 02 04 0E 00 +T 56 18 00 00 32 0C 00 00 21 32 0C 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 5B 18 00 00 00 00 00 00 C9 +R 00 00 01 00 02 04 0E 00 +T 5E 18 00 00 +R 00 00 01 00 +T 5E 18 00 00 C5 FD E5 DD E5 DD 21 00 00 DD 39 +R 00 00 01 00 +T 69 18 00 00 D5 21 E8 FF 39 F9 CD 14 18 00 00 +R 00 00 01 00 00 0B 01 00 +T 72 18 00 00 DD 75 F2 DD 74 F3 CD 8E 04 00 00 +R 00 00 01 00 00 0B 01 00 +T 7B 18 00 00 DD 75 FA DD 74 FB AF DD 77 EE DD +R 00 00 01 00 +T 86 18 00 00 77 EF 21 05 00 DD 4E FE DD 46 FF +R 00 00 01 00 +T 91 18 00 00 09 7E 23 B6 21 08 00 39 4D 44 28 +R 00 00 01 00 +T 9C 18 00 00 17 +R 00 00 01 00 +T 9D 18 00 00 +R 00 00 01 00 +T 9D 18 00 00 21 05 00 DD 5E FE DD 56 FF 19 56 +R 00 00 01 00 +T A8 18 00 00 23 66 6A 11 04 00 19 5E 23 56 18 +R 00 00 01 00 +T B3 18 00 00 02 +R 00 00 01 00 +T B4 18 00 00 +R 00 00 01 00 +T B4 18 00 00 5F 57 +R 00 00 01 00 +T B6 18 00 00 +R 00 00 01 00 +T B6 18 00 00 +R 00 00 01 00 +T B6 18 00 00 CD 21 12 00 00 DD 75 E8 DD 74 E9 +R 00 00 01 00 00 05 01 00 +T BF 18 00 00 FD E5 C1 71 23 70 21 04 00 DD 4E +R 00 00 01 00 +T CA 18 00 00 E8 DD 46 E9 09 DD 5E FA 73 DD 56 +R 00 00 01 00 +T D5 18 00 00 FB 23 72 69 60 23 23 AF 77 23 77 +R 00 00 01 00 +T E0 18 00 00 CD 0F 12 00 00 DD 75 F0 DD 74 F1 +R 00 00 01 00 00 05 01 00 +T E9 18 00 00 CD 8D 04 00 00 DD 75 EC DD 74 ED +R 00 00 01 00 00 05 01 00 +T F2 18 00 00 DD 6E FE DD 66 FF 23 46 DD 70 EA +R 00 00 01 00 +T FD 18 00 00 23 66 DD 74 EB AF DD 77 E6 DD 77 +R 00 00 01 00 +T 08 19 00 00 E7 +R 00 00 01 00 +T 09 19 00 00 +R 00 00 01 00 +T 09 19 00 00 DD 4E F0 DD 46 F1 DD 6E E6 DD 66 +R 00 00 01 00 +T 14 19 00 00 E7 F6 80 ED 42 E2 1D 19 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 1D 19 00 00 +R 00 00 01 00 +T 1D 19 00 00 F2 8E 19 00 00 +R 00 00 01 00 00 05 01 00 +T 20 19 00 00 +R 00 00 01 00 +T 20 19 00 00 0E 00 C5 0E 3D 21 04 00 DD 5E EA +R 00 00 01 00 +T 2B 19 00 00 DD 56 EB 19 5E 23 56 3E +R 00 00 01 00 +T 33 19 00 00 9F 02 00 00 21 9F 02 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 38 19 00 00 00 00 00 00 F1 DD 75 FC DD 74 FD +R 00 00 01 00 02 04 0E 00 +T 41 19 00 00 AF DD 77 F4 DD 77 F5 DD 6E E6 DD +R 00 00 01 00 +T 4C 19 00 00 66 E7 29 DD 4E EC DD 46 ED 09 E5 +R 00 00 01 00 +T 57 19 00 00 21 10 00 39 4D 44 DD 5E FC DD 56 +R 00 00 01 00 +T 62 19 00 00 FD 13 3E 5D 20 00 00 21 +R 00 00 01 00 29 07 01 00 +T 67 19 00 00 5D 20 00 00 CD 00 00 00 00 4D 44 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 6E 19 00 00 E1 71 23 70 DD 6E EA DD 66 EB 23 +R 00 00 01 00 +T 79 19 00 00 23 46 DD 70 EA 23 66 DD 74 EB DD +R 00 00 01 00 +T 84 19 00 00 34 E6 20 81 DD 34 E7 C3 +R 00 00 01 00 +T 8C 19 00 00 09 19 00 00 +R 00 00 01 00 00 04 01 00 +T 8E 19 00 00 +R 00 00 01 00 +T 8E 19 00 00 AF DD 77 EE DD 77 EF +R 00 00 01 00 +T 95 19 00 00 +R 00 00 01 00 +T 95 19 00 00 FD 4E 04 FD 46 05 DD 6E EE DD 66 +R 00 00 01 00 +T A0 19 00 00 EF F6 80 ED 42 E2 A9 19 00 00 AC +R 00 00 01 00 00 0A 01 00 +T A9 19 00 00 +R 00 00 01 00 +T A9 19 00 00 F2 B3 1B 00 00 +R 00 00 01 00 00 05 01 00 +T AC 19 00 00 +R 00 00 01 00 +T AC 19 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T B7 19 00 00 DD 4E F2 DD 46 F3 2E 04 DD 5E E8 +R 00 00 01 00 +T C2 19 00 00 DD 56 E9 19 5E 23 56 3E +R 00 00 01 00 +T CA 19 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T CF 19 00 00 00 00 00 00 F1 F1 DD 6E FA DD 66 +R 00 00 01 00 02 04 0E 00 +T D8 19 00 00 FB 46 05 C2 A7 1B 00 00 +R 00 00 01 00 00 08 01 00 +T DE 19 00 00 +R 00 00 01 00 +T DE 19 00 00 DD 4E E8 DD 46 E9 CD 37 12 00 00 +R 00 00 01 00 00 0B 01 00 +T E7 19 00 00 C2 A7 1B 00 00 +R 00 00 01 00 00 05 01 00 +T EA 19 00 00 +R 00 00 01 00 +T EA 19 00 00 21 01 00 E5 DD 4E F2 DD 46 F3 2B +R 00 00 01 00 +T F5 19 00 00 ED 42 7C 07 9F 4F 41 C5 E5 CD +R 00 00 01 00 +T FF 19 00 00 54 16 00 00 F1 F1 F1 AF DD 77 E6 +R 00 00 01 00 00 04 01 00 +T 08 1A 00 00 DD 77 E7 +R 00 00 01 00 +T 0B 1A 00 00 +R 00 00 01 00 +T 0B 1A 00 00 DD 4E F0 DD 46 F1 DD 6E E6 DD 66 +R 00 00 01 00 +T 16 1A 00 00 E7 F6 80 ED 42 E2 1F 1A 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 1F 1A 00 00 +R 00 00 01 00 +T 1F 1A 00 00 F2 4B 1A 00 00 +R 00 00 01 00 00 05 01 00 +T 22 1A 00 00 +R 00 00 01 00 +T 22 1A 00 00 DD 4E E8 DD 46 E9 DD 6E E6 DD 66 +R 00 00 01 00 +T 2D 1A 00 00 E7 29 DD 5E EC DD 56 ED 19 5E 23 +R 00 00 01 00 +T 38 1A 00 00 56 3E C0 24 00 00 21 C0 24 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 3E 1A 00 00 CD 00 00 00 00 DD 34 E6 20 C5 DD +R 00 00 01 00 02 05 0E 00 +T 47 1A 00 00 34 E7 18 C0 +R 00 00 01 00 +T 4B 1A 00 00 +R 00 00 01 00 +T 4B 1A 00 00 DD 6E FE DD 66 FF 23 46 DD 70 EA +R 00 00 01 00 +T 56 1A 00 00 23 66 DD 74 EB AF DD 77 E6 DD 77 +R 00 00 01 00 +T 61 1A 00 00 E7 +R 00 00 01 00 +T 62 1A 00 00 +R 00 00 01 00 +T 62 1A 00 00 DD 4E F0 DD 46 F1 DD 6E E6 DD 66 +R 00 00 01 00 +T 6D 1A 00 00 E7 F6 80 ED 42 E2 76 1A 00 00 AC +R 00 00 01 00 00 0A 01 00 +T 76 1A 00 00 +R 00 00 01 00 +T 76 1A 00 00 F2 73 1B 00 00 +R 00 00 01 00 00 05 01 00 +T 79 1A 00 00 +R 00 00 01 00 +T 79 1A 00 00 21 04 00 DD 4E EA DD 46 EB 09 4E +R 00 00 01 00 +T 84 1A 00 00 23 46 FD E5 D1 3E 4E 0C 00 00 21 +R 00 00 01 00 29 0A 01 00 +T 8C 1A 00 00 4E 0C 00 00 CD 00 00 00 00 DD 75 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 93 1A 00 00 F6 DD 74 F7 4D 44 FD E5 D1 3E +R 00 00 01 00 +T 9D 1A 00 00 DD 0B 00 00 21 DD 0B 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T A2 1A 00 00 00 00 00 00 DD 75 F4 DD 74 F5 FD +R 00 00 01 00 02 04 0E 00 +T AB 1A 00 00 6E 02 FD 66 03 E5 DD 6E F6 DD 66 +R 00 00 01 00 +T B6 1A 00 00 F7 29 29 4D 44 29 09 4D 44 E1 09 +R 00 00 01 00 +T C1 1A 00 00 01 09 00 09 7E FE 53 20 34 +R 00 00 01 00 +T CA 1A 00 00 +R 00 00 01 00 +T CA 1A 00 00 FD 6E 02 FD 66 03 E5 DD 6E F6 DD +R 00 00 01 00 +T D5 1A 00 00 66 F7 29 29 4D 44 29 09 4D 44 E1 +R 00 00 01 00 +T E0 1A 00 00 09 01 0A 00 09 4E C5 DD 6E E6 DD +R 00 00 01 00 +T EB 1A 00 00 66 E7 29 DD 4E EC DD 46 ED 09 46 +R 00 00 01 00 +T F6 1A 00 00 23 66 68 01 28 00 18 36 +R 00 00 01 00 +T FE 1A 00 00 +R 00 00 01 00 +T FE 1A 00 00 FE 49 20 54 FD 6E 02 FD 66 03 E5 +R 00 00 01 00 +T 09 1B 00 00 DD 6E F6 DD 66 F7 29 29 4D 44 29 +R 00 00 01 00 +T 14 1B 00 00 09 4D 44 E1 09 01 0A 00 09 4E C5 +R 00 00 01 00 +T 1F 1B 00 00 DD 6E E6 DD 66 E7 29 DD 4E EC DD +R 00 00 01 00 +T 2A 1B 00 00 46 ED 09 46 23 66 68 01 24 00 +R 00 00 01 00 +T 34 1B 00 00 +R 00 00 01 00 +T 34 1B 00 00 09 4D 44 21 04 00 DD 5E E8 DD 56 +R 00 00 01 00 +T 3F 1B 00 00 E9 19 56 23 66 6A DD 5E F4 DD 56 +R 00 00 01 00 +T 4A 1B 00 00 F5 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 04 00 +T 50 1B 00 00 00 00 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 02 04 04 00 02 09 0E 00 +T 56 1B 00 00 +R 00 00 01 00 +T 56 1B 00 00 DD 6E EA DD 66 EB 23 23 46 DD 70 +R 00 00 01 00 +T 61 1B 00 00 EA 23 66 DD 74 EB DD 34 E6 C2 +R 00 00 01 00 +T 6B 1B 00 00 62 1A 00 00 DD 34 E7 C3 +R 00 00 01 00 00 04 01 00 +T 71 1B 00 00 62 1A 00 00 +R 00 00 01 00 00 04 01 00 +T 73 1B 00 00 +R 00 00 01 00 +T 73 1B 00 00 FD 6E 08 FD 66 09 E5 21 01 00 E5 +R 00 00 01 00 +T 7E 1B 00 00 DD 4E F2 DD 46 F3 2E 04 DD 5E E8 +R 00 00 01 00 +T 89 1B 00 00 DD 56 E9 19 5E 23 56 3E +R 00 00 01 00 +T 91 1B 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 07 00 02 09 07 00 +T 96 1B 00 00 00 00 00 00 F1 F1 21 01 00 E5 2B +R 00 00 01 00 02 04 0E 00 +T 9F 1B 00 00 E5 E5 CD 54 16 00 00 F1 F1 F1 +R 00 00 01 00 00 07 01 00 +T A7 1B 00 00 +R 00 00 01 00 +T A7 1B 00 00 +R 00 00 01 00 +T A7 1B 00 00 DD 34 EE C2 95 19 00 00 DD 34 EF +R 00 00 01 00 00 08 01 00 +T B0 1B 00 00 C3 95 19 00 00 +R 00 00 01 00 00 05 01 00 +T B3 1B 00 00 +R 00 00 01 00 +T B3 1B 00 00 DD 5E E8 DD 56 E9 3E 25 1D 00 00 +R 00 00 01 00 29 0B 01 00 +T BB 1B 00 00 21 25 1D 00 00 CD 00 00 00 00 AF +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T C2 1B 00 00 DD 77 E6 DD 77 E7 +R 00 00 01 00 +T C8 1B 00 00 +R 00 00 01 00 +T C8 1B 00 00 DD 4E F0 DD 46 F1 DD 6E E6 DD 66 +R 00 00 01 00 +T D3 1B 00 00 E7 F6 80 ED 42 E2 DC 1B 00 00 AC +R 00 00 01 00 00 0A 01 00 +T DC 1B 00 00 +R 00 00 01 00 +T DC 1B 00 00 F2 02 1C 00 00 +R 00 00 01 00 00 05 01 00 +T DF 1B 00 00 +R 00 00 01 00 +T DF 1B 00 00 DD 6E E6 DD 66 E7 29 DD 4E EC DD +R 00 00 01 00 +T EA 1B 00 00 46 ED 09 5E 23 56 3E 97 24 00 00 +R 00 00 01 00 29 0B 01 00 +T F2 1B 00 00 21 97 24 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T F9 1B 00 00 34 E6 20 CB DD 34 E7 18 C6 +R 00 00 01 00 +T 02 1C 00 00 +R 00 00 01 00 +T 02 1C 00 00 DD 5E EC DD 56 ED CD 3B 00 00 00 +R 00 00 01 00 00 0B 01 00 +T 0B 1C 00 00 FD E5 D1 3E 70 0B 00 00 21 +R 00 00 01 00 29 08 01 00 +T 11 1C 00 00 70 0B 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 17 1C 00 00 00 00 DD F9 C3 6B 00 00 00 +R 00 00 01 00 00 09 01 00 +T 1E 1C 00 00 +R 00 00 01 00 +T 1E 1C 00 00 FD E5 DD E5 D5 FD 21 00 00 3E +R 00 00 01 00 +T 28 1C 00 00 B5 04 00 00 21 B5 04 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 2D 1C 00 00 00 00 00 00 E5 DD E1 7D B4 20 04 +R 00 00 01 00 02 04 0E 00 +T 36 1C 00 00 +R 00 00 01 00 +T 36 1C 00 00 6F 67 18 4D +R 00 00 01 00 +T 3A 1C 00 00 +R 00 00 01 00 +T 3A 1C 00 00 DD 7E 00 FE 73 20 0A +R 00 00 01 00 +T 41 1C 00 00 +R 00 00 01 00 +T 41 1C 00 00 DD E5 D1 3E A4 0C 00 00 21 +R 00 00 01 00 29 08 01 00 +T 47 1C 00 00 A4 0C 00 00 18 28 +R 00 00 01 00 00 04 01 00 +T 4B 1C 00 00 +R 00 00 01 00 +T 4B 1C 00 00 FE 69 20 0A DD E5 D1 3E +R 00 00 01 00 +T 53 1C 00 00 59 12 00 00 21 59 12 00 00 18 1A +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 59 1C 00 00 +R 00 00 01 00 +T 59 1C 00 00 FE 64 20 0A DD E5 D1 3E +R 00 00 01 00 +T 61 1C 00 00 62 16 00 00 21 62 16 00 00 18 0C +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 67 1C 00 00 +R 00 00 01 00 +T 67 1C 00 00 FE 75 20 0E DD E5 D1 3E +R 00 00 01 00 +T 6F 1C 00 00 5E 18 00 00 21 5E 18 00 00 +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 73 1C 00 00 +R 00 00 01 00 +T 73 1C 00 00 CD 00 00 00 00 E5 FD E1 +R 00 00 01 00 02 05 0E 00 +T 79 1C 00 00 +R 00 00 01 00 +T 79 1C 00 00 DD E5 D1 3E 8E 0B 00 00 21 +R 00 00 01 00 29 08 01 00 +T 7F 1C 00 00 8E 0B 00 00 CD 00 00 00 00 FD E5 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 86 1C 00 00 E1 +R 00 00 01 00 +T 87 1C 00 00 +R 00 00 01 00 +T 87 1C 00 00 C3 E1 02 00 00 +R 00 00 01 00 00 05 01 00 +T 8A 1C 00 00 +R 00 00 01 00 +T 8A 1C 00 00 FD E5 DD E5 F5 C5 DD E1 D5 FD E1 +R 00 00 01 00 +T 95 1C 00 00 21 00 00 39 E5 3E 32 0C 00 00 21 +R 00 00 01 00 29 0A 01 00 +T 9D 1C 00 00 32 0C 00 00 CD 00 00 00 00 EB E1 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T A4 1C 00 00 73 23 72 21 04 00 09 7E 23 B6 20 +R 00 00 01 00 +T AF 1C 00 00 09 +R 00 00 01 00 +T B0 1C 00 00 +R 00 00 01 00 +T B0 1C 00 00 CD 8F 04 00 00 DD 75 04 DD 74 05 +R 00 00 01 00 00 05 01 00 +T B9 1C 00 00 +R 00 00 01 00 +T B9 1C 00 00 FD 4E 04 FD 46 05 FD 6E 06 FD 66 +R 00 00 01 00 +T C4 1C 00 00 07 F6 80 ED 42 E2 CD 1C 00 00 AC +R 00 00 01 00 00 0A 01 00 +T CD 1C 00 00 +R 00 00 01 00 +T CD 1C 00 00 FA E4 1C 00 00 +R 00 00 01 00 00 05 01 00 +T D0 1C 00 00 +R 00 00 01 00 +T D0 1C 00 00 DD 36 02 FF DD 36 03 FF CD +R 00 00 01 00 +T D9 1C 00 00 35 00 00 00 AF DD 77 04 DD 77 05 +R 00 00 01 00 00 04 01 00 +T E2 1C 00 00 18 3E +R 00 00 01 00 +T E4 1C 00 00 +R 00 00 01 00 +T E4 1C 00 00 FD 6E 06 FD 66 07 23 FD 75 06 FD +R 00 00 01 00 +T EF 1C 00 00 74 07 2B DD 75 02 DD 74 03 FD E5 +R 00 00 01 00 +T FA 1C 00 00 DD E5 E1 C1 71 23 70 FD 6E 08 FD +R 00 00 01 00 +T 05 1D 00 00 66 09 E5 21 01 00 E5 2E 04 39 4E +R 00 00 01 00 +T 10 1D 00 00 23 46 DD 5E 04 DD 56 05 3E +R 00 00 01 00 +T 19 1D 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 00 00 02 09 00 00 +T 1E 1D 00 00 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 0E 00 +T 22 1D 00 00 +R 00 00 01 00 +T 22 1D 00 00 C3 01 01 00 00 +R 00 00 01 00 00 05 01 00 +T 25 1D 00 00 +R 00 00 01 00 +T 25 1D 00 00 DD E5 D5 DD E1 7B B2 28 11 +R 00 00 01 00 +T 2E 1D 00 00 +R 00 00 01 00 +T 2E 1D 00 00 DD 7E 04 DD B6 05 28 03 +R 00 00 01 00 +T 36 1D 00 00 +R 00 00 01 00 +T 36 1D 00 00 CD 35 00 00 00 +R 00 00 01 00 00 05 01 00 +T 39 1D 00 00 +R 00 00 01 00 +T 39 1D 00 00 DD E5 D1 CD 3B 00 00 00 +R 00 00 01 00 00 08 01 00 +T 3F 1D 00 00 +R 00 00 01 00 +T 3F 1D 00 00 DD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 02 00 +T 44 1D 00 00 +R 00 00 01 00 +T 44 1D 00 00 C5 D5 DD E5 11 06 00 CD +R 00 00 01 00 +T 4C 1D 00 00 8F 04 00 00 E5 DD E1 01 04 00 09 +R 00 00 01 00 00 04 01 00 +T 55 1D 00 00 AF 77 23 77 DD E5 E1 77 23 77 DD +R 00 00 01 00 +T 60 1D 00 00 36 02 FF DD 36 03 FF DD E5 E1 DD +R 00 00 01 00 +T 6B 1D 00 00 E1 D1 C1 C3 00 00 00 00 +R 00 00 01 00 02 08 02 00 +T 71 1D 00 00 +R 00 00 01 00 +T 71 1D 00 00 FD E5 DD E5 DD 21 00 00 DD 39 C5 +R 00 00 01 00 +T 7C 1D 00 00 F5 F5 F5 D5 FD E1 21 04 00 19 7E +R 00 00 01 00 +T 87 1D 00 00 DD 77 F8 23 66 DD 74 F9 EB 5E 23 +R 00 00 01 00 +T 92 1D 00 00 56 3E DD 0B 00 00 21 DD 0B 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 98 1D 00 00 CD 00 00 00 00 DD 75 FA DD 74 FB +R 00 00 01 00 02 05 0E 00 +T A1 1D 00 00 FD 6E 00 FD 66 01 23 23 46 23 66 +R 00 00 01 00 +T AC 1D 00 00 68 E5 DD 6E FE DD 66 FF 29 29 4D +R 00 00 01 00 +T B7 1D 00 00 44 29 09 4D 44 E1 09 01 09 00 09 +R 00 00 01 00 +T C2 1D 00 00 7E FE 53 20 1B +R 00 00 01 00 +T C7 1D 00 00 +R 00 00 01 00 +T C7 1D 00 00 DD 6E FA DD 66 FB DD 4E F8 DD 46 +R 00 00 01 00 +T D2 1D 00 00 F9 09 4D 44 DD 5E 08 DD 56 09 CD +R 00 00 01 00 +T DD 1D 00 00 AD 04 00 00 C3 7A 1E 00 00 +R 00 00 01 00 00 04 01 00 00 09 01 00 +T E2 1D 00 00 +R 00 00 01 00 +T E2 1D 00 00 FE 49 C2 7A 1E 00 00 FD 6E 00 FD +R 00 00 01 00 00 07 01 00 +T EB 1D 00 00 66 01 23 23 46 23 66 68 E5 DD 6E +R 00 00 01 00 +T F6 1D 00 00 FE DD 66 FF 29 29 4D 44 29 09 4D +R 00 00 01 00 +T 01 1E 00 00 44 E1 09 01 0A 00 09 46 05 05 20 +R 00 00 01 00 +T 0C 1E 00 00 21 +R 00 00 01 00 +T 0D 1E 00 00 +R 00 00 01 00 +T 0D 1E 00 00 C5 DD 4E 08 DD 46 09 DD 6E FA DD +R 00 00 01 00 +T 18 1E 00 00 66 FB DD 5E F8 DD 56 F9 19 5E 23 +R 00 00 01 00 +T 23 1E 00 00 56 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 12 00 02 0B 12 00 +T 29 1E 00 00 CD 00 00 00 00 18 4B +R 00 00 01 00 02 05 0E 00 +T 2E 1E 00 00 +R 00 00 01 00 +T 2E 1E 00 00 FD 6E 00 FD 66 01 23 23 46 23 66 +R 00 00 01 00 +T 39 1E 00 00 68 E5 DD 6E FE DD 66 FF 29 29 4D +R 00 00 01 00 +T 44 1E 00 00 44 29 09 4D 44 E1 09 01 0A 00 09 +R 00 00 01 00 +T 4F 1E 00 00 7E FE 04 20 26 +R 00 00 01 00 +T 54 1E 00 00 +R 00 00 01 00 +T 54 1E 00 00 C5 DD 6E 08 DD 66 09 E5 DD 6E FA +R 00 00 01 00 +T 5F 1E 00 00 DD 66 FB DD 4E F8 DD 46 F9 09 5E +R 00 00 01 00 +T 6A 1E 00 00 23 56 23 4E 23 46 3E 00 00 00 00 +R 00 00 01 00 2B 0B 15 00 +T 72 1E 00 00 21 00 00 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 02 05 15 00 02 0A 0E 00 +T 79 1E 00 00 +R 00 00 01 00 +T 79 1E 00 00 F1 +R 00 00 01 00 +T 7A 1E 00 00 +R 00 00 01 00 +T 7A 1E 00 00 +R 00 00 01 00 +T 7A 1E 00 00 +R 00 00 01 00 +T 7A 1E 00 00 C3 7B 04 00 00 +R 00 00 01 00 00 05 01 00 +T 7D 1E 00 00 +R 00 00 01 00 +T 7D 1E 00 00 FD E5 DD E5 C5 F5 D5 DD E1 21 +R 00 00 01 00 +T 87 1E 00 00 04 00 19 7E 23 66 6F E5 FD E1 21 +R 00 00 01 00 +T 92 1E 00 00 00 00 39 E5 EB 5E 23 56 3E +R 00 00 01 00 +T 9B 1E 00 00 DD 0B 00 00 21 DD 0B 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T A0 1E 00 00 00 00 00 00 4D 44 E1 71 23 70 DD +R 00 00 01 00 02 04 0E 00 +T A9 1E 00 00 6E 00 DD 66 01 23 23 46 23 66 68 +R 00 00 01 00 +T B4 1E 00 00 E5 21 04 00 39 46 23 66 68 29 29 +R 00 00 01 00 +T BF 1E 00 00 4D 44 29 09 4D 44 E1 09 01 09 00 +R 00 00 01 00 +T CA 1E 00 00 09 7E FE 53 20 16 +R 00 00 01 00 +T D0 1E 00 00 +R 00 00 01 00 +T D0 1E 00 00 68 60 39 46 23 66 68 FD E5 C1 09 +R 00 00 01 00 +T DB 1E 00 00 EB 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 13 00 02 0B 13 00 +T E1 1E 00 00 CD 00 00 00 00 18 13 +R 00 00 01 00 02 05 0E 00 +T E6 1E 00 00 +R 00 00 01 00 +T E6 1E 00 00 FE 49 68 60 20 0D 39 46 23 66 68 +R 00 00 01 00 +T F1 1E 00 00 FD E5 C1 09 46 23 66 68 +R 00 00 01 00 +T F9 1E 00 00 +R 00 00 01 00 +T F9 1E 00 00 +R 00 00 01 00 +T F9 1E 00 00 F1 C3 E1 02 00 00 +R 00 00 01 00 00 06 01 00 +T FD 1E 00 00 +R 00 00 01 00 +T FD 1E 00 00 +R 00 00 01 00 +T FD 1E 00 00 FD E5 DD E5 DD 21 00 00 DD 39 C5 +R 00 00 01 00 +T 08 1F 00 00 F5 F5 D5 FD E1 21 04 00 19 7E DD +R 00 00 01 00 +T 13 1F 00 00 77 FA 23 66 DD 74 FB EB 5E 23 56 +R 00 00 01 00 +T 1E 1F 00 00 3E DD 0B 00 00 21 DD 0B 00 00 CD +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 24 1F 00 00 00 00 00 00 DD 75 FC DD 74 FD FD +R 00 00 01 00 02 04 0E 00 +T 2D 1F 00 00 6E 00 FD 66 01 23 23 46 23 66 68 +R 00 00 01 00 +T 38 1F 00 00 E5 DD 6E FE DD 66 FF 29 29 4D 44 +R 00 00 01 00 +T 43 1F 00 00 29 09 4D 44 E1 09 01 09 00 09 7E +R 00 00 01 00 +T 4E 1F 00 00 FE 53 20 18 +R 00 00 01 00 +T 52 1F 00 00 +R 00 00 01 00 +T 52 1F 00 00 DD 6E FC DD 66 FD DD 4E FA DD 46 +R 00 00 01 00 +T 5D 1F 00 00 FB 09 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 16 00 +T 63 1F 00 00 00 00 00 00 CD 00 00 00 00 18 4F +R 00 00 01 00 02 04 16 00 02 09 0E 00 +T 6A 1F 00 00 +R 00 00 01 00 +T 6A 1F 00 00 FE 49 20 48 FD 6E 00 FD 66 01 23 +R 00 00 01 00 +T 75 1F 00 00 23 46 23 66 68 E5 DD 6E FE DD 66 +R 00 00 01 00 +T 80 1F 00 00 FF 29 29 4D 44 29 09 4D 44 E1 09 +R 00 00 01 00 +T 8B 1F 00 00 01 0A 00 09 46 05 05 DD 6E FC DD +R 00 00 01 00 +T 96 1F 00 00 66 FD DD 4E FA DD 46 FB 09 20 0B +R 00 00 01 00 +T A1 1F 00 00 +R 00 00 01 00 +T A1 1F 00 00 46 23 66 7C 68 07 9F 4F 41 18 0D +R 00 00 01 00 +T AC 1F 00 00 +R 00 00 01 00 +T AC 1F 00 00 5E 23 56 23 4E 23 46 EB 18 03 +R 00 00 01 00 +T B6 1F 00 00 +R 00 00 01 00 +T B6 1F 00 00 48 69 60 +R 00 00 01 00 +T B9 1F 00 00 +R 00 00 01 00 +T B9 1F 00 00 C3 7B 04 00 00 +R 00 00 01 00 00 05 01 00 +T BC 1F 00 00 +R 00 00 01 00 +T BC 1F 00 00 +R 00 00 01 00 +T BC 1F 00 00 D5 CD 00 00 00 00 10 00 00 26 28 +R 00 00 01 00 02 06 0A 00 +T C5 1F 00 00 29 2A 2B 2D 2F 3B 3C 3D 3E 5B 5D +R 00 00 01 00 +T D0 1F 00 00 5E 7C 10 20 00 00 08 20 00 00 +R 00 00 01 00 00 06 01 00 00 0A 01 00 +T D6 1F 00 00 F8 1F 00 00 04 20 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T DA 1F 00 00 04 20 00 00 04 20 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T DE 1F 00 00 04 20 00 00 04 20 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T E2 1F 00 00 0C 20 00 00 FC 1F 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T E6 1F 00 00 00 20 00 00 00 20 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T EA 1F 00 00 FC 1F 00 00 0C 20 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T EE 1F 00 00 F4 1F 00 00 08 20 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T F2 1F 00 00 0C 20 00 00 +R 00 00 01 00 00 04 01 00 +T F4 1F 00 00 +R 00 00 01 00 +T F4 1F 00 00 2E 01 18 1A +R 00 00 01 00 +T F8 1F 00 00 +R 00 00 01 00 +T F8 1F 00 00 2E 02 18 16 +R 00 00 01 00 +T FC 1F 00 00 +R 00 00 01 00 +T FC 1F 00 00 2E 03 18 12 +R 00 00 01 00 +T 00 20 00 00 +R 00 00 01 00 +T 00 20 00 00 2E 04 18 0E +R 00 00 01 00 +T 04 20 00 00 +R 00 00 01 00 +T 04 20 00 00 2E 05 18 0A +R 00 00 01 00 +T 08 20 00 00 +R 00 00 01 00 +T 08 20 00 00 2E 06 18 06 +R 00 00 01 00 +T 0C 20 00 00 +R 00 00 01 00 +T 0C 20 00 00 2E 3F 18 02 +R 00 00 01 00 +T 10 20 00 00 +R 00 00 01 00 +T 10 20 00 00 2E 00 +R 00 00 01 00 +T 12 20 00 00 +R 00 00 01 00 +T 12 20 00 00 F1 C3 00 00 00 00 +R 00 00 01 00 02 06 02 00 +T 16 20 00 00 +R 00 00 01 00 +T 16 20 00 00 +R 00 00 01 00 +T 16 20 00 00 DD E5 C5 D5 11 4E 00 CD +R 00 00 01 00 +T 1E 20 00 00 8F 04 00 00 E5 DD E1 23 23 23 36 +R 00 00 01 00 00 04 01 00 +T 27 20 00 00 00 AF DD 77 48 DD 77 49 DD 77 4A +R 00 00 01 00 +T 32 20 00 00 DD 77 4B DD 77 02 6F 67 39 46 DD +R 00 00 01 00 +T 3D 20 00 00 70 4C 23 66 DD 74 4D DD 71 00 DD +R 00 00 01 00 +T 48 20 00 00 77 24 DD 77 25 DD 77 26 DD 77 27 +R 00 00 01 00 +T 53 20 00 00 DD E5 E1 F1 F1 DD E1 C3 +R 00 00 01 00 +T 5B 20 00 00 00 00 00 00 +R 00 00 01 00 02 04 02 00 +T 5D 20 00 00 +R 00 00 01 00 +T 5D 20 00 00 FD E5 DD E5 DD 21 00 00 DD 39 C5 +R 00 00 01 00 +T 68 20 00 00 D5 21 B2 FF 39 F9 AF DD 77 F8 DD +R 00 00 01 00 +T 73 20 00 00 77 F9 7B B2 20 24 +R 00 00 01 00 +T 79 20 00 00 +R 00 00 01 00 +T 79 20 00 00 0E 01 5F 57 CD 5F 24 00 00 DD 75 +R 00 00 01 00 00 09 01 00 +T 82 20 00 00 AE DD 74 AF 01 04 00 09 36 31 21 +R 00 00 01 00 +T 8D 20 00 00 05 00 DD 4E AE DD 46 AF 09 36 00 +R 00 00 01 00 +T 98 20 00 00 69 60 C3 57 24 00 00 +R 00 00 01 00 00 07 01 00 +T 9D 20 00 00 +R 00 00 01 00 +T 9D 20 00 00 AF DD 77 F6 DD 77 F7 +R 00 00 01 00 +T A4 20 00 00 +R 00 00 01 00 +T A4 20 00 00 01 40 80 DD 6E F6 DD 66 F7 78 AC +R 00 00 01 00 +T AF 20 00 00 67 ED 42 30 16 +R 00 00 01 00 +T B4 20 00 00 +R 00 00 01 00 +T B4 20 00 00 21 06 00 39 DD 4E F6 DD 46 F7 09 +R 00 00 01 00 +T BF 20 00 00 36 00 03 DD 71 F6 DD 70 F7 18 DA +R 00 00 01 00 +T CA 20 00 00 +R 00 00 01 00 +T CA 20 00 00 0E 03 11 00 00 CD 5F 24 00 00 DD +R 00 00 01 00 00 0A 01 00 +T D3 20 00 00 75 AE DD 74 AF E5 FD E1 +R 00 00 01 00 +T DB 20 00 00 +R 00 00 01 00 +T DB 20 00 00 AF DD 77 B2 DD 77 B3 +R 00 00 01 00 +T E2 20 00 00 +R 00 00 01 00 +T E2 20 00 00 DD 6E FE DD 66 FF 46 23 66 68 DD +R 00 00 01 00 +T ED 20 00 00 4E FC DD 46 FD 09 5E 3E +R 00 00 01 00 +T F5 20 00 00 BC 1F 00 00 21 BC 1F 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T FA 20 00 00 00 00 00 00 26 00 DD 75 F4 DD 74 +R 00 00 01 00 02 04 0E 00 +T 03 21 00 00 F5 7D B7 20 1E +R 00 00 01 00 +T 08 21 00 00 +R 00 00 01 00 +T 08 21 00 00 DD 6E FE DD 66 FF 46 23 66 68 DD +R 00 00 01 00 +T 13 21 00 00 46 FD 09 46 21 06 00 39 DD 5E F8 +R 00 00 01 00 +T 1E 21 00 00 DD 56 F9 19 70 C3 03 24 00 00 +R 00 00 01 00 00 0A 01 00 +T 26 21 00 00 +R 00 00 01 00 +T 26 21 00 00 3E 01 AD 20 5E +R 00 00 01 00 +T 2B 21 00 00 +R 00 00 01 00 +T 2B 21 00 00 DD 6E FE DD 66 FF 46 23 66 68 DD +R 00 00 01 00 +T 36 21 00 00 46 FD 09 7E FE 29 20 08 +R 00 00 01 00 +T 3E 21 00 00 +R 00 00 01 00 +T 3E 21 00 00 DD 36 F4 3F DD 36 F5 00 +R 00 00 01 00 +T 46 21 00 00 +R 00 00 01 00 +T 46 21 00 00 DD 6E FE DD 66 FF 46 23 66 68 DD +R 00 00 01 00 +T 51 21 00 00 46 FD 09 7E FE 28 C2 03 24 00 00 +R 00 00 01 00 00 0B 01 00 +T 5A 21 00 00 +R 00 00 01 00 +T 5A 21 00 00 DD 6E FE DD 66 FF 34 23 20 01 34 +R 00 00 01 00 +T 65 21 00 00 +R 00 00 01 00 +T 65 21 00 00 DD 4E FE DD 46 FF DD 5E FC DD 56 +R 00 00 01 00 +T 70 21 00 00 FD 3E 5D 20 00 00 21 5D 20 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 76 21 00 00 CD 00 00 00 00 DD 75 B2 DD 74 B3 +R 00 00 01 00 02 05 0E 00 +T 7F 21 00 00 AF DD 77 F8 DD 77 F9 C3 +R 00 00 01 00 +T 87 21 00 00 E2 20 00 00 +R 00 00 01 00 00 04 01 00 +T 89 21 00 00 +R 00 00 01 00 +T 89 21 00 00 +R 00 00 01 00 +T 89 21 00 00 2E 06 39 DD 4E F8 DD 46 F9 09 36 +R 00 00 01 00 +T 94 21 00 00 00 FD 7E 48 FD B6 49 20 46 +R 00 00 01 00 +T 9D 21 00 00 +R 00 00 01 00 +T 9D 21 00 00 DD 7E B2 DD B6 B3 20 1A +R 00 00 01 00 +T A5 21 00 00 +R 00 00 01 00 +T A5 21 00 00 CD 5A 24 00 00 FD 75 48 FD 74 49 +R 00 00 01 00 00 05 01 00 +T AE 21 00 00 21 06 00 39 4D 44 FD 6E 48 FD 66 +R 00 00 01 00 +T B9 21 00 00 49 CD A8 04 00 00 18 0C +R 00 00 01 00 00 06 01 00 +T BF 21 00 00 +R 00 00 01 00 +T BF 21 00 00 DD 6E B2 FD 75 48 DD 66 B3 FD 74 +R 00 00 01 00 +T CA 21 00 00 49 +R 00 00 01 00 +T CB 21 00 00 +R 00 00 01 00 +T CB 21 00 00 DD 6E FE DD 66 FF 46 23 66 68 DD +R 00 00 01 00 +T D6 21 00 00 4E FC DD 46 FD 09 46 FD 70 02 C3 +R 00 00 01 00 +T E1 21 00 00 FB 23 00 00 +R 00 00 01 00 00 04 01 00 +T E3 21 00 00 +R 00 00 01 00 +T E3 21 00 00 CD 67 24 00 00 E2 EA 21 00 00 AC +R 00 00 01 00 00 05 01 00 00 0A 01 00 +T EA 21 00 00 +R 00 00 01 00 +T EA 21 00 00 F2 64 22 00 00 +R 00 00 01 00 00 05 01 00 +T ED 21 00 00 +R 00 00 01 00 +T ED 21 00 00 0E 03 CD 5C 24 00 00 FD 75 4A FD +R 00 00 01 00 00 07 01 00 +T F6 21 00 00 74 4B DD 7E B2 DD B6 B3 FD 6E 4A +R 00 00 01 00 +T 01 22 00 00 FD 66 4B 01 48 00 09 20 2B +R 00 00 01 00 +T 0A 22 00 00 +R 00 00 01 00 +T 0A 22 00 00 E5 0E 01 FD 5E 4A FD 56 4B CD +R 00 00 01 00 +T 14 22 00 00 5F 24 00 00 4D 44 E1 71 23 70 21 +R 00 00 01 00 00 04 01 00 +T 1D 22 00 00 06 00 39 4D 44 FD 6E 4A FD 66 4B +R 00 00 01 00 +T 28 22 00 00 11 48 00 19 56 23 66 6A CD +R 00 00 01 00 +T 31 22 00 00 A8 04 00 00 18 09 +R 00 00 01 00 00 04 01 00 +T 35 22 00 00 +R 00 00 01 00 +T 35 22 00 00 DD 4E B2 71 DD 46 B3 23 70 +R 00 00 01 00 +T 3E 22 00 00 +R 00 00 01 00 +T 3E 22 00 00 FD 6E 4A FD 66 4B 23 23 E5 DD 6E +R 00 00 01 00 +T 49 22 00 00 FE DD 66 FF 46 23 66 68 DD 4E FC +R 00 00 01 00 +T 54 22 00 00 DD 46 FD 09 46 E1 70 FD 6E 4A FD +R 00 00 01 00 +T 5F 22 00 00 66 4B C3 F8 23 00 00 +R 00 00 01 00 00 07 01 00 +T 64 22 00 00 +R 00 00 01 00 +T 64 22 00 00 3E 3F DD AE F4 DD B6 F5 20 2A +R 00 00 01 00 +T 6E 22 00 00 +R 00 00 01 00 +T 6E 22 00 00 DD 7E B2 DD B6 B3 20 13 +R 00 00 01 00 +T 76 22 00 00 +R 00 00 01 00 +T 76 22 00 00 CD 5A 24 00 00 FD 75 4A FD 74 4B +R 00 00 01 00 00 05 01 00 +T 7F 22 00 00 21 06 00 39 CD A0 04 00 00 C3 +R 00 00 01 00 00 09 01 00 +T 87 22 00 00 FB 23 00 00 +R 00 00 01 00 00 04 01 00 +T 89 22 00 00 +R 00 00 01 00 +T 89 22 00 00 DD 6E B2 FD 75 4A DD 66 B3 FD 74 +R 00 00 01 00 +T 94 22 00 00 4B +R 00 00 01 00 +T 95 22 00 00 +R 00 00 01 00 +T 95 22 00 00 C3 FB 23 00 00 +R 00 00 01 00 00 05 01 00 +T 98 22 00 00 +R 00 00 01 00 +T 98 22 00 00 CD 80 24 00 00 E2 9F 22 00 00 AC +R 00 00 01 00 00 05 01 00 00 0A 01 00 +T 9F 22 00 00 +R 00 00 01 00 +T 9F 22 00 00 FA FB 23 00 00 +R 00 00 01 00 00 05 01 00 +T A2 22 00 00 +R 00 00 01 00 +T A2 22 00 00 DD 7E B2 DD B6 B3 20 12 +R 00 00 01 00 +T AA 22 00 00 +R 00 00 01 00 +T AA 22 00 00 CD 5A 24 00 00 FD 75 4A FD 74 4B +R 00 00 01 00 00 05 01 00 +T B3 22 00 00 21 06 00 39 CD A0 04 00 00 18 0C +R 00 00 01 00 00 09 01 00 +T BC 22 00 00 +R 00 00 01 00 +T BC 22 00 00 DD 6E B2 FD 75 4A DD 66 B3 FD 74 +R 00 00 01 00 +T C7 22 00 00 4B +R 00 00 01 00 +T C8 22 00 00 +R 00 00 01 00 +T C8 22 00 00 +R 00 00 01 00 +T C8 22 00 00 CD 67 24 00 00 E2 CF 22 00 00 AC +R 00 00 01 00 00 05 01 00 00 0A 01 00 +T CF 22 00 00 +R 00 00 01 00 +T CF 22 00 00 FA E5 22 00 00 FD 7E 4C FD B6 4D +R 00 00 01 00 00 05 01 00 +T D8 22 00 00 28 0B +R 00 00 01 00 +T DA 22 00 00 +R 00 00 01 00 +T DA 22 00 00 +R 00 00 01 00 +T DA 22 00 00 +R 00 00 01 00 +T DA 22 00 00 FD 6E 4C FD 66 4D E5 FD E1 18 E3 +R 00 00 01 00 +T E5 22 00 00 +R 00 00 01 00 +T E5 22 00 00 FD 7E 4C FD B6 4D 20 41 CD +R 00 00 01 00 +T EE 22 00 00 80 24 00 00 E2 F4 22 00 00 AC +R 00 00 01 00 00 04 01 00 00 09 01 00 +T F4 22 00 00 +R 00 00 01 00 +T F4 22 00 00 FA 2E 23 00 00 +R 00 00 01 00 00 05 01 00 +T F7 22 00 00 +R 00 00 01 00 +T F7 22 00 00 +R 00 00 01 00 +T F7 22 00 00 +R 00 00 01 00 +T F7 22 00 00 0E 03 58 50 CD 5F 24 00 00 DD 75 +R 00 00 01 00 00 09 01 00 +T 00 23 00 00 AE DD 74 AF 01 48 00 09 FD E5 C1 +R 00 00 01 00 +T 0B 23 00 00 71 23 70 DD 6E FE DD 66 FF 56 23 +R 00 00 01 00 +T 16 23 00 00 66 6A DD 5E FC DD 56 FD 19 56 DD +R 00 00 01 00 +T 21 23 00 00 6E AE DD 66 AF 23 23 72 2B 2B C3 +R 00 00 01 00 +T 2C 23 00 00 F8 23 00 00 +R 00 00 01 00 00 04 01 00 +T 2E 23 00 00 +R 00 00 01 00 +T 2E 23 00 00 FD 7E 4C FD B6 4D 20 5C CD +R 00 00 01 00 +T 37 23 00 00 80 24 00 00 E2 3D 23 00 00 AC +R 00 00 01 00 00 04 01 00 00 09 01 00 +T 3D 23 00 00 +R 00 00 01 00 +T 3D 23 00 00 F2 92 23 00 00 +R 00 00 01 00 00 05 01 00 +T 40 23 00 00 +R 00 00 01 00 +T 40 23 00 00 +R 00 00 01 00 +T 40 23 00 00 +R 00 00 01 00 +T 40 23 00 00 0E 03 CD 5C 24 00 00 DD 75 FA DD +R 00 00 01 00 00 07 01 00 +T 49 23 00 00 74 FB 01 48 00 09 FD 4E 4A 71 FD +R 00 00 01 00 +T 54 23 00 00 46 4B 23 70 DD 6E FE DD 66 FF 46 +R 00 00 01 00 +T 5F 23 00 00 23 66 68 DD 4E FC DD 46 FD 09 46 +R 00 00 01 00 +T 6A 23 00 00 DD 6E FA DD 66 FB 23 23 70 21 +R 00 00 01 00 +T 74 23 00 00 48 00 DD 4E FA DD 46 FB 09 56 23 +R 00 00 01 00 +T 7F 23 00 00 66 6A 11 4C 00 19 71 23 70 FD 71 +R 00 00 01 00 +T 8A 23 00 00 4A FD 70 4B 69 60 18 66 +R 00 00 01 00 +T 92 23 00 00 +R 00 00 01 00 +T 92 23 00 00 FD 6E 4C DD 75 FA FD 66 4D DD 74 +R 00 00 01 00 +T 9D 23 00 00 FB 0E 4A 09 E5 0E 03 DD 5E FA DD +R 00 00 01 00 +T A8 23 00 00 56 FB CD 5F 24 00 00 4D 44 E1 71 +R 00 00 01 00 00 07 01 00 +T B1 23 00 00 23 70 21 4A 00 DD 4E FA DD 46 FB +R 00 00 01 00 +T BC 23 00 00 09 56 23 66 6A 11 48 00 19 FD E5 +R 00 00 01 00 +T C7 23 00 00 D1 73 23 72 21 4A 00 09 7E 23 66 +R 00 00 01 00 +T D2 23 00 00 6F 23 23 E5 DD 6E FE DD 66 FF 7E +R 00 00 01 00 +T DD 23 00 00 23 66 6F DD 4E FC DD 46 FD 09 46 +R 00 00 01 00 +T E8 23 00 00 E1 70 21 4A 00 DD 4E FA DD 46 FB +R 00 00 01 00 +T F3 23 00 00 09 46 23 66 68 +R 00 00 01 00 +T F8 23 00 00 +R 00 00 01 00 +T F8 23 00 00 E5 FD E1 +R 00 00 01 00 +T FB 23 00 00 +R 00 00 01 00 +T FB 23 00 00 +R 00 00 01 00 +T FB 23 00 00 +R 00 00 01 00 +T FB 23 00 00 +R 00 00 01 00 +T FB 23 00 00 +R 00 00 01 00 +T FB 23 00 00 +R 00 00 01 00 +T FB 23 00 00 DD 36 F8 FF DD 36 F9 FF +R 00 00 01 00 +T 03 24 00 00 +R 00 00 01 00 +T 03 24 00 00 +R 00 00 01 00 +T 03 24 00 00 DD 34 F8 20 03 DD 34 F9 +R 00 00 01 00 +T 0B 24 00 00 +R 00 00 01 00 +T 0B 24 00 00 DD 6E FE DD 66 FF 34 23 20 01 34 +R 00 00 01 00 +T 16 24 00 00 +R 00 00 01 00 +T 16 24 00 00 01 3F 80 DD 6E F4 DD 66 F5 78 AC +R 00 00 01 00 +T 21 24 00 00 67 ED 42 DA DB 20 00 00 +R 00 00 01 00 00 08 01 00 +T 27 24 00 00 +R 00 00 01 00 +T 27 24 00 00 +R 00 00 01 00 +T 27 24 00 00 21 4A 00 DD 4E AE DD 46 AF 09 7E +R 00 00 01 00 +T 32 24 00 00 23 B6 20 1F 69 60 7E FE 03 20 18 +R 00 00 01 00 +T 3D 24 00 00 +R 00 00 01 00 +T 3D 24 00 00 +R 00 00 01 00 +T 3D 24 00 00 +R 00 00 01 00 +T 3D 24 00 00 E5 FD E1 21 48 00 09 56 DD 72 AE +R 00 00 01 00 +T 48 24 00 00 23 66 DD 74 AF FD E5 D1 CD +R 00 00 01 00 +T 51 24 00 00 3B 00 00 00 18 D2 +R 00 00 01 00 00 04 01 00 +T 55 24 00 00 +R 00 00 01 00 +T 55 24 00 00 69 60 +R 00 00 01 00 +T 57 24 00 00 +R 00 00 01 00 +T 57 24 00 00 C3 7B 04 00 00 +R 00 00 01 00 00 05 01 00 +T 5A 24 00 00 +R 00 00 01 00 +T 5A 24 00 00 0E 01 +R 00 00 01 00 +T 5C 24 00 00 +R 00 00 01 00 +T 5C 24 00 00 FD E5 D1 +R 00 00 01 00 +T 5F 24 00 00 +R 00 00 01 00 +T 5F 24 00 00 3E 16 20 00 00 21 16 20 00 00 C3 +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 65 24 00 00 00 00 00 00 +R 00 00 01 00 02 04 0E 00 +T 67 24 00 00 +R 00 00 01 00 +T 67 24 00 00 FD 5E 02 3E BC 1F 00 00 21 +R 00 00 01 00 29 08 01 00 +T 6D 24 00 00 BC 1F 00 00 CD 00 00 00 00 4D 06 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 74 24 00 00 00 DD 6E F4 DD 66 F5 F6 80 ED 42 +R 00 00 01 00 +T 7F 24 00 00 C9 +R 00 00 01 00 +T 80 24 00 00 +R 00 00 01 00 +T 80 24 00 00 FD 5E 02 3E BC 1F 00 00 21 +R 00 00 01 00 29 08 01 00 +T 86 24 00 00 BC 1F 00 00 CD 00 00 00 00 4D DD +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 8D 24 00 00 6E F4 DD 66 F5 F6 80 ED 42 C9 +R 00 00 01 00 +T 97 24 00 00 +R 00 00 01 00 +T 97 24 00 00 DD E5 D5 DD E1 1A FE 03 20 1C +R 00 00 01 00 +T A1 24 00 00 +R 00 00 01 00 +T A1 24 00 00 DD 5E 48 DD 56 49 3E 97 24 00 00 +R 00 00 01 00 29 0B 01 00 +T A9 24 00 00 21 97 24 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T B0 24 00 00 5E 4A DD 56 4B 3E 97 24 00 00 21 +R 00 00 01 00 29 0A 01 00 +T B8 24 00 00 97 24 00 00 CD 00 00 00 00 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T BD 24 00 00 +R 00 00 01 00 +T BD 24 00 00 C3 83 0B 00 00 +R 00 00 01 00 00 05 01 00 +T C0 24 00 00 +R 00 00 01 00 +T C0 24 00 00 FD E5 DD E5 DD 21 00 00 DD 39 C5 +R 00 00 01 00 +T CB 24 00 00 F5 F5 F5 D5 FD E1 1A FE 03 C2 +R 00 00 01 00 +T D5 24 00 00 90 28 00 00 +R 00 00 01 00 00 04 01 00 +T D7 24 00 00 +R 00 00 01 00 +T D7 24 00 00 FD 5E 48 FD 56 49 3E C0 24 00 00 +R 00 00 01 00 29 0B 01 00 +T DF 24 00 00 21 C0 24 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0E 00 +T E6 24 00 00 4E FE DD 46 FF FD 5E 4A FD 56 4B +R 00 00 01 00 +T F1 24 00 00 3E C0 24 00 00 21 C0 24 00 00 CD +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T F7 24 00 00 00 00 00 00 FD 5E 02 3E +R 00 00 01 00 02 04 0E 00 +T FD 24 00 00 BC 1F 00 00 21 BC 1F 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 02 25 00 00 00 00 00 00 7D FE 05 FD 6E 48 FD +R 00 00 01 00 02 04 0E 00 +T 0B 25 00 00 66 49 23 D2 05 26 00 00 +R 00 00 01 00 00 08 01 00 +T 11 25 00 00 +R 00 00 01 00 +T 11 25 00 00 46 05 C2 05 2A 00 00 FD 6E 4A FD +R 00 00 01 00 00 07 01 00 +T 1A 25 00 00 66 4B 23 46 05 C2 05 2A 00 00 +R 00 00 01 00 00 0A 01 00 +T 22 25 00 00 +R 00 00 01 00 +T 22 25 00 00 +R 00 00 01 00 +T 22 25 00 00 +R 00 00 01 00 +T 22 25 00 00 FD 36 01 01 FD 7E 02 FE 2B 20 2D +R 00 00 01 00 +T 2D 25 00 00 +R 00 00 01 00 +T 2D 25 00 00 FD 6E 4A FD 66 4B 0E 24 09 4E 23 +R 00 00 01 00 +T 38 25 00 00 46 23 5E 23 56 D5 C5 FD 6E 48 FD +R 00 00 01 00 +T 43 25 00 00 66 49 01 24 00 09 4E 23 46 23 5E +R 00 00 01 00 +T 4E 25 00 00 23 56 69 60 C1 09 EB C1 ED 4A 18 +R 00 00 01 00 +T 59 25 00 00 33 +R 00 00 01 00 +T 5A 25 00 00 +R 00 00 01 00 +T 5A 25 00 00 FE 2D 20 34 FD 6E 4A FD 66 4B 0E +R 00 00 01 00 +T 65 25 00 00 24 09 4E 23 46 23 5E 23 56 69 60 +R 00 00 01 00 +T 70 25 00 00 D5 E5 FD 6E 48 FD 66 49 01 24 00 +R 00 00 01 00 +T 7B 25 00 00 09 4E 23 46 23 5E 23 56 69 60 A7 +R 00 00 01 00 +T 86 25 00 00 C1 ED 42 EB C1 ED 42 +R 00 00 01 00 +T 8D 25 00 00 +R 00 00 01 00 +T 8D 25 00 00 4D 44 EB 18 58 +R 00 00 01 00 +T 92 25 00 00 +R 00 00 01 00 +T 92 25 00 00 FE 2A 20 29 FD 6E 48 FD 66 49 0E +R 00 00 01 00 +T 9D 25 00 00 24 09 4E 23 46 23 5E 23 56 D5 C5 +R 00 00 01 00 +T A8 25 00 00 FD 6E 4A FD 66 4B 01 24 00 09 5E +R 00 00 01 00 +T B3 25 00 00 23 56 23 4E 23 46 EB CD +R 00 00 01 00 +T BB 25 00 00 00 00 00 00 18 2B +R 00 00 01 00 02 04 01 00 +T BF 25 00 00 +R 00 00 01 00 +T BF 25 00 00 FE 2F 20 33 FD 6E 4A FD 66 4B 0E +R 00 00 01 00 +T CA 25 00 00 24 09 4E 23 46 23 5E 23 56 D5 C5 +R 00 00 01 00 +T D5 25 00 00 FD 6E 48 FD 66 49 01 24 00 09 5E +R 00 00 01 00 +T E0 25 00 00 23 56 23 4E 23 46 EB CD +R 00 00 01 00 +T E8 25 00 00 00 00 00 00 +R 00 00 01 00 02 04 14 00 +T EA 25 00 00 +R 00 00 01 00 +T EA 25 00 00 DD 75 F8 DD 74 F9 DD 71 FA DD 70 +R 00 00 01 00 +T F5 25 00 00 FB +R 00 00 01 00 +T F6 25 00 00 +R 00 00 01 00 +T F6 25 00 00 DD 4E FA DD 46 FB DD 6E F8 DD 66 +R 00 00 01 00 +T 01 26 00 00 F9 C3 AC 29 00 00 +R 00 00 01 00 00 06 01 00 +T 05 26 00 00 +R 00 00 01 00 +T 05 26 00 00 +R 00 00 01 00 +T 05 26 00 00 7E FE 03 CA 3A 27 00 00 FD 6E 4A +R 00 00 01 00 00 08 01 00 +T 0E 26 00 00 FD 66 4B 23 7E FE 03 CA +R 00 00 01 00 +T 16 26 00 00 3A 27 00 00 +R 00 00 01 00 00 04 01 00 +T 18 26 00 00 +R 00 00 01 00 +T 18 26 00 00 +R 00 00 01 00 +T 18 26 00 00 +R 00 00 01 00 +T 18 26 00 00 FD 36 01 04 FD 5E 02 CD +R 00 00 01 00 +T 20 26 00 00 00 00 00 00 07 00 26 3C 3D 3E 5B +R 00 00 01 00 02 04 0A 00 +T 29 26 00 00 5D 7C 3A 27 00 00 18 27 00 00 +R 00 00 01 00 00 06 01 00 00 0A 01 00 +T 2F 26 00 00 DC 26 00 00 B9 26 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T 33 26 00 00 96 26 00 00 3B 26 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T 37 26 00 00 79 26 00 00 00 27 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T 3B 26 00 00 +R 00 00 01 00 +T 3B 26 00 00 FD 6E 4A FD 66 4B 01 24 00 09 4E +R 00 00 01 00 +T 46 26 00 00 23 46 23 5E 23 56 D5 C5 FD 6E 48 +R 00 00 01 00 +T 51 26 00 00 FD 66 49 01 24 00 09 4E 23 46 23 +R 00 00 01 00 +T 5C 26 00 00 5E 23 56 69 60 C1 A7 ED 42 C1 20 +R 00 00 01 00 +T 67 26 00 00 0B EB ED 42 20 06 4D 44 23 C3 +R 00 00 01 00 +T 71 26 00 00 2E 27 00 00 +R 00 00 01 00 00 04 01 00 +T 73 26 00 00 +R 00 00 01 00 +T 73 26 00 00 01 00 00 C3 FC 26 00 00 +R 00 00 01 00 00 08 01 00 +T 79 26 00 00 +R 00 00 01 00 +T 79 26 00 00 FD 6E 4A FD 66 4B 01 24 00 09 4E +R 00 00 01 00 +T 84 26 00 00 23 46 23 5E 23 56 D5 C5 CD +R 00 00 01 00 +T 8D 26 00 00 08 2A 00 00 01 00 00 30 68 18 61 +R 00 00 01 00 00 04 01 00 +T 96 26 00 00 +R 00 00 01 00 +T 96 26 00 00 FD 6E 48 FD 66 49 01 24 00 09 4E +R 00 00 01 00 +T A1 26 00 00 23 46 23 5E 23 56 D5 C5 FD 6E 4A +R 00 00 01 00 +T AC 26 00 00 FD 66 4B CD 0E 2A 00 00 01 00 00 +R 00 00 01 00 00 08 01 00 +T B5 26 00 00 30 45 18 3E +R 00 00 01 00 +T B9 26 00 00 +R 00 00 01 00 +T B9 26 00 00 FD 6E 48 FD 66 49 01 24 00 09 4E +R 00 00 01 00 +T C4 26 00 00 23 46 23 5E 23 56 D5 C5 FD 6E 4A +R 00 00 01 00 +T CF 26 00 00 FD 66 4B CD 0E 2A 00 00 01 00 00 +R 00 00 01 00 00 08 01 00 +T D8 26 00 00 38 22 18 1B +R 00 00 01 00 +T DC 26 00 00 +R 00 00 01 00 +T DC 26 00 00 FD 6E 4A FD 66 4B 01 24 00 09 4E +R 00 00 01 00 +T E7 26 00 00 23 46 23 5E 23 56 D5 C5 CD +R 00 00 01 00 +T F0 26 00 00 08 2A 00 00 01 00 00 38 05 +R 00 00 01 00 00 04 01 00 +T F7 26 00 00 +R 00 00 01 00 +T F7 26 00 00 21 01 00 18 32 +R 00 00 01 00 +T FC 26 00 00 +R 00 00 01 00 +T FC 26 00 00 69 60 18 2E +R 00 00 01 00 +T 00 27 00 00 +R 00 00 01 00 +T 00 27 00 00 FD 6E 4A FD 66 4B 01 24 00 09 4E +R 00 00 01 00 +T 0B 27 00 00 23 46 23 5E 23 56 D5 C5 CD +R 00 00 01 00 +T 14 27 00 00 1D 2A 00 00 18 16 +R 00 00 01 00 00 04 01 00 +T 18 27 00 00 +R 00 00 01 00 +T 18 27 00 00 FD 6E 4A FD 66 4B 01 24 00 09 4E +R 00 00 01 00 +T 23 27 00 00 23 46 23 5E 23 56 D5 C5 CD +R 00 00 01 00 +T 2C 27 00 00 32 2A 00 00 +R 00 00 01 00 00 04 01 00 +T 2E 27 00 00 +R 00 00 01 00 +T 2E 27 00 00 FD 75 24 FD 74 25 FD 71 26 FD 70 +R 00 00 01 00 +T 39 27 00 00 27 +R 00 00 01 00 +T 3A 27 00 00 +R 00 00 01 00 +T 3A 27 00 00 +R 00 00 01 00 +T 3A 27 00 00 FD 6E 48 FD 66 49 23 7E FE 03 C2 +R 00 00 01 00 +T 45 27 00 00 34 28 00 00 FD 6E 4A FD 66 4B 23 +R 00 00 01 00 00 04 01 00 +T 4E 27 00 00 7E FE 03 C2 34 28 00 00 +R 00 00 01 00 00 08 01 00 +T 54 27 00 00 +R 00 00 01 00 +T 54 27 00 00 +R 00 00 01 00 +T 54 27 00 00 +R 00 00 01 00 +T 54 27 00 00 FD 6E 4A FD 66 4B 01 28 00 09 4D +R 00 00 01 00 +T 5F 27 00 00 44 FD 6E 48 FD 66 49 11 28 00 19 +R 00 00 01 00 +T 6A 27 00 00 EB 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 0C 00 02 0B 0C 00 +T 70 27 00 00 CD 00 00 00 00 FD 5E 02 CD +R 00 00 01 00 02 05 0E 00 +T 77 27 00 00 00 00 00 00 06 00 2B 3C 3D 3E 5B +R 00 00 01 00 02 04 0A 00 +T 80 27 00 00 5D 34 28 00 00 DF 27 00 00 +R 00 00 01 00 00 05 01 00 00 09 01 00 +T 85 27 00 00 C6 27 00 00 AD 27 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T 89 27 00 00 8F 27 00 00 A0 27 00 00 +R 00 00 01 00 00 04 01 00 00 08 01 00 +T 8D 27 00 00 FF 27 00 00 +R 00 00 01 00 00 04 01 00 +T 8F 27 00 00 +R 00 00 01 00 +T 8F 27 00 00 FD 36 01 04 7D B4 20 04 4F 47 18 +R 00 00 01 00 +T 9A 27 00 00 4F +R 00 00 01 00 +T 9B 27 00 00 +R 00 00 01 00 +T 9B 27 00 00 01 00 00 18 4F +R 00 00 01 00 +T A0 27 00 00 +R 00 00 01 00 +T A0 27 00 00 FD 36 01 04 CB 7C 01 00 00 28 44 +R 00 00 01 00 +T AB 27 00 00 18 3D +R 00 00 01 00 +T AD 27 00 00 +R 00 00 01 00 +T AD 27 00 00 FD 36 01 04 4D 44 21 00 00 F6 80 +R 00 00 01 00 +T B8 27 00 00 ED 42 E2 BE 27 00 00 AC +R 00 00 01 00 00 07 01 00 +T BE 27 00 00 +R 00 00 01 00 +T BE 27 00 00 01 00 00 F2 EF 27 00 00 18 24 +R 00 00 01 00 00 08 01 00 +T C6 27 00 00 +R 00 00 01 00 +T C6 27 00 00 FD 36 01 04 4D 44 21 00 00 F6 80 +R 00 00 01 00 +T D1 27 00 00 ED 42 E2 D7 27 00 00 AC +R 00 00 01 00 00 07 01 00 +T D7 27 00 00 +R 00 00 01 00 +T D7 27 00 00 01 00 00 FA EF 27 00 00 18 0B +R 00 00 01 00 00 08 01 00 +T DF 27 00 00 +R 00 00 01 00 +T DF 27 00 00 FD 36 01 04 CB 7C 01 00 00 20 05 +R 00 00 01 00 +T EA 27 00 00 +R 00 00 01 00 +T EA 27 00 00 21 01 00 18 02 +R 00 00 01 00 +T EF 27 00 00 +R 00 00 01 00 +T EF 27 00 00 69 60 +R 00 00 01 00 +T F1 27 00 00 +R 00 00 01 00 +T F1 27 00 00 FD 75 24 FD 74 25 FD 71 26 FD 70 +R 00 00 01 00 +T FC 27 00 00 27 18 35 +R 00 00 01 00 +T FF 27 00 00 +R 00 00 01 00 +T FF 27 00 00 FD 36 01 03 FD 6E 48 FD 66 49 01 +R 00 00 01 00 +T 0A 28 00 00 28 00 09 4D 44 21 28 00 FD E5 D1 +R 00 00 01 00 +T 15 28 00 00 CD AB 04 00 00 FD 6E 4A FD 66 4B +R 00 00 01 00 00 05 01 00 +T 1E 28 00 00 01 28 00 09 4D 44 21 28 00 FD E5 +R 00 00 01 00 +T 29 28 00 00 D1 19 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 06 00 +T 2F 28 00 00 00 00 00 00 CD 00 00 00 00 +R 00 00 01 00 02 04 06 00 02 09 0E 00 +T 34 28 00 00 +R 00 00 01 00 +T 34 28 00 00 +R 00 00 01 00 +T 34 28 00 00 FD 6E 48 FD 66 49 23 7E FE 04 C2 +R 00 00 01 00 +T 3F 28 00 00 05 2A 00 00 FD 6E 4A FD 66 4B 23 +R 00 00 01 00 00 04 01 00 +T 48 28 00 00 7E FE 04 C2 05 2A 00 00 +R 00 00 01 00 00 08 01 00 +T 4E 28 00 00 +R 00 00 01 00 +T 4E 28 00 00 +R 00 00 01 00 +T 4E 28 00 00 +R 00 00 01 00 +T 4E 28 00 00 FD 36 01 04 FD 7E 02 FE 26 20 19 +R 00 00 01 00 +T 59 28 00 00 +R 00 00 01 00 +T 59 28 00 00 FD 6E 4A FD 66 4B 01 24 00 09 4E +R 00 00 01 00 +T 64 28 00 00 23 46 23 5E 23 56 D5 C5 CD +R 00 00 01 00 +T 6D 28 00 00 1D 2A 00 00 C3 AC 29 00 00 +R 00 00 01 00 00 04 01 00 00 09 01 00 +T 72 28 00 00 +R 00 00 01 00 +T 72 28 00 00 FE 7C C2 05 2A 00 00 FD 6E 4A FD +R 00 00 01 00 00 07 01 00 +T 7B 28 00 00 66 4B 01 24 00 09 4E 23 46 23 5E +R 00 00 01 00 +T 86 28 00 00 23 56 D5 C5 CD 32 2A 00 00 C3 +R 00 00 01 00 00 09 01 00 +T 8E 28 00 00 AC 29 00 00 +R 00 00 01 00 00 04 01 00 +T 90 28 00 00 +R 00 00 01 00 +T 90 28 00 00 +R 00 00 01 00 +T 90 28 00 00 +R 00 00 01 00 +T 90 28 00 00 +R 00 00 01 00 +T 90 28 00 00 DD 36 FC FF DD 36 FD FF 79 B0 28 +R 00 00 01 00 +T 9B 28 00 00 79 +R 00 00 01 00 +T 9C 28 00 00 +R 00 00 01 00 +T 9C 28 00 00 69 60 7E 23 66 6F 46 DD 70 FA 23 +R 00 00 01 00 +T A7 28 00 00 66 DD 74 FB AF DD 77 F8 DD 77 F9 +R 00 00 01 00 +T B2 28 00 00 +R 00 00 01 00 +T B2 28 00 00 DD 4E FA DD 46 FB DD 6E F8 DD 66 +R 00 00 01 00 +T BD 28 00 00 F9 F6 80 ED 42 E2 C6 28 00 00 AC +R 00 00 01 00 00 0A 01 00 +T C6 28 00 00 +R 00 00 01 00 +T C6 28 00 00 F2 15 29 00 00 +R 00 00 01 00 00 05 01 00 +T C9 28 00 00 +R 00 00 01 00 +T C9 28 00 00 21 04 00 FD E5 C1 09 4D 44 DD 6E +R 00 00 01 00 +T D4 28 00 00 FE DD 66 FF 56 23 66 6A 23 23 56 +R 00 00 01 00 +T DF 28 00 00 23 66 6A E5 DD 6E F8 DD 66 F9 29 +R 00 00 01 00 +T EA 28 00 00 29 5D 54 29 19 EB E1 19 EB 3E +R 00 00 01 00 +T F4 28 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 0C 00 02 09 0C 00 +T F9 28 00 00 00 00 00 00 7D B4 20 0C +R 00 00 01 00 02 04 0E 00 +T FF 28 00 00 +R 00 00 01 00 +T FF 28 00 00 DD 6E F8 DD 66 F9 DD 75 FC DD 74 +R 00 00 01 00 +T 0A 29 00 00 FD +R 00 00 01 00 +T 0B 29 00 00 +R 00 00 01 00 +T 0B 29 00 00 DD 34 F8 20 A2 DD 34 F9 18 9D +R 00 00 01 00 +T 15 29 00 00 +R 00 00 01 00 +T 15 29 00 00 +R 00 00 01 00 +T 15 29 00 00 DD CB FD 7E 20 08 DD 7E FE DD B6 +R 00 00 01 00 +T 20 29 00 00 FF 20 47 +R 00 00 01 00 +T 23 29 00 00 +R 00 00 01 00 +T 23 29 00 00 +R 00 00 01 00 +T 23 29 00 00 +R 00 00 01 00 +T 23 29 00 00 FD 7E 04 FE 27 20 2A +R 00 00 01 00 +T 2A 29 00 00 +R 00 00 01 00 +T 2A 29 00 00 FD 36 01 03 21 04 00 FD E5 C1 09 +R 00 00 01 00 +T 35 29 00 00 4D 44 03 21 28 00 FD E5 D1 CD +R 00 00 01 00 +T 3F 29 00 00 AB 04 00 00 21 28 00 FD E5 C1 09 +R 00 00 01 00 00 04 01 00 +T 48 29 00 00 CD 97 04 00 00 09 01 27 00 09 70 +R 00 00 01 00 00 05 01 00 +T 51 29 00 00 C3 05 2A 00 00 +R 00 00 01 00 00 05 01 00 +T 54 29 00 00 +R 00 00 01 00 +T 54 29 00 00 FD 36 01 01 21 04 00 FD E5 C1 09 +R 00 00 01 00 +T 5F 29 00 00 EB 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 06 16 00 02 0B 16 00 +T 65 29 00 00 CD 00 00 00 00 18 42 +R 00 00 01 00 02 05 0E 00 +T 6A 29 00 00 +R 00 00 01 00 +T 6A 29 00 00 +R 00 00 01 00 +T 6A 29 00 00 DD 6E FE DD 66 FF 46 23 66 68 23 +R 00 00 01 00 +T 75 29 00 00 23 46 23 66 68 E5 DD 6E FC DD 66 +R 00 00 01 00 +T 80 29 00 00 FD 29 29 4D 44 29 09 4D 44 E1 09 +R 00 00 01 00 +T 8B 29 00 00 01 09 00 09 7E FE 49 20 26 +R 00 00 01 00 +T 94 29 00 00 +R 00 00 01 00 +T 94 29 00 00 FD 36 01 01 DD 4E FC DD 46 FD DD +R 00 00 01 00 +T 9F 29 00 00 5E FE DD 56 FF 3E FD 1E 00 00 21 +R 00 00 01 00 29 0A 01 00 +T A7 29 00 00 FD 1E 00 00 CD 00 00 00 00 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T AC 29 00 00 +R 00 00 01 00 +T AC 29 00 00 FD 75 24 FD 74 25 FD 71 26 FD 70 +R 00 00 01 00 +T B7 29 00 00 27 18 4B +R 00 00 01 00 +T BA 29 00 00 +R 00 00 01 00 +T BA 29 00 00 DD 6E FE DD 66 FF 46 23 66 68 23 +R 00 00 01 00 +T C5 29 00 00 23 46 23 66 68 E5 DD 6E FC DD 66 +R 00 00 01 00 +T D0 29 00 00 FD 29 29 4D 44 29 09 4D 44 E1 09 +R 00 00 01 00 +T DB 29 00 00 01 09 00 09 7E FE 53 20 21 +R 00 00 01 00 +T E4 29 00 00 +R 00 00 01 00 +T E4 29 00 00 FD 36 01 03 21 28 00 FD E5 C1 09 +R 00 00 01 00 +T EF 29 00 00 E5 DD 4E FC DD 46 FD DD 5E FE DD +R 00 00 01 00 +T FA 29 00 00 56 FF 3E 71 1D 00 00 21 +R 00 00 01 00 29 07 01 00 +T FF 29 00 00 71 1D 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 04 01 00 02 09 0E 00 +T 05 2A 00 00 +R 00 00 01 00 +T 05 2A 00 00 +R 00 00 01 00 +T 05 2A 00 00 +R 00 00 01 00 +T 05 2A 00 00 +R 00 00 01 00 +T 05 2A 00 00 C3 7B 04 00 00 +R 00 00 01 00 00 05 01 00 +T 08 2A 00 00 +R 00 00 01 00 +T 08 2A 00 00 FD 6E 48 FD 66 49 +R 00 00 01 00 +T 0E 2A 00 00 +R 00 00 01 00 +T 0E 2A 00 00 01 24 00 09 5E 23 56 23 4E 23 46 +R 00 00 01 00 +T 19 2A 00 00 EB C3 00 00 00 00 +R 00 00 01 00 02 06 10 00 +T 1D 2A 00 00 +R 00 00 01 00 +T 1D 2A 00 00 FD 6E 48 FD 66 49 01 24 00 09 5E +R 00 00 01 00 +T 28 2A 00 00 23 56 23 4E 23 46 EB C3 +R 00 00 01 00 +T 30 2A 00 00 00 00 00 00 +R 00 00 01 00 02 04 11 00 +T 32 2A 00 00 +R 00 00 01 00 +T 32 2A 00 00 FD 6E 48 FD 66 49 01 24 00 09 5E +R 00 00 01 00 +T 3D 2A 00 00 23 56 23 4E 23 46 EB C3 +R 00 00 01 00 +T 45 2A 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 00 00 00 00 +R 00 00 02 00 +T 00 00 00 00 53 45 4C 00 +R 00 00 02 00 +T 04 00 00 00 +R 00 00 02 00 +T 04 00 00 00 49 4E 53 00 +R 00 00 02 00 +T 08 00 00 00 +R 00 00 02 00 +T 08 00 00 00 55 50 44 00 +R 00 00 02 00 +T 0C 00 00 00 +R 00 00 02 00 +T 0C 00 00 00 44 45 4C 00 +R 00 00 02 00 +T 10 00 00 00 +R 00 00 02 00 +T 10 00 00 00 20 46 52 20 00 +R 00 00 02 00 +T 15 00 00 00 +R 00 00 02 00 +T 15 00 00 00 20 57 48 00 +R 00 00 02 00 +T 19 00 00 00 +R 00 00 02 00 +T 19 00 00 00 20 4F 52 44 20 00 +R 00 00 02 00 +T 1F 00 00 00 +R 00 00 02 00 +T 1F 00 00 00 28 00 +R 00 00 02 00 +T 21 00 00 00 +R 00 00 02 00 +T 21 00 00 00 29 20 56 41 4C 28 00 +R 00 00 02 00 +T 28 00 00 00 +R 00 00 02 00 +T 28 00 00 00 20 53 54 20 00 +R 00 00 02 00 +T 2D 00 00 00 +R 00 00 02 00 +T 2D 00 00 00 2F 75 73 72 2F 64 62 2F 00 +R 00 00 02 00 +T 36 00 00 00 +R 00 00 02 00 +T 36 00 00 00 2E 54 42 4C 00 +R 00 00 02 00 +T 3B 00 00 00 +R 00 00 02 00 +T 3B 00 00 00 72 62 00 +R 00 00 02 00 +T 3E 00 00 00 +R 00 00 02 00 +T 3E 00 00 00 2E 44 41 54 00 +R 00 00 02 00 +T 43 00 00 00 +R 00 00 02 00 +T 43 00 00 00 72 2B 62 00 +R 00 00 02 00 +T 47 00 00 00 +R 00 00 02 00 +T 47 00 00 00 22 2A 22 00 +R 00 00 02 00 +T 4B 00 00 00 +R 00 00 02 00 +T 4B 00 00 00 72 65 73 75 6C 74 00 +R 00 00 02 00 +T 52 00 00 00 +R 00 00 02 00 +T 52 00 00 00 77 62 00 +R 00 00 02 00 diff --git a/src/db/db.rst b/src/db/db.rst new file mode 100644 index 00000000..ce9ceaee --- /dev/null +++ b/src/db/db.rst @@ -0,0 +1,6551 @@ + 1 NAME db(17) + 2 RSEG CODE(0) + 3 RSEG CSTR(0) + 4 EXTERN __fopen + 5 EXTERN atoi + 6 EXTERN atol + 7 PUBLIC dbDeleteExpression + 8 PUBLIC dbDeleteList + 9 PUBLIC dbDeleteRow + 10 PUBLIC dbEvaluateExpression + 11 PUBLIC dbExecuteDelete + 12 PUBLIC dbExecuteInsert + 13 PUBLIC dbExecuteQuery + 14 PUBLIC dbExecuteStatement + 15 PUBLIC dbExecuteUpdate + 16 PUBLIC dbFieldOffset + 17 PUBLIC dbFieldSearch + 18 PUBLIC dbGetInt + 19 PUBLIC dbGetLong + 20 PUBLIC dbGetString + 21 PUBLIC dbListIndex + 22 PUBLIC dbListSize + 23 PUBLIC dbNewExpression + 24 PUBLIC dbNewRow + 25 PUBLIC dbNextRow + 26 PUBLIC dbOperatorPrecedence + 27 PUBLIC dbParseDelete + 28 PUBLIC dbParseExpression + 29 PUBLIC dbParseInsert + 30 PUBLIC dbParseList + 31 PUBLIC dbParseSelect + 32 PUBLIC dbParseStatement + 33 PUBLIC dbParseUpdate + 34 PUBLIC dbRecordSize + 35 PUBLIC dbReplaceChar + 36 PUBLIC dbResultSetClose + 37 PUBLIC dbSkipLiteral + 38 PUBLIC dbStatementClose + 39 PUBLIC dbTableClose + 40 PUBLIC dbTableOpen + 41 PUBLIC dbTrimString + 42 EXTERN fclose + 43 EXTERN fread + 44 EXTERN free + 45 EXTERN fseek + 46 EXTERN fwrite + 47 EXTERN itoa + 48 EXTERN ltoa + 49 EXTERN malloc + 50 EXTERN memcpy + 51 EXTERN strcat + 52 EXTERN strcmp + 53 EXTERN strcpy + 54 EXTERN strlen + 55 EXTERN strncmp + 56 EXTERN ?CL64180B_4_06_L00 + 57 EXTERN ?L_MUL_L03 + 58 EXTERN ?SL_DIV_L03 + 59 EXTERN ?L_AND_L03 + 60 EXTERN ?L_OR_L03 + 61 EXTERN ?SL_CMP_L03 + 62 EXTERN ?C_V_SWITCH_L06 + 63 EXTERN ?BANK_CALL_DIRECT_L08 + 64 EXTERN ?BANK_FAST_LEAVE_L08 + 65 RSEG CODE + 00004555 66 dbDeleteList: + 00004555 DD E5 67 PUSH IX + 00004557 D5 68 PUSH DE + 00004558 DD E1 69 POP IX + 0000455A 7B 70 LD A,E + 0000455B B2 71 OR D + 0000455C 28 27 72 JR Z,?0001 + 0000455E 73 ?0000: + 0000455E DD 7E 04 74 LD A,(IX+4) + 00004561 DD B6 05 75 OR (IX+5) + 00004564 28 03 76 JR Z,?0003 + 00004566 77 ?0002: + 00004566 CD 8A 45 78 CALL LWRD ?0638 + 00004569 79 ?0003: + 00004569 DD 7E 02 80 LD A,(IX+2) + 0000456C DD B6 03 81 OR (IX+3) + 0000456F 28 0E 82 JR Z,?0005 + 00004571 83 ?0004: + 00004571 DD 5E 02 84 LD E,(IX+2) + 00004574 DD 56 03 85 LD D,(IX+3) + 00004577 3E 00 86 LD A,BYTE3 dbDeleteList + 00004579 21 55 45 87 LD HL,LWRD dbDeleteList + 0000457C CD 19 82 88 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000457F 89 ?0005: + 0000457F DD E5 90 PUSH IX + 00004581 D1 91 POP DE + 00004582 CD 90 45 92 CALL LWRD ?0639 + 00004585 93 ?0001: + 00004585 DD E1 94 POP IX + 00004587 C3 A9 81 95 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000458A 96 ?0638: + 0000458A DD 5E 04 97 LD E,(IX+4) + 0000458D DD 56 05 98 LD D,(IX+5) + 00004590 99 ?0639: + 00004590 3E 00 100 LD A,BYTE3 free + 00004592 21 3C 7E 101 LD HL,LWRD free + 00004595 C3 19 82 102 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004598 103 dbListIndex: + 00004598 C5 104 PUSH BC + 00004599 FD E5 105 PUSH IY + 0000459B DD E5 106 PUSH IX + 0000459D D5 107 PUSH DE + 0000459E 6B 108 LD L,E + 0000459F 62 109 LD H,D + 000045A0 E5 110 PUSH HL + 000045A1 DD E1 111 POP IX + 000045A3 FD 21 00 00 112 LD IY,0 + 000045A7 113 ?0007: + 000045A7 DD 7E 00 114 LD A,(IX+0) + 000045AA DD B6 01 115 OR (IX+1) + 000045AD 28 0D 116 JR Z,?0006 + 000045AF 117 ?0008: + 000045AF DD 6E 00 118 LD L,(IX+0) + 000045B2 DD 66 01 119 LD H,(IX+1) + 000045B5 E5 120 PUSH HL + 000045B6 DD E1 121 POP IX + 000045B8 FD 23 122 INC IY + 000045BA 18 EB 123 JR ?0007 + 000045BC 124 ?0006: + 000045BC FD E5 125 PUSH IY + 000045BE E1 126 POP HL + 000045BF F1 127 POP AF + 000045C0 128 ?0614: + 000045C0 DD E1 129 POP IX + 000045C2 FD E1 130 POP IY + 000045C4 C1 131 POP BC + 000045C5 C3 A9 81 132 JP LWRD ?BANK_FAST_LEAVE_L08 + 000045C8 133 dbListSize: + 000045C8 C5 134 PUSH BC + 000045C9 FD E5 135 PUSH IY + 000045CB DD E5 136 PUSH IX + 000045CD D5 137 PUSH DE + 000045CE 6B 138 LD L,E + 000045CF 62 139 LD H,D + 000045D0 E5 140 PUSH HL + 000045D1 DD E1 141 POP IX + 000045D3 EB 142 EX DE,HL + 000045D4 3E 00 143 LD A,BYTE3 dbListIndex + 000045D6 21 98 45 144 LD HL,LWRD dbListIndex + 000045D9 CD 19 82 145 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000045DC 23 146 INC HL + 000045DD E5 147 PUSH HL + 000045DE FD E1 148 POP IY + 000045E0 149 ?0010: + 000045E0 DD 7E 02 150 LD A,(IX+2) + 000045E3 DD B6 03 151 OR (IX+3) + 000045E6 28 0D 152 JR Z,?0009 + 000045E8 153 ?0011: + 000045E8 DD 6E 02 154 LD L,(IX+2) + 000045EB DD 66 03 155 LD H,(IX+3) + 000045EE E5 156 PUSH HL + 000045EF DD E1 157 POP IX + 000045F1 FD 23 158 INC IY + 000045F3 18 EB 159 JR ?0010 + 000045F5 160 ?0009: + 000045F5 C3 BC 45 161 JP LWRD ?0006 + 000045F8 162 dbSkipLiteral: + 000045F8 FD E5 163 PUSH IY + 000045FA DD E5 164 PUSH IX + 000045FC D5 165 PUSH DE + 000045FD C5 166 PUSH BC + 000045FE DD E1 167 POP IX + 00004600 21 0A 00 168 LD HL,10 + 00004603 39 169 ADD HL,SP + 00004604 5E 170 LD E,(HL) + 00004605 23 171 INC HL + 00004606 56 172 LD D,(HL) + 00004607 D5 173 PUSH DE + 00004608 FD E1 174 POP IY + 0000460A FD 6E 00 175 LD L,(IY+0) + 0000460D FD 66 01 176 LD H,(IY+1) + 00004610 09 177 ADD HL,BC + 00004611 56 178 LD D,(HL) + 00004612 21 0C 00 179 LD HL,12 + 00004615 39 180 ADD HL,SP + 00004616 7E 181 LD A,(HL) + 00004617 23 182 INC HL + 00004618 66 183 LD H,(HL) + 00004619 6F 184 LD L,A + 0000461A 5E 185 LD E,(HL) + 0000461B 23 186 INC HL + 0000461C 66 187 LD H,(HL) + 0000461D 6B 188 LD L,E + 0000461E 09 189 ADD HL,BC + 0000461F 190 ?0458: + 0000461F 72 191 LD (HL),D + 00004620 192 ?0013: + 00004620 FD E5 193 PUSH IY + 00004622 E1 194 POP HL + 00004623 4E 195 LD C,(HL) + 00004624 23 196 INC HL + 00004625 46 197 LD B,(HL) + 00004626 03 198 INC BC + 00004627 70 199 LD (HL),B + 00004628 2B 200 DEC HL + 00004629 71 201 LD (HL),C + 0000462A DD E5 202 PUSH IX + 0000462C E1 203 POP HL + 0000462D 09 204 ADD HL,BC + 0000462E 7E 205 LD A,(HL) + 0000462F 21 00 00 206 LD HL,0 + 00004632 39 207 ADD HL,SP + 00004633 BE 208 CP (HL) + 00004634 FD 6E 00 209 LD L,(IY+0) + 00004637 FD 66 01 210 LD H,(IY+1) + 0000463A DD E5 211 PUSH IX + 0000463C C1 212 POP BC + 0000463D 09 213 ADD HL,BC + 0000463E 56 214 LD D,(HL) + 0000463F D5 215 PUSH DE + 00004640 21 0E 00 216 LD HL,14 + 00004643 39 217 ADD HL,SP + 00004644 7E 218 LD A,(HL) + 00004645 23 219 INC HL + 00004646 66 220 LD H,(HL) + 00004647 6F 221 LD L,A + 00004648 5E 222 LD E,(HL) + 00004649 23 223 INC HL + 0000464A 56 224 LD D,(HL) + 0000464B 13 225 INC DE + 0000464C 72 226 LD (HL),D + 0000464D 2B 227 DEC HL + 0000464E 73 228 LD (HL),E + 0000464F 69 229 LD L,C + 00004650 60 230 LD H,B + 00004651 19 231 ADD HL,DE + 00004652 D1 232 POP DE + 00004653 20 CA 233 JR NZ,?0458 + 00004655 234 ?0014: + 00004655 235 ?0012: + 00004655 72 236 LD (HL),D + 00004656 237 ?0625: + 00004656 E1 238 POP HL + 00004657 DD E1 239 POP IX + 00004659 FD E1 240 POP IY + 0000465B C3 A9 81 241 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000465E 242 dbTrimString: + 0000465E C5 243 PUSH BC + 0000465F FD E5 244 PUSH IY + 00004661 DD E5 245 PUSH IX + 00004663 DD 21 00 00 246 LD IX,0 + 00004667 DD 39 247 ADD IX,SP + 00004669 F5 248 PUSH AF + 0000466A F5 249 PUSH AF + 0000466B F5 250 PUSH AF + 0000466C D5 251 PUSH DE + 0000466D FD E1 252 POP IY + 0000466F AF 253 XOR A + 00004670 DD 77 FA 254 LD (IX-6),A + 00004673 DD 77 FB 255 LD (IX-5),A + 00004676 DD 77 FC 256 LD (IX-4),A + 00004679 DD 77 FD 257 LD (IX-3),A + 0000467C DD 36 FE 20 258 LD (IX-2),32 + 00004680 259 ?0016: + 00004680 DD 6E FA 260 LD L,(IX-6) + 00004683 DD 66 FB 261 LD H,(IX-5) + 00004686 FD E5 262 PUSH IY + 00004688 C1 263 POP BC + 00004689 09 264 ADD HL,BC + 0000468A 7E 265 LD A,(HL) + 0000468B B7 266 OR A + 0000468C CA DE 47 267 JP Z,?0015 + 0000468F 268 ?0017: + 0000468F DD 6E FA 269 LD L,(IX-6) + 00004692 DD 66 FB 270 LD H,(IX-5) + 00004695 09 271 ADD HL,BC + 00004696 7E 272 LD A,(HL) + 00004697 FE 27 273 CP 39 + 00004699 28 0C 274 JR Z,?0020 + 0000469B DD 6E FA 275 LD L,(IX-6) + 0000469E DD 66 FB 276 LD H,(IX-5) + 000046A1 09 277 ADD HL,BC + 000046A2 7E 278 LD A,(HL) + 000046A3 FE 22 279 CP 34 + 000046A5 20 1D 280 JR NZ,?0019 + 000046A7 281 ?0020: + 000046A7 282 ?0021: + 000046A7 283 ?0018: + 000046A7 21 02 00 284 LD HL,2 + 000046AA 39 285 ADD HL,SP + 000046AB E5 286 PUSH HL + 000046AC 2B 287 DEC HL + 000046AD 2B 288 DEC HL + 000046AE E5 289 PUSH HL + 000046AF DD 6E FA 290 LD L,(IX-6) + 000046B2 DD 66 FB 291 LD H,(IX-5) + 000046B5 FD E5 292 PUSH IY + 000046B7 D1 293 POP DE + 000046B8 19 294 ADD HL,DE + 000046B9 5E 295 LD E,(HL) + 000046BA 3E 00 296 LD A,BYTE3 dbSkipLiteral + 000046BC 21 F8 45 297 LD HL,LWRD dbSkipLiteral + 000046BF CD 19 82 298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000046C2 E1 299 POP HL + 000046C3 E1 300 POP HL + 000046C4 301 ?0019: + 000046C4 DD 7E FE 302 LD A,(IX-2) + 000046C7 FE 20 303 CP 32 + 000046C9 C2 6D 47 304 JP NZ,?0023 + 000046CC DD 6E FA 305 LD L,(IX-6) + 000046CF DD 66 FB 306 LD H,(IX-5) + 000046D2 FD E5 307 PUSH IY + 000046D4 C1 308 POP BC + 000046D5 09 309 ADD HL,BC + 000046D6 7E 310 LD A,(HL) + 000046D7 FE 2C 311 CP 44 + 000046D9 CA 60 47 312 JP Z,?0026 + 000046DC DD 6E FA 313 LD L,(IX-6) + 000046DF DD 66 FB 314 LD H,(IX-5) + 000046E2 09 315 ADD HL,BC + 000046E3 7E 316 LD A,(HL) + 000046E4 FE 29 317 CP 41 + 000046E6 28 78 318 JR Z,?0026 + 000046E8 DD 6E FA 319 LD L,(IX-6) + 000046EB DD 66 FB 320 LD H,(IX-5) + 000046EE 09 321 ADD HL,BC + 000046EF 7E 322 LD A,(HL) + 000046F0 FE 28 323 CP 40 + 000046F2 28 6C 324 JR Z,?0026 + 000046F4 DD 6E FA 325 LD L,(IX-6) + 000046F7 DD 66 FB 326 LD H,(IX-5) + 000046FA 09 327 ADD HL,BC + 000046FB 7E 328 LD A,(HL) + 000046FC FE 2B 329 CP 43 + 000046FE 28 60 330 JR Z,?0026 + 00004700 DD 6E FA 331 LD L,(IX-6) + 00004703 DD 66 FB 332 LD H,(IX-5) + 00004706 09 333 ADD HL,BC + 00004707 7E 334 LD A,(HL) + 00004708 FE 2D 335 CP 45 + 0000470A 28 54 336 JR Z,?0026 + 0000470C DD 6E FA 337 LD L,(IX-6) + 0000470F DD 66 FB 338 LD H,(IX-5) + 00004712 09 339 ADD HL,BC + 00004713 7E 340 LD A,(HL) + 00004714 FE 2A 341 CP 42 + 00004716 28 48 342 JR Z,?0026 + 00004718 DD 6E FA 343 LD L,(IX-6) + 0000471B DD 66 FB 344 LD H,(IX-5) + 0000471E 09 345 ADD HL,BC + 0000471F 7E 346 LD A,(HL) + 00004720 FE 2F 347 CP 47 + 00004722 28 3C 348 JR Z,?0026 + 00004724 DD 6E FA 349 LD L,(IX-6) + 00004727 DD 66 FB 350 LD H,(IX-5) + 0000472A 09 351 ADD HL,BC + 0000472B 7E 352 LD A,(HL) + 0000472C FE 26 353 CP 38 + 0000472E 28 30 354 JR Z,?0026 + 00004730 DD 6E FA 355 LD L,(IX-6) + 00004733 DD 66 FB 356 LD H,(IX-5) + 00004736 09 357 ADD HL,BC + 00004737 7E 358 LD A,(HL) + 00004738 FE 7C 359 CP 124 + 0000473A 28 24 360 JR Z,?0026 + 0000473C DD 6E FA 361 LD L,(IX-6) + 0000473F DD 66 FB 362 LD H,(IX-5) + 00004742 09 363 ADD HL,BC + 00004743 7E 364 LD A,(HL) + 00004744 FE 3D 365 CP 61 + 00004746 28 18 366 JR Z,?0026 + 00004748 DD 6E FA 367 LD L,(IX-6) + 0000474B DD 66 FB 368 LD H,(IX-5) + 0000474E 09 369 ADD HL,BC + 0000474F 7E 370 LD A,(HL) + 00004750 FE 3C 371 CP 60 + 00004752 28 0C 372 JR Z,?0026 + 00004754 DD 6E FA 373 LD L,(IX-6) + 00004757 DD 66 FB 374 LD H,(IX-5) + 0000475A 09 375 ADD HL,BC + 0000475B 7E 376 LD A,(HL) + 0000475C FE 3E 377 CP 62 + 0000475E 20 0D 378 JR NZ,?0023 + 00004760 379 ?0026: + 00004760 380 ?0027: + 00004760 381 ?0025: + 00004760 382 ?0024: + 00004760 383 ?0022: + 00004760 DD 6E FC 384 LD L,(IX-4) + 00004763 DD 66 FD 385 LD H,(IX-3) + 00004766 2B 386 DEC HL + 00004767 DD 75 FC 387 LD (IX-4),L + 0000476A DD 74 FD 388 LD (IX-3),H + 0000476D 389 ?0023: + 0000476D DD 6E FA 390 LD L,(IX-6) + 00004770 DD 66 FB 391 LD H,(IX-5) + 00004773 FD E5 392 PUSH IY + 00004775 C1 393 POP BC + 00004776 09 394 ADD HL,BC + 00004777 56 395 LD D,(HL) + 00004778 DD 6E FC 396 LD L,(IX-4) + 0000477B DD 66 FD 397 LD H,(IX-3) + 0000477E 09 398 ADD HL,BC + 0000477F 72 399 LD (HL),D + 00004780 DD 7E FE 400 LD A,(IX-2) + 00004783 FE 2C 401 CP 44 + 00004785 28 2C 402 JR Z,?0031 + 00004787 FE 20 403 CP 32 + 00004789 28 28 404 JR Z,?0031 + 0000478B FE 28 405 CP 40 + 0000478D 28 24 406 JR Z,?0031 + 0000478F FE 2B 407 CP 43 + 00004791 28 20 408 JR Z,?0031 + 00004793 FE 2D 409 CP 45 + 00004795 28 1C 410 JR Z,?0031 + 00004797 FE 2A 411 CP 42 + 00004799 28 18 412 JR Z,?0031 + 0000479B FE 2F 413 CP 47 + 0000479D 28 14 414 JR Z,?0031 + 0000479F FE 26 415 CP 38 + 000047A1 28 10 416 JR Z,?0031 + 000047A3 FE 7C 417 CP 124 + 000047A5 28 0C 418 JR Z,?0031 + 000047A7 FE 3D 419 CP 61 + 000047A9 28 08 420 JR Z,?0031 + 000047AB FE 3E 421 CP 62 + 000047AD 28 04 422 JR Z,?0031 + 000047AF FE 3C 423 CP 60 + 000047B1 20 0C 424 JR NZ,?0032 + 000047B3 425 ?0031: + 000047B3 426 ?0030: + 000047B3 DD 6E FA 427 LD L,(IX-6) + 000047B6 DD 66 FB 428 LD H,(IX-5) + 000047B9 09 429 ADD HL,BC + 000047BA 7E 430 LD A,(HL) + 000047BB FE 20 431 CP 32 + 000047BD 28 08 432 JR Z,?0459 + 000047BF 433 ?0032: + 000047BF 434 ?0033: + 000047BF 435 ?0028: + 000047BF DD 34 FC 436 INC (IX-4) + 000047C2 20 03 437 JR NZ,?0459 + 000047C4 DD 34 FD 438 INC (IX-3) + 000047C7 439 ?0459: + 000047C7 440 ?0029: + 000047C7 DD 6E FA 441 LD L,(IX-6) + 000047CA DD 66 FB 442 LD H,(IX-5) + 000047CD 09 443 ADD HL,BC + 000047CE 46 444 LD B,(HL) + 000047CF DD 70 FE 445 LD (IX-2),B + 000047D2 DD 34 FA 446 INC (IX-6) + 000047D5 C2 80 46 447 JP NZ,?0016 + 000047D8 DD 34 FB 448 INC (IX-5) + 000047DB C3 80 46 449 JP LWRD ?0016 + 000047DE 450 ?0015: + 000047DE DD 7E FE 451 LD A,(IX-2) + 000047E1 FE 20 452 CP 32 + 000047E3 DD 6E FC 453 LD L,(IX-4) + 000047E6 DD 66 FD 454 LD H,(IX-3) + 000047E9 20 01 455 JR NZ,?0035 + 000047EB 456 ?0034: + 000047EB 2B 457 DEC HL + 000047EC 458 ?0035: + 000047EC 09 459 ADD HL,BC + 000047ED 36 00 460 LD (HL),0 + 000047EF 461 ?0036: + 000047EF DD F9 462 LD SP,IX + 000047F1 C3 C0 45 463 JP LWRD ?0614 + 000047F4 464 dbReplaceChar: + 000047F4 FD E5 465 PUSH IY + 000047F6 DD E5 466 PUSH IX + 000047F8 C5 467 PUSH BC + 000047F9 D5 468 PUSH DE + 000047FA FD E1 469 POP IY + 000047FC DD 21 00 00 470 LD IX,0 + 00004800 471 ?0038: + 00004800 DD E5 472 PUSH IX + 00004802 E1 473 POP HL + 00004803 FD E5 474 PUSH IY + 00004805 C1 475 POP BC + 00004806 09 476 ADD HL,BC + 00004807 7E 477 LD A,(HL) + 00004808 21 00 00 478 LD HL,0 + 0000480B 39 479 ADD HL,SP + 0000480C BE 480 CP (HL) + 0000480D 28 0C 481 JR Z,?0037 + 0000480F DD E5 482 PUSH IX + 00004811 E1 483 POP HL + 00004812 09 484 ADD HL,BC + 00004813 7E 485 LD A,(HL) + 00004814 B7 486 OR A + 00004815 28 04 487 JR Z,?0037 + 00004817 488 ?0041: + 00004817 489 ?0040: + 00004817 490 ?0039: + 00004817 DD 23 491 INC IX + 00004819 18 E5 492 JR ?0038 + 0000481B 493 ?0037: + 0000481B DD E5 494 PUSH IX + 0000481D E1 495 POP HL + 0000481E 09 496 ADD HL,BC + 0000481F 7E 497 LD A,(HL) + 00004820 B7 498 OR A + 00004821 28 0C 499 JR Z,?0043 + 00004823 500 ?0042: + 00004823 DD E5 501 PUSH IX + 00004825 E1 502 POP HL + 00004826 09 503 ADD HL,BC + 00004827 E5 504 PUSH HL + 00004828 21 0C 00 505 LD HL,12 + 0000482B 39 506 ADD HL,SP + 0000482C 46 507 LD B,(HL) + 0000482D E1 508 POP HL + 0000482E 70 509 LD (HL),B + 0000482F 510 ?0043: + 0000482F DD E5 511 PUSH IX + 00004831 E1 512 POP HL + 00004832 FD E5 513 PUSH IY + 00004834 C1 514 POP BC + 00004835 09 515 ADD HL,BC + 00004836 516 ?0626: + 00004836 F1 517 POP AF + 00004837 DD E1 518 POP IX + 00004839 FD E1 519 POP IY + 0000483B C3 A9 81 520 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000483E 521 dbParseList: + 0000483E FD E5 522 PUSH IY + 00004840 DD E5 523 PUSH IX + 00004842 DD 21 00 00 524 LD IX,0 + 00004846 DD 39 525 ADD IX,SP + 00004848 C5 526 PUSH BC + 00004849 D5 527 PUSH DE + 0000484A 21 D8 FF 528 LD HL,65496 + 0000484D 39 529 ADD HL,SP + 0000484E F9 530 LD SP,HL + 0000484F 11 06 00 531 LD DE,6 + 00004852 CD E4 49 532 CALL LWRD ?0641 + 00004855 E5 533 PUSH HL + 00004856 FD E1 534 POP IY + 00004858 DD 75 DA 535 LD (IX-38),L + 0000485B DD 74 DB 536 LD (IX-37),H + 0000485E AF 537 XOR A + 0000485F 77 538 LD (HL),A + 00004860 23 539 INC HL + 00004861 77 540 LD (HL),A + 00004862 DD 77 D6 541 LD (IX-42),A + 00004865 DD 77 D7 542 LD (IX-41),A + 00004868 DD 77 D4 543 LD (IX-44),A + 0000486B DD 77 D5 544 LD (IX-43),A + 0000486E 545 ?0045: + 0000486E DD 6E 0A 546 LD L,(IX+10) + 00004871 DD 66 0B 547 LD H,(IX+11) + 00004874 46 548 LD B,(HL) + 00004875 23 549 INC HL + 00004876 66 550 LD H,(HL) + 00004877 68 551 LD L,B + 00004878 DD 4E FC 552 LD C,(IX-4) + 0000487B DD 46 FD 553 LD B,(IX-3) + 0000487E 09 554 ADD HL,BC + 0000487F 7E 555 LD A,(HL) + 00004880 DD BE 08 556 CP (IX+8) + 00004883 20 07 557 JR NZ,?0047 + 00004885 AF 558 XOR A + 00004886 DD B6 D4 559 OR (IX-44) + 00004889 CA 96 49 560 JP Z,?0044 + 0000488C 561 ?0047: + 0000488C 562 ?0048: + 0000488C DD 6E 0A 563 LD L,(IX+10) + 0000488F DD 66 0B 564 LD H,(IX+11) + 00004892 46 565 LD B,(HL) + 00004893 23 566 INC HL + 00004894 66 567 LD H,(HL) + 00004895 68 568 LD L,B + 00004896 DD 46 FD 569 LD B,(IX-3) + 00004899 09 570 ADD HL,BC + 0000489A 7E 571 LD A,(HL) + 0000489B B7 572 OR A + 0000489C CA 96 49 573 JP Z,?0044 + 0000489F 574 ?0050: + 0000489F 575 ?0049: + 0000489F 576 ?0046: + 0000489F DD 6E 0A 577 LD L,(IX+10) + 000048A2 DD 66 0B 578 LD H,(IX+11) + 000048A5 46 579 LD B,(HL) + 000048A6 23 580 INC HL + 000048A7 66 581 LD H,(HL) + 000048A8 68 582 LD L,B + 000048A9 DD 46 FD 583 LD B,(IX-3) + 000048AC 09 584 ADD HL,BC + 000048AD 7E 585 LD A,(HL) + 000048AE FE 22 586 CP 34 + 000048B0 28 04 587 JR Z,?0052 + 000048B2 FE 27 588 CP 39 + 000048B4 20 10 589 JR NZ,?0053 + 000048B6 590 ?0052: + 000048B6 AF 591 XOR A + 000048B7 DD B6 D4 592 OR (IX-44) + 000048BA 20 04 593 JR NZ,?0463 + 000048BC 3E 01 594 LD A,1 + 000048BE 18 01 595 JR ?0464 + 000048C0 596 ?0463: + 000048C0 AF 597 XOR A + 000048C1 598 ?0464: + 000048C1 DD 77 D4 599 LD (IX-44),A + 000048C4 18 1C 600 JR ?0058 + 000048C6 601 ?0053: + 000048C6 FE 28 602 CP 40 + 000048C8 20 0B 603 JR NZ,?0056 + 000048CA AF 604 XOR A + 000048CB DD B6 D4 605 OR (IX-44) + 000048CE 20 12 606 JR NZ,?0058 + 000048D0 607 ?0054: + 000048D0 DD 34 D5 608 INC (IX-43) + 000048D3 609 ?0055: + 000048D3 18 0D 610 JR ?0058 + 000048D5 611 ?0056: + 000048D5 FE 29 612 CP 41 + 000048D7 20 09 613 JR NZ,?0058 + 000048D9 AF 614 XOR A + 000048DA DD B6 D4 615 OR (IX-44) + 000048DD 20 03 616 JR NZ,?0058 + 000048DF 617 ?0057: + 000048DF DD 35 D5 618 DEC (IX-43) + 000048E2 619 ?0058: + 000048E2 620 ?0051: + 000048E2 DD 6E 0A 621 LD L,(IX+10) + 000048E5 DD 66 0B 622 LD H,(IX+11) + 000048E8 46 623 LD B,(HL) + 000048E9 23 624 INC HL + 000048EA 66 625 LD H,(HL) + 000048EB 68 626 LD L,B + 000048EC DD 46 FD 627 LD B,(IX-3) + 000048EF 09 628 ADD HL,BC + 000048F0 7E 629 LD A,(HL) + 000048F1 DD BE FE 630 CP (IX-2) + 000048F4 20 0B 631 JR NZ,?0061 + 000048F6 AF 632 XOR A + 000048F7 DD B6 D4 633 OR (IX-44) + 000048FA 20 05 634 JR NZ,?0061 + 000048FC DD B6 D5 635 OR (IX-43) + 000048FF 28 1D 636 JR Z,?0060 + 00004901 637 ?0061: + 00004901 638 ?0062: + 00004901 639 ?0059: + 00004901 DD 6E 0A 640 LD L,(IX+10) + 00004904 DD 66 0B 641 LD H,(IX+11) + 00004907 46 642 LD B,(HL) + 00004908 23 643 INC HL + 00004909 66 644 LD H,(HL) + 0000490A 68 645 LD L,B + 0000490B DD 46 FD 646 LD B,(IX-3) + 0000490E 09 647 ADD HL,BC + 0000490F 46 648 LD B,(HL) + 00004910 21 08 00 649 LD HL,8 + 00004913 39 650 ADD HL,SP + 00004914 DD 5E D6 651 LD E,(IX-42) + 00004917 DD 56 D7 652 LD D,(IX-41) + 0000491A 19 653 ADD HL,DE + 0000491B 70 654 LD (HL),B + 0000491C 18 61 655 JR ?0063 + 0000491E 656 ?0060: + 0000491E 21 08 00 657 LD HL,8 + 00004921 39 658 ADD HL,SP + 00004922 DD 4E D6 659 LD C,(IX-42) + 00004925 DD 46 D7 660 LD B,(IX-41) + 00004928 09 661 ADD HL,BC + 00004929 77 662 LD (HL),A + 0000492A 21 08 00 663 LD HL,8 + 0000492D 39 664 ADD HL,SP + 0000492E CD EC 49 665 CALL LWRD ?0648 + 00004931 EB 666 EX DE,HL + 00004932 13 667 INC DE + 00004933 CD E4 49 668 CALL LWRD ?0641 + 00004936 FD 75 04 669 LD (IY+4),L + 00004939 FD 74 05 670 LD (IY+5),H + 0000493C 21 08 00 671 LD HL,8 + 0000493F 39 672 ADD HL,SP + 00004940 4D 673 LD C,L + 00004941 44 674 LD B,H + 00004942 FD 5E 04 675 LD E,(IY+4) + 00004945 FD 56 05 676 LD D,(IY+5) + 00004948 CD 02 4A 677 CALL LWRD ?0651 + 0000494B FD E5 678 PUSH IY + 0000494D E1 679 POP HL + 0000494E DD 75 D8 680 LD (IX-40),L + 00004951 DD 74 D9 681 LD (IX-39),H + 00004954 11 06 00 682 LD DE,6 + 00004957 CD E4 49 683 CALL LWRD ?0641 + 0000495A FD 75 02 684 LD (IY+2),L + 0000495D FD 74 03 685 LD (IY+3),H + 00004960 FD 6E 02 686 LD L,(IY+2) + 00004963 FD 66 03 687 LD H,(IY+3) + 00004966 E5 688 PUSH HL + 00004967 FD E1 689 POP IY + 00004969 DD 6E D8 690 LD L,(IX-40) + 0000496C DD 66 D9 691 LD H,(IX-39) + 0000496F E5 692 PUSH HL + 00004970 FD E5 693 PUSH IY + 00004972 E1 694 POP HL + 00004973 C1 695 POP BC + 00004974 71 696 LD (HL),C + 00004975 23 697 INC HL + 00004976 70 698 LD (HL),B + 00004977 DD 36 D6 FF 699 LD (IX-42),255 + 0000497B DD 36 D7 FF 700 LD (IX-41),255 + 0000497F 701 ?0063: + 0000497F DD 6E 0A 702 LD L,(IX+10) + 00004982 DD 66 0B 703 LD H,(IX+11) + 00004985 34 704 INC (HL) + 00004986 23 705 INC HL + 00004987 20 01 706 JR NZ,?0465 + 00004989 34 707 INC (HL) + 0000498A 708 ?0465: + 0000498A DD 34 D6 709 INC (IX-42) + 0000498D C2 6E 48 710 JP NZ,?0045 + 00004990 DD 34 D7 711 INC (IX-41) + 00004993 C3 6E 48 712 JP LWRD ?0045 + 00004996 713 ?0044: + 00004996 21 08 00 714 LD HL,8 + 00004999 39 715 ADD HL,SP + 0000499A DD 4E D6 716 LD C,(IX-42) + 0000499D DD 46 D7 717 LD B,(IX-41) + 000049A0 09 718 ADD HL,BC + 000049A1 77 719 LD (HL),A + 000049A2 21 08 00 720 LD HL,8 + 000049A5 39 721 ADD HL,SP + 000049A6 CD EC 49 722 CALL LWRD ?0648 + 000049A9 EB 723 EX DE,HL + 000049AA 13 724 INC DE + 000049AB CD E4 49 725 CALL LWRD ?0641 + 000049AE FD 75 04 726 LD (IY+4),L + 000049B1 FD 74 05 727 LD (IY+5),H + 000049B4 21 08 00 728 LD HL,8 + 000049B7 39 729 ADD HL,SP + 000049B8 4D 730 LD C,L + 000049B9 44 731 LD B,H + 000049BA FD 5E 04 732 LD E,(IY+4) + 000049BD FD 56 05 733 LD D,(IY+5) + 000049C0 CD 02 4A 734 CALL LWRD ?0651 + 000049C3 AF 735 XOR A + 000049C4 FD 77 02 736 LD (IY+2),A + 000049C7 FD 77 03 737 LD (IY+3),A + 000049CA DD 6E DA 738 LD L,(IX-38) + 000049CD DD 66 DB 739 LD H,(IX-37) + 000049D0 740 ?0630: + 000049D0 DD F9 741 LD SP,IX + 000049D2 DD E1 742 POP IX + 000049D4 FD E1 743 POP IY + 000049D6 C3 A9 81 744 JP LWRD ?BANK_FAST_LEAVE_L08 + 000049D9 745 ?0643: + 000049D9 71 746 LD (HL),C + 000049DA 23 747 INC HL + 000049DB 70 748 LD (HL),B + 000049DC FD 6E 00 749 LD L,(IY+0) + 000049DF FD 66 01 750 LD H,(IY+1) + 000049E2 751 ?0644: + 000049E2 29 752 ADD HL,HL + 000049E3 753 ?0642: + 000049E3 EB 754 EX DE,HL + 000049E4 755 ?0641: + 000049E4 3E 01 756 LD A,BYTE3 malloc + 000049E6 21 82 4A 757 LD HL,LWRD malloc + 000049E9 C3 19 82 758 JP LWRD ?BANK_CALL_DIRECT_L08 + 000049EC 759 ?0648: + 000049EC EB 760 EX DE,HL + 000049ED 761 ?0649: + 000049ED 3E 00 762 LD A,BYTE3 strlen + 000049EF 21 5C 7D 763 LD HL,LWRD strlen + 000049F2 C3 19 82 764 JP LWRD ?BANK_CALL_DIRECT_L08 + 000049F5 765 ?0655: + 000049F5 4D 766 LD C,L + 000049F6 44 767 LD B,H + 000049F7 FD 6E 4A 768 LD L,(IY+74) + 000049FA FD 66 4B 769 LD H,(IY+75) + 000049FD 770 ?0654: + 000049FD 11 04 00 771 LD DE,4 + 00004A00 772 ?0653: + 00004A00 19 773 ADD HL,DE + 00004A01 774 ?0652: + 00004A01 EB 775 EX DE,HL + 00004A02 776 ?0651: + 00004A02 3E 00 777 LD A,BYTE3 strcpy + 00004A04 21 1C 7F 778 LD HL,LWRD strcpy + 00004A07 C3 19 82 779 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004A0A 780 dbParseStatement: + 00004A0A C5 781 PUSH BC + 00004A0B FD E5 782 PUSH IY + 00004A0D DD E5 783 PUSH IX + 00004A0F D5 784 PUSH DE + 00004A10 FD E1 785 POP IY + 00004A12 CD ED 49 786 CALL LWRD ?0649 + 00004A15 EB 787 EX DE,HL + 00004A16 13 788 INC DE + 00004A17 CD E4 49 789 CALL LWRD ?0641 + 00004A1A E5 790 PUSH HL + 00004A1B DD E1 791 POP IX + 00004A1D FD E5 792 PUSH IY + 00004A1F C1 793 POP BC + 00004A20 CD 01 4A 794 CALL LWRD ?0652 + 00004A23 DD E5 795 PUSH IX + 00004A25 D1 796 POP DE + 00004A26 3E 00 797 LD A,BYTE3 dbTrimString + 00004A28 21 5E 46 798 LD HL,LWRD dbTrimString + 00004A2B CD 19 82 799 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A2E 21 03 00 800 LD HL,3 + 00004A31 E5 801 PUSH HL + 00004A32 01 81 84 802 LD BC,?0066 + 00004A35 DD E5 803 PUSH IX + 00004A37 D1 804 POP DE + 00004A38 CD B5 4A 805 CALL LWRD ?0656 + 00004A3B F1 806 POP AF + 00004A3C 7D 807 LD A,L + 00004A3D B4 808 OR H + 00004A3E 20 0A 809 JR NZ,?0065 + 00004A40 810 ?0064: + 00004A40 DD E5 811 PUSH IX + 00004A42 D1 812 POP DE + 00004A43 3E 00 813 LD A,BYTE3 dbParseSelect + 00004A45 21 BD 4A 814 LD HL,LWRD dbParseSelect + 00004A48 18 52 815 JR ?0472 + 00004A4A 816 ?0065: + 00004A4A 21 03 00 817 LD HL,3 + 00004A4D E5 818 PUSH HL + 00004A4E 01 85 84 819 LD BC,?0069 + 00004A51 DD E5 820 PUSH IX + 00004A53 D1 821 POP DE + 00004A54 CD B5 4A 822 CALL LWRD ?0656 + 00004A57 F1 823 POP AF + 00004A58 7D 824 LD A,L + 00004A59 B4 825 OR H + 00004A5A 20 0A 826 JR NZ,?0068 + 00004A5C 827 ?0067: + 00004A5C DD E5 828 PUSH IX + 00004A5E D1 829 POP DE + 00004A5F 3E 00 830 LD A,BYTE3 dbParseInsert + 00004A61 21 EC 4B 831 LD HL,LWRD dbParseInsert + 00004A64 18 36 832 JR ?0472 + 00004A66 833 ?0068: + 00004A66 21 03 00 834 LD HL,3 + 00004A69 E5 835 PUSH HL + 00004A6A 01 89 84 836 LD BC,?0072 + 00004A6D DD E5 837 PUSH IX + 00004A6F D1 838 POP DE + 00004A70 CD B5 4A 839 CALL LWRD ?0656 + 00004A73 F1 840 POP AF + 00004A74 7D 841 LD A,L + 00004A75 B4 842 OR H + 00004A76 20 0A 843 JR NZ,?0071 + 00004A78 844 ?0070: + 00004A78 DD E5 845 PUSH IX + 00004A7A D1 846 POP DE + 00004A7B 3E 00 847 LD A,BYTE3 dbParseUpdate + 00004A7D 21 93 4C 848 LD HL,LWRD dbParseUpdate + 00004A80 18 1A 849 JR ?0472 + 00004A82 850 ?0071: + 00004A82 21 03 00 851 LD HL,3 + 00004A85 E5 852 PUSH HL + 00004A86 01 8D 84 853 LD BC,?0075 + 00004A89 DD E5 854 PUSH IX + 00004A8B D1 855 POP DE + 00004A8C CD B5 4A 856 CALL LWRD ?0656 + 00004A8F F1 857 POP AF + 00004A90 7D 858 LD A,L + 00004A91 B4 859 OR H + 00004A92 20 0D 860 JR NZ,?0074 + 00004A94 861 ?0073: + 00004A94 DD E5 862 PUSH IX + 00004A96 D1 863 POP DE + 00004A97 3E 00 864 LD A,BYTE3 dbParseDelete + 00004A99 21 60 4D 865 LD HL,LWRD dbParseDelete + 00004A9C 866 ?0472: + 00004A9C CD 19 82 867 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A9F 18 03 868 JR ?0076 + 00004AA1 869 ?0074: + 00004AA1 21 00 00 870 LD HL,0 + 00004AA4 871 ?0076: + 00004AA4 C3 C0 45 872 JP LWRD ?0614 + 00004AA7 873 ?0657: + 00004AA7 DD 6E FC 874 LD L,(IX-4) + 00004AAA DD 66 FD 875 LD H,(IX-3) + 00004AAD DD 5E FE 876 LD E,(IX-2) + 00004AB0 DD 56 FF 877 LD D,(IX-1) + 00004AB3 878 ?0658: + 00004AB3 19 879 ADD HL,DE + 00004AB4 EB 880 EX DE,HL + 00004AB5 881 ?0656: + 00004AB5 3E 00 882 LD A,BYTE3 strncmp + 00004AB7 21 8B 72 883 LD HL,LWRD strncmp + 00004ABA C3 19 82 884 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004ABD 885 dbParseSelect: + 00004ABD C5 886 PUSH BC + 00004ABE FD E5 887 PUSH IY + 00004AC0 DD E5 888 PUSH IX + 00004AC2 DD 21 00 00 889 LD IX,0 + 00004AC6 DD 39 890 ADD IX,SP + 00004AC8 D5 891 PUSH DE + 00004AC9 F5 892 PUSH AF + 00004ACA 11 09 00 893 LD DE,9 + 00004ACD CD E4 49 894 CALL LWRD ?0641 + 00004AD0 E5 895 PUSH HL + 00004AD1 FD E1 896 POP IY + 00004AD3 36 73 897 LD (HL),115 + 00004AD5 AF 898 XOR A + 00004AD6 FD 77 05 899 LD (IY+5),A + 00004AD9 FD 77 06 900 LD (IY+6),A + 00004ADC FD 77 07 901 LD (IY+7),A + 00004ADF FD 77 08 902 LD (IY+8),A + 00004AE2 DD 36 FC 03 903 LD (IX-4),3 + 00004AE6 DD 77 FD 904 LD (IX-3),A + 00004AE9 DD 6E FE 905 LD L,(IX-2) + 00004AEC DD 66 FF 906 LD H,(IX-1) + 00004AEF 23 907 INC HL + 00004AF0 23 908 INC HL + 00004AF1 23 909 INC HL + 00004AF2 7E 910 LD A,(HL) + 00004AF3 FE 20 911 CP 32 + 00004AF5 20 08 912 JR NZ,?0473 + 00004AF7 913 ?0077: + 00004AF7 DD 34 FC 914 INC (IX-4) + 00004AFA 20 03 915 JR NZ,?0473 + 00004AFC DD 34 FD 916 INC (IX-3) + 00004AFF 917 ?0473: + 00004AFF 918 ?0078: + 00004AFF 21 00 00 919 LD HL,0 + 00004B02 39 920 ADD HL,SP + 00004B03 E5 921 PUSH HL + 00004B04 0E 20 922 LD C,32 + 00004B06 C5 923 PUSH BC + 00004B07 0E 2C 924 LD C,44 + 00004B09 DD 5E FE 925 LD E,(IX-2) + 00004B0C DD 56 FF 926 LD D,(IX-1) + 00004B0F CD E4 4B 927 CALL LWRD ?0659 + 00004B12 F1 928 POP AF + 00004B13 F1 929 POP AF + 00004B14 FD 75 01 930 LD (IY+1),L + 00004B17 FD 74 02 931 LD (IY+2),H + 00004B1A 21 04 00 932 LD HL,4 + 00004B1D E5 933 PUSH HL + 00004B1E 01 91 84 934 LD BC,?0081 + 00004B21 CD A7 4A 935 CALL LWRD ?0657 + 00004B24 F1 936 POP AF + 00004B25 7D 937 LD A,L + 00004B26 B4 938 OR H + 00004B27 20 0D 939 JR NZ,?0080 + 00004B29 940 ?0079: + 00004B29 6F 941 LD L,A + 00004B2A 67 942 LD H,A + 00004B2B 39 943 ADD HL,SP + 00004B2C 7E 944 LD A,(HL) + 00004B2D C6 04 945 ADD A,4 + 00004B2F 77 946 LD (HL),A + 00004B30 30 0A 947 JR NC,?0082 + 00004B32 23 948 INC HL + 00004B33 34 949 INC (HL) + 00004B34 18 06 950 JR ?0082 + 00004B36 951 ?0080: + 00004B36 21 00 00 952 LD HL,0 + 00004B39 C3 DA 4B 953 JP LWRD ?0091 + 00004B3C 954 ?0082: + 00004B3C 21 00 00 955 LD HL,0 + 00004B3F 39 956 ADD HL,SP + 00004B40 E5 957 PUSH HL + 00004B41 0E 20 958 LD C,32 + 00004B43 C5 959 PUSH BC + 00004B44 0E 2C 960 LD C,44 + 00004B46 DD 5E FE 961 LD E,(IX-2) + 00004B49 DD 56 FF 962 LD D,(IX-1) + 00004B4C CD E4 4B 963 CALL LWRD ?0659 + 00004B4F F1 964 POP AF + 00004B50 F1 965 POP AF + 00004B51 FD 75 03 966 LD (IY+3),L + 00004B54 FD 74 04 967 LD (IY+4),H + 00004B57 21 03 00 968 LD HL,3 + 00004B5A E5 969 PUSH HL + 00004B5B 01 96 84 970 LD BC,?0085 + 00004B5E CD A7 4A 971 CALL LWRD ?0657 + 00004B61 F1 972 POP AF + 00004B62 7D 973 LD A,L + 00004B63 B4 974 OR H + 00004B64 20 3C 975 JR NZ,?0084 + 00004B66 976 ?0083: + 00004B66 6F 977 LD L,A + 00004B67 67 978 LD H,A + 00004B68 39 979 ADD HL,SP + 00004B69 7E 980 LD A,(HL) + 00004B6A C6 03 981 ADD A,3 + 00004B6C 77 982 LD (HL),A + 00004B6D 30 02 983 JR NC,?0475 + 00004B6F 23 984 INC HL + 00004B70 34 985 INC (HL) + 00004B71 986 ?0475: + 00004B71 6F 987 LD L,A + 00004B72 DD 66 FD 988 LD H,(IX-3) + 00004B75 DD 4E FE 989 LD C,(IX-2) + 00004B78 DD 46 FF 990 LD B,(IX-1) + 00004B7B 09 991 ADD HL,BC + 00004B7C 7E 992 LD A,(HL) + 00004B7D FE 20 993 CP 32 + 00004B7F 20 08 994 JR NZ,?0476 + 00004B81 995 ?0086: + 00004B81 DD 34 FC 996 INC (IX-4) + 00004B84 20 03 997 JR NZ,?0476 + 00004B86 DD 34 FD 998 INC (IX-3) + 00004B89 999 ?0476: + 00004B89 1000 ?0087: + 00004B89 21 00 00 1001 LD HL,0 + 00004B8C 39 1002 ADD HL,SP + 00004B8D E5 1003 PUSH HL + 00004B8E 0E 20 1004 LD C,32 + 00004B90 C5 1005 PUSH BC + 00004B91 0E 2C 1006 LD C,44 + 00004B93 DD 5E FE 1007 LD E,(IX-2) + 00004B96 50 1008 LD D,B + 00004B97 CD E4 4B 1009 CALL LWRD ?0659 + 00004B9A F1 1010 POP AF + 00004B9B F1 1011 POP AF + 00004B9C FD 75 05 1012 LD (IY+5),L + 00004B9F FD 74 06 1013 LD (IY+6),H + 00004BA2 1014 ?0084: + 00004BA2 21 05 00 1015 LD HL,5 + 00004BA5 E5 1016 PUSH HL + 00004BA6 01 9A 84 1017 LD BC,?0090 + 00004BA9 CD A7 4A 1018 CALL LWRD ?0657 + 00004BAC F1 1019 POP AF + 00004BAD 7D 1020 LD A,L + 00004BAE B4 1021 OR H + 00004BAF 20 26 1022 JR NZ,?0089 + 00004BB1 1023 ?0088: + 00004BB1 6F 1024 LD L,A + 00004BB2 67 1025 LD H,A + 00004BB3 39 1026 ADD HL,SP + 00004BB4 7E 1027 LD A,(HL) + 00004BB5 C6 05 1028 ADD A,5 + 00004BB7 77 1029 LD (HL),A + 00004BB8 30 02 1030 JR NC,?0477 + 00004BBA 23 1031 INC HL + 00004BBB 34 1032 INC (HL) + 00004BBC 1033 ?0477: + 00004BBC 21 00 00 1034 LD HL,0 + 00004BBF 39 1035 ADD HL,SP + 00004BC0 E5 1036 PUSH HL + 00004BC1 0E 20 1037 LD C,32 + 00004BC3 C5 1038 PUSH BC + 00004BC4 0E 2C 1039 LD C,44 + 00004BC6 DD 5E FE 1040 LD E,(IX-2) + 00004BC9 DD 56 FF 1041 LD D,(IX-1) + 00004BCC CD E4 4B 1042 CALL LWRD ?0659 + 00004BCF F1 1043 POP AF + 00004BD0 F1 1044 POP AF + 00004BD1 FD 75 07 1045 LD (IY+7),L + 00004BD4 FD 74 08 1046 LD (IY+8),H + 00004BD7 1047 ?0089: + 00004BD7 FD E5 1048 PUSH IY + 00004BD9 E1 1049 POP HL + 00004BDA 1050 ?0091: + 00004BDA DD F9 1051 LD SP,IX + 00004BDC C3 C0 45 1052 JP LWRD ?0614 + 00004BDF 1053 ?0660: + 00004BDF 0E 2C 1054 LD C,44 + 00004BE1 FD E5 1055 PUSH IY + 00004BE3 D1 1056 POP DE + 00004BE4 1057 ?0659: + 00004BE4 3E 00 1058 LD A,BYTE3 dbParseList + 00004BE6 21 3E 48 1059 LD HL,LWRD dbParseList + 00004BE9 C3 19 82 1060 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004BEC 1061 dbParseInsert: + 00004BEC C5 1062 PUSH BC + 00004BED FD E5 1063 PUSH IY + 00004BEF DD E5 1064 PUSH IX + 00004BF1 F5 1065 PUSH AF + 00004BF2 D5 1066 PUSH DE + 00004BF3 FD E1 1067 POP IY + 00004BF5 11 09 00 1068 LD DE,9 + 00004BF8 CD E4 49 1069 CALL LWRD ?0641 + 00004BFB E5 1070 PUSH HL + 00004BFC DD E1 1071 POP IX + 00004BFE 36 69 1072 LD (HL),105 + 00004C00 AF 1073 XOR A + 00004C01 DD 77 05 1074 LD (IX+5),A + 00004C04 DD 77 06 1075 LD (IX+6),A + 00004C07 6F 1076 LD L,A + 00004C08 67 1077 LD H,A + 00004C09 39 1078 ADD HL,SP + 00004C0A 36 04 1079 LD (HL),4 + 00004C0C 23 1080 INC HL + 00004C0D 77 1081 LD (HL),A + 00004C0E 2B 1082 DEC HL + 00004C0F E5 1083 PUSH HL + 00004C10 0E 28 1084 LD C,40 + 00004C12 C5 1085 PUSH BC + 00004C13 CD DF 4B 1086 CALL LWRD ?0660 + 00004C16 F1 1087 POP AF + 00004C17 F1 1088 POP AF + 00004C18 DD 75 03 1089 LD (IX+3),L + 00004C1B DD 74 04 1090 LD (IX+4),H + 00004C1E 21 01 00 1091 LD HL,1 + 00004C21 E5 1092 PUSH HL + 00004C22 01 A0 84 1093 LD BC,?0094 + 00004C25 23 1094 INC HL + 00004C26 39 1095 ADD HL,SP + 00004C27 56 1096 LD D,(HL) + 00004C28 23 1097 INC HL + 00004C29 66 1098 LD H,(HL) + 00004C2A 6A 1099 LD L,D + 00004C2B FD E5 1100 PUSH IY + 00004C2D D1 1101 POP DE + 00004C2E CD B3 4A 1102 CALL LWRD ?0658 + 00004C31 F1 1103 POP AF + 00004C32 7D 1104 LD A,L + 00004C33 B4 1105 OR H + 00004C34 20 51 1106 JR NZ,?0097 + 00004C36 1107 ?0092: + 00004C36 6F 1108 LD L,A + 00004C37 67 1109 LD H,A + 00004C38 39 1110 ADD HL,SP + 00004C39 34 1111 INC (HL) + 00004C3A 23 1112 INC HL + 00004C3B 20 01 1113 JR NZ,?0481 + 00004C3D 34 1114 INC (HL) + 00004C3E 1115 ?0481: + 00004C3E 1116 ?0093: + 00004C3E 1117 ?0095: + 00004C3E 2B 1118 DEC HL + 00004C3F E5 1119 PUSH HL + 00004C40 0E 29 1120 LD C,41 + 00004C42 C5 1121 PUSH BC + 00004C43 CD DF 4B 1122 CALL LWRD ?0660 + 00004C46 F1 1123 POP AF + 00004C47 F1 1124 POP AF + 00004C48 DD 75 01 1125 LD (IX+1),L + 00004C4B DD 74 02 1126 LD (IX+2),H + 00004C4E 21 06 00 1127 LD HL,6 + 00004C51 E5 1128 PUSH HL + 00004C52 01 A2 84 1129 LD BC,?0098 + 00004C55 2E 02 1130 LD L,2 + 00004C57 39 1131 ADD HL,SP + 00004C58 56 1132 LD D,(HL) + 00004C59 23 1133 INC HL + 00004C5A 66 1134 LD H,(HL) + 00004C5B 6A 1135 LD L,D + 00004C5C FD E5 1136 PUSH IY + 00004C5E D1 1137 POP DE + 00004C5F CD B3 4A 1138 CALL LWRD ?0658 + 00004C62 F1 1139 POP AF + 00004C63 7D 1140 LD A,L + 00004C64 B4 1141 OR H + 00004C65 20 20 1142 JR NZ,?0097 + 00004C67 1143 ?0096: + 00004C67 6F 1144 LD L,A + 00004C68 67 1145 LD H,A + 00004C69 39 1146 ADD HL,SP + 00004C6A 7E 1147 LD A,(HL) + 00004C6B C6 06 1148 ADD A,6 + 00004C6D 77 1149 LD (HL),A + 00004C6E 30 02 1150 JR NC,?0482 + 00004C70 23 1151 INC HL + 00004C71 34 1152 INC (HL) + 00004C72 1153 ?0482: + 00004C72 21 00 00 1154 LD HL,0 + 00004C75 39 1155 ADD HL,SP + 00004C76 E5 1156 PUSH HL + 00004C77 0E 29 1157 LD C,41 + 00004C79 C5 1158 PUSH BC + 00004C7A CD DF 4B 1159 CALL LWRD ?0660 + 00004C7D F1 1160 POP AF + 00004C7E F1 1161 POP AF + 00004C7F DD 75 07 1162 LD (IX+7),L + 00004C82 DD 74 08 1163 LD (IX+8),H + 00004C85 18 05 1164 JR ?0099 + 00004C87 1165 ?0097: + 00004C87 21 00 00 1166 LD HL,0 + 00004C8A 18 03 1167 JR ?0100 + 00004C8C 1168 ?0099: + 00004C8C DD E5 1169 PUSH IX + 00004C8E E1 1170 POP HL + 00004C8F 1171 ?0100: + 00004C8F F1 1172 POP AF + 00004C90 C3 C0 45 1173 JP LWRD ?0614 + 00004C93 1174 dbParseUpdate: + 00004C93 C5 1175 PUSH BC + 00004C94 FD E5 1176 PUSH IY + 00004C96 DD E5 1177 PUSH IX + 00004C98 F5 1178 PUSH AF + 00004C99 D5 1179 PUSH DE + 00004C9A FD E1 1180 POP IY + 00004C9C 11 09 00 1181 LD DE,9 + 00004C9F CD E4 49 1182 CALL LWRD ?0641 + 00004CA2 E5 1183 PUSH HL + 00004CA3 DD E1 1184 POP IX + 00004CA5 36 75 1185 LD (HL),117 + 00004CA7 AF 1186 XOR A + 00004CA8 DD 77 05 1187 LD (IX+5),A + 00004CAB DD 77 06 1188 LD (IX+6),A + 00004CAE DD 77 07 1189 LD (IX+7),A + 00004CB1 DD 77 08 1190 LD (IX+8),A + 00004CB4 6F 1191 LD L,A + 00004CB5 67 1192 LD H,A + 00004CB6 39 1193 ADD HL,SP + 00004CB7 36 04 1194 LD (HL),4 + 00004CB9 23 1195 INC HL + 00004CBA 77 1196 LD (HL),A + 00004CBB 2B 1197 DEC HL + 00004CBC E5 1198 PUSH HL + 00004CBD 0E 20 1199 LD C,32 + 00004CBF C5 1200 PUSH BC + 00004CC0 CD DF 4B 1201 CALL LWRD ?0660 + 00004CC3 F1 1202 POP AF + 00004CC4 F1 1203 POP AF + 00004CC5 DD 75 03 1204 LD (IX+3),L + 00004CC8 DD 74 04 1205 LD (IX+4),H + 00004CCB 21 04 00 1206 LD HL,4 + 00004CCE E5 1207 PUSH HL + 00004CCF 01 A9 84 1208 LD BC,?0103 + 00004CD2 2B 1209 DEC HL + 00004CD3 2B 1210 DEC HL + 00004CD4 39 1211 ADD HL,SP + 00004CD5 56 1212 LD D,(HL) + 00004CD6 23 1213 INC HL + 00004CD7 66 1214 LD H,(HL) + 00004CD8 6A 1215 LD L,D + 00004CD9 FD E5 1216 PUSH IY + 00004CDB D1 1217 POP DE + 00004CDC CD B3 4A 1218 CALL LWRD ?0658 + 00004CDF F1 1219 POP AF + 00004CE0 7D 1220 LD A,L + 00004CE1 B4 1221 OR H + 00004CE2 20 0D 1222 JR NZ,?0102 + 00004CE4 1223 ?0101: + 00004CE4 6F 1224 LD L,A + 00004CE5 67 1225 LD H,A + 00004CE6 39 1226 ADD HL,SP + 00004CE7 7E 1227 LD A,(HL) + 00004CE8 C6 04 1228 ADD A,4 + 00004CEA 77 1229 LD (HL),A + 00004CEB 30 09 1230 JR NC,?0104 + 00004CED 23 1231 INC HL + 00004CEE 34 1232 INC (HL) + 00004CEF 18 05 1233 JR ?0104 + 00004CF1 1234 ?0102: + 00004CF1 21 00 00 1235 LD HL,0 + 00004CF4 18 66 1236 JR ?0109 + 00004CF6 1237 ?0104: + 00004CF6 21 00 00 1238 LD HL,0 + 00004CF9 39 1239 ADD HL,SP + 00004CFA E5 1240 PUSH HL + 00004CFB 0E 20 1241 LD C,32 + 00004CFD C5 1242 PUSH BC + 00004CFE CD DF 4B 1243 CALL LWRD ?0660 + 00004D01 F1 1244 POP AF + 00004D02 F1 1245 POP AF + 00004D03 DD 75 01 1246 LD (IX+1),L + 00004D06 DD 74 02 1247 LD (IX+2),H + 00004D09 21 03 00 1248 LD HL,3 + 00004D0C E5 1249 PUSH HL + 00004D0D 01 96 84 1250 LD BC,?0085 + 00004D10 2B 1251 DEC HL + 00004D11 39 1252 ADD HL,SP + 00004D12 56 1253 LD D,(HL) + 00004D13 23 1254 INC HL + 00004D14 66 1255 LD H,(HL) + 00004D15 6A 1256 LD L,D + 00004D16 FD E5 1257 PUSH IY + 00004D18 D1 1258 POP DE + 00004D19 CD B3 4A 1259 CALL LWRD ?0658 + 00004D1C F1 1260 POP AF + 00004D1D 7D 1261 LD A,L + 00004D1E B4 1262 OR H + 00004D1F 20 38 1263 JR NZ,?0106 + 00004D21 1264 ?0105: + 00004D21 6F 1265 LD L,A + 00004D22 67 1266 LD H,A + 00004D23 39 1267 ADD HL,SP + 00004D24 7E 1268 LD A,(HL) + 00004D25 C6 03 1269 ADD A,3 + 00004D27 77 1270 LD (HL),A + 00004D28 30 02 1271 JR NC,?0488 + 00004D2A 23 1272 INC HL + 00004D2B 34 1273 INC (HL) + 00004D2C 1274 ?0488: + 00004D2C 21 00 00 1275 LD HL,0 + 00004D2F 39 1276 ADD HL,SP + 00004D30 47 1277 LD B,A + 00004D31 23 1278 INC HL + 00004D32 66 1279 LD H,(HL) + 00004D33 68 1280 LD L,B + 00004D34 FD E5 1281 PUSH IY + 00004D36 C1 1282 POP BC + 00004D37 09 1283 ADD HL,BC + 00004D38 7E 1284 LD A,(HL) + 00004D39 FE 20 1285 CP 32 + 00004D3B 20 09 1286 JR NZ,?0489 + 00004D3D 1287 ?0107: + 00004D3D 21 00 00 1288 LD HL,0 + 00004D40 39 1289 ADD HL,SP + 00004D41 34 1290 INC (HL) + 00004D42 23 1291 INC HL + 00004D43 20 01 1292 JR NZ,?0489 + 00004D45 34 1293 INC (HL) + 00004D46 1294 ?0489: + 00004D46 1295 ?0108: + 00004D46 21 00 00 1296 LD HL,0 + 00004D49 39 1297 ADD HL,SP + 00004D4A E5 1298 PUSH HL + 00004D4B 0E 20 1299 LD C,32 + 00004D4D C5 1300 PUSH BC + 00004D4E CD DF 4B 1301 CALL LWRD ?0660 + 00004D51 F1 1302 POP AF + 00004D52 F1 1303 POP AF + 00004D53 DD 75 05 1304 LD (IX+5),L + 00004D56 DD 74 06 1305 LD (IX+6),H + 00004D59 1306 ?0106: + 00004D59 DD E5 1307 PUSH IX + 00004D5B E1 1308 POP HL + 00004D5C 1309 ?0109: + 00004D5C F1 1310 POP AF + 00004D5D C3 C0 45 1311 JP LWRD ?0614 + 00004D60 1312 dbParseDelete: + 00004D60 C5 1313 PUSH BC + 00004D61 FD E5 1314 PUSH IY + 00004D63 DD E5 1315 PUSH IX + 00004D65 F5 1316 PUSH AF + 00004D66 D5 1317 PUSH DE + 00004D67 FD E1 1318 POP IY + 00004D69 11 09 00 1319 LD DE,9 + 00004D6C CD E4 49 1320 CALL LWRD ?0641 + 00004D6F E5 1321 PUSH HL + 00004D70 DD E1 1322 POP IX + 00004D72 36 64 1323 LD (HL),100 + 00004D74 AF 1324 XOR A + 00004D75 DD 77 05 1325 LD (IX+5),A + 00004D78 DD 77 06 1326 LD (IX+6),A + 00004D7B DD 77 07 1327 LD (IX+7),A + 00004D7E DD 77 08 1328 LD (IX+8),A + 00004D81 DD 77 01 1329 LD (IX+1),A + 00004D84 DD 77 02 1330 LD (IX+2),A + 00004D87 6F 1331 LD L,A + 00004D88 67 1332 LD H,A + 00004D89 39 1333 ADD HL,SP + 00004D8A 36 04 1334 LD (HL),4 + 00004D8C 23 1335 INC HL + 00004D8D 77 1336 LD (HL),A + 00004D8E 2B 1337 DEC HL + 00004D8F E5 1338 PUSH HL + 00004D90 0E 20 1339 LD C,32 + 00004D92 C5 1340 PUSH BC + 00004D93 CD DF 4B 1341 CALL LWRD ?0660 + 00004D96 F1 1342 POP AF + 00004D97 F1 1343 POP AF + 00004D98 DD 75 03 1344 LD (IX+3),L + 00004D9B DD 74 04 1345 LD (IX+4),H + 00004D9E 21 03 00 1346 LD HL,3 + 00004DA1 E5 1347 PUSH HL + 00004DA2 01 96 84 1348 LD BC,?0085 + 00004DA5 2B 1349 DEC HL + 00004DA6 39 1350 ADD HL,SP + 00004DA7 56 1351 LD D,(HL) + 00004DA8 23 1352 INC HL + 00004DA9 66 1353 LD H,(HL) + 00004DAA 6A 1354 LD L,D + 00004DAB FD E5 1355 PUSH IY + 00004DAD D1 1356 POP DE + 00004DAE CD B3 4A 1357 CALL LWRD ?0658 + 00004DB1 F1 1358 POP AF + 00004DB2 7D 1359 LD A,L + 00004DB3 B4 1360 OR H + 00004DB4 20 38 1361 JR NZ,?0111 + 00004DB6 1362 ?0110: + 00004DB6 6F 1363 LD L,A + 00004DB7 67 1364 LD H,A + 00004DB8 39 1365 ADD HL,SP + 00004DB9 7E 1366 LD A,(HL) + 00004DBA C6 03 1367 ADD A,3 + 00004DBC 77 1368 LD (HL),A + 00004DBD 30 02 1369 JR NC,?0492 + 00004DBF 23 1370 INC HL + 00004DC0 34 1371 INC (HL) + 00004DC1 1372 ?0492: + 00004DC1 21 00 00 1373 LD HL,0 + 00004DC4 39 1374 ADD HL,SP + 00004DC5 47 1375 LD B,A + 00004DC6 23 1376 INC HL + 00004DC7 66 1377 LD H,(HL) + 00004DC8 68 1378 LD L,B + 00004DC9 FD E5 1379 PUSH IY + 00004DCB C1 1380 POP BC + 00004DCC 09 1381 ADD HL,BC + 00004DCD 7E 1382 LD A,(HL) + 00004DCE FE 20 1383 CP 32 + 00004DD0 20 09 1384 JR NZ,?0493 + 00004DD2 1385 ?0112: + 00004DD2 21 00 00 1386 LD HL,0 + 00004DD5 39 1387 ADD HL,SP + 00004DD6 34 1388 INC (HL) + 00004DD7 23 1389 INC HL + 00004DD8 20 01 1390 JR NZ,?0493 + 00004DDA 34 1391 INC (HL) + 00004DDB 1392 ?0493: + 00004DDB 1393 ?0113: + 00004DDB 21 00 00 1394 LD HL,0 + 00004DDE 39 1395 ADD HL,SP + 00004DDF E5 1396 PUSH HL + 00004DE0 0E 20 1397 LD C,32 + 00004DE2 C5 1398 PUSH BC + 00004DE3 CD DF 4B 1399 CALL LWRD ?0660 + 00004DE6 F1 1400 POP AF + 00004DE7 F1 1401 POP AF + 00004DE8 DD 75 05 1402 LD (IX+5),L + 00004DEB DD 74 06 1403 LD (IX+6),H + 00004DEE 1404 ?0111: + 00004DEE DD E5 1405 PUSH IX + 00004DF0 E1 1406 POP HL + 00004DF1 F1 1407 POP AF + 00004DF2 C3 C0 45 1408 JP LWRD ?0614 + 00004DF5 1409 dbTableOpen: + 00004DF5 C5 1410 PUSH BC + 00004DF6 FD E5 1411 PUSH IY + 00004DF8 DD E5 1412 PUSH IX + 00004DFA DD 21 00 00 1413 LD IX,0 + 00004DFE DD 39 1414 ADD IX,SP + 00004E00 F5 1415 PUSH AF + 00004E01 F5 1416 PUSH AF + 00004E02 F5 1417 PUSH AF + 00004E03 F5 1418 PUSH AF + 00004E04 D5 1419 PUSH DE + 00004E05 FD E1 1420 POP IY + 00004E07 11 40 00 1421 LD DE,64 + 00004E0A CD E4 49 1422 CALL LWRD ?0641 + 00004E0D DD 75 F8 1423 LD (IX-8),L + 00004E10 DD 74 F9 1424 LD (IX-7),H + 00004E13 01 AE 84 1425 LD BC,?0114 + 00004E16 EB 1426 EX DE,HL + 00004E17 CD A8 50 1427 CALL LWRD ?0650 + 00004E1A CD 19 82 1428 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004E1D 01 B7 84 1429 LD BC,?0115 + 00004E20 DD 5E F8 1430 LD E,(IX-8) + 00004E23 DD 56 F9 1431 LD D,(IX-7) + 00004E26 3E 00 1432 LD A,BYTE3 strcat + 00004E28 21 12 7A 1433 LD HL,LWRD strcat + 00004E2B CD 19 82 1434 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004E2E FD 36 0A 00 1435 LD (IY+10),0 + 00004E32 21 BC 84 1436 LD HL,?0116 + 00004E35 E5 1437 PUSH HL + 00004E36 21 00 00 1438 LD HL,0 + 00004E39 E5 1439 PUSH HL + 00004E3A 01 FF FF 1440 LD BC,65535 + 00004E3D DD 5E F8 1441 LD E,(IX-8) + 00004E40 DD 56 F9 1442 LD D,(IX-7) + 00004E43 3E 00 1443 LD A,BYTE3 __fopen + 00004E45 21 A3 7A 1444 LD HL,LWRD __fopen + 00004E48 CD 19 82 1445 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004E4B F1 1446 POP AF + 00004E4C F1 1447 POP AF + 00004E4D DD 75 FC 1448 LD (IX-4),L + 00004E50 DD 74 FD 1449 LD (IX-3),H + 00004E53 E5 1450 PUSH HL + 00004E54 21 01 00 1451 LD HL,1 + 00004E57 E5 1452 PUSH HL + 00004E58 01 04 00 1453 LD BC,4 + 00004E5B DD 5E F8 1454 LD E,(IX-8) + 00004E5E DD 56 F9 1455 LD D,(IX-7) + 00004E61 3E 00 1456 LD A,BYTE3 fread + 00004E63 21 DD 70 1457 LD HL,LWRD fread + 00004E66 CD 19 82 1458 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004E69 F1 1459 POP AF + 00004E6A F1 1460 POP AF + 00004E6B DD 6E F8 1461 LD L,(IX-8) + 00004E6E DD 66 F9 1462 LD H,(IX-7) + 00004E71 7E 1463 LD A,(HL) + 00004E72 FE 54 1464 CP 84 + 00004E74 C2 7F 50 1465 JP NZ,?0132 + 00004E77 23 1466 INC HL + 00004E78 7E 1467 LD A,(HL) + 00004E79 FE 42 1468 CP 66 + 00004E7B C2 7F 50 1469 JP NZ,?0132 + 00004E7E 23 1470 INC HL + 00004E7F 7E 1471 LD A,(HL) + 00004E80 FE 4C 1472 CP 76 + 00004E82 C2 7F 50 1473 JP NZ,?0132 + 00004E85 23 1474 INC HL + 00004E86 7E 1475 LD A,(HL) + 00004E87 FE 20 1476 CP 32 + 00004E89 C2 7F 50 1477 JP NZ,?0132 + 00004E8C 1478 ?0119: + 00004E8C 1479 ?0120: + 00004E8C 1480 ?0117: + 00004E8C 1481 ?0118: + 00004E8C DD 6E FC 1482 LD L,(IX-4) + 00004E8F DD 66 FD 1483 LD H,(IX-3) + 00004E92 E5 1484 PUSH HL + 00004E93 21 01 00 1485 LD HL,1 + 00004E96 E5 1486 PUSH HL + 00004E97 01 04 00 1487 LD BC,4 + 00004E9A DD 5E F8 1488 LD E,(IX-8) + 00004E9D DD 56 F9 1489 LD D,(IX-7) + 00004EA0 3E 00 1490 LD A,BYTE3 fread + 00004EA2 21 DD 70 1491 LD HL,LWRD fread + 00004EA5 CD 19 82 1492 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004EA8 F1 1493 POP AF + 00004EA9 F1 1494 POP AF + 00004EAA DD 6E F8 1495 LD L,(IX-8) + 00004EAD DD 66 F9 1496 LD H,(IX-7) + 00004EB0 4E 1497 LD C,(HL) + 00004EB1 DD 71 FE 1498 LD (IX-2),C + 00004EB4 06 00 1499 LD B,0 + 00004EB6 DD 70 FF 1500 LD (IX-1),B + 00004EB9 FD E5 1501 PUSH IY + 00004EBB E1 1502 POP HL + 00004EBC 71 1503 LD (HL),C + 00004EBD 23 1504 INC HL + 00004EBE 70 1505 LD (HL),B + 00004EBF 69 1506 LD L,C + 00004EC0 60 1507 LD H,B + 00004EC1 29 1508 ADD HL,HL + 00004EC2 29 1509 ADD HL,HL + 00004EC3 4D 1510 LD C,L + 00004EC4 44 1511 LD B,H + 00004EC5 29 1512 ADD HL,HL + 00004EC6 09 1513 ADD HL,BC + 00004EC7 CD E3 49 1514 CALL LWRD ?0642 + 00004ECA FD 75 02 1515 LD (IY+2),L + 00004ECD FD 74 03 1516 LD (IY+3),H + 00004ED0 AF 1517 XOR A + 00004ED1 DD 77 FA 1518 LD (IX-6),A + 00004ED4 DD 77 FB 1519 LD (IX-5),A + 00004ED7 1520 ?0123: + 00004ED7 DD 4E FE 1521 LD C,(IX-2) + 00004EDA DD 46 FF 1522 LD B,(IX-1) + 00004EDD DD 6E FA 1523 LD L,(IX-6) + 00004EE0 DD 66 FB 1524 LD H,(IX-5) + 00004EE3 F6 80 1525 OR 128 + 00004EE5 ED 42 1526 SBC HL,BC + 00004EE7 E2 EB 4E 1527 JP PO,?0494 + 00004EEA AC 1528 XOR H + 00004EEB 1529 ?0494: + 00004EEB F2 94 4F 1530 JP P,?0122 + 00004EEE 1531 ?0124: + 00004EEE DD 6E FC 1532 LD L,(IX-4) + 00004EF1 DD 66 FD 1533 LD H,(IX-3) + 00004EF4 E5 1534 PUSH HL + 00004EF5 21 01 00 1535 LD HL,1 + 00004EF8 E5 1536 PUSH HL + 00004EF9 01 08 00 1537 LD BC,8 + 00004EFC FD 6E 02 1538 LD L,(IY+2) + 00004EFF FD 66 03 1539 LD H,(IY+3) + 00004F02 E5 1540 PUSH HL + 00004F03 DD 6E FA 1541 LD L,(IX-6) + 00004F06 DD 66 FB 1542 LD H,(IX-5) + 00004F09 29 1543 ADD HL,HL + 00004F0A 29 1544 ADD HL,HL + 00004F0B 5D 1545 LD E,L + 00004F0C 54 1546 LD D,H + 00004F0D 29 1547 ADD HL,HL + 00004F0E 19 1548 ADD HL,DE + 00004F0F EB 1549 EX DE,HL + 00004F10 E1 1550 POP HL + 00004F11 19 1551 ADD HL,DE + 00004F12 EB 1552 EX DE,HL + 00004F13 3E 00 1553 LD A,BYTE3 fread + 00004F15 21 DD 70 1554 LD HL,LWRD fread + 00004F18 CD 19 82 1555 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004F1B F1 1556 POP AF + 00004F1C F1 1557 POP AF + 00004F1D FD 6E 02 1558 LD L,(IY+2) + 00004F20 FD 66 03 1559 LD H,(IY+3) + 00004F23 E5 1560 PUSH HL + 00004F24 DD 6E FA 1561 LD L,(IX-6) + 00004F27 DD 66 FB 1562 LD H,(IX-5) + 00004F2A 29 1563 ADD HL,HL + 00004F2B 29 1564 ADD HL,HL + 00004F2C 4D 1565 LD C,L + 00004F2D 44 1566 LD B,H + 00004F2E 29 1567 ADD HL,HL + 00004F2F 09 1568 ADD HL,BC + 00004F30 4D 1569 LD C,L + 00004F31 44 1570 LD B,H + 00004F32 E1 1571 POP HL + 00004F33 09 1572 ADD HL,BC + 00004F34 01 08 00 1573 LD BC,8 + 00004F37 09 1574 ADD HL,BC + 00004F38 70 1575 LD (HL),B + 00004F39 DD 6E FC 1576 LD L,(IX-4) + 00004F3C DD 66 FD 1577 LD H,(IX-3) + 00004F3F E5 1578 PUSH HL + 00004F40 21 01 00 1579 LD HL,1 + 00004F43 E5 1580 PUSH HL + 00004F44 0E 03 1581 LD C,3 + 00004F46 FD 6E 02 1582 LD L,(IY+2) + 00004F49 FD 66 03 1583 LD H,(IY+3) + 00004F4C E5 1584 PUSH HL + 00004F4D DD 6E FA 1585 LD L,(IX-6) + 00004F50 DD 66 FB 1586 LD H,(IX-5) + 00004F53 29 1587 ADD HL,HL + 00004F54 29 1588 ADD HL,HL + 00004F55 5D 1589 LD E,L + 00004F56 54 1590 LD D,H + 00004F57 29 1591 ADD HL,HL + 00004F58 19 1592 ADD HL,DE + 00004F59 EB 1593 EX DE,HL + 00004F5A E1 1594 POP HL + 00004F5B 19 1595 ADD HL,DE + 00004F5C 11 09 00 1596 LD DE,9 + 00004F5F 19 1597 ADD HL,DE + 00004F60 EB 1598 EX DE,HL + 00004F61 3E 00 1599 LD A,BYTE3 fread + 00004F63 21 DD 70 1600 LD HL,LWRD fread + 00004F66 CD 19 82 1601 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004F69 F1 1602 POP AF + 00004F6A F1 1603 POP AF + 00004F6B DD 6E FC 1604 LD L,(IX-4) + 00004F6E DD 66 FD 1605 LD H,(IX-3) + 00004F71 E5 1606 PUSH HL + 00004F72 21 01 00 1607 LD HL,1 + 00004F75 E5 1608 PUSH HL + 00004F76 4D 1609 LD C,L + 00004F77 44 1610 LD B,H + 00004F78 DD 5E F8 1611 LD E,(IX-8) + 00004F7B DD 56 F9 1612 LD D,(IX-7) + 00004F7E 3E 00 1613 LD A,BYTE3 fread + 00004F80 21 DD 70 1614 LD HL,LWRD fread + 00004F83 CD 19 82 1615 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004F86 F1 1616 POP AF + 00004F87 F1 1617 POP AF + 00004F88 DD 34 FA 1618 INC (IX-6) + 00004F8B C2 D7 4E 1619 JP NZ,?0123 + 00004F8E DD 34 FB 1620 INC (IX-5) + 00004F91 C3 D7 4E 1621 JP LWRD ?0123 + 00004F94 1622 ?0122: + 00004F94 01 AE 84 1623 LD BC,?0114 + 00004F97 DD 5E F8 1624 LD E,(IX-8) + 00004F9A DD 56 F9 1625 LD D,(IX-7) + 00004F9D CD A8 50 1626 CALL LWRD ?0650 + 00004FA0 CD 19 82 1627 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004FA3 01 BF 84 1628 LD BC,?0126 + 00004FA6 DD 5E F8 1629 LD E,(IX-8) + 00004FA9 DD 56 F9 1630 LD D,(IX-7) + 00004FAC 3E 00 1631 LD A,BYTE3 strcat + 00004FAE 21 12 7A 1632 LD HL,LWRD strcat + 00004FB1 CD 19 82 1633 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004FB4 21 C4 84 1634 LD HL,?0127 + 00004FB7 E5 1635 PUSH HL + 00004FB8 21 00 00 1636 LD HL,0 + 00004FBB E5 1637 PUSH HL + 00004FBC 01 FF FF 1638 LD BC,65535 + 00004FBF DD 5E F8 1639 LD E,(IX-8) + 00004FC2 DD 56 F9 1640 LD D,(IX-7) + 00004FC5 3E 00 1641 LD A,BYTE3 __fopen + 00004FC7 21 A3 7A 1642 LD HL,LWRD __fopen + 00004FCA CD 19 82 1643 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004FCD F1 1644 POP AF + 00004FCE F1 1645 POP AF + 00004FCF FD 75 08 1646 LD (IY+8),L + 00004FD2 FD 74 09 1647 LD (IY+9),H + 00004FD5 FD 36 0A 01 1648 LD (IY+10),1 + 00004FD9 FD 6E 08 1649 LD L,(IY+8) + 00004FDC FD 66 09 1650 LD H,(IY+9) + 00004FDF E5 1651 PUSH HL + 00004FE0 21 01 00 1652 LD HL,1 + 00004FE3 E5 1653 PUSH HL + 00004FE4 01 04 00 1654 LD BC,4 + 00004FE7 DD 5E F8 1655 LD E,(IX-8) + 00004FEA DD 56 F9 1656 LD D,(IX-7) + 00004FED 3E 00 1657 LD A,BYTE3 fread + 00004FEF 21 DD 70 1658 LD HL,LWRD fread + 00004FF2 CD 19 82 1659 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004FF5 F1 1660 POP AF + 00004FF6 F1 1661 POP AF + 00004FF7 DD 6E F8 1662 LD L,(IX-8) + 00004FFA DD 66 F9 1663 LD H,(IX-7) + 00004FFD 7E 1664 LD A,(HL) + 00004FFE FE 44 1665 CP 68 + 00005000 20 12 1666 JR NZ,?0130 + 00005002 23 1667 INC HL + 00005003 7E 1668 LD A,(HL) + 00005004 FE 41 1669 CP 65 + 00005006 20 0C 1670 JR NZ,?0130 + 00005008 23 1671 INC HL + 00005009 7E 1672 LD A,(HL) + 0000500A FE 54 1673 CP 84 + 0000500C 20 06 1674 JR NZ,?0130 + 0000500E 23 1675 INC HL + 0000500F 7E 1676 LD A,(HL) + 00005010 FE 20 1677 CP 32 + 00005012 28 0F 1678 JR Z,?0129 + 00005014 1679 ?0130: + 00005014 1680 ?0131: + 00005014 1681 ?0128: + 00005014 FD 36 0A 00 1682 LD (IY+10),0 + 00005018 FD 5E 08 1683 LD E,(IY+8) + 0000501B FD 56 09 1684 LD D,(IY+9) + 0000501E CD A0 50 1685 CALL LWRD ?0645 + 00005021 18 5C 1686 JR ?0132 + 00005023 1687 ?0129: + 00005023 FD 6E 08 1688 LD L,(IY+8) + 00005026 FD 66 09 1689 LD H,(IY+9) + 00005029 E5 1690 PUSH HL + 0000502A 21 01 00 1691 LD HL,1 + 0000502D E5 1692 PUSH HL + 0000502E 01 02 00 1693 LD BC,2 + 00005031 2E 04 1694 LD L,4 + 00005033 FD E5 1695 PUSH IY + 00005035 D1 1696 POP DE + 00005036 19 1697 ADD HL,DE + 00005037 EB 1698 EX DE,HL + 00005038 3E 00 1699 LD A,BYTE3 fread + 0000503A 21 DD 70 1700 LD HL,LWRD fread + 0000503D CD 19 82 1701 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005040 F1 1702 POP AF + 00005041 F1 1703 POP AF + 00005042 FD 6E 08 1704 LD L,(IY+8) + 00005045 FD 66 09 1705 LD H,(IY+9) + 00005048 E5 1706 PUSH HL + 00005049 21 01 00 1707 LD HL,1 + 0000504C E5 1708 PUSH HL + 0000504D 01 02 00 1709 LD BC,2 + 00005050 2E 06 1710 LD L,6 + 00005052 FD E5 1711 PUSH IY + 00005054 D1 1712 POP DE + 00005055 19 1713 ADD HL,DE + 00005056 EB 1714 EX DE,HL + 00005057 3E 00 1715 LD A,BYTE3 fread + 00005059 21 DD 70 1716 LD HL,LWRD fread + 0000505C CD 19 82 1717 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000505F F1 1718 POP AF + 00005060 F1 1719 POP AF + 00005061 FD 6E 08 1720 LD L,(IY+8) + 00005064 FD 66 09 1721 LD H,(IY+9) + 00005067 E5 1722 PUSH HL + 00005068 21 01 00 1723 LD HL,1 + 0000506B E5 1724 PUSH HL + 0000506C 01 02 00 1725 LD BC,2 + 0000506F DD 5E F8 1726 LD E,(IX-8) + 00005072 DD 56 F9 1727 LD D,(IX-7) + 00005075 3E 00 1728 LD A,BYTE3 fread + 00005077 21 DD 70 1729 LD HL,LWRD fread + 0000507A CD 19 82 1730 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000507D F1 1731 POP AF + 0000507E F1 1732 POP AF + 0000507F 1733 ?0132: + 0000507F 1734 ?0121: + 0000507F DD 5E FC 1735 LD E,(IX-4) + 00005082 DD 56 FD 1736 LD D,(IX-3) + 00005085 CD A0 50 1737 CALL LWRD ?0645 + 00005088 DD 5E F8 1738 LD E,(IX-8) + 0000508B DD 56 F9 1739 LD D,(IX-7) + 0000508E CD 90 45 1740 CALL LWRD ?0639 + 00005091 DD F9 1741 LD SP,IX + 00005093 C3 C0 45 1742 JP LWRD ?0614 + 00005096 1743 ?0646: + 00005096 D5 1744 PUSH DE + 00005097 DD E1 1745 POP IX + 00005099 21 08 00 1746 LD HL,8 + 0000509C 19 1747 ADD HL,DE + 0000509D 5E 1748 LD E,(HL) + 0000509E 23 1749 INC HL + 0000509F 56 1750 LD D,(HL) + 000050A0 1751 ?0645: + 000050A0 3E 01 1752 LD A,BYTE3 fclose + 000050A2 21 FD 4C 1753 LD HL,LWRD fclose + 000050A5 C3 19 82 1754 JP LWRD ?BANK_CALL_DIRECT_L08 + 000050A8 1755 ?0650: + 000050A8 3E 00 1756 LD A,BYTE3 strcpy + 000050AA 21 1C 7F 1757 LD HL,LWRD strcpy + 000050AD CD 19 82 1758 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000050B0 21 0B 00 1759 LD HL,11 + 000050B3 FD E5 1760 PUSH IY + 000050B5 C1 1761 POP BC + 000050B6 09 1762 ADD HL,BC + 000050B7 4D 1763 LD C,L + 000050B8 44 1764 LD B,H + 000050B9 DD 5E F8 1765 LD E,(IX-8) + 000050BC DD 56 F9 1766 LD D,(IX-7) + 000050BF 3E 00 1767 LD A,BYTE3 strcat + 000050C1 21 12 7A 1768 LD HL,LWRD strcat + 000050C4 C9 1769 RET + 000050C5 1770 dbTableClose: + 000050C5 DD E5 1771 PUSH IX + 000050C7 CD 96 50 1772 CALL LWRD ?0646 + 000050CA DD 5E 02 1773 LD E,(IX+2) + 000050CD DD 56 03 1774 LD D,(IX+3) + 000050D0 3E 00 1775 LD A,BYTE3 free + 000050D2 21 3C 7E 1776 LD HL,LWRD free + 000050D5 1777 ?0634: + 000050D5 CD 19 82 1778 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000050D8 1779 ?0636: + 000050D8 DD E5 1780 PUSH IX + 000050DA D1 1781 POP DE + 000050DB CD 90 45 1782 CALL LWRD ?0639 + 000050DE DD E1 1783 POP IX + 000050E0 C3 A9 81 1784 JP LWRD ?BANK_FAST_LEAVE_L08 + 000050E3 1785 dbStatementClose: + 000050E3 DD E5 1786 PUSH IX + 000050E5 D5 1787 PUSH DE + 000050E6 DD E1 1788 POP IX + 000050E8 13 1789 INC DE + 000050E9 EB 1790 EX DE,HL + 000050EA 5E 1791 LD E,(HL) + 000050EB 23 1792 INC HL + 000050EC 56 1793 LD D,(HL) + 000050ED 3E 00 1794 LD A,BYTE3 dbDeleteList + 000050EF 21 55 45 1795 LD HL,LWRD dbDeleteList + 000050F2 CD 19 82 1796 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000050F5 DD 5E 03 1797 LD E,(IX+3) + 000050F8 DD 56 04 1798 LD D,(IX+4) + 000050FB 3E 00 1799 LD A,BYTE3 dbDeleteList + 000050FD 21 55 45 1800 LD HL,LWRD dbDeleteList + 00005100 CD 19 82 1801 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005103 DD 5E 05 1802 LD E,(IX+5) + 00005106 DD 56 06 1803 LD D,(IX+6) + 00005109 3E 00 1804 LD A,BYTE3 dbDeleteList + 0000510B 21 55 45 1805 LD HL,LWRD dbDeleteList + 0000510E CD 19 82 1806 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005111 DD 5E 07 1807 LD E,(IX+7) + 00005114 DD 56 08 1808 LD D,(IX+8) + 00005117 3E 00 1809 LD A,BYTE3 dbDeleteList + 00005119 21 55 45 1810 LD HL,LWRD dbDeleteList + 0000511C C3 D5 50 1811 JP LWRD ?0634 + 0000511F 1812 dbResultSetClose: + 0000511F DD E5 1813 PUSH IX + 00005121 CD 96 50 1814 CALL LWRD ?0646 + 00005124 DD 5E 02 1815 LD E,(IX+2) + 00005127 DD 56 03 1816 LD D,(IX+3) + 0000512A 3E 00 1817 LD A,BYTE3 free + 0000512C 21 3C 7E 1818 LD HL,LWRD free + 0000512F C3 D5 50 1819 JP LWRD ?0634 + 00005132 1820 dbFieldOffset: + 00005132 FD E5 1821 PUSH IY + 00005134 DD E5 1822 PUSH IX + 00005136 C5 1823 PUSH BC + 00005137 D5 1824 PUSH DE + 00005138 DD 21 00 00 1825 LD IX,0 + 0000513C FD 21 00 00 1826 LD IY,0 + 00005140 1827 ?0134: + 00005140 21 02 00 1828 LD HL,2 + 00005143 39 1829 ADD HL,SP + 00005144 4E 1830 LD C,(HL) + 00005145 23 1831 INC HL + 00005146 46 1832 LD B,(HL) + 00005147 FD E5 1833 PUSH IY + 00005149 E1 1834 POP HL + 0000514A F6 80 1835 OR 128 + 0000514C ED 42 1836 SBC HL,BC + 0000514E E2 52 51 1837 JP PO,?0498 + 00005151 AC 1838 XOR H + 00005152 1839 ?0498: + 00005152 F2 7C 51 1840 JP P,?0133 + 00005155 1841 ?0135: + 00005155 21 00 00 1842 LD HL,0 + 00005158 39 1843 ADD HL,SP + 00005159 46 1844 LD B,(HL) + 0000515A 23 1845 INC HL + 0000515B 66 1846 LD H,(HL) + 0000515C 68 1847 LD L,B + 0000515D 23 1848 INC HL + 0000515E 23 1849 INC HL + 0000515F 46 1850 LD B,(HL) + 00005160 23 1851 INC HL + 00005161 66 1852 LD H,(HL) + 00005162 68 1853 LD L,B + 00005163 E5 1854 PUSH HL + 00005164 FD E5 1855 PUSH IY + 00005166 E1 1856 POP HL + 00005167 29 1857 ADD HL,HL + 00005168 29 1858 ADD HL,HL + 00005169 4D 1859 LD C,L + 0000516A 44 1860 LD B,H + 0000516B 29 1861 ADD HL,HL + 0000516C 09 1862 ADD HL,BC + 0000516D 4D 1863 LD C,L + 0000516E 44 1864 LD B,H + 0000516F E1 1865 POP HL + 00005170 09 1866 ADD HL,BC + 00005171 01 0A 00 1867 LD BC,10 + 00005174 09 1868 ADD HL,BC + 00005175 4E 1869 LD C,(HL) + 00005176 DD 09 1870 ADD IX,BC + 00005178 FD 23 1871 INC IY + 0000517A 18 C4 1872 JR ?0134 + 0000517C 1873 ?0133: + 0000517C DD 23 1874 INC IX + 0000517E DD 23 1875 INC IX + 00005180 DD E5 1876 PUSH IX + 00005182 E1 1877 POP HL + 00005183 F1 1878 POP AF + 00005184 C3 36 48 1879 JP LWRD ?0626 + 00005187 1880 dbRecordSize: + 00005187 C5 1881 PUSH BC + 00005188 DD E5 1882 PUSH IX + 0000518A D5 1883 PUSH DE + 0000518B DD E1 1884 POP IX + 0000518D 1A 1885 LD A,(DE) + 0000518E 4F 1886 LD C,A + 0000518F 13 1887 INC DE + 00005190 1A 1888 LD A,(DE) + 00005191 47 1889 LD B,A + 00005192 DD E5 1890 PUSH IX + 00005194 D1 1891 POP DE + 00005195 3E 00 1892 LD A,BYTE3 dbFieldOffset + 00005197 21 32 51 1893 LD HL,LWRD dbFieldOffset + 0000519A CD 19 82 1894 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000519D DD E1 1895 POP IX + 0000519F C1 1896 POP BC + 000051A0 C3 A9 81 1897 JP LWRD ?BANK_FAST_LEAVE_L08 + 000051A3 1898 dbFieldSearch: + 000051A3 FD E5 1899 PUSH IY + 000051A5 DD E5 1900 PUSH IX + 000051A7 C5 1901 PUSH BC + 000051A8 D5 1902 PUSH DE + 000051A9 FD E1 1903 POP IY + 000051AB DD 21 00 00 1904 LD IX,0 + 000051AF 1905 ?0138: + 000051AF FD 4E 00 1906 LD C,(IY+0) + 000051B2 FD 46 01 1907 LD B,(IY+1) + 000051B5 DD E5 1908 PUSH IX + 000051B7 E1 1909 POP HL + 000051B8 F6 80 1910 OR 128 + 000051BA ED 42 1911 SBC HL,BC + 000051BC E2 C0 51 1912 JP PO,?0500 + 000051BF AC 1913 XOR H + 000051C0 1914 ?0500: + 000051C0 F2 F3 51 1915 JP P,?0137 + 000051C3 1916 ?0139: + 000051C3 21 00 00 1917 LD HL,0 + 000051C6 39 1918 ADD HL,SP + 000051C7 4E 1919 LD C,(HL) + 000051C8 23 1920 INC HL + 000051C9 46 1921 LD B,(HL) + 000051CA FD 6E 02 1922 LD L,(IY+2) + 000051CD FD 66 03 1923 LD H,(IY+3) + 000051D0 E5 1924 PUSH HL + 000051D1 DD E5 1925 PUSH IX + 000051D3 E1 1926 POP HL + 000051D4 29 1927 ADD HL,HL + 000051D5 29 1928 ADD HL,HL + 000051D6 5D 1929 LD E,L + 000051D7 54 1930 LD D,H + 000051D8 29 1931 ADD HL,HL + 000051D9 19 1932 ADD HL,DE + 000051DA EB 1933 EX DE,HL + 000051DB E1 1934 POP HL + 000051DC 19 1935 ADD HL,DE + 000051DD EB 1936 EX DE,HL + 000051DE 3E 00 1937 LD A,BYTE3 strcmp + 000051E0 21 93 7D 1938 LD HL,LWRD strcmp + 000051E3 CD 19 82 1939 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000051E6 7D 1940 LD A,L + 000051E7 B4 1941 OR H + 000051E8 20 05 1942 JR NZ,?0142 + 000051EA 1943 ?0141: + 000051EA DD E5 1944 PUSH IX + 000051EC E1 1945 POP HL + 000051ED 18 07 1946 JR ?0143 + 000051EF 1947 ?0142: + 000051EF DD 23 1948 INC IX + 000051F1 18 BC 1949 JR ?0138 + 000051F3 1950 ?0137: + 000051F3 21 FF FF 1951 LD HL,65535 + 000051F6 1952 ?0143: + 000051F6 C3 36 48 1953 JP LWRD ?0626 + 000051F9 1954 dbExecuteQuery: + 000051F9 C5 1955 PUSH BC + 000051FA FD E5 1956 PUSH IY + 000051FC DD E5 1957 PUSH IX + 000051FE DD 21 00 00 1958 LD IX,0 + 00005202 DD 39 1959 ADD IX,SP + 00005204 D5 1960 PUSH DE + 00005205 21 DE FF 1961 LD HL,65502 + 00005208 39 1962 ADD HL,SP + 00005209 F9 1963 LD SP,HL + 0000520A 11 0A 00 1964 LD DE,10 + 0000520D CD E4 49 1965 CALL LWRD ?0641 + 00005210 E5 1966 PUSH HL + 00005211 FD E1 1967 POP IY + 00005213 11 14 00 1968 LD DE,20 + 00005216 CD E4 49 1969 CALL LWRD ?0641 + 00005219 DD 75 DE 1970 LD (IX-34),L + 0000521C DD 74 DF 1971 LD (IX-33),H + 0000521F AF 1972 XOR A + 00005220 DD 77 F8 1973 LD (IX-8),A + 00005223 DD 77 F9 1974 LD (IX-7),A + 00005226 CD 84 57 1975 CALL LWRD ?0661 + 00005229 DD 75 FA 1976 LD (IX-6),L + 0000522C DD 74 FB 1977 LD (IX-5),H + 0000522F DD 6E FE 1978 LD L,(IX-2) + 00005232 DD 66 FF 1979 LD H,(IX-1) + 00005235 23 1980 INC HL + 00005236 23 1981 INC HL + 00005237 23 1982 INC HL + 00005238 46 1983 LD B,(HL) + 00005239 23 1984 INC HL + 0000523A 66 1985 LD H,(HL) + 0000523B 68 1986 LD L,B + 0000523C 01 04 00 1987 LD BC,4 + 0000523F 09 1988 ADD HL,BC + 00005240 4E 1989 LD C,(HL) + 00005241 23 1990 INC HL + 00005242 46 1991 LD B,(HL) + 00005243 21 0B 00 1992 LD HL,11 + 00005246 DD 5E DE 1993 LD E,(IX-34) + 00005249 DD 56 DF 1994 LD D,(IX-33) + 0000524C CD 00 4A 1995 CALL LWRD ?0653 + 0000524F DD 5E DE 1996 LD E,(IX-34) + 00005252 DD 56 DF 1997 LD D,(IX-33) + 00005255 3E 00 1998 LD A,BYTE3 dbTableOpen + 00005257 21 F5 4D 1999 LD HL,LWRD dbTableOpen + 0000525A CD 19 82 2000 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000525D AF 2001 XOR A + 0000525E FD 77 04 2002 LD (IY+4),A + 00005261 FD 77 05 2003 LD (IY+5),A + 00005264 FD 77 06 2004 LD (IY+6),A + 00005267 FD 77 07 2005 LD (IY+7),A + 0000526A 01 C8 84 2006 LD BC,?0146 + 0000526D DD 6E FE 2007 LD L,(IX-2) + 00005270 DD 66 FF 2008 LD H,(IX-1) + 00005273 23 2009 INC HL + 00005274 56 2010 LD D,(HL) + 00005275 23 2011 INC HL + 00005276 66 2012 LD H,(HL) + 00005277 6A 2013 LD L,D + 00005278 11 04 00 2014 LD DE,4 + 0000527B 19 2015 ADD HL,DE + 0000527C 5E 2016 LD E,(HL) + 0000527D 23 2017 INC HL + 0000527E 56 2018 LD D,(HL) + 0000527F 3E 00 2019 LD A,BYTE3 strcmp + 00005281 21 93 7D 2020 LD HL,LWRD strcmp + 00005284 CD 19 82 2021 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005287 7D 2022 LD A,L + 00005288 B4 2023 OR H + 00005289 C2 83 53 2024 JP NZ,?0145 + 0000528C 2025 ?0144: + 0000528C DD 6E DE 2026 LD L,(IX-34) + 0000528F DD 66 DF 2027 LD H,(IX-33) + 00005292 46 2028 LD B,(HL) + 00005293 23 2029 INC HL + 00005294 66 2030 LD H,(HL) + 00005295 68 2031 LD L,B + 00005296 E5 2032 PUSH HL + 00005297 FD E5 2033 PUSH IY + 00005299 E1 2034 POP HL + 0000529A C1 2035 POP BC + 0000529B CD D9 49 2036 CALL LWRD ?0643 + 0000529E CD 35 57 2037 CALL LWRD ?0640 + 000052A1 CD 19 82 2038 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000052A4 FD 75 02 2039 LD (IY+2),L + 000052A7 FD 74 03 2040 LD (IY+3),H + 000052AA AF 2041 XOR A + 000052AB DD 77 EE 2042 LD (IX-18),A + 000052AE DD 77 EF 2043 LD (IX-17),A + 000052B1 2044 ?0148: + 000052B1 FD 4E 00 2045 LD C,(IY+0) + 000052B4 FD 46 01 2046 LD B,(IY+1) + 000052B7 DD 6E EE 2047 LD L,(IX-18) + 000052BA DD 66 EF 2048 LD H,(IX-17) + 000052BD F6 80 2049 OR 128 + 000052BF ED 42 2050 SBC HL,BC + 000052C1 E2 C5 52 2051 JP PO,?0501 + 000052C4 AC 2052 XOR H + 000052C5 2053 ?0501: + 000052C5 F2 B6 54 2054 JP P,?0152 + 000052C8 2055 ?0149: + 000052C8 DD 6E DE 2056 LD L,(IX-34) + 000052CB DD 66 DF 2057 LD H,(IX-33) + 000052CE 23 2058 INC HL + 000052CF 23 2059 INC HL + 000052D0 46 2060 LD B,(HL) + 000052D1 23 2061 INC HL + 000052D2 66 2062 LD H,(HL) + 000052D3 68 2063 LD L,B + 000052D4 E5 2064 PUSH HL + 000052D5 DD 6E EE 2065 LD L,(IX-18) + 000052D8 DD 66 EF 2066 LD H,(IX-17) + 000052DB 29 2067 ADD HL,HL + 000052DC 29 2068 ADD HL,HL + 000052DD 4D 2069 LD C,L + 000052DE 44 2070 LD B,H + 000052DF 29 2071 ADD HL,HL + 000052E0 09 2072 ADD HL,BC + 000052E1 4D 2073 LD C,L + 000052E2 44 2074 LD B,H + 000052E3 E1 2075 POP HL + 000052E4 09 2076 ADD HL,BC + 000052E5 DD 75 E0 2077 LD (IX-32),L + 000052E8 DD 74 E1 2078 LD (IX-31),H + 000052EB DD 6E EE 2079 LD L,(IX-18) + 000052EE DD 66 EF 2080 LD H,(IX-17) + 000052F1 29 2081 ADD HL,HL + 000052F2 DD 4E E4 2082 LD C,(IX-28) + 000052F5 DD 46 E5 2083 LD B,(IX-27) + 000052F8 09 2084 ADD HL,BC + 000052F9 E5 2085 PUSH HL + 000052FA DD 4E EE 2086 LD C,(IX-18) + 000052FD DD 46 EF 2087 LD B,(IX-17) + 00005300 DD 5E DE 2088 LD E,(IX-34) + 00005303 DD 56 DF 2089 LD D,(IX-33) + 00005306 3E 00 2090 LD A,BYTE3 dbFieldOffset + 00005308 21 32 51 2091 LD HL,LWRD dbFieldOffset + 0000530B CD 19 82 2092 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000530E 4D 2093 LD C,L + 0000530F 44 2094 LD B,H + 00005310 E1 2095 POP HL + 00005311 71 2096 LD (HL),C + 00005312 23 2097 INC HL + 00005313 70 2098 LD (HL),B + 00005314 DD 6E EE 2099 LD L,(IX-18) + 00005317 DD 66 EF 2100 LD H,(IX-17) + 0000531A 29 2101 ADD HL,HL + 0000531B DD 4E E6 2102 LD C,(IX-26) + 0000531E DD 46 E7 2103 LD B,(IX-25) + 00005321 09 2104 ADD HL,BC + 00005322 E5 2105 PUSH HL + 00005323 21 0A 00 2106 LD HL,10 + 00005326 DD 4E E0 2107 LD C,(IX-32) + 00005329 DD 46 E1 2108 LD B,(IX-31) + 0000532C 09 2109 ADD HL,BC + 0000532D 4E 2110 LD C,(HL) + 0000532E 06 00 2111 LD B,0 + 00005330 E1 2112 POP HL + 00005331 71 2113 LD (HL),C + 00005332 23 2114 INC HL + 00005333 70 2115 LD (HL),B + 00005334 21 0C 00 2116 LD HL,12 + 00005337 E5 2117 PUSH HL + 00005338 DD 6E DE 2118 LD L,(IX-34) + 0000533B DD 66 DF 2119 LD H,(IX-33) + 0000533E 23 2120 INC HL + 0000533F 23 2121 INC HL + 00005340 46 2122 LD B,(HL) + 00005341 23 2123 INC HL + 00005342 66 2124 LD H,(HL) + 00005343 68 2125 LD L,B + 00005344 E5 2126 PUSH HL + 00005345 DD 6E EE 2127 LD L,(IX-18) + 00005348 DD 66 EF 2128 LD H,(IX-17) + 0000534B 29 2129 ADD HL,HL + 0000534C 29 2130 ADD HL,HL + 0000534D 4D 2131 LD C,L + 0000534E 44 2132 LD B,H + 0000534F 29 2133 ADD HL,HL + 00005350 09 2134 ADD HL,BC + 00005351 4D 2135 LD C,L + 00005352 44 2136 LD B,H + 00005353 E1 2137 POP HL + 00005354 09 2138 ADD HL,BC + 00005355 4D 2139 LD C,L + 00005356 44 2140 LD B,H + 00005357 FD 6E 02 2141 LD L,(IY+2) + 0000535A FD 66 03 2142 LD H,(IY+3) + 0000535D E5 2143 PUSH HL + 0000535E DD 6E EE 2144 LD L,(IX-18) + 00005361 DD 66 EF 2145 LD H,(IX-17) + 00005364 29 2146 ADD HL,HL + 00005365 29 2147 ADD HL,HL + 00005366 5D 2148 LD E,L + 00005367 54 2149 LD D,H + 00005368 29 2150 ADD HL,HL + 00005369 19 2151 ADD HL,DE + 0000536A EB 2152 EX DE,HL + 0000536B E1 2153 POP HL + 0000536C 19 2154 ADD HL,DE + 0000536D EB 2155 EX DE,HL + 0000536E 3E 00 2156 LD A,BYTE3 memcpy + 00005370 21 1E 75 2157 LD HL,LWRD memcpy + 00005373 CD 19 82 2158 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005376 F1 2159 POP AF + 00005377 DD 34 EE 2160 INC (IX-18) + 0000537A C2 B1 52 2161 JP NZ,?0148 + 0000537D DD 34 EF 2162 INC (IX-17) + 00005380 C3 B1 52 2163 JP LWRD ?0148 + 00005383 2164 ?0147: + 00005383 2165 ?0145: + 00005383 CD 64 57 2166 CALL LWRD ?0647 + 00005386 E5 2167 PUSH HL + 00005387 FD E5 2168 PUSH IY + 00005389 E1 2169 POP HL + 0000538A C1 2170 POP BC + 0000538B CD D9 49 2171 CALL LWRD ?0643 + 0000538E CD 35 57 2172 CALL LWRD ?0640 + 00005391 CD 19 82 2173 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005394 FD 75 02 2174 LD (IY+2),L + 00005397 FD 74 03 2175 LD (IY+3),H + 0000539A DD 6E FE 2176 LD L,(IX-2) + 0000539D DD 66 FF 2177 LD H,(IX-1) + 000053A0 23 2178 INC HL + 000053A1 46 2179 LD B,(HL) + 000053A2 DD 70 E2 2180 LD (IX-30),B + 000053A5 23 2181 INC HL + 000053A6 66 2182 LD H,(HL) + 000053A7 DD 74 E3 2183 LD (IX-29),H + 000053AA AF 2184 XOR A + 000053AB DD 77 EE 2185 LD (IX-18),A + 000053AE DD 77 EF 2186 LD (IX-17),A + 000053B1 2187 ?0153: + 000053B1 FD 4E 00 2188 LD C,(IY+0) + 000053B4 FD 46 01 2189 LD B,(IY+1) + 000053B7 DD 6E EE 2190 LD L,(IX-18) + 000053BA DD 66 EF 2191 LD H,(IX-17) + 000053BD F6 80 2192 OR 128 + 000053BF ED 42 2193 SBC HL,BC + 000053C1 E2 C5 53 2194 JP PO,?0503 + 000053C4 AC 2195 XOR H + 000053C5 2196 ?0503: + 000053C5 F2 B6 54 2197 JP P,?0152 + 000053C8 2198 ?0154: + 000053C8 21 04 00 2199 LD HL,4 + 000053CB DD 4E E2 2200 LD C,(IX-30) + 000053CE DD 46 E3 2201 LD B,(IX-29) + 000053D1 09 2202 ADD HL,BC + 000053D2 4E 2203 LD C,(HL) + 000053D3 23 2204 INC HL + 000053D4 46 2205 LD B,(HL) + 000053D5 DD 5E DE 2206 LD E,(IX-34) + 000053D8 DD 56 DF 2207 LD D,(IX-33) + 000053DB 3E 00 2208 LD A,BYTE3 dbFieldSearch + 000053DD 21 A3 51 2209 LD HL,LWRD dbFieldSearch + 000053E0 CD 19 82 2210 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000053E3 DD 75 FC 2211 LD (IX-4),L + 000053E6 DD 74 FD 2212 LD (IX-3),H + 000053E9 DD 4E DE 2213 LD C,(IX-34) + 000053EC DD 46 DF 2214 LD B,(IX-33) + 000053EF 03 2215 INC BC + 000053F0 03 2216 INC BC + 000053F1 0A 2217 LD A,(BC) + 000053F2 6F 2218 LD L,A + 000053F3 03 2219 INC BC + 000053F4 0A 2220 LD A,(BC) + 000053F5 67 2221 LD H,A + 000053F6 E5 2222 PUSH HL + 000053F7 DD 6E FC 2223 LD L,(IX-4) + 000053FA DD 66 FD 2224 LD H,(IX-3) + 000053FD 29 2225 ADD HL,HL + 000053FE 29 2226 ADD HL,HL + 000053FF 4D 2227 LD C,L + 00005400 44 2228 LD B,H + 00005401 29 2229 ADD HL,HL + 00005402 09 2230 ADD HL,BC + 00005403 4D 2231 LD C,L + 00005404 44 2232 LD B,H + 00005405 E1 2233 POP HL + 00005406 09 2234 ADD HL,BC + 00005407 DD 75 E0 2235 LD (IX-32),L + 0000540A DD 74 E1 2236 LD (IX-31),H + 0000540D DD 6E EE 2237 LD L,(IX-18) + 00005410 DD 66 EF 2238 LD H,(IX-17) + 00005413 29 2239 ADD HL,HL + 00005414 DD 4E E4 2240 LD C,(IX-28) + 00005417 DD 46 E5 2241 LD B,(IX-27) + 0000541A 09 2242 ADD HL,BC + 0000541B E5 2243 PUSH HL + 0000541C DD 4E FC 2244 LD C,(IX-4) + 0000541F DD 46 FD 2245 LD B,(IX-3) + 00005422 DD 5E DE 2246 LD E,(IX-34) + 00005425 DD 56 DF 2247 LD D,(IX-33) + 00005428 3E 00 2248 LD A,BYTE3 dbFieldOffset + 0000542A 21 32 51 2249 LD HL,LWRD dbFieldOffset + 0000542D CD 19 82 2250 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005430 4D 2251 LD C,L + 00005431 44 2252 LD B,H + 00005432 E1 2253 POP HL + 00005433 71 2254 LD (HL),C + 00005434 23 2255 INC HL + 00005435 70 2256 LD (HL),B + 00005436 DD 6E EE 2257 LD L,(IX-18) + 00005439 DD 66 EF 2258 LD H,(IX-17) + 0000543C 29 2259 ADD HL,HL + 0000543D DD 4E E6 2260 LD C,(IX-26) + 00005440 DD 46 E7 2261 LD B,(IX-25) + 00005443 09 2262 ADD HL,BC + 00005444 E5 2263 PUSH HL + 00005445 21 0A 00 2264 LD HL,10 + 00005448 DD 4E E0 2265 LD C,(IX-32) + 0000544B DD 46 E1 2266 LD B,(IX-31) + 0000544E 09 2267 ADD HL,BC + 0000544F 4E 2268 LD C,(HL) + 00005450 06 00 2269 LD B,0 + 00005452 E1 2270 POP HL + 00005453 71 2271 LD (HL),C + 00005454 23 2272 INC HL + 00005455 70 2273 LD (HL),B + 00005456 21 0C 00 2274 LD HL,12 + 00005459 E5 2275 PUSH HL + 0000545A DD 6E DE 2276 LD L,(IX-34) + 0000545D DD 66 DF 2277 LD H,(IX-33) + 00005460 23 2278 INC HL + 00005461 23 2279 INC HL + 00005462 46 2280 LD B,(HL) + 00005463 23 2281 INC HL + 00005464 66 2282 LD H,(HL) + 00005465 68 2283 LD L,B + 00005466 E5 2284 PUSH HL + 00005467 DD 6E FC 2285 LD L,(IX-4) + 0000546A DD 66 FD 2286 LD H,(IX-3) + 0000546D 29 2287 ADD HL,HL + 0000546E 29 2288 ADD HL,HL + 0000546F 4D 2289 LD C,L + 00005470 44 2290 LD B,H + 00005471 29 2291 ADD HL,HL + 00005472 09 2292 ADD HL,BC + 00005473 4D 2293 LD C,L + 00005474 44 2294 LD B,H + 00005475 E1 2295 POP HL + 00005476 09 2296 ADD HL,BC + 00005477 4D 2297 LD C,L + 00005478 44 2298 LD B,H + 00005479 FD 6E 02 2299 LD L,(IY+2) + 0000547C FD 66 03 2300 LD H,(IY+3) + 0000547F E5 2301 PUSH HL + 00005480 DD 6E EE 2302 LD L,(IX-18) + 00005483 DD 66 EF 2303 LD H,(IX-17) + 00005486 29 2304 ADD HL,HL + 00005487 29 2305 ADD HL,HL + 00005488 5D 2306 LD E,L + 00005489 54 2307 LD D,H + 0000548A 29 2308 ADD HL,HL + 0000548B 19 2309 ADD HL,DE + 0000548C EB 2310 EX DE,HL + 0000548D E1 2311 POP HL + 0000548E 19 2312 ADD HL,DE + 0000548F EB 2313 EX DE,HL + 00005490 3E 00 2314 LD A,BYTE3 memcpy + 00005492 21 1E 75 2315 LD HL,LWRD memcpy + 00005495 CD 19 82 2316 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005498 F1 2317 POP AF + 00005499 DD 6E E2 2318 LD L,(IX-30) + 0000549C DD 66 E3 2319 LD H,(IX-29) + 0000549F 23 2320 INC HL + 000054A0 23 2321 INC HL + 000054A1 46 2322 LD B,(HL) + 000054A2 DD 70 E2 2323 LD (IX-30),B + 000054A5 23 2324 INC HL + 000054A6 66 2325 LD H,(HL) + 000054A7 DD 74 E3 2326 LD (IX-29),H + 000054AA DD 34 EE 2327 INC (IX-18) + 000054AD C2 B1 53 2328 JP NZ,?0153 + 000054B0 DD 34 EF 2329 INC (IX-17) + 000054B3 C3 B1 53 2330 JP LWRD ?0153 + 000054B6 2331 ?0152: + 000054B6 2332 ?0151: + 000054B6 DD 5E DE 2333 LD E,(IX-34) + 000054B9 DD 56 DF 2334 LD D,(IX-33) + 000054BC 3E 00 2335 LD A,BYTE3 dbRecordSize + 000054BE 21 87 51 2336 LD HL,LWRD dbRecordSize + 000054C1 CD 19 82 2337 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054C4 DD 75 F4 2338 LD (IX-12),L + 000054C7 DD 74 F5 2339 LD (IX-11),H + 000054CA CD E3 49 2340 CALL LWRD ?0642 + 000054CD DD 75 E8 2341 LD (IX-24),L + 000054D0 DD 74 E9 2342 LD (IX-23),H + 000054D3 FD E5 2343 PUSH IY + 000054D5 D1 2344 POP DE + 000054D6 3E 00 2345 LD A,BYTE3 dbRecordSize + 000054D8 21 87 51 2346 LD HL,LWRD dbRecordSize + 000054DB CD 19 82 2347 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054DE DD 75 F2 2348 LD (IX-14),L + 000054E1 DD 74 F3 2349 LD (IX-13),H + 000054E4 CD E3 49 2350 CALL LWRD ?0642 + 000054E7 DD 75 EA 2351 LD (IX-22),L + 000054EA DD 74 EB 2352 LD (IX-21),H + 000054ED DD 6E DE 2353 LD L,(IX-34) + 000054F0 DD 66 DF 2354 LD H,(IX-33) + 000054F3 E5 2355 PUSH HL + 000054F4 DD 6E FA 2356 LD L,(IX-6) + 000054F7 DD 66 FB 2357 LD H,(IX-5) + 000054FA C1 2358 POP BC + 000054FB 71 2359 LD (HL),C + 000054FC 23 2360 INC HL + 000054FD 70 2361 LD (HL),B + 000054FE DD 6E FA 2362 LD L,(IX-6) + 00005501 DD 66 FB 2363 LD H,(IX-5) + 00005504 23 2364 INC HL + 00005505 23 2365 INC HL + 00005506 AF 2366 XOR A + 00005507 77 2367 LD (HL),A + 00005508 23 2368 INC HL + 00005509 77 2369 LD (HL),A + 0000550A 21 04 00 2370 LD HL,4 + 0000550D DD 4E FA 2371 LD C,(IX-6) + 00005510 DD 46 FB 2372 LD B,(IX-5) + 00005513 09 2373 ADD HL,BC + 00005514 DD 4E E8 2374 LD C,(IX-24) + 00005517 71 2375 LD (HL),C + 00005518 DD 46 E9 2376 LD B,(IX-23) + 0000551B 23 2377 INC HL + 0000551C 70 2378 LD (HL),B + 0000551D 21 D3 84 2379 LD HL,?0157 + 00005520 E5 2380 PUSH HL + 00005521 6F 2381 LD L,A + 00005522 67 2382 LD H,A + 00005523 E5 2383 PUSH HL + 00005524 01 FF FF 2384 LD BC,65535 + 00005527 11 CC 84 2385 LD DE,?0156 + 0000552A 3E 00 2386 LD A,BYTE3 __fopen + 0000552C 21 A3 7A 2387 LD HL,LWRD __fopen + 0000552F CD 19 82 2388 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005532 F1 2389 POP AF + 00005533 F1 2390 POP AF + 00005534 FD 75 08 2391 LD (IY+8),L + 00005537 FD 74 09 2392 LD (IY+9),H + 0000553A 21 05 00 2393 LD HL,5 + 0000553D DD 4E FE 2394 LD C,(IX-2) + 00005540 DD 46 FF 2395 LD B,(IX-1) + 00005543 09 2396 ADD HL,BC + 00005544 7E 2397 LD A,(HL) + 00005545 23 2398 INC HL + 00005546 B6 2399 OR (HL) + 00005547 21 1C 00 2400 LD HL,28 + 0000554A 39 2401 ADD HL,SP + 0000554B 4D 2402 LD C,L + 0000554C 44 2403 LD B,H + 0000554D 28 17 2404 JR Z,?0159 + 0000554F 2405 ?0158: + 0000554F 21 05 00 2406 LD HL,5 + 00005552 DD 5E FE 2407 LD E,(IX-2) + 00005555 DD 56 FF 2408 LD D,(IX-1) + 00005558 19 2409 ADD HL,DE + 00005559 56 2410 LD D,(HL) + 0000555A 23 2411 INC HL + 0000555B 66 2412 LD H,(HL) + 0000555C 6A 2413 LD L,D + 0000555D 11 04 00 2414 LD DE,4 + 00005560 19 2415 ADD HL,DE + 00005561 5E 2416 LD E,(HL) + 00005562 23 2417 INC HL + 00005563 56 2418 LD D,(HL) + 00005564 18 02 2419 JR ?0510 + 00005566 2420 ?0159: + 00005566 5F 2421 LD E,A + 00005567 57 2422 LD D,A + 00005568 2423 ?0510: + 00005568 3E 00 2424 LD A,BYTE3 dbParseExpression + 0000556A 21 B2 65 2425 LD HL,LWRD dbParseExpression + 0000556D CD 19 82 2426 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005570 DD 75 F6 2427 LD (IX-10),L + 00005573 DD 74 F7 2428 LD (IX-9),H + 00005576 2429 ?0160: + 00005576 AF 2430 XOR A + 00005577 DD 77 EE 2431 LD (IX-18),A + 0000557A DD 77 EF 2432 LD (IX-17),A + 0000557D 2433 ?0162: + 0000557D 21 04 00 2434 LD HL,4 + 00005580 DD 4E DE 2435 LD C,(IX-34) + 00005583 DD 46 DF 2436 LD B,(IX-33) + 00005586 09 2437 ADD HL,BC + 00005587 4E 2438 LD C,(HL) + 00005588 23 2439 INC HL + 00005589 46 2440 LD B,(HL) + 0000558A DD 6E EE 2441 LD L,(IX-18) + 0000558D DD 66 EF 2442 LD H,(IX-17) + 00005590 F6 80 2443 OR 128 + 00005592 ED 42 2444 SBC HL,BC + 00005594 E2 98 55 2445 JP PO,?0505 + 00005597 AC 2446 XOR H + 00005598 2447 ?0505: + 00005598 F2 C6 56 2448 JP P,?0161 + 0000559B 2449 ?0163: + 0000559B 21 08 00 2450 LD HL,8 + 0000559E DD 4E DE 2451 LD C,(IX-34) + 000055A1 DD 46 DF 2452 LD B,(IX-33) + 000055A4 09 2453 ADD HL,BC + 000055A5 4E 2454 LD C,(HL) + 000055A6 23 2455 INC HL + 000055A7 46 2456 LD B,(HL) + 000055A8 C5 2457 PUSH BC + 000055A9 21 01 00 2458 LD HL,1 + 000055AC E5 2459 PUSH HL + 000055AD DD 4E F4 2460 LD C,(IX-12) + 000055B0 DD 46 F5 2461 LD B,(IX-11) + 000055B3 DD 5E E8 2462 LD E,(IX-24) + 000055B6 DD 56 E9 2463 LD D,(IX-23) + 000055B9 3E 00 2464 LD A,BYTE3 fread + 000055BB 21 DD 70 2465 LD HL,LWRD fread + 000055BE CD 19 82 2466 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055C1 F1 2467 POP AF + 000055C2 F1 2468 POP AF + 000055C3 DD 6E E8 2469 LD L,(IX-24) + 000055C6 DD 66 E9 2470 LD H,(IX-23) + 000055C9 46 2471 LD B,(HL) + 000055CA 05 2472 DEC B + 000055CB C2 BA 56 2473 JP NZ,?0508 + 000055CE 2474 ?0165: + 000055CE DD 6E EA 2475 LD L,(IX-22) + 000055D1 DD 66 EB 2476 LD H,(IX-21) + 000055D4 36 01 2477 LD (HL),1 + 000055D6 23 2478 INC HL + 000055D7 70 2479 LD (HL),B + 000055D8 DD 36 EC 02 2480 LD (IX-20),2 + 000055DC DD 70 ED 2481 LD (IX-19),B + 000055DF AF 2482 XOR A + 000055E0 DD 77 F0 2483 LD (IX-16),A + 000055E3 DD 77 F1 2484 LD (IX-15),A + 000055E6 2485 ?0168: + 000055E6 FD 4E 00 2486 LD C,(IY+0) + 000055E9 FD 46 01 2487 LD B,(IY+1) + 000055EC DD 6E F0 2488 LD L,(IX-16) + 000055EF DD 66 F1 2489 LD H,(IX-15) + 000055F2 F6 80 2490 OR 128 + 000055F4 ED 42 2491 SBC HL,BC + 000055F6 E2 FA 55 2492 JP PO,?0506 + 000055F9 AC 2493 XOR H + 000055FA 2494 ?0506: + 000055FA F2 68 56 2495 JP P,?0167 + 000055FD 2496 ?0169: + 000055FD DD 6E F0 2497 LD L,(IX-16) + 00005600 DD 66 F1 2498 LD H,(IX-15) + 00005603 29 2499 ADD HL,HL + 00005604 DD 4E E6 2500 LD C,(IX-26) + 00005607 DD 46 E7 2501 LD B,(IX-25) + 0000560A 09 2502 ADD HL,BC + 0000560B 5E 2503 LD E,(HL) + 0000560C 23 2504 INC HL + 0000560D 56 2505 LD D,(HL) + 0000560E D5 2506 PUSH DE + 0000560F DD 6E F0 2507 LD L,(IX-16) + 00005612 DD 66 F1 2508 LD H,(IX-15) + 00005615 29 2509 ADD HL,HL + 00005616 DD 5E E4 2510 LD E,(IX-28) + 00005619 DD 56 E5 2511 LD D,(IX-27) + 0000561C 19 2512 ADD HL,DE + 0000561D 56 2513 LD D,(HL) + 0000561E 23 2514 INC HL + 0000561F 66 2515 LD H,(HL) + 00005620 6A 2516 LD L,D + 00005621 DD 5E E8 2517 LD E,(IX-24) + 00005624 DD 56 E9 2518 LD D,(IX-23) + 00005627 19 2519 ADD HL,DE + 00005628 4D 2520 LD C,L + 00005629 44 2521 LD B,H + 0000562A DD 6E EC 2522 LD L,(IX-20) + 0000562D DD 66 ED 2523 LD H,(IX-19) + 00005630 DD 5E EA 2524 LD E,(IX-22) + 00005633 DD 56 EB 2525 LD D,(IX-21) + 00005636 19 2526 ADD HL,DE + 00005637 EB 2527 EX DE,HL + 00005638 3E 00 2528 LD A,BYTE3 memcpy + 0000563A 21 1E 75 2529 LD HL,LWRD memcpy + 0000563D CD 19 82 2530 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005640 F1 2531 POP AF + 00005641 DD 6E F0 2532 LD L,(IX-16) + 00005644 DD 66 F1 2533 LD H,(IX-15) + 00005647 29 2534 ADD HL,HL + 00005648 DD 4E E6 2535 LD C,(IX-26) + 0000564B DD 46 E7 2536 LD B,(IX-25) + 0000564E 09 2537 ADD HL,BC + 0000564F 4E 2538 LD C,(HL) + 00005650 23 2539 INC HL + 00005651 46 2540 LD B,(HL) + 00005652 21 10 00 2541 LD HL,16 + 00005655 39 2542 ADD HL,SP + 00005656 7E 2543 LD A,(HL) + 00005657 81 2544 ADD A,C + 00005658 77 2545 LD (HL),A + 00005659 23 2546 INC HL + 0000565A 7E 2547 LD A,(HL) + 0000565B 88 2548 ADC A,B + 0000565C 77 2549 LD (HL),A + 0000565D DD 34 F0 2550 INC (IX-16) + 00005660 20 84 2551 JR NZ,?0168 + 00005662 DD 34 F1 2552 INC (IX-15) + 00005665 C3 E6 55 2553 JP LWRD ?0168 + 00005668 2554 ?0167: + 00005668 DD 4E FA 2555 LD C,(IX-6) + 0000566B DD 46 FB 2556 LD B,(IX-5) + 0000566E DD 5E F6 2557 LD E,(IX-10) + 00005671 DD 56 F7 2558 LD D,(IX-9) + 00005674 3E 00 2559 LD A,BYTE3 dbEvaluateExpression + 00005676 21 15 6A 2560 LD HL,LWRD dbEvaluateExpression + 00005679 CD 19 82 2561 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000567C 21 24 00 2562 LD HL,36 + 0000567F DD 4E F6 2563 LD C,(IX-10) + 00005682 DD 46 F7 2564 LD B,(IX-9) + 00005685 09 2565 ADD HL,BC + 00005686 3E 01 2566 LD A,1 + 00005688 AE 2567 XOR (HL) + 00005689 23 2568 INC HL + 0000568A B6 2569 OR (HL) + 0000568B 23 2570 INC HL + 0000568C B6 2571 OR (HL) + 0000568D 23 2572 INC HL + 0000568E B6 2573 OR (HL) + 0000568F 20 29 2574 JR NZ,?0508 + 00005691 2575 ?0171: + 00005691 FD 6E 08 2576 LD L,(IY+8) + 00005694 FD 66 09 2577 LD H,(IY+9) + 00005697 E5 2578 PUSH HL + 00005698 21 01 00 2579 LD HL,1 + 0000569B E5 2580 PUSH HL + 0000569C DD 4E F2 2581 LD C,(IX-14) + 0000569F DD 46 F3 2582 LD B,(IX-13) + 000056A2 DD 5E EA 2583 LD E,(IX-22) + 000056A5 DD 56 EB 2584 LD D,(IX-21) + 000056A8 3E 00 2585 LD A,BYTE3 fwrite + 000056AA 21 F6 77 2586 LD HL,LWRD fwrite + 000056AD CD 19 82 2587 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000056B0 F1 2588 POP AF + 000056B1 F1 2589 POP AF + 000056B2 FD 34 04 2590 INC (IY+4) + 000056B5 20 03 2591 JR NZ,?0508 + 000056B7 FD 34 05 2592 INC (IY+5) + 000056BA 2593 ?0508: + 000056BA 2594 ?0172: + 000056BA 2595 ?0166: + 000056BA DD 34 EE 2596 INC (IX-18) + 000056BD C2 7D 55 2597 JP NZ,?0162 + 000056C0 DD 34 EF 2598 INC (IX-17) + 000056C3 C3 7D 55 2599 JP LWRD ?0162 + 000056C6 2600 ?0161: + 000056C6 DD 5E E8 2601 LD E,(IX-24) + 000056C9 DD 56 E9 2602 LD D,(IX-23) + 000056CC CD 90 45 2603 CALL LWRD ?0639 + 000056CF DD 5E E4 2604 LD E,(IX-28) + 000056D2 DD 56 E5 2605 LD D,(IX-27) + 000056D5 CD 90 45 2606 CALL LWRD ?0639 + 000056D8 DD 5E E6 2607 LD E,(IX-26) + 000056DB DD 56 E7 2608 LD D,(IX-25) + 000056DE CD 90 45 2609 CALL LWRD ?0639 + 000056E1 DD 5E FA 2610 LD E,(IX-6) + 000056E4 DD 56 FB 2611 LD D,(IX-5) + 000056E7 CD 90 45 2612 CALL LWRD ?0639 + 000056EA DD 5E F6 2613 LD E,(IX-10) + 000056ED DD 56 F7 2614 LD D,(IX-9) + 000056F0 3E 00 2615 LD A,BYTE3 dbDeleteExpression + 000056F2 21 EC 69 2616 LD HL,LWRD dbDeleteExpression + 000056F5 CD 19 82 2617 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000056F8 DD 5E DE 2618 LD E,(IX-34) + 000056FB DD 56 DF 2619 LD D,(IX-33) + 000056FE 3E 00 2620 LD A,BYTE3 dbTableClose + 00005700 21 C5 50 2621 LD HL,LWRD dbTableClose + 00005703 CD 19 82 2622 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005706 FD 5E 08 2623 LD E,(IY+8) + 00005709 FD 56 09 2624 LD D,(IY+9) + 0000570C CD A0 50 2625 CALL LWRD ?0645 + 0000570F 21 C4 84 2626 LD HL,?0127 + 00005712 E5 2627 PUSH HL + 00005713 21 00 00 2628 LD HL,0 + 00005716 E5 2629 PUSH HL + 00005717 01 FF FF 2630 LD BC,65535 + 0000571A 11 CC 84 2631 LD DE,?0156 + 0000571D 3E 00 2632 LD A,BYTE3 __fopen + 0000571F 21 A3 7A 2633 LD HL,LWRD __fopen + 00005722 CD 19 82 2634 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005725 F1 2635 POP AF + 00005726 F1 2636 POP AF + 00005727 FD 75 08 2637 LD (IY+8),L + 0000572A FD 74 09 2638 LD (IY+9),H + 0000572D FD E5 2639 PUSH IY + 0000572F E1 2640 POP HL + 00005730 DD F9 2641 LD SP,IX + 00005732 C3 C0 45 2642 JP LWRD ?0614 + 00005735 2643 ?0640: + 00005735 DD 75 E4 2644 LD (IX-28),L + 00005738 DD 74 E5 2645 LD (IX-27),H + 0000573B FD 6E 00 2646 LD L,(IY+0) + 0000573E FD 66 01 2647 LD H,(IY+1) + 00005741 29 2648 ADD HL,HL + 00005742 EB 2649 EX DE,HL + 00005743 3E 01 2650 LD A,BYTE3 malloc + 00005745 21 82 4A 2651 LD HL,LWRD malloc + 00005748 CD 19 82 2652 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000574B DD 75 E6 2653 LD (IX-26),L + 0000574E DD 74 E7 2654 LD (IX-25),H + 00005751 FD 6E 00 2655 LD L,(IY+0) + 00005754 FD 66 01 2656 LD H,(IY+1) + 00005757 29 2657 ADD HL,HL + 00005758 29 2658 ADD HL,HL + 00005759 4D 2659 LD C,L + 0000575A 44 2660 LD B,H + 0000575B 29 2661 ADD HL,HL + 0000575C 09 2662 ADD HL,BC + 0000575D EB 2663 EX DE,HL + 0000575E 3E 01 2664 LD A,BYTE3 malloc + 00005760 21 82 4A 2665 LD HL,LWRD malloc + 00005763 C9 2666 RET + 00005764 2667 ?0647: + 00005764 DD 6E FE 2668 LD L,(IX-2) + 00005767 DD 66 FF 2669 LD H,(IX-1) + 0000576A 23 2670 INC HL + 0000576B 5E 2671 LD E,(HL) + 0000576C 23 2672 INC HL + 0000576D 56 2673 LD D,(HL) + 0000576E 3E 00 2674 LD A,BYTE3 dbListSize + 00005770 21 C8 45 2675 LD HL,LWRD dbListSize + 00005773 C3 19 82 2676 JP LWRD ?BANK_CALL_DIRECT_L08 + 00005776 2677 ?0662: + 00005776 3E 00 2678 LD A,BYTE3 dbParseExpression + 00005778 21 B2 65 2679 LD HL,LWRD dbParseExpression + 0000577B CD 19 82 2680 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000577E DD 75 F8 2681 LD (IX-8),L + 00005781 DD 74 F9 2682 LD (IX-7),H + 00005784 2683 ?0661: + 00005784 3E 00 2684 LD A,BYTE3 dbNewRow + 00005786 21 99 62 2685 LD HL,LWRD dbNewRow + 00005789 C3 19 82 2686 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000578C 2687 ?0663: + 0000578C DD 5E F8 2688 LD E,(IX-8) + 0000578F DD 56 F9 2689 LD D,(IX-7) + 00005792 3E 00 2690 LD A,BYTE3 dbEvaluateExpression + 00005794 21 15 6A 2691 LD HL,LWRD dbEvaluateExpression + 00005797 CD 19 82 2692 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000579A 21 24 00 2693 LD HL,36 + 0000579D DD 4E F8 2694 LD C,(IX-8) + 000057A0 DD 46 F9 2695 LD B,(IX-7) + 000057A3 09 2696 ADD HL,BC + 000057A4 3E 01 2697 LD A,1 + 000057A6 AE 2698 XOR (HL) + 000057A7 23 2699 INC HL + 000057A8 B6 2700 OR (HL) + 000057A9 23 2701 INC HL + 000057AA B6 2702 OR (HL) + 000057AB 23 2703 INC HL + 000057AC B6 2704 OR (HL) + 000057AD C9 2705 RET + 000057AE 2706 dbExecuteInsert: + 000057AE C5 2707 PUSH BC + 000057AF FD E5 2708 PUSH IY + 000057B1 DD E5 2709 PUSH IX + 000057B3 DD 21 00 00 2710 LD IX,0 + 000057B7 DD 39 2711 ADD IX,SP + 000057B9 D5 2712 PUSH DE + 000057BA 21 E8 FF 2713 LD HL,65512 + 000057BD 39 2714 ADD HL,SP + 000057BE F9 2715 LD SP,HL + 000057BF 11 14 00 2716 LD DE,20 + 000057C2 CD E4 49 2717 CALL LWRD ?0641 + 000057C5 DD 75 E6 2718 LD (IX-26),L + 000057C8 DD 74 E7 2719 LD (IX-25),H + 000057CB DD 4E FE 2720 LD C,(IX-2) + 000057CE DD 46 FF 2721 LD B,(IX-1) + 000057D1 03 2722 INC BC + 000057D2 03 2723 INC BC + 000057D3 03 2724 INC BC + 000057D4 0A 2725 LD A,(BC) + 000057D5 6F 2726 LD L,A + 000057D6 03 2727 INC BC + 000057D7 0A 2728 LD A,(BC) + 000057D8 67 2729 LD H,A + 000057D9 01 04 00 2730 LD BC,4 + 000057DC 09 2731 ADD HL,BC + 000057DD 4E 2732 LD C,(HL) + 000057DE 23 2733 INC HL + 000057DF 46 2734 LD B,(HL) + 000057E0 21 0B 00 2735 LD HL,11 + 000057E3 DD 5E E6 2736 LD E,(IX-26) + 000057E6 DD 56 E7 2737 LD D,(IX-25) + 000057E9 CD 00 4A 2738 CALL LWRD ?0653 + 000057EC DD 5E E6 2739 LD E,(IX-26) + 000057EF DD 56 E7 2740 LD D,(IX-25) + 000057F2 3E 00 2741 LD A,BYTE3 dbTableOpen + 000057F4 21 F5 4D 2742 LD HL,LWRD dbTableOpen + 000057F7 CD 19 82 2743 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000057FA DD 5E E6 2744 LD E,(IX-26) + 000057FD DD 56 E7 2745 LD D,(IX-25) + 00005800 3E 00 2746 LD A,BYTE3 dbRecordSize + 00005802 21 87 51 2747 LD HL,LWRD dbRecordSize + 00005805 CD 19 82 2748 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005808 DD 75 FA 2749 LD (IX-6),L + 0000580B DD 74 FB 2750 LD (IX-5),H + 0000580E CD E3 49 2751 CALL LWRD ?0642 + 00005811 DD 75 E8 2752 LD (IX-24),L + 00005814 DD 74 E9 2753 LD (IX-23),H + 00005817 AF 2754 XOR A + 00005818 DD 77 F4 2755 LD (IX-12),A + 0000581B DD 77 F5 2756 LD (IX-11),A + 0000581E 2757 ?0174: + 0000581E DD 4E FA 2758 LD C,(IX-6) + 00005821 DD 46 FB 2759 LD B,(IX-5) + 00005824 DD 6E F4 2760 LD L,(IX-12) + 00005827 DD 66 F5 2761 LD H,(IX-11) + 0000582A F6 80 2762 OR 128 + 0000582C ED 42 2763 SBC HL,BC + 0000582E E2 32 58 2764 JP PO,?0511 + 00005831 AC 2765 XOR H + 00005832 2766 ?0511: + 00005832 F2 4E 58 2767 JP P,?0173 + 00005835 2768 ?0175: + 00005835 DD 6E F4 2769 LD L,(IX-12) + 00005838 DD 66 F5 2770 LD H,(IX-11) + 0000583B DD 4E E8 2771 LD C,(IX-24) + 0000583E DD 46 E9 2772 LD B,(IX-23) + 00005841 09 2773 ADD HL,BC + 00005842 36 00 2774 LD (HL),0 + 00005844 DD 34 F4 2775 INC (IX-12) + 00005847 20 D5 2776 JR NZ,?0174 + 00005849 DD 34 F5 2777 INC (IX-11) + 0000584C 18 D0 2778 JR ?0174 + 0000584E 2779 ?0173: + 0000584E 59 2780 LD E,C + 0000584F 50 2781 LD D,B + 00005850 CD E4 49 2782 CALL LWRD ?0641 + 00005853 DD 75 EA 2783 LD (IX-22),L + 00005856 DD 74 EB 2784 LD (IX-21),H + 00005859 DD 6E E8 2785 LD L,(IX-24) + 0000585C DD 66 E9 2786 LD H,(IX-23) + 0000585F 36 01 2787 LD (HL),1 + 00005861 23 2788 INC HL + 00005862 36 00 2789 LD (HL),0 + 00005864 CD 64 57 2790 CALL LWRD ?0647 + 00005867 DD 75 F2 2791 LD (IX-14),L + 0000586A DD 74 F3 2792 LD (IX-13),H + 0000586D DD 6E FE 2793 LD L,(IX-2) + 00005870 DD 66 FF 2794 LD H,(IX-1) + 00005873 23 2795 INC HL + 00005874 46 2796 LD B,(HL) + 00005875 DD 70 EC 2797 LD (IX-20),B + 00005878 23 2798 INC HL + 00005879 66 2799 LD H,(HL) + 0000587A DD 74 ED 2800 LD (IX-19),H + 0000587D 21 07 00 2801 LD HL,7 + 00005880 DD 4E FE 2802 LD C,(IX-2) + 00005883 DD 46 FF 2803 LD B,(IX-1) + 00005886 09 2804 ADD HL,BC + 00005887 46 2805 LD B,(HL) + 00005888 23 2806 INC HL + 00005889 66 2807 LD H,(HL) + 0000588A 68 2808 LD L,B + 0000588B E5 2809 PUSH HL + 0000588C FD E1 2810 POP IY + 0000588E AF 2811 XOR A + 0000588F DD 77 F4 2812 LD (IX-12),A + 00005892 DD 77 F5 2813 LD (IX-11),A + 00005895 2814 ?0178: + 00005895 DD 4E F2 2815 LD C,(IX-14) + 00005898 DD 46 F3 2816 LD B,(IX-13) + 0000589B DD 6E F4 2817 LD L,(IX-12) + 0000589E DD 66 F5 2818 LD H,(IX-11) + 000058A1 F6 80 2819 OR 128 + 000058A3 ED 42 2820 SBC HL,BC + 000058A5 E2 A9 58 2821 JP PO,?0513 + 000058A8 AC 2822 XOR H + 000058A9 2823 ?0513: + 000058A9 F2 39 5A 2824 JP P,?0177 + 000058AC 2825 ?0179: + 000058AC 21 04 00 2826 LD HL,4 + 000058AF DD 4E EC 2827 LD C,(IX-20) + 000058B2 DD 46 ED 2828 LD B,(IX-19) + 000058B5 09 2829 ADD HL,BC + 000058B6 4E 2830 LD C,(HL) + 000058B7 23 2831 INC HL + 000058B8 46 2832 LD B,(HL) + 000058B9 DD 5E E6 2833 LD E,(IX-26) + 000058BC DD 56 E7 2834 LD D,(IX-25) + 000058BF 3E 00 2835 LD A,BYTE3 dbFieldSearch + 000058C1 21 A3 51 2836 LD HL,LWRD dbFieldSearch + 000058C4 CD 19 82 2837 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000058C7 DD 75 FC 2838 LD (IX-4),L + 000058CA DD 74 FD 2839 LD (IX-3),H + 000058CD DD 4E E6 2840 LD C,(IX-26) + 000058D0 DD 46 E7 2841 LD B,(IX-25) + 000058D3 03 2842 INC BC + 000058D4 03 2843 INC BC + 000058D5 0A 2844 LD A,(BC) + 000058D6 6F 2845 LD L,A + 000058D7 03 2846 INC BC + 000058D8 0A 2847 LD A,(BC) + 000058D9 67 2848 LD H,A + 000058DA E5 2849 PUSH HL + 000058DB DD 6E FC 2850 LD L,(IX-4) + 000058DE DD 66 FD 2851 LD H,(IX-3) + 000058E1 29 2852 ADD HL,HL + 000058E2 29 2853 ADD HL,HL + 000058E3 4D 2854 LD C,L + 000058E4 44 2855 LD B,H + 000058E5 29 2856 ADD HL,HL + 000058E6 09 2857 ADD HL,BC + 000058E7 4D 2858 LD C,L + 000058E8 44 2859 LD B,H + 000058E9 E1 2860 POP HL + 000058EA 09 2861 ADD HL,BC + 000058EB DD 75 F0 2862 LD (IX-16),L + 000058EE DD 74 F1 2863 LD (IX-15),H + 000058F1 DD 4E FC 2864 LD C,(IX-4) + 000058F4 DD 46 FD 2865 LD B,(IX-3) + 000058F7 DD 5E E6 2866 LD E,(IX-26) + 000058FA DD 56 E7 2867 LD D,(IX-25) + 000058FD 3E 00 2868 LD A,BYTE3 dbFieldOffset + 000058FF 21 32 51 2869 LD HL,LWRD dbFieldOffset + 00005902 CD 19 82 2870 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005905 DD 75 F6 2871 LD (IX-10),L + 00005908 DD 74 F7 2872 LD (IX-9),H + 0000590B 21 0A 00 2873 LD HL,10 + 0000590E DD 4E F0 2874 LD C,(IX-16) + 00005911 DD 46 F1 2875 LD B,(IX-15) + 00005914 09 2876 ADD HL,BC + 00005915 4E 2877 LD C,(HL) + 00005916 DD 71 F8 2878 LD (IX-8),C + 00005919 DD 36 F9 00 2879 LD (IX-7),0 + 0000591D FD 6E 04 2880 LD L,(IY+4) + 00005920 FD 66 05 2881 LD H,(IY+5) + 00005923 7E 2882 LD A,(HL) + 00005924 FE 27 2883 CP 39 + 00005926 C2 AD 59 2884 JP NZ,?0182 + 00005929 2885 ?0181: + 00005929 FD 5E 04 2886 LD E,(IY+4) + 0000592C FD 56 05 2887 LD D,(IY+5) + 0000592F CD ED 49 2888 CALL LWRD ?0649 + 00005932 FD 4E 04 2889 LD C,(IY+4) + 00005935 FD 46 05 2890 LD B,(IY+5) + 00005938 09 2891 ADD HL,BC + 00005939 2B 2892 DEC HL + 0000593A 36 00 2893 LD (HL),0 + 0000593C 21 09 00 2894 LD HL,9 + 0000593F DD 4E F0 2895 LD C,(IX-16) + 00005942 DD 46 F1 2896 LD B,(IX-15) + 00005945 09 2897 ADD HL,BC + 00005946 7E 2898 LD A,(HL) + 00005947 FE 53 2899 CP 83 + 00005949 20 28 2900 JR NZ,?0185 + 0000594B 2901 ?0184: + 0000594B DD 6E F8 2902 LD L,(IX-8) + 0000594E DD 66 F9 2903 LD H,(IX-7) + 00005951 E5 2904 PUSH HL + 00005952 FD 4E 04 2905 LD C,(IY+4) + 00005955 FD 46 05 2906 LD B,(IY+5) + 00005958 03 2907 INC BC + 00005959 DD 6E F6 2908 LD L,(IX-10) + 0000595C DD 66 F7 2909 LD H,(IX-9) + 0000595F DD 5E E8 2910 LD E,(IX-24) + 00005962 DD 56 E9 2911 LD D,(IX-23) + 00005965 19 2912 ADD HL,DE + 00005966 EB 2913 EX DE,HL + 00005967 3E 00 2914 LD A,BYTE3 memcpy + 00005969 21 1E 75 2915 LD HL,LWRD memcpy + 0000596C CD 19 82 2916 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000596F F1 2917 POP AF + 00005970 C3 13 5A 2918 JP LWRD ?0198 + 00005973 2919 ?0185: + 00005973 FE 49 2920 CP 73 + 00005975 C2 13 5A 2921 JP NZ,?0198 + 00005978 21 0A 00 2922 LD HL,10 + 0000597B 09 2923 ADD HL,BC + 0000597C 46 2924 LD B,(HL) + 0000597D 05 2925 DEC B + 0000597E 05 2926 DEC B + 0000597F 20 17 2927 JR NZ,?0187 + 00005981 2928 ?0186: + 00005981 DD 6E F6 2929 LD L,(IX-10) + 00005984 DD 66 F7 2930 LD H,(IX-9) + 00005987 DD 4E E8 2931 LD C,(IX-24) + 0000598A DD 46 E9 2932 LD B,(IX-23) + 0000598D 09 2933 ADD HL,BC + 0000598E E5 2934 PUSH HL + 0000598F FD 5E 04 2935 LD E,(IY+4) + 00005992 FD 56 05 2936 LD D,(IY+5) + 00005995 13 2937 INC DE + 00005996 18 3E 2938 JR ?0520 + 00005998 2939 ?0187: + 00005998 21 0A 00 2940 LD HL,10 + 0000599B DD 46 F1 2941 LD B,(IX-15) + 0000599E 09 2942 ADD HL,BC + 0000599F 7E 2943 LD A,(HL) + 000059A0 FE 04 2944 CP 4 + 000059A2 20 6F 2945 JR NZ,?0198 + 000059A4 2946 ?0189: + 000059A4 FD 5E 04 2947 LD E,(IY+4) + 000059A7 FD 56 05 2948 LD D,(IY+5) + 000059AA 13 2949 INC DE + 000059AB 18 48 2950 JR ?0519 + 000059AD 2951 ?0190: + 000059AD 2952 ?0188: + 000059AD 2953 ?0183: + 000059AD 2954 ?0182: + 000059AD 21 09 00 2955 LD HL,9 + 000059B0 DD 4E F0 2956 LD C,(IX-16) + 000059B3 09 2957 ADD HL,BC + 000059B4 7E 2958 LD A,(HL) + 000059B5 FE 49 2959 CP 73 + 000059B7 20 5A 2960 JR NZ,?0198 + 000059B9 2961 ?0193: + 000059B9 21 0A 00 2962 LD HL,10 + 000059BC 09 2963 ADD HL,BC + 000059BD 46 2964 LD B,(HL) + 000059BE 05 2965 DEC B + 000059BF 05 2966 DEC B + 000059C0 20 21 2967 JR NZ,?0195 + 000059C2 2968 ?0194: + 000059C2 DD 6E F6 2969 LD L,(IX-10) + 000059C5 DD 66 F7 2970 LD H,(IX-9) + 000059C8 DD 4E E8 2971 LD C,(IX-24) + 000059CB DD 46 E9 2972 LD B,(IX-23) + 000059CE 09 2973 ADD HL,BC + 000059CF E5 2974 PUSH HL + 000059D0 FD 5E 04 2975 LD E,(IY+4) + 000059D3 FD 56 05 2976 LD D,(IY+5) + 000059D6 2977 ?0520: + 000059D6 3E 00 2978 LD A,BYTE3 atoi + 000059D8 21 43 7F 2979 LD HL,LWRD atoi + 000059DB CD 19 82 2980 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000059DE 4D 2981 LD C,L + 000059DF 44 2982 LD B,H + 000059E0 E1 2983 POP HL + 000059E1 18 2D 2984 JR ?0516 + 000059E3 2985 ?0195: + 000059E3 21 0A 00 2986 LD HL,10 + 000059E6 DD 46 F1 2987 LD B,(IX-15) + 000059E9 09 2988 ADD HL,BC + 000059EA 7E 2989 LD A,(HL) + 000059EB FE 04 2990 CP 4 + 000059ED 20 24 2991 JR NZ,?0198 + 000059EF 2992 ?0197: + 000059EF FD 5E 04 2993 LD E,(IY+4) + 000059F2 FD 56 05 2994 LD D,(IY+5) + 000059F5 2995 ?0519: + 000059F5 3E 01 2996 LD A,BYTE3 atol + 000059F7 21 20 49 2997 LD HL,LWRD atol + 000059FA CD 19 82 2998 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000059FD E5 2999 PUSH HL + 000059FE DD 6E F6 3000 LD L,(IX-10) + 00005A01 DD 66 F7 3001 LD H,(IX-9) + 00005A04 DD 5E E8 3002 LD E,(IX-24) + 00005A07 DD 56 E9 3003 LD D,(IX-23) + 00005A0A 19 3004 ADD HL,DE + 00005A0B D1 3005 POP DE + 00005A0C 73 3006 LD (HL),E + 00005A0D 23 3007 INC HL + 00005A0E 72 3008 LD (HL),D + 00005A0F 23 3009 INC HL + 00005A10 3010 ?0516: + 00005A10 71 3011 LD (HL),C + 00005A11 23 3012 INC HL + 00005A12 70 3013 LD (HL),B + 00005A13 3014 ?0198: + 00005A13 3015 ?0196: + 00005A13 3016 ?0192: + 00005A13 3017 ?0191: + 00005A13 DD 6E EC 3018 LD L,(IX-20) + 00005A16 DD 66 ED 3019 LD H,(IX-19) + 00005A19 23 3020 INC HL + 00005A1A 23 3021 INC HL + 00005A1B 46 3022 LD B,(HL) + 00005A1C DD 70 EC 3023 LD (IX-20),B + 00005A1F 23 3024 INC HL + 00005A20 66 3025 LD H,(HL) + 00005A21 DD 74 ED 3026 LD (IX-19),H + 00005A24 FD 6E 02 3027 LD L,(IY+2) + 00005A27 FD 66 03 3028 LD H,(IY+3) + 00005A2A E5 3029 PUSH HL + 00005A2B FD E1 3030 POP IY + 00005A2D DD 34 F4 3031 INC (IX-12) + 00005A30 C2 95 58 3032 JP NZ,?0178 + 00005A33 DD 34 F5 3033 INC (IX-11) + 00005A36 C3 95 58 3034 JP LWRD ?0178 + 00005A39 3035 ?0177: + 00005A39 21 06 00 3036 LD HL,6 + 00005A3C DD 4E E6 3037 LD C,(IX-26) + 00005A3F DD 46 E7 3038 LD B,(IX-25) + 00005A42 09 3039 ADD HL,BC + 00005A43 7E 3040 LD A,(HL) + 00005A44 23 3041 INC HL + 00005A45 B6 3042 OR (HL) + 00005A46 20 50 3043 JR NZ,?0200 + 00005A48 3044 ?0199: + 00005A48 6F 3045 LD L,A + 00005A49 67 3046 LD H,A + 00005A4A E5 3047 PUSH HL + 00005A4B E5 3048 PUSH HL + 00005A4C 2E 04 3049 LD L,4 + 00005A4E E5 3050 PUSH HL + 00005A4F 2E 08 3051 LD L,8 + 00005A51 09 3052 ADD HL,BC + 00005A52 5E 3053 LD E,(HL) + 00005A53 23 3054 INC HL + 00005A54 56 3055 LD D,(HL) + 00005A55 CD AF 5B 3056 CALL LWRD ?0664 + 00005A58 F1 3057 POP AF + 00005A59 F1 3058 POP AF + 00005A5A F1 3059 POP AF + 00005A5B 21 04 00 3060 LD HL,4 + 00005A5E 09 3061 ADD HL,BC + 00005A5F 56 3062 LD D,(HL) + 00005A60 23 3063 INC HL + 00005A61 66 3064 LD H,(HL) + 00005A62 6A 3065 LD L,D + 00005A63 23 3066 INC HL + 00005A64 E5 3067 PUSH HL + 00005A65 DD 6E EA 3068 LD L,(IX-22) + 00005A68 DD 66 EB 3069 LD H,(IX-21) + 00005A6B D1 3070 POP DE + 00005A6C 73 3071 LD (HL),E + 00005A6D 23 3072 INC HL + 00005A6E 72 3073 LD (HL),D + 00005A6F 21 08 00 3074 LD HL,8 + 00005A72 09 3075 ADD HL,BC + 00005A73 5E 3076 LD E,(HL) + 00005A74 23 3077 INC HL + 00005A75 56 3078 LD D,(HL) + 00005A76 D5 3079 PUSH DE + 00005A77 21 01 00 3080 LD HL,1 + 00005A7A E5 3081 PUSH HL + 00005A7B 01 02 00 3082 LD BC,2 + 00005A7E DD 5E EA 3083 LD E,(IX-22) + 00005A81 DD 56 EB 3084 LD D,(IX-21) + 00005A84 3E 00 3085 LD A,BYTE3 fwrite + 00005A86 21 F6 77 3086 LD HL,LWRD fwrite + 00005A89 CD 19 82 3087 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005A8C F1 3088 POP AF + 00005A8D F1 3089 POP AF + 00005A8E 21 02 00 3090 LD HL,2 + 00005A91 E5 3091 PUSH HL + 00005A92 2B 3092 DEC HL + 00005A93 2B 3093 DEC HL + 00005A94 E5 3094 PUSH HL + 00005A95 C3 4B 5B 3095 JP LWRD ?0517 + 00005A98 3096 ?0200: + 00005A98 21 00 00 3097 LD HL,0 + 00005A9B E5 3098 PUSH HL + 00005A9C E5 3099 PUSH HL + 00005A9D 2E 06 3100 LD L,6 + 00005A9F E5 3101 PUSH HL + 00005AA0 23 3102 INC HL + 00005AA1 23 3103 INC HL + 00005AA2 09 3104 ADD HL,BC + 00005AA3 5E 3105 LD E,(HL) + 00005AA4 23 3106 INC HL + 00005AA5 56 3107 LD D,(HL) + 00005AA6 CD AF 5B 3108 CALL LWRD ?0664 + 00005AA9 F1 3109 POP AF + 00005AAA F1 3110 POP AF + 00005AAB F1 3111 POP AF + 00005AAC 21 06 00 3112 LD HL,6 + 00005AAF 09 3113 ADD HL,BC + 00005AB0 56 3114 LD D,(HL) + 00005AB1 23 3115 INC HL + 00005AB2 66 3116 LD H,(HL) + 00005AB3 6A 3117 LD L,D + 00005AB4 2B 3118 DEC HL + 00005AB5 E5 3119 PUSH HL + 00005AB6 DD 6E EA 3120 LD L,(IX-22) + 00005AB9 DD 66 EB 3121 LD H,(IX-21) + 00005ABC D1 3122 POP DE + 00005ABD 73 3123 LD (HL),E + 00005ABE 23 3124 INC HL + 00005ABF 72 3125 LD (HL),D + 00005AC0 21 08 00 3126 LD HL,8 + 00005AC3 09 3127 ADD HL,BC + 00005AC4 5E 3128 LD E,(HL) + 00005AC5 23 3129 INC HL + 00005AC6 56 3130 LD D,(HL) + 00005AC7 D5 3131 PUSH DE + 00005AC8 21 01 00 3132 LD HL,1 + 00005ACB E5 3133 PUSH HL + 00005ACC 01 02 00 3134 LD BC,2 + 00005ACF DD 5E EA 3135 LD E,(IX-22) + 00005AD2 DD 56 EB 3136 LD D,(IX-21) + 00005AD5 3E 00 3137 LD A,BYTE3 fwrite + 00005AD7 21 F6 77 3138 LD HL,LWRD fwrite + 00005ADA CD 19 82 3139 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005ADD F1 3140 POP AF + 00005ADE F1 3141 POP AF + 00005ADF 21 00 00 3142 LD HL,0 + 00005AE2 E5 3143 PUSH HL + 00005AE3 E5 3144 PUSH HL + 00005AE4 2E 0A 3145 LD L,10 + 00005AE6 E5 3146 PUSH HL + 00005AE7 2B 3147 DEC HL + 00005AE8 2B 3148 DEC HL + 00005AE9 DD 4E E6 3149 LD C,(IX-26) + 00005AEC DD 46 E7 3150 LD B,(IX-25) + 00005AEF 09 3151 ADD HL,BC + 00005AF0 5E 3152 LD E,(HL) + 00005AF1 23 3153 INC HL + 00005AF2 56 3154 LD D,(HL) + 00005AF3 CD AF 5B 3155 CALL LWRD ?0664 + 00005AF6 F1 3156 POP AF + 00005AF7 F1 3157 POP AF + 00005AF8 F1 3158 POP AF + 00005AF9 DD 6E EA 3159 LD L,(IX-22) + 00005AFC DD 66 EB 3160 LD H,(IX-21) + 00005AFF 36 FF 3161 LD (HL),255 + 00005B01 23 3162 INC HL + 00005B02 36 FF 3163 LD (HL),255 + 00005B04 3164 ?0203: + 00005B04 DD 6E EA 3165 LD L,(IX-22) + 00005B07 DD 66 EB 3166 LD H,(IX-21) + 00005B0A AF 3167 XOR A + 00005B0B B6 3168 OR (HL) + 00005B0C 28 2A 3169 JR Z,?0202 + 00005B0E 3170 ?0204: + 00005B0E 21 08 00 3171 LD HL,8 + 00005B11 DD 4E E6 3172 LD C,(IX-26) + 00005B14 DD 46 E7 3173 LD B,(IX-25) + 00005B17 09 3174 ADD HL,BC + 00005B18 4E 3175 LD C,(HL) + 00005B19 23 3176 INC HL + 00005B1A 46 3177 LD B,(HL) + 00005B1B C5 3178 PUSH BC + 00005B1C 21 01 00 3179 LD HL,1 + 00005B1F E5 3180 PUSH HL + 00005B20 DD 4E FA 3181 LD C,(IX-6) + 00005B23 DD 46 FB 3182 LD B,(IX-5) + 00005B26 DD 5E EA 3183 LD E,(IX-22) + 00005B29 DD 56 EB 3184 LD D,(IX-21) + 00005B2C 3E 00 3185 LD A,BYTE3 fread + 00005B2E 21 DD 70 3186 LD HL,LWRD fread + 00005B31 CD 19 82 3187 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B34 F1 3188 POP AF + 00005B35 F1 3189 POP AF + 00005B36 18 CC 3190 JR ?0203 + 00005B38 3191 ?0202: + 00005B38 21 01 00 3192 LD HL,1 + 00005B3B E5 3193 PUSH HL + 00005B3C DD 4E FA 3194 LD C,(IX-6) + 00005B3F DD 46 FB 3195 LD B,(IX-5) + 00005B42 2B 3196 DEC HL + 00005B43 ED 42 3197 SBC HL,BC + 00005B45 7C 3198 LD A,H + 00005B46 07 3199 RLCA + 00005B47 9F 3200 SBC A,A + 00005B48 4F 3201 LD C,A + 00005B49 41 3202 LD B,C + 00005B4A C5 3203 PUSH BC + 00005B4B 3204 ?0517: + 00005B4B E5 3205 PUSH HL + 00005B4C 21 08 00 3206 LD HL,8 + 00005B4F DD 4E E6 3207 LD C,(IX-26) + 00005B52 DD 46 E7 3208 LD B,(IX-25) + 00005B55 09 3209 ADD HL,BC + 00005B56 5E 3210 LD E,(HL) + 00005B57 23 3211 INC HL + 00005B58 56 3212 LD D,(HL) + 00005B59 CD AF 5B 3213 CALL LWRD ?0664 + 00005B5C F1 3214 POP AF + 00005B5D F1 3215 POP AF + 00005B5E F1 3216 POP AF + 00005B5F 3217 ?0201: + 00005B5F 21 08 00 3218 LD HL,8 + 00005B62 09 3219 ADD HL,BC + 00005B63 5E 3220 LD E,(HL) + 00005B64 23 3221 INC HL + 00005B65 56 3222 LD D,(HL) + 00005B66 D5 3223 PUSH DE + 00005B67 21 01 00 3224 LD HL,1 + 00005B6A E5 3225 PUSH HL + 00005B6B DD 4E FA 3226 LD C,(IX-6) + 00005B6E DD 46 FB 3227 LD B,(IX-5) + 00005B71 DD 5E E8 3228 LD E,(IX-24) + 00005B74 DD 56 E9 3229 LD D,(IX-23) + 00005B77 3E 00 3230 LD A,BYTE3 fwrite + 00005B79 21 F6 77 3231 LD HL,LWRD fwrite + 00005B7C CD 19 82 3232 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B7F F1 3233 POP AF + 00005B80 F1 3234 POP AF + 00005B81 DD 5E E8 3235 LD E,(IX-24) + 00005B84 DD 56 E9 3236 LD D,(IX-23) + 00005B87 CD 90 45 3237 CALL LWRD ?0639 + 00005B8A DD 5E EA 3238 LD E,(IX-22) + 00005B8D DD 56 EB 3239 LD D,(IX-21) + 00005B90 CD 90 45 3240 CALL LWRD ?0639 + 00005B93 DD 5E E6 3241 LD E,(IX-26) + 00005B96 DD 56 E7 3242 LD D,(IX-25) + 00005B99 3E 00 3243 LD A,BYTE3 dbTableClose + 00005B9B 21 C5 50 3244 LD HL,LWRD dbTableClose + 00005B9E CD 19 82 3245 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005BA1 21 00 00 3246 LD HL,0 + 00005BA4 DD F9 3247 LD SP,IX + 00005BA6 C3 C0 45 3248 JP LWRD ?0614 + 00005BA9 3249 ?0665: + 00005BA9 FD 5E 08 3250 LD E,(IY+8) + 00005BAC FD 56 09 3251 LD D,(IY+9) + 00005BAF 3252 ?0664: + 00005BAF 3E 00 3253 LD A,BYTE3 fseek + 00005BB1 21 A0 75 3254 LD HL,LWRD fseek + 00005BB4 C3 19 82 3255 JP LWRD ?BANK_CALL_DIRECT_L08 + 00005BB7 3256 dbExecuteDelete: + 00005BB7 C5 3257 PUSH BC + 00005BB8 FD E5 3258 PUSH IY + 00005BBA DD E5 3259 PUSH IX + 00005BBC DD 21 00 00 3260 LD IX,0 + 00005BC0 DD 39 3261 ADD IX,SP + 00005BC2 D5 3262 PUSH DE + 00005BC3 21 F4 FF 3263 LD HL,65524 + 00005BC6 39 3264 ADD HL,SP + 00005BC7 F9 3265 LD SP,HL + 00005BC8 CD 69 5D 3266 CALL LWRD ?0637 + 00005BCB DD 75 FA 3267 LD (IX-6),L + 00005BCE DD 74 FB 3268 LD (IX-5),H + 00005BD1 CD E3 49 3269 CALL LWRD ?0642 + 00005BD4 DD 75 FC 3270 LD (IX-4),L + 00005BD7 DD 74 FD 3271 LD (IX-3),H + 00005BDA AF 3272 XOR A + 00005BDB DD 77 F4 3273 LD (IX-12),A + 00005BDE DD 77 F5 3274 LD (IX-11),A + 00005BE1 21 05 00 3275 LD HL,5 + 00005BE4 DD 4E FE 3276 LD C,(IX-2) + 00005BE7 DD 46 FF 3277 LD B,(IX-1) + 00005BEA 09 3278 ADD HL,BC + 00005BEB 7E 3279 LD A,(HL) + 00005BEC 23 3280 INC HL + 00005BED B6 3281 OR (HL) + 00005BEE 21 02 00 3282 LD HL,2 + 00005BF1 39 3283 ADD HL,SP + 00005BF2 4D 3284 LD C,L + 00005BF3 44 3285 LD B,H + 00005BF4 28 17 3286 JR Z,?0206 + 00005BF6 3287 ?0205: + 00005BF6 21 05 00 3288 LD HL,5 + 00005BF9 DD 5E FE 3289 LD E,(IX-2) + 00005BFC DD 56 FF 3290 LD D,(IX-1) + 00005BFF 19 3291 ADD HL,DE + 00005C00 56 3292 LD D,(HL) + 00005C01 23 3293 INC HL + 00005C02 66 3294 LD H,(HL) + 00005C03 6A 3295 LD L,D + 00005C04 11 04 00 3296 LD DE,4 + 00005C07 19 3297 ADD HL,DE + 00005C08 5E 3298 LD E,(HL) + 00005C09 23 3299 INC HL + 00005C0A 56 3300 LD D,(HL) + 00005C0B 18 02 3301 JR ?0524 + 00005C0D 3302 ?0206: + 00005C0D 5F 3303 LD E,A + 00005C0E 57 3304 LD D,A + 00005C0F 3305 ?0524: + 00005C0F 3306 ?0207: + 00005C0F CD 76 57 3307 CALL LWRD ?0662 + 00005C12 DD 75 F2 3308 LD (IX-14),L + 00005C15 DD 74 F3 3309 LD (IX-13),H + 00005C18 FD E5 3310 PUSH IY + 00005C1A C1 3311 POP BC + 00005C1B 71 3312 LD (HL),C + 00005C1C 23 3313 INC HL + 00005C1D 70 3314 LD (HL),B + 00005C1E 21 04 00 3315 LD HL,4 + 00005C21 DD 4E F2 3316 LD C,(IX-14) + 00005C24 DD 46 F3 3317 LD B,(IX-13) + 00005C27 09 3318 ADD HL,BC + 00005C28 DD 5E FC 3319 LD E,(IX-4) + 00005C2B 73 3320 LD (HL),E + 00005C2C DD 56 FD 3321 LD D,(IX-3) + 00005C2F 23 3322 INC HL + 00005C30 72 3323 LD (HL),D + 00005C31 69 3324 LD L,C + 00005C32 60 3325 LD H,B + 00005C33 23 3326 INC HL + 00005C34 23 3327 INC HL + 00005C35 AF 3328 XOR A + 00005C36 77 3329 LD (HL),A + 00005C37 23 3330 INC HL + 00005C38 77 3331 LD (HL),A + 00005C39 DD 77 F6 3332 LD (IX-10),A + 00005C3C DD 77 F7 3333 LD (IX-9),A + 00005C3F DD 77 F4 3334 LD (IX-12),A + 00005C42 DD 77 F5 3335 LD (IX-11),A + 00005C45 3336 ?0209: + 00005C45 FD 4E 04 3337 LD C,(IY+4) + 00005C48 FD 46 05 3338 LD B,(IY+5) + 00005C4B DD 6E F4 3339 LD L,(IX-12) + 00005C4E DD 66 F5 3340 LD H,(IX-11) + 00005C51 F6 80 3341 OR 128 + 00005C53 ED 42 3342 SBC HL,BC + 00005C55 E2 59 5C 3343 JP PO,?0521 + 00005C58 AC 3344 XOR H + 00005C59 3345 ?0521: + 00005C59 F2 01 5D 3346 JP P,?0208 + 00005C5C 3347 ?0210: + 00005C5C FD 6E 08 3348 LD L,(IY+8) + 00005C5F FD 66 09 3349 LD H,(IY+9) + 00005C62 E5 3350 PUSH HL + 00005C63 21 01 00 3351 LD HL,1 + 00005C66 E5 3352 PUSH HL + 00005C67 DD 4E FA 3353 LD C,(IX-6) + 00005C6A DD 46 FB 3354 LD B,(IX-5) + 00005C6D 2E 04 3355 LD L,4 + 00005C6F DD 5E F2 3356 LD E,(IX-14) + 00005C72 DD 56 F3 3357 LD D,(IX-13) + 00005C75 19 3358 ADD HL,DE + 00005C76 5E 3359 LD E,(HL) + 00005C77 23 3360 INC HL + 00005C78 56 3361 LD D,(HL) + 00005C79 3E 00 3362 LD A,BYTE3 fread + 00005C7B 21 DD 70 3363 LD HL,LWRD fread + 00005C7E CD 19 82 3364 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005C81 F1 3365 POP AF + 00005C82 F1 3366 POP AF + 00005C83 DD 6E FC 3367 LD L,(IX-4) + 00005C86 DD 66 FD 3368 LD H,(IX-3) + 00005C89 46 3369 LD B,(HL) + 00005C8A 05 3370 DEC B + 00005C8B 20 68 3371 JR NZ,?0522 + 00005C8D 3372 ?0212: + 00005C8D DD 4E F2 3373 LD C,(IX-14) + 00005C90 DD 46 F3 3374 LD B,(IX-13) + 00005C93 CD 8C 57 3375 CALL LWRD ?0663 + 00005C96 20 5D 3376 JR NZ,?0522 + 00005C98 3377 ?0214: + 00005C98 DD 6E FC 3378 LD L,(IX-4) + 00005C9B DD 66 FD 3379 LD H,(IX-3) + 00005C9E 77 3380 LD (HL),A + 00005C9F 21 01 00 3381 LD HL,1 + 00005CA2 E5 3382 PUSH HL + 00005CA3 DD 4E FA 3383 LD C,(IX-6) + 00005CA6 DD 46 FB 3384 LD B,(IX-5) + 00005CA9 2B 3385 DEC HL + 00005CAA ED 42 3386 SBC HL,BC + 00005CAC 7C 3387 LD A,H + 00005CAD 07 3388 RLCA + 00005CAE 9F 3389 SBC A,A + 00005CAF 4F 3390 LD C,A + 00005CB0 41 3391 LD B,C + 00005CB1 C5 3392 PUSH BC + 00005CB2 E5 3393 PUSH HL + 00005CB3 CD A9 5B 3394 CALL LWRD ?0665 + 00005CB6 F1 3395 POP AF + 00005CB7 F1 3396 POP AF + 00005CB8 F1 3397 POP AF + 00005CB9 FD 6E 08 3398 LD L,(IY+8) + 00005CBC FD 66 09 3399 LD H,(IY+9) + 00005CBF E5 3400 PUSH HL + 00005CC0 21 01 00 3401 LD HL,1 + 00005CC3 E5 3402 PUSH HL + 00005CC4 DD 4E FA 3403 LD C,(IX-6) + 00005CC7 DD 46 FB 3404 LD B,(IX-5) + 00005CCA 2E 04 3405 LD L,4 + 00005CCC DD 5E F2 3406 LD E,(IX-14) + 00005CCF DD 56 F3 3407 LD D,(IX-13) + 00005CD2 19 3408 ADD HL,DE + 00005CD3 5E 3409 LD E,(HL) + 00005CD4 23 3410 INC HL + 00005CD5 56 3411 LD D,(HL) + 00005CD6 3E 00 3412 LD A,BYTE3 fwrite + 00005CD8 21 F6 77 3413 LD HL,LWRD fwrite + 00005CDB CD 19 82 3414 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005CDE F1 3415 POP AF + 00005CDF F1 3416 POP AF + 00005CE0 21 01 00 3417 LD HL,1 + 00005CE3 E5 3418 PUSH HL + 00005CE4 2B 3419 DEC HL + 00005CE5 E5 3420 PUSH HL + 00005CE6 E5 3421 PUSH HL + 00005CE7 CD A9 5B 3422 CALL LWRD ?0665 + 00005CEA F1 3423 POP AF + 00005CEB F1 3424 POP AF + 00005CEC F1 3425 POP AF + 00005CED DD 34 F6 3426 INC (IX-10) + 00005CF0 20 03 3427 JR NZ,?0522 + 00005CF2 DD 34 F7 3428 INC (IX-9) + 00005CF5 3429 ?0522: + 00005CF5 3430 ?0215: + 00005CF5 3431 ?0213: + 00005CF5 DD 34 F4 3432 INC (IX-12) + 00005CF8 C2 45 5C 3433 JP NZ,?0209 + 00005CFB DD 34 F5 3434 INC (IX-11) + 00005CFE C3 45 5C 3435 JP LWRD ?0209 + 00005D01 3436 ?0208: + 00005D01 DD 5E F2 3437 LD E,(IX-14) + 00005D04 DD 56 F3 3438 LD D,(IX-13) + 00005D07 3E 00 3439 LD A,BYTE3 dbDeleteRow + 00005D09 21 7A 62 3440 LD HL,LWRD dbDeleteRow + 00005D0C CD 19 82 3441 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D0F 21 00 00 3442 LD HL,0 + 00005D12 E5 3443 PUSH HL + 00005D13 E5 3444 PUSH HL + 00005D14 2E 06 3445 LD L,6 + 00005D16 E5 3446 PUSH HL + 00005D17 CD A9 5B 3447 CALL LWRD ?0665 + 00005D1A F1 3448 POP AF + 00005D1B F1 3449 POP AF + 00005D1C F1 3450 POP AF + 00005D1D 21 04 00 3451 LD HL,4 + 00005D20 39 3452 ADD HL,SP + 00005D21 7E 3453 LD A,(HL) + 00005D22 FD 86 06 3454 ADD A,(IY+6) + 00005D25 77 3455 LD (HL),A + 00005D26 23 3456 INC HL + 00005D27 7E 3457 LD A,(HL) + 00005D28 FD 8E 07 3458 ADC A,(IY+7) + 00005D2B 77 3459 LD (HL),A + 00005D2C FD 6E 08 3460 LD L,(IY+8) + 00005D2F FD 66 09 3461 LD H,(IY+9) + 00005D32 E5 3462 PUSH HL + 00005D33 21 01 00 3463 LD HL,1 + 00005D36 E5 3464 PUSH HL + 00005D37 01 02 00 3465 LD BC,2 + 00005D3A 2E 08 3466 LD L,8 + 00005D3C 39 3467 ADD HL,SP + 00005D3D EB 3468 EX DE,HL + 00005D3E 3E 00 3469 LD A,BYTE3 fwrite + 00005D40 21 F6 77 3470 LD HL,LWRD fwrite + 00005D43 CD 19 82 3471 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D46 F1 3472 POP AF + 00005D47 F1 3473 POP AF + 00005D48 DD 5E F8 3474 LD E,(IX-8) + 00005D4B DD 56 F9 3475 LD D,(IX-7) + 00005D4E 3E 00 3476 LD A,BYTE3 dbDeleteExpression + 00005D50 21 EC 69 3477 LD HL,LWRD dbDeleteExpression + 00005D53 CD 19 82 3478 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D56 FD E5 3479 PUSH IY + 00005D58 D1 3480 POP DE + 00005D59 3E 00 3481 LD A,BYTE3 dbTableClose + 00005D5B 21 C5 50 3482 LD HL,LWRD dbTableClose + 00005D5E CD 19 82 3483 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D61 21 00 00 3484 LD HL,0 + 00005D64 DD F9 3485 LD SP,IX + 00005D66 C3 C0 45 3486 JP LWRD ?0614 + 00005D69 3487 ?0637: + 00005D69 11 14 00 3488 LD DE,20 + 00005D6C 3E 01 3489 LD A,BYTE3 malloc + 00005D6E 21 82 4A 3490 LD HL,LWRD malloc + 00005D71 CD 19 82 3491 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D74 E5 3492 PUSH HL + 00005D75 FD E1 3493 POP IY + 00005D77 DD 4E FE 3494 LD C,(IX-2) + 00005D7A DD 46 FF 3495 LD B,(IX-1) + 00005D7D 03 3496 INC BC + 00005D7E 03 3497 INC BC + 00005D7F 03 3498 INC BC + 00005D80 0A 3499 LD A,(BC) + 00005D81 6F 3500 LD L,A + 00005D82 03 3501 INC BC + 00005D83 0A 3502 LD A,(BC) + 00005D84 67 3503 LD H,A + 00005D85 01 04 00 3504 LD BC,4 + 00005D88 09 3505 ADD HL,BC + 00005D89 4E 3506 LD C,(HL) + 00005D8A 23 3507 INC HL + 00005D8B 46 3508 LD B,(HL) + 00005D8C 21 0B 00 3509 LD HL,11 + 00005D8F FD E5 3510 PUSH IY + 00005D91 D1 3511 POP DE + 00005D92 19 3512 ADD HL,DE + 00005D93 EB 3513 EX DE,HL + 00005D94 3E 00 3514 LD A,BYTE3 strcpy + 00005D96 21 1C 7F 3515 LD HL,LWRD strcpy + 00005D99 CD 19 82 3516 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D9C FD E5 3517 PUSH IY + 00005D9E D1 3518 POP DE + 00005D9F 3E 00 3519 LD A,BYTE3 dbTableOpen + 00005DA1 21 F5 4D 3520 LD HL,LWRD dbTableOpen + 00005DA4 CD 19 82 3521 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005DA7 FD E5 3522 PUSH IY + 00005DA9 D1 3523 POP DE + 00005DAA 3E 00 3524 LD A,BYTE3 dbRecordSize + 00005DAC 21 87 51 3525 LD HL,LWRD dbRecordSize + 00005DAF CD 19 82 3526 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005DB2 C9 3527 RET + 00005DB3 3528 dbExecuteUpdate: + 00005DB3 C5 3529 PUSH BC + 00005DB4 FD E5 3530 PUSH IY + 00005DB6 DD E5 3531 PUSH IX + 00005DB8 DD 21 00 00 3532 LD IX,0 + 00005DBC DD 39 3533 ADD IX,SP + 00005DBE D5 3534 PUSH DE + 00005DBF 21 E8 FF 3535 LD HL,65512 + 00005DC2 39 3536 ADD HL,SP + 00005DC3 F9 3537 LD SP,HL + 00005DC4 CD 69 5D 3538 CALL LWRD ?0637 + 00005DC7 DD 75 F2 3539 LD (IX-14),L + 00005DCA DD 74 F3 3540 LD (IX-13),H + 00005DCD CD E3 49 3541 CALL LWRD ?0642 + 00005DD0 DD 75 FA 3542 LD (IX-6),L + 00005DD3 DD 74 FB 3543 LD (IX-5),H + 00005DD6 AF 3544 XOR A + 00005DD7 DD 77 EE 3545 LD (IX-18),A + 00005DDA DD 77 EF 3546 LD (IX-17),A + 00005DDD 21 05 00 3547 LD HL,5 + 00005DE0 DD 4E FE 3548 LD C,(IX-2) + 00005DE3 DD 46 FF 3549 LD B,(IX-1) + 00005DE6 09 3550 ADD HL,BC + 00005DE7 7E 3551 LD A,(HL) + 00005DE8 23 3552 INC HL + 00005DE9 B6 3553 OR (HL) + 00005DEA 21 08 00 3554 LD HL,8 + 00005DED 39 3555 ADD HL,SP + 00005DEE 4D 3556 LD C,L + 00005DEF 44 3557 LD B,H + 00005DF0 28 17 3558 JR Z,?0217 + 00005DF2 3559 ?0216: + 00005DF2 21 05 00 3560 LD HL,5 + 00005DF5 DD 5E FE 3561 LD E,(IX-2) + 00005DF8 DD 56 FF 3562 LD D,(IX-1) + 00005DFB 19 3563 ADD HL,DE + 00005DFC 56 3564 LD D,(HL) + 00005DFD 23 3565 INC HL + 00005DFE 66 3566 LD H,(HL) + 00005DFF 6A 3567 LD L,D + 00005E00 11 04 00 3568 LD DE,4 + 00005E03 19 3569 ADD HL,DE + 00005E04 5E 3570 LD E,(HL) + 00005E05 23 3571 INC HL + 00005E06 56 3572 LD D,(HL) + 00005E07 18 02 3573 JR ?0535 + 00005E09 3574 ?0217: + 00005E09 5F 3575 LD E,A + 00005E0A 57 3576 LD D,A + 00005E0B 3577 ?0535: + 00005E0B 3578 ?0218: + 00005E0B CD 76 57 3579 CALL LWRD ?0662 + 00005E0E DD 75 E8 3580 LD (IX-24),L + 00005E11 DD 74 E9 3581 LD (IX-23),H + 00005E14 FD E5 3582 PUSH IY + 00005E16 C1 3583 POP BC + 00005E17 71 3584 LD (HL),C + 00005E18 23 3585 INC HL + 00005E19 70 3586 LD (HL),B + 00005E1A 21 04 00 3587 LD HL,4 + 00005E1D DD 4E E8 3588 LD C,(IX-24) + 00005E20 DD 46 E9 3589 LD B,(IX-23) + 00005E23 09 3590 ADD HL,BC + 00005E24 DD 5E FA 3591 LD E,(IX-6) + 00005E27 73 3592 LD (HL),E + 00005E28 DD 56 FB 3593 LD D,(IX-5) + 00005E2B 23 3594 INC HL + 00005E2C 72 3595 LD (HL),D + 00005E2D 69 3596 LD L,C + 00005E2E 60 3597 LD H,B + 00005E2F 23 3598 INC HL + 00005E30 23 3599 INC HL + 00005E31 AF 3600 XOR A + 00005E32 77 3601 LD (HL),A + 00005E33 23 3602 INC HL + 00005E34 77 3603 LD (HL),A + 00005E35 CD 64 57 3604 CALL LWRD ?0647 + 00005E38 DD 75 F0 3605 LD (IX-16),L + 00005E3B DD 74 F1 3606 LD (IX-15),H + 00005E3E CD E2 49 3607 CALL LWRD ?0644 + 00005E41 DD 75 EC 3608 LD (IX-20),L + 00005E44 DD 74 ED 3609 LD (IX-19),H + 00005E47 DD 6E FE 3610 LD L,(IX-2) + 00005E4A DD 66 FF 3611 LD H,(IX-1) + 00005E4D 23 3612 INC HL + 00005E4E 46 3613 LD B,(HL) + 00005E4F DD 70 EA 3614 LD (IX-22),B + 00005E52 23 3615 INC HL + 00005E53 66 3616 LD H,(HL) + 00005E54 DD 74 EB 3617 LD (IX-21),H + 00005E57 AF 3618 XOR A + 00005E58 DD 77 E6 3619 LD (IX-26),A + 00005E5B DD 77 E7 3620 LD (IX-25),A + 00005E5E 3621 ?0220: + 00005E5E DD 4E F0 3622 LD C,(IX-16) + 00005E61 DD 46 F1 3623 LD B,(IX-15) + 00005E64 DD 6E E6 3624 LD L,(IX-26) + 00005E67 DD 66 E7 3625 LD H,(IX-25) + 00005E6A F6 80 3626 OR 128 + 00005E6C ED 42 3627 SBC HL,BC + 00005E6E E2 72 5E 3628 JP PO,?0525 + 00005E71 AC 3629 XOR H + 00005E72 3630 ?0525: + 00005E72 F2 E3 5E 3631 JP P,?0219 + 00005E75 3632 ?0221: + 00005E75 0E 00 3633 LD C,0 + 00005E77 C5 3634 PUSH BC + 00005E78 0E 3D 3635 LD C,61 + 00005E7A 21 04 00 3636 LD HL,4 + 00005E7D DD 5E EA 3637 LD E,(IX-22) + 00005E80 DD 56 EB 3638 LD D,(IX-21) + 00005E83 19 3639 ADD HL,DE + 00005E84 5E 3640 LD E,(HL) + 00005E85 23 3641 INC HL + 00005E86 56 3642 LD D,(HL) + 00005E87 3E 00 3643 LD A,BYTE3 dbReplaceChar + 00005E89 21 F4 47 3644 LD HL,LWRD dbReplaceChar + 00005E8C CD 19 82 3645 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005E8F F1 3646 POP AF + 00005E90 DD 75 FC 3647 LD (IX-4),L + 00005E93 DD 74 FD 3648 LD (IX-3),H + 00005E96 AF 3649 XOR A + 00005E97 DD 77 F4 3650 LD (IX-12),A + 00005E9A DD 77 F5 3651 LD (IX-11),A + 00005E9D DD 6E E6 3652 LD L,(IX-26) + 00005EA0 DD 66 E7 3653 LD H,(IX-25) + 00005EA3 29 3654 ADD HL,HL + 00005EA4 DD 4E EC 3655 LD C,(IX-20) + 00005EA7 DD 46 ED 3656 LD B,(IX-19) + 00005EAA 09 3657 ADD HL,BC + 00005EAB E5 3658 PUSH HL + 00005EAC 21 10 00 3659 LD HL,16 + 00005EAF 39 3660 ADD HL,SP + 00005EB0 4D 3661 LD C,L + 00005EB1 44 3662 LD B,H + 00005EB2 DD 5E FC 3663 LD E,(IX-4) + 00005EB5 DD 56 FD 3664 LD D,(IX-3) + 00005EB8 13 3665 INC DE + 00005EB9 3E 00 3666 LD A,BYTE3 dbParseExpression + 00005EBB 21 B2 65 3667 LD HL,LWRD dbParseExpression + 00005EBE CD 19 82 3668 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005EC1 4D 3669 LD C,L + 00005EC2 44 3670 LD B,H + 00005EC3 E1 3671 POP HL + 00005EC4 71 3672 LD (HL),C + 00005EC5 23 3673 INC HL + 00005EC6 70 3674 LD (HL),B + 00005EC7 DD 6E EA 3675 LD L,(IX-22) + 00005ECA DD 66 EB 3676 LD H,(IX-21) + 00005ECD 23 3677 INC HL + 00005ECE 23 3678 INC HL + 00005ECF 46 3679 LD B,(HL) + 00005ED0 DD 70 EA 3680 LD (IX-22),B + 00005ED3 23 3681 INC HL + 00005ED4 66 3682 LD H,(HL) + 00005ED5 DD 74 EB 3683 LD (IX-21),H + 00005ED8 DD 34 E6 3684 INC (IX-26) + 00005EDB 20 81 3685 JR NZ,?0220 + 00005EDD DD 34 E7 3686 INC (IX-25) + 00005EE0 C3 5E 5E 3687 JP LWRD ?0220 + 00005EE3 3688 ?0219: + 00005EE3 AF 3689 XOR A + 00005EE4 DD 77 EE 3690 LD (IX-18),A + 00005EE7 DD 77 EF 3691 LD (IX-17),A + 00005EEA 3692 ?0224: + 00005EEA FD 4E 04 3693 LD C,(IY+4) + 00005EED FD 46 05 3694 LD B,(IY+5) + 00005EF0 DD 6E EE 3695 LD L,(IX-18) + 00005EF3 DD 66 EF 3696 LD H,(IX-17) + 00005EF6 F6 80 3697 OR 128 + 00005EF8 ED 42 3698 SBC HL,BC + 00005EFA E2 FE 5E 3699 JP PO,?0527 + 00005EFD AC 3700 XOR H + 00005EFE 3701 ?0527: + 00005EFE F2 08 61 3702 JP P,?0223 + 00005F01 3703 ?0225: + 00005F01 FD 6E 08 3704 LD L,(IY+8) + 00005F04 FD 66 09 3705 LD H,(IY+9) + 00005F07 E5 3706 PUSH HL + 00005F08 21 01 00 3707 LD HL,1 + 00005F0B E5 3708 PUSH HL + 00005F0C DD 4E F2 3709 LD C,(IX-14) + 00005F0F DD 46 F3 3710 LD B,(IX-13) + 00005F12 2E 04 3711 LD L,4 + 00005F14 DD 5E E8 3712 LD E,(IX-24) + 00005F17 DD 56 E9 3713 LD D,(IX-23) + 00005F1A 19 3714 ADD HL,DE + 00005F1B 5E 3715 LD E,(HL) + 00005F1C 23 3716 INC HL + 00005F1D 56 3717 LD D,(HL) + 00005F1E 3E 00 3718 LD A,BYTE3 fread + 00005F20 21 DD 70 3719 LD HL,LWRD fread + 00005F23 CD 19 82 3720 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005F26 F1 3721 POP AF + 00005F27 F1 3722 POP AF + 00005F28 DD 6E FA 3723 LD L,(IX-6) + 00005F2B DD 66 FB 3724 LD H,(IX-5) + 00005F2E 46 3725 LD B,(HL) + 00005F2F 05 3726 DEC B + 00005F30 C2 FC 60 3727 JP NZ,?0230 + 00005F33 3728 ?0227: + 00005F33 DD 4E E8 3729 LD C,(IX-24) + 00005F36 DD 46 E9 3730 LD B,(IX-23) + 00005F39 CD 8C 57 3731 CALL LWRD ?0663 + 00005F3C C2 FC 60 3732 JP NZ,?0230 + 00005F3F 3733 ?0229: + 00005F3F 21 01 00 3734 LD HL,1 + 00005F42 E5 3735 PUSH HL + 00005F43 DD 4E F2 3736 LD C,(IX-14) + 00005F46 DD 46 F3 3737 LD B,(IX-13) + 00005F49 2B 3738 DEC HL + 00005F4A ED 42 3739 SBC HL,BC + 00005F4C 7C 3740 LD A,H + 00005F4D 07 3741 RLCA + 00005F4E 9F 3742 SBC A,A + 00005F4F 4F 3743 LD C,A + 00005F50 41 3744 LD B,C + 00005F51 C5 3745 PUSH BC + 00005F52 E5 3746 PUSH HL + 00005F53 CD A9 5B 3747 CALL LWRD ?0665 + 00005F56 F1 3748 POP AF + 00005F57 F1 3749 POP AF + 00005F58 F1 3750 POP AF + 00005F59 AF 3751 XOR A + 00005F5A DD 77 E6 3752 LD (IX-26),A + 00005F5D DD 77 E7 3753 LD (IX-25),A + 00005F60 3754 ?0232: + 00005F60 DD 4E F0 3755 LD C,(IX-16) + 00005F63 DD 46 F1 3756 LD B,(IX-15) + 00005F66 DD 6E E6 3757 LD L,(IX-26) + 00005F69 DD 66 E7 3758 LD H,(IX-25) + 00005F6C F6 80 3759 OR 128 + 00005F6E ED 42 3760 SBC HL,BC + 00005F70 E2 74 5F 3761 JP PO,?0528 + 00005F73 AC 3762 XOR H + 00005F74 3763 ?0528: + 00005F74 F2 A0 5F 3764 JP P,?0231 + 00005F77 3765 ?0233: + 00005F77 DD 4E E8 3766 LD C,(IX-24) + 00005F7A DD 46 E9 3767 LD B,(IX-23) + 00005F7D DD 6E E6 3768 LD L,(IX-26) + 00005F80 DD 66 E7 3769 LD H,(IX-25) + 00005F83 29 3770 ADD HL,HL + 00005F84 DD 5E EC 3771 LD E,(IX-20) + 00005F87 DD 56 ED 3772 LD D,(IX-19) + 00005F8A 19 3773 ADD HL,DE + 00005F8B 5E 3774 LD E,(HL) + 00005F8C 23 3775 INC HL + 00005F8D 56 3776 LD D,(HL) + 00005F8E 3E 00 3777 LD A,BYTE3 dbEvaluateExpression + 00005F90 21 15 6A 3778 LD HL,LWRD dbEvaluateExpression + 00005F93 CD 19 82 3779 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005F96 DD 34 E6 3780 INC (IX-26) + 00005F99 20 C5 3781 JR NZ,?0232 + 00005F9B DD 34 E7 3782 INC (IX-25) + 00005F9E 18 C0 3783 JR ?0232 + 00005FA0 3784 ?0231: + 00005FA0 DD 6E FE 3785 LD L,(IX-2) + 00005FA3 DD 66 FF 3786 LD H,(IX-1) + 00005FA6 23 3787 INC HL + 00005FA7 46 3788 LD B,(HL) + 00005FA8 DD 70 EA 3789 LD (IX-22),B + 00005FAB 23 3790 INC HL + 00005FAC 66 3791 LD H,(HL) + 00005FAD DD 74 EB 3792 LD (IX-21),H + 00005FB0 AF 3793 XOR A + 00005FB1 DD 77 E6 3794 LD (IX-26),A + 00005FB4 DD 77 E7 3795 LD (IX-25),A + 00005FB7 3796 ?0236: + 00005FB7 DD 4E F0 3797 LD C,(IX-16) + 00005FBA DD 46 F1 3798 LD B,(IX-15) + 00005FBD DD 6E E6 3799 LD L,(IX-26) + 00005FC0 DD 66 E7 3800 LD H,(IX-25) + 00005FC3 F6 80 3801 OR 128 + 00005FC5 ED 42 3802 SBC HL,BC + 00005FC7 E2 CB 5F 3803 JP PO,?0530 + 00005FCA AC 3804 XOR H + 00005FCB 3805 ?0530: + 00005FCB F2 C8 60 3806 JP P,?0235 + 00005FCE 3807 ?0237: + 00005FCE 21 04 00 3808 LD HL,4 + 00005FD1 DD 4E EA 3809 LD C,(IX-22) + 00005FD4 DD 46 EB 3810 LD B,(IX-21) + 00005FD7 09 3811 ADD HL,BC + 00005FD8 4E 3812 LD C,(HL) + 00005FD9 23 3813 INC HL + 00005FDA 46 3814 LD B,(HL) + 00005FDB FD E5 3815 PUSH IY + 00005FDD D1 3816 POP DE + 00005FDE 3E 00 3817 LD A,BYTE3 dbFieldSearch + 00005FE0 21 A3 51 3818 LD HL,LWRD dbFieldSearch + 00005FE3 CD 19 82 3819 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005FE6 DD 75 F6 3820 LD (IX-10),L + 00005FE9 DD 74 F7 3821 LD (IX-9),H + 00005FEC 4D 3822 LD C,L + 00005FED 44 3823 LD B,H + 00005FEE FD E5 3824 PUSH IY + 00005FF0 D1 3825 POP DE + 00005FF1 3E 00 3826 LD A,BYTE3 dbFieldOffset + 00005FF3 21 32 51 3827 LD HL,LWRD dbFieldOffset + 00005FF6 CD 19 82 3828 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005FF9 DD 75 F4 3829 LD (IX-12),L + 00005FFC DD 74 F5 3830 LD (IX-11),H + 00005FFF FD 6E 02 3831 LD L,(IY+2) + 00006002 FD 66 03 3832 LD H,(IY+3) + 00006005 E5 3833 PUSH HL + 00006006 DD 6E F6 3834 LD L,(IX-10) + 00006009 DD 66 F7 3835 LD H,(IX-9) + 0000600C 29 3836 ADD HL,HL + 0000600D 29 3837 ADD HL,HL + 0000600E 4D 3838 LD C,L + 0000600F 44 3839 LD B,H + 00006010 29 3840 ADD HL,HL + 00006011 09 3841 ADD HL,BC + 00006012 4D 3842 LD C,L + 00006013 44 3843 LD B,H + 00006014 E1 3844 POP HL + 00006015 09 3845 ADD HL,BC + 00006016 01 09 00 3846 LD BC,9 + 00006019 09 3847 ADD HL,BC + 0000601A 7E 3848 LD A,(HL) + 0000601B FE 53 3849 CP 83 + 0000601D 20 34 3850 JR NZ,?0241 + 0000601F 3851 ?0240: + 0000601F FD 6E 02 3852 LD L,(IY+2) + 00006022 FD 66 03 3853 LD H,(IY+3) + 00006025 E5 3854 PUSH HL + 00006026 DD 6E F6 3855 LD L,(IX-10) + 00006029 DD 66 F7 3856 LD H,(IX-9) + 0000602C 29 3857 ADD HL,HL + 0000602D 29 3858 ADD HL,HL + 0000602E 4D 3859 LD C,L + 0000602F 44 3860 LD B,H + 00006030 29 3861 ADD HL,HL + 00006031 09 3862 ADD HL,BC + 00006032 4D 3863 LD C,L + 00006033 44 3864 LD B,H + 00006034 E1 3865 POP HL + 00006035 09 3866 ADD HL,BC + 00006036 01 0A 00 3867 LD BC,10 + 00006039 09 3868 ADD HL,BC + 0000603A 4E 3869 LD C,(HL) + 0000603B C5 3870 PUSH BC + 0000603C DD 6E E6 3871 LD L,(IX-26) + 0000603F DD 66 E7 3872 LD H,(IX-25) + 00006042 29 3873 ADD HL,HL + 00006043 DD 4E EC 3874 LD C,(IX-20) + 00006046 DD 46 ED 3875 LD B,(IX-19) + 00006049 09 3876 ADD HL,BC + 0000604A 46 3877 LD B,(HL) + 0000604B 23 3878 INC HL + 0000604C 66 3879 LD H,(HL) + 0000604D 68 3880 LD L,B + 0000604E 01 28 00 3881 LD BC,40 + 00006051 18 36 3882 JR ?0536 + 00006053 3883 ?0241: + 00006053 FE 49 3884 CP 73 + 00006055 20 54 3885 JR NZ,?0239 + 00006057 FD 6E 02 3886 LD L,(IY+2) + 0000605A FD 66 03 3887 LD H,(IY+3) + 0000605D E5 3888 PUSH HL + 0000605E DD 6E F6 3889 LD L,(IX-10) + 00006061 DD 66 F7 3890 LD H,(IX-9) + 00006064 29 3891 ADD HL,HL + 00006065 29 3892 ADD HL,HL + 00006066 4D 3893 LD C,L + 00006067 44 3894 LD B,H + 00006068 29 3895 ADD HL,HL + 00006069 09 3896 ADD HL,BC + 0000606A 4D 3897 LD C,L + 0000606B 44 3898 LD B,H + 0000606C E1 3899 POP HL + 0000606D 09 3900 ADD HL,BC + 0000606E 01 0A 00 3901 LD BC,10 + 00006071 09 3902 ADD HL,BC + 00006072 4E 3903 LD C,(HL) + 00006073 C5 3904 PUSH BC + 00006074 DD 6E E6 3905 LD L,(IX-26) + 00006077 DD 66 E7 3906 LD H,(IX-25) + 0000607A 29 3907 ADD HL,HL + 0000607B DD 4E EC 3908 LD C,(IX-20) + 0000607E DD 46 ED 3909 LD B,(IX-19) + 00006081 09 3910 ADD HL,BC + 00006082 46 3911 LD B,(HL) + 00006083 23 3912 INC HL + 00006084 66 3913 LD H,(HL) + 00006085 68 3914 LD L,B + 00006086 01 24 00 3915 LD BC,36 + 00006089 3916 ?0536: + 00006089 09 3917 ADD HL,BC + 0000608A 4D 3918 LD C,L + 0000608B 44 3919 LD B,H + 0000608C 21 04 00 3920 LD HL,4 + 0000608F DD 5E E8 3921 LD E,(IX-24) + 00006092 DD 56 E9 3922 LD D,(IX-23) + 00006095 19 3923 ADD HL,DE + 00006096 56 3924 LD D,(HL) + 00006097 23 3925 INC HL + 00006098 66 3926 LD H,(HL) + 00006099 6A 3927 LD L,D + 0000609A DD 5E F4 3928 LD E,(IX-12) + 0000609D DD 56 F5 3929 LD D,(IX-11) + 000060A0 19 3930 ADD HL,DE + 000060A1 EB 3931 EX DE,HL + 000060A2 3E 00 3932 LD A,BYTE3 memcpy + 000060A4 21 1E 75 3933 LD HL,LWRD memcpy + 000060A7 CD 19 82 3934 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000060AA F1 3935 POP AF + 000060AB 3936 ?0239: + 000060AB DD 6E EA 3937 LD L,(IX-22) + 000060AE DD 66 EB 3938 LD H,(IX-21) + 000060B1 23 3939 INC HL + 000060B2 23 3940 INC HL + 000060B3 46 3941 LD B,(HL) + 000060B4 DD 70 EA 3942 LD (IX-22),B + 000060B7 23 3943 INC HL + 000060B8 66 3944 LD H,(HL) + 000060B9 DD 74 EB 3945 LD (IX-21),H + 000060BC DD 34 E6 3946 INC (IX-26) + 000060BF C2 B7 5F 3947 JP NZ,?0236 + 000060C2 DD 34 E7 3948 INC (IX-25) + 000060C5 C3 B7 5F 3949 JP LWRD ?0236 + 000060C8 3950 ?0235: + 000060C8 FD 6E 08 3951 LD L,(IY+8) + 000060CB FD 66 09 3952 LD H,(IY+9) + 000060CE E5 3953 PUSH HL + 000060CF 21 01 00 3954 LD HL,1 + 000060D2 E5 3955 PUSH HL + 000060D3 DD 4E F2 3956 LD C,(IX-14) + 000060D6 DD 46 F3 3957 LD B,(IX-13) + 000060D9 2E 04 3958 LD L,4 + 000060DB DD 5E E8 3959 LD E,(IX-24) + 000060DE DD 56 E9 3960 LD D,(IX-23) + 000060E1 19 3961 ADD HL,DE + 000060E2 5E 3962 LD E,(HL) + 000060E3 23 3963 INC HL + 000060E4 56 3964 LD D,(HL) + 000060E5 3E 00 3965 LD A,BYTE3 fwrite + 000060E7 21 F6 77 3966 LD HL,LWRD fwrite + 000060EA CD 19 82 3967 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000060ED F1 3968 POP AF + 000060EE F1 3969 POP AF + 000060EF 21 01 00 3970 LD HL,1 + 000060F2 E5 3971 PUSH HL + 000060F3 2B 3972 DEC HL + 000060F4 E5 3973 PUSH HL + 000060F5 E5 3974 PUSH HL + 000060F6 CD A9 5B 3975 CALL LWRD ?0665 + 000060F9 F1 3976 POP AF + 000060FA F1 3977 POP AF + 000060FB F1 3978 POP AF + 000060FC 3979 ?0230: + 000060FC 3980 ?0228: + 000060FC DD 34 EE 3981 INC (IX-18) + 000060FF C2 EA 5E 3982 JP NZ,?0224 + 00006102 DD 34 EF 3983 INC (IX-17) + 00006105 C3 EA 5E 3984 JP LWRD ?0224 + 00006108 3985 ?0223: + 00006108 DD 5E E8 3986 LD E,(IX-24) + 0000610B DD 56 E9 3987 LD D,(IX-23) + 0000610E 3E 00 3988 LD A,BYTE3 dbDeleteRow + 00006110 21 7A 62 3989 LD HL,LWRD dbDeleteRow + 00006113 CD 19 82 3990 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006116 AF 3991 XOR A + 00006117 DD 77 E6 3992 LD (IX-26),A + 0000611A DD 77 E7 3993 LD (IX-25),A + 0000611D 3994 ?0243: + 0000611D DD 4E F0 3995 LD C,(IX-16) + 00006120 DD 46 F1 3996 LD B,(IX-15) + 00006123 DD 6E E6 3997 LD L,(IX-26) + 00006126 DD 66 E7 3998 LD H,(IX-25) + 00006129 F6 80 3999 OR 128 + 0000612B ED 42 4000 SBC HL,BC + 0000612D E2 31 61 4001 JP PO,?0533 + 00006130 AC 4002 XOR H + 00006131 4003 ?0533: + 00006131 F2 57 61 4004 JP P,?0242 + 00006134 4005 ?0244: + 00006134 DD 6E E6 4006 LD L,(IX-26) + 00006137 DD 66 E7 4007 LD H,(IX-25) + 0000613A 29 4008 ADD HL,HL + 0000613B DD 4E EC 4009 LD C,(IX-20) + 0000613E DD 46 ED 4010 LD B,(IX-19) + 00006141 09 4011 ADD HL,BC + 00006142 5E 4012 LD E,(HL) + 00006143 23 4013 INC HL + 00006144 56 4014 LD D,(HL) + 00006145 3E 00 4015 LD A,BYTE3 dbDeleteExpression + 00006147 21 EC 69 4016 LD HL,LWRD dbDeleteExpression + 0000614A CD 19 82 4017 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000614D DD 34 E6 4018 INC (IX-26) + 00006150 20 CB 4019 JR NZ,?0243 + 00006152 DD 34 E7 4020 INC (IX-25) + 00006155 18 C6 4021 JR ?0243 + 00006157 4022 ?0242: + 00006157 DD 5E EC 4023 LD E,(IX-20) + 0000615A DD 56 ED 4024 LD D,(IX-19) + 0000615D CD 90 45 4025 CALL LWRD ?0639 + 00006160 FD E5 4026 PUSH IY + 00006162 D1 4027 POP DE + 00006163 3E 00 4028 LD A,BYTE3 dbTableClose + 00006165 21 C5 50 4029 LD HL,LWRD dbTableClose + 00006168 CD 19 82 4030 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000616B 21 00 00 4031 LD HL,0 + 0000616E DD F9 4032 LD SP,IX + 00006170 C3 C0 45 4033 JP LWRD ?0614 + 00006173 4034 dbExecuteStatement: + 00006173 FD E5 4035 PUSH IY + 00006175 DD E5 4036 PUSH IX + 00006177 D5 4037 PUSH DE + 00006178 FD 21 00 00 4038 LD IY,0 + 0000617C 3E 00 4039 LD A,BYTE3 dbParseStatement + 0000617E 21 0A 4A 4040 LD HL,LWRD dbParseStatement + 00006181 CD 19 82 4041 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006184 E5 4042 PUSH HL + 00006185 DD E1 4043 POP IX + 00006187 7D 4044 LD A,L + 00006188 B4 4045 OR H + 00006189 20 04 4046 JR NZ,?0247 + 0000618B 4047 ?0246: + 0000618B 6F 4048 LD L,A + 0000618C 67 4049 LD H,A + 0000618D 18 4D 4050 JR ?0253 + 0000618F 4051 ?0247: + 0000618F DD 7E 00 4052 LD A,(IX+0) + 00006192 FE 73 4053 CP 115 + 00006194 20 0A 4054 JR NZ,?0250 + 00006196 4055 ?0249: + 00006196 DD E5 4056 PUSH IX + 00006198 D1 4057 POP DE + 00006199 3E 00 4058 LD A,BYTE3 dbExecuteQuery + 0000619B 21 F9 51 4059 LD HL,LWRD dbExecuteQuery + 0000619E 18 28 4060 JR ?0545 + 000061A0 4061 ?0250: + 000061A0 FE 69 4062 CP 105 + 000061A2 20 0A 4063 JR NZ,?0251 + 000061A4 DD E5 4064 PUSH IX + 000061A6 D1 4065 POP DE + 000061A7 3E 00 4066 LD A,BYTE3 dbExecuteInsert + 000061A9 21 AE 57 4067 LD HL,LWRD dbExecuteInsert + 000061AC 18 1A 4068 JR ?0545 + 000061AE 4069 ?0251: + 000061AE FE 64 4070 CP 100 + 000061B0 20 0A 4071 JR NZ,?0252 + 000061B2 DD E5 4072 PUSH IX + 000061B4 D1 4073 POP DE + 000061B5 3E 00 4074 LD A,BYTE3 dbExecuteDelete + 000061B7 21 B7 5B 4075 LD HL,LWRD dbExecuteDelete + 000061BA 18 0C 4076 JR ?0545 + 000061BC 4077 ?0252: + 000061BC FE 75 4078 CP 117 + 000061BE 20 0E 4079 JR NZ,?0248 + 000061C0 DD E5 4080 PUSH IX + 000061C2 D1 4081 POP DE + 000061C3 3E 00 4082 LD A,BYTE3 dbExecuteUpdate + 000061C5 21 B3 5D 4083 LD HL,LWRD dbExecuteUpdate + 000061C8 4084 ?0545: + 000061C8 CD 19 82 4085 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000061CB E5 4086 PUSH HL + 000061CC FD E1 4087 POP IY + 000061CE 4088 ?0248: + 000061CE DD E5 4089 PUSH IX + 000061D0 D1 4090 POP DE + 000061D1 3E 00 4091 LD A,BYTE3 dbStatementClose + 000061D3 21 E3 50 4092 LD HL,LWRD dbStatementClose + 000061D6 CD 19 82 4093 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000061D9 FD E5 4094 PUSH IY + 000061DB E1 4095 POP HL + 000061DC 4096 ?0253: + 000061DC C3 36 48 4097 JP LWRD ?0626 + 000061DF 4098 dbNextRow: + 000061DF FD E5 4099 PUSH IY + 000061E1 DD E5 4100 PUSH IX + 000061E3 F5 4101 PUSH AF + 000061E4 C5 4102 PUSH BC + 000061E5 DD E1 4103 POP IX + 000061E7 D5 4104 PUSH DE + 000061E8 FD E1 4105 POP IY + 000061EA 21 00 00 4106 LD HL,0 + 000061ED 39 4107 ADD HL,SP + 000061EE E5 4108 PUSH HL + 000061EF 3E 00 4109 LD A,BYTE3 dbRecordSize + 000061F1 21 87 51 4110 LD HL,LWRD dbRecordSize + 000061F4 CD 19 82 4111 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000061F7 EB 4112 EX DE,HL + 000061F8 E1 4113 POP HL + 000061F9 73 4114 LD (HL),E + 000061FA 23 4115 INC HL + 000061FB 72 4116 LD (HL),D + 000061FC 21 04 00 4117 LD HL,4 + 000061FF 09 4118 ADD HL,BC + 00006200 7E 4119 LD A,(HL) + 00006201 23 4120 INC HL + 00006202 B6 4121 OR (HL) + 00006203 20 09 4122 JR NZ,?0255 + 00006205 4123 ?0254: + 00006205 CD E4 49 4124 CALL LWRD ?0641 + 00006208 DD 75 04 4125 LD (IX+4),L + 0000620B DD 74 05 4126 LD (IX+5),H + 0000620E 4127 ?0255: + 0000620E FD 4E 04 4128 LD C,(IY+4) + 00006211 FD 46 05 4129 LD B,(IY+5) + 00006214 FD 6E 06 4130 LD L,(IY+6) + 00006217 FD 66 07 4131 LD H,(IY+7) + 0000621A F6 80 4132 OR 128 + 0000621C ED 42 4133 SBC HL,BC + 0000621E E2 22 62 4134 JP PO,?0547 + 00006221 AC 4135 XOR H + 00006222 4136 ?0547: + 00006222 FA 39 62 4137 JP M,?0257 + 00006225 4138 ?0256: + 00006225 DD 36 02 FF 4139 LD (IX+2),255 + 00006229 DD 36 03 FF 4140 LD (IX+3),255 + 0000622D CD 8A 45 4141 CALL LWRD ?0638 + 00006230 AF 4142 XOR A + 00006231 DD 77 04 4143 LD (IX+4),A + 00006234 DD 77 05 4144 LD (IX+5),A + 00006237 18 3E 4145 JR ?0258 + 00006239 4146 ?0257: + 00006239 FD 6E 06 4147 LD L,(IY+6) + 0000623C FD 66 07 4148 LD H,(IY+7) + 0000623F 23 4149 INC HL + 00006240 FD 75 06 4150 LD (IY+6),L + 00006243 FD 74 07 4151 LD (IY+7),H + 00006246 2B 4152 DEC HL + 00006247 DD 75 02 4153 LD (IX+2),L + 0000624A DD 74 03 4154 LD (IX+3),H + 0000624D FD E5 4155 PUSH IY + 0000624F DD E5 4156 PUSH IX + 00006251 E1 4157 POP HL + 00006252 C1 4158 POP BC + 00006253 71 4159 LD (HL),C + 00006254 23 4160 INC HL + 00006255 70 4161 LD (HL),B + 00006256 FD 6E 08 4162 LD L,(IY+8) + 00006259 FD 66 09 4163 LD H,(IY+9) + 0000625C E5 4164 PUSH HL + 0000625D 21 01 00 4165 LD HL,1 + 00006260 E5 4166 PUSH HL + 00006261 2E 04 4167 LD L,4 + 00006263 39 4168 ADD HL,SP + 00006264 4E 4169 LD C,(HL) + 00006265 23 4170 INC HL + 00006266 46 4171 LD B,(HL) + 00006267 DD 5E 04 4172 LD E,(IX+4) + 0000626A DD 56 05 4173 LD D,(IX+5) + 0000626D 3E 00 4174 LD A,BYTE3 fread + 0000626F 21 DD 70 4175 LD HL,LWRD fread + 00006272 CD 19 82 4176 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006275 F1 4177 POP AF + 00006276 F1 4178 POP AF + 00006277 4179 ?0258: + 00006277 C3 56 46 4180 JP LWRD ?0625 + 0000627A 4181 dbDeleteRow: + 0000627A DD E5 4182 PUSH IX + 0000627C D5 4183 PUSH DE + 0000627D DD E1 4184 POP IX + 0000627F 7B 4185 LD A,E + 00006280 B2 4186 OR D + 00006281 28 11 4187 JR Z,?0260 + 00006283 4188 ?0259: + 00006283 DD 7E 04 4189 LD A,(IX+4) + 00006286 DD B6 05 4190 OR (IX+5) + 00006289 28 03 4191 JR Z,?0262 + 0000628B 4192 ?0261: + 0000628B CD 8A 45 4193 CALL LWRD ?0638 + 0000628E 4194 ?0262: + 0000628E DD E5 4195 PUSH IX + 00006290 D1 4196 POP DE + 00006291 CD 90 45 4197 CALL LWRD ?0639 + 00006294 4198 ?0260: + 00006294 DD E1 4199 POP IX + 00006296 C3 A9 81 4200 JP LWRD ?BANK_FAST_LEAVE_L08 + 00006299 4201 dbNewRow: + 00006299 C5 4202 PUSH BC + 0000629A D5 4203 PUSH DE + 0000629B DD E5 4204 PUSH IX + 0000629D 11 06 00 4205 LD DE,6 + 000062A0 CD E4 49 4206 CALL LWRD ?0641 + 000062A3 E5 4207 PUSH HL + 000062A4 DD E1 4208 POP IX + 000062A6 01 04 00 4209 LD BC,4 + 000062A9 09 4210 ADD HL,BC + 000062AA AF 4211 XOR A + 000062AB 77 4212 LD (HL),A + 000062AC 23 4213 INC HL + 000062AD 77 4214 LD (HL),A + 000062AE DD E5 4215 PUSH IX + 000062B0 E1 4216 POP HL + 000062B1 77 4217 LD (HL),A + 000062B2 23 4218 INC HL + 000062B3 77 4219 LD (HL),A + 000062B4 DD 36 02 FF 4220 LD (IX+2),255 + 000062B8 DD 36 03 FF 4221 LD (IX+3),255 + 000062BC DD E5 4222 PUSH IX + 000062BE E1 4223 POP HL + 000062BF DD E1 4224 POP IX + 000062C1 D1 4225 POP DE + 000062C2 C1 4226 POP BC + 000062C3 C3 A9 81 4227 JP LWRD ?BANK_FAST_LEAVE_L08 + 000062C6 4228 dbGetString: + 000062C6 FD E5 4229 PUSH IY + 000062C8 DD E5 4230 PUSH IX + 000062CA DD 21 00 00 4231 LD IX,0 + 000062CE DD 39 4232 ADD IX,SP + 000062D0 C5 4233 PUSH BC + 000062D1 F5 4234 PUSH AF + 000062D2 F5 4235 PUSH AF + 000062D3 F5 4236 PUSH AF + 000062D4 D5 4237 PUSH DE + 000062D5 FD E1 4238 POP IY + 000062D7 21 04 00 4239 LD HL,4 + 000062DA 19 4240 ADD HL,DE + 000062DB 7E 4241 LD A,(HL) + 000062DC DD 77 F8 4242 LD (IX-8),A + 000062DF 23 4243 INC HL + 000062E0 66 4244 LD H,(HL) + 000062E1 DD 74 F9 4245 LD (IX-7),H + 000062E4 EB 4246 EX DE,HL + 000062E5 5E 4247 LD E,(HL) + 000062E6 23 4248 INC HL + 000062E7 56 4249 LD D,(HL) + 000062E8 3E 00 4250 LD A,BYTE3 dbFieldOffset + 000062EA 21 32 51 4251 LD HL,LWRD dbFieldOffset + 000062ED CD 19 82 4252 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000062F0 DD 75 FA 4253 LD (IX-6),L + 000062F3 DD 74 FB 4254 LD (IX-5),H + 000062F6 FD 6E 00 4255 LD L,(IY+0) + 000062F9 FD 66 01 4256 LD H,(IY+1) + 000062FC 23 4257 INC HL + 000062FD 23 4258 INC HL + 000062FE 46 4259 LD B,(HL) + 000062FF 23 4260 INC HL + 00006300 66 4261 LD H,(HL) + 00006301 68 4262 LD L,B + 00006302 E5 4263 PUSH HL + 00006303 DD 6E FE 4264 LD L,(IX-2) + 00006306 DD 66 FF 4265 LD H,(IX-1) + 00006309 29 4266 ADD HL,HL + 0000630A 29 4267 ADD HL,HL + 0000630B 4D 4268 LD C,L + 0000630C 44 4269 LD B,H + 0000630D 29 4270 ADD HL,HL + 0000630E 09 4271 ADD HL,BC + 0000630F 4D 4272 LD C,L + 00006310 44 4273 LD B,H + 00006311 E1 4274 POP HL + 00006312 09 4275 ADD HL,BC + 00006313 01 09 00 4276 LD BC,9 + 00006316 09 4277 ADD HL,BC + 00006317 7E 4278 LD A,(HL) + 00006318 FE 53 4279 CP 83 + 0000631A 20 1B 4280 JR NZ,?0265 + 0000631C 4281 ?0264: + 0000631C DD 6E FA 4282 LD L,(IX-6) + 0000631F DD 66 FB 4283 LD H,(IX-5) + 00006322 DD 4E F8 4284 LD C,(IX-8) + 00006325 DD 46 F9 4285 LD B,(IX-7) + 00006328 09 4286 ADD HL,BC + 00006329 4D 4287 LD C,L + 0000632A 44 4288 LD B,H + 0000632B DD 5E 08 4289 LD E,(IX+8) + 0000632E DD 56 09 4290 LD D,(IX+9) + 00006331 CD 02 4A 4291 CALL LWRD ?0651 + 00006334 C3 CF 63 4292 JP LWRD ?0270 + 00006337 4293 ?0265: + 00006337 FE 49 4294 CP 73 + 00006339 C2 CF 63 4295 JP NZ,?0270 + 0000633C FD 6E 00 4296 LD L,(IY+0) + 0000633F FD 66 01 4297 LD H,(IY+1) + 00006342 23 4298 INC HL + 00006343 23 4299 INC HL + 00006344 46 4300 LD B,(HL) + 00006345 23 4301 INC HL + 00006346 66 4302 LD H,(HL) + 00006347 68 4303 LD L,B + 00006348 E5 4304 PUSH HL + 00006349 DD 6E FE 4305 LD L,(IX-2) + 0000634C DD 66 FF 4306 LD H,(IX-1) + 0000634F 29 4307 ADD HL,HL + 00006350 29 4308 ADD HL,HL + 00006351 4D 4309 LD C,L + 00006352 44 4310 LD B,H + 00006353 29 4311 ADD HL,HL + 00006354 09 4312 ADD HL,BC + 00006355 4D 4313 LD C,L + 00006356 44 4314 LD B,H + 00006357 E1 4315 POP HL + 00006358 09 4316 ADD HL,BC + 00006359 01 0A 00 4317 LD BC,10 + 0000635C 09 4318 ADD HL,BC + 0000635D 46 4319 LD B,(HL) + 0000635E 05 4320 DEC B + 0000635F 05 4321 DEC B + 00006360 20 21 4322 JR NZ,?0267 + 00006362 4323 ?0266: + 00006362 C5 4324 PUSH BC + 00006363 DD 4E 08 4325 LD C,(IX+8) + 00006366 DD 46 09 4326 LD B,(IX+9) + 00006369 DD 6E FA 4327 LD L,(IX-6) + 0000636C DD 66 FB 4328 LD H,(IX-5) + 0000636F DD 5E F8 4329 LD E,(IX-8) + 00006372 DD 56 F9 4330 LD D,(IX-7) + 00006375 19 4331 ADD HL,DE + 00006376 5E 4332 LD E,(HL) + 00006377 23 4333 INC HL + 00006378 56 4334 LD D,(HL) + 00006379 3E 01 4335 LD A,BYTE3 itoa + 0000637B 21 94 41 4336 LD HL,LWRD itoa + 0000637E CD 19 82 4337 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006381 18 4B 4338 JR ?0548 + 00006383 4339 ?0267: + 00006383 FD 6E 00 4340 LD L,(IY+0) + 00006386 FD 66 01 4341 LD H,(IY+1) + 00006389 23 4342 INC HL + 0000638A 23 4343 INC HL + 0000638B 46 4344 LD B,(HL) + 0000638C 23 4345 INC HL + 0000638D 66 4346 LD H,(HL) + 0000638E 68 4347 LD L,B + 0000638F E5 4348 PUSH HL + 00006390 DD 6E FE 4349 LD L,(IX-2) + 00006393 DD 66 FF 4350 LD H,(IX-1) + 00006396 29 4351 ADD HL,HL + 00006397 29 4352 ADD HL,HL + 00006398 4D 4353 LD C,L + 00006399 44 4354 LD B,H + 0000639A 29 4355 ADD HL,HL + 0000639B 09 4356 ADD HL,BC + 0000639C 4D 4357 LD C,L + 0000639D 44 4358 LD B,H + 0000639E E1 4359 POP HL + 0000639F 09 4360 ADD HL,BC + 000063A0 01 0A 00 4361 LD BC,10 + 000063A3 09 4362 ADD HL,BC + 000063A4 7E 4363 LD A,(HL) + 000063A5 FE 04 4364 CP 4 + 000063A7 20 26 4365 JR NZ,?0270 + 000063A9 4366 ?0269: + 000063A9 C5 4367 PUSH BC + 000063AA DD 6E 08 4368 LD L,(IX+8) + 000063AD DD 66 09 4369 LD H,(IX+9) + 000063B0 E5 4370 PUSH HL + 000063B1 DD 6E FA 4371 LD L,(IX-6) + 000063B4 DD 66 FB 4372 LD H,(IX-5) + 000063B7 DD 4E F8 4373 LD C,(IX-8) + 000063BA DD 46 F9 4374 LD B,(IX-7) + 000063BD 09 4375 ADD HL,BC + 000063BE 5E 4376 LD E,(HL) + 000063BF 23 4377 INC HL + 000063C0 56 4378 LD D,(HL) + 000063C1 23 4379 INC HL + 000063C2 4E 4380 LD C,(HL) + 000063C3 23 4381 INC HL + 000063C4 46 4382 LD B,(HL) + 000063C5 3E 01 4383 LD A,BYTE3 ltoa + 000063C7 21 36 49 4384 LD HL,LWRD ltoa + 000063CA CD 19 82 4385 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000063CD F1 4386 POP AF + 000063CE 4387 ?0548: + 000063CE F1 4388 POP AF + 000063CF 4389 ?0270: + 000063CF 4390 ?0268: + 000063CF 4391 ?0263: + 000063CF C3 D0 49 4392 JP LWRD ?0630 + 000063D2 4393 dbGetInt: + 000063D2 FD E5 4394 PUSH IY + 000063D4 DD E5 4395 PUSH IX + 000063D6 C5 4396 PUSH BC + 000063D7 F5 4397 PUSH AF + 000063D8 D5 4398 PUSH DE + 000063D9 DD E1 4399 POP IX + 000063DB 21 04 00 4400 LD HL,4 + 000063DE 19 4401 ADD HL,DE + 000063DF 7E 4402 LD A,(HL) + 000063E0 23 4403 INC HL + 000063E1 66 4404 LD H,(HL) + 000063E2 6F 4405 LD L,A + 000063E3 E5 4406 PUSH HL + 000063E4 FD E1 4407 POP IY + 000063E6 21 00 00 4408 LD HL,0 + 000063E9 39 4409 ADD HL,SP + 000063EA E5 4410 PUSH HL + 000063EB EB 4411 EX DE,HL + 000063EC 5E 4412 LD E,(HL) + 000063ED 23 4413 INC HL + 000063EE 56 4414 LD D,(HL) + 000063EF 3E 00 4415 LD A,BYTE3 dbFieldOffset + 000063F1 21 32 51 4416 LD HL,LWRD dbFieldOffset + 000063F4 CD 19 82 4417 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000063F7 4D 4418 LD C,L + 000063F8 44 4419 LD B,H + 000063F9 E1 4420 POP HL + 000063FA 71 4421 LD (HL),C + 000063FB 23 4422 INC HL + 000063FC 70 4423 LD (HL),B + 000063FD DD 6E 00 4424 LD L,(IX+0) + 00006400 DD 66 01 4425 LD H,(IX+1) + 00006403 23 4426 INC HL + 00006404 23 4427 INC HL + 00006405 46 4428 LD B,(HL) + 00006406 23 4429 INC HL + 00006407 66 4430 LD H,(HL) + 00006408 68 4431 LD L,B + 00006409 E5 4432 PUSH HL + 0000640A 21 04 00 4433 LD HL,4 + 0000640D 39 4434 ADD HL,SP + 0000640E 46 4435 LD B,(HL) + 0000640F 23 4436 INC HL + 00006410 66 4437 LD H,(HL) + 00006411 68 4438 LD L,B + 00006412 29 4439 ADD HL,HL + 00006413 29 4440 ADD HL,HL + 00006414 4D 4441 LD C,L + 00006415 44 4442 LD B,H + 00006416 29 4443 ADD HL,HL + 00006417 09 4444 ADD HL,BC + 00006418 4D 4445 LD C,L + 00006419 44 4446 LD B,H + 0000641A E1 4447 POP HL + 0000641B 09 4448 ADD HL,BC + 0000641C 01 09 00 4449 LD BC,9 + 0000641F 09 4450 ADD HL,BC + 00006420 7E 4451 LD A,(HL) + 00006421 FE 53 4452 CP 83 + 00006423 20 16 4453 JR NZ,?0273 + 00006425 4454 ?0272: + 00006425 68 4455 LD L,B + 00006426 60 4456 LD H,B + 00006427 39 4457 ADD HL,SP + 00006428 46 4458 LD B,(HL) + 00006429 23 4459 INC HL + 0000642A 66 4460 LD H,(HL) + 0000642B 68 4461 LD L,B + 0000642C FD E5 4462 PUSH IY + 0000642E C1 4463 POP BC + 0000642F 09 4464 ADD HL,BC + 00006430 EB 4465 EX DE,HL + 00006431 3E 00 4466 LD A,BYTE3 atoi + 00006433 21 43 7F 4467 LD HL,LWRD atoi + 00006436 CD 19 82 4468 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006439 18 13 4469 JR ?0274 + 0000643B 4470 ?0273: + 0000643B FE 49 4471 CP 73 + 0000643D 68 4472 LD L,B + 0000643E 60 4473 LD H,B + 0000643F 20 0D 4474 JR NZ,?0274 + 00006441 39 4475 ADD HL,SP + 00006442 46 4476 LD B,(HL) + 00006443 23 4477 INC HL + 00006444 66 4478 LD H,(HL) + 00006445 68 4479 LD L,B + 00006446 FD E5 4480 PUSH IY + 00006448 C1 4481 POP BC + 00006449 09 4482 ADD HL,BC + 0000644A 46 4483 LD B,(HL) + 0000644B 23 4484 INC HL + 0000644C 66 4485 LD H,(HL) + 0000644D 68 4486 LD L,B + 0000644E 4487 ?0274: + 0000644E 4488 ?0275: + 0000644E F1 4489 POP AF + 0000644F C3 36 48 4490 JP LWRD ?0626 + 00006452 4491 ?0271: + 00006452 4492 dbGetLong: + 00006452 FD E5 4493 PUSH IY + 00006454 DD E5 4494 PUSH IX + 00006456 DD 21 00 00 4495 LD IX,0 + 0000645A DD 39 4496 ADD IX,SP + 0000645C C5 4497 PUSH BC + 0000645D F5 4498 PUSH AF + 0000645E F5 4499 PUSH AF + 0000645F D5 4500 PUSH DE + 00006460 FD E1 4501 POP IY + 00006462 21 04 00 4502 LD HL,4 + 00006465 19 4503 ADD HL,DE + 00006466 7E 4504 LD A,(HL) + 00006467 DD 77 FA 4505 LD (IX-6),A + 0000646A 23 4506 INC HL + 0000646B 66 4507 LD H,(HL) + 0000646C DD 74 FB 4508 LD (IX-5),H + 0000646F EB 4509 EX DE,HL + 00006470 5E 4510 LD E,(HL) + 00006471 23 4511 INC HL + 00006472 56 4512 LD D,(HL) + 00006473 3E 00 4513 LD A,BYTE3 dbFieldOffset + 00006475 21 32 51 4514 LD HL,LWRD dbFieldOffset + 00006478 CD 19 82 4515 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000647B DD 75 FC 4516 LD (IX-4),L + 0000647E DD 74 FD 4517 LD (IX-3),H + 00006481 FD 6E 00 4518 LD L,(IY+0) + 00006484 FD 66 01 4519 LD H,(IY+1) + 00006487 23 4520 INC HL + 00006488 23 4521 INC HL + 00006489 46 4522 LD B,(HL) + 0000648A 23 4523 INC HL + 0000648B 66 4524 LD H,(HL) + 0000648C 68 4525 LD L,B + 0000648D E5 4526 PUSH HL + 0000648E DD 6E FE 4527 LD L,(IX-2) + 00006491 DD 66 FF 4528 LD H,(IX-1) + 00006494 29 4529 ADD HL,HL + 00006495 29 4530 ADD HL,HL + 00006496 4D 4531 LD C,L + 00006497 44 4532 LD B,H + 00006498 29 4533 ADD HL,HL + 00006499 09 4534 ADD HL,BC + 0000649A 4D 4535 LD C,L + 0000649B 44 4536 LD B,H + 0000649C E1 4537 POP HL + 0000649D 09 4538 ADD HL,BC + 0000649E 01 09 00 4539 LD BC,9 + 000064A1 09 4540 ADD HL,BC + 000064A2 7E 4541 LD A,(HL) + 000064A3 FE 53 4542 CP 83 + 000064A5 20 18 4543 JR NZ,?0278 + 000064A7 4544 ?0277: + 000064A7 DD 6E FC 4545 LD L,(IX-4) + 000064AA DD 66 FD 4546 LD H,(IX-3) + 000064AD DD 4E FA 4547 LD C,(IX-6) + 000064B0 DD 46 FB 4548 LD B,(IX-5) + 000064B3 09 4549 ADD HL,BC + 000064B4 EB 4550 EX DE,HL + 000064B5 3E 01 4551 LD A,BYTE3 atol + 000064B7 21 20 49 4552 LD HL,LWRD atol + 000064BA CD 19 82 4553 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000064BD 18 4F 4554 JR ?0282 + 000064BF 4555 ?0278: + 000064BF FE 49 4556 CP 73 + 000064C1 20 48 4557 JR NZ,?0281 + 000064C3 FD 6E 00 4558 LD L,(IY+0) + 000064C6 FD 66 01 4559 LD H,(IY+1) + 000064C9 23 4560 INC HL + 000064CA 23 4561 INC HL + 000064CB 46 4562 LD B,(HL) + 000064CC 23 4563 INC HL + 000064CD 66 4564 LD H,(HL) + 000064CE 68 4565 LD L,B + 000064CF E5 4566 PUSH HL + 000064D0 DD 6E FE 4567 LD L,(IX-2) + 000064D3 DD 66 FF 4568 LD H,(IX-1) + 000064D6 29 4569 ADD HL,HL + 000064D7 29 4570 ADD HL,HL + 000064D8 4D 4571 LD C,L + 000064D9 44 4572 LD B,H + 000064DA 29 4573 ADD HL,HL + 000064DB 09 4574 ADD HL,BC + 000064DC 4D 4575 LD C,L + 000064DD 44 4576 LD B,H + 000064DE E1 4577 POP HL + 000064DF 09 4578 ADD HL,BC + 000064E0 01 0A 00 4579 LD BC,10 + 000064E3 09 4580 ADD HL,BC + 000064E4 46 4581 LD B,(HL) + 000064E5 05 4582 DEC B + 000064E6 05 4583 DEC B + 000064E7 DD 6E FC 4584 LD L,(IX-4) + 000064EA DD 66 FD 4585 LD H,(IX-3) + 000064ED DD 4E FA 4586 LD C,(IX-6) + 000064F0 DD 46 FB 4587 LD B,(IX-5) + 000064F3 09 4588 ADD HL,BC + 000064F4 20 0B 4589 JR NZ,?0280 + 000064F6 4590 ?0279: + 000064F6 46 4591 LD B,(HL) + 000064F7 23 4592 INC HL + 000064F8 66 4593 LD H,(HL) + 000064F9 7C 4594 LD A,H + 000064FA 68 4595 LD L,B + 000064FB 07 4596 RLCA + 000064FC 9F 4597 SBC A,A + 000064FD 4F 4598 LD C,A + 000064FE 41 4599 LD B,C + 000064FF 18 0D 4600 JR ?0282 + 00006501 4601 ?0280: + 00006501 5E 4602 LD E,(HL) + 00006502 23 4603 INC HL + 00006503 56 4604 LD D,(HL) + 00006504 23 4605 INC HL + 00006505 4E 4606 LD C,(HL) + 00006506 23 4607 INC HL + 00006507 46 4608 LD B,(HL) + 00006508 EB 4609 EX DE,HL + 00006509 18 03 4610 JR ?0282 + 0000650B 4611 ?0281: + 0000650B 48 4612 LD C,B + 0000650C 69 4613 LD L,C + 0000650D 60 4614 LD H,B + 0000650E 4615 ?0282: + 0000650E C3 D0 49 4616 JP LWRD ?0630 + 00006511 4617 ?0276: + 00006511 4618 dbOperatorPrecedence: + 00006511 D5 4619 PUSH DE + 00006512 CD E2 81 4620 CALL LWRD ?C_V_SWITCH_L06 + 00006515 10 00 4621 DEFW 16 + 00006517 00 4622 DEFB 0 + 00006518 26 4623 DEFB 38 + 00006519 28 4624 DEFB 40 + 0000651A 29 4625 DEFB 41 + 0000651B 2A 4626 DEFB 42 + 0000651C 2B 4627 DEFB 43 + 0000651D 2D 4628 DEFB 45 + 0000651E 2F 4629 DEFB 47 + 0000651F 3B 4630 DEFB 59 + 00006520 3C 4631 DEFB 60 + 00006521 3D 4632 DEFB 61 + 00006522 3E 4633 DEFB 62 + 00006523 5B 4634 DEFB 91 + 00006524 5D 4635 DEFB 93 + 00006525 5E 4636 DEFB 94 + 00006526 7C 4637 DEFB 124 + 00006527 65 65 4638 DEFW ?0291 + 00006529 5D 65 4639 DEFW ?0289 + 0000652B 4D 65 4640 DEFW ?0285 + 0000652D 59 65 4641 DEFW ?0288 + 0000652F 59 65 4642 DEFW ?0288 + 00006531 59 65 4643 DEFW ?0288 + 00006533 59 65 4644 DEFW ?0288 + 00006535 59 65 4645 DEFW ?0288 + 00006537 61 65 4646 DEFW ?0290 + 00006539 51 65 4647 DEFW ?0286 + 0000653B 55 65 4648 DEFW ?0287 + 0000653D 55 65 4649 DEFW ?0287 + 0000653F 51 65 4650 DEFW ?0286 + 00006541 61 65 4651 DEFW ?0290 + 00006543 49 65 4652 DEFW ?0284 + 00006545 5D 65 4653 DEFW ?0289 + 00006547 61 65 4654 DEFW ?0290 + 00006549 4655 ?0284: + 00006549 2E 01 4656 LD L,1 + 0000654B 18 1A 4657 JR ?0292 + 0000654D 4658 ?0285: + 0000654D 2E 02 4659 LD L,2 + 0000654F 18 16 4660 JR ?0292 + 00006551 4661 ?0286: + 00006551 2E 03 4662 LD L,3 + 00006553 18 12 4663 JR ?0292 + 00006555 4664 ?0287: + 00006555 2E 04 4665 LD L,4 + 00006557 18 0E 4666 JR ?0292 + 00006559 4667 ?0288: + 00006559 2E 05 4668 LD L,5 + 0000655B 18 0A 4669 JR ?0292 + 0000655D 4670 ?0289: + 0000655D 2E 06 4671 LD L,6 + 0000655F 18 06 4672 JR ?0292 + 00006561 4673 ?0290: + 00006561 2E 3F 4674 LD L,63 + 00006563 18 02 4675 JR ?0292 + 00006565 4676 ?0291: + 00006565 2E 00 4677 LD L,0 + 00006567 4678 ?0292: + 00006567 F1 4679 POP AF + 00006568 C3 A9 81 4680 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000656B 4681 ?0283: + 0000656B 4682 dbNewExpression: + 0000656B DD E5 4683 PUSH IX + 0000656D C5 4684 PUSH BC + 0000656E D5 4685 PUSH DE + 0000656F 11 4E 00 4686 LD DE,78 + 00006572 CD E4 49 4687 CALL LWRD ?0641 + 00006575 E5 4688 PUSH HL + 00006576 DD E1 4689 POP IX + 00006578 23 4690 INC HL + 00006579 23 4691 INC HL + 0000657A 23 4692 INC HL + 0000657B 36 00 4693 LD (HL),0 + 0000657D AF 4694 XOR A + 0000657E DD 77 48 4695 LD (IX+72),A + 00006581 DD 77 49 4696 LD (IX+73),A + 00006584 DD 77 4A 4697 LD (IX+74),A + 00006587 DD 77 4B 4698 LD (IX+75),A + 0000658A DD 77 02 4699 LD (IX+2),A + 0000658D 6F 4700 LD L,A + 0000658E 67 4701 LD H,A + 0000658F 39 4702 ADD HL,SP + 00006590 46 4703 LD B,(HL) + 00006591 DD 70 4C 4704 LD (IX+76),B + 00006594 23 4705 INC HL + 00006595 66 4706 LD H,(HL) + 00006596 DD 74 4D 4707 LD (IX+77),H + 00006599 DD 71 00 4708 LD (IX+0),C + 0000659C DD 77 24 4709 LD (IX+36),A + 0000659F DD 77 25 4710 LD (IX+37),A + 000065A2 DD 77 26 4711 LD (IX+38),A + 000065A5 DD 77 27 4712 LD (IX+39),A + 000065A8 DD E5 4713 PUSH IX + 000065AA E1 4714 POP HL + 000065AB F1 4715 POP AF + 000065AC F1 4716 POP AF + 000065AD DD E1 4717 POP IX + 000065AF C3 A9 81 4718 JP LWRD ?BANK_FAST_LEAVE_L08 + 000065B2 4719 dbParseExpression: + 000065B2 FD E5 4720 PUSH IY + 000065B4 DD E5 4721 PUSH IX + 000065B6 DD 21 00 00 4722 LD IX,0 + 000065BA DD 39 4723 ADD IX,SP + 000065BC C5 4724 PUSH BC + 000065BD D5 4725 PUSH DE + 000065BE 21 B2 FF 4726 LD HL,65458 + 000065C1 39 4727 ADD HL,SP + 000065C2 F9 4728 LD SP,HL + 000065C3 AF 4729 XOR A + 000065C4 DD 77 F8 4730 LD (IX-8),A + 000065C7 DD 77 F9 4731 LD (IX-7),A + 000065CA 7B 4732 LD A,E + 000065CB B2 4733 OR D + 000065CC 20 24 4734 JR NZ,?0294 + 000065CE 4735 ?0293: + 000065CE 0E 01 4736 LD C,1 + 000065D0 5F 4737 LD E,A + 000065D1 57 4738 LD D,A + 000065D2 CD B4 69 4739 CALL LWRD ?0666 + 000065D5 DD 75 AE 4740 LD (IX-82),L + 000065D8 DD 74 AF 4741 LD (IX-81),H + 000065DB 01 04 00 4742 LD BC,4 + 000065DE 09 4743 ADD HL,BC + 000065DF 36 31 4744 LD (HL),49 + 000065E1 21 05 00 4745 LD HL,5 + 000065E4 DD 4E AE 4746 LD C,(IX-82) + 000065E7 DD 46 AF 4747 LD B,(IX-81) + 000065EA 09 4748 ADD HL,BC + 000065EB 36 00 4749 LD (HL),0 + 000065ED 69 4750 LD L,C + 000065EE 60 4751 LD H,B + 000065EF C3 AC 69 4752 JP LWRD ?0356 + 000065F2 4753 ?0294: + 000065F2 AF 4754 XOR A + 000065F3 DD 77 F6 4755 LD (IX-10),A + 000065F6 DD 77 F7 4756 LD (IX-9),A + 000065F9 4757 ?0296: + 000065F9 01 40 80 4758 LD BC,32832 + 000065FC DD 6E F6 4759 LD L,(IX-10) + 000065FF DD 66 F7 4760 LD H,(IX-9) + 00006602 78 4761 LD A,B + 00006603 AC 4762 XOR H + 00006604 67 4763 LD H,A + 00006605 ED 42 4764 SBC HL,BC + 00006607 30 16 4765 JR NC,?0295 + 00006609 4766 ?0297: + 00006609 21 06 00 4767 LD HL,6 + 0000660C 39 4768 ADD HL,SP + 0000660D DD 4E F6 4769 LD C,(IX-10) + 00006610 DD 46 F7 4770 LD B,(IX-9) + 00006613 09 4771 ADD HL,BC + 00006614 36 00 4772 LD (HL),0 + 00006616 03 4773 INC BC + 00006617 DD 71 F6 4774 LD (IX-10),C + 0000661A DD 70 F7 4775 LD (IX-9),B + 0000661D 18 DA 4776 JR ?0296 + 0000661F 4777 ?0295: + 0000661F 0E 03 4778 LD C,3 + 00006621 11 00 00 4779 LD DE,0 + 00006624 CD B4 69 4780 CALL LWRD ?0666 + 00006627 DD 75 AE 4781 LD (IX-82),L + 0000662A DD 74 AF 4782 LD (IX-81),H + 0000662D E5 4783 PUSH HL + 0000662E FD E1 4784 POP IY + 00006630 4785 ?0301: + 00006630 AF 4786 XOR A + 00006631 DD 77 B2 4787 LD (IX-78),A + 00006634 DD 77 B3 4788 LD (IX-77),A + 00006637 4789 ?0302: + 00006637 DD 6E FE 4790 LD L,(IX-2) + 0000663A DD 66 FF 4791 LD H,(IX-1) + 0000663D 46 4792 LD B,(HL) + 0000663E 23 4793 INC HL + 0000663F 66 4794 LD H,(HL) + 00006640 68 4795 LD L,B + 00006641 DD 4E FC 4796 LD C,(IX-4) + 00006644 DD 46 FD 4797 LD B,(IX-3) + 00006647 09 4798 ADD HL,BC + 00006648 5E 4799 LD E,(HL) + 00006649 3E 00 4800 LD A,BYTE3 dbOperatorPrecedence + 0000664B 21 11 65 4801 LD HL,LWRD dbOperatorPrecedence + 0000664E CD 19 82 4802 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006651 26 00 4803 LD H,0 + 00006653 DD 75 F4 4804 LD (IX-12),L + 00006656 DD 74 F5 4805 LD (IX-11),H + 00006659 7D 4806 LD A,L + 0000665A B7 4807 OR A + 0000665B 20 1E 4808 JR NZ,?0304 + 0000665D 4809 ?0303: + 0000665D DD 6E FE 4810 LD L,(IX-2) + 00006660 DD 66 FF 4811 LD H,(IX-1) + 00006663 46 4812 LD B,(HL) + 00006664 23 4813 INC HL + 00006665 66 4814 LD H,(HL) + 00006666 68 4815 LD L,B + 00006667 DD 46 FD 4816 LD B,(IX-3) + 0000666A 09 4817 ADD HL,BC + 0000666B 46 4818 LD B,(HL) + 0000666C 21 06 00 4819 LD HL,6 + 0000666F 39 4820 ADD HL,SP + 00006670 DD 5E F8 4821 LD E,(IX-8) + 00006673 DD 56 F9 4822 LD D,(IX-7) + 00006676 19 4823 ADD HL,DE + 00006677 70 4824 LD (HL),B + 00006678 C3 58 69 4825 JP LWRD ?0312 + 0000667B 4826 ?0304: + 0000667B 3E 01 4827 LD A,1 + 0000667D AD 4828 XOR L + 0000667E 20 5E 4829 JR NZ,?0307 + 00006680 4830 ?0306: + 00006680 DD 6E FE 4831 LD L,(IX-2) + 00006683 DD 66 FF 4832 LD H,(IX-1) + 00006686 46 4833 LD B,(HL) + 00006687 23 4834 INC HL + 00006688 66 4835 LD H,(HL) + 00006689 68 4836 LD L,B + 0000668A DD 46 FD 4837 LD B,(IX-3) + 0000668D 09 4838 ADD HL,BC + 0000668E 7E 4839 LD A,(HL) + 0000668F FE 29 4840 CP 41 + 00006691 20 08 4841 JR NZ,?0309 + 00006693 4842 ?0308: + 00006693 DD 36 F4 3F 4843 LD (IX-12),63 + 00006697 DD 36 F5 00 4844 LD (IX-11),0 + 0000669B 4845 ?0309: + 0000669B DD 6E FE 4846 LD L,(IX-2) + 0000669E DD 66 FF 4847 LD H,(IX-1) + 000066A1 46 4848 LD B,(HL) + 000066A2 23 4849 INC HL + 000066A3 66 4850 LD H,(HL) + 000066A4 68 4851 LD L,B + 000066A5 DD 46 FD 4852 LD B,(IX-3) + 000066A8 09 4853 ADD HL,BC + 000066A9 7E 4854 LD A,(HL) + 000066AA FE 28 4855 CP 40 + 000066AC C2 58 69 4856 JP NZ,?0312 + 000066AF 4857 ?0310: + 000066AF DD 6E FE 4858 LD L,(IX-2) + 000066B2 DD 66 FF 4859 LD H,(IX-1) + 000066B5 34 4860 INC (HL) + 000066B6 23 4861 INC HL + 000066B7 20 01 4862 JR NZ,?0549 + 000066B9 34 4863 INC (HL) + 000066BA 4864 ?0549: + 000066BA DD 4E FE 4865 LD C,(IX-2) + 000066BD DD 46 FF 4866 LD B,(IX-1) + 000066C0 DD 5E FC 4867 LD E,(IX-4) + 000066C3 DD 56 FD 4868 LD D,(IX-3) + 000066C6 3E 00 4869 LD A,BYTE3 dbParseExpression + 000066C8 21 B2 65 4870 LD HL,LWRD dbParseExpression + 000066CB CD 19 82 4871 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000066CE DD 75 B2 4872 LD (IX-78),L + 000066D1 DD 74 B3 4873 LD (IX-77),H + 000066D4 AF 4874 XOR A + 000066D5 DD 77 F8 4875 LD (IX-8),A + 000066D8 DD 77 F9 4876 LD (IX-7),A + 000066DB C3 37 66 4877 JP LWRD ?0302 + 000066DE 4878 ?0311: + 000066DE 4879 ?0307: + 000066DE 2E 06 4880 LD L,6 + 000066E0 39 4881 ADD HL,SP + 000066E1 DD 4E F8 4882 LD C,(IX-8) + 000066E4 DD 46 F9 4883 LD B,(IX-7) + 000066E7 09 4884 ADD HL,BC + 000066E8 36 00 4885 LD (HL),0 + 000066EA FD 7E 48 4886 LD A,(IY+72) + 000066ED FD B6 49 4887 OR (IY+73) + 000066F0 20 46 4888 JR NZ,?0314 + 000066F2 4889 ?0313: + 000066F2 DD 7E B2 4890 LD A,(IX-78) + 000066F5 DD B6 B3 4891 OR (IX-77) + 000066F8 20 1A 4892 JR NZ,?0316 + 000066FA 4893 ?0315: + 000066FA CD AF 69 4894 CALL LWRD ?0667 + 000066FD FD 75 48 4895 LD (IY+72),L + 00006700 FD 74 49 4896 LD (IY+73),H + 00006703 21 06 00 4897 LD HL,6 + 00006706 39 4898 ADD HL,SP + 00006707 4D 4899 LD C,L + 00006708 44 4900 LD B,H + 00006709 FD 6E 48 4901 LD L,(IY+72) + 0000670C FD 66 49 4902 LD H,(IY+73) + 0000670F CD FD 49 4903 CALL LWRD ?0654 + 00006712 18 0C 4904 JR ?0317 + 00006714 4905 ?0316: + 00006714 DD 6E B2 4906 LD L,(IX-78) + 00006717 FD 75 48 4907 LD (IY+72),L + 0000671A DD 66 B3 4908 LD H,(IX-77) + 0000671D FD 74 49 4909 LD (IY+73),H + 00006720 4910 ?0317: + 00006720 DD 6E FE 4911 LD L,(IX-2) + 00006723 DD 66 FF 4912 LD H,(IX-1) + 00006726 46 4913 LD B,(HL) + 00006727 23 4914 INC HL + 00006728 66 4915 LD H,(HL) + 00006729 68 4916 LD L,B + 0000672A DD 4E FC 4917 LD C,(IX-4) + 0000672D DD 46 FD 4918 LD B,(IX-3) + 00006730 09 4919 ADD HL,BC + 00006731 46 4920 LD B,(HL) + 00006732 FD 70 02 4921 LD (IY+2),B + 00006735 C3 50 69 4922 JP LWRD ?0350 + 00006738 4923 ?0314: + 00006738 CD BC 69 4924 CALL LWRD ?0669 + 0000673B E2 3F 67 4925 JP PO,?0550 + 0000673E AC 4926 XOR H + 0000673F 4927 ?0550: + 0000673F F2 B9 67 4928 JP P,?0320 + 00006742 4929 ?0319: + 00006742 0E 03 4930 LD C,3 + 00006744 CD B1 69 4931 CALL LWRD ?0668 + 00006747 FD 75 4A 4932 LD (IY+74),L + 0000674A FD 74 4B 4933 LD (IY+75),H + 0000674D DD 7E B2 4934 LD A,(IX-78) + 00006750 DD B6 B3 4935 OR (IX-77) + 00006753 FD 6E 4A 4936 LD L,(IY+74) + 00006756 FD 66 4B 4937 LD H,(IY+75) + 00006759 01 48 00 4938 LD BC,72 + 0000675C 09 4939 ADD HL,BC + 0000675D 20 2B 4940 JR NZ,?0322 + 0000675F 4941 ?0321: + 0000675F E5 4942 PUSH HL + 00006760 0E 01 4943 LD C,1 + 00006762 FD 5E 4A 4944 LD E,(IY+74) + 00006765 FD 56 4B 4945 LD D,(IY+75) + 00006768 CD B4 69 4946 CALL LWRD ?0666 + 0000676B 4D 4947 LD C,L + 0000676C 44 4948 LD B,H + 0000676D E1 4949 POP HL + 0000676E 71 4950 LD (HL),C + 0000676F 23 4951 INC HL + 00006770 70 4952 LD (HL),B + 00006771 21 06 00 4953 LD HL,6 + 00006774 39 4954 ADD HL,SP + 00006775 4D 4955 LD C,L + 00006776 44 4956 LD B,H + 00006777 FD 6E 4A 4957 LD L,(IY+74) + 0000677A FD 66 4B 4958 LD H,(IY+75) + 0000677D 11 48 00 4959 LD DE,72 + 00006780 19 4960 ADD HL,DE + 00006781 56 4961 LD D,(HL) + 00006782 23 4962 INC HL + 00006783 66 4963 LD H,(HL) + 00006784 6A 4964 LD L,D + 00006785 CD FD 49 4965 CALL LWRD ?0654 + 00006788 18 09 4966 JR ?0323 + 0000678A 4967 ?0322: + 0000678A DD 4E B2 4968 LD C,(IX-78) + 0000678D 71 4969 LD (HL),C + 0000678E DD 46 B3 4970 LD B,(IX-77) + 00006791 23 4971 INC HL + 00006792 70 4972 LD (HL),B + 00006793 4973 ?0323: + 00006793 FD 6E 4A 4974 LD L,(IY+74) + 00006796 FD 66 4B 4975 LD H,(IY+75) + 00006799 23 4976 INC HL + 0000679A 23 4977 INC HL + 0000679B E5 4978 PUSH HL + 0000679C DD 6E FE 4979 LD L,(IX-2) + 0000679F DD 66 FF 4980 LD H,(IX-1) + 000067A2 46 4981 LD B,(HL) + 000067A3 23 4982 INC HL + 000067A4 66 4983 LD H,(HL) + 000067A5 68 4984 LD L,B + 000067A6 DD 4E FC 4985 LD C,(IX-4) + 000067A9 DD 46 FD 4986 LD B,(IX-3) + 000067AC 09 4987 ADD HL,BC + 000067AD 46 4988 LD B,(HL) + 000067AE E1 4989 POP HL + 000067AF 70 4990 LD (HL),B + 000067B0 FD 6E 4A 4991 LD L,(IY+74) + 000067B3 FD 66 4B 4992 LD H,(IY+75) + 000067B6 C3 4D 69 4993 JP LWRD ?0557 + 000067B9 4994 ?0320: + 000067B9 3E 3F 4995 LD A,63 + 000067BB DD AE F4 4996 XOR (IX-12) + 000067BE DD B6 F5 4997 OR (IX-11) + 000067C1 20 2A 4998 JR NZ,?0326 + 000067C3 4999 ?0325: + 000067C3 DD 7E B2 5000 LD A,(IX-78) + 000067C6 DD B6 B3 5001 OR (IX-77) + 000067C9 20 13 5002 JR NZ,?0328 + 000067CB 5003 ?0327: + 000067CB CD AF 69 5004 CALL LWRD ?0667 + 000067CE FD 75 4A 5005 LD (IY+74),L + 000067D1 FD 74 4B 5006 LD (IY+75),H + 000067D4 21 06 00 5007 LD HL,6 + 000067D7 39 5008 ADD HL,SP + 000067D8 CD F5 49 5009 CALL LWRD ?0655 + 000067DB C3 50 69 5010 JP LWRD ?0350 + 000067DE 5011 ?0328: + 000067DE DD 6E B2 5012 LD L,(IX-78) + 000067E1 FD 75 4A 5013 LD (IY+74),L + 000067E4 DD 66 B3 5014 LD H,(IX-77) + 000067E7 FD 74 4B 5015 LD (IY+75),H + 000067EA 5016 ?0329: + 000067EA C3 50 69 5017 JP LWRD ?0350 + 000067ED 5018 ?0326: + 000067ED CD D5 69 5019 CALL LWRD ?0670 + 000067F0 E2 F4 67 5020 JP PO,?0551 + 000067F3 AC 5021 XOR H + 000067F4 5022 ?0551: + 000067F4 FA 50 69 5023 JP M,?0350 + 000067F7 5024 ?0331: + 000067F7 DD 7E B2 5025 LD A,(IX-78) + 000067FA DD B6 B3 5026 OR (IX-77) + 000067FD 20 12 5027 JR NZ,?0334 + 000067FF 5028 ?0333: + 000067FF CD AF 69 5029 CALL LWRD ?0667 + 00006802 FD 75 4A 5030 LD (IY+74),L + 00006805 FD 74 4B 5031 LD (IY+75),H + 00006808 21 06 00 5032 LD HL,6 + 0000680B 39 5033 ADD HL,SP + 0000680C CD F5 49 5034 CALL LWRD ?0655 + 0000680F 18 0C 5035 JR ?0335 + 00006811 5036 ?0334: + 00006811 DD 6E B2 5037 LD L,(IX-78) + 00006814 FD 75 4A 5038 LD (IY+74),L + 00006817 DD 66 B3 5039 LD H,(IX-77) + 0000681A FD 74 4B 5040 LD (IY+75),H + 0000681D 5041 ?0335: + 0000681D 5042 ?0337: + 0000681D CD BC 69 5043 CALL LWRD ?0669 + 00006820 E2 24 68 5044 JP PO,?0552 + 00006823 AC 5045 XOR H + 00006824 5046 ?0552: + 00006824 FA 3A 68 5047 JP M,?0336 + 00006827 FD 7E 4C 5048 LD A,(IY+76) + 0000682A FD B6 4D 5049 OR (IY+77) + 0000682D 28 0B 5050 JR Z,?0336 + 0000682F 5051 ?0340: + 0000682F 5052 ?0339: + 0000682F 5053 ?0338: + 0000682F FD 6E 4C 5054 LD L,(IY+76) + 00006832 FD 66 4D 5055 LD H,(IY+77) + 00006835 E5 5056 PUSH HL + 00006836 FD E1 5057 POP IY + 00006838 18 E3 5058 JR ?0335 + 0000683A 5059 ?0336: + 0000683A FD 7E 4C 5060 LD A,(IY+76) + 0000683D FD B6 4D 5061 OR (IY+77) + 00006840 20 41 5062 JR NZ,?0342 + 00006842 CD D5 69 5063 CALL LWRD ?0670 + 00006845 E2 49 68 5064 JP PO,?0553 + 00006848 AC 5065 XOR H + 00006849 5066 ?0553: + 00006849 FA 83 68 5067 JP M,?0342 + 0000684C 5068 ?0344: + 0000684C 5069 ?0343: + 0000684C 5070 ?0341: + 0000684C 0E 03 5071 LD C,3 + 0000684E 58 5072 LD E,B + 0000684F 50 5073 LD D,B + 00006850 CD B4 69 5074 CALL LWRD ?0666 + 00006853 DD 75 AE 5075 LD (IX-82),L + 00006856 DD 74 AF 5076 LD (IX-81),H + 00006859 01 48 00 5077 LD BC,72 + 0000685C 09 5078 ADD HL,BC + 0000685D FD E5 5079 PUSH IY + 0000685F C1 5080 POP BC + 00006860 71 5081 LD (HL),C + 00006861 23 5082 INC HL + 00006862 70 5083 LD (HL),B + 00006863 DD 6E FE 5084 LD L,(IX-2) + 00006866 DD 66 FF 5085 LD H,(IX-1) + 00006869 56 5086 LD D,(HL) + 0000686A 23 5087 INC HL + 0000686B 66 5088 LD H,(HL) + 0000686C 6A 5089 LD L,D + 0000686D DD 5E FC 5090 LD E,(IX-4) + 00006870 DD 56 FD 5091 LD D,(IX-3) + 00006873 19 5092 ADD HL,DE + 00006874 56 5093 LD D,(HL) + 00006875 DD 6E AE 5094 LD L,(IX-82) + 00006878 DD 66 AF 5095 LD H,(IX-81) + 0000687B 23 5096 INC HL + 0000687C 23 5097 INC HL + 0000687D 72 5098 LD (HL),D + 0000687E 2B 5099 DEC HL + 0000687F 2B 5100 DEC HL + 00006880 C3 4D 69 5101 JP LWRD ?0557 + 00006883 5102 ?0342: + 00006883 FD 7E 4C 5103 LD A,(IY+76) + 00006886 FD B6 4D 5104 OR (IY+77) + 00006889 20 5C 5105 JR NZ,?0347 + 0000688B CD D5 69 5106 CALL LWRD ?0670 + 0000688E E2 92 68 5107 JP PO,?0554 + 00006891 AC 5108 XOR H + 00006892 5109 ?0554: + 00006892 F2 E7 68 5110 JP P,?0347 + 00006895 5111 ?0349: + 00006895 5112 ?0348: + 00006895 5113 ?0346: + 00006895 0E 03 5114 LD C,3 + 00006897 CD B1 69 5115 CALL LWRD ?0668 + 0000689A DD 75 FA 5116 LD (IX-6),L + 0000689D DD 74 FB 5117 LD (IX-5),H + 000068A0 01 48 00 5118 LD BC,72 + 000068A3 09 5119 ADD HL,BC + 000068A4 FD 4E 4A 5120 LD C,(IY+74) + 000068A7 71 5121 LD (HL),C + 000068A8 FD 46 4B 5122 LD B,(IY+75) + 000068AB 23 5123 INC HL + 000068AC 70 5124 LD (HL),B + 000068AD DD 6E FE 5125 LD L,(IX-2) + 000068B0 DD 66 FF 5126 LD H,(IX-1) + 000068B3 46 5127 LD B,(HL) + 000068B4 23 5128 INC HL + 000068B5 66 5129 LD H,(HL) + 000068B6 68 5130 LD L,B + 000068B7 DD 4E FC 5131 LD C,(IX-4) + 000068BA DD 46 FD 5132 LD B,(IX-3) + 000068BD 09 5133 ADD HL,BC + 000068BE 46 5134 LD B,(HL) + 000068BF DD 6E FA 5135 LD L,(IX-6) + 000068C2 DD 66 FB 5136 LD H,(IX-5) + 000068C5 23 5137 INC HL + 000068C6 23 5138 INC HL + 000068C7 70 5139 LD (HL),B + 000068C8 21 48 00 5140 LD HL,72 + 000068CB DD 4E FA 5141 LD C,(IX-6) + 000068CE DD 46 FB 5142 LD B,(IX-5) + 000068D1 09 5143 ADD HL,BC + 000068D2 56 5144 LD D,(HL) + 000068D3 23 5145 INC HL + 000068D4 66 5146 LD H,(HL) + 000068D5 6A 5147 LD L,D + 000068D6 11 4C 00 5148 LD DE,76 + 000068D9 19 5149 ADD HL,DE + 000068DA 71 5150 LD (HL),C + 000068DB 23 5151 INC HL + 000068DC 70 5152 LD (HL),B + 000068DD FD 71 4A 5153 LD (IY+74),C + 000068E0 FD 70 4B 5154 LD (IY+75),B + 000068E3 69 5155 LD L,C + 000068E4 60 5156 LD H,B + 000068E5 18 66 5157 JR ?0557 + 000068E7 5158 ?0347: + 000068E7 FD 6E 4C 5159 LD L,(IY+76) + 000068EA DD 75 FA 5160 LD (IX-6),L + 000068ED FD 66 4D 5161 LD H,(IY+77) + 000068F0 DD 74 FB 5162 LD (IX-5),H + 000068F3 0E 4A 5163 LD C,74 + 000068F5 09 5164 ADD HL,BC + 000068F6 E5 5165 PUSH HL + 000068F7 0E 03 5166 LD C,3 + 000068F9 DD 5E FA 5167 LD E,(IX-6) + 000068FC DD 56 FB 5168 LD D,(IX-5) + 000068FF CD B4 69 5169 CALL LWRD ?0666 + 00006902 4D 5170 LD C,L + 00006903 44 5171 LD B,H + 00006904 E1 5172 POP HL + 00006905 71 5173 LD (HL),C + 00006906 23 5174 INC HL + 00006907 70 5175 LD (HL),B + 00006908 21 4A 00 5176 LD HL,74 + 0000690B DD 4E FA 5177 LD C,(IX-6) + 0000690E DD 46 FB 5178 LD B,(IX-5) + 00006911 09 5179 ADD HL,BC + 00006912 56 5180 LD D,(HL) + 00006913 23 5181 INC HL + 00006914 66 5182 LD H,(HL) + 00006915 6A 5183 LD L,D + 00006916 11 48 00 5184 LD DE,72 + 00006919 19 5185 ADD HL,DE + 0000691A FD E5 5186 PUSH IY + 0000691C D1 5187 POP DE + 0000691D 73 5188 LD (HL),E + 0000691E 23 5189 INC HL + 0000691F 72 5190 LD (HL),D + 00006920 21 4A 00 5191 LD HL,74 + 00006923 09 5192 ADD HL,BC + 00006924 7E 5193 LD A,(HL) + 00006925 23 5194 INC HL + 00006926 66 5195 LD H,(HL) + 00006927 6F 5196 LD L,A + 00006928 23 5197 INC HL + 00006929 23 5198 INC HL + 0000692A E5 5199 PUSH HL + 0000692B DD 6E FE 5200 LD L,(IX-2) + 0000692E DD 66 FF 5201 LD H,(IX-1) + 00006931 7E 5202 LD A,(HL) + 00006932 23 5203 INC HL + 00006933 66 5204 LD H,(HL) + 00006934 6F 5205 LD L,A + 00006935 DD 4E FC 5206 LD C,(IX-4) + 00006938 DD 46 FD 5207 LD B,(IX-3) + 0000693B 09 5208 ADD HL,BC + 0000693C 46 5209 LD B,(HL) + 0000693D E1 5210 POP HL + 0000693E 70 5211 LD (HL),B + 0000693F 21 4A 00 5212 LD HL,74 + 00006942 DD 4E FA 5213 LD C,(IX-6) + 00006945 DD 46 FB 5214 LD B,(IX-5) + 00006948 09 5215 ADD HL,BC + 00006949 46 5216 LD B,(HL) + 0000694A 23 5217 INC HL + 0000694B 66 5218 LD H,(HL) + 0000694C 68 5219 LD L,B + 0000694D 5220 ?0557: + 0000694D E5 5221 PUSH HL + 0000694E FD E1 5222 POP IY + 00006950 5223 ?0350: + 00006950 5224 ?0345: + 00006950 5225 ?0332: + 00006950 5226 ?0330: + 00006950 5227 ?0324: + 00006950 5228 ?0318: + 00006950 DD 36 F8 FF 5229 LD (IX-8),255 + 00006954 DD 36 F9 FF 5230 LD (IX-7),255 + 00006958 5231 ?0312: + 00006958 5232 ?0305: + 00006958 DD 34 F8 5233 INC (IX-8) + 0000695B 20 03 5234 JR NZ,?0555 + 0000695D DD 34 F9 5235 INC (IX-7) + 00006960 5236 ?0555: + 00006960 DD 6E FE 5237 LD L,(IX-2) + 00006963 DD 66 FF 5238 LD H,(IX-1) + 00006966 34 5239 INC (HL) + 00006967 23 5240 INC HL + 00006968 20 01 5241 JR NZ,?0556 + 0000696A 34 5242 INC (HL) + 0000696B 5243 ?0556: + 0000696B 01 3F 80 5244 LD BC,32831 + 0000696E DD 6E F4 5245 LD L,(IX-12) + 00006971 DD 66 F5 5246 LD H,(IX-11) + 00006974 78 5247 LD A,B + 00006975 AC 5248 XOR H + 00006976 67 5249 LD H,A + 00006977 ED 42 5250 SBC HL,BC + 00006979 DA 30 66 5251 JP C,?0301 + 0000697C 5252 ?0299: + 0000697C 5253 ?0352: + 0000697C 21 4A 00 5254 LD HL,74 + 0000697F DD 4E AE 5255 LD C,(IX-82) + 00006982 DD 46 AF 5256 LD B,(IX-81) + 00006985 09 5257 ADD HL,BC + 00006986 7E 5258 LD A,(HL) + 00006987 23 5259 INC HL + 00006988 B6 5260 OR (HL) + 00006989 20 1F 5261 JR NZ,?0351 + 0000698B 69 5262 LD L,C + 0000698C 60 5263 LD H,B + 0000698D 7E 5264 LD A,(HL) + 0000698E FE 03 5265 CP 3 + 00006990 20 18 5266 JR NZ,?0351 + 00006992 5267 ?0355: + 00006992 5268 ?0354: + 00006992 5269 ?0353: + 00006992 E5 5270 PUSH HL + 00006993 FD E1 5271 POP IY + 00006995 21 48 00 5272 LD HL,72 + 00006998 09 5273 ADD HL,BC + 00006999 56 5274 LD D,(HL) + 0000699A DD 72 AE 5275 LD (IX-82),D + 0000699D 23 5276 INC HL + 0000699E 66 5277 LD H,(HL) + 0000699F DD 74 AF 5278 LD (IX-81),H + 000069A2 FD E5 5279 PUSH IY + 000069A4 D1 5280 POP DE + 000069A5 CD 90 45 5281 CALL LWRD ?0639 + 000069A8 18 D2 5282 JR ?0299 + 000069AA 5283 ?0351: + 000069AA 69 5284 LD L,C + 000069AB 60 5285 LD H,B + 000069AC 5286 ?0356: + 000069AC C3 D0 49 5287 JP LWRD ?0630 + 000069AF 5288 ?0667: + 000069AF 0E 01 5289 LD C,1 + 000069B1 5290 ?0668: + 000069B1 FD E5 5291 PUSH IY + 000069B3 D1 5292 POP DE + 000069B4 5293 ?0666: + 000069B4 3E 00 5294 LD A,BYTE3 dbNewExpression + 000069B6 21 6B 65 5295 LD HL,LWRD dbNewExpression + 000069B9 C3 19 82 5296 JP LWRD ?BANK_CALL_DIRECT_L08 + 000069BC 5297 ?0669: + 000069BC FD 5E 02 5298 LD E,(IY+2) + 000069BF 3E 00 5299 LD A,BYTE3 dbOperatorPrecedence + 000069C1 21 11 65 5300 LD HL,LWRD dbOperatorPrecedence + 000069C4 CD 19 82 5301 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000069C7 4D 5302 LD C,L + 000069C8 06 00 5303 LD B,0 + 000069CA DD 6E F4 5304 LD L,(IX-12) + 000069CD DD 66 F5 5305 LD H,(IX-11) + 000069D0 F6 80 5306 OR 128 + 000069D2 ED 42 5307 SBC HL,BC + 000069D4 C9 5308 RET + 000069D5 5309 ?0670: + 000069D5 FD 5E 02 5310 LD E,(IY+2) + 000069D8 3E 00 5311 LD A,BYTE3 dbOperatorPrecedence + 000069DA 21 11 65 5312 LD HL,LWRD dbOperatorPrecedence + 000069DD CD 19 82 5313 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000069E0 4D 5314 LD C,L + 000069E1 DD 6E F4 5315 LD L,(IX-12) + 000069E4 DD 66 F5 5316 LD H,(IX-11) + 000069E7 F6 80 5317 OR 128 + 000069E9 ED 42 5318 SBC HL,BC + 000069EB C9 5319 RET + 000069EC 5320 dbDeleteExpression: + 000069EC DD E5 5321 PUSH IX + 000069EE D5 5322 PUSH DE + 000069EF DD E1 5323 POP IX + 000069F1 1A 5324 LD A,(DE) + 000069F2 FE 03 5325 CP 3 + 000069F4 20 1C 5326 JR NZ,?0358 + 000069F6 5327 ?0357: + 000069F6 DD 5E 48 5328 LD E,(IX+72) + 000069F9 DD 56 49 5329 LD D,(IX+73) + 000069FC 3E 00 5330 LD A,BYTE3 dbDeleteExpression + 000069FE 21 EC 69 5331 LD HL,LWRD dbDeleteExpression + 00006A01 CD 19 82 5332 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A04 DD 5E 4A 5333 LD E,(IX+74) + 00006A07 DD 56 4B 5334 LD D,(IX+75) + 00006A0A 3E 00 5335 LD A,BYTE3 dbDeleteExpression + 00006A0C 21 EC 69 5336 LD HL,LWRD dbDeleteExpression + 00006A0F CD 19 82 5337 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A12 5338 ?0358: + 00006A12 C3 D8 50 5339 JP LWRD ?0636 + 00006A15 5340 dbEvaluateExpression: + 00006A15 FD E5 5341 PUSH IY + 00006A17 DD E5 5342 PUSH IX + 00006A19 DD 21 00 00 5343 LD IX,0 + 00006A1D DD 39 5344 ADD IX,SP + 00006A1F C5 5345 PUSH BC + 00006A20 F5 5346 PUSH AF + 00006A21 F5 5347 PUSH AF + 00006A22 F5 5348 PUSH AF + 00006A23 D5 5349 PUSH DE + 00006A24 FD E1 5350 POP IY + 00006A26 1A 5351 LD A,(DE) + 00006A27 FE 03 5352 CP 3 + 00006A29 C2 E5 6D 5353 JP NZ,?0360 + 00006A2C 5354 ?0359: + 00006A2C FD 5E 48 5355 LD E,(IY+72) + 00006A2F FD 56 49 5356 LD D,(IY+73) + 00006A32 3E 00 5357 LD A,BYTE3 dbEvaluateExpression + 00006A34 21 15 6A 5358 LD HL,LWRD dbEvaluateExpression + 00006A37 CD 19 82 5359 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A3A DD 4E FE 5360 LD C,(IX-2) + 00006A3D DD 46 FF 5361 LD B,(IX-1) + 00006A40 FD 5E 4A 5362 LD E,(IY+74) + 00006A43 FD 56 4B 5363 LD D,(IY+75) + 00006A46 3E 00 5364 LD A,BYTE3 dbEvaluateExpression + 00006A48 21 15 6A 5365 LD HL,LWRD dbEvaluateExpression + 00006A4B CD 19 82 5366 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A4E FD 5E 02 5367 LD E,(IY+2) + 00006A51 3E 00 5368 LD A,BYTE3 dbOperatorPrecedence + 00006A53 21 11 65 5369 LD HL,LWRD dbOperatorPrecedence + 00006A56 CD 19 82 5370 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A59 7D 5371 LD A,L + 00006A5A FE 05 5372 CP 5 + 00006A5C FD 6E 48 5373 LD L,(IY+72) + 00006A5F FD 66 49 5374 LD H,(IY+73) + 00006A62 23 5375 INC HL + 00006A63 D2 5A 6B 5376 JP NC,?0362 + 00006A66 5377 ?0361: + 00006A66 46 5378 LD B,(HL) + 00006A67 05 5379 DEC B + 00006A68 C2 5A 6F 5380 JP NZ,?0454 + 00006A6B FD 6E 4A 5381 LD L,(IY+74) + 00006A6E FD 66 4B 5382 LD H,(IY+75) + 00006A71 23 5383 INC HL + 00006A72 46 5384 LD B,(HL) + 00006A73 05 5385 DEC B + 00006A74 C2 5A 6F 5386 JP NZ,?0454 + 00006A77 5387 ?0366: + 00006A77 5388 ?0365: + 00006A77 5389 ?0363: + 00006A77 FD 36 01 01 5390 LD (IY+1),1 + 00006A7B FD 7E 02 5391 LD A,(IY+2) + 00006A7E FE 2B 5392 CP 43 + 00006A80 20 2D 5393 JR NZ,?0369 + 00006A82 5394 ?0368: + 00006A82 FD 6E 4A 5395 LD L,(IY+74) + 00006A85 FD 66 4B 5396 LD H,(IY+75) + 00006A88 0E 24 5397 LD C,36 + 00006A8A 09 5398 ADD HL,BC + 00006A8B 4E 5399 LD C,(HL) + 00006A8C 23 5400 INC HL + 00006A8D 46 5401 LD B,(HL) + 00006A8E 23 5402 INC HL + 00006A8F 5E 5403 LD E,(HL) + 00006A90 23 5404 INC HL + 00006A91 56 5405 LD D,(HL) + 00006A92 D5 5406 PUSH DE + 00006A93 C5 5407 PUSH BC + 00006A94 FD 6E 48 5408 LD L,(IY+72) + 00006A97 FD 66 49 5409 LD H,(IY+73) + 00006A9A 01 24 00 5410 LD BC,36 + 00006A9D 09 5411 ADD HL,BC + 00006A9E 4E 5412 LD C,(HL) + 00006A9F 23 5413 INC HL + 00006AA0 46 5414 LD B,(HL) + 00006AA1 23 5415 INC HL + 00006AA2 5E 5416 LD E,(HL) + 00006AA3 23 5417 INC HL + 00006AA4 56 5418 LD D,(HL) + 00006AA5 69 5419 LD L,C + 00006AA6 60 5420 LD H,B + 00006AA7 C1 5421 POP BC + 00006AA8 09 5422 ADD HL,BC + 00006AA9 EB 5423 EX DE,HL + 00006AAA C1 5424 POP BC + 00006AAB ED 4A 5425 ADC HL,BC + 00006AAD 18 33 5426 JR ?0564 + 00006AAF 5427 ?0369: + 00006AAF FE 2D 5428 CP 45 + 00006AB1 20 34 5429 JR NZ,?0370 + 00006AB3 FD 6E 4A 5430 LD L,(IY+74) + 00006AB6 FD 66 4B 5431 LD H,(IY+75) + 00006AB9 0E 24 5432 LD C,36 + 00006ABB 09 5433 ADD HL,BC + 00006ABC 4E 5434 LD C,(HL) + 00006ABD 23 5435 INC HL + 00006ABE 46 5436 LD B,(HL) + 00006ABF 23 5437 INC HL + 00006AC0 5E 5438 LD E,(HL) + 00006AC1 23 5439 INC HL + 00006AC2 56 5440 LD D,(HL) + 00006AC3 69 5441 LD L,C + 00006AC4 60 5442 LD H,B + 00006AC5 D5 5443 PUSH DE + 00006AC6 E5 5444 PUSH HL + 00006AC7 FD 6E 48 5445 LD L,(IY+72) + 00006ACA FD 66 49 5446 LD H,(IY+73) + 00006ACD 01 24 00 5447 LD BC,36 + 00006AD0 09 5448 ADD HL,BC + 00006AD1 4E 5449 LD C,(HL) + 00006AD2 23 5450 INC HL + 00006AD3 46 5451 LD B,(HL) + 00006AD4 23 5452 INC HL + 00006AD5 5E 5453 LD E,(HL) + 00006AD6 23 5454 INC HL + 00006AD7 56 5455 LD D,(HL) + 00006AD8 69 5456 LD L,C + 00006AD9 60 5457 LD H,B + 00006ADA A7 5458 AND A + 00006ADB C1 5459 POP BC + 00006ADC ED 42 5460 SBC HL,BC + 00006ADE EB 5461 EX DE,HL + 00006ADF C1 5462 POP BC + 00006AE0 ED 42 5463 SBC HL,BC + 00006AE2 5464 ?0564: + 00006AE2 4D 5465 LD C,L + 00006AE3 44 5466 LD B,H + 00006AE4 EB 5467 EX DE,HL + 00006AE5 18 58 5468 JR ?0583 + 00006AE7 5469 ?0370: + 00006AE7 FE 2A 5470 CP 42 + 00006AE9 20 29 5471 JR NZ,?0371 + 00006AEB FD 6E 48 5472 LD L,(IY+72) + 00006AEE FD 66 49 5473 LD H,(IY+73) + 00006AF1 0E 24 5474 LD C,36 + 00006AF3 09 5475 ADD HL,BC + 00006AF4 4E 5476 LD C,(HL) + 00006AF5 23 5477 INC HL + 00006AF6 46 5478 LD B,(HL) + 00006AF7 23 5479 INC HL + 00006AF8 5E 5480 LD E,(HL) + 00006AF9 23 5481 INC HL + 00006AFA 56 5482 LD D,(HL) + 00006AFB D5 5483 PUSH DE + 00006AFC C5 5484 PUSH BC + 00006AFD FD 6E 4A 5485 LD L,(IY+74) + 00006B00 FD 66 4B 5486 LD H,(IY+75) + 00006B03 01 24 00 5487 LD BC,36 + 00006B06 09 5488 ADD HL,BC + 00006B07 5E 5489 LD E,(HL) + 00006B08 23 5490 INC HL + 00006B09 56 5491 LD D,(HL) + 00006B0A 23 5492 INC HL + 00006B0B 4E 5493 LD C,(HL) + 00006B0C 23 5494 INC HL + 00006B0D 46 5495 LD B,(HL) + 00006B0E EB 5496 EX DE,HL + 00006B0F CD 1F 81 5497 CALL LWRD ?L_MUL_L03 + 00006B12 18 2B 5498 JR ?0583 + 00006B14 5499 ?0371: + 00006B14 FE 2F 5500 CP 47 + 00006B16 20 33 5501 JR NZ,?0367 + 00006B18 FD 6E 4A 5502 LD L,(IY+74) + 00006B1B FD 66 4B 5503 LD H,(IY+75) + 00006B1E 0E 24 5504 LD C,36 + 00006B20 09 5505 ADD HL,BC + 00006B21 4E 5506 LD C,(HL) + 00006B22 23 5507 INC HL + 00006B23 46 5508 LD B,(HL) + 00006B24 23 5509 INC HL + 00006B25 5E 5510 LD E,(HL) + 00006B26 23 5511 INC HL + 00006B27 56 5512 LD D,(HL) + 00006B28 D5 5513 PUSH DE + 00006B29 C5 5514 PUSH BC + 00006B2A FD 6E 48 5515 LD L,(IY+72) + 00006B2D FD 66 49 5516 LD H,(IY+73) + 00006B30 01 24 00 5517 LD BC,36 + 00006B33 09 5518 ADD HL,BC + 00006B34 5E 5519 LD E,(HL) + 00006B35 23 5520 INC HL + 00006B36 56 5521 LD D,(HL) + 00006B37 23 5522 INC HL + 00006B38 4E 5523 LD C,(HL) + 00006B39 23 5524 INC HL + 00006B3A 46 5525 LD B,(HL) + 00006B3B EB 5526 EX DE,HL + 00006B3C CD 93 82 5527 CALL LWRD ?SL_DIV_L03 + 00006B3F 5528 ?0583: + 00006B3F DD 75 F8 5529 LD (IX-8),L + 00006B42 DD 74 F9 5530 LD (IX-7),H + 00006B45 DD 71 FA 5531 LD (IX-6),C + 00006B48 DD 70 FB 5532 LD (IX-5),B + 00006B4B 5533 ?0367: + 00006B4B DD 4E FA 5534 LD C,(IX-6) + 00006B4E DD 46 FB 5535 LD B,(IX-5) + 00006B51 DD 6E F8 5536 LD L,(IX-8) + 00006B54 DD 66 F9 5537 LD H,(IX-7) + 00006B57 C3 01 6F 5538 JP LWRD ?0606 + 00006B5A 5539 ?0364: + 00006B5A 5540 ?0362: + 00006B5A 7E 5541 LD A,(HL) + 00006B5B FE 03 5542 CP 3 + 00006B5D CA 8F 6C 5543 JP Z,?0377 + 00006B60 FD 6E 4A 5544 LD L,(IY+74) + 00006B63 FD 66 4B 5545 LD H,(IY+75) + 00006B66 23 5546 INC HL + 00006B67 7E 5547 LD A,(HL) + 00006B68 FE 03 5548 CP 3 + 00006B6A CA 8F 6C 5549 JP Z,?0377 + 00006B6D 5550 ?0376: + 00006B6D 5551 ?0375: + 00006B6D 5552 ?0373: + 00006B6D FD 36 01 04 5553 LD (IY+1),4 + 00006B71 FD 5E 02 5554 LD E,(IY+2) + 00006B74 CD E2 81 5555 CALL LWRD ?C_V_SWITCH_L06 + 00006B77 07 00 5556 DEFW 7 + 00006B79 26 5557 DEFB 38 + 00006B7A 3C 5558 DEFB 60 + 00006B7B 3D 5559 DEFB 61 + 00006B7C 3E 5560 DEFB 62 + 00006B7D 5B 5561 DEFB 91 + 00006B7E 5D 5562 DEFB 93 + 00006B7F 7C 5563 DEFB 124 + 00006B80 8F 6C 5564 DEFW ?0377 + 00006B82 6D 6C 5565 DEFW ?0399 + 00006B84 31 6C 5566 DEFW ?0394 + 00006B86 0E 6C 5567 DEFW ?0390 + 00006B88 EB 6B 5568 DEFW ?0386 + 00006B8A 90 6B 5569 DEFW ?0378 + 00006B8C CE 6B 5570 DEFW ?0382 + 00006B8E 55 6C 5571 DEFW ?0398 + 00006B90 5572 ?0378: + 00006B90 FD 6E 4A 5573 LD L,(IY+74) + 00006B93 FD 66 4B 5574 LD H,(IY+75) + 00006B96 01 24 00 5575 LD BC,36 + 00006B99 09 5576 ADD HL,BC + 00006B9A 4E 5577 LD C,(HL) + 00006B9B 23 5578 INC HL + 00006B9C 46 5579 LD B,(HL) + 00006B9D 23 5580 INC HL + 00006B9E 5E 5581 LD E,(HL) + 00006B9F 23 5582 INC HL + 00006BA0 56 5583 LD D,(HL) + 00006BA1 D5 5584 PUSH DE + 00006BA2 C5 5585 PUSH BC + 00006BA3 FD 6E 48 5586 LD L,(IY+72) + 00006BA6 FD 66 49 5587 LD H,(IY+73) + 00006BA9 01 24 00 5588 LD BC,36 + 00006BAC 09 5589 ADD HL,BC + 00006BAD 4E 5590 LD C,(HL) + 00006BAE 23 5591 INC HL + 00006BAF 46 5592 LD B,(HL) + 00006BB0 23 5593 INC HL + 00006BB1 5E 5594 LD E,(HL) + 00006BB2 23 5595 INC HL + 00006BB3 56 5596 LD D,(HL) + 00006BB4 69 5597 LD L,C + 00006BB5 60 5598 LD H,B + 00006BB6 C1 5599 POP BC + 00006BB7 A7 5600 AND A + 00006BB8 ED 42 5601 SBC HL,BC + 00006BBA C1 5602 POP BC + 00006BBB 20 0B 5603 JR NZ,?0380 + 00006BBD EB 5604 EX DE,HL + 00006BBE ED 42 5605 SBC HL,BC + 00006BC0 20 06 5606 JR NZ,?0380 + 00006BC2 4D 5607 LD C,L + 00006BC3 44 5608 LD B,H + 00006BC4 23 5609 INC HL + 00006BC5 C3 83 6C 5610 JP LWRD ?0598 + 00006BC8 5611 ?0380: + 00006BC8 01 00 00 5612 LD BC,0 + 00006BCB C3 51 6C 5613 JP LWRD ?0396 + 00006BCE 5614 ?0382: + 00006BCE FD 6E 4A 5615 LD L,(IY+74) + 00006BD1 FD 66 4B 5616 LD H,(IY+75) + 00006BD4 01 24 00 5617 LD BC,36 + 00006BD7 09 5618 ADD HL,BC + 00006BD8 4E 5619 LD C,(HL) + 00006BD9 23 5620 INC HL + 00006BDA 46 5621 LD B,(HL) + 00006BDB 23 5622 INC HL + 00006BDC 5E 5623 LD E,(HL) + 00006BDD 23 5624 INC HL + 00006BDE 56 5625 LD D,(HL) + 00006BDF D5 5626 PUSH DE + 00006BE0 C5 5627 PUSH BC + 00006BE1 CD 5D 6F 5628 CALL LWRD ?0671 + 00006BE4 01 00 00 5629 LD BC,0 + 00006BE7 30 68 5630 JR NC,?0396 + 00006BE9 18 61 5631 JR ?0597 + 00006BEB 5632 ?0386: + 00006BEB FD 6E 48 5633 LD L,(IY+72) + 00006BEE FD 66 49 5634 LD H,(IY+73) + 00006BF1 01 24 00 5635 LD BC,36 + 00006BF4 09 5636 ADD HL,BC + 00006BF5 4E 5637 LD C,(HL) + 00006BF6 23 5638 INC HL + 00006BF7 46 5639 LD B,(HL) + 00006BF8 23 5640 INC HL + 00006BF9 5E 5641 LD E,(HL) + 00006BFA 23 5642 INC HL + 00006BFB 56 5643 LD D,(HL) + 00006BFC D5 5644 PUSH DE + 00006BFD C5 5645 PUSH BC + 00006BFE FD 6E 4A 5646 LD L,(IY+74) + 00006C01 FD 66 4B 5647 LD H,(IY+75) + 00006C04 CD 63 6F 5648 CALL LWRD ?0672 + 00006C07 01 00 00 5649 LD BC,0 + 00006C0A 30 45 5650 JR NC,?0396 + 00006C0C 18 3E 5651 JR ?0597 + 00006C0E 5652 ?0390: + 00006C0E FD 6E 48 5653 LD L,(IY+72) + 00006C11 FD 66 49 5654 LD H,(IY+73) + 00006C14 01 24 00 5655 LD BC,36 + 00006C17 09 5656 ADD HL,BC + 00006C18 4E 5657 LD C,(HL) + 00006C19 23 5658 INC HL + 00006C1A 46 5659 LD B,(HL) + 00006C1B 23 5660 INC HL + 00006C1C 5E 5661 LD E,(HL) + 00006C1D 23 5662 INC HL + 00006C1E 56 5663 LD D,(HL) + 00006C1F D5 5664 PUSH DE + 00006C20 C5 5665 PUSH BC + 00006C21 FD 6E 4A 5666 LD L,(IY+74) + 00006C24 FD 66 4B 5667 LD H,(IY+75) + 00006C27 CD 63 6F 5668 CALL LWRD ?0672 + 00006C2A 01 00 00 5669 LD BC,0 + 00006C2D 38 22 5670 JR C,?0396 + 00006C2F 18 1B 5671 JR ?0597 + 00006C31 5672 ?0394: + 00006C31 FD 6E 4A 5673 LD L,(IY+74) + 00006C34 FD 66 4B 5674 LD H,(IY+75) + 00006C37 01 24 00 5675 LD BC,36 + 00006C3A 09 5676 ADD HL,BC + 00006C3B 4E 5677 LD C,(HL) + 00006C3C 23 5678 INC HL + 00006C3D 46 5679 LD B,(HL) + 00006C3E 23 5680 INC HL + 00006C3F 5E 5681 LD E,(HL) + 00006C40 23 5682 INC HL + 00006C41 56 5683 LD D,(HL) + 00006C42 D5 5684 PUSH DE + 00006C43 C5 5685 PUSH BC + 00006C44 CD 5D 6F 5686 CALL LWRD ?0671 + 00006C47 01 00 00 5687 LD BC,0 + 00006C4A 38 05 5688 JR C,?0396 + 00006C4C 5689 ?0597: + 00006C4C 21 01 00 5690 LD HL,1 + 00006C4F 18 32 5691 JR ?0598 + 00006C51 5692 ?0396: + 00006C51 69 5693 LD L,C + 00006C52 60 5694 LD H,B + 00006C53 18 2E 5695 JR ?0598 + 00006C55 5696 ?0398: + 00006C55 FD 6E 4A 5697 LD L,(IY+74) + 00006C58 FD 66 4B 5698 LD H,(IY+75) + 00006C5B 01 24 00 5699 LD BC,36 + 00006C5E 09 5700 ADD HL,BC + 00006C5F 4E 5701 LD C,(HL) + 00006C60 23 5702 INC HL + 00006C61 46 5703 LD B,(HL) + 00006C62 23 5704 INC HL + 00006C63 5E 5705 LD E,(HL) + 00006C64 23 5706 INC HL + 00006C65 56 5707 LD D,(HL) + 00006C66 D5 5708 PUSH DE + 00006C67 C5 5709 PUSH BC + 00006C68 CD 72 6F 5710 CALL LWRD ?0673 + 00006C6B 18 16 5711 JR ?0598 + 00006C6D 5712 ?0399: + 00006C6D FD 6E 4A 5713 LD L,(IY+74) + 00006C70 FD 66 4B 5714 LD H,(IY+75) + 00006C73 01 24 00 5715 LD BC,36 + 00006C76 09 5716 ADD HL,BC + 00006C77 4E 5717 LD C,(HL) + 00006C78 23 5718 INC HL + 00006C79 46 5719 LD B,(HL) + 00006C7A 23 5720 INC HL + 00006C7B 5E 5721 LD E,(HL) + 00006C7C 23 5722 INC HL + 00006C7D 56 5723 LD D,(HL) + 00006C7E D5 5724 PUSH DE + 00006C7F C5 5725 PUSH BC + 00006C80 CD 87 6F 5726 CALL LWRD ?0674 + 00006C83 5727 ?0598: + 00006C83 FD 75 24 5728 LD (IY+36),L + 00006C86 FD 74 25 5729 LD (IY+37),H + 00006C89 FD 71 26 5730 LD (IY+38),C + 00006C8C FD 70 27 5731 LD (IY+39),B + 00006C8F 5732 ?0377: + 00006C8F 5733 ?0374: + 00006C8F FD 6E 48 5734 LD L,(IY+72) + 00006C92 FD 66 49 5735 LD H,(IY+73) + 00006C95 23 5736 INC HL + 00006C96 7E 5737 LD A,(HL) + 00006C97 FE 03 5738 CP 3 + 00006C99 C2 89 6D 5739 JP NZ,?0404 + 00006C9C FD 6E 4A 5740 LD L,(IY+74) + 00006C9F FD 66 4B 5741 LD H,(IY+75) + 00006CA2 23 5742 INC HL + 00006CA3 7E 5743 LD A,(HL) + 00006CA4 FE 03 5744 CP 3 + 00006CA6 C2 89 6D 5745 JP NZ,?0404 + 00006CA9 5746 ?0403: + 00006CA9 5747 ?0402: + 00006CA9 5748 ?0400: + 00006CA9 FD 6E 4A 5749 LD L,(IY+74) + 00006CAC FD 66 4B 5750 LD H,(IY+75) + 00006CAF 01 28 00 5751 LD BC,40 + 00006CB2 09 5752 ADD HL,BC + 00006CB3 4D 5753 LD C,L + 00006CB4 44 5754 LD B,H + 00006CB5 FD 6E 48 5755 LD L,(IY+72) + 00006CB8 FD 66 49 5756 LD H,(IY+73) + 00006CBB 11 28 00 5757 LD DE,40 + 00006CBE 19 5758 ADD HL,DE + 00006CBF EB 5759 EX DE,HL + 00006CC0 3E 00 5760 LD A,BYTE3 strcmp + 00006CC2 21 93 7D 5761 LD HL,LWRD strcmp + 00006CC5 CD 19 82 5762 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006CC8 FD 5E 02 5763 LD E,(IY+2) + 00006CCB CD E2 81 5764 CALL LWRD ?C_V_SWITCH_L06 + 00006CCE 06 00 5765 DEFW 6 + 00006CD0 2B 5766 DEFB 43 + 00006CD1 3C 5767 DEFB 60 + 00006CD2 3D 5768 DEFB 61 + 00006CD3 3E 5769 DEFB 62 + 00006CD4 5B 5770 DEFB 91 + 00006CD5 5D 5771 DEFB 93 + 00006CD6 89 6D 5772 DEFW ?0404 + 00006CD8 34 6D 5773 DEFW ?0421 + 00006CDA 1B 6D 5774 DEFW ?0417 + 00006CDC 02 6D 5775 DEFW ?0413 + 00006CDE E4 6C 5776 DEFW ?0405 + 00006CE0 F5 6C 5777 DEFW ?0409 + 00006CE2 54 6D 5778 DEFW ?0425 + 00006CE4 5779 ?0405: + 00006CE4 FD 36 01 04 5780 LD (IY+1),4 + 00006CE8 7D 5781 LD A,L + 00006CE9 B4 5782 OR H + 00006CEA 20 04 5783 JR NZ,?0407 + 00006CEC 4F 5784 LD C,A + 00006CED 47 5785 LD B,A + 00006CEE 18 4F 5786 JR ?0604 + 00006CF0 5787 ?0407: + 00006CF0 01 00 00 5788 LD BC,0 + 00006CF3 18 4F 5789 JR ?0423 + 00006CF5 5790 ?0409: + 00006CF5 FD 36 01 04 5791 LD (IY+1),4 + 00006CF9 CB 7C 5792 BIT 7,H + 00006CFB 01 00 00 5793 LD BC,0 + 00006CFE 28 44 5794 JR Z,?0423 + 00006D00 18 3D 5795 JR ?0604 + 00006D02 5796 ?0413: + 00006D02 FD 36 01 04 5797 LD (IY+1),4 + 00006D06 4D 5798 LD C,L + 00006D07 44 5799 LD B,H + 00006D08 21 00 00 5800 LD HL,0 + 00006D0B F6 80 5801 OR 128 + 00006D0D ED 42 5802 SBC HL,BC + 00006D0F E2 13 6D 5803 JP PO,?0560 + 00006D12 AC 5804 XOR H + 00006D13 5805 ?0560: + 00006D13 01 00 00 5806 LD BC,0 + 00006D16 F2 44 6D 5807 JP P,?0423 + 00006D19 18 24 5808 JR ?0604 + 00006D1B 5809 ?0417: + 00006D1B FD 36 01 04 5810 LD (IY+1),4 + 00006D1F 4D 5811 LD C,L + 00006D20 44 5812 LD B,H + 00006D21 21 00 00 5813 LD HL,0 + 00006D24 F6 80 5814 OR 128 + 00006D26 ED 42 5815 SBC HL,BC + 00006D28 E2 2C 6D 5816 JP PO,?0561 + 00006D2B AC 5817 XOR H + 00006D2C 5818 ?0561: + 00006D2C 01 00 00 5819 LD BC,0 + 00006D2F FA 44 6D 5820 JP M,?0423 + 00006D32 18 0B 5821 JR ?0604 + 00006D34 5822 ?0421: + 00006D34 FD 36 01 04 5823 LD (IY+1),4 + 00006D38 CB 7C 5824 BIT 7,H + 00006D3A 01 00 00 5825 LD BC,0 + 00006D3D 20 05 5826 JR NZ,?0423 + 00006D3F 5827 ?0604: + 00006D3F 21 01 00 5828 LD HL,1 + 00006D42 18 02 5829 JR ?0424 + 00006D44 5830 ?0423: + 00006D44 69 5831 LD L,C + 00006D45 60 5832 LD H,B + 00006D46 5833 ?0424: + 00006D46 FD 75 24 5834 LD (IY+36),L + 00006D49 FD 74 25 5835 LD (IY+37),H + 00006D4C FD 71 26 5836 LD (IY+38),C + 00006D4F FD 70 27 5837 LD (IY+39),B + 00006D52 18 35 5838 JR ?0404 + 00006D54 5839 ?0425: + 00006D54 FD 36 01 03 5840 LD (IY+1),3 + 00006D58 FD 6E 48 5841 LD L,(IY+72) + 00006D5B FD 66 49 5842 LD H,(IY+73) + 00006D5E 01 28 00 5843 LD BC,40 + 00006D61 09 5844 ADD HL,BC + 00006D62 4D 5845 LD C,L + 00006D63 44 5846 LD B,H + 00006D64 21 28 00 5847 LD HL,40 + 00006D67 FD E5 5848 PUSH IY + 00006D69 D1 5849 POP DE + 00006D6A CD 00 4A 5850 CALL LWRD ?0653 + 00006D6D FD 6E 4A 5851 LD L,(IY+74) + 00006D70 FD 66 4B 5852 LD H,(IY+75) + 00006D73 01 28 00 5853 LD BC,40 + 00006D76 09 5854 ADD HL,BC + 00006D77 4D 5855 LD C,L + 00006D78 44 5856 LD B,H + 00006D79 21 28 00 5857 LD HL,40 + 00006D7C FD E5 5858 PUSH IY + 00006D7E D1 5859 POP DE + 00006D7F 19 5860 ADD HL,DE + 00006D80 EB 5861 EX DE,HL + 00006D81 3E 00 5862 LD A,BYTE3 strcat + 00006D83 21 12 7A 5863 LD HL,LWRD strcat + 00006D86 CD 19 82 5864 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006D89 5865 ?0404: + 00006D89 5866 ?0401: + 00006D89 FD 6E 48 5867 LD L,(IY+72) + 00006D8C FD 66 49 5868 LD H,(IY+73) + 00006D8F 23 5869 INC HL + 00006D90 7E 5870 LD A,(HL) + 00006D91 FE 04 5871 CP 4 + 00006D93 C2 5A 6F 5872 JP NZ,?0454 + 00006D96 FD 6E 4A 5873 LD L,(IY+74) + 00006D99 FD 66 4B 5874 LD H,(IY+75) + 00006D9C 23 5875 INC HL + 00006D9D 7E 5876 LD A,(HL) + 00006D9E FE 04 5877 CP 4 + 00006DA0 C2 5A 6F 5878 JP NZ,?0454 + 00006DA3 5879 ?0429: + 00006DA3 5880 ?0428: + 00006DA3 5881 ?0426: + 00006DA3 FD 36 01 04 5882 LD (IY+1),4 + 00006DA7 FD 7E 02 5883 LD A,(IY+2) + 00006DAA FE 26 5884 CP 38 + 00006DAC 20 19 5885 JR NZ,?0432 + 00006DAE 5886 ?0431: + 00006DAE FD 6E 4A 5887 LD L,(IY+74) + 00006DB1 FD 66 4B 5888 LD H,(IY+75) + 00006DB4 01 24 00 5889 LD BC,36 + 00006DB7 09 5890 ADD HL,BC + 00006DB8 4E 5891 LD C,(HL) + 00006DB9 23 5892 INC HL + 00006DBA 46 5893 LD B,(HL) + 00006DBB 23 5894 INC HL + 00006DBC 5E 5895 LD E,(HL) + 00006DBD 23 5896 INC HL + 00006DBE 56 5897 LD D,(HL) + 00006DBF D5 5898 PUSH DE + 00006DC0 C5 5899 PUSH BC + 00006DC1 CD 72 6F 5900 CALL LWRD ?0673 + 00006DC4 C3 01 6F 5901 JP LWRD ?0606 + 00006DC7 5902 ?0432: + 00006DC7 FE 7C 5903 CP 124 + 00006DC9 C2 5A 6F 5904 JP NZ,?0454 + 00006DCC FD 6E 4A 5905 LD L,(IY+74) + 00006DCF FD 66 4B 5906 LD H,(IY+75) + 00006DD2 01 24 00 5907 LD BC,36 + 00006DD5 09 5908 ADD HL,BC + 00006DD6 4E 5909 LD C,(HL) + 00006DD7 23 5910 INC HL + 00006DD8 46 5911 LD B,(HL) + 00006DD9 23 5912 INC HL + 00006DDA 5E 5913 LD E,(HL) + 00006DDB 23 5914 INC HL + 00006DDC 56 5915 LD D,(HL) + 00006DDD D5 5916 PUSH DE + 00006DDE C5 5917 PUSH BC + 00006DDF CD 87 6F 5918 CALL LWRD ?0674 + 00006DE2 C3 01 6F 5919 JP LWRD ?0606 + 00006DE5 5920 ?0430: + 00006DE5 5921 ?0427: + 00006DE5 5922 ?0372: + 00006DE5 5923 ?0360: + 00006DE5 DD 36 FC FF 5924 LD (IX-4),255 + 00006DE9 DD 36 FD FF 5925 LD (IX-3),255 + 00006DED 79 5926 LD A,C + 00006DEE B0 5927 OR B + 00006DEF 28 79 5928 JR Z,?0436 + 00006DF1 5929 ?0434: + 00006DF1 69 5930 LD L,C + 00006DF2 60 5931 LD H,B + 00006DF3 7E 5932 LD A,(HL) + 00006DF4 23 5933 INC HL + 00006DF5 66 5934 LD H,(HL) + 00006DF6 6F 5935 LD L,A + 00006DF7 46 5936 LD B,(HL) + 00006DF8 DD 70 FA 5937 LD (IX-6),B + 00006DFB 23 5938 INC HL + 00006DFC 66 5939 LD H,(HL) + 00006DFD DD 74 FB 5940 LD (IX-5),H + 00006E00 AF 5941 XOR A + 00006E01 DD 77 F8 5942 LD (IX-8),A + 00006E04 DD 77 F9 5943 LD (IX-7),A + 00006E07 5944 ?0437: + 00006E07 DD 4E FA 5945 LD C,(IX-6) + 00006E0A DD 46 FB 5946 LD B,(IX-5) + 00006E0D DD 6E F8 5947 LD L,(IX-8) + 00006E10 DD 66 F9 5948 LD H,(IX-7) + 00006E13 F6 80 5949 OR 128 + 00006E15 ED 42 5950 SBC HL,BC + 00006E17 E2 1B 6E 5951 JP PO,?0562 + 00006E1A AC 5952 XOR H + 00006E1B 5953 ?0562: + 00006E1B F2 6A 6E 5954 JP P,?0436 + 00006E1E 5955 ?0438: + 00006E1E 21 04 00 5956 LD HL,4 + 00006E21 FD E5 5957 PUSH IY + 00006E23 C1 5958 POP BC + 00006E24 09 5959 ADD HL,BC + 00006E25 4D 5960 LD C,L + 00006E26 44 5961 LD B,H + 00006E27 DD 6E FE 5962 LD L,(IX-2) + 00006E2A DD 66 FF 5963 LD H,(IX-1) + 00006E2D 56 5964 LD D,(HL) + 00006E2E 23 5965 INC HL + 00006E2F 66 5966 LD H,(HL) + 00006E30 6A 5967 LD L,D + 00006E31 23 5968 INC HL + 00006E32 23 5969 INC HL + 00006E33 56 5970 LD D,(HL) + 00006E34 23 5971 INC HL + 00006E35 66 5972 LD H,(HL) + 00006E36 6A 5973 LD L,D + 00006E37 E5 5974 PUSH HL + 00006E38 DD 6E F8 5975 LD L,(IX-8) + 00006E3B DD 66 F9 5976 LD H,(IX-7) + 00006E3E 29 5977 ADD HL,HL + 00006E3F 29 5978 ADD HL,HL + 00006E40 5D 5979 LD E,L + 00006E41 54 5980 LD D,H + 00006E42 29 5981 ADD HL,HL + 00006E43 19 5982 ADD HL,DE + 00006E44 EB 5983 EX DE,HL + 00006E45 E1 5984 POP HL + 00006E46 19 5985 ADD HL,DE + 00006E47 EB 5986 EX DE,HL + 00006E48 3E 00 5987 LD A,BYTE3 strcmp + 00006E4A 21 93 7D 5988 LD HL,LWRD strcmp + 00006E4D CD 19 82 5989 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006E50 7D 5990 LD A,L + 00006E51 B4 5991 OR H + 00006E52 20 0C 5992 JR NZ,?0441 + 00006E54 5993 ?0440: + 00006E54 DD 6E F8 5994 LD L,(IX-8) + 00006E57 DD 66 F9 5995 LD H,(IX-7) + 00006E5A DD 75 FC 5996 LD (IX-4),L + 00006E5D DD 74 FD 5997 LD (IX-3),H + 00006E60 5998 ?0441: + 00006E60 DD 34 F8 5999 INC (IX-8) + 00006E63 20 A2 6000 JR NZ,?0437 + 00006E65 DD 34 F9 6001 INC (IX-7) + 00006E68 18 9D 6002 JR ?0437 + 00006E6A 6003 ?0436: + 00006E6A 6004 ?0435: + 00006E6A DD CB FD 7E 6005 BIT 7,(IX-3) + 00006E6E 20 08 6006 JR NZ,?0444 + 00006E70 DD 7E FE 6007 LD A,(IX-2) + 00006E73 DD B6 FF 6008 OR (IX-1) + 00006E76 20 47 6009 JR NZ,?0443 + 00006E78 6010 ?0444: + 00006E78 6011 ?0445: + 00006E78 6012 ?0442: + 00006E78 FD 7E 04 6013 LD A,(IY+4) + 00006E7B FE 27 6014 CP 39 + 00006E7D 20 2A 6015 JR NZ,?0447 + 00006E7F 6016 ?0446: + 00006E7F FD 36 01 03 6017 LD (IY+1),3 + 00006E83 21 04 00 6018 LD HL,4 + 00006E86 FD E5 6019 PUSH IY + 00006E88 C1 6020 POP BC + 00006E89 09 6021 ADD HL,BC + 00006E8A 4D 6022 LD C,L + 00006E8B 44 6023 LD B,H + 00006E8C 03 6024 INC BC + 00006E8D 21 28 00 6025 LD HL,40 + 00006E90 FD E5 6026 PUSH IY + 00006E92 D1 6027 POP DE + 00006E93 CD 00 4A 6028 CALL LWRD ?0653 + 00006E96 21 28 00 6029 LD HL,40 + 00006E99 FD E5 6030 PUSH IY + 00006E9B C1 6031 POP BC + 00006E9C 09 6032 ADD HL,BC + 00006E9D CD EC 49 6033 CALL LWRD ?0648 + 00006EA0 09 6034 ADD HL,BC + 00006EA1 01 27 00 6035 LD BC,39 + 00006EA4 09 6036 ADD HL,BC + 00006EA5 70 6037 LD (HL),B + 00006EA6 C3 5A 6F 6038 JP LWRD ?0454 + 00006EA9 6039 ?0447: + 00006EA9 FD 36 01 01 6040 LD (IY+1),1 + 00006EAD 21 04 00 6041 LD HL,4 + 00006EB0 FD E5 6042 PUSH IY + 00006EB2 C1 6043 POP BC + 00006EB3 09 6044 ADD HL,BC + 00006EB4 EB 6045 EX DE,HL + 00006EB5 3E 01 6046 LD A,BYTE3 atol + 00006EB7 21 20 49 6047 LD HL,LWRD atol + 00006EBA CD 19 82 6048 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006EBD 18 42 6049 JR ?0606 + 00006EBF 6050 ?0448: + 00006EBF 6051 ?0443: + 00006EBF DD 6E FE 6052 LD L,(IX-2) + 00006EC2 DD 66 FF 6053 LD H,(IX-1) + 00006EC5 46 6054 LD B,(HL) + 00006EC6 23 6055 INC HL + 00006EC7 66 6056 LD H,(HL) + 00006EC8 68 6057 LD L,B + 00006EC9 23 6058 INC HL + 00006ECA 23 6059 INC HL + 00006ECB 46 6060 LD B,(HL) + 00006ECC 23 6061 INC HL + 00006ECD 66 6062 LD H,(HL) + 00006ECE 68 6063 LD L,B + 00006ECF E5 6064 PUSH HL + 00006ED0 DD 6E FC 6065 LD L,(IX-4) + 00006ED3 DD 66 FD 6066 LD H,(IX-3) + 00006ED6 29 6067 ADD HL,HL + 00006ED7 29 6068 ADD HL,HL + 00006ED8 4D 6069 LD C,L + 00006ED9 44 6070 LD B,H + 00006EDA 29 6071 ADD HL,HL + 00006EDB 09 6072 ADD HL,BC + 00006EDC 4D 6073 LD C,L + 00006EDD 44 6074 LD B,H + 00006EDE E1 6075 POP HL + 00006EDF 09 6076 ADD HL,BC + 00006EE0 01 09 00 6077 LD BC,9 + 00006EE3 09 6078 ADD HL,BC + 00006EE4 7E 6079 LD A,(HL) + 00006EE5 FE 49 6080 CP 73 + 00006EE7 20 26 6081 JR NZ,?0451 + 00006EE9 6082 ?0450: + 00006EE9 FD 36 01 01 6083 LD (IY+1),1 + 00006EED DD 4E FC 6084 LD C,(IX-4) + 00006EF0 DD 46 FD 6085 LD B,(IX-3) + 00006EF3 DD 5E FE 6086 LD E,(IX-2) + 00006EF6 DD 56 FF 6087 LD D,(IX-1) + 00006EF9 3E 00 6088 LD A,BYTE3 dbGetLong + 00006EFB 21 52 64 6089 LD HL,LWRD dbGetLong + 00006EFE CD 19 82 6090 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006F01 6091 ?0606: + 00006F01 FD 75 24 6092 LD (IY+36),L + 00006F04 FD 74 25 6093 LD (IY+37),H + 00006F07 FD 71 26 6094 LD (IY+38),C + 00006F0A FD 70 27 6095 LD (IY+39),B + 00006F0D 18 4B 6096 JR ?0454 + 00006F0F 6097 ?0451: + 00006F0F DD 6E FE 6098 LD L,(IX-2) + 00006F12 DD 66 FF 6099 LD H,(IX-1) + 00006F15 46 6100 LD B,(HL) + 00006F16 23 6101 INC HL + 00006F17 66 6102 LD H,(HL) + 00006F18 68 6103 LD L,B + 00006F19 23 6104 INC HL + 00006F1A 23 6105 INC HL + 00006F1B 46 6106 LD B,(HL) + 00006F1C 23 6107 INC HL + 00006F1D 66 6108 LD H,(HL) + 00006F1E 68 6109 LD L,B + 00006F1F E5 6110 PUSH HL + 00006F20 DD 6E FC 6111 LD L,(IX-4) + 00006F23 DD 66 FD 6112 LD H,(IX-3) + 00006F26 29 6113 ADD HL,HL + 00006F27 29 6114 ADD HL,HL + 00006F28 4D 6115 LD C,L + 00006F29 44 6116 LD B,H + 00006F2A 29 6117 ADD HL,HL + 00006F2B 09 6118 ADD HL,BC + 00006F2C 4D 6119 LD C,L + 00006F2D 44 6120 LD B,H + 00006F2E E1 6121 POP HL + 00006F2F 09 6122 ADD HL,BC + 00006F30 01 09 00 6123 LD BC,9 + 00006F33 09 6124 ADD HL,BC + 00006F34 7E 6125 LD A,(HL) + 00006F35 FE 53 6126 CP 83 + 00006F37 20 21 6127 JR NZ,?0454 + 00006F39 6128 ?0453: + 00006F39 FD 36 01 03 6129 LD (IY+1),3 + 00006F3D 21 28 00 6130 LD HL,40 + 00006F40 FD E5 6131 PUSH IY + 00006F42 C1 6132 POP BC + 00006F43 09 6133 ADD HL,BC + 00006F44 E5 6134 PUSH HL + 00006F45 DD 4E FC 6135 LD C,(IX-4) + 00006F48 DD 46 FD 6136 LD B,(IX-3) + 00006F4B DD 5E FE 6137 LD E,(IX-2) + 00006F4E DD 56 FF 6138 LD D,(IX-1) + 00006F51 3E 00 6139 LD A,BYTE3 dbGetString + 00006F53 21 C6 62 6140 LD HL,LWRD dbGetString + 00006F56 CD 19 82 6141 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006F59 E1 6142 POP HL + 00006F5A 6143 ?0454: + 00006F5A 6144 ?0452: + 00006F5A 6145 ?0449: + 00006F5A 6146 ?0433: + 00006F5A C3 D0 49 6147 JP LWRD ?0630 + 00006F5D 6148 ?0671: + 00006F5D FD 6E 48 6149 LD L,(IY+72) + 00006F60 FD 66 49 6150 LD H,(IY+73) + 00006F63 6151 ?0672: + 00006F63 01 24 00 6152 LD BC,36 + 00006F66 09 6153 ADD HL,BC + 00006F67 5E 6154 LD E,(HL) + 00006F68 23 6155 INC HL + 00006F69 56 6156 LD D,(HL) + 00006F6A 23 6157 INC HL + 00006F6B 4E 6158 LD C,(HL) + 00006F6C 23 6159 INC HL + 00006F6D 46 6160 LD B,(HL) + 00006F6E EB 6161 EX DE,HL + 00006F6F C3 44 82 6162 JP LWRD ?SL_CMP_L03 + 00006F72 6163 ?0673: + 00006F72 FD 6E 48 6164 LD L,(IY+72) + 00006F75 FD 66 49 6165 LD H,(IY+73) + 00006F78 01 24 00 6166 LD BC,36 + 00006F7B 09 6167 ADD HL,BC + 00006F7C 5E 6168 LD E,(HL) + 00006F7D 23 6169 INC HL + 00006F7E 56 6170 LD D,(HL) + 00006F7F 23 6171 INC HL + 00006F80 4E 6172 LD C,(HL) + 00006F81 23 6173 INC HL + 00006F82 46 6174 LD B,(HL) + 00006F83 EB 6175 EX DE,HL + 00006F84 C3 26 82 6176 JP LWRD ?L_AND_L03 + 00006F87 6177 ?0674: + 00006F87 FD 6E 48 6178 LD L,(IY+72) + 00006F8A FD 66 49 6179 LD H,(IY+73) + 00006F8D 01 24 00 6180 LD BC,36 + 00006F90 09 6181 ADD HL,BC + 00006F91 5E 6182 LD E,(HL) + 00006F92 23 6183 INC HL + 00006F93 56 6184 LD D,(HL) + 00006F94 23 6185 INC HL + 00006F95 4E 6186 LD C,(HL) + 00006F96 23 6187 INC HL + 00006F97 46 6188 LD B,(HL) + 00006F98 EB 6189 EX DE,HL + 00006F99 C3 C4 81 6190 JP LWRD ?L_OR_L03 + 6191 RSEG CSTR + 00008481 6192 ?0066: + 00008481 53 45 4C 6193 DEFB 'SEL' + 00008484 00 6194 DEFB 0 + 00008485 6195 ?0069: + 00008485 49 4E 53 6196 DEFB 'INS' + 00008488 00 6197 DEFB 0 + 00008489 6198 ?0072: + 00008489 55 50 44 6199 DEFB 'UPD' + 0000848C 00 6200 DEFB 0 + 0000848D 6201 ?0075: + 0000848D 44 45 4C 6202 DEFB 'DEL' + 00008490 00 6203 DEFB 0 + 00008491 6204 ?0081: + 00008491 20 46 52 20 6205 DEFB ' FR ' + 00008495 00 6206 DEFB 0 + 00008496 6207 ?0085: + 00008496 20 57 48 6208 DEFB ' WH' + 00008499 00 6209 DEFB 0 + 0000849A 6210 ?0090: + 0000849A 20 4F 52 44 20 6211 DEFB ' ORD ' + 0000849F 00 6212 DEFB 0 + 000084A0 6213 ?0094: + 000084A0 28 6214 DEFB '(' + 000084A1 00 6215 DEFB 0 + 000084A2 6216 ?0098: + 000084A2 29 20 56 41 4C 28 6217 DEFB ') VAL(' + 000084A8 00 6218 DEFB 0 + 000084A9 6219 ?0103: + 000084A9 20 53 54 20 6220 DEFB ' ST ' + 000084AD 00 6221 DEFB 0 + 000084AE 6222 ?0114: + 000084AE 2F 75 73 72 2F 64 62 6223 DEFB '/usr/db/' + 2F + 000084B6 00 6224 DEFB 0 + 000084B7 6225 ?0115: + 000084B7 2E 54 42 4C 6226 DEFB '.TBL' + 000084BB 00 6227 DEFB 0 + 000084BC 6228 ?0116: + 000084BC 72 62 6229 DEFB 'rb' + 000084BE 00 6230 DEFB 0 + 000084BF 6231 ?0126: + 000084BF 2E 44 41 54 6232 DEFB '.DAT' + 000084C3 00 6233 DEFB 0 + 000084C4 6234 ?0127: + 000084C4 72 2B 62 6235 DEFB 'r+b' + 000084C7 00 6236 DEFB 0 + 000084C8 6237 ?0146: + 000084C8 22 2A 22 6238 DEFB '"*"' + 000084CB 00 6239 DEFB 0 + 000084CC 6240 ?0156: + 000084CC 72 65 73 75 6C 74 6241 DEFB 'result' + 000084D2 00 6242 DEFB 0 + 000084D3 6243 ?0157: + 000084D3 77 62 6244 DEFB 'wb' + 000084D5 00 6245 DEFB 0 + 00000055 6246 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | 1 ?0000 00000009 R + 1 ?0001 00000030 R | 1 ?0002 00000011 R + 1 ?0003 00000014 R | 1 ?0004 0000001C R + 1 ?0005 0000002A R | 1 ?0006 00000067 R + 1 ?0007 00000052 R | 1 ?0008 0000005A R + 1 ?0009 000000A0 R | 1 ?0010 0000008B R + 1 ?0011 00000093 R | 1 ?0012 00000100 R + 1 ?0013 000000CB R | 1 ?0014 00000100 R + 1 ?0015 00000289 R | 1 ?0016 0000012B R + 1 ?0017 0000013A R | 1 ?0018 00000152 R + 1 ?0019 0000016F R | 1 ?0020 00000152 R + 1 ?0021 00000152 R | 1 ?0022 0000020B R + 1 ?0023 00000218 R | 1 ?0024 0000020B R + 1 ?0025 0000020B R | 1 ?0026 0000020B R + 1 ?0027 0000020B R | 1 ?0028 0000026A R + 1 ?0029 00000272 R | 1 ?0030 0000025E R + 1 ?0031 0000025E R | 1 ?0032 0000026A R + 1 ?0033 0000026A R | 1 ?0034 00000296 R + 1 ?0035 00000297 R | 1 ?0036 0000029A R + 1 ?0037 000002C6 R | 1 ?0038 000002AB R + 1 ?0039 000002C2 R | 1 ?0040 000002C2 R + 1 ?0041 000002C2 R | 1 ?0042 000002CE R + 1 ?0043 000002DA R | 1 ?0044 00000441 R + 1 ?0045 00000319 R | 1 ?0046 0000034A R + 1 ?0047 00000337 R | 1 ?0048 00000337 R + 1 ?0049 0000034A R | 1 ?0050 0000034A R + 1 ?0051 0000038D R | 1 ?0052 00000361 R + 1 ?0053 00000371 R | 1 ?0054 0000037B R + 1 ?0055 0000037E R | 1 ?0056 00000380 R + 1 ?0057 0000038A R | 1 ?0058 0000038D R + 1 ?0059 000003AC R | 1 ?0060 000003C9 R + 1 ?0061 000003AC R | 1 ?0062 000003AC R + 1 ?0063 0000042A R | 1 ?0064 000004EB R + 1 ?0065 000004F5 R | 2 ?0066 00000000 R + 1 ?0067 00000507 R | 1 ?0068 00000511 R + 2 ?0069 00000004 R | 1 ?0070 00000523 R + 1 ?0071 0000052D R | 2 ?0072 00000008 R + 1 ?0073 0000053F R | 1 ?0074 0000054C R + 2 ?0075 0000000C R | 1 ?0076 0000054F R + 1 ?0077 000005A2 R | 1 ?0078 000005AA R + 1 ?0079 000005D4 R | 1 ?0080 000005E1 R + 2 ?0081 00000010 R | 1 ?0082 000005E7 R + 1 ?0083 00000611 R | 1 ?0084 0000064D R + 2 ?0085 00000015 R | 1 ?0086 0000062C R + 1 ?0087 00000634 R | 1 ?0088 0000065C R + 1 ?0089 00000682 R | 2 ?0090 00000019 R + 1 ?0091 00000685 R | 1 ?0092 000006E1 R + 1 ?0093 000006E9 R | 2 ?0094 0000001F R + 1 ?0095 000006E9 R | 1 ?0096 00000712 R + 1 ?0097 00000732 R | 2 ?0098 00000021 R + 1 ?0099 00000737 R | 1 ?0100 0000073A R + 1 ?0101 0000078F R | 1 ?0102 0000079C R + 2 ?0103 00000028 R | 1 ?0104 000007A1 R + 1 ?0105 000007CC R | 1 ?0106 00000804 R + 1 ?0107 000007E8 R | 1 ?0108 000007F1 R + 1 ?0109 00000807 R | 1 ?0110 00000861 R + 1 ?0111 00000899 R | 1 ?0112 0000087D R + 1 ?0113 00000886 R | 2 ?0114 0000002D R + 2 ?0115 00000036 R | 2 ?0116 0000003B R + 1 ?0117 00000937 R | 1 ?0118 00000937 R + 1 ?0119 00000937 R | 1 ?0120 00000937 R + 1 ?0121 00000B2A R | 1 ?0122 00000A3F R + 1 ?0123 00000982 R | 1 ?0124 00000999 R + 2 ?0126 0000003E R | 2 ?0127 00000043 R + 1 ?0128 00000ABF R | 1 ?0129 00000ACE R + 1 ?0130 00000ABF R | 1 ?0131 00000ABF R + 1 ?0132 00000B2A R | 1 ?0133 00000C27 R + 1 ?0134 00000BEB R | 1 ?0135 00000C00 R + 1 ?0137 00000C9E R | 1 ?0138 00000C5A R + 1 ?0139 00000C6E R | 1 ?0141 00000C95 R + 1 ?0142 00000C9A R | 1 ?0143 00000CA1 R + 1 ?0144 00000D37 R | 1 ?0145 00000E2E R + 2 ?0146 00000047 R | 1 ?0147 00000E2E R + 1 ?0148 00000D5C R | 1 ?0149 00000D73 R + 1 ?0151 00000F61 R | 1 ?0152 00000F61 R + 1 ?0153 00000E5C R | 1 ?0154 00000E73 R + 2 ?0156 0000004B R | 2 ?0157 00000052 R + 1 ?0158 00000FFA R | 1 ?0159 00001011 R + 1 ?0160 00001021 R | 1 ?0161 00001171 R + 1 ?0162 00001028 R | 1 ?0163 00001046 R + 1 ?0165 00001079 R | 1 ?0166 00001165 R + 1 ?0167 00001113 R | 1 ?0168 00001091 R + 1 ?0169 000010A8 R | 1 ?0171 0000113C R + 1 ?0172 00001165 R | 1 ?0173 000012F9 R + 1 ?0174 000012C9 R | 1 ?0175 000012E0 R + 1 ?0177 000014E4 R | 1 ?0178 00001340 R + 1 ?0179 00001357 R | 1 ?0181 000013D4 R + 1 ?0182 00001458 R | 1 ?0183 00001458 R + 1 ?0184 000013F6 R | 1 ?0185 0000141E R + 1 ?0186 0000142C R | 1 ?0187 00001443 R + 1 ?0188 00001458 R | 1 ?0189 0000144F R + 1 ?0190 00001458 R | 1 ?0191 000014BE R + 1 ?0192 000014BE R | 1 ?0193 00001464 R + 1 ?0194 0000146D R | 1 ?0195 0000148E R + 1 ?0196 000014BE R | 1 ?0197 0000149A R + 1 ?0198 000014BE R | 1 ?0199 000014F3 R + 1 ?0200 00001543 R | 1 ?0201 0000160A R + 1 ?0202 000015E3 R | 1 ?0203 000015AF R + 1 ?0204 000015B9 R | 1 ?0205 000016A1 R + 1 ?0206 000016B8 R | 1 ?0207 000016BA R + 1 ?0208 000017AC R | 1 ?0209 000016F0 R + 1 ?0210 00001707 R | 1 ?0212 00001738 R + 1 ?0213 000017A0 R | 1 ?0214 00001743 R + 1 ?0215 000017A0 R | 1 ?0216 0000189D R + 1 ?0217 000018B4 R | 1 ?0218 000018B6 R + 1 ?0219 0000198E R | 1 ?0220 00001909 R + 1 ?0221 00001920 R | 1 ?0223 00001BB3 R + 1 ?0224 00001995 R | 1 ?0225 000019AC R + 1 ?0227 000019DE R | 1 ?0228 00001BA7 R + 1 ?0229 000019EA R | 1 ?0230 00001BA7 R + 1 ?0231 00001A4B R | 1 ?0232 00001A0B R + 1 ?0233 00001A22 R | 1 ?0235 00001B73 R + 1 ?0236 00001A62 R | 1 ?0237 00001A79 R + 1 ?0239 00001B56 R | 1 ?0240 00001ACA R + 1 ?0241 00001AFE R | 1 ?0242 00001C02 R + 1 ?0243 00001BC8 R | 1 ?0244 00001BDF R + 1 ?0246 00001C36 R | 1 ?0247 00001C3A R + 1 ?0248 00001C79 R | 1 ?0249 00001C41 R + 1 ?0250 00001C4B R | 1 ?0251 00001C59 R + 1 ?0252 00001C67 R | 1 ?0253 00001C87 R + 1 ?0254 00001CB0 R | 1 ?0255 00001CB9 R + 1 ?0256 00001CD0 R | 1 ?0257 00001CE4 R + 1 ?0258 00001D22 R | 1 ?0259 00001D2E R + 1 ?0260 00001D3F R | 1 ?0261 00001D36 R + 1 ?0262 00001D39 R | 1 ?0263 00001E7A R + 1 ?0264 00001DC7 R | 1 ?0265 00001DE2 R + 1 ?0266 00001E0D R | 1 ?0267 00001E2E R + 1 ?0268 00001E7A R | 1 ?0269 00001E54 R + 1 ?0270 00001E7A R | 1 ?0271 00001EFD R + 1 ?0272 00001ED0 R | 1 ?0273 00001EE6 R + 1 ?0274 00001EF9 R | 1 ?0275 00001EF9 R + 1 ?0276 00001FBC R | 1 ?0277 00001F52 R + 1 ?0278 00001F6A R | 1 ?0279 00001FA1 R + 1 ?0280 00001FAC R | 1 ?0281 00001FB6 R + 1 ?0282 00001FB9 R | 1 ?0283 00002016 R + 1 ?0284 00001FF4 R | 1 ?0285 00001FF8 R + 1 ?0286 00001FFC R | 1 ?0287 00002000 R + 1 ?0288 00002004 R | 1 ?0289 00002008 R + 1 ?0290 0000200C R | 1 ?0291 00002010 R + 1 ?0292 00002012 R | 1 ?0293 00002079 R + 1 ?0294 0000209D R | 1 ?0295 000020CA R + 1 ?0296 000020A4 R | 1 ?0297 000020B4 R + 1 ?0299 00002427 R | 1 ?0301 000020DB R + 1 ?0302 000020E2 R | 1 ?0303 00002108 R + 1 ?0304 00002126 R | 1 ?0305 00002403 R + 1 ?0306 0000212B R | 1 ?0307 00002189 R + 1 ?0308 0000213E R | 1 ?0309 00002146 R + 1 ?0310 0000215A R | 1 ?0311 00002189 R + 1 ?0312 00002403 R | 1 ?0313 0000219D R + 1 ?0314 000021E3 R | 1 ?0315 000021A5 R + 1 ?0316 000021BF R | 1 ?0317 000021CB R + 1 ?0318 000023FB R | 1 ?0319 000021ED R + 1 ?0320 00002264 R | 1 ?0321 0000220A R + 1 ?0322 00002235 R | 1 ?0323 0000223E R + 1 ?0324 000023FB R | 1 ?0325 0000226E R + 1 ?0326 00002298 R | 1 ?0327 00002276 R + 1 ?0328 00002289 R | 1 ?0329 00002295 R + 1 ?0330 000023FB R | 1 ?0331 000022A2 R + 1 ?0332 000023FB R | 1 ?0333 000022AA R + 1 ?0334 000022BC R | 1 ?0335 000022C8 R + 1 ?0336 000022E5 R | 1 ?0337 000022C8 R + 1 ?0338 000022DA R | 1 ?0339 000022DA R + 1 ?0340 000022DA R | 1 ?0341 000022F7 R + 1 ?0342 0000232E R | 1 ?0343 000022F7 R + 1 ?0344 000022F7 R | 1 ?0345 000023FB R + 1 ?0346 00002340 R | 1 ?0347 00002392 R + 1 ?0348 00002340 R | 1 ?0349 00002340 R + 1 ?0350 000023FB R | 1 ?0351 00002455 R + 1 ?0352 00002427 R | 1 ?0353 0000243D R + 1 ?0354 0000243D R | 1 ?0355 0000243D R + 1 ?0356 00002457 R | 1 ?0357 000024A1 R + 1 ?0358 000024BD R | 1 ?0359 000024D7 R + 1 ?0360 00002890 R | 1 ?0361 00002511 R + 1 ?0362 00002605 R | 1 ?0363 00002522 R + 1 ?0364 00002605 R | 1 ?0365 00002522 R + 1 ?0366 00002522 R | 1 ?0367 000025F6 R + 1 ?0368 0000252D R | 1 ?0369 0000255A R + 1 ?0370 00002592 R | 1 ?0371 000025BF R + 1 ?0372 00002890 R | 1 ?0373 00002618 R + 1 ?0374 0000273A R | 1 ?0375 00002618 R + 1 ?0376 00002618 R | 1 ?0377 0000273A R + 1 ?0378 0000263B R | 1 ?0380 00002673 R + 1 ?0382 00002679 R | 1 ?0386 00002696 R + 1 ?0390 000026B9 R | 1 ?0394 000026DC R + 1 ?0396 000026FC R | 1 ?0398 00002700 R + 1 ?0399 00002718 R | 1 ?0400 00002754 R + 1 ?0401 00002834 R | 1 ?0402 00002754 R + 1 ?0403 00002754 R | 1 ?0404 00002834 R + 1 ?0405 0000278F R | 1 ?0407 0000279B R + 1 ?0409 000027A0 R | 1 ?0413 000027AD R + 1 ?0417 000027C6 R | 1 ?0421 000027DF R + 1 ?0423 000027EF R | 1 ?0424 000027F1 R + 1 ?0425 000027FF R | 1 ?0426 0000284E R + 1 ?0427 00002890 R | 1 ?0428 0000284E R + 1 ?0429 0000284E R | 1 ?0430 00002890 R + 1 ?0431 00002859 R | 1 ?0432 00002872 R + 1 ?0433 00002A05 R | 1 ?0434 0000289C R + 1 ?0435 00002915 R | 1 ?0436 00002915 R + 1 ?0437 000028B2 R | 1 ?0438 000028C9 R + 1 ?0440 000028FF R | 1 ?0441 0000290B R + 1 ?0442 00002923 R | 1 ?0443 0000296A R + 1 ?0444 00002923 R | 1 ?0445 00002923 R + 1 ?0446 0000292A R | 1 ?0447 00002954 R + 1 ?0448 0000296A R | 1 ?0449 00002A05 R + 1 ?0450 00002994 R | 1 ?0451 000029BA R + 1 ?0452 00002A05 R | 1 ?0453 000029E4 R + 1 ?0454 00002A05 R | 1 ?0458 000000CA R + 1 ?0459 00000272 R | 1 ?0463 0000036B R + 1 ?0464 0000036C R | 1 ?0465 00000435 R + 1 ?0472 00000547 R | 1 ?0473 000005AA R + 1 ?0475 0000061C R | 1 ?0476 00000634 R + 1 ?0477 00000667 R | 1 ?0481 000006E9 R + 1 ?0482 0000071D R | 1 ?0488 000007D7 R + 1 ?0489 000007F1 R | 1 ?0492 0000086C R + 1 ?0493 00000886 R | 1 ?0494 00000996 R + 1 ?0498 00000BFD R | 1 ?0500 00000C6B R + 1 ?0501 00000D70 R | 1 ?0503 00000E70 R + 1 ?0505 00001043 R | 1 ?0506 000010A5 R + 1 ?0508 00001165 R | 1 ?0510 00001013 R + 1 ?0511 000012DD R | 1 ?0513 00001354 R + 1 ?0516 000014BB R | 1 ?0517 000015F6 R + 1 ?0519 000014A0 R | 1 ?0520 00001481 R + 1 ?0521 00001704 R | 1 ?0522 000017A0 R + 1 ?0524 000016BA R | 1 ?0525 0000191D R + 1 ?0527 000019A9 R | 1 ?0528 00001A1F R + 1 ?0530 00001A76 R | 1 ?0533 00001BDC R + 1 ?0535 000018B6 R | 1 ?0536 00001B34 R + 1 ?0545 00001C73 R | 1 ?0547 00001CCD R + 1 ?0548 00001E79 R | 1 ?0549 00002165 R + 1 ?0550 000021EA R | 1 ?0551 0000229F R + 1 ?0552 000022CF R | 1 ?0553 000022F4 R + 1 ?0554 0000233D R | 1 ?0555 0000240B R + 1 ?0556 00002416 R | 1 ?0557 000023F8 R + 1 ?0560 000027BE R | 1 ?0561 000027D7 R + 1 ?0562 000028C6 R | 1 ?0564 0000258D R + 1 ?0583 000025EA R | 1 ?0597 000026F7 R + 1 ?0598 0000272E R | 1 ?0604 000027EA R + 1 ?0606 000029AC R | 1 ?0614 0000006B R + 1 ?0625 00000101 R | 1 ?0626 000002E1 R + 1 ?0630 0000047B R | 1 ?0634 00000B80 R + 1 ?0636 00000B83 R | 1 ?0637 00001814 R + 1 ?0638 00000035 R | 1 ?0639 0000003B R + 1 ?0640 000011E0 R | 1 ?0641 0000048F R + 1 ?0642 0000048E R | 1 ?0643 00000484 R + 1 ?0644 0000048D R | 1 ?0645 00000B4B R + 1 ?0646 00000B41 R | 1 ?0647 0000120F R + 1 ?0648 00000497 R | 1 ?0649 00000498 R + 1 ?0650 00000B53 R | 1 ?0651 000004AD R + 1 ?0652 000004AC R | 1 ?0653 000004AB R + 1 ?0654 000004A8 R | 1 ?0655 000004A0 R + 1 ?0656 00000560 R | 1 ?0657 00000552 R + 1 ?0658 0000055E R | 1 ?0659 0000068F R + 1 ?0660 0000068A R | 1 ?0661 0000122F R + 1 ?0662 00001221 R | 1 ?0663 00001237 R + 1 ?0664 0000165A R | 1 ?0665 00001654 R + 1 ?0666 0000245F R | 1 ?0667 0000245A R + 1 ?0668 0000245C R | 1 ?0669 00002467 R + 1 ?0670 00002480 R | 1 ?0671 00002A08 R + 1 ?0672 00002A0E R | 1 ?0673 00002A1D R + 1 ?0674 00002A32 R | ?BANK_CALL_DIR ******** GX + ?BANK_FAST_LEA ******** GX | ?CL64180B_4_06 ******** GX + ?C_V_SWITCH_L0 ******** GX | ?L_AND_L03 ******** GX + ?L_MUL_L03 ******** GX | ?L_OR_L03 ******** GX + ?SL_CMP_L03 ******** GX | ?SL_DIV_L03 ******** GX + __fopen ******** GX | atoi ******** GX + atol ******** GX | 1 dbDeleteExpres 00002497 GR + 1 dbDeleteList 00000000 GR | 1 dbDeleteRow 00001D25 GR + 1 dbEvaluateExpr 000024C0 GR | 1 dbExecuteDelet 00001662 GR + 1 dbExecuteInser 00001259 GR | 1 dbExecuteQuery 00000CA4 GR + 1 dbExecuteState 00001C1E GR | 1 dbExecuteUpdat 0000185E GR + 1 dbFieldOffset 00000BDD GR | 1 dbFieldSearch 00000C4E GR + 1 dbGetInt 00001E7D GR | 1 dbGetLong 00001EFD GR + 1 dbGetString 00001D71 GR | 1 dbListIndex 00000043 GR + 1 dbListSize 00000073 GR | 1 dbNewExpressio 00002016 GR + 1 dbNewRow 00001D44 GR | 1 dbNextRow 00001C8A GR + 1 dbOperatorPrec 00001FBC GR | 1 dbParseDelete 0000080B GR + 1 dbParseExpress 0000205D GR | 1 dbParseInsert 00000697 GR + 1 dbParseList 000002E9 GR | 1 dbParseSelect 00000568 GR + 1 dbParseStateme 000004B5 GR | 1 dbParseUpdate 0000073E GR + 1 dbRecordSize 00000C32 GR | 1 dbReplaceChar 0000029F GR + 1 dbResultSetClo 00000BCA GR | 1 dbSkipLiteral 000000A3 GR + 1 dbStatementClo 00000B8E GR | 1 dbTableClose 00000B70 GR + 1 dbTableOpen 000008A0 GR | 1 dbTrimString 00000109 GR + fclose ******** GX | fread ******** GX + free ******** GX | fseek ******** GX + fwrite ******** GX | itoa ******** GX + ltoa ******** GX | malloc ******** GX + memcpy ******** GX | strcat ******** GX + strcmp ******** GX | strcpy ******** GX + strlen ******** GX | strncmp ******** 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 2A47 flags 0 + 2 CSTR size 55 flags 0 diff --git a/src/db/db.s01 b/src/db/db.s01 new file mode 100644 index 00000000..429c1e38 --- /dev/null +++ b/src/db/db.s01 @@ -0,0 +1,6246 @@ + NAME db(17) + RSEG CODE(0) + RSEG CSTR(0) + EXTERN __fopen + EXTERN atoi + EXTERN atol + PUBLIC dbDeleteExpression + PUBLIC dbDeleteList + PUBLIC dbDeleteRow + PUBLIC dbEvaluateExpression + PUBLIC dbExecuteDelete + PUBLIC dbExecuteInsert + PUBLIC dbExecuteQuery + PUBLIC dbExecuteStatement + PUBLIC dbExecuteUpdate + PUBLIC dbFieldOffset + PUBLIC dbFieldSearch + PUBLIC dbGetInt + PUBLIC dbGetLong + PUBLIC dbGetString + PUBLIC dbListIndex + PUBLIC dbListSize + PUBLIC dbNewExpression + PUBLIC dbNewRow + PUBLIC dbNextRow + PUBLIC dbOperatorPrecedence + PUBLIC dbParseDelete + PUBLIC dbParseExpression + PUBLIC dbParseInsert + PUBLIC dbParseList + PUBLIC dbParseSelect + PUBLIC dbParseStatement + PUBLIC dbParseUpdate + PUBLIC dbRecordSize + PUBLIC dbReplaceChar + PUBLIC dbResultSetClose + PUBLIC dbSkipLiteral + PUBLIC dbStatementClose + PUBLIC dbTableClose + PUBLIC dbTableOpen + PUBLIC dbTrimString + EXTERN fclose + EXTERN fread + EXTERN free + EXTERN fseek + EXTERN fwrite + EXTERN itoa + EXTERN ltoa + EXTERN malloc + EXTERN memcpy + EXTERN strcat + EXTERN strcmp + EXTERN strcpy + EXTERN strlen + EXTERN strncmp + EXTERN ?CL64180B_4_06_L00 + EXTERN ?L_MUL_L03 + EXTERN ?SL_DIV_L03 + EXTERN ?L_AND_L03 + EXTERN ?L_OR_L03 + EXTERN ?SL_CMP_L03 + EXTERN ?C_V_SWITCH_L06 + EXTERN ?BANK_CALL_DIRECT_L08 + EXTERN ?BANK_FAST_LEAVE_L08 + RSEG CODE +dbDeleteList: + PUSH IX + PUSH DE + POP IX + LD A,E + OR D + JR Z,?0001 +?0000: + LD A,(IX+4) + OR (IX+5) + JR Z,?0003 +?0002: + CALL LWRD ?0638 +?0003: + LD A,(IX+2) + OR (IX+3) + JR Z,?0005 +?0004: + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 dbDeleteList + LD HL,LWRD dbDeleteList + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0005: + PUSH IX + POP DE + CALL LWRD ?0639 +?0001: + POP IX + JP LWRD ?BANK_FAST_LEAVE_L08 +?0638: + LD E,(IX+4) + LD D,(IX+5) +?0639: + LD A,BYTE3 free + LD HL,LWRD free + JP LWRD ?BANK_CALL_DIRECT_L08 +dbListIndex: + PUSH BC + PUSH IY + PUSH IX + PUSH DE + LD L,E + LD H,D + PUSH HL + POP IX + LD IY,0 +?0007: + LD A,(IX+0) + OR (IX+1) + JR Z,?0006 +?0008: + LD L,(IX+0) + LD H,(IX+1) + PUSH HL + POP IX + INC IY + JR ?0007 +?0006: + PUSH IY + POP HL + POP AF +?0614: + POP IX + POP IY + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 +dbListSize: + PUSH BC + PUSH IY + PUSH IX + PUSH DE + LD L,E + LD H,D + PUSH HL + POP IX + EX DE,HL + LD A,BYTE3 dbListIndex + LD HL,LWRD dbListIndex + CALL LWRD ?BANK_CALL_DIRECT_L08 + INC HL + PUSH HL + POP IY +?0010: + LD A,(IX+2) + OR (IX+3) + JR Z,?0009 +?0011: + LD L,(IX+2) + LD H,(IX+3) + PUSH HL + POP IX + INC IY + JR ?0010 +?0009: + JP LWRD ?0006 +dbSkipLiteral: + PUSH IY + PUSH IX + PUSH DE + PUSH BC + POP IX + LD HL,10 + ADD HL,SP + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + POP IY + LD L,(IY+0) + LD H,(IY+1) + ADD HL,BC + LD D,(HL) + LD HL,12 + ADD HL,SP + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD E,(HL) + INC HL + LD H,(HL) + LD L,E + ADD HL,BC +?0458: + LD (HL),D +?0013: + PUSH IY + POP HL + LD C,(HL) + INC HL + LD B,(HL) + INC BC + LD (HL),B + DEC HL + LD (HL),C + PUSH IX + POP HL + ADD HL,BC + LD A,(HL) + LD HL,0 + ADD HL,SP + CP (HL) + LD L,(IY+0) + LD H,(IY+1) + PUSH IX + POP BC + ADD HL,BC + LD D,(HL) + PUSH DE + LD HL,14 + ADD HL,SP + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD E,(HL) + INC HL + LD D,(HL) + INC DE + LD (HL),D + DEC HL + LD (HL),E + LD L,C + LD H,B + ADD HL,DE + POP DE + JR NZ,?0458 +?0014: +?0012: + LD (HL),D +?0625: + POP HL + POP IX + POP IY + JP LWRD ?BANK_FAST_LEAVE_L08 +dbTrimString: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH AF + PUSH AF + PUSH AF + PUSH DE + POP IY + XOR A + LD (IX-6),A + LD (IX-5),A + LD (IX-4),A + LD (IX-3),A + LD (IX-2),32 +?0016: + LD L,(IX-6) + LD H,(IX-5) + PUSH IY + POP BC + ADD HL,BC + LD A,(HL) + OR A + JP Z,?0015 +?0017: + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 39 + JR Z,?0020 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 34 + JR NZ,?0019 +?0020: +?0021: +?0018: + LD HL,2 + ADD HL,SP + PUSH HL + DEC HL + DEC HL + PUSH HL + LD L,(IX-6) + LD H,(IX-5) + PUSH IY + POP DE + ADD HL,DE + LD E,(HL) + LD A,BYTE3 dbSkipLiteral + LD HL,LWRD dbSkipLiteral + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP HL + POP HL +?0019: + LD A,(IX-2) + CP 32 + JP NZ,?0023 + LD L,(IX-6) + LD H,(IX-5) + PUSH IY + POP BC + ADD HL,BC + LD A,(HL) + CP 44 + JP Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 41 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 40 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 43 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 45 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 42 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 47 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 38 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 124 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 61 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 60 + JR Z,?0026 + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 62 + JR NZ,?0023 +?0026: +?0027: +?0025: +?0024: +?0022: + LD L,(IX-4) + LD H,(IX-3) + DEC HL + LD (IX-4),L + LD (IX-3),H +?0023: + LD L,(IX-6) + LD H,(IX-5) + PUSH IY + POP BC + ADD HL,BC + LD D,(HL) + LD L,(IX-4) + LD H,(IX-3) + ADD HL,BC + LD (HL),D + LD A,(IX-2) + CP 44 + JR Z,?0031 + CP 32 + JR Z,?0031 + CP 40 + JR Z,?0031 + CP 43 + JR Z,?0031 + CP 45 + JR Z,?0031 + CP 42 + JR Z,?0031 + CP 47 + JR Z,?0031 + CP 38 + JR Z,?0031 + CP 124 + JR Z,?0031 + CP 61 + JR Z,?0031 + CP 62 + JR Z,?0031 + CP 60 + JR NZ,?0032 +?0031: +?0030: + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD A,(HL) + CP 32 + JR Z,?0459 +?0032: +?0033: +?0028: + INC (IX-4) + JR NZ,?0459 + INC (IX-3) +?0459: +?0029: + LD L,(IX-6) + LD H,(IX-5) + ADD HL,BC + LD B,(HL) + LD (IX-2),B + INC (IX-6) + JP NZ,?0016 + INC (IX-5) + JP LWRD ?0016 +?0015: + LD A,(IX-2) + CP 32 + LD L,(IX-4) + LD H,(IX-3) + JR NZ,?0035 +?0034: + DEC HL +?0035: + ADD HL,BC + LD (HL),0 +?0036: + LD SP,IX + JP LWRD ?0614 +dbReplaceChar: + PUSH IY + PUSH IX + PUSH BC + PUSH DE + POP IY + LD IX,0 +?0038: + PUSH IX + POP HL + PUSH IY + POP BC + ADD HL,BC + LD A,(HL) + LD HL,0 + ADD HL,SP + CP (HL) + JR Z,?0037 + PUSH IX + POP HL + ADD HL,BC + LD A,(HL) + OR A + JR Z,?0037 +?0041: +?0040: +?0039: + INC IX + JR ?0038 +?0037: + PUSH IX + POP HL + ADD HL,BC + LD A,(HL) + OR A + JR Z,?0043 +?0042: + PUSH IX + POP HL + ADD HL,BC + PUSH HL + LD HL,12 + ADD HL,SP + LD B,(HL) + POP HL + LD (HL),B +?0043: + PUSH IX + POP HL + PUSH IY + POP BC + ADD HL,BC +?0626: + POP AF + POP IX + POP IY + JP LWRD ?BANK_FAST_LEAVE_L08 +dbParseList: + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH BC + PUSH DE + LD HL,65496 + ADD HL,SP + LD SP,HL + LD DE,6 + CALL LWRD ?0641 + PUSH HL + POP IY + LD (IX-38),L + LD (IX-37),H + XOR A + LD (HL),A + INC HL + LD (HL),A + LD (IX-42),A + LD (IX-41),A + LD (IX-44),A + LD (IX-43),A +?0045: + LD L,(IX+10) + LD H,(IX+11) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD C,(IX-4) + LD B,(IX-3) + ADD HL,BC + LD A,(HL) + CP (IX+8) + JR NZ,?0047 + XOR A + OR (IX-44) + JP Z,?0044 +?0047: +?0048: + LD L,(IX+10) + LD H,(IX+11) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD A,(HL) + OR A + JP Z,?0044 +?0050: +?0049: +?0046: + LD L,(IX+10) + LD H,(IX+11) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD A,(HL) + CP 34 + JR Z,?0052 + CP 39 + JR NZ,?0053 +?0052: + XOR A + OR (IX-44) + JR NZ,?0463 + LD A,1 + JR ?0464 +?0463: + XOR A +?0464: + LD (IX-44),A + JR ?0058 +?0053: + CP 40 + JR NZ,?0056 + XOR A + OR (IX-44) + JR NZ,?0058 +?0054: + INC (IX-43) +?0055: + JR ?0058 +?0056: + CP 41 + JR NZ,?0058 + XOR A + OR (IX-44) + JR NZ,?0058 +?0057: + DEC (IX-43) +?0058: +?0051: + LD L,(IX+10) + LD H,(IX+11) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD A,(HL) + CP (IX-2) + JR NZ,?0061 + XOR A + OR (IX-44) + JR NZ,?0061 + OR (IX-43) + JR Z,?0060 +?0061: +?0062: +?0059: + LD L,(IX+10) + LD H,(IX+11) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD B,(HL) + LD HL,8 + ADD HL,SP + LD E,(IX-42) + LD D,(IX-41) + ADD HL,DE + LD (HL),B + JR ?0063 +?0060: + LD HL,8 + ADD HL,SP + LD C,(IX-42) + LD B,(IX-41) + ADD HL,BC + LD (HL),A + LD HL,8 + ADD HL,SP + CALL LWRD ?0648 + EX DE,HL + INC DE + CALL LWRD ?0641 + LD (IY+4),L + LD (IY+5),H + LD HL,8 + ADD HL,SP + LD C,L + LD B,H + LD E,(IY+4) + LD D,(IY+5) + CALL LWRD ?0651 + PUSH IY + POP HL + LD (IX-40),L + LD (IX-39),H + LD DE,6 + CALL LWRD ?0641 + LD (IY+2),L + LD (IY+3),H + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + POP IY + LD L,(IX-40) + LD H,(IX-39) + PUSH HL + PUSH IY + POP HL + POP BC + LD (HL),C + INC HL + LD (HL),B + LD (IX-42),255 + LD (IX-41),255 +?0063: + LD L,(IX+10) + LD H,(IX+11) + INC (HL) + INC HL + JR NZ,?0465 + INC (HL) +?0465: + INC (IX-42) + JP NZ,?0045 + INC (IX-41) + JP LWRD ?0045 +?0044: + LD HL,8 + ADD HL,SP + LD C,(IX-42) + LD B,(IX-41) + ADD HL,BC + LD (HL),A + LD HL,8 + ADD HL,SP + CALL LWRD ?0648 + EX DE,HL + INC DE + CALL LWRD ?0641 + LD (IY+4),L + LD (IY+5),H + LD HL,8 + ADD HL,SP + LD C,L + LD B,H + LD E,(IY+4) + LD D,(IY+5) + CALL LWRD ?0651 + XOR A + LD (IY+2),A + LD (IY+3),A + LD L,(IX-38) + LD H,(IX-37) +?0630: + LD SP,IX + POP IX + POP IY + JP LWRD ?BANK_FAST_LEAVE_L08 +?0643: + LD (HL),C + INC HL + LD (HL),B + LD L,(IY+0) + LD H,(IY+1) +?0644: + ADD HL,HL +?0642: + EX DE,HL +?0641: + LD A,BYTE3 malloc + LD HL,LWRD malloc + JP LWRD ?BANK_CALL_DIRECT_L08 +?0648: + EX DE,HL +?0649: + LD A,BYTE3 strlen + LD HL,LWRD strlen + JP LWRD ?BANK_CALL_DIRECT_L08 +?0655: + LD C,L + LD B,H + LD L,(IY+74) + LD H,(IY+75) +?0654: + LD DE,4 +?0653: + ADD HL,DE +?0652: + EX DE,HL +?0651: + LD A,BYTE3 strcpy + LD HL,LWRD strcpy + JP LWRD ?BANK_CALL_DIRECT_L08 +dbParseStatement: + PUSH BC + PUSH IY + PUSH IX + PUSH DE + POP IY + CALL LWRD ?0649 + EX DE,HL + INC DE + CALL LWRD ?0641 + PUSH HL + POP IX + PUSH IY + POP BC + CALL LWRD ?0652 + PUSH IX + POP DE + LD A,BYTE3 dbTrimString + LD HL,LWRD dbTrimString + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,3 + PUSH HL + LD BC,?0066 + PUSH IX + POP DE + CALL LWRD ?0656 + POP AF + LD A,L + OR H + JR NZ,?0065 +?0064: + PUSH IX + POP DE + LD A,BYTE3 dbParseSelect + LD HL,LWRD dbParseSelect + JR ?0472 +?0065: + LD HL,3 + PUSH HL + LD BC,?0069 + PUSH IX + POP DE + CALL LWRD ?0656 + POP AF + LD A,L + OR H + JR NZ,?0068 +?0067: + PUSH IX + POP DE + LD A,BYTE3 dbParseInsert + LD HL,LWRD dbParseInsert + JR ?0472 +?0068: + LD HL,3 + PUSH HL + LD BC,?0072 + PUSH IX + POP DE + CALL LWRD ?0656 + POP AF + LD A,L + OR H + JR NZ,?0071 +?0070: + PUSH IX + POP DE + LD A,BYTE3 dbParseUpdate + LD HL,LWRD dbParseUpdate + JR ?0472 +?0071: + LD HL,3 + PUSH HL + LD BC,?0075 + PUSH IX + POP DE + CALL LWRD ?0656 + POP AF + LD A,L + OR H + JR NZ,?0074 +?0073: + PUSH IX + POP DE + LD A,BYTE3 dbParseDelete + LD HL,LWRD dbParseDelete +?0472: + CALL LWRD ?BANK_CALL_DIRECT_L08 + JR ?0076 +?0074: + LD HL,0 +?0076: + JP LWRD ?0614 +?0657: + LD L,(IX-4) + LD H,(IX-3) + LD E,(IX-2) + LD D,(IX-1) +?0658: + ADD HL,DE + EX DE,HL +?0656: + LD A,BYTE3 strncmp + LD HL,LWRD strncmp + JP LWRD ?BANK_CALL_DIRECT_L08 +dbParseSelect: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH DE + PUSH AF + LD DE,9 + CALL LWRD ?0641 + PUSH HL + POP IY + LD (HL),115 + XOR A + LD (IY+5),A + LD (IY+6),A + LD (IY+7),A + LD (IY+8),A + LD (IX-4),3 + LD (IX-3),A + LD L,(IX-2) + LD H,(IX-1) + INC HL + INC HL + INC HL + LD A,(HL) + CP 32 + JR NZ,?0473 +?0077: + INC (IX-4) + JR NZ,?0473 + INC (IX-3) +?0473: +?0078: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + LD C,44 + LD E,(IX-2) + LD D,(IX-1) + CALL LWRD ?0659 + POP AF + POP AF + LD (IY+1),L + LD (IY+2),H + LD HL,4 + PUSH HL + LD BC,?0081 + CALL LWRD ?0657 + POP AF + LD A,L + OR H + JR NZ,?0080 +?0079: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,4 + LD (HL),A + JR NC,?0082 + INC HL + INC (HL) + JR ?0082 +?0080: + LD HL,0 + JP LWRD ?0091 +?0082: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + LD C,44 + LD E,(IX-2) + LD D,(IX-1) + CALL LWRD ?0659 + POP AF + POP AF + LD (IY+3),L + LD (IY+4),H + LD HL,3 + PUSH HL + LD BC,?0085 + CALL LWRD ?0657 + POP AF + LD A,L + OR H + JR NZ,?0084 +?0083: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,3 + LD (HL),A + JR NC,?0475 + INC HL + INC (HL) +?0475: + LD L,A + LD H,(IX-3) + LD C,(IX-2) + LD B,(IX-1) + ADD HL,BC + LD A,(HL) + CP 32 + JR NZ,?0476 +?0086: + INC (IX-4) + JR NZ,?0476 + INC (IX-3) +?0476: +?0087: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + LD C,44 + LD E,(IX-2) + LD D,B + CALL LWRD ?0659 + POP AF + POP AF + LD (IY+5),L + LD (IY+6),H +?0084: + LD HL,5 + PUSH HL + LD BC,?0090 + CALL LWRD ?0657 + POP AF + LD A,L + OR H + JR NZ,?0089 +?0088: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,5 + LD (HL),A + JR NC,?0477 + INC HL + INC (HL) +?0477: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + LD C,44 + LD E,(IX-2) + LD D,(IX-1) + CALL LWRD ?0659 + POP AF + POP AF + LD (IY+7),L + LD (IY+8),H +?0089: + PUSH IY + POP HL +?0091: + LD SP,IX + JP LWRD ?0614 +?0660: + LD C,44 + PUSH IY + POP DE +?0659: + LD A,BYTE3 dbParseList + LD HL,LWRD dbParseList + JP LWRD ?BANK_CALL_DIRECT_L08 +dbParseInsert: + PUSH BC + PUSH IY + PUSH IX + PUSH AF + PUSH DE + POP IY + LD DE,9 + CALL LWRD ?0641 + PUSH HL + POP IX + LD (HL),105 + XOR A + LD (IX+5),A + LD (IX+6),A + LD L,A + LD H,A + ADD HL,SP + LD (HL),4 + INC HL + LD (HL),A + DEC HL + PUSH HL + LD C,40 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+3),L + LD (IX+4),H + LD HL,1 + PUSH HL + LD BC,?0094 + INC HL + ADD HL,SP + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH IY + POP DE + CALL LWRD ?0658 + POP AF + LD A,L + OR H + JR NZ,?0097 +?0092: + LD L,A + LD H,A + ADD HL,SP + INC (HL) + INC HL + JR NZ,?0481 + INC (HL) +?0481: +?0093: +?0095: + DEC HL + PUSH HL + LD C,41 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+1),L + LD (IX+2),H + LD HL,6 + PUSH HL + LD BC,?0098 + LD L,2 + ADD HL,SP + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH IY + POP DE + CALL LWRD ?0658 + POP AF + LD A,L + OR H + JR NZ,?0097 +?0096: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,6 + LD (HL),A + JR NC,?0482 + INC HL + INC (HL) +?0482: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,41 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+7),L + LD (IX+8),H + JR ?0099 +?0097: + LD HL,0 + JR ?0100 +?0099: + PUSH IX + POP HL +?0100: + POP AF + JP LWRD ?0614 +dbParseUpdate: + PUSH BC + PUSH IY + PUSH IX + PUSH AF + PUSH DE + POP IY + LD DE,9 + CALL LWRD ?0641 + PUSH HL + POP IX + LD (HL),117 + XOR A + LD (IX+5),A + LD (IX+6),A + LD (IX+7),A + LD (IX+8),A + LD L,A + LD H,A + ADD HL,SP + LD (HL),4 + INC HL + LD (HL),A + DEC HL + PUSH HL + LD C,32 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+3),L + LD (IX+4),H + LD HL,4 + PUSH HL + LD BC,?0103 + DEC HL + DEC HL + ADD HL,SP + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH IY + POP DE + CALL LWRD ?0658 + POP AF + LD A,L + OR H + JR NZ,?0102 +?0101: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,4 + LD (HL),A + JR NC,?0104 + INC HL + INC (HL) + JR ?0104 +?0102: + LD HL,0 + JR ?0109 +?0104: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+1),L + LD (IX+2),H + LD HL,3 + PUSH HL + LD BC,?0085 + DEC HL + ADD HL,SP + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH IY + POP DE + CALL LWRD ?0658 + POP AF + LD A,L + OR H + JR NZ,?0106 +?0105: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,3 + LD (HL),A + JR NC,?0488 + INC HL + INC (HL) +?0488: + LD HL,0 + ADD HL,SP + LD B,A + INC HL + LD H,(HL) + LD L,B + PUSH IY + POP BC + ADD HL,BC + LD A,(HL) + CP 32 + JR NZ,?0489 +?0107: + LD HL,0 + ADD HL,SP + INC (HL) + INC HL + JR NZ,?0489 + INC (HL) +?0489: +?0108: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+5),L + LD (IX+6),H +?0106: + PUSH IX + POP HL +?0109: + POP AF + JP LWRD ?0614 +dbParseDelete: + PUSH BC + PUSH IY + PUSH IX + PUSH AF + PUSH DE + POP IY + LD DE,9 + CALL LWRD ?0641 + PUSH HL + POP IX + LD (HL),100 + XOR A + LD (IX+5),A + LD (IX+6),A + LD (IX+7),A + LD (IX+8),A + LD (IX+1),A + LD (IX+2),A + LD L,A + LD H,A + ADD HL,SP + LD (HL),4 + INC HL + LD (HL),A + DEC HL + PUSH HL + LD C,32 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+3),L + LD (IX+4),H + LD HL,3 + PUSH HL + LD BC,?0085 + DEC HL + ADD HL,SP + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH IY + POP DE + CALL LWRD ?0658 + POP AF + LD A,L + OR H + JR NZ,?0111 +?0110: + LD L,A + LD H,A + ADD HL,SP + LD A,(HL) + ADD A,3 + LD (HL),A + JR NC,?0492 + INC HL + INC (HL) +?0492: + LD HL,0 + ADD HL,SP + LD B,A + INC HL + LD H,(HL) + LD L,B + PUSH IY + POP BC + ADD HL,BC + LD A,(HL) + CP 32 + JR NZ,?0493 +?0112: + LD HL,0 + ADD HL,SP + INC (HL) + INC HL + JR NZ,?0493 + INC (HL) +?0493: +?0113: + LD HL,0 + ADD HL,SP + PUSH HL + LD C,32 + PUSH BC + CALL LWRD ?0660 + POP AF + POP AF + LD (IX+5),L + LD (IX+6),H +?0111: + PUSH IX + POP HL + POP AF + JP LWRD ?0614 +dbTableOpen: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH AF + PUSH AF + PUSH AF + PUSH AF + PUSH DE + POP IY + LD DE,64 + CALL LWRD ?0641 + LD (IX-8),L + LD (IX-7),H + LD BC,?0114 + EX DE,HL + CALL LWRD ?0650 + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD BC,?0115 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 strcat + LD HL,LWRD strcat + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IY+10),0 + LD HL,?0116 + PUSH HL + LD HL,0 + PUSH HL + LD BC,65535 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 __fopen + LD HL,LWRD __fopen + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD (IX-4),L + LD (IX-3),H + PUSH HL + LD HL,1 + PUSH HL + LD BC,4 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-8) + LD H,(IX-7) + LD A,(HL) + CP 84 + JP NZ,?0132 + INC HL + LD A,(HL) + CP 66 + JP NZ,?0132 + INC HL + LD A,(HL) + CP 76 + JP NZ,?0132 + INC HL + LD A,(HL) + CP 32 + JP NZ,?0132 +?0119: +?0120: +?0117: +?0118: + LD L,(IX-4) + LD H,(IX-3) + PUSH HL + LD HL,1 + PUSH HL + LD BC,4 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-8) + LD H,(IX-7) + LD C,(HL) + LD (IX-2),C + LD B,0 + LD (IX-1),B + PUSH IY + POP HL + LD (HL),C + INC HL + LD (HL),B + LD L,C + LD H,B + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + CALL LWRD ?0642 + LD (IY+2),L + LD (IY+3),H + XOR A + LD (IX-6),A + LD (IX-5),A +?0123: + LD C,(IX-2) + LD B,(IX-1) + LD L,(IX-6) + LD H,(IX-5) + OR 128 + SBC HL,BC + JP PO,?0494 + XOR H +?0494: + JP P,?0122 +?0124: + LD L,(IX-4) + LD H,(IX-3) + PUSH HL + LD HL,1 + PUSH HL + LD BC,8 + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-6) + LD H,(IX-5) + ADD HL,HL + ADD HL,HL + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + EX DE,HL + POP HL + ADD HL,DE + EX DE,HL + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-6) + LD H,(IX-5) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,8 + ADD HL,BC + LD (HL),B + LD L,(IX-4) + LD H,(IX-3) + PUSH HL + LD HL,1 + PUSH HL + LD C,3 + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-6) + LD H,(IX-5) + ADD HL,HL + ADD HL,HL + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + EX DE,HL + POP HL + ADD HL,DE + LD DE,9 + ADD HL,DE + EX DE,HL + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-4) + LD H,(IX-3) + PUSH HL + LD HL,1 + PUSH HL + LD C,L + LD B,H + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + INC (IX-6) + JP NZ,?0123 + INC (IX-5) + JP LWRD ?0123 +?0122: + LD BC,?0114 + LD E,(IX-8) + LD D,(IX-7) + CALL LWRD ?0650 + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD BC,?0126 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 strcat + LD HL,LWRD strcat + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,?0127 + PUSH HL + LD HL,0 + PUSH HL + LD BC,65535 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 __fopen + LD HL,LWRD __fopen + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD (IY+8),L + LD (IY+9),H + LD (IY+10),1 + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD BC,4 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-8) + LD H,(IX-7) + LD A,(HL) + CP 68 + JR NZ,?0130 + INC HL + LD A,(HL) + CP 65 + JR NZ,?0130 + INC HL + LD A,(HL) + CP 84 + JR NZ,?0130 + INC HL + LD A,(HL) + CP 32 + JR Z,?0129 +?0130: +?0131: +?0128: + LD (IY+10),0 + LD E,(IY+8) + LD D,(IY+9) + CALL LWRD ?0645 + JR ?0132 +?0129: + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD BC,2 + LD L,4 + PUSH IY + POP DE + ADD HL,DE + EX DE,HL + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD BC,2 + LD L,6 + PUSH IY + POP DE + ADD HL,DE + EX DE,HL + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD BC,2 + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF +?0132: +?0121: + LD E,(IX-4) + LD D,(IX-3) + CALL LWRD ?0645 + LD E,(IX-8) + LD D,(IX-7) + CALL LWRD ?0639 + LD SP,IX + JP LWRD ?0614 +?0646: + PUSH DE + POP IX + LD HL,8 + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) +?0645: + LD A,BYTE3 fclose + LD HL,LWRD fclose + JP LWRD ?BANK_CALL_DIRECT_L08 +?0650: + LD A,BYTE3 strcpy + LD HL,LWRD strcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,11 + PUSH IY + POP BC + ADD HL,BC + LD C,L + LD B,H + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 strcat + LD HL,LWRD strcat + RET +dbTableClose: + PUSH IX + CALL LWRD ?0646 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 free + LD HL,LWRD free +?0634: + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0636: + PUSH IX + POP DE + CALL LWRD ?0639 + POP IX + JP LWRD ?BANK_FAST_LEAVE_L08 +dbStatementClose: + PUSH IX + PUSH DE + POP IX + INC DE + EX DE,HL + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbDeleteList + LD HL,LWRD dbDeleteList + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX+3) + LD D,(IX+4) + LD A,BYTE3 dbDeleteList + LD HL,LWRD dbDeleteList + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX+5) + LD D,(IX+6) + LD A,BYTE3 dbDeleteList + LD HL,LWRD dbDeleteList + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX+7) + LD D,(IX+8) + LD A,BYTE3 dbDeleteList + LD HL,LWRD dbDeleteList + JP LWRD ?0634 +dbResultSetClose: + PUSH IX + CALL LWRD ?0646 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 free + LD HL,LWRD free + JP LWRD ?0634 +dbFieldOffset: + PUSH IY + PUSH IX + PUSH BC + PUSH DE + LD IX,0 + LD IY,0 +?0134: + LD HL,2 + ADD HL,SP + LD C,(HL) + INC HL + LD B,(HL) + PUSH IY + POP HL + OR 128 + SBC HL,BC + JP PO,?0498 + XOR H +?0498: + JP P,?0133 +?0135: + LD HL,0 + ADD HL,SP + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + PUSH IY + POP HL + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,10 + ADD HL,BC + LD C,(HL) + ADD IX,BC + INC IY + JR ?0134 +?0133: + INC IX + INC IX + PUSH IX + POP HL + POP AF + JP LWRD ?0626 +dbRecordSize: + PUSH BC + PUSH IX + PUSH DE + POP IX + LD A,(DE) + LD C,A + INC DE + LD A,(DE) + LD B,A + PUSH IX + POP DE + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP IX + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 +dbFieldSearch: + PUSH IY + PUSH IX + PUSH BC + PUSH DE + POP IY + LD IX,0 +?0138: + LD C,(IY+0) + LD B,(IY+1) + PUSH IX + POP HL + OR 128 + SBC HL,BC + JP PO,?0500 + XOR H +?0500: + JP P,?0137 +?0139: + LD HL,0 + ADD HL,SP + LD C,(HL) + INC HL + LD B,(HL) + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + PUSH IX + POP HL + ADD HL,HL + ADD HL,HL + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + EX DE,HL + POP HL + ADD HL,DE + EX DE,HL + LD A,BYTE3 strcmp + LD HL,LWRD strcmp + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD A,L + OR H + JR NZ,?0142 +?0141: + PUSH IX + POP HL + JR ?0143 +?0142: + INC IX + JR ?0138 +?0137: + LD HL,65535 +?0143: + JP LWRD ?0626 +dbExecuteQuery: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH DE + LD HL,65502 + ADD HL,SP + LD SP,HL + LD DE,10 + CALL LWRD ?0641 + PUSH HL + POP IY + LD DE,20 + CALL LWRD ?0641 + LD (IX-34),L + LD (IX-33),H + XOR A + LD (IX-8),A + LD (IX-7),A + CALL LWRD ?0661 + LD (IX-6),L + LD (IX-5),H + LD L,(IX-2) + LD H,(IX-1) + INC HL + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD BC,4 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD HL,11 + LD E,(IX-34) + LD D,(IX-33) + CALL LWRD ?0653 + LD E,(IX-34) + LD D,(IX-33) + LD A,BYTE3 dbTableOpen + LD HL,LWRD dbTableOpen + CALL LWRD ?BANK_CALL_DIRECT_L08 + XOR A + LD (IY+4),A + LD (IY+5),A + LD (IY+6),A + LD (IY+7),A + LD BC,?0146 + LD L,(IX-2) + LD H,(IX-1) + INC HL + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD DE,4 + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 strcmp + LD HL,LWRD strcmp + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD A,L + OR H + JP NZ,?0145 +?0144: + LD L,(IX-34) + LD H,(IX-33) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + PUSH IY + POP HL + POP BC + CALL LWRD ?0643 + CALL LWRD ?0640 + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IY+2),L + LD (IY+3),H + XOR A + LD (IX-18),A + LD (IX-17),A +?0148: + LD C,(IY+0) + LD B,(IY+1) + LD L,(IX-18) + LD H,(IX-17) + OR 128 + SBC HL,BC + JP PO,?0501 + XOR H +?0501: + JP P,?0152 +?0149: + LD L,(IX-34) + LD H,(IX-33) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD (IX-32),L + LD (IX-31),H + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + LD C,(IX-28) + LD B,(IX-27) + ADD HL,BC + PUSH HL + LD C,(IX-18) + LD B,(IX-17) + LD E,(IX-34) + LD D,(IX-33) + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + PUSH HL + LD HL,10 + LD C,(IX-32) + LD B,(IX-31) + ADD HL,BC + LD C,(HL) + LD B,0 + POP HL + LD (HL),C + INC HL + LD (HL),B + LD HL,12 + PUSH HL + LD L,(IX-34) + LD H,(IX-33) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD C,L + LD B,H + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + ADD HL,HL + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + EX DE,HL + POP HL + ADD HL,DE + EX DE,HL + LD A,BYTE3 memcpy + LD HL,LWRD memcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + INC (IX-18) + JP NZ,?0148 + INC (IX-17) + JP LWRD ?0148 +?0147: +?0145: + CALL LWRD ?0647 + PUSH HL + PUSH IY + POP HL + POP BC + CALL LWRD ?0643 + CALL LWRD ?0640 + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IY+2),L + LD (IY+3),H + LD L,(IX-2) + LD H,(IX-1) + INC HL + LD B,(HL) + LD (IX-30),B + INC HL + LD H,(HL) + LD (IX-29),H + XOR A + LD (IX-18),A + LD (IX-17),A +?0153: + LD C,(IY+0) + LD B,(IY+1) + LD L,(IX-18) + LD H,(IX-17) + OR 128 + SBC HL,BC + JP PO,?0503 + XOR H +?0503: + JP P,?0152 +?0154: + LD HL,4 + LD C,(IX-30) + LD B,(IX-29) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD E,(IX-34) + LD D,(IX-33) + LD A,BYTE3 dbFieldSearch + LD HL,LWRD dbFieldSearch + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-4),L + LD (IX-3),H + LD C,(IX-34) + LD B,(IX-33) + INC BC + INC BC + LD A,(BC) + LD L,A + INC BC + LD A,(BC) + LD H,A + PUSH HL + LD L,(IX-4) + LD H,(IX-3) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD (IX-32),L + LD (IX-31),H + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + LD C,(IX-28) + LD B,(IX-27) + ADD HL,BC + PUSH HL + LD C,(IX-4) + LD B,(IX-3) + LD E,(IX-34) + LD D,(IX-33) + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + PUSH HL + LD HL,10 + LD C,(IX-32) + LD B,(IX-31) + ADD HL,BC + LD C,(HL) + LD B,0 + POP HL + LD (HL),C + INC HL + LD (HL),B + LD HL,12 + PUSH HL + LD L,(IX-34) + LD H,(IX-33) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-4) + LD H,(IX-3) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD C,L + LD B,H + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-18) + LD H,(IX-17) + ADD HL,HL + ADD HL,HL + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + EX DE,HL + POP HL + ADD HL,DE + EX DE,HL + LD A,BYTE3 memcpy + LD HL,LWRD memcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + LD L,(IX-30) + LD H,(IX-29) + INC HL + INC HL + LD B,(HL) + LD (IX-30),B + INC HL + LD H,(HL) + LD (IX-29),H + INC (IX-18) + JP NZ,?0153 + INC (IX-17) + JP LWRD ?0153 +?0152: +?0151: + LD E,(IX-34) + LD D,(IX-33) + LD A,BYTE3 dbRecordSize + LD HL,LWRD dbRecordSize + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-12),L + LD (IX-11),H + CALL LWRD ?0642 + LD (IX-24),L + LD (IX-23),H + PUSH IY + POP DE + LD A,BYTE3 dbRecordSize + LD HL,LWRD dbRecordSize + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-14),L + LD (IX-13),H + CALL LWRD ?0642 + LD (IX-22),L + LD (IX-21),H + LD L,(IX-34) + LD H,(IX-33) + PUSH HL + LD L,(IX-6) + LD H,(IX-5) + POP BC + LD (HL),C + INC HL + LD (HL),B + LD L,(IX-6) + LD H,(IX-5) + INC HL + INC HL + XOR A + LD (HL),A + INC HL + LD (HL),A + LD HL,4 + LD C,(IX-6) + LD B,(IX-5) + ADD HL,BC + LD C,(IX-24) + LD (HL),C + LD B,(IX-23) + INC HL + LD (HL),B + LD HL,?0157 + PUSH HL + LD L,A + LD H,A + PUSH HL + LD BC,65535 + LD DE,?0156 + LD A,BYTE3 __fopen + LD HL,LWRD __fopen + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD (IY+8),L + LD (IY+9),H + LD HL,5 + LD C,(IX-2) + LD B,(IX-1) + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + LD HL,28 + ADD HL,SP + LD C,L + LD B,H + JR Z,?0159 +?0158: + LD HL,5 + LD E,(IX-2) + LD D,(IX-1) + ADD HL,DE + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD DE,4 + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + JR ?0510 +?0159: + LD E,A + LD D,A +?0510: + LD A,BYTE3 dbParseExpression + LD HL,LWRD dbParseExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-10),L + LD (IX-9),H +?0160: + XOR A + LD (IX-18),A + LD (IX-17),A +?0162: + LD HL,4 + LD C,(IX-34) + LD B,(IX-33) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD L,(IX-18) + LD H,(IX-17) + OR 128 + SBC HL,BC + JP PO,?0505 + XOR H +?0505: + JP P,?0161 +?0163: + LD HL,8 + LD C,(IX-34) + LD B,(IX-33) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + PUSH BC + LD HL,1 + PUSH HL + LD C,(IX-12) + LD B,(IX-11) + LD E,(IX-24) + LD D,(IX-23) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-24) + LD H,(IX-23) + LD B,(HL) + DEC B + JP NZ,?0508 +?0165: + LD L,(IX-22) + LD H,(IX-21) + LD (HL),1 + INC HL + LD (HL),B + LD (IX-20),2 + LD (IX-19),B + XOR A + LD (IX-16),A + LD (IX-15),A +?0168: + LD C,(IY+0) + LD B,(IY+1) + LD L,(IX-16) + LD H,(IX-15) + OR 128 + SBC HL,BC + JP PO,?0506 + XOR H +?0506: + JP P,?0167 +?0169: + LD L,(IX-16) + LD H,(IX-15) + ADD HL,HL + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + LD L,(IX-16) + LD H,(IX-15) + ADD HL,HL + LD E,(IX-28) + LD D,(IX-27) + ADD HL,DE + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD E,(IX-24) + LD D,(IX-23) + ADD HL,DE + LD C,L + LD B,H + LD L,(IX-20) + LD H,(IX-19) + LD E,(IX-22) + LD D,(IX-21) + ADD HL,DE + EX DE,HL + LD A,BYTE3 memcpy + LD HL,LWRD memcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + LD L,(IX-16) + LD H,(IX-15) + ADD HL,HL + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD HL,16 + ADD HL,SP + LD A,(HL) + ADD A,C + LD (HL),A + INC HL + LD A,(HL) + ADC A,B + LD (HL),A + INC (IX-16) + JR NZ,?0168 + INC (IX-15) + JP LWRD ?0168 +?0167: + LD C,(IX-6) + LD B,(IX-5) + LD E,(IX-10) + LD D,(IX-9) + LD A,BYTE3 dbEvaluateExpression + LD HL,LWRD dbEvaluateExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,36 + LD C,(IX-10) + LD B,(IX-9) + ADD HL,BC + LD A,1 + XOR (HL) + INC HL + OR (HL) + INC HL + OR (HL) + INC HL + OR (HL) + JR NZ,?0508 +?0171: + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD C,(IX-14) + LD B,(IX-13) + LD E,(IX-22) + LD D,(IX-21) + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + INC (IY+4) + JR NZ,?0508 + INC (IY+5) +?0508: +?0172: +?0166: + INC (IX-18) + JP NZ,?0162 + INC (IX-17) + JP LWRD ?0162 +?0161: + LD E,(IX-24) + LD D,(IX-23) + CALL LWRD ?0639 + LD E,(IX-28) + LD D,(IX-27) + CALL LWRD ?0639 + LD E,(IX-26) + LD D,(IX-25) + CALL LWRD ?0639 + LD E,(IX-6) + LD D,(IX-5) + CALL LWRD ?0639 + LD E,(IX-10) + LD D,(IX-9) + LD A,BYTE3 dbDeleteExpression + LD HL,LWRD dbDeleteExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX-34) + LD D,(IX-33) + LD A,BYTE3 dbTableClose + LD HL,LWRD dbTableClose + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IY+8) + LD D,(IY+9) + CALL LWRD ?0645 + LD HL,?0127 + PUSH HL + LD HL,0 + PUSH HL + LD BC,65535 + LD DE,?0156 + LD A,BYTE3 __fopen + LD HL,LWRD __fopen + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD (IY+8),L + LD (IY+9),H + PUSH IY + POP HL + LD SP,IX + JP LWRD ?0614 +?0640: + LD (IX-28),L + LD (IX-27),H + LD L,(IY+0) + LD H,(IY+1) + ADD HL,HL + EX DE,HL + LD A,BYTE3 malloc + LD HL,LWRD malloc + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-26),L + LD (IX-25),H + LD L,(IY+0) + LD H,(IY+1) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + EX DE,HL + LD A,BYTE3 malloc + LD HL,LWRD malloc + RET +?0647: + LD L,(IX-2) + LD H,(IX-1) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbListSize + LD HL,LWRD dbListSize + JP LWRD ?BANK_CALL_DIRECT_L08 +?0662: + LD A,BYTE3 dbParseExpression + LD HL,LWRD dbParseExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-8),L + LD (IX-7),H +?0661: + LD A,BYTE3 dbNewRow + LD HL,LWRD dbNewRow + JP LWRD ?BANK_CALL_DIRECT_L08 +?0663: + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 dbEvaluateExpression + LD HL,LWRD dbEvaluateExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,36 + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD A,1 + XOR (HL) + INC HL + OR (HL) + INC HL + OR (HL) + INC HL + OR (HL) + RET +dbExecuteInsert: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH DE + LD HL,65512 + ADD HL,SP + LD SP,HL + LD DE,20 + CALL LWRD ?0641 + LD (IX-26),L + LD (IX-25),H + LD C,(IX-2) + LD B,(IX-1) + INC BC + INC BC + INC BC + LD A,(BC) + LD L,A + INC BC + LD A,(BC) + LD H,A + LD BC,4 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD HL,11 + LD E,(IX-26) + LD D,(IX-25) + CALL LWRD ?0653 + LD E,(IX-26) + LD D,(IX-25) + LD A,BYTE3 dbTableOpen + LD HL,LWRD dbTableOpen + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX-26) + LD D,(IX-25) + LD A,BYTE3 dbRecordSize + LD HL,LWRD dbRecordSize + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-6),L + LD (IX-5),H + CALL LWRD ?0642 + LD (IX-24),L + LD (IX-23),H + XOR A + LD (IX-12),A + LD (IX-11),A +?0174: + LD C,(IX-6) + LD B,(IX-5) + LD L,(IX-12) + LD H,(IX-11) + OR 128 + SBC HL,BC + JP PO,?0511 + XOR H +?0511: + JP P,?0173 +?0175: + LD L,(IX-12) + LD H,(IX-11) + LD C,(IX-24) + LD B,(IX-23) + ADD HL,BC + LD (HL),0 + INC (IX-12) + JR NZ,?0174 + INC (IX-11) + JR ?0174 +?0173: + LD E,C + LD D,B + CALL LWRD ?0641 + LD (IX-22),L + LD (IX-21),H + LD L,(IX-24) + LD H,(IX-23) + LD (HL),1 + INC HL + LD (HL),0 + CALL LWRD ?0647 + LD (IX-14),L + LD (IX-13),H + LD L,(IX-2) + LD H,(IX-1) + INC HL + LD B,(HL) + LD (IX-20),B + INC HL + LD H,(HL) + LD (IX-19),H + LD HL,7 + LD C,(IX-2) + LD B,(IX-1) + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + POP IY + XOR A + LD (IX-12),A + LD (IX-11),A +?0178: + LD C,(IX-14) + LD B,(IX-13) + LD L,(IX-12) + LD H,(IX-11) + OR 128 + SBC HL,BC + JP PO,?0513 + XOR H +?0513: + JP P,?0177 +?0179: + LD HL,4 + LD C,(IX-20) + LD B,(IX-19) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD E,(IX-26) + LD D,(IX-25) + LD A,BYTE3 dbFieldSearch + LD HL,LWRD dbFieldSearch + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-4),L + LD (IX-3),H + LD C,(IX-26) + LD B,(IX-25) + INC BC + INC BC + LD A,(BC) + LD L,A + INC BC + LD A,(BC) + LD H,A + PUSH HL + LD L,(IX-4) + LD H,(IX-3) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD (IX-16),L + LD (IX-15),H + LD C,(IX-4) + LD B,(IX-3) + LD E,(IX-26) + LD D,(IX-25) + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-10),L + LD (IX-9),H + LD HL,10 + LD C,(IX-16) + LD B,(IX-15) + ADD HL,BC + LD C,(HL) + LD (IX-8),C + LD (IX-7),0 + LD L,(IY+4) + LD H,(IY+5) + LD A,(HL) + CP 39 + JP NZ,?0182 +?0181: + LD E,(IY+4) + LD D,(IY+5) + CALL LWRD ?0649 + LD C,(IY+4) + LD B,(IY+5) + ADD HL,BC + DEC HL + LD (HL),0 + LD HL,9 + LD C,(IX-16) + LD B,(IX-15) + ADD HL,BC + LD A,(HL) + CP 83 + JR NZ,?0185 +?0184: + LD L,(IX-8) + LD H,(IX-7) + PUSH HL + LD C,(IY+4) + LD B,(IY+5) + INC BC + LD L,(IX-10) + LD H,(IX-9) + LD E,(IX-24) + LD D,(IX-23) + ADD HL,DE + EX DE,HL + LD A,BYTE3 memcpy + LD HL,LWRD memcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + JP LWRD ?0198 +?0185: + CP 73 + JP NZ,?0198 + LD HL,10 + ADD HL,BC + LD B,(HL) + DEC B + DEC B + JR NZ,?0187 +?0186: + LD L,(IX-10) + LD H,(IX-9) + LD C,(IX-24) + LD B,(IX-23) + ADD HL,BC + PUSH HL + LD E,(IY+4) + LD D,(IY+5) + INC DE + JR ?0520 +?0187: + LD HL,10 + LD B,(IX-15) + ADD HL,BC + LD A,(HL) + CP 4 + JR NZ,?0198 +?0189: + LD E,(IY+4) + LD D,(IY+5) + INC DE + JR ?0519 +?0190: +?0188: +?0183: +?0182: + LD HL,9 + LD C,(IX-16) + ADD HL,BC + LD A,(HL) + CP 73 + JR NZ,?0198 +?0193: + LD HL,10 + ADD HL,BC + LD B,(HL) + DEC B + DEC B + JR NZ,?0195 +?0194: + LD L,(IX-10) + LD H,(IX-9) + LD C,(IX-24) + LD B,(IX-23) + ADD HL,BC + PUSH HL + LD E,(IY+4) + LD D,(IY+5) +?0520: + LD A,BYTE3 atoi + LD HL,LWRD atoi + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,H + POP HL + JR ?0516 +?0195: + LD HL,10 + LD B,(IX-15) + ADD HL,BC + LD A,(HL) + CP 4 + JR NZ,?0198 +?0197: + LD E,(IY+4) + LD D,(IY+5) +?0519: + LD A,BYTE3 atol + LD HL,LWRD atol + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH HL + LD L,(IX-10) + LD H,(IX-9) + LD E,(IX-24) + LD D,(IX-23) + ADD HL,DE + POP DE + LD (HL),E + INC HL + LD (HL),D + INC HL +?0516: + LD (HL),C + INC HL + LD (HL),B +?0198: +?0196: +?0192: +?0191: + LD L,(IX-20) + LD H,(IX-19) + INC HL + INC HL + LD B,(HL) + LD (IX-20),B + INC HL + LD H,(HL) + LD (IX-19),H + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + POP IY + INC (IX-12) + JP NZ,?0178 + INC (IX-11) + JP LWRD ?0178 +?0177: + LD HL,6 + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + JR NZ,?0200 +?0199: + LD L,A + LD H,A + PUSH HL + PUSH HL + LD L,4 + PUSH HL + LD L,8 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + CALL LWRD ?0664 + POP AF + POP AF + POP AF + LD HL,4 + ADD HL,BC + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + INC HL + PUSH HL + LD L,(IX-22) + LD H,(IX-21) + POP DE + LD (HL),E + INC HL + LD (HL),D + LD HL,8 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + LD HL,1 + PUSH HL + LD BC,2 + LD E,(IX-22) + LD D,(IX-21) + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD HL,2 + PUSH HL + DEC HL + DEC HL + PUSH HL + JP LWRD ?0517 +?0200: + LD HL,0 + PUSH HL + PUSH HL + LD L,6 + PUSH HL + INC HL + INC HL + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + CALL LWRD ?0664 + POP AF + POP AF + POP AF + LD HL,6 + ADD HL,BC + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + DEC HL + PUSH HL + LD L,(IX-22) + LD H,(IX-21) + POP DE + LD (HL),E + INC HL + LD (HL),D + LD HL,8 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + LD HL,1 + PUSH HL + LD BC,2 + LD E,(IX-22) + LD D,(IX-21) + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD HL,0 + PUSH HL + PUSH HL + LD L,10 + PUSH HL + DEC HL + DEC HL + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + CALL LWRD ?0664 + POP AF + POP AF + POP AF + LD L,(IX-22) + LD H,(IX-21) + LD (HL),255 + INC HL + LD (HL),255 +?0203: + LD L,(IX-22) + LD H,(IX-21) + XOR A + OR (HL) + JR Z,?0202 +?0204: + LD HL,8 + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + PUSH BC + LD HL,1 + PUSH HL + LD C,(IX-6) + LD B,(IX-5) + LD E,(IX-22) + LD D,(IX-21) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + JR ?0203 +?0202: + LD HL,1 + PUSH HL + LD C,(IX-6) + LD B,(IX-5) + DEC HL + SBC HL,BC + LD A,H + RLCA + SBC A,A + LD C,A + LD B,C + PUSH BC +?0517: + PUSH HL + LD HL,8 + LD C,(IX-26) + LD B,(IX-25) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + CALL LWRD ?0664 + POP AF + POP AF + POP AF +?0201: + LD HL,8 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + LD HL,1 + PUSH HL + LD C,(IX-6) + LD B,(IX-5) + LD E,(IX-24) + LD D,(IX-23) + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD E,(IX-24) + LD D,(IX-23) + CALL LWRD ?0639 + LD E,(IX-22) + LD D,(IX-21) + CALL LWRD ?0639 + LD E,(IX-26) + LD D,(IX-25) + LD A,BYTE3 dbTableClose + LD HL,LWRD dbTableClose + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,0 + LD SP,IX + JP LWRD ?0614 +?0665: + LD E,(IY+8) + LD D,(IY+9) +?0664: + LD A,BYTE3 fseek + LD HL,LWRD fseek + JP LWRD ?BANK_CALL_DIRECT_L08 +dbExecuteDelete: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH DE + LD HL,65524 + ADD HL,SP + LD SP,HL + CALL LWRD ?0637 + LD (IX-6),L + LD (IX-5),H + CALL LWRD ?0642 + LD (IX-4),L + LD (IX-3),H + XOR A + LD (IX-12),A + LD (IX-11),A + LD HL,5 + LD C,(IX-2) + LD B,(IX-1) + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + LD HL,2 + ADD HL,SP + LD C,L + LD B,H + JR Z,?0206 +?0205: + LD HL,5 + LD E,(IX-2) + LD D,(IX-1) + ADD HL,DE + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD DE,4 + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + JR ?0524 +?0206: + LD E,A + LD D,A +?0524: +?0207: + CALL LWRD ?0662 + LD (IX-14),L + LD (IX-13),H + PUSH IY + POP BC + LD (HL),C + INC HL + LD (HL),B + LD HL,4 + LD C,(IX-14) + LD B,(IX-13) + ADD HL,BC + LD E,(IX-4) + LD (HL),E + LD D,(IX-3) + INC HL + LD (HL),D + LD L,C + LD H,B + INC HL + INC HL + XOR A + LD (HL),A + INC HL + LD (HL),A + LD (IX-10),A + LD (IX-9),A + LD (IX-12),A + LD (IX-11),A +?0209: + LD C,(IY+4) + LD B,(IY+5) + LD L,(IX-12) + LD H,(IX-11) + OR 128 + SBC HL,BC + JP PO,?0521 + XOR H +?0521: + JP P,?0208 +?0210: + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD C,(IX-6) + LD B,(IX-5) + LD L,4 + LD E,(IX-14) + LD D,(IX-13) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-4) + LD H,(IX-3) + LD B,(HL) + DEC B + JR NZ,?0522 +?0212: + LD C,(IX-14) + LD B,(IX-13) + CALL LWRD ?0663 + JR NZ,?0522 +?0214: + LD L,(IX-4) + LD H,(IX-3) + LD (HL),A + LD HL,1 + PUSH HL + LD C,(IX-6) + LD B,(IX-5) + DEC HL + SBC HL,BC + LD A,H + RLCA + SBC A,A + LD C,A + LD B,C + PUSH BC + PUSH HL + CALL LWRD ?0665 + POP AF + POP AF + POP AF + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD C,(IX-6) + LD B,(IX-5) + LD L,4 + LD E,(IX-14) + LD D,(IX-13) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD HL,1 + PUSH HL + DEC HL + PUSH HL + PUSH HL + CALL LWRD ?0665 + POP AF + POP AF + POP AF + INC (IX-10) + JR NZ,?0522 + INC (IX-9) +?0522: +?0215: +?0213: + INC (IX-12) + JP NZ,?0209 + INC (IX-11) + JP LWRD ?0209 +?0208: + LD E,(IX-14) + LD D,(IX-13) + LD A,BYTE3 dbDeleteRow + LD HL,LWRD dbDeleteRow + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,0 + PUSH HL + PUSH HL + LD L,6 + PUSH HL + CALL LWRD ?0665 + POP AF + POP AF + POP AF + LD HL,4 + ADD HL,SP + LD A,(HL) + ADD A,(IY+6) + LD (HL),A + INC HL + LD A,(HL) + ADC A,(IY+7) + LD (HL),A + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD BC,2 + LD L,8 + ADD HL,SP + EX DE,HL + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD E,(IX-8) + LD D,(IX-7) + LD A,BYTE3 dbDeleteExpression + LD HL,LWRD dbDeleteExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH IY + POP DE + LD A,BYTE3 dbTableClose + LD HL,LWRD dbTableClose + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,0 + LD SP,IX + JP LWRD ?0614 +?0637: + LD DE,20 + LD A,BYTE3 malloc + LD HL,LWRD malloc + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH HL + POP IY + LD C,(IX-2) + LD B,(IX-1) + INC BC + INC BC + INC BC + LD A,(BC) + LD L,A + INC BC + LD A,(BC) + LD H,A + LD BC,4 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + LD HL,11 + PUSH IY + POP DE + ADD HL,DE + EX DE,HL + LD A,BYTE3 strcpy + LD HL,LWRD strcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH IY + POP DE + LD A,BYTE3 dbTableOpen + LD HL,LWRD dbTableOpen + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH IY + POP DE + LD A,BYTE3 dbRecordSize + LD HL,LWRD dbRecordSize + CALL LWRD ?BANK_CALL_DIRECT_L08 + RET +dbExecuteUpdate: + PUSH BC + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH DE + LD HL,65512 + ADD HL,SP + LD SP,HL + CALL LWRD ?0637 + LD (IX-14),L + LD (IX-13),H + CALL LWRD ?0642 + LD (IX-6),L + LD (IX-5),H + XOR A + LD (IX-18),A + LD (IX-17),A + LD HL,5 + LD C,(IX-2) + LD B,(IX-1) + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + LD HL,8 + ADD HL,SP + LD C,L + LD B,H + JR Z,?0217 +?0216: + LD HL,5 + LD E,(IX-2) + LD D,(IX-1) + ADD HL,DE + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD DE,4 + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + JR ?0535 +?0217: + LD E,A + LD D,A +?0535: +?0218: + CALL LWRD ?0662 + LD (IX-24),L + LD (IX-23),H + PUSH IY + POP BC + LD (HL),C + INC HL + LD (HL),B + LD HL,4 + LD C,(IX-24) + LD B,(IX-23) + ADD HL,BC + LD E,(IX-6) + LD (HL),E + LD D,(IX-5) + INC HL + LD (HL),D + LD L,C + LD H,B + INC HL + INC HL + XOR A + LD (HL),A + INC HL + LD (HL),A + CALL LWRD ?0647 + LD (IX-16),L + LD (IX-15),H + CALL LWRD ?0644 + LD (IX-20),L + LD (IX-19),H + LD L,(IX-2) + LD H,(IX-1) + INC HL + LD B,(HL) + LD (IX-22),B + INC HL + LD H,(HL) + LD (IX-21),H + XOR A + LD (IX-26),A + LD (IX-25),A +?0220: + LD C,(IX-16) + LD B,(IX-15) + LD L,(IX-26) + LD H,(IX-25) + OR 128 + SBC HL,BC + JP PO,?0525 + XOR H +?0525: + JP P,?0219 +?0221: + LD C,0 + PUSH BC + LD C,61 + LD HL,4 + LD E,(IX-22) + LD D,(IX-21) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbReplaceChar + LD HL,LWRD dbReplaceChar + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + LD (IX-4),L + LD (IX-3),H + XOR A + LD (IX-12),A + LD (IX-11),A + LD L,(IX-26) + LD H,(IX-25) + ADD HL,HL + LD C,(IX-20) + LD B,(IX-19) + ADD HL,BC + PUSH HL + LD HL,16 + ADD HL,SP + LD C,L + LD B,H + LD E,(IX-4) + LD D,(IX-3) + INC DE + LD A,BYTE3 dbParseExpression + LD HL,LWRD dbParseExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD L,(IX-22) + LD H,(IX-21) + INC HL + INC HL + LD B,(HL) + LD (IX-22),B + INC HL + LD H,(HL) + LD (IX-21),H + INC (IX-26) + JR NZ,?0220 + INC (IX-25) + JP LWRD ?0220 +?0219: + XOR A + LD (IX-18),A + LD (IX-17),A +?0224: + LD C,(IY+4) + LD B,(IY+5) + LD L,(IX-18) + LD H,(IX-17) + OR 128 + SBC HL,BC + JP PO,?0527 + XOR H +?0527: + JP P,?0223 +?0225: + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD C,(IX-14) + LD B,(IX-13) + LD L,4 + LD E,(IX-24) + LD D,(IX-23) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD L,(IX-6) + LD H,(IX-5) + LD B,(HL) + DEC B + JP NZ,?0230 +?0227: + LD C,(IX-24) + LD B,(IX-23) + CALL LWRD ?0663 + JP NZ,?0230 +?0229: + LD HL,1 + PUSH HL + LD C,(IX-14) + LD B,(IX-13) + DEC HL + SBC HL,BC + LD A,H + RLCA + SBC A,A + LD C,A + LD B,C + PUSH BC + PUSH HL + CALL LWRD ?0665 + POP AF + POP AF + POP AF + XOR A + LD (IX-26),A + LD (IX-25),A +?0232: + LD C,(IX-16) + LD B,(IX-15) + LD L,(IX-26) + LD H,(IX-25) + OR 128 + SBC HL,BC + JP PO,?0528 + XOR H +?0528: + JP P,?0231 +?0233: + LD C,(IX-24) + LD B,(IX-23) + LD L,(IX-26) + LD H,(IX-25) + ADD HL,HL + LD E,(IX-20) + LD D,(IX-19) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbEvaluateExpression + LD HL,LWRD dbEvaluateExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + INC (IX-26) + JR NZ,?0232 + INC (IX-25) + JR ?0232 +?0231: + LD L,(IX-2) + LD H,(IX-1) + INC HL + LD B,(HL) + LD (IX-22),B + INC HL + LD H,(HL) + LD (IX-21),H + XOR A + LD (IX-26),A + LD (IX-25),A +?0236: + LD C,(IX-16) + LD B,(IX-15) + LD L,(IX-26) + LD H,(IX-25) + OR 128 + SBC HL,BC + JP PO,?0530 + XOR H +?0530: + JP P,?0235 +?0237: + LD HL,4 + LD C,(IX-22) + LD B,(IX-21) + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + PUSH IY + POP DE + LD A,BYTE3 dbFieldSearch + LD HL,LWRD dbFieldSearch + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-10),L + LD (IX-9),H + LD C,L + LD B,H + PUSH IY + POP DE + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-12),L + LD (IX-11),H + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-10) + LD H,(IX-9) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,9 + ADD HL,BC + LD A,(HL) + CP 83 + JR NZ,?0241 +?0240: + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-10) + LD H,(IX-9) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,10 + ADD HL,BC + LD C,(HL) + PUSH BC + LD L,(IX-26) + LD H,(IX-25) + ADD HL,HL + LD C,(IX-20) + LD B,(IX-19) + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD BC,40 + JR ?0536 +?0241: + CP 73 + JR NZ,?0239 + LD L,(IY+2) + LD H,(IY+3) + PUSH HL + LD L,(IX-10) + LD H,(IX-9) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,10 + ADD HL,BC + LD C,(HL) + PUSH BC + LD L,(IX-26) + LD H,(IX-25) + ADD HL,HL + LD C,(IX-20) + LD B,(IX-19) + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD BC,36 +?0536: + ADD HL,BC + LD C,L + LD B,H + LD HL,4 + LD E,(IX-24) + LD D,(IX-23) + ADD HL,DE + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD E,(IX-12) + LD D,(IX-11) + ADD HL,DE + EX DE,HL + LD A,BYTE3 memcpy + LD HL,LWRD memcpy + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF +?0239: + LD L,(IX-22) + LD H,(IX-21) + INC HL + INC HL + LD B,(HL) + LD (IX-22),B + INC HL + LD H,(HL) + LD (IX-21),H + INC (IX-26) + JP NZ,?0236 + INC (IX-25) + JP LWRD ?0236 +?0235: + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD C,(IX-14) + LD B,(IX-13) + LD L,4 + LD E,(IX-24) + LD D,(IX-23) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 fwrite + LD HL,LWRD fwrite + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + LD HL,1 + PUSH HL + DEC HL + PUSH HL + PUSH HL + CALL LWRD ?0665 + POP AF + POP AF + POP AF +?0230: +?0228: + INC (IX-18) + JP NZ,?0224 + INC (IX-17) + JP LWRD ?0224 +?0223: + LD E,(IX-24) + LD D,(IX-23) + LD A,BYTE3 dbDeleteRow + LD HL,LWRD dbDeleteRow + CALL LWRD ?BANK_CALL_DIRECT_L08 + XOR A + LD (IX-26),A + LD (IX-25),A +?0243: + LD C,(IX-16) + LD B,(IX-15) + LD L,(IX-26) + LD H,(IX-25) + OR 128 + SBC HL,BC + JP PO,?0533 + XOR H +?0533: + JP P,?0242 +?0244: + LD L,(IX-26) + LD H,(IX-25) + ADD HL,HL + LD C,(IX-20) + LD B,(IX-19) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbDeleteExpression + LD HL,LWRD dbDeleteExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + INC (IX-26) + JR NZ,?0243 + INC (IX-25) + JR ?0243 +?0242: + LD E,(IX-20) + LD D,(IX-19) + CALL LWRD ?0639 + PUSH IY + POP DE + LD A,BYTE3 dbTableClose + LD HL,LWRD dbTableClose + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,0 + LD SP,IX + JP LWRD ?0614 +dbExecuteStatement: + PUSH IY + PUSH IX + PUSH DE + LD IY,0 + LD A,BYTE3 dbParseStatement + LD HL,LWRD dbParseStatement + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH HL + POP IX + LD A,L + OR H + JR NZ,?0247 +?0246: + LD L,A + LD H,A + JR ?0253 +?0247: + LD A,(IX+0) + CP 115 + JR NZ,?0250 +?0249: + PUSH IX + POP DE + LD A,BYTE3 dbExecuteQuery + LD HL,LWRD dbExecuteQuery + JR ?0545 +?0250: + CP 105 + JR NZ,?0251 + PUSH IX + POP DE + LD A,BYTE3 dbExecuteInsert + LD HL,LWRD dbExecuteInsert + JR ?0545 +?0251: + CP 100 + JR NZ,?0252 + PUSH IX + POP DE + LD A,BYTE3 dbExecuteDelete + LD HL,LWRD dbExecuteDelete + JR ?0545 +?0252: + CP 117 + JR NZ,?0248 + PUSH IX + POP DE + LD A,BYTE3 dbExecuteUpdate + LD HL,LWRD dbExecuteUpdate +?0545: + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH HL + POP IY +?0248: + PUSH IX + POP DE + LD A,BYTE3 dbStatementClose + LD HL,LWRD dbStatementClose + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH IY + POP HL +?0253: + JP LWRD ?0626 +dbNextRow: + PUSH IY + PUSH IX + PUSH AF + PUSH BC + POP IX + PUSH DE + POP IY + LD HL,0 + ADD HL,SP + PUSH HL + LD A,BYTE3 dbRecordSize + LD HL,LWRD dbRecordSize + CALL LWRD ?BANK_CALL_DIRECT_L08 + EX DE,HL + POP HL + LD (HL),E + INC HL + LD (HL),D + LD HL,4 + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + JR NZ,?0255 +?0254: + CALL LWRD ?0641 + LD (IX+4),L + LD (IX+5),H +?0255: + LD C,(IY+4) + LD B,(IY+5) + LD L,(IY+6) + LD H,(IY+7) + OR 128 + SBC HL,BC + JP PO,?0547 + XOR H +?0547: + JP M,?0257 +?0256: + LD (IX+2),255 + LD (IX+3),255 + CALL LWRD ?0638 + XOR A + LD (IX+4),A + LD (IX+5),A + JR ?0258 +?0257: + LD L,(IY+6) + LD H,(IY+7) + INC HL + LD (IY+6),L + LD (IY+7),H + DEC HL + LD (IX+2),L + LD (IX+3),H + PUSH IY + PUSH IX + POP HL + POP BC + LD (HL),C + INC HL + LD (HL),B + LD L,(IY+8) + LD H,(IY+9) + PUSH HL + LD HL,1 + PUSH HL + LD L,4 + ADD HL,SP + LD C,(HL) + INC HL + LD B,(HL) + LD E,(IX+4) + LD D,(IX+5) + LD A,BYTE3 fread + LD HL,LWRD fread + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF +?0258: + JP LWRD ?0625 +dbDeleteRow: + PUSH IX + PUSH DE + POP IX + LD A,E + OR D + JR Z,?0260 +?0259: + LD A,(IX+4) + OR (IX+5) + JR Z,?0262 +?0261: + CALL LWRD ?0638 +?0262: + PUSH IX + POP DE + CALL LWRD ?0639 +?0260: + POP IX + JP LWRD ?BANK_FAST_LEAVE_L08 +dbNewRow: + PUSH BC + PUSH DE + PUSH IX + LD DE,6 + CALL LWRD ?0641 + PUSH HL + POP IX + LD BC,4 + ADD HL,BC + XOR A + LD (HL),A + INC HL + LD (HL),A + PUSH IX + POP HL + LD (HL),A + INC HL + LD (HL),A + LD (IX+2),255 + LD (IX+3),255 + PUSH IX + POP HL + POP IX + POP DE + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 +dbGetString: + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH BC + PUSH AF + PUSH AF + PUSH AF + PUSH DE + POP IY + LD HL,4 + ADD HL,DE + LD A,(HL) + LD (IX-8),A + INC HL + LD H,(HL) + LD (IX-7),H + EX DE,HL + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-6),L + LD (IX-5),H + LD L,(IY+0) + LD H,(IY+1) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,9 + ADD HL,BC + LD A,(HL) + CP 83 + JR NZ,?0265 +?0264: + LD L,(IX-6) + LD H,(IX-5) + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD C,L + LD B,H + LD E,(IX+8) + LD D,(IX+9) + CALL LWRD ?0651 + JP LWRD ?0270 +?0265: + CP 73 + JP NZ,?0270 + LD L,(IY+0) + LD H,(IY+1) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,10 + ADD HL,BC + LD B,(HL) + DEC B + DEC B + JR NZ,?0267 +?0266: + PUSH BC + LD C,(IX+8) + LD B,(IX+9) + LD L,(IX-6) + LD H,(IX-5) + LD E,(IX-8) + LD D,(IX-7) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 itoa + LD HL,LWRD itoa + CALL LWRD ?BANK_CALL_DIRECT_L08 + JR ?0548 +?0267: + LD L,(IY+0) + LD H,(IY+1) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,10 + ADD HL,BC + LD A,(HL) + CP 4 + JR NZ,?0270 +?0269: + PUSH BC + LD L,(IX+8) + LD H,(IX+9) + PUSH HL + LD L,(IX-6) + LD H,(IX-5) + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + LD A,BYTE3 ltoa + LD HL,LWRD ltoa + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF +?0548: + POP AF +?0270: +?0268: +?0263: + JP LWRD ?0630 +dbGetInt: + PUSH IY + PUSH IX + PUSH BC + PUSH AF + PUSH DE + POP IX + LD HL,4 + ADD HL,DE + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + PUSH HL + POP IY + LD HL,0 + ADD HL,SP + PUSH HL + EX DE,HL + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD L,(IX+0) + LD H,(IX+1) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD HL,4 + ADD HL,SP + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,9 + ADD HL,BC + LD A,(HL) + CP 83 + JR NZ,?0273 +?0272: + LD L,B + LD H,B + ADD HL,SP + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH IY + POP BC + ADD HL,BC + EX DE,HL + LD A,BYTE3 atoi + LD HL,LWRD atoi + CALL LWRD ?BANK_CALL_DIRECT_L08 + JR ?0274 +?0273: + CP 73 + LD L,B + LD H,B + JR NZ,?0274 + ADD HL,SP + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH IY + POP BC + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B +?0274: +?0275: + POP AF + JP LWRD ?0626 +?0271: +dbGetLong: + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH BC + PUSH AF + PUSH AF + PUSH DE + POP IY + LD HL,4 + ADD HL,DE + LD A,(HL) + LD (IX-6),A + INC HL + LD H,(HL) + LD (IX-5),H + EX DE,HL + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbFieldOffset + LD HL,LWRD dbFieldOffset + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-4),L + LD (IX-3),H + LD L,(IY+0) + LD H,(IY+1) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,9 + ADD HL,BC + LD A,(HL) + CP 83 + JR NZ,?0278 +?0277: + LD L,(IX-4) + LD H,(IX-3) + LD C,(IX-6) + LD B,(IX-5) + ADD HL,BC + EX DE,HL + LD A,BYTE3 atol + LD HL,LWRD atol + CALL LWRD ?BANK_CALL_DIRECT_L08 + JR ?0282 +?0278: + CP 73 + JR NZ,?0281 + LD L,(IY+0) + LD H,(IY+1) + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,10 + ADD HL,BC + LD B,(HL) + DEC B + DEC B + LD L,(IX-4) + LD H,(IX-3) + LD C,(IX-6) + LD B,(IX-5) + ADD HL,BC + JR NZ,?0280 +?0279: + LD B,(HL) + INC HL + LD H,(HL) + LD A,H + LD L,B + RLCA + SBC A,A + LD C,A + LD B,C + JR ?0282 +?0280: + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + JR ?0282 +?0281: + LD C,B + LD L,C + LD H,B +?0282: + JP LWRD ?0630 +?0276: +dbOperatorPrecedence: + PUSH DE + CALL LWRD ?C_V_SWITCH_L06 + DEFW 16 + DEFB 0 + DEFB 38 + DEFB 40 + DEFB 41 + DEFB 42 + DEFB 43 + DEFB 45 + DEFB 47 + DEFB 59 + DEFB 60 + DEFB 61 + DEFB 62 + DEFB 91 + DEFB 93 + DEFB 94 + DEFB 124 + DEFW ?0291 + DEFW ?0289 + DEFW ?0285 + DEFW ?0288 + DEFW ?0288 + DEFW ?0288 + DEFW ?0288 + DEFW ?0288 + DEFW ?0290 + DEFW ?0286 + DEFW ?0287 + DEFW ?0287 + DEFW ?0286 + DEFW ?0290 + DEFW ?0284 + DEFW ?0289 + DEFW ?0290 +?0284: + LD L,1 + JR ?0292 +?0285: + LD L,2 + JR ?0292 +?0286: + LD L,3 + JR ?0292 +?0287: + LD L,4 + JR ?0292 +?0288: + LD L,5 + JR ?0292 +?0289: + LD L,6 + JR ?0292 +?0290: + LD L,63 + JR ?0292 +?0291: + LD L,0 +?0292: + POP AF + JP LWRD ?BANK_FAST_LEAVE_L08 +?0283: +dbNewExpression: + PUSH IX + PUSH BC + PUSH DE + LD DE,78 + CALL LWRD ?0641 + PUSH HL + POP IX + INC HL + INC HL + INC HL + LD (HL),0 + XOR A + LD (IX+72),A + LD (IX+73),A + LD (IX+74),A + LD (IX+75),A + LD (IX+2),A + LD L,A + LD H,A + ADD HL,SP + LD B,(HL) + LD (IX+76),B + INC HL + LD H,(HL) + LD (IX+77),H + LD (IX+0),C + LD (IX+36),A + LD (IX+37),A + LD (IX+38),A + LD (IX+39),A + PUSH IX + POP HL + POP AF + POP AF + POP IX + JP LWRD ?BANK_FAST_LEAVE_L08 +dbParseExpression: + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH BC + PUSH DE + LD HL,65458 + ADD HL,SP + LD SP,HL + XOR A + LD (IX-8),A + LD (IX-7),A + LD A,E + OR D + JR NZ,?0294 +?0293: + LD C,1 + LD E,A + LD D,A + CALL LWRD ?0666 + LD (IX-82),L + LD (IX-81),H + LD BC,4 + ADD HL,BC + LD (HL),49 + LD HL,5 + LD C,(IX-82) + LD B,(IX-81) + ADD HL,BC + LD (HL),0 + LD L,C + LD H,B + JP LWRD ?0356 +?0294: + XOR A + LD (IX-10),A + LD (IX-9),A +?0296: + LD BC,32832 + LD L,(IX-10) + LD H,(IX-9) + LD A,B + XOR H + LD H,A + SBC HL,BC + JR NC,?0295 +?0297: + LD HL,6 + ADD HL,SP + LD C,(IX-10) + LD B,(IX-9) + ADD HL,BC + LD (HL),0 + INC BC + LD (IX-10),C + LD (IX-9),B + JR ?0296 +?0295: + LD C,3 + LD DE,0 + CALL LWRD ?0666 + LD (IX-82),L + LD (IX-81),H + PUSH HL + POP IY +?0301: + XOR A + LD (IX-78),A + LD (IX-77),A +?0302: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD C,(IX-4) + LD B,(IX-3) + ADD HL,BC + LD E,(HL) + LD A,BYTE3 dbOperatorPrecedence + LD HL,LWRD dbOperatorPrecedence + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD H,0 + LD (IX-12),L + LD (IX-11),H + LD A,L + OR A + JR NZ,?0304 +?0303: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD B,(HL) + LD HL,6 + ADD HL,SP + LD E,(IX-8) + LD D,(IX-7) + ADD HL,DE + LD (HL),B + JP LWRD ?0312 +?0304: + LD A,1 + XOR L + JR NZ,?0307 +?0306: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD A,(HL) + CP 41 + JR NZ,?0309 +?0308: + LD (IX-12),63 + LD (IX-11),0 +?0309: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD B,(IX-3) + ADD HL,BC + LD A,(HL) + CP 40 + JP NZ,?0312 +?0310: + LD L,(IX-2) + LD H,(IX-1) + INC (HL) + INC HL + JR NZ,?0549 + INC (HL) +?0549: + LD C,(IX-2) + LD B,(IX-1) + LD E,(IX-4) + LD D,(IX-3) + LD A,BYTE3 dbParseExpression + LD HL,LWRD dbParseExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD (IX-78),L + LD (IX-77),H + XOR A + LD (IX-8),A + LD (IX-7),A + JP LWRD ?0302 +?0311: +?0307: + LD L,6 + ADD HL,SP + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD (HL),0 + LD A,(IY+72) + OR (IY+73) + JR NZ,?0314 +?0313: + LD A,(IX-78) + OR (IX-77) + JR NZ,?0316 +?0315: + CALL LWRD ?0667 + LD (IY+72),L + LD (IY+73),H + LD HL,6 + ADD HL,SP + LD C,L + LD B,H + LD L,(IY+72) + LD H,(IY+73) + CALL LWRD ?0654 + JR ?0317 +?0316: + LD L,(IX-78) + LD (IY+72),L + LD H,(IX-77) + LD (IY+73),H +?0317: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD C,(IX-4) + LD B,(IX-3) + ADD HL,BC + LD B,(HL) + LD (IY+2),B + JP LWRD ?0350 +?0314: + CALL LWRD ?0669 + JP PO,?0550 + XOR H +?0550: + JP P,?0320 +?0319: + LD C,3 + CALL LWRD ?0668 + LD (IY+74),L + LD (IY+75),H + LD A,(IX-78) + OR (IX-77) + LD L,(IY+74) + LD H,(IY+75) + LD BC,72 + ADD HL,BC + JR NZ,?0322 +?0321: + PUSH HL + LD C,1 + LD E,(IY+74) + LD D,(IY+75) + CALL LWRD ?0666 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD HL,6 + ADD HL,SP + LD C,L + LD B,H + LD L,(IY+74) + LD H,(IY+75) + LD DE,72 + ADD HL,DE + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + CALL LWRD ?0654 + JR ?0323 +?0322: + LD C,(IX-78) + LD (HL),C + LD B,(IX-77) + INC HL + LD (HL),B +?0323: + LD L,(IY+74) + LD H,(IY+75) + INC HL + INC HL + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD C,(IX-4) + LD B,(IX-3) + ADD HL,BC + LD B,(HL) + POP HL + LD (HL),B + LD L,(IY+74) + LD H,(IY+75) + JP LWRD ?0557 +?0320: + LD A,63 + XOR (IX-12) + OR (IX-11) + JR NZ,?0326 +?0325: + LD A,(IX-78) + OR (IX-77) + JR NZ,?0328 +?0327: + CALL LWRD ?0667 + LD (IY+74),L + LD (IY+75),H + LD HL,6 + ADD HL,SP + CALL LWRD ?0655 + JP LWRD ?0350 +?0328: + LD L,(IX-78) + LD (IY+74),L + LD H,(IX-77) + LD (IY+75),H +?0329: + JP LWRD ?0350 +?0326: + CALL LWRD ?0670 + JP PO,?0551 + XOR H +?0551: + JP M,?0350 +?0331: + LD A,(IX-78) + OR (IX-77) + JR NZ,?0334 +?0333: + CALL LWRD ?0667 + LD (IY+74),L + LD (IY+75),H + LD HL,6 + ADD HL,SP + CALL LWRD ?0655 + JR ?0335 +?0334: + LD L,(IX-78) + LD (IY+74),L + LD H,(IX-77) + LD (IY+75),H +?0335: +?0337: + CALL LWRD ?0669 + JP PO,?0552 + XOR H +?0552: + JP M,?0336 + LD A,(IY+76) + OR (IY+77) + JR Z,?0336 +?0340: +?0339: +?0338: + LD L,(IY+76) + LD H,(IY+77) + PUSH HL + POP IY + JR ?0335 +?0336: + LD A,(IY+76) + OR (IY+77) + JR NZ,?0342 + CALL LWRD ?0670 + JP PO,?0553 + XOR H +?0553: + JP M,?0342 +?0344: +?0343: +?0341: + LD C,3 + LD E,B + LD D,B + CALL LWRD ?0666 + LD (IX-82),L + LD (IX-81),H + LD BC,72 + ADD HL,BC + PUSH IY + POP BC + LD (HL),C + INC HL + LD (HL),B + LD L,(IX-2) + LD H,(IX-1) + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD E,(IX-4) + LD D,(IX-3) + ADD HL,DE + LD D,(HL) + LD L,(IX-82) + LD H,(IX-81) + INC HL + INC HL + LD (HL),D + DEC HL + DEC HL + JP LWRD ?0557 +?0342: + LD A,(IY+76) + OR (IY+77) + JR NZ,?0347 + CALL LWRD ?0670 + JP PO,?0554 + XOR H +?0554: + JP P,?0347 +?0349: +?0348: +?0346: + LD C,3 + CALL LWRD ?0668 + LD (IX-6),L + LD (IX-5),H + LD BC,72 + ADD HL,BC + LD C,(IY+74) + LD (HL),C + LD B,(IY+75) + INC HL + LD (HL),B + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD C,(IX-4) + LD B,(IX-3) + ADD HL,BC + LD B,(HL) + LD L,(IX-6) + LD H,(IX-5) + INC HL + INC HL + LD (HL),B + LD HL,72 + LD C,(IX-6) + LD B,(IX-5) + ADD HL,BC + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD DE,76 + ADD HL,DE + LD (HL),C + INC HL + LD (HL),B + LD (IY+74),C + LD (IY+75),B + LD L,C + LD H,B + JR ?0557 +?0347: + LD L,(IY+76) + LD (IX-6),L + LD H,(IY+77) + LD (IX-5),H + LD C,74 + ADD HL,BC + PUSH HL + LD C,3 + LD E,(IX-6) + LD D,(IX-5) + CALL LWRD ?0666 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD HL,74 + LD C,(IX-6) + LD B,(IX-5) + ADD HL,BC + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + LD DE,72 + ADD HL,DE + PUSH IY + POP DE + LD (HL),E + INC HL + LD (HL),D + LD HL,74 + ADD HL,BC + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + INC HL + INC HL + PUSH HL + LD L,(IX-2) + LD H,(IX-1) + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD C,(IX-4) + LD B,(IX-3) + ADD HL,BC + LD B,(HL) + POP HL + LD (HL),B + LD HL,74 + LD C,(IX-6) + LD B,(IX-5) + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B +?0557: + PUSH HL + POP IY +?0350: +?0345: +?0332: +?0330: +?0324: +?0318: + LD (IX-8),255 + LD (IX-7),255 +?0312: +?0305: + INC (IX-8) + JR NZ,?0555 + INC (IX-7) +?0555: + LD L,(IX-2) + LD H,(IX-1) + INC (HL) + INC HL + JR NZ,?0556 + INC (HL) +?0556: + LD BC,32831 + LD L,(IX-12) + LD H,(IX-11) + LD A,B + XOR H + LD H,A + SBC HL,BC + JP C,?0301 +?0299: +?0352: + LD HL,74 + LD C,(IX-82) + LD B,(IX-81) + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + JR NZ,?0351 + LD L,C + LD H,B + LD A,(HL) + CP 3 + JR NZ,?0351 +?0355: +?0354: +?0353: + PUSH HL + POP IY + LD HL,72 + ADD HL,BC + LD D,(HL) + LD (IX-82),D + INC HL + LD H,(HL) + LD (IX-81),H + PUSH IY + POP DE + CALL LWRD ?0639 + JR ?0299 +?0351: + LD L,C + LD H,B +?0356: + JP LWRD ?0630 +?0667: + LD C,1 +?0668: + PUSH IY + POP DE +?0666: + LD A,BYTE3 dbNewExpression + LD HL,LWRD dbNewExpression + JP LWRD ?BANK_CALL_DIRECT_L08 +?0669: + LD E,(IY+2) + LD A,BYTE3 dbOperatorPrecedence + LD HL,LWRD dbOperatorPrecedence + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,0 + LD L,(IX-12) + LD H,(IX-11) + OR 128 + SBC HL,BC + RET +?0670: + LD E,(IY+2) + LD A,BYTE3 dbOperatorPrecedence + LD HL,LWRD dbOperatorPrecedence + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD L,(IX-12) + LD H,(IX-11) + OR 128 + SBC HL,BC + RET +dbDeleteExpression: + PUSH IX + PUSH DE + POP IX + LD A,(DE) + CP 3 + JR NZ,?0358 +?0357: + LD E,(IX+72) + LD D,(IX+73) + LD A,BYTE3 dbDeleteExpression + LD HL,LWRD dbDeleteExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX+74) + LD D,(IX+75) + LD A,BYTE3 dbDeleteExpression + LD HL,LWRD dbDeleteExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0358: + JP LWRD ?0636 +dbEvaluateExpression: + PUSH IY + PUSH IX + LD IX,0 + ADD IX,SP + PUSH BC + PUSH AF + PUSH AF + PUSH AF + PUSH DE + POP IY + LD A,(DE) + CP 3 + JP NZ,?0360 +?0359: + LD E,(IY+72) + LD D,(IY+73) + LD A,BYTE3 dbEvaluateExpression + LD HL,LWRD dbEvaluateExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,(IX-2) + LD B,(IX-1) + LD E,(IY+74) + LD D,(IY+75) + LD A,BYTE3 dbEvaluateExpression + LD HL,LWRD dbEvaluateExpression + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IY+2) + LD A,BYTE3 dbOperatorPrecedence + LD HL,LWRD dbOperatorPrecedence + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD A,L + CP 5 + LD L,(IY+72) + LD H,(IY+73) + INC HL + JP NC,?0362 +?0361: + LD B,(HL) + DEC B + JP NZ,?0454 + LD L,(IY+74) + LD H,(IY+75) + INC HL + LD B,(HL) + DEC B + JP NZ,?0454 +?0366: +?0365: +?0363: + LD (IY+1),1 + LD A,(IY+2) + CP 43 + JR NZ,?0369 +?0368: + LD L,(IY+74) + LD H,(IY+75) + LD C,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + LD L,C + LD H,B + POP BC + ADD HL,BC + EX DE,HL + POP BC + ADC HL,BC + JR ?0564 +?0369: + CP 45 + JR NZ,?0370 + LD L,(IY+74) + LD H,(IY+75) + LD C,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + LD L,C + LD H,B + PUSH DE + PUSH HL + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + LD L,C + LD H,B + AND A + POP BC + SBC HL,BC + EX DE,HL + POP BC + SBC HL,BC +?0564: + LD C,L + LD B,H + EX DE,HL + JR ?0583 +?0370: + CP 42 + JR NZ,?0371 + LD L,(IY+72) + LD H,(IY+73) + LD C,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + CALL LWRD ?L_MUL_L03 + JR ?0583 +?0371: + CP 47 + JR NZ,?0367 + LD L,(IY+74) + LD H,(IY+75) + LD C,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + CALL LWRD ?SL_DIV_L03 +?0583: + LD (IX-8),L + LD (IX-7),H + LD (IX-6),C + LD (IX-5),B +?0367: + LD C,(IX-6) + LD B,(IX-5) + LD L,(IX-8) + LD H,(IX-7) + JP LWRD ?0606 +?0364: +?0362: + LD A,(HL) + CP 3 + JP Z,?0377 + LD L,(IY+74) + LD H,(IY+75) + INC HL + LD A,(HL) + CP 3 + JP Z,?0377 +?0376: +?0375: +?0373: + LD (IY+1),4 + LD E,(IY+2) + CALL LWRD ?C_V_SWITCH_L06 + DEFW 7 + DEFB 38 + DEFB 60 + DEFB 61 + DEFB 62 + DEFB 91 + DEFB 93 + DEFB 124 + DEFW ?0377 + DEFW ?0399 + DEFW ?0394 + DEFW ?0390 + DEFW ?0386 + DEFW ?0378 + DEFW ?0382 + DEFW ?0398 +?0378: + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + LD L,C + LD H,B + POP BC + AND A + SBC HL,BC + POP BC + JR NZ,?0380 + EX DE,HL + SBC HL,BC + JR NZ,?0380 + LD C,L + LD B,H + INC HL + JP LWRD ?0598 +?0380: + LD BC,0 + JP LWRD ?0396 +?0382: + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + CALL LWRD ?0671 + LD BC,0 + JR NC,?0396 + JR ?0597 +?0386: + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + LD L,(IY+74) + LD H,(IY+75) + CALL LWRD ?0672 + LD BC,0 + JR NC,?0396 + JR ?0597 +?0390: + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + LD L,(IY+74) + LD H,(IY+75) + CALL LWRD ?0672 + LD BC,0 + JR C,?0396 + JR ?0597 +?0394: + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + CALL LWRD ?0671 + LD BC,0 + JR C,?0396 +?0597: + LD HL,1 + JR ?0598 +?0396: + LD L,C + LD H,B + JR ?0598 +?0398: + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + CALL LWRD ?0673 + JR ?0598 +?0399: + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + CALL LWRD ?0674 +?0598: + LD (IY+36),L + LD (IY+37),H + LD (IY+38),C + LD (IY+39),B +?0377: +?0374: + LD L,(IY+72) + LD H,(IY+73) + INC HL + LD A,(HL) + CP 3 + JP NZ,?0404 + LD L,(IY+74) + LD H,(IY+75) + INC HL + LD A,(HL) + CP 3 + JP NZ,?0404 +?0403: +?0402: +?0400: + LD L,(IY+74) + LD H,(IY+75) + LD BC,40 + ADD HL,BC + LD C,L + LD B,H + LD L,(IY+72) + LD H,(IY+73) + LD DE,40 + ADD HL,DE + EX DE,HL + LD A,BYTE3 strcmp + LD HL,LWRD strcmp + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IY+2) + CALL LWRD ?C_V_SWITCH_L06 + DEFW 6 + DEFB 43 + DEFB 60 + DEFB 61 + DEFB 62 + DEFB 91 + DEFB 93 + DEFW ?0404 + DEFW ?0421 + DEFW ?0417 + DEFW ?0413 + DEFW ?0405 + DEFW ?0409 + DEFW ?0425 +?0405: + LD (IY+1),4 + LD A,L + OR H + JR NZ,?0407 + LD C,A + LD B,A + JR ?0604 +?0407: + LD BC,0 + JR ?0423 +?0409: + LD (IY+1),4 + BIT 7,H + LD BC,0 + JR Z,?0423 + JR ?0604 +?0413: + LD (IY+1),4 + LD C,L + LD B,H + LD HL,0 + OR 128 + SBC HL,BC + JP PO,?0560 + XOR H +?0560: + LD BC,0 + JP P,?0423 + JR ?0604 +?0417: + LD (IY+1),4 + LD C,L + LD B,H + LD HL,0 + OR 128 + SBC HL,BC + JP PO,?0561 + XOR H +?0561: + LD BC,0 + JP M,?0423 + JR ?0604 +?0421: + LD (IY+1),4 + BIT 7,H + LD BC,0 + JR NZ,?0423 +?0604: + LD HL,1 + JR ?0424 +?0423: + LD L,C + LD H,B +?0424: + LD (IY+36),L + LD (IY+37),H + LD (IY+38),C + LD (IY+39),B + JR ?0404 +?0425: + LD (IY+1),3 + LD L,(IY+72) + LD H,(IY+73) + LD BC,40 + ADD HL,BC + LD C,L + LD B,H + LD HL,40 + PUSH IY + POP DE + CALL LWRD ?0653 + LD L,(IY+74) + LD H,(IY+75) + LD BC,40 + ADD HL,BC + LD C,L + LD B,H + LD HL,40 + PUSH IY + POP DE + ADD HL,DE + EX DE,HL + LD A,BYTE3 strcat + LD HL,LWRD strcat + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0404: +?0401: + LD L,(IY+72) + LD H,(IY+73) + INC HL + LD A,(HL) + CP 4 + JP NZ,?0454 + LD L,(IY+74) + LD H,(IY+75) + INC HL + LD A,(HL) + CP 4 + JP NZ,?0454 +?0429: +?0428: +?0426: + LD (IY+1),4 + LD A,(IY+2) + CP 38 + JR NZ,?0432 +?0431: + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + CALL LWRD ?0673 + JP LWRD ?0606 +?0432: + CP 124 + JP NZ,?0454 + LD L,(IY+74) + LD H,(IY+75) + LD BC,36 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + PUSH BC + CALL LWRD ?0674 + JP LWRD ?0606 +?0430: +?0427: +?0372: +?0360: + LD (IX-4),255 + LD (IX-3),255 + LD A,C + OR B + JR Z,?0436 +?0434: + LD L,C + LD H,B + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD B,(HL) + LD (IX-6),B + INC HL + LD H,(HL) + LD (IX-5),H + XOR A + LD (IX-8),A + LD (IX-7),A +?0437: + LD C,(IX-6) + LD B,(IX-5) + LD L,(IX-8) + LD H,(IX-7) + OR 128 + SBC HL,BC + JP PO,?0562 + XOR H +?0562: + JP P,?0436 +?0438: + LD HL,4 + PUSH IY + POP BC + ADD HL,BC + LD C,L + LD B,H + LD L,(IX-2) + LD H,(IX-1) + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + INC HL + INC HL + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH HL + LD L,(IX-8) + LD H,(IX-7) + ADD HL,HL + ADD HL,HL + LD E,L + LD D,H + ADD HL,HL + ADD HL,DE + EX DE,HL + POP HL + ADD HL,DE + EX DE,HL + LD A,BYTE3 strcmp + LD HL,LWRD strcmp + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD A,L + OR H + JR NZ,?0441 +?0440: + LD L,(IX-8) + LD H,(IX-7) + LD (IX-4),L + LD (IX-3),H +?0441: + INC (IX-8) + JR NZ,?0437 + INC (IX-7) + JR ?0437 +?0436: +?0435: + BIT 7,(IX-3) + JR NZ,?0444 + LD A,(IX-2) + OR (IX-1) + JR NZ,?0443 +?0444: +?0445: +?0442: + LD A,(IY+4) + CP 39 + JR NZ,?0447 +?0446: + LD (IY+1),3 + LD HL,4 + PUSH IY + POP BC + ADD HL,BC + LD C,L + LD B,H + INC BC + LD HL,40 + PUSH IY + POP DE + CALL LWRD ?0653 + LD HL,40 + PUSH IY + POP BC + ADD HL,BC + CALL LWRD ?0648 + ADD HL,BC + LD BC,39 + ADD HL,BC + LD (HL),B + JP LWRD ?0454 +?0447: + LD (IY+1),1 + LD HL,4 + PUSH IY + POP BC + ADD HL,BC + EX DE,HL + LD A,BYTE3 atol + LD HL,LWRD atol + CALL LWRD ?BANK_CALL_DIRECT_L08 + JR ?0606 +?0448: +?0443: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-4) + LD H,(IX-3) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,9 + ADD HL,BC + LD A,(HL) + CP 73 + JR NZ,?0451 +?0450: + LD (IY+1),1 + LD C,(IX-4) + LD B,(IX-3) + LD E,(IX-2) + LD D,(IX-1) + LD A,BYTE3 dbGetLong + LD HL,LWRD dbGetLong + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0606: + LD (IY+36),L + LD (IY+37),H + LD (IY+38),C + LD (IY+39),B + JR ?0454 +?0451: + LD L,(IX-2) + LD H,(IX-1) + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + INC HL + INC HL + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH HL + LD L,(IX-4) + LD H,(IX-3) + ADD HL,HL + ADD HL,HL + LD C,L + LD B,H + ADD HL,HL + ADD HL,BC + LD C,L + LD B,H + POP HL + ADD HL,BC + LD BC,9 + ADD HL,BC + LD A,(HL) + CP 83 + JR NZ,?0454 +?0453: + LD (IY+1),3 + LD HL,40 + PUSH IY + POP BC + ADD HL,BC + PUSH HL + LD C,(IX-4) + LD B,(IX-3) + LD E,(IX-2) + LD D,(IX-1) + LD A,BYTE3 dbGetString + LD HL,LWRD dbGetString + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP HL +?0454: +?0452: +?0449: +?0433: + JP LWRD ?0630 +?0671: + LD L,(IY+72) + LD H,(IY+73) +?0672: + LD BC,36 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + JP LWRD ?SL_CMP_L03 +?0673: + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + JP LWRD ?L_AND_L03 +?0674: + LD L,(IY+72) + LD H,(IY+73) + LD BC,36 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + JP LWRD ?L_OR_L03 + RSEG CSTR +?0066: + DEFB 'SEL' + DEFB 0 +?0069: + DEFB 'INS' + DEFB 0 +?0072: + DEFB 'UPD' + DEFB 0 +?0075: + DEFB 'DEL' + DEFB 0 +?0081: + DEFB ' FR ' + DEFB 0 +?0085: + DEFB ' WH' + DEFB 0 +?0090: + DEFB ' ORD ' + DEFB 0 +?0094: + DEFB '(' + DEFB 0 +?0098: + DEFB ') VAL(' + DEFB 0 +?0103: + DEFB ' ST ' + DEFB 0 +?0114: + DEFB '/usr/db/' + DEFB 0 +?0115: + DEFB '.TBL' + DEFB 0 +?0116: + DEFB 'rb' + DEFB 0 +?0126: + DEFB '.DAT' + DEFB 0 +?0127: + DEFB 'r+b' + DEFB 0 +?0146: + DEFB '"*"' + DEFB 0 +?0156: + DEFB 'result' + DEFB 0 +?0157: + DEFB 'wb' + DEFB 0 + END diff --git a/src/db/logistic.DAT b/src/db/logistic.DAT new file mode 100644 index 0000000000000000000000000000000000000000..d961fa1323a638472d3b40d650275d1b76b0ec6e GIT binary patch literal 10 NcmZ>93{hYJ0{{qn0Qvv` literal 0 HcmV?d00001 diff --git a/src/db/logistic.TBL b/src/db/logistic.TBL new file mode 100644 index 0000000000000000000000000000000000000000..e67263784d0f2f7e3d35d96e43f487bf241b52a3 GIT binary patch literal 104 zcmWG>@=@SmU|`5kOUq17Wnl1RVPHr}EJ-Z_iUo5rFqCBG0!4vrb|Aa50L=DeVqi#0 kEK1H#No5G;V_+yP1}kR(i5Hesf|P^JDNoHz&nSVg0Y94*0RR91 literal 0 HcmV?d00001 diff --git a/src/db/main.c b/src/db/main.c new file mode 100644 index 00000000..1ed03442 --- /dev/null +++ b/src/db/main.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include "db.h" + +void main(){ + char sql[]="SEL column1, column2, testtest FR test"; + + char str[256]; + DbRow* row=malloc(sizeof(DbRow)); + DbTable* tbl=malloc(sizeof(DbTable)); + DbResultSet* rs; + char a[65]; + WORD i; +/* LONG j; + DbExpression* expr;*/ + + str[0]=0; + + while (strcmp(str,"QT")!=0){ + printf("SQL> "); fflush(stdout); + gets(str); + i=0; +/* expr=dbParseExpression(str,&i); + DisplayExpression(expr); + dbEvaluateExpression(expr,NULL); + printf("=%ld\n",expr->result);*/ + rs=dbExecuteStatement(str); + row=dbNewRow(); + + if(rs!=NULL){ + dbNextRow(rs,row); + while(row->rownr>=0){ + for(i=0; ifields; i++){ + dbGetString(row,i,a); + printf("'%s',",a); + } + printf("\n"); + dbNextRow(rs,row); + } + dbResultSetClose(rs); + } + dbDeleteRow(row); + } +/*ZILOG + rs=dbExecuteStatement(sql); + + row->data=NULL; row->rownr=0; + dbNextRow(rs,row); + while(row->rownr>=0){ + j=dbGetLong(row,1); + i=dbGetInt(row,0); + dbGetString(row,1,c); + dbGetString(row,2,b); + dbGetString(row,0,a); + printf("Row #%2d: (%d,%ld,\'%0.16s\',\'%0.16s\',\'%0.16s\')\n",row->rownr,i,j,b,c,a); + dbNextRow(rs,row); + } + dbResultSetClose(rs); +*/ +} \ No newline at end of file diff --git a/src/db/main.i86 b/src/db/main.i86 new file mode 100644 index 00000000..d0a14c9b --- /dev/null +++ b/src/db/main.i86 @@ -0,0 +1,805 @@ +:020000040000FA +:20000000C9A6020078563412140000810081BB85FE87FE97D1ED53BB85C1ED43BD85E12264 +:13002000BF8521CF443E00CD7781EB211B593E01C37781D8 +:2004CF00CDB58190FE210000395D5421DA83012700EDB01106003E0121EF56CD7781DD755B +:2004EF00B7DD74B81114003E0121EF56CD7781DD75B9DD74BA212700393600010184212703 +:20050F0000395D543E0121A74ACD77817DB4CA2E46210484E53E01214647CD7781F1118794 +:20052F00843E01210040CD7781212700395D543E01213156CD7781AFDD77FEDD77FF212749 +:20054F0000395D543E0021FE69CD7781DD75BBDD74BC3E0021CE6BCD7781DD75B7DD74B88E +:20056F00DD7EBBDDB6BCCA1D46DD4EB7DD46B8DD5EBBDD56BC3E0021B16ACD7781DD6EB7F7 +:20058F00DD66B8232323CB7E2076AFDD77FEDD77FFDD6EBBDD66BC4E2346DD6EFEDD66FF6E +:2005AF00CDD3813037212D0139E5DD4EFEDD46FFDD5EB7DD56B83E00210C6CCD7781E12171 +:2005CF002D0139E5210A84E53E01214647CD7781F1F1DD34FE2003DD34FF18B5211084E5EF +:2005EF003E01214647CD7781F1DD4EB7DD46B8DD5EBBDD56BC3E0021B16ACD7781C38C45D4 +:20060F00DD5EBBDD56BC3E00212856CD7781DD5EB7DD56B83E0021926BCD7781C30A45C371 +:02062F00358113 +:1103150051540053514C3E2000272573272C000A00C8 +:2002EE0053454C20636F6C756D6E312C20636F6C756D6E322C2074657374746573742046EF +:07030E0052207465737400B6 +:20063100CD6B817BB22852210400DD4E02DD4603097E23B62815210400DD4E02DD460309B3 +:200651005E23563E0121504BCD7781DD6E02DD660323237E23B62813DD6E02DD66032323AE +:200671005E23563E00213146CD7781DD5E02DD56033E0121504BCD7781C33581CDB581FC4C +:20069100FFDD6E02DD6603DD75FCDD74FDAFDD77FEDD77FFDD6EFCDD66FD7E23B6281ADDCA +:2006B1006EFCDD66FD46236668DD75FCDD74FDDD34FE2003DD34FF18DBDD6EFEDD66FFC329 +:2006D1003581CDB581FCFFDD6E02DD6603DD75FEDD74FFEB3E00218D46CD778123DD75FCCF +:2006F100DD74FDDD6EFEDD66FF23237E23B6281CDD6EFEDD66FF232346236668DD75FEDDFA +:2007110074FFDD34FC2003DD34FD18D7DD6EFCDD66FDC33581CD6B81DD6E0ADD660B562353 +:20073100666A0956DD6E0CDD660D7E23666F0972DD6E0ADD660B4E234603702B71DD6E0429 +:20075100DD6605097EDDBE022827DD6E0ADD660B46236668DD4E04DD46050956D5DD6E0C11 +:20077100DD660D5E235613722B73696019D17218BFDD6E0ADD660B46236668DD4E04DD46F6 +:20079100050956D5DD6E0CDD660D5E235613722B73696019D172C33581CDB581FAFFAFDD48 +:2007B10077FADD77FBAFDD77FCDD77FDDD36FE20DD6EFADD66FBDD4E02DD4603097EB7CA09 +:2007D100B049DD6EFADD66FBDD4E02DD4603097EFE272812DD6EFADD66FBDD4E02DD46037D +:2007F100097EFE22202821020039E521020039E5DD4E02DD4603DD6EFADD66FBDD5E02DD87 +:200811005603195E3E00212647CD7781E1E1DD7EFEFE20C21049DD6EFADD66FBDD4E02DD85 +:200831004603097EFE2CCA0349DD6EFADD66FBDD4E02DD4603097EFE29CA0349DD6EFADDDB +:2008510066FBDD4E02DD4603097EFE28CA0349DD6EFADD66FBDD4E02DD4603097EFE2BCAC0 +:200871000349DD6EFADD66FBDD4E02DD4603097EFE2D287EDD6EFADD66FBDD4E02DD460317 +:20089100097EFE2A286CDD6EFADD66FBDD4E02DD4603097EFE2F285ADD6EFADD66FBDD4E4A +:2008B10002DD4603097EFE262848DD6EFADD66FBDD4E02DD4603097EFE7C2836DD6EFADD8D +:2008D10066FBDD4E02DD4603097EFE3D2824DD6EFADD66FBDD4E02DD4603097EFE3C281274 +:2008F100DD6EFADD66FBDD4E02DD4603097EFE3E200DDD6EFCDD66FD2BDD75FCDD74FDDDF6 +:200911006EFADD66FBDD4E02DD46030956DD6EFCDD66FD0972DD7EFEFE2C284DDD7EFEFE1D +:20093100202846DD7EFEFE28283FDD7EFEFE2B2838DD7EFEFE2D2831DD7EFEFE2A282ADDC3 +:200951007EFEFE2F2823DD7EFEFE26281CDD7EFEFE7C2815DD7EFEFE3D280EDD7EFEFE3E62 +:200971002807DD7EFEFE3C2012DD6EFADD66FBDD4E02DD4603097EFE202808DD34FC200397 +:20099100DD34FDDD6EFADD66FBDD4E02DD46030946DD70FEDD34FA2003DD34FBC3C147DDE6 +:2009B1007EFEFE202018DD6EFCDD66FD2BDD75FCDD74FDDD4E02DD4603093600180FDD6E02 +:2009D100FCDD66FDDD4E02DD4603093600C33581CDB581FEFFAFDD77FEDD77FFDD6EFEDD45 +:2009F10066FFDD4E02DD4603097EDDBE04281BDD6EFEDD66FFDD4E02DD4603097EB7280A77 +:200A1100DD34FE2003DD34FF18D2DD6EFEDD66FFDD4E02DD4603097EB72811DD6EFEDD66B8 +:200A3100FFDD4E02DD460309DD460A70DD6EFEDD66FFDD4E02DD460309C33581CDB581D674 +:200A5100FFAFDD77D6DD77D7DD36F800DD36F900AFDD77FADD77FB1106003E0121EF56CD96 +:200A71007781DD75FEDD74FFDD75FCDD74FDDD6EFEDD66FFAF772377DD6E0CDD660D4623D6 +:200A91006668DD4E02DD4603097EDDBE0A2007AFDDB6F8CAF94BDD6E0CDD660D46236668AB +:200AB100DD4E02DD4603097EB7CAF94BDD6E0CDD660D46236668DD4E02DD4603095ECD40E1 +:200AD10081040022272829064BFD4AF24AE24AE24AAFDDB6F820043E011801AFDD77F818F1 +:200AF10014AFDDB6F82003DD34F91809AFDDB6F82003DD35F9DD6E0CDD660D46236668DD26 +:200B11004E02DD4603097EDDBE04200CAFDDB6F82006AFDDB6F92821DD6E0CDD660D462308 +:200B31006668DD4E02DD4603094621020039DD5ED6DD56D71970C3E34B21020039DD4ED6E6 +:200B5100DD46D7093600210400DD5EFEDD56FF19E5210400395D543E0121704ACD7781EBE4 +:200B7100133E0121EF56CD7781EBE1732372210200394D44210400DD5EFEDD56FF195E23FC +:200B9100563E0121304CCD7781DD36D6FFDD36D7FFDD6EFEDD66FFDD75FADD74FBDD6EFE10 +:200BB100DD66FF2323E51106003E0121EF56CD77814D44E1712370DD6EFEDD66FF232346A9 +:200BD100236668DD75FEDD74FFDD4EFADD46FB712370DD6E0CDD660D3423200134DD34D6F2 +:200BF1002003DD34D7C3894A21020039DD4ED6DD46D7093600210400DD4EFEDD46FF09E54F +:200C1100210400395D543E0121704ACD7781EB133E0121EF56CD7781EBE173237221020076 +:200C3100394D44210400DD5EFEDD56FF195E23563E0121304CCD7781DD6EFEDD66FF2323E7 +:200C5100AF772377DD6EFCDD66FDC33581CDB581FEFFDD5E02DD56033E0121704ACD778171 +:200C7100EB133E0121EF56CD7781DD75FEDD74FFDD4E02DD4603EB3E0121304CCD7781DD9F +:200C91005EFEDD56FF3E0021AA47CD7781210300E5011284DD5EFEDD56FF3E0021F17ECDFA +:200CB1007781F17DB42011DD5EFEDD56FF3E00214D4DCD7781C34A4D210300E5011684DDD4 +:200CD1005EFEDD56FF3E0021F17ECD7781F17DB42010DD5EFEDD56FF3E0021FA4ECD7781B9 +:200CF1001857210300E5011A84DD5EFEDD56FF3E0021F17ECD7781F17DB42010DD5EFEDD66 +:200D110056FF3E00211550CD7781182D210300E5011E84DD5EFEDD56FF3E0021F17ECD7776 +:200D310081F17DB42010DD5EFEDD56FF3E00214B51CD77811803210000C33581CDB581FCF0 +:200D5100FF1109003E0121EF56CD7781DD75FEDD74FF3673210500DD4EFEDD46FF09AF7716 +:200D7100237721070009AF772377DD36FC03DD36FD00DD6EFCDD66FDDD4E02DD4603097E54 +:200D9100FE202008DD34FC2003DD34FDDD6EFEDD66FF23E521020039E50E20C50E2CDD5E82 +:200DB10002DD56033E00214D4ACD7781F1F14D44E1712370210400E5012284DD6EFCDD669C +:200DD100FDDD5E02DD560319EB3E0021F17ECD7781F17DB4200E210000397EC60477300260 +:200DF10023341806210000C3F74EDD6EFEDD66FF232323E521020039E50E20C50E2CDD5EC2 +:200E110002DD56033E00214D4ACD7781F1F14D44E1712370210300E5012784DD6EFCDD6637 +:200E3100FDDD5E02DD560319EB3E0021F17ECD7781F17DB42051210000397EC603773002BD +:200E51002334DD6EFCDD66FDDD4E02DD4603097EFE202008DD34FC2003DD34FD210500DD42 +:200E71004EFEDD46FF09E521020039E50E20C50E2CDD5E02DD56033E00214D4ACD7781F178 +:200E9100F14D44E1712370210500E5012B84DD6EFCDD66FDDD5E02DD560319EB3E0021F1D1 +:200EB1007ECD7781F17DB42037210000397EC6057730022334210700DD4EFEDD46FF09E561 +:200ED10021020039E50E20C50E2CDD5E02DD56033E00214D4ACD7781F1F14D44E17123700D +:200EF100DD6EFEDD66FFC33581CDB581FCFF1109003E0121EF56CD7781DD75FEDD74FF3685 +:200F110069210500DD4EFEDD46FF09AF772377DD36FC04DD36FD006960232323E5210200C0 +:200F310039E50E28C50E2CDD5E02DD56033E00214D4ACD7781F1F14D44E1712370210100A5 +:200F5100E5013184DD6EFCDD66FDDD5E02DD560319EB3E0021F17ECD7781F17DB4200E21E3 +:200F71000000397EC60177300223341806210000C31250DD6EFEDD66FF23E521020039E5AA +:200F91000E29C50E2CDD5E02DD56033E00214D4ACD7781F1F14D44E1712370210600E50177 +:200FB1003384DD6EFCDD66FDDD5E02DD560319EB3E0021F17ECD7781F17DB420392100003C +:200FD100397EC6067730022334210700DD4EFEDD46FF09E521020039E50E29C50E2CDD5E6A +:200FF10002DD56033E00214D4ACD7781F1F14D44E171237018052100001806DD6EFEDD66AD +:20101100FFC33581CDB581FCFF1109003E0121EF56CD7781DD75FEDD74FF3675210500DD77 +:201031004EFEDD46FF09AF77237721070009AF772377DD36FC04DD36FD006960232323E53D +:2010510021020039E50E20C50E2CDD5E02DD56033E00214D4ACD7781F1F14D44E17123708B +:20107100210400E5013A84DD6EFCDD66FDDD5E02DD560319EB3E0021F17ECD7781F17DB4E3 +:20109100200E210000397EC60477300223341806210000C34851DD6EFEDD66FF23E521021E +:2010B1000039E50E20C50E2CDD5E02DD56033E00214D4ACD7781F1F14D44E171237021032A +:2010D10000E5012784DD6EFCDD66FDDD5E02DD560319EB3E0021F17ECD7781F17DB420514A +:2010F100210000397EC6037730022334DD6EFCDD66FDDD4E02DD4603097EFE202008DD3486 +:20111100FC2003DD34FD210500DD4EFEDD46FF09E521020039E50E20C50E2CDD5E02DD5654 +:20113100033E00214D4ACD7781F1F14D44E1712370DD6EFEDD66FFC33581CDB581FCFF1175 +:2011510009003E0121EF56CD7781DD75FEDD74FF3664210500DD4EFEDD46FF09AF77237797 +:2011710021070009AF772377696023AF772377DD36FC04DD36FD00DD6EFEDD66FF232323AA +:20119100E521020039E50E20C50E2CDD5E02DD56033E00214D4ACD7781F1F14D44E17123D5 +:2011B10070210300E5012784DD6EFCDD66FDDD5E02DD560319EB3E0021F17ECD7781F17DFA +:2011D100B42051210000397EC6037730022334DD6EFCDD66FDDD4E02DD4603097EFE202099 +:2011F10008DD34FC2003DD34FD210500DD4EFEDD46FF09E521020039E50E20C50E2CDD5E90 +:2012110002DD56033E00214D4ACD7781F1F14D44E1712370DD6EFEDD66FFC33581CDB5816B +:20123100F8FF1140003E0121EF56CD7781DD75FEDD74FF013F84EB3E0121304CCD778121DA +:201251000B00DD4E02DD4603094D44DD5EFEDD56FF3E01212647CD7781014284DD5EFEDDAB +:2012710056FF3E01212647CD7781210A00DD4E02DD4603093600214784E5210000E501FFE2 +:20129100FFDD5EFEDD56FF3E0121B747CD7781F1F1DD75F8DD74F9E5210100E5010400DD6C +:2012B1005EFEDD56FF3E0021437DCD7781F1F1DD6EFEDD66FF7EFE542027DD6EFEDD66FF9C +:2012D100237EFE42201BDD6EFEDD66FF23237EFE4C200EDD6EFEDD66FF2323237EFE202862 +:2012F10003C37055DD6EF8DD66F9E5210100E5010400DD5EFEDD56FF3E0021437DCD778193 +:20131100F1F1DD6EFEDD66FF4E0600DD71FADD70FBDD6E02DD6603712370DD6E02DD660341 +:201331002323E5110C00CD1F813E0121EF56CD77814D44E1712370AFDD77FCDD77FDDD4E8C +:20135100FADD46FBDD6EFCDD66FDCDD381D21554DD6EF8DD66F9E5210100E5010800C5DD6B +:201371006E02DD660323235623666A110C00DD4EFCDD46FDCD1F8119EB3E0021437DC1CD95 +:201391007781F1F1DD6E02DD6603232346236668010C00DD5EFCDD56FDCD1F81190108004F +:2013B100093600DD6EF8DD66F9E5210100E5010300C5DD6E02DD660323235623666A110C6A +:2013D10000DD4EFCDD46FDCD1F811901090009EB3E0021437DC1CD7781F1F1DD6EF8DD6624 +:2013F100F9E5210100E5010100DD5EFEDD56FF3E0021437DCD7781F1F1DD34FC2003DD3483 +:20141100FDC34F53013F84DD5EFEDD56FF3E0121304CCD7781210B00DD4E02DD4603094DB4 +:2014310044DD5EFEDD56FF3E01212647CD7781014A84DD5EFEDD56FF3E01212647CD77818E +:20145100210800DD4E02DD460309E5114F84D5110000D501FFFFDD5EFEDD56FF3E0121B7F1 +:2014710047CD7781F1F14D44E1712370210A00DD4E02DD4603093601210800094E2346C58B +:20149100210100E5010400DD5EFEDD56FF3E0021437DCD7781F1F1DD6EFEDD66FF7EFE44B3 +:2014B1002027DD6EFEDD66FF237EFE41201BDD6EFEDD66FF23237EFE54200EDD6EFEDD66D3 +:2014D100FF2323237EFE20281D210A00DD4E02DD4603093600210800095E23563E01216A22 +:2014F10059CD77811879210800DD4E02DD4603095E2356D5210100E5010200210400DD5E91 +:2015110002DD560319EB3E0021437DCD7781F1F1210800DD4E02DD4603095E2356D5210165 +:2015310000E5010200210600DD5E02DD560319EB3E0021437DCD7781F1F1210800DD4E02F8 +:20155100DD4603094E2346C5210100E5010200DD5EFEDD56FF3E0021437DCD7781F1F1DDB7 +:201571005EF8DD56F93E01216A59CD7781DD5EFEDD56FF3E0121504BCD7781C33581CD6B14 +:2015910081210800195E23563E01216A59CD7781DD6E02DD660323235E23563E0121504B0D +:2015B100CD7781DD5E02DD56033E0121504BCD7781AFDD7702DD7703C33581CD6B8113EB96 +:2015D1005E23563E00213146CD7781DD6E02DD66032323235E23563E00213146CD778121F9 +:2015F1000500DD4E02DD4603095E23563E00213146CD7781210700095E23563E0021314629 +:20161100CD778159503E0121504BCD7781AFDD7702DD7703C33581CD6B81210800195E233A +:20163100563E01216A59CD7781DD6E02DD660323235E23563E0121504BCD7781DD5E02DDD1 +:2016510056033E0121504BCD7781AFDD7702DD7703C33581CDB581FCFFAFDD77FEDD77FF39 +:20167100AFDD77FCDD77FDDD4E04DD4605DD6EFCDD66FDCDD3813035DD6E02DD66032323CC +:2016910046236668010C00DD5EFCDD56FDCD1F8119010A00094E0600210200397E817723AB +:2016B1007E8877DD34FC2003DD34FD18BA210200397EC6027730022334DD6EFEDD66FFC39C +:2016D1003581CD6B811A4F131A47DD5E02DD56033E00216556CD7781C33581CDB581FEFFE2 +:2016F100AFDD77FEDD77FFDD6E02DD66034E2346DD6EFEDD66FFCDD3813040DD4E04DD46CD +:2017110005C5DD6E02DD660323235623666A110C00DD4EFEDD46FFCD1F8119EB3E0121A7EC +:201731004AC1CD77817DB42008DD6EFEDD66FF180DDD34FE2003DD34FF18AC21FFFFC335A2 +:2017510081CDB581DEFF110A003E0121EF56CD7781DD75DEDD74DF1114003E0121EF56CD9B +:201771007781DD75E0DD74E1AFDD77FADD77FB3E0021CE6BCD7781DD75FCDD74FDDD6E026A +:20179100DD660323232346236668010400094E2346210B00DD5EE0DD56E119EB3E0121309E +:2017B1004CCD7781DD5EE0DD56E13E00212E52CD7781210400DD4EDEDD46DF09AF7723773B +:2017D10021060009AF772377015384DD6E02DD6603235623666A110400195E23563E0121CC +:2017F100A74ACD77817DB4C24059DD6EE0DD66E146236668E5DD6EDEDD66DFC1712370DD3E +:201811006EDEDD66DF4623666829EB3E0121EF56CD7781DD75E6DD74E7DD6EDEDD66DF4693 +:2018310023666829EB3E0121EF56CD7781DD75E8DD74E9DD6EDEDD66DF2323E5DD6EDEDD38 +:2018510066DF4E2346110C00CD1F813E0121EF56CD77814D44E1712370AFDD77F0DD77F1D9 +:20187100DD6EDEDD66DF4E2346DD6EF0DD66F1CDD381D23D59DD6EE0DD66E12323462366F9 +:2018910068010C00DD5EF0DD56F1CD1F8119DD75E2DD74E3DD6EF0DD66F129DD4EE6DD46B9 +:2018B100E709E5DD4EF0DD46F1DD5EE0DD56E13E00216556CD77814D44E1712370DD6EF054 +:2018D100DD66F129DD4EE8DD46E909E5210A00DD4EE2DD46E3094E0600E1712370210C00E0 +:2018F100E5DD6EE0DD66E1232346236668010C00DD5EF0DD56F1CD1F81194D44C5DD6EDEC5 +:20191100DD66DF23235623666A110C00DD4EF0DD46F1CD1F8119EB3E01213242C1CD7781EE +:20193100F1DD34F02003DD34F1C37158C3CF5ADD6E02DD6603235E23563E0021D346CD77BE +:2019510081E5DD6EDEDD66DFC1712370DD6EDEDD66DF4623666829EB3E0121EF56CD778100 +:20197100DD75E6DD74E7DD6EDEDD66DF4623666829EB3E0121EF56CD7781DD75E8DD74E972 +:20199100DD6EDEDD66DF2323E5DD6EDEDD66DF4E2346110C00CD1F813E0121EF56CD7781CA +:2019B1004D44E1712370DD6E02DD66032346236668DD75E4DD74E5AFDD77F0DD77F1DD6EC4 +:2019D100DEDD66DF4E2346DD6EF0DD66F1CDD381D2CF5A210400DD4EE4DD46E5094E2346B8 +:2019F100DD5EE0DD56E13E0021EC56CD7781DD75FEDD74FFDD4EE0DD46E103030A6F030A06 +:201A110067010C00DD5EFEDD56FFCD1F8119DD75E2DD74E3DD6EF0DD66F129DD4EE6DD461C +:201A3100E709E5DD4EFEDD46FFDD5EE0DD56E13E00216556CD77814D44E1712370DD6EF0B6 +:201A5100DD66F129DD4EE8DD46E909E5210A00DD4EE2DD46E3094E0600E1712370210C005E +:201A7100E5DD6EE0DD66E1232346236668010C00DD5EFEDD56FFCD1F81194D44C5DD6EDE27 +:201A9100DD66DF23235623666A110C00DD4EF0DD46F1CD1F8119EB3E01213242C1CD77816D +:201AB100F1DD6EE4DD66E5232346236668DD75E4DD74E5DD34F02003DD34F1C3CF59DD5E98 +:201AD100E0DD56E13E0021D356CD7781DD75F6DD74F7EB3E0121EF56CD7781DD75EADD7442 +:201AF100EBDD5EDEDD56DF3E0021D356CD7781DD75F4DD74F5EB3E0121EF56CD7781DD753F +:201B1100ECDD74EDDD6EE0DD66E1E5DD6EFCDD66FDC1712370DD6EFCDD66FD2323AF7723F4 +:201B310077210400DD4EFCDD46FD09DD4EEADD46EB712370210800DD4EDEDD46DF09E5015E +:201B51005E84C5010000C501FFFF1157843E0121B747CD7781F1F14D44E17123702105007B +:201B7100DD4E02DD4603097E23B6282B211C00394D44210500DD5E02DD5603195623666A4C +:201B9100110400195E23563E00212A6FCD7781DD75F8DD74F91817211C00394D4411000097 +:201BB1003E00212A6FCD7781DD75F8DD74F9AFDD77F0DD77F1210400DD4EE0DD46E1094E00 +:201BD1002346DD6EF0DD66F1CDD381D2175D210800DD4EE0DD46E1094E2346C5210100E5F1 +:201BF100DD4EF6DD46F7DD5EEADD56EB3E0021437DCD7781F1F1DD6EEADD66EB4605C20C14 +:201C11005DDD6EECDD66ED3601DD6EECDD66ED233600DD36EE02DD36EF00AFDD77F2DD77AA +:201C3100F3DD6EDEDD66DF4E2346DD6EF2DD66F3CDD381306ADD6EF2DD66F329DD4EE8DDE4 +:201C510046E9095E2356D5DD6EF2DD66F329DD5EE6DD56E7195623666ADD5EEADD56EB19FA +:201C71004D44DD6EEEDD66EFDD5EECDD56ED19EB3E01213242CD7781F1DD6EF2DD66F329E6 +:201C9100DD4EE8DD46E9094E2346211000397E8177237E8877DD34F22003DD34F31882DD33 +:201CB1004EFCDD46FDDD5EF8DD56F93E00218375CD7781212400DD4EF8DD46F9093E01AEB4 +:201CD10023B62037210800DD4EDEDD46DF095E2356D5210100E5DD4EF4DD46F5DD5EECDD98 +:201CF10056ED3E01210A45CD7781F1F1210400DD4EDEDD46DF093423200134DD34F0200331 +:201D1100DD34F1C3C65BDD5EEADD56EB3E0121504BCD7781DD5EE6DD56E73E0121504BCDC6 +:201D31007781DD5EE8DD56E93E0121504BCD7781DD5EFCDD56FD3E0121504BCD7781DD5E39 +:201D5100F8DD56F93E00214675CD7781DD5EE0DD56E13E00218F55CD7781210800DD4EDE06 +:201D7100DD46DF095E23563E01216A59CD778121080009E5114F84D5110000D501FFFF11C2 +:201D910057843E0121B747CD7781F1F14D44E1712370DD6EDEDD66DFC33581CDB581E8FF2E +:201DB1001114003E0121EF56CD7781DD75E8DD74E9DD4E02DD46030303030A6F030A6701C5 +:201DD1000400094E2346210B00DD5EE8DD56E919EB3E0121304CCD7781DD5EE8DD56E93EA1 +:201DF10000212E52CD7781DD5EE8DD56E93E0021D356CD7781DD75FCDD74FDEB3E0121EF0A +:201E110056CD7781DD75EADD74EBAFDD77F6DD77F7DD4EFCDD46FDDD6EF6DD66F7CDD381F7 +:201E31003019DD6EF6DD66F7DD4EEADD46EB093600DD34F62003DD34F718D6DD5EFCDD56E1 +:201E5100FD3E0121EF56CD7781DD75ECDD74EDDD6EEADD66EB3601233600DD6E02DD660308 +:201E7100235E23563E0021D346CD7781DD75F4DD74F5DD6E02DD66032346236668DD75EE61 +:201E9100DD74EF210700DD4E02DD46030946236668DD75F0DD74F1AFDD77F6DD77F7DD4E43 +:201EB100F4DD46F5DD6EF6DD66F7CDD381D2CB60210400DD4EEEDD46EF094E2346DD5EE839 +:201ED100DD56E93E0021EC56CD7781DD75FEDD74FFDD4EE8DD46E903030A6F030A67010CB0 +:201EF10000DD5EFEDD56FFCD1F8119DD75F2DD74F3DD4EFEDD46FFDD5EE8DD56E93E00216F +:201F11006556CD7781DD75F8DD74F9210A00DD4EF2DD46F3094E0600DD71FADD70FB21042C +:201F310000DD4EF0DD46F1097E23666F7EFE27C21C60210400DD4EF0DD46F1095E23563E8F +:201F51000121704ACD7781E5210400094E2346E1092B3600210900DD4EF2DD46F3097EFED8 +:201F710053202EDD6EFADD66FBE5210400DD4EF0DD46F1094E234603DD6EF8DD66F9DD5E76 +:201F9100EADD56EB19EB3E01213242CD7781F11877FE492073210A00DD4EF2DD46F3094684 +:201FB1000505202CDD6EF8DD66F9DD4EEADD46EB09E5210400DD4EF0DD46F1095E235613E3 +:201FD1003E0121574CCD77814D44E17123701838210A00DD4EF2DD46F3097EFE042029DD55 +:201FF1006EF8DD66F9DD4EEADD46EB09E5210400DD4EF0DD46F1095E2356133E01218D5594 +:20201100CD7781EBE1732372C39C60210900DD4EF2DD46F3097EFE492071210A00DD4EF253 +:20203100DD46F309460505202BDD6EF8DD66F9DD4EEADD46EB09E5210400DD4EF0DD46F1F1 +:20205100095E23563E0121574CCD77814D44E17123701837210A00DD4EF2DD46F3097EFE1F +:20207100042028DD6EF8DD66F9DD4EEADD46EB09E5210400DD4EF0DD46F1095E23563E0100 +:20209100218D55CD7781EBE1732372DD6EEEDD66EF232346236668DD75EEDD74EFDD6EF0F0 +:2020B100DD66F1232346236668DD75F0DD74F1DD34F62003DD34F7C3AF5E210600DD4EE89E +:2020D100DD46E9097E23B6207E210000E5210000E5210400E5210800DD4EE8DD46E9095E20 +:2020F10023563E0121B442CD7781F1F1F1210400095623666A23E5DD6EECDD66EDD173231B +:2021110072210800095E2356D5210100E5010200DD5EECDD56ED3E01210A45CD7781F1F1B7 +:20213100210200E5210000E5210000E5210800DD4EE8DD46E9095E23563E0121B442CD77B8 +:2021510081F1F1F1C34162210000E5210000E5210600E5210800DD4EE8DD46E9095E235674 +:202171003E0121B442CD7781F1F1F1210600095623666A2BE5DD6EECDD66EDD17323722176 +:202191000800095E2356D5210100E5010200DD5EECDD56ED3E01210A45CD7781F1F12100A9 +:2021B10000E5210000E5210A00E5210800DD4EE8DD46E9095E23563E0121B442CD7781F1DF +:2021D100F1F1DD6EECDD66ED36FF2336FFDD6EECDD66EDAFB6282A210800DD4EE8DD46E9B2 +:2021F100094E2346C5210100E5DD4EFCDD46FDDD5EECDD56ED3E0021437DCD7781F1F118D6 +:20221100CC210100E5DD4EFCDD46FDA7210000ED427C079F4F41C5E5210800DD4EE8DD46E1 +:20223100E9095E23563E0121B442CD7781F1F1F1210800DD4EE8DD46E9095E2356D52101B7 +:2022510000E5DD4EFCDD46FDDD5EEADD56EB3E01210A45CD7781F1F1DD5EEADD56EB3E0126 +:2022710021504BCD7781DD5EECDD56ED3E0121504BCD7781DD5EE8DD56E93E00218F55CD76 +:202291007781210000C33581CDB581F2FF1114003E0121EF56CD7781DD75F2DD74F3DD4E65 +:2022B10002DD46030303030A6F030A67010400094E2346210B00DD5EF2DD56F319EB3E0168 +:2022D10021304CCD7781DD5EF2DD56F33E00212E52CD7781DD5EF2DD56F33E0021D356CDEC +:2022F1007781DD75F8DD74F9EB3E0121EF56CD7781DD75F4DD74F5AFDD77F6DD77F72105F6 +:2023110000DD4E02DD4603097E23B6282B210400394D44210500DD5E02DD56031956236626 +:202331006A110400195E23563E00212A6FCD7781DD75FCDD74FD1817210400394D44110095 +:20235100003E00212A6FCD7781DD75FCDD74FD3E0021CE6BCD7781DD75FEDD74FFDD4EF2F9 +:20237100DD46F3712370210400DD4EFEDD46FF09DD5EF4DD56F573237269602323AF772302 +:2023910077AFDD77FADD77FBAFDD77F6DD77F7210400DD4EF2DD46F3094E2346DD6EF6DDEF +:2023B10066F7CDD381D2B064210800DD4EF2DD46F3094E2346C5210100E5DD4EF8DD46F981 +:2023D100210400DD5EFEDD56FF195E23563E0021437DCD7781F1F1DD6EF4DD66F54605C222 +:2023F100A564DD4EFEDD46FFDD5EFCDD56FD3E00218375CD7781212400DD4EFCDD46FD0960 +:202411003E01AE23B6C2A564DD6EF4DD66F53600210100E5DD4EF8DD46F9A7210000ED4230 +:202431007C079F4F41C5E5210800DD4EF2DD46F3095E23563E0121B442CD7781F1F1F121E4 +:202451000800095E2356D5210100E5DD4EF8DD46F9210400DD5EFEDD56FF195E23563E01A9 +:20247100210A45CD7781F1F1210100E5210000E5210000E5210800DD4EF2DD46F3095E233B +:20249100563E0121B442CD7781F1F1F1DD34FA2003DD34FBDD34F62003DD34F7C3A063DDD8 +:2024B1005EFEDD56FF3E0021926BCD7781210000E5210000E5210600E5210800DD4EF2DD21 +:2024D10046F3095E23563E0121B442CD7781F1F1F1210600095E2356210800397E837723E0 +:2024F1007E8A77210800095E2356D5210100E5010200210C00395D543E01210A45CD7781D9 +:20251100F1F1DD5EFCDD56FD3E00214675CD7781DD5EF2DD56F33E00218F55CD7781210006 +:2025310000C33581CDB581E6FF1114003E0121EF56CD7781DD75E6DD74E7DD4E02DD4603D7 +:202551000303030A6F030A67010400094E2346210B00DD5EE6DD56E719EB3E0121304CCD9B +:202571007781DD5EE6DD56E73E00212E52CD7781DD5EE6DD56E73E0021D356CD7781DD7599 +:20259100F2DD74F3EB3E0121EF56CD7781DD75E8DD74E9AFDD77EADD77EB210500DD4E02AC +:2025B100DD4603097E23B6282B210400394D44210500DD5E02DD5603195623666A11040032 +:2025D100195E23563E00212A6FCD7781DD75F6DD74F71817210400394D441100003E00211F +:2025F1002A6FCD7781DD75F6DD74F73E0021CE6BCD7781DD75FADD74FBDD4EE6DD46E7715B +:202611002370210400DD4EFADD46FB09DD5EE8DD56E973237269602323AF772377DD6E0242 +:20263100DD6603235E23563E0021D346CD7781DD75F4DD74F529EB3E0121EF56CD7781DD25 +:2026510075F8DD74F9DD6E02DD66032346236668DD75FCDD74FDAFDD77ECDD77EDDD4EF4DA +:20267100DD46F5DD6EECDD66EDCDD381306E0E00C50E3D210400DD5EFCDD56FD195E235671 +:202691003E0021E149CD7781F1DD75FEDD74FFAFDD77F0DD77F1DD6EECDD66ED29DD4EF85F +:2026B100DD46F909E5210C00394D44DD5EFEDD56FF133E00212A6FCD77814D44E171237057 +:2026D100DD6EFCDD66FD232346236668DD75FCDD74FDDD34EC2003DD34ED1881AFDD77EAA5 +:2026F100DD77EB210400DD4EE6DD46E7094E2346DD6EEADD66EBCDD381D29369210800DD32 +:202711004EE6DD46E7094E2346C5210100E5DD4EF2DD46F3210400DD5EFADD56FB195E2389 +:20273100563E0021437DCD7781F1F1DD6EE8DD66E94605C28869DD4EFADD46FBDD5EF6DDBE +:2027510056F73E00218375CD7781212400DD4EF6DD46F7093E01AE23B6C28869210100E5F6 +:20277100DD4EF2DD46F3A7210000ED427C079F4F41C5E5210800DD4EE6DD46E7095E23569E +:202791003E0121B442CD7781F1F1F1AFDD77ECDD77EDDD4EF4DD46F5DD6EECDD66EDCDD3CC +:2027B100813029DD4EFADD46FBDD6EECDD66ED29DD5EF8DD56F9195E23563E00218375CDE8 +:2027D1007781DD34EC2003DD34ED18C6DD6E02DD66032346236668DD75FCDD74FDAFDD7768 +:2027F100ECDD77EDDD4EF4DD46F5DD6EECDD66EDCDD381D23569210400DD4EFCDD46FD09F7 +:202811004E2346DD5EE6DD56E73E0021EC56CD7781DD75EEDD74EF4D44DD5EE6DD56E73EC5 +:2028310000216556CD7781DD75F0DD74F1DD6EE6DD66E7232346236668010C00DD5EEEDD77 +:2028510056EFCD1F8119010900097EFE53205ADD6EE6DD66E7232346236668010C00DD5E20 +:20287100EEDD56EFCD1F8119010A00094E0600C5DD6EECDD66ED29DD4EF8DD46F909462343 +:202891006668012600094D44210400DD5EFADD56FB195623666ADD5EF0DD56F119EB3E011C +:2028B100213242CD7781F1185EFE49205ADD6EE6DD66E7232346236668010C00DD5EEEDD9A +:2028D10056EFCD1F8119010A00094E0600C5DD6EECDD66ED29DD4EF8DD46F90946236668E0 +:2028F100012400094D44210400DD5EFADD56FB195623666ADD5EF0DD56F119EB3E01213239 +:2029110042CD7781F11800DD6EFCDD66FD232346236668DD75FCDD74FDDD34EC2003DD34C5 +:20293100EDC3F567210800DD4EE6DD46E7095E2356D5210100E5DD4EF2DD46F3210400DD45 +:202951005EFADD56FB195E23563E01210A45CD7781F1F1210100E5210000E5210000E52166 +:202971000800DD4EE6DD46E7095E23563E0121B442CD7781F1F1F1DD34EA2003DD34EBC378 +:20299100F466DD5EFADD56FB3E0021926BCD7781AFDD77ECDD77EDDD4EF4DD46F5DD6EECAA +:2029B100DD66EDCDD3813023DD6EECDD66ED29DD4EF8DD46F9095E23563E00214675CD7755 +:2029D10081DD34EC2003DD34ED18CCDD5EF8DD56F93E0121504BCD7781DD5EE6DD56E73ECB +:2029F10000218F55CD7781210000C33581CDB581FCFFAFDD77FEDD77FFDD5E02DD56033E5F +:202A110000215E4CCD7781DD75FCDD74FD7DB42006210000C3AE6ADD6EFCDD66FD5ECD4034 +:202A3100810400646973759A6A846A426A586A6E6ADD5EFCDD56FD3E00215257CD7781DD02 +:202A510075FEDD74FF1842DD5EFCDD56FD3E0021AC5DCD7781DD75FEDD74FF182CDD5EFC99 +:202A7100DD56FD3E00219962CD7781DD75FEDD74FF1816DD5EFCDD56FD3E00213565CD7784 +:202A910081DD75FEDD74FF1800DD5EFCDD56FD3E0021CC55CD7781DD6EFEDD66FFC335813C +:202AB100CDB581FEFFDD5E02DD56033E0021D356CD7781DD75FEDD74FF210400097E23B620 +:202AD100201F210400DD4E04DD460509E5DD5EFEDD56FF3E0121EF56CD77814D44E1712361 +:202AF10070210400DD4E02DD4603094E2346210600DD5E02DD5603195623666ACDD38138C8 +:202B11002CDD6E04DD6605232336FF2336FF210400DD4E04DD4605095E23563E0121504BB7 +:202B3100CD778121040009AF7723771851DD6E04DD66052323E5210600DD4E02DD46030923 +:202B51005E235613722B731BE1732372DD6E04DD6605712370210800094E2346C5210100FB +:202B7100E5DD4EFEDD46FF210400DD5E04DD5605195E23563E0021437DCD7781F1F1C335CA +:202B910081CD6B817BB22832210400DD4E02DD4603097E23B62815210400DD4E02DD4603D6 +:202BB100095E23563E0121504BCD7781DD5E02DD56033E0121504BCD7781C33581CDB581B5 +:202BD100FEFF1106003E0121EF56CD7781DD75FEDD74FF01040009AF772377DD6EFEDD666C +:202BF100FFAF772377DD6EFEDD66FF232336FF2336FFDD6EFEDD66FFC33581CDB581FAFFA7 +:202C1100210400DD5E02DD5603197E23666FDD75FEDD74FFEB5E23563E00216556CD77813B +:202C3100DD75FADD74FBAFDD77FCDD77FDDD6E02DD660346236668232346236668010C0047 +:202C5100DD5E04DD5605CD1F8119010900097EFE532020DD6EFADD66FBDD4EFEDD46FF096D +:202C71004D44DD5E0ADD560B3E0121304CCD7781C3266DFE49C2266DDD6E02DD66034623A0 +:202C91006668232346236668010C00DD5E04DD5605CD1F8119010A00094605052025210AFA +:202CB10000E5DD4E0ADD460BDD6EFADD66FBDD5EFEDD56FF195E23563E0121014ECD778169 +:202CD100F11850DD6E02DD660346236668232346236668010C00DD5E04DD5605CD1F811939 +:202CF100010A00097EFE04202A210A00E5DD6E0ADD660BE5DD6EFADD66FBDD4EFEDD46FF7F +:202D1100095E23567A079F4F413E0121A355CD7781F1F11800C33581CDB581FCFF2104005F +:202D3100DD5E02DD5603197E23666FDD75FEDD74FFEB5E23563E00216556CD7781DD75FCF1 +:202D5100DD74FDDD6E02DD660346236668232346236668010C00DD5E04DD5605CD1F8119C3 +:202D7100010900097EFE532018DD6EFCDD66FDDD4EFEDD46FF09EB3E0121574CCD77811882 +:202D91001AFE492013DD6EFCDD66FDDD4EFEDD46FF09462366681803210000C33581CDB545 +:202DB10081FCFF210400DD5E02DD5603197E23666FDD75FEDD74FFEB5E23563E00216556E3 +:202DD100CD7781DD75FCDD74FDDD6E02DD660346236668232346236668010C00DD5E04DD11 +:202DF1005605CD1F8119010900097EFE532018DD6EFCDD66FDDD4EFEDD46FF09EB3E0121A1 +:202E11008D55CD77811853FE49204CDD6E02DD660346236668232346236668010C00DD5E4D +:202E310004DD5605CD1F8119010A00094605052013DD6EFCDD66FDDD4EFEDD46FF094623E4 +:202E510066681816DD6EFCDD66FDDD4EFEDD46FF09462366681803210000C33581CD6B81E5 +:202E7100CD40811000002628292A2B2D2F3B3C3D3E5B5D5E7CC46EBC6EAC6EB86EB86EB87D +:202E91006EB86EB86EC06EB06EB46EB46EB06EC06EA86EBC6EC06E2E01181A2E0218162E30 +:202EB1000318122E04180E2E05180A2E0618062E3F18022E00C33581CDB581FEFF114C004A +:202ED1003E0121EF56CD7781DD75FEDD74FF2323233600214600DD5EFEDD56FF19AF772304 +:202EF1007721480019AF772377EB23233600214A00DD5EFEDD56FF19DD4E02DD46037123CB +:202F110070DD4604EB70212400DD4EFEDD46FF09AF7723776960C33581CDB581B2FFAFDDD3 +:202F310077B6DD77B7AFDD77FCDD77FDDD7E02DDB603202A0E011100003E0021C96ECD77C1 +:202F510081DD75B2DD74B3010400093631210500DD4EB2DD46B30936006960C34375AFDD7A +:202F710077FADD77FB014080DD6EFADD66FB3E80AC67ED42301621060039DD4EFADD46FB53 +:202F910009360003DD71FADD70FB18D90E031100003E0021C96ECD7781DD75B2DD74B3DDFB +:202FB10075B4DD74B5AFDD77B6DD77B7DD6E04DD660546236668DD4E02DD4603095E3E0047 +:202FD100216E6ECD77812600DD75F8DD74F97DB42021DD6E04DD660546236668DD4E02DD1A +:202FF1004603094621060039DD5EFCDD56FD1970C3CE743E01DDAEF8DDB6F92066DD6E04B0 +:20301100DD660546236668DD4E02DD4603097EFE292008DD36F83FDD36F900DD6E04DD660F +:203031000546236668DD4E02DD4603097EFE28202FAFDD77FCDD77FDDD6E04DD66053423B6 +:20305100200134DD4E04DD4605DD5E02DD56033E00212A6FCD7781DD75B6DD74B7C3BD6F84 +:20307100C3CE7421060039DD4EFCDD46FD093600214600DD4EB4DD46B5097E23B6207DDD5C +:203091007EB6DDB6B72044214600DD4EB4DD46B509E50E01DD5EB4DD56B53E0021C96ECDE8 +:2030B10077814D44E1712370210600394D44214600DD5EB4DD56B5195623666A11040019D2 +:2030D100EB3E0121304CCD77811813214600DD4EB4DD46B509DD4EB6DD46B7712370DD6EF7 +:2030F10004DD660546236668DD4E02DD46030946DD6EB4DD66B5232370C3C674DD6EB4DD14 +:2031110066B523235E3E00216E6ECD77814D0600DD6EF8DD66F9CDD381D20272214800DD60 +:203131004EB4DD46B509E50E03DD5EB4DD56B53E0021C96ECD77814D44E1712370DD7EB6EC +:20315100DDB6B7205B214800DD4EB4DD46B5095623666A11460019E50E01214800DD5EB46B +:20317100DD56B5195E23563E0021C96ECD77814D44E1712370210600394D44214800DD5E00 +:20319100B4DD56B5195623666A114600195623666A11040019EB3E0121304CCD7781181B7A +:2031B100214800DD4EB4DD46B5094623666801460009DD4EB6DD46B7712370214800DD4EFB +:2031D100B4DD46B5095623666A2323E5DD6E04DD66055623666ADD5E02DD56031956E172C0 +:2031F100214800095623666ADD75B4DD74B5C3C6743E3FDDAEF8DDB6F92062DD7EB6DDB648 +:20321100B72044214800DD4EB4DD46B509E50E01DD5EB4DD56B53E0021C96ECD77814D44A2 +:20323100E1712370210600394D44214800DD5EB4DD56B5195623666A11040019EB3E01218C +:20325100304CCD77811813214800DD4EB4DD46B509DD4EB6DD46B7712370C3C674DD6EB40D +:20327100DD66B523235E3E00216E6ECD77814D0600DD6EF8DD66F9CDD381DAC674DD7EB689 +:20329100DDB6B72044214800DD4EB4DD46B509E50E01DD5EB4DD56B53E0021C96ECD778120 +:2032B1004D44E1712370210600394D44214800DD5EB4DD56B5195623666A11040019EB3E9D +:2032D1000121304CCD77811813214800DD4EB4DD46B509DD4EB6DD46B7712370DD6EB4DD8B +:2032F10066B523235E3E00216E6ECD77814D0600DD6EF8DD66F9CDD3813825214A00DD4E18 +:20331100B4DD46B5097E23B62816214A00DD4EB4DD46B5095623666ADD75B4DD74B518BC1E +:20333100214A00DD4EB4DD46B5097E23B62069DD6EB4DD66B523235E3E00216E6ECD7781D6 +:203351004D0600DD6EF8DD66F9CDD381384A0E031100003E0021C96ECD7781DD75B2DD7415 +:20337100B301460009DD4EB4DD46B5712370DD6E04DD66055623666ADD5E02DD56031956BC +:20339100DD6EB2DD66B3232372DD6EB2DD66B3DD75B4DD74B5C3C674214A00DD4EB4DD4608 +:2033B100B5097E23B6C24974DD6EB4DD66B523235E3E00216E6ECD77814D0600DD6EF8DD5A +:2033D10066F9CDD38130710E03DD5EB4DD56B53E0021C96ECD7781DD75FEDD74FF01460091 +:2033F10009E5214800DD4EB4DD46B5095E2356E1732372DD6E04DD66055623666ADD5E02C8 +:20341100DD56031956DD6EFEDD66FF232372214600DD5EFEDD56FF197E23666F014A0009FE +:20343100732372214800DD4EB4DD46B509732372DD73B4DD72B5187D214A00DD4EB4DD4638 +:20345100B5095623666ADD75FEDD74FF11480019E50E03DD5EFEDD56FF3E0021C96ECD7707 +:20347100814D44E1712370214800DD4EFEDD46FF095623666A11460019DD5EB4DD56B57384 +:203491002372214800097E23666F2323E5DD6E04DD66057E23666FDD4E02DD46030946E1E3 +:2034B10070214800DD4EFEDD46FF0946236668DD75B4DD74B5DD36FCFFDD36FDFFDD34FC61 +:2034D1002003DD34FDDD6E04DD66053423200134013F80DD6EF8DD66F93E80AC67ED42DA4E +:2034F100B66F214800DD4EB2DD46B3097E23B6203BDD6EB2DD66B37EFE032030DD6EB2DD23 +:2035110066B3DD75B4DD74B5214600DD4EB2DD46B3095623666ADD75B2DD74B3DD5EB4DD35 +:2035310056B53E0121504BCD778118B6DD6EB2DD66B3C33581CD6B811AFE032024214600F6 +:20355100DD4E02DD4603095E23563E00214675CD7781214800095E23563E00214675CD77A1 +:2035710081DD5E02DD56033E0121504BCD7781C33581CDB581FAFFDD6E02DD66037EFE03FF +:20359100C2867BDD4E04DD4605214600DD5E02DD5603195E23563E00218375CD7781DD4EEF +:2035B10004DD4605214800DD5E02DD5603195E23563E00218375CD7781DD6E02DD66032330 +:2035D100235E3E00216E6ECD77817DFE05D20377214600DD4E02DD4603094623666823462A +:2035F10005C20077214800DD4E02DD46030946236668234605C20077DD6E02DD66032336ED +:2036110001DD6E02DD660323235ECD408104002A2B2D2FED76BE765F762E768F76214800A0 +:20363100DD4E02DD4603095623666A112400195623666AE521460009462366680124000983 +:203651004E2346E109DD75FADD74FBC3ED76214800DD4E02DD4603095623666A112400199E +:203671005E235621460009462366680124000946236668A7ED52DD75FADD74FB185E2146FB +:2036910000DD4E02DD4603095623666A112400195E23562148000946236668012400094E2A +:2036B1002346CD1F81DD73FADD72FB182F214600DD4E02DD4603095623666A112400195E90 +:2036D10023562148000946236668012400094E2346CD0082DD73FADD72FB1800212400DDB5 +:2036F1004E02DD460309DD4EFADD46FB712370C3837B214600DD4E02DD4603094623666838 +:20371100237EFE03CA1C79214800DD4E02DD46030946236668237EFE03CA1C79DD6E02DD70 +:203731006603233604DD6E02DD660323235ECD40810700263C3D3E5B5D7C1C79E378677806 +:203751002378DF775B779B77AA78212400DD4E02DD460309E5214600095623666A112400ED +:20377100195623666AE52148000946236668012400094E2346E1A7ED42200511010018035A +:20379100110000E1732372C31C79212400DD4E02DD460309E5214800095623666A11240050 +:2037B100194E2346214600DD5E02DD5603195623666A112400195623666ACDD381300511EE +:2037D10001001803110000E1732372C31C79212400DD4E02DD460309E52146000956236695 +:2037F1006A112400194E2346214800DD5E02DD5603195623666A112400195623666ACDD3D4 +:203811008130051101001803110000E1732372C31C79212400DD4E02DD460309E521460075 +:20383100095623666A112400194E2346214800DD5E02DD5603195623666A1124001956231B +:20385100666ACDD38138051101001803110000E1732372C31C79212400DD4E02DD46030909 +:20387100E5214800095623666A112400194E2346214600DD5E02DD5603195623666A112421 +:2038910000195623666ACDD38138051101001803110000E17323721872212400DD4E02DD57 +:2038B100460309E5214600095623666A11240019E5214800094623666801240009C1E569EE +:2038D100604E2346E179A65F7823A657E17323721839212400DD4E02DD460309E5214600A2 +:2038F100095623666A11240019E5214800094623666801240009C1E569604E2346E179B625 +:203911005F7823B657E17323721800214600DD4E02DD46030946236668237EFE03C2CD7AE9 +:20393100214800DD4E02DD46030946236668237EFE03C2CD7A214800DD4E02DD46030956B4 +:2039510023666A112600194D44214600DD5E02DD5603197E23666F11260019EB3E0121A7D7 +:203971004ACD7781DD75FADD74FBDD6E02DD660323235ECD408106002B3C3D3E5B5DCD7AE3 +:203991004E7A1E7AED799D79C679747ADD6E02DD6603233604212400DD4E02DD460309DD9F +:2039B1007EFADDB6FB20051101001803110000732372C3CD7ADD6E02DD6603233604212446 +:2039D10000DD4E02DD460309DDCBFB7E28051101001803110000732372C3CD7ADD6E02DDB2 +:2039F1006603233604212400DD4E02DD460309E5DD4EFADD46FB210000CDD381300511019E +:203A1100001803110000E1732372C3CD7ADD6E02DD6603233604212400DD4E02DD460309E5 +:203A3100E5DD4EFADD46FB210000CDD38138051101001803110000E1732372187FDD6E02C3 +:203A5100DD6603233604212400DD4E02DD460309DDCBFB7E200511010018031100007323F7 +:203A7100721859DD6E02DD6603233603214600DD4E02DD4603095623666A112600194D4476 +:203A9100212600DD5E02DD560319EB3E0121304CCD7781214800DD4E02DD46030956236612 +:203AB1006A112600194D44212600DD5E02DD560319EB3E01212647CD77811800214600DDFE +:203AD1004E02DD46030946236668237EFE04C2837B214800DD4E02DD46030946236668239D +:203AF1007EFE04C2837BDD6E02DD6603233604DD6E02DD660323237EFE262039212400DD8F +:203B11004E02DD460309E5214600095623666A11240019E52148000946236668012400096D +:203B3100C1E569604E2346E179A65F7823A657E1732372183DFE7C2039212400DD4E02DDF7 +:203B5100460309E5214600095623666A11240019E5214800094623666801240009C1E5694B +:203B7100604E2346E179B65F7823B657E17323721800C3407DDD36FEFFDD36FFFFDD7E0405 +:203B9100DDB605287ADD6E04DD66057E23666F46236668DD75FCDD74FDAFDD77FADD77FBAE +:203BB100DD4EFCDD46FDDD6EFADD66FBCDD381304E210400DD4E02DD4603094D44C5DD6E69 +:203BD10004DD66055623666A23235623666A110C00DD4EFADD46FBCD1F8119EB3E0121A7D8 +:203BF1004AC1CD77817DB4200CDD6EFADD66FBDD75FEDD74FFDD34FA2003DD34FB18A1DD94 +:203C1100CBFF7E2008DD7E04DDB605207D210400DD4E02DD4603097EFE272045DD6E02DDDC +:203C31006603233603210400DD4E02DD4603094D4403212600DD5E02DD560319EB3E01217B +:203C5100304CCD7781212600DD4E02DD460309EB3E0121704ACD778109012500093600181F +:203C710026DD6E02DD6603233601212400DD4E02DD460309E521040009EB3E01218D55CD72 +:203C91007781EBE1732372C3407DDD6E04DD660546236668232346236668010C00DD5EFE36 +:203CB100DD56FFCD1F8119010900097EFE492030DD6E02DD6603233601212400DD4E02DDD7 +:203CD100460309E5DD4EFEDD46FFDD5E04DD56053E0021AF6DCD77814D44E1712370184FBD +:203CF100DD6E04DD660546236668232346236668010C00DD5EFEDD56FFCD1F811901090060 +:203D1100097EFE532029DD6E02DD6603233603212600DD4E02DD460309E5DD4EFEDD46FFAF +:123D3100DD5E04DD56053E00210C6CCD7781E1C3358113 +:2003260053454C00494E53005550440044454C00204652200020574800204F524420002847 +:2003460000292056414C280020535420002E5C002E54424C007262002E44415400722B62E8 +:0F03660000222A2200726573756C7400776200A2 +:203D4300CDB581F8FFAFDD77FEDD77FF3E0121CC44CD7781DD7E02DDB6032818DD7E04DD6E +:203D6300B6052810DD7E0ADDB60B2808DD7E0CDDB60D2006210000C3EE7E210C00DD4E0C39 +:203D8300DD460D0946236668DD75FADD74FB7DE680280EDD5E0CDD560D3E01210040CD7794 +:203DA30081DD7EFAE6106FDD7EFBE603673E10ADB42806210000C3EE7EDD4E0ADD460BDDB2 +:203DC3005E04DD5605CD1F81DD73FCDD72FDDD6E0CDD660D4E2346DD6E0CDD660D23237E78 +:203DE30023666FA7ED42DD75F8DD74F9A7ED523839DD6EFCDD66FDE5DD6E0CDD660D4E2383 +:203E030046DD5E02DD56033E01213242CD7781F1DD6E0CDD660D7EDD86FC77237EDD8EFD58 +:203E230077DD6EFCDD66FDC3EE7EDD4EF8DD46F9210000CDD381302BDD6EF8DD66F9E5DD35 +:203E43006E0CDD660D4E2346DD5E02DD56033E01213242CD7781F1DD6EF8DD66F9DD75FE12 +:203E6300DD74FFDD4EFEDD46FFDD6EFCDD66FDA7ED42E5DD6E02DD6603094D44210A00DD2D +:203E83005E0CDD560D195E23563E01214B59CD7781F1DD75F8DD74F9CB7C281C210C00DDA2 +:203EA3004E0CDD460D097EF60077237EF60277AFDD77F8DD77F9181BDD7EF8DDB6F92013E4 +:203EC300210C00DD4E0CDD460D097EF60077237EF60177DD6EF8DD66F9DD4EFEDD46FF0975 +:203EE300EBDD4E04DD4605CD1C82EBC33581CDB581FEFFDD36FE00DD36FF00DD6E0ADD66F3 +:203F03000B2BDD750ADD740B237DB42832DD6E04DD660523DD7504DD74052B46DD70FFDD02 +:203F23006E02DD660323DD7502DD74032B4EDD71FE79B82006AFDDB6FE2002180218BCDDB4 +:0F3F43004EFF0600DD6EFE2600A7ED42C335815E +:20400000CDB581F8FFAFDD77FEDD77FFDD7E02DDB6032078116F843E01210040CD77817DE1 +:20402000B4201E1187843E01210040CD77817DB4200F119F843E01210040CD77817DB428BB +:204040000621FFFFC310422A6D84DD7502DD7403DD7E02DDB603282EDD5E02DD56033E0168 +:20406000210040CD77817DB4280621FFFFC31042211600DD4E02DD4603095623666ADD7559 +:2040800002DD740318CA210000C31042210C00DD4E02DD4603097EE680CA6641210600DDD0 +:2040A0004E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7DB4CA6441210600DD9B +:2040C0004E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DD4EF8DD46F9210A00C4 +:2040E000DD5E02DD5603195E23563E01211342CD7781F1DD75FCDD74FD4D44210000CDD304 +:2041000081301E210000397EDD86FC77237EDD8EFD77210200397EDD96FC77237EDD9EFDC9 +:2041200077DD4EFCDD46FD210000CDD38138A1DD7EFCDDA6FD3C20092AC1853E04ADB4282F +:204140008FDD7EFADDB6FB281B210C00DD4E02DD4603097EF60077237EF60277DD36FEFF16 +:20416000DD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E02DD66034E2346DD6E67 +:2041800002DD660323235623666AA7ED42DD75FADD74FB4D44210000CDD381303321010082 +:2041A000E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD4E02DD4603095E237C +:2041C000563E01217547CD7781F1F1F1CB782800210C00DD4E02DD4603097EE63F77237E26 +:2041E000E6FA7769602323E5210400DD4E02DD460309E5210600095623666AE56960C171B5 +:204200002370E1712370E1712370DD6EFEDD66FFC33581CD6B81DD6E0ADD660BE5C5D52141 +:204220002400E53E0121DB5ACD7781F1F1F1F1C33581CDB581FCFFDD6E02DD6603DD75FCFF +:20424000DD74FDDD71FEDD70FFDD6E0ADD660B2BDD750ADD740B237DB42820DD6EFEDD66CA +:20426000FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD75FCDD74FD2B7018CEDD6E02DD66B4 +:0442800003C33581BE +:16003300F5C5E5784251676BED4CED6CED5C79858257E1C1F1C92D +:20428400CD6B81210000E5210000E5210000E53E0121B442CD7781F1F1F1210C00DD4E0207 +:2042A400DD4603097EE6FF77237EE6FC77C33581CDB581FCFF210C00DD4E02DD4603097E79 +:2042C400E6404F237EE604473E40A9B0C21244DD7E0EDDB60F280B3E01DDAE0EDDB60FC22A +:2042E4001244210100E5210000E5210000E5210A00DD4E02DD4603095E23563E01217547D7 +:20430400CD7781F1F1F1DD75FCDD74FDDD71FEDD70FF7DA4A1A03C200621FFFFC35E443E47 +:2043240001DDAE0EDDB60F2046AFDD770EDD770F210E0039E5DD4E02DD4603030369604EA6 +:204344002346DD6E02DD66035623666AA7ED42EB7A079F4F41C5D5DD6EFCDD66FDC109EBCD +:20436400DD6EFEDD66FFC1ED4A4D44E1CD5281DD7E0EDDB60FC21244DD6EFEDD66FFE5DD34 +:204384006EFCDD66FDE5DD4E0CDD460DDD6E0ADD660BCD84813077DD6E02DD660323234EE0 +:2043A4002346210600DD5E02DD5603195623666AA7ED427C079F4F41C5E5DD6EFCDD66FDDB +:2043C400C109EBDD6EFEDD66FFC1ED4AE5D5DD4E0CDD460DDD6E0ADD660BCD8481382FDDC7 +:2043E4004EFCDD46FDDD6E0ADD660BA7ED42E5DD4E02DD4603030369604E2346E109E5DD6C +:204404006E02DD6603C1712370210000184CDD5E02DD56033E01210040CD77817DA43C283B +:2044240031DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5210A00DD4E02DD4603091C +:204444005E23563E01217547CD7781F1F1F1CB78280521FFFF1803210000C33581CDB58186 +:20446400FEFF2A6D84DD75FEDD74FF1187843E01210040CD7781119F843E01210040CD77E7 +:2044840081DD7EFEDDB6FF283CDD5EFEDD56FF3E01210040CD7781210A00DD4EFEDD46FF02 +:2044A400095E23563E0121A247CD7781210A000936FF2336FF211600095623666ADD75FE70 +:2044C400DD74FF18BCC33581C5D52AB7847DB42002182E21000022B7841101003E0121FEB5 +:2044E4004ACD77817DB4280C2193847EF60177237EF600770E011161443E01213A5DCD7712 +:0645040081D1C1C33B811F +:200381000000C685C685C685C685C6860000100000000000000000000000C686C686C686F0 +:2003A100C686C6870100200000000000000000000000AD84AD84AD84AD84AF840200220067 +:0C03C1000000000000000000000001002F +:20450A00CDB581F8FF3E0121CC44CD7781DD7E02DDB6032818DD7E04DDB6052810DD7E0A9B +:20452A00DDB60B2808DD7E0CDDB60D2006210000C32347210C00DD4E0CDD460D09462366BC +:20454A0068DD75FADD74FB7DE6402818DD5E0CDD560D3E01210040CD77817DB42806210002 +:20456A0000C32347DD7EFAE6206FDD7EFBE603673E20ADB42806210000C32347DD4E0ADD47 +:20458A00460BDD5E04DD5605CD1F81DD73FCDD72FDDD6E0CDD660D4E2346210800DD5E0C76 +:2045AA00DD560D195623666AA7ED42DD75F8DD74F9DD4EFCDD46FDA7ED423018DD5E0CDD5C +:2045CA00560D3E01210040CD77817DB42806210000C32347DD6E0CDD660D4E2346210800D5 +:2045EA00DD5E0CDD560D195623666AA7ED42DD75F8DD74F9DD4EFCDD46FDA7ED4238612187 +:20460A000C00DD4E0CDD460D097EF68077237EF60077DD6EFCDD66FDE5DD4E02DD4603DDFF +:20462A006E0CDD660D5E23563E01213242CD7781F1DD6E0CDD660D7EDD86FC77237EDD8E3E +:20464A00FD77DD7EFAE603280EDD5E0CDD560D3E01210040CD7781DD6E0ADD660BC32347AC +:20466A00DD6EFCDD66FDDD75FEDD74FFDD6EFCDD66FDE5DD4E02DD4603210A00DD5E0CDDFB +:20468A00560D195E23563E01211342CD7781F1DD75F8DD74F94D44210000CDD3813022DDBC +:2046AA006EF8DD66F9DD4E02DD460309DD7502DD7403210400397EDD96F877237EDD9EF977 +:2046CA0077DD4EF8DD46F9210000CDD381389DDD7EF8DDA6F93C20092AC1853E04ADB42894 +:2046EA008BDDCBF97E2813210C00DD4E0CDD460D097EF60077237EF60277210600397EDD78 +:20470A0096FC77237EDD9EFD77DD4E04DD4605DD5EFEDD56FFCD1C82EBC33581CD6B81D5D7 +:20472A003E0121704ACD7781D119EB3E0121304CCD7781DD6E02DD6603C33581CDB581FC0F +:20474A00FF210E003901020009DD75FCDD74FDE5DD4E0ADD460B1187843E01213250CD77B6 +:20476A0081F1DD75FEDD74FFC33581CD6B81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD9D +:18478A00660BE5D5211900E53E01214D5DCD7781F1F1F1F1F1C32A82DA +:0B004900DDF9DDE1D1C1F1ED3939C96D +:2047A200CD6B81D5210600E53E0121DB5ACD7781F1F1C33581CDB581FAFFAFDD77FADD775B +:2047C200FBAFDD77FCDD77FDAFDD77FEDD77FFDD7E0ADDB60B2835210C00DD4E0ADD460B48 +:2047E200097EE60F5F237EE60057210200397EB377237EB277210C00097EE6F377237EE6A5 +:20480200FF7759503E01216A59CD7781DD6E0CDD660DAFB62870DD6E0CDD660D23DD750CC3 +:20482200DD740D2B5ECD408104002B617277864849483A4860487748210200397EF61077E9 +:20484200237EF60077183D210200397EF62077237EF60077DD36FA00DD36FB0318262102FF +:2048620000397EF62077237EF60077DD36FA00DD36FB21180F210200397EF63077237EF673 +:20488200007718001886DD7EFCE6304FDD7EFDE6004779B02006210000C36D4A3E10A9B017 +:2048A200200218243E20A9B0200F210000397EF60177237EF60077180F210000397EF60267 +:2048C20077237EF600771800DD7E0ADDB60B201E0118001101003E01216A4ECD7781DD759E +:2048E200FEDD74FF7DB42006210000C36D4ADD7E02DDB603282321B601E5DD6EFADD66FBF8 +:20490200E5DD6E02DD6603E53E01210656CD7781F1F1F1DD7504DD7405DDCB057E282E2A8D +:20492200C185DD75FADD74FBDD7EFEDDB6FF280EDD5EFEDD56FF3E0121504BCD7781DD6E00 +:20494200FADD66FB22C185210000C36D4ADD7E0ADDB60BC2214ADD6EFEDD66FFDD750ADD26 +:20496200740B01160009ED4B6D84712370DD6E0ADD660B226D84210C00DD4E0ADD460B091A +:204982003608233600DD5E04DD56053E0121FE4ACD77817DB42813210C00DD4E0ADD460B9E +:2049A200097EF60177237EF60077210600DD4E0ADD460B09E50100011101003E01216A4E4E +:2049C200CD77814D44E171237079B02029210600DD4E0ADD460B09E5210E0009EBE1732316 +:2049E2007221080009E5210E0009010800094D44E17123701829210800DD4E0ADD460B0996 +:204A0200E5210600095623666A3E018467EBE1732372210C00097EF60477237EF60077DD28 +:204A22006E0ADD660B2323E5210400DD4E0ADD460B09E5210600095E2356E1732372E173C9 +:204A420023726960732372210C00DD4E0ADD460B097EDDB6FC77237EDDB6FD77210A0009F5 +:204A6200DD5E04DD56057323726960C33581CDB581FEFFDD6E02DD6603DD75FEDD74FFDD63 +:204A82006EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD4603DD6EFEDD66FFA704 +:054AA200ED42C3358167 +:12005400E3F5C54E2346237BEDB12002232309C3C9818C +:204AA700CDB581FAFFDD6E02DD6603DD75FADD74FBDD71FCDD70FDDD6EFCDD66FD23DD7538 +:204AC700FCDD74FD2B46DD70FFDD6EFADD66FB23DD75FADD74FB2B4EDD71FE79B82008AFBD +:174AE700DDB6FE280218D0DD4EFF0600DD6EFE2600A7ED42C3358127 +:19006600F57E83775F237E8A7757237E89774F237E8877472B2B2BF1C9AA +:204AFE00CDB581E2FF210000394D44DD5E02DD56033E0121394BCD77817DA43C2812DD7EBB +:204B1E00E6E6006FDD7EE7E6F0673E20ACB528052100001803210100C33581CD6B81C5D5A7 +:204B3E00210D00E53E0121DB5ACD7781F1F1F1C33581CDB581FCFF21FCFFDD4E02DD460331 +:204B5E0009DD75FEDD74FF23237E23B6280621FFFFC32D4C2ACA87DD75FCDD74FDDD4EFC2A +:204B7E00DD46FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FFF8 +:204B9E00A7ED423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD4610 +:204BBE00FFDD6EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED4248 +:204BDE0030021814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF23234B +:204BFE00E5DD4EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FFE8 +:124C1E00712370DD6EFCDD66FD22CA87210000C33581EC +:19007F00E1C5D5DDE5DD210000DD39E9E526806F7EED2039ED3939E3E945 +:204C3000CD6B8159503E0121704ACD778123E5DD4E04DD4605DD5E02DD56033E012132427D +:074C5000CD7781F1C335812E +:20009800EBE3D5C5F5D5C5EB210F00397EEE8047722B4E73EBE17CEE8067ED42E1200AEB2A +:2000B8002B7E2B6E67EBA7ED52C178C1E1D13333C9E1C5D5DDE5DD210000DD395E23562388 +:0F00D800EB39F9EBE909097E23666FC1F1E3C942 +:204C5700CD6B81210A00E50100003E0121E35ECD7781F1C33581CDB581D6FFDD6E0ADD6633 +:204C77000BDD75F8DD74F921000039DD75FADD74FB212C0039DD75FCDD74FD213A00397E58 +:204C9700D60A77DD4E0CDD460D212400CDD3813811010280DD6E0CDD660D3E80AC67ED4266 +:204CB7003003C3F04DDD6EFCDD66FD23237EE60047237EE680B02831AFDDB60E282BDD6E34 +:204CD700F8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6E02DD6603CDE581DD7502D3 +:204CF700DD7403DD7104DD7005DD6EFCDD66FD23237E23B62002184EDD6E0CDD660D7C07CF +:204D17009F4F41C5E5DD4E04DD4605DD6E02DD6603CD6D82E5DD6EFADD66FB23DD75FADD49 +:204D370074FB2BC171212C0039DD5E0CDD560D7A079F4F41CD5D82DD6EFCDD66FD23237EDC +:204D570023B620B41830DD5E02DD5603DD4E0CDD460DCDF781DD6EFADD66FB23DD75FADD59 +:204D770074FB2B73DD5E02DD5603CD1C82DD6EFCDD66FD732372DD6EFCDD66FD7E23B620A4 +:204D9700C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB6FF2840DD6EFADD66FB2B4B +:204DB700DD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77FE1809DD7EFEDD8610DD8E +:204DD70077FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD35FF18BADD6EF8DD66F936BD +:204DF70000DD6E0ADD660BC33581CDB581FEFFDD36FE41DDCB0B7E2816DD36FE61DD4E0A18 +:204E1700DD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5DD6E0ADD660BE5DD6E04C5 +:204E3700DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A079F4F411809DD5E02DD56D2 +:204E5700030100003E01216D4CCD7781F1F1F1F1C33581CDB581FCFFDD5E02DD5603CD1FBF +:204E770081DD73FCDD72FD3E0121EF56CD7781DD75FEDD74FF7DB42819DD6EFCDD66FDE51A +:204E9700010000DD5EFEDD56FF3E0121055CCD7781F1DD6EFEDD66FFC33581CDB581FAFF18 +:204EB700AFDD77FBDD77FC59503E0121704ACD7781DD75FDDD74FEDD6E04DD66057EFE2D27 +:204ED7002014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A2808DD34FD2089 +:204EF70003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDD381300CDD6E69 +:204F170010DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDD381300CDD6EFDDD669C +:204F3700FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FD77237EDD9E68 +:204F5700FE77DD7E0EDDB60F2009DD7EFDDDB6FECA2950DD7E08DDB6092034DD7E0EDDB616 +:204F77000F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DD460CDD70FAB2 +:204F9700DD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60A280CDD460A0D +:204FB700DD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FADD6EFDDD66A3 +:204FD700FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDD740FDD4E028F +:204FF700DD4603DD5EFA16003E01217C5DCD7781DD7EFAFE0A20183E01DDAE12DDB61320F4 +:205017000EDD5E02DD56033E01210040CD7781C3594FDD6EFBDD66FCC35682CDB581A2FF64 +:20503700AFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DD71FDDD70FECE +:20505700210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CA3755DD6E04DD66057EFEBA +:2050770025C2EA543E02DDAEFDDDB6FE200EDD5E02DD56033E01210040CD7781AFDD77A4EE +:20509700DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDD36A8FFDD365F +:2050B700A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD77A6DD77A7AF07 +:2050D700DD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6E04DD66053E23 +:2050F70039BE3002186521000039010A00CD4C82DD6E04DD66054E060021D0FF094D44215D +:205117000000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A91821B0 +:20513700DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A3DD75ACDD74EE +:20515700ADDD34042003DD34051883DD6E04DD66055ECD40811400002021232A2B2D2E589F +:2051770062636468696C6F70737578E654EE52F6527954C952BF5245525A5250525A5236F1 +:2051970054B552E4523A52BC51C751DB51D4511854C751AC51DD6E04DD66052BDD7504DDEF +:2051B7007405C3EA54DD36A401DD36A500C3D650DD6E04DD660546DD70B3C3D650DD36B478 +:2051D70001C3D650216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A3F4 +:2051F700DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD66A3DD75ACDD68 +:2052170074ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DD75ACDD74ADD7 +:20523700C3D650DD36AA01DD36AB00C3D650DD36A601DD36A700C3D650AFDD77A6DD77A708 +:20525700C3D650210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC60477237ECE006E +:20527700772B6E6701FCFF095E2356234E2346181A216C00397EC60277237ECE00772B6EB6 +:20529700672B2B5E23567A079F4F413E0121A355CD7781F1F1DD75B5DD74B6C39D54DD36DF +:2052B700AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD36B230DD36ACEE +:2052D70005DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF0DD36AFFFDD71 +:2052F7007EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF095E2356234E3F +:205317002346EB1819216800397EC60277237ECE00772B6E672B2B46236668010000DD75AC +:20533700B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DD4EBBDD46BCB1 +:20535700DD5EB9DD56BA3E01218E5ECD7781F1F1DD75B5DD74B6DD36B761DD36B884AFDD4E +:20537700B6B4CA15543E02DDAEAEDDB6AF200ADD36B762DD36B88418493E08DDAEAEDDB6A6 +:20539700AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B765DD36B88418273E10DDAEAE9D +:2053B700DDB6AF200ADD36B767DD36B88418133E0FDDAEAEDDA6AF3C2008DD36B76ADD365C +:2053D700B884DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395D543E01213086 +:2053F7004CCD7781DD4EB5DD46B6211B00395D543E01212647CD7781DD75B5DD74B6C39DA6 +:2054170054DD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DD3405181C2137 +:205437006800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A3DD46A2DD6E8C +:20545700B5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B646DD70B2182223 +:20547700181C216800397EC60277237ECE00772B6E672B2B46236668DD75B5DD74B6DD36CE +:20549700B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE5DD6EB2E5DDA0 +:2054B7006EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CDB24EEB210C0039F9EBE5 +:2054D7004D44210E00397E8177237E8877180218021842DD4E02DD4603DD6E04DD66055ED0 +:2054F70016003E01217C5DCD7781DD34B02003DD34B1DD6E04DD66057EFE0A20183E01DD6A +:20551700AEFDDDB6FE200EDD5E02DD56033E01210040CD7781DD34042003DD3405C364506D +:20553700210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDDB6FE200EDD39 +:205557005E02DD56033E01210040CD77813E01DDAEFDDDB6FE2016210400DD4E02DD460333 +:1655770009E5210600094E2346E1712370DD6EB0DD66B1C33581FC +:0C0375000030620030003078003058008A +:20558D00CD6B81210A00E50100003E0121E35ECD7781F1C32A82CDB581FEFFDD36FE41DD3F +:2055AD00CB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE53E52 +:2055CD000ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660DE5DD6E0ADD660BE5DD4EFF +:1955ED0004DD4605DD5E02DD56033E01216D4CCD7781F1F1F1F1C33581EB +:2000E700C5E5F57CEE806778EE8047F1A7ED42E1C1C9F5AF956F3E009C673E00994F3E005D +:040107009847F1C95B +:20560600CD6B81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E0121DBD2 +:0B5626005ACD7781F1F1F1F1C335811D +:09010B00F5E5CD3682EBE1F1C906 +:20563100CDB581FCFFDD6E02DD6603DD75FEDD74FF116F843E0121F55ACD7781DD75FCDD85 +:2056510074FD7DA43C281E3E0ADDAEFCDDB6FD2814DD46FCDD6EFEDD66FF23DD75FEDD741C +:20567100FF2B7018CCDD6EFEDD66FF3600DD7EFCDDA6FD3C2016DD6E02DD6603DD4EFEDDF8 +:2056910046FFA7ED4220052100001806DD6E02DD6603C33581CDB581FEFF018784DD5E0225 +:2056B100DD56033E0121A05FCD7781DD75FEDD74FF7DA43C2813018784110A003E01217C44 +:1E56D1005DCD77817DA43C200521FFFF180DDD6EFEDD66FF23DD75FEDD74FFC335810C +:20011400F5C5E5AFCD9282F5CD3682F1B728031318067B2F5F7A2F57E1C1F1C9F5E5CD36DC +:0A013400827B2F5F7A2F57E1F1C99B +:2056EF00CDB581FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2ACA8787 +:20570F00DD75FCDD74FD7DB42011DD36FCC6DD36FD8721C68722C88722CA87DD6EFCDD6634 +:20572F00FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA75E +:20574F00ED42CADF57DD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E234648 +:20576F00E1A7ED42206ADD6EFADD66FB232346236668ED4BCA87A7ED422015DD6EFADD66BD +:20578F00FB23234623666823234623666822CA87DD6EFADD66FB23237E23666F4E2346DDBF +:2057AF006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604E10 +:2057CF002346030369604E2346E1712370C33C57DD6EFADD66FB46236668DD4EFEDD46FF8B +:2057EF00A7ED42DA9D58DD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD6654 +:20580F00FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DD7B +:20582F004EFADD46FB0922CA87DD6EFCDD66FD2323ED5BCA877323722ACA872323E503035D +:20584F0069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52ACA8799 +:20586F00D1732372DD6EFADD66FB712370DD6EFCDD66FD22CA87DD6EFADD66FB2323AF77D0 +:20588F002377210400DD4EFADD46FB0918272ACA87DD4EFADD46FBA7ED42204F1100043E59 +:2058AF0001218B5FCD7781DD75FADD74FB7DA43C2006210000C33581DD6EFADD66FB36009A +:2058CF00233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E0121504BCDB2 +:2058EF0077812ACA87DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234660 +:0C590F00236668DD75FADD74FBC33C57AD +:20591B00CD6B812AC3853AC585B5B42812010000DD5E02DD56033AC5852AC385CD7781DD0E +:20593B005E02DD56033E0121675DCD7781C33581CD6B81DD6E0ADD660BE5C5D5211700E55C +:20595B003E0121DB5ACD7781F1F1F1F1C33581CDB581FAFFAFDD77FADD77FBDD7E02DDB65D +:20597B0003200C21160022C18521FFFFC3D85ADD5E02DD56033E01210040CD77817DB428F9 +:20599B000621FFFFC3D85A210A00DD4E02DD4603095E23563E0121A247CD77817DB4280805 +:2059BB00DD36FAFFDD36FBFF210A00DD4E02DD46030936FF2336FF210C00097EE6042834A5 +:2059DB00210600DD4E02DD4603095E23563E0121504BCD7781210C00097EE6FB77237EE6FF +:2059FB00FF7721060009E521080009AF772377E1AF772377210C00DD4E02DD4603097EE681 +:205A1B0008CAC45A2A6D84DD75FCDD74FDAFDD77FEDD77FF210C00DD4E02DD460309AF77C1 +:205A3B002377DD7EFCDDB6FD2827DD6E02DD6603DD4EFCDD46FDA7ED422816211600DD4E2B +:205A5B00FCDD46FD095623666ADD75FCDD74FD18D1DD6E02DD6603DD4EFCDD46FDA7ED4288 +:205A7B002037DD7EFEDDB6FF2013211600DD4E02DD46030946236668226D84181C2116004E +:205A9B00DD4EFEDD46FF09E5211600DD4E02DD4603094E2346E1712370DD5E02DD56033ED2 +:205ABB000121504BCD7781180E210C00DD4E02DD460309AF772377DD6EFADD66FBC33581DE +:20013E00DDF9DDE1D13333F1ED3939C92100003E11CB13CB123DC8CB15CB14ED4230F20974 +:02015E0018EF98 +:1A5ADB0021040039C5D55E2356234D44F7300622C18521FFFFD1C1C33B8169 +:0A0160005E2356CD1F81722B73C978 +:205AF500CDB581FEFF210C00DD4E02DD4603097EE680280EDD5E02DD56033E01210040CD0E +:205B15007781210C00DD4E02DD4603097EE6104F237EE603473E10A9B0280621FFFFC302A2 +:205B35005CDD6E02DD660323234E2346DD6E02DD66035623666AA7ED42DAE85BDD6E02DD6B +:205B550066032323E5210600DD4E02DD4603095E2356E17323726960732372DD6E02DD66F8 +:205B750003E5210600DD4E02DD4603095E2356210800097E23666FA7ED52E5010100DD6E0E +:205B950002DD66035E23563E0021437DCD7781F1F1DD75FEDD74FF7DB4200521FFFF184D91 +:205BB500DD6E02DD660323237EDD86FE77237EDD8EFF77210C00DD4E02DD4603097EF640E2 +:205BD50077237EF60077210C00097EE6FF77237EE6FB77DD6E02DD66034E234603702B71C9 +:205BF5000B0A4F0600DD71FEDD70FF6960C33581CDB581FEFFDD6E02DD6603DD75FEDD7418 +:205C1500FFDD6E0ADD660B2BDD750ADD740B237DB42814DD4604DD6EFEDD66FF23DD75FE35 +:205C3500DD74FF2B7018DADD6E02DD6603C33581CDB581FAFF2AB9842BDD75FADD74FB211F +:205C5500FFFF22B9843E0021000032C58522C385DDCBFB7E2053010500DD5EFADD56FBCDC3 +:205C75001F8121CC87195E23562346EBDD75FCDD74FDDD70FE110500DD4EFADD46FBCD1F8B +:205C95008121CF87194E2346DD5E02DD5603DD7EFEDD6EFCDD66FDCD7781DD6EFADD66FB8C +:205CB5002BDD75FADD74FB18A7C33581CD6B812AB984CB7C200E010A802AB9843E80AC677C +:205CD500ED42380B210C0022C18521FFFF18533E0121455C32C58522C385DD7E02DDB60344 +:205CF500DDB604283A010500ED5BB984CD1F8121CC8719DD5604DD4E02DD46037123702360 +:205D150072010500ED5BB984CD1F8121CF8719DD4E0ADD460B7123702AB9842322B9842103 +:185D35000000C33581CD6B81210000E53E0121C15CCD7781F1C3358172 +:0203CD0000002E +:205D4D0021040039D55E2356234D44F7300822C18521FFFF4D44D1C33B81CD6B81D5210B27 +:0F5D6D0000E53E0121DB5ACD7781F1F1C335818D +:07016A00DDF9DDE1D1C1C99F +:205D7C00CDB581FEFF3E0121CC44CD7781210C000946236668DD75FEDD74FF7DE6402818E2 +:205D9C00DD5E04DD56053E01210040CD77817DB4280621FFFFC38B5EDD7EFEE6206FDD7EB8 +:205DBC00FFE603673E20ADB4280621FFFFC38B5E210800DD4E04DD4605095E23560A6F03E4 +:205DDC000A67A7ED523818DD5E04DD56053E01210040CD77817DB4280621FFFFC38B5EDD1D +:205DFC006E04DD66054E234603702B710B6960DD460270210C00DD4E04DD4605097EF6801D +:205E1C0077237EF600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5E2D +:205E3C0004DD56053E01210040CD77817DB4280521FFFF183ADD7EFEE6032818210400DD52 +:205E5C004E04DD460509E5210600094E2346E17123701816210400DD4E04DD460509E52139 +:205E7C000800094E2346E1712370DD6E022600C33581CDB581FEFFDD36FE41DDCB0D7E28C0 +:205E9C0016DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE50E00C5DD6EF8 +:205EBC000CDD660DE5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E01216D4CCD778155 +:205EDC00F1F1F1F1C33581CDB581F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD0F +:205EFC006EFEDD66FF4E060021BB84097EE610280ADD34FE2003DD34FF18E4DD6EFEDD66AB +:205F1C00FF7EFE2D2012DD34FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFED9 +:205F3C002B2008DD34FE2003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E0127 +:205F5C00218460CD7781F1DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CDE581180CDB +:0F5F7C00DD4EFADD46FBDD6EF8DD66F9C32A82E5 +:20017100C5D55E2356234E2346EBCDAE82C33D83EBE3F5DDE5DD210000DD39C5D5DD560949 +:20019100DD7409DD5E08DD7508CDD682DDF9DDE1F1D13333C9CB782809AF914F3E0098478D +:2001B1003E01CB7AC8F5AF935F3E009A57F1EE01C9EBE3F5DDE5DD210000DD39C5D5DD560E +:1901D10009DD7409DD5E08DD7508CDD682E1C1CD2E83DDE1F1D13333C921 +:205F8B00CD6B81D5211800E53E0121DB5ACD7781F1F1C33581CDB581FCFFAFDD77FCDD7744 +:205FAB00FDDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB62833DD4E04DD4605DD6EFEBB +:205FCB00DD66FF23DD75FEDD74FF2B5E16003E01217C5DCD77817DA43C200521FFFF18104B +:135FEB00DD34FC2003DD34FD18C3DD6EFCDD66FDC335818A +:2001EA00F5210000010000DD36F82118021937DDCBFC16DDCBFD16DDCBFE16DDCBFF16DD7D +:20020A0035F8282ECB11CB10CB15CB14ED5238DD201078DD960738D5200879DD960638CD39 +:20022A00180479DD96064F78DD9E074730C12BA718BDF1E56069C1C9F57D2F6F7C2F6779BA +:10024A002F4F782F47F1C9EB702B712B722B73C983 +:205FFE00CDB581FEFFDD36FEFFDD36FFFFDD5E02160021BB84197EE608280FDD4E020600C0 +:20601E0021D0FF09DD75FEDD74FFDD4E02060021BB84097EE604280FDD4E02060021A9FF92 +:20603E0009DD75FEDD74FFDD4E02060021BB84097EE602280FDD4E02060021B0FF09DD7502 +:20605E00FEDD74FFDD4E04DD4605DD6EFEDD66FFCDD3813808DD36FEFFDD36FFFFDD6EFE27 +:20607E00DD66FFC35682CDB581FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADD8B +:20609E00460B212400CDD3813007AFDD770ADD770BDD6E02DD66034E060021BB84097EE6D4 +:2060BE0010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD34038C +:2060DE00186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FE9C +:2060FE00582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD6603C3 +:20611E00237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DDF4 +:20613E00360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AF72 +:20615E00DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECDFE5FDD75FEDD38 +:20617E0074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CD468321000039DD5EFE25 +:20619E00DD56FF7A079F4F41CD5281DD34022003DD340318B7DD7E04DDB6052811DD6E02C9 +:2061BE00DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC32A82CD6B8148 +:2061DE00160021BB84197EE604280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C373 +:2061FE003581CD6B81160021BB84197EE602280EDD7E02EE206FDD7E03EE00671806DD6EF1 +:07621E0002DD6603C33581B8 +:2003CF0001010101010101010111111111110101010101010101010101010101010101019E +:2003EF0010202020202020202020202020202020484848484848484848482020202020206E +:20040F00204242424242420202020202020202020202020202020202020202202020202059 +:20042F00204444444444440404040404040404040404040404040404040404202020200124 +:20044F0000000000000000000000000000000000000000000000000000000000000000008D +:20046F0000000000000000000000000000000000000000000000000000000000000000006D +:20048F0000000000000000000000000000000000000000000000000000000000000000004D +:2004AF0000000000000000000000000000000000000000000000000000000000000000002D +:20025A00C5D55E2356234E2346EBCD5683C33D83E3D5DDE5DD210000DD39DD5609DD740901 +:20027A00DD5E08DD7508D5C5F5DD6E0462ED6CDD5605ED5C1959DD5607ED5C19DD5E06500E +:20029A00ED5C19E5DD5E04DD56FEED5CDD6E05DD6607ED6C19DD4606ED4C09E5DD5E04DDCC +:2002BA005607ED5CDD6E05DD6606ED6CAF1917F5DD5E04DD5606ED5C4A0600AF091755C1C2 +:1402DA004CE10984C1814D47EBF1D1D1DDE1D133333333C9DE +:00000001FF diff --git a/src/db/main.lst b/src/db/main.lst new file mode 100644 index 00000000..c85d382d --- /dev/null +++ b/src/db/main.lst @@ -0,0 +1,258 @@ + 1 NAME main(17) + 2 RSEG CODE(0) + 3 RSEG CSTR(0) + 4 RSEG CONST(0) + 5 EXTERN dbDeleteRow + 6 EXTERN dbExecuteStatement + 7 EXTERN dbGetString + 8 EXTERN dbNewRow + 9 EXTERN dbNextRow + 10 EXTERN dbResultSetClose + 11 EXTERN fflush + 12 EXTERN gets + 13 PUBLIC main + 14 EXTERN malloc + 15 EXTERN printf + 16 EXTERN stdout + 17 EXTERN strcmp + 18 EXTERN ?CL64180B_4_06_L00 + 19 EXTERN ?BANK_CALL_DIRECT_L08 + 20 EXTERN ?BANK_FAST_LEAVE_L08 + 21 RSEG CODE + 00000000 22 main: + 00000000 C5 23 PUSH BC + 00000001 D5 24 PUSH DE + 00000002 FD E5 25 PUSH IY + 00000004 DD E5 26 PUSH IX + 00000006 21 92 FE 27 LD HL,65170 + 00000009 39 28 ADD HL,SP + 0000000A F9 29 LD SP,HL + 0000000B 21 46 01 30 LD HL,326 + 0000000E 39 31 ADD HL,SP + 0000000F EB 32 EX DE,HL + 00000010 21 00 00 33 LD HL,?0000 + 00000013 01 27 00 34 LD BC,39 + 00000016 ED B0 35 LDIR + 00000018 11 06 00 36 LD DE,6 + 0000001B 3E 00 37 LD A,BYTE3 malloc + 0000001D 21 00 00 38 LD HL,LWRD malloc + 00000020 CD 00 00 39 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000023 11 14 00 40 LD DE,20 + 00000026 3E 00 41 LD A,BYTE3 malloc + 00000028 21 00 00 42 LD HL,LWRD malloc + 0000002B CD 00 00 43 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000002E 21 04 00 44 LD HL,4 + 00000031 39 45 ADD HL,SP + 00000032 70 46 LD (HL),B + 00000033 47 ?0002: + 00000033 01 00 00 48 LD BC,?0004 + 00000036 21 04 00 49 LD HL,4 + 00000039 39 50 ADD HL,SP + 0000003A EB 51 EX DE,HL + 0000003B 3E 00 52 LD A,BYTE3 strcmp + 0000003D 21 00 00 53 LD HL,LWRD strcmp + 00000040 CD 00 00 54 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000043 7D 55 LD A,L + 00000044 B4 56 OR H + 00000045 CA 33 01 57 JP Z,?0001 + 00000048 58 ?0003: + 00000048 21 03 00 59 LD HL,?0005 + 0000004B E5 60 PUSH HL + 0000004C 3E 00 61 LD A,BYTE3 printf + 0000004E 21 00 00 62 LD HL,LWRD printf + 00000051 CD 00 00 63 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000054 F1 64 POP AF + 00000055 11 00 00 65 LD DE,stdout + 00000058 3E 00 66 LD A,BYTE3 fflush + 0000005A 21 00 00 67 LD HL,LWRD fflush + 0000005D CD 00 00 68 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000060 21 04 00 69 LD HL,4 + 00000063 39 70 ADD HL,SP + 00000064 EB 71 EX DE,HL + 00000065 3E 00 72 LD A,BYTE3 gets + 00000067 21 00 00 73 LD HL,LWRD gets + 0000006A CD 00 00 74 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000006D 21 00 00 75 LD HL,0 + 00000070 39 76 ADD HL,SP + 00000071 E5 77 PUSH HL + 00000072 21 06 00 78 LD HL,6 + 00000075 39 79 ADD HL,SP + 00000076 EB 80 EX DE,HL + 00000077 3E 00 81 LD A,BYTE3 dbExecuteStatement + 00000079 21 00 00 82 LD HL,LWRD dbExecuteStatement + 0000007C CD 00 00 83 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000007F 4D 84 LD C,L + 00000080 44 85 LD B,H + 00000081 E1 86 POP HL + 00000082 71 87 LD (HL),C + 00000083 23 88 INC HL + 00000084 70 89 LD (HL),B + 00000085 3E 00 90 LD A,BYTE3 dbNewRow + 00000087 21 00 00 91 LD HL,LWRD dbNewRow + 0000008A CD 00 00 92 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000008D E5 93 PUSH HL + 0000008E FD E1 94 POP IY + 00000090 79 95 LD A,C + 00000091 B0 96 OR B + 00000092 CA 25 01 97 JP Z,?0007 + 00000095 98 ?0006: + 00000095 99 ?0028: + 00000095 FD E5 100 PUSH IY + 00000097 C1 101 POP BC + 00000098 21 00 00 102 LD HL,0 + 0000009B 103 ?0029: + 0000009B 39 104 ADD HL,SP + 0000009C 5E 105 LD E,(HL) + 0000009D 106 ?0030: + 0000009D 23 107 INC HL + 0000009E 56 108 LD D,(HL) + 0000009F 109 ?0031: + 0000009F 3E 00 110 LD A,BYTE3 dbNextRow + 000000A1 21 00 00 111 LD HL,LWRD dbNextRow + 000000A4 112 ?0032: + 000000A4 CD 00 00 113 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000A7 114 ?0009: + 000000A7 FD CB 03 7E 115 BIT 7,(IY+3) + 000000AB 20 69 116 JR NZ,?0008 + 000000AD 117 ?0010: + 000000AD DD 21 00 00 118 LD IX,0 + 000000B1 119 ?0012: + 000000B1 21 00 00 120 LD HL,0 + 000000B4 39 121 ADD HL,SP + 000000B5 7E 122 LD A,(HL) + 000000B6 23 123 INC HL + 000000B7 66 124 LD H,(HL) + 000000B8 6F 125 LD L,A + 000000B9 4E 126 LD C,(HL) + 000000BA 23 127 INC HL + 000000BB 46 128 LD B,(HL) + 000000BC DD E5 129 PUSH IX + 000000BE E1 130 POP HL + 000000BF F6 80 131 OR 128 + 000000C1 ED 42 132 SBC HL,BC + 000000C3 E2 C7 00 133 JP PO,?0027 + 000000C6 AC 134 XOR H + 000000C7 135 ?0027: + 000000C7 F2 F5 00 136 JP P,?0011 + 000000CA 137 ?0013: + 000000CA 21 04 01 138 LD HL,260 + 000000CD 39 139 ADD HL,SP + 000000CE E5 140 PUSH HL + 000000CF DD E5 141 PUSH IX + 000000D1 C1 142 POP BC + 000000D2 FD E5 143 PUSH IY + 000000D4 D1 144 POP DE + 000000D5 3E 00 145 LD A,BYTE3 dbGetString + 000000D7 21 00 00 146 LD HL,LWRD dbGetString + 000000DA CD 00 00 147 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000DD E1 148 POP HL + 000000DE 21 04 01 149 LD HL,260 + 000000E1 39 150 ADD HL,SP + 000000E2 E5 151 PUSH HL + 000000E3 21 09 00 152 LD HL,?0015 + 000000E6 E5 153 PUSH HL + 000000E7 3E 00 154 LD A,BYTE3 printf + 000000E9 21 00 00 155 LD HL,LWRD printf + 000000EC CD 00 00 156 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000EF F1 157 POP AF + 000000F0 F1 158 POP AF + 000000F1 DD 23 159 INC IX + 000000F3 18 BC 160 JR ?0012 + 000000F5 161 ?0011: + 000000F5 21 0F 00 162 LD HL,?0016 + 000000F8 E5 163 PUSH HL + 000000F9 3E 00 164 LD A,BYTE3 printf + 000000FB 21 00 00 165 LD HL,LWRD printf + 000000FE CD 00 00 166 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000101 F1 167 POP AF + 00000102 18 91 168 JR ?0028 + 00000104 21 00 00 169 LD HL,0 + 00000107 18 92 170 JR ?0029 + 00000109 5E 171 LD E,(HL) + 0000010A 18 91 172 JR ?0030 + 0000010C 56 173 LD D,(HL) + 0000010D 18 90 174 JR ?0031 + 0000010F 21 00 00 175 LD HL,LWRD dbNextRow + 00000112 18 90 176 JR ?0032 + 00000114 18 91 177 JR ?0009 + 00000116 178 ?0008: + 00000116 21 00 00 179 LD HL,0 + 00000119 39 180 ADD HL,SP + 0000011A 5E 181 LD E,(HL) + 0000011B 23 182 INC HL + 0000011C 56 183 LD D,(HL) + 0000011D 3E 00 184 LD A,BYTE3 dbResultSetClose + 0000011F 21 00 00 185 LD HL,LWRD dbResultSetClose + 00000122 CD 00 00 186 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000125 187 ?0007: + 00000125 FD E5 188 PUSH IY + 00000127 D1 189 POP DE + 00000128 3E 00 190 LD A,BYTE3 dbDeleteRow + 0000012A 21 00 00 191 LD HL,LWRD dbDeleteRow + 0000012D CD 00 00 192 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000130 C3 33 00 193 JP LWRD ?0002 + 00000133 194 ?0001: + 00000133 21 6E 01 195 LD HL,366 + 00000136 39 196 ADD HL,SP + 00000137 F9 197 LD SP,HL + 00000138 DD E1 198 POP IX + 0000013A FD E1 199 POP IY + 0000013C D1 200 POP DE + 0000013D C1 201 POP BC + 0000013E C3 00 00 202 JP LWRD ?BANK_FAST_LEAVE_L08 + 203 RSEG CSTR + 00000000 204 ?0004: + 00000000 51 54 205 DEFB 'QT' + 00000002 00 206 DEFB 0 + 00000003 207 ?0005: + 00000003 53 51 4C 3E 20 208 DEFB 'SQL> ' + 00000008 00 209 DEFB 0 + 00000009 210 ?0015: + 00000009 27 25 73 27 2C 211 DEFB '''%s'',' + 0000000E 00 212 DEFB 0 + 0000000F 213 ?0016: + 0000000F 0A 00 214 DEFB 10,0 + 215 RSEG CONST + 00000000 216 ?0000: + 00000000 53 45 4C 20 63 6F 6C 217 DEFB 'SEL column1, column2, testtest FR test' + 75 6D 6E 31 2C 20 63 + 6F 6C 75 6D 6E 32 2C + 20 74 65 73 74 74 65 + 73 74 20 46 52 20 74 + 65 73 74 + 00000026 00 218 DEFB 0 + 00000027 219 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | 3 ?0000 00000000 R + 1 ?0001 00000133 R | 1 ?0002 00000033 R + 1 ?0003 00000048 R | 2 ?0004 00000000 R + 2 ?0005 00000003 R | 1 ?0006 00000095 R + 1 ?0007 00000125 R | 1 ?0008 00000116 R + 1 ?0009 000000A7 R | 1 ?0010 000000AD R + 1 ?0011 000000F5 R | 1 ?0012 000000B1 R + 1 ?0013 000000CA R | 2 ?0015 00000009 R + 2 ?0016 0000000F R | 1 ?0027 000000C7 R + 1 ?0028 00000095 R | 1 ?0029 0000009B R + 1 ?0030 0000009D R | 1 ?0031 0000009F R + 1 ?0032 000000A4 R | ?BANK_CALL_DIR ******** GX + ?BANK_FAST_LEA ******** GX | ?CL64180B_4_06 ******** GX + dbDeleteRow ******** GX | dbExecuteState ******** GX + dbGetString ******** GX | dbNewRow ******** GX + dbNextRow ******** GX | dbResultSetClo ******** GX + fflush ******** GX | gets ******** GX + 1 main 00000000 GR | malloc ******** GX + printf ******** GX | stdout ******** GX + strcmp ******** 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 141 flags 0 + 2 CSTR size 11 flags 0 + 3 CONST size 27 flags 0 diff --git a/src/db/main.rel b/src/db/main.rel new file mode 100644 index 00000000..99f5b630 --- /dev/null +++ b/src/db/main.rel @@ -0,0 +1,188 @@ +XL4 +H 4 areas 11 global symbols +M main +S ?BANK_FAST_LEAVE_L08 Ref00000000 +S dbResultSetClose Ref00000000 +S fflush Ref00000000 +S dbExecuteStatement Ref00000000 +S dbDeleteRow Ref00000000 +S printf Ref00000000 +S strcmp Ref00000000 +S dbNextRow Ref00000000 +S dbGetString Ref00000000 +S ?BANK_CALL_DIRECT_L08 Ref00000000 +S stdout Ref00000000 +S dbNewRow Ref00000000 +S gets Ref00000000 +S ?CL64180B_4_06_L00 Ref00000000 +S malloc Ref00000000 +S .__.ABS. Def00000000 +A _DEFAULT size 0 flags 0 +A CODE size 141 flags 0 +S main Def00000000 +A CSTR size 11 flags 0 +A CONST size 27 flags 0 +T 00 00 00 00 +R 00 00 01 00 +T 00 00 00 00 C5 D5 FD E5 DD E5 21 92 FE 39 F9 +R 00 00 01 00 +T 0B 00 00 00 21 46 01 39 EB 21 00 00 00 00 01 +R 00 00 01 00 00 0A 03 00 +T 14 00 00 00 27 00 ED B0 11 06 00 3E +R 00 00 01 00 +T 1C 00 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 0E 00 02 09 0E 00 +T 21 00 00 00 00 00 00 00 11 14 00 3E +R 00 00 01 00 02 04 09 00 +T 27 00 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 0E 00 02 09 0E 00 +T 2C 00 00 00 00 00 00 00 21 04 00 39 70 +R 00 00 01 00 02 04 09 00 +T 33 00 00 00 +R 00 00 01 00 +T 33 00 00 00 01 00 00 00 00 21 04 00 39 EB 3E +R 00 00 01 00 00 05 02 00 +T 3C 00 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 06 00 02 09 06 00 +T 41 00 00 00 00 00 00 00 7D B4 CA 33 01 00 00 +R 00 00 01 00 02 04 09 00 00 0B 01 00 +T 48 00 00 00 +R 00 00 01 00 +T 48 00 00 00 21 03 00 00 00 E5 3E 00 00 00 00 +R 00 00 01 00 00 05 02 00 2B 0B 05 00 +T 4E 00 00 00 21 00 00 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 02 05 05 00 02 0A 09 00 +T 55 00 00 00 11 00 00 00 00 3E 00 00 00 00 21 +R 00 00 01 00 02 05 0A 00 2B 0A 02 00 +T 5B 00 00 00 00 00 00 00 CD 00 00 00 00 21 +R 00 00 01 00 02 04 02 00 02 09 09 00 +T 61 00 00 00 04 00 39 EB 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 0C 00 +T 68 00 00 00 00 00 00 00 CD 00 00 00 00 21 +R 00 00 01 00 02 04 0C 00 02 09 09 00 +T 6E 00 00 00 00 00 39 E5 21 06 00 39 EB 3E +R 00 00 01 00 +T 78 00 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 03 00 02 09 03 00 +T 7D 00 00 00 00 00 00 00 4D 44 E1 71 23 70 3E +R 00 00 01 00 02 04 09 00 +T 86 00 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 0B 00 02 09 0B 00 +T 8B 00 00 00 00 00 00 00 E5 FD E1 79 B0 CA +R 00 00 01 00 02 04 09 00 +T 93 00 00 00 25 01 00 00 +R 00 00 01 00 00 04 01 00 +T 95 00 00 00 +R 00 00 01 00 +T 95 00 00 00 +R 00 00 01 00 +T 95 00 00 00 FD E5 C1 21 00 00 +R 00 00 01 00 +T 9B 00 00 00 +R 00 00 01 00 +T 9B 00 00 00 39 5E +R 00 00 01 00 +T 9D 00 00 00 +R 00 00 01 00 +T 9D 00 00 00 23 56 +R 00 00 01 00 +T 9F 00 00 00 +R 00 00 01 00 +T 9F 00 00 00 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 05 07 00 02 0A 07 00 +T A4 00 00 00 +R 00 00 01 00 +T A4 00 00 00 CD 00 00 00 00 +R 00 00 01 00 02 05 09 00 +T A7 00 00 00 +R 00 00 01 00 +T A7 00 00 00 FD CB 03 7E 20 69 +R 00 00 01 00 +T AD 00 00 00 +R 00 00 01 00 +T AD 00 00 00 DD 21 00 00 +R 00 00 01 00 +T B1 00 00 00 +R 00 00 01 00 +T B1 00 00 00 21 00 00 39 7E 23 66 6F 4E 23 46 +R 00 00 01 00 +T BC 00 00 00 DD E5 E1 F6 80 ED 42 E2 +R 00 00 01 00 +T C4 00 00 00 C7 00 00 00 AC +R 00 00 01 00 00 04 01 00 +T C7 00 00 00 +R 00 00 01 00 +T C7 00 00 00 F2 F5 00 00 00 +R 00 00 01 00 00 05 01 00 +T CA 00 00 00 +R 00 00 01 00 +T CA 00 00 00 21 04 01 39 E5 DD E5 C1 FD E5 D1 +R 00 00 01 00 +T D5 00 00 00 3E 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 05 08 00 02 0A 08 00 +T DB 00 00 00 00 00 00 00 E1 21 04 01 39 E5 21 +R 00 00 01 00 02 04 09 00 +T E4 00 00 00 09 00 00 00 E5 3E 00 00 00 00 21 +R 00 00 01 00 00 04 02 00 2B 0A 05 00 +T EA 00 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 02 04 05 00 02 09 09 00 +T F1 00 00 00 DD 23 18 BC +R 00 00 01 00 +T F5 00 00 00 +R 00 00 01 00 +T F5 00 00 00 21 0F 00 00 00 E5 3E 00 00 00 00 +R 00 00 01 00 00 05 02 00 2B 0B 05 00 +T FB 00 00 00 21 00 00 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 02 05 05 00 02 0A 09 00 +T 02 01 00 00 18 91 21 00 00 18 92 5E 18 91 56 +R 00 00 01 00 +T 0D 01 00 00 18 90 21 00 00 00 00 18 90 18 91 +R 00 00 01 00 02 07 07 00 +T 16 01 00 00 +R 00 00 01 00 +T 16 01 00 00 21 00 00 39 5E 23 56 3E +R 00 00 01 00 +T 1E 01 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 01 00 02 09 01 00 +T 23 01 00 00 00 00 00 00 +R 00 00 01 00 02 04 09 00 +T 25 01 00 00 +R 00 00 01 00 +T 25 01 00 00 FD E5 D1 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 04 00 +T 2B 01 00 00 00 00 00 00 CD 00 00 00 00 C3 +R 00 00 01 00 02 04 04 00 02 09 09 00 +T 31 01 00 00 33 00 00 00 +R 00 00 01 00 00 04 01 00 +T 33 01 00 00 +R 00 00 01 00 +T 33 01 00 00 21 6E 01 39 F9 DD E1 FD E1 D1 C1 +R 00 00 01 00 +T 3E 01 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 00 00 +T 00 00 00 00 +R 00 00 02 00 +T 00 00 00 00 51 54 00 +R 00 00 02 00 +T 03 00 00 00 +R 00 00 02 00 +T 03 00 00 00 53 51 4C 3E 20 00 +R 00 00 02 00 +T 09 00 00 00 +R 00 00 02 00 +T 09 00 00 00 27 25 73 27 2C 00 +R 00 00 02 00 +T 0F 00 00 00 +R 00 00 02 00 +T 0F 00 00 00 0A 00 +R 00 00 02 00 +T 00 00 00 00 +R 00 00 03 00 +T 00 00 00 00 53 45 4C 20 63 6F 6C 75 6D 6E 31 +R 00 00 03 00 +T 0B 00 00 00 2C 20 63 6F 6C 75 6D 6E 32 2C 20 +R 00 00 03 00 +T 16 00 00 00 74 65 73 74 74 65 73 74 20 46 52 +R 00 00 03 00 +T 21 00 00 00 20 74 65 73 74 00 +R 00 00 03 00 diff --git a/src/db/main.rst b/src/db/main.rst new file mode 100644 index 00000000..87cefc4f --- /dev/null +++ b/src/db/main.rst @@ -0,0 +1,258 @@ + 1 NAME main(17) + 2 RSEG CODE(0) + 3 RSEG CSTR(0) + 4 RSEG CONST(0) + 5 EXTERN dbDeleteRow + 6 EXTERN dbExecuteStatement + 7 EXTERN dbGetString + 8 EXTERN dbNewRow + 9 EXTERN dbNextRow + 10 EXTERN dbResultSetClose + 11 EXTERN fflush + 12 EXTERN gets + 13 PUBLIC main + 14 EXTERN malloc + 15 EXTERN printf + 16 EXTERN stdout + 17 EXTERN strcmp + 18 EXTERN ?CL64180B_4_06_L00 + 19 EXTERN ?BANK_CALL_DIRECT_L08 + 20 EXTERN ?BANK_FAST_LEAVE_L08 + 21 RSEG CODE + 00006F9C 22 main: + 00006F9C C5 23 PUSH BC + 00006F9D D5 24 PUSH DE + 00006F9E FD E5 25 PUSH IY + 00006FA0 DD E5 26 PUSH IX + 00006FA2 21 92 FE 27 LD HL,65170 + 00006FA5 39 28 ADD HL,SP + 00006FA6 F9 29 LD SP,HL + 00006FA7 21 46 01 30 LD HL,326 + 00006FAA 39 31 ADD HL,SP + 00006FAB EB 32 EX DE,HL + 00006FAC 21 5A 84 33 LD HL,?0000 + 00006FAF 01 27 00 34 LD BC,39 + 00006FB2 ED B0 35 LDIR + 00006FB4 11 06 00 36 LD DE,6 + 00006FB7 3E 01 37 LD A,BYTE3 malloc + 00006FB9 21 82 4A 38 LD HL,LWRD malloc + 00006FBC CD 19 82 39 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006FBF 11 14 00 40 LD DE,20 + 00006FC2 3E 01 41 LD A,BYTE3 malloc + 00006FC4 21 82 4A 42 LD HL,LWRD malloc + 00006FC7 CD 19 82 43 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006FCA 21 04 00 44 LD HL,4 + 00006FCD 39 45 ADD HL,SP + 00006FCE 70 46 LD (HL),B + 00006FCF 47 ?0002: + 00006FCF 01 D6 84 48 LD BC,?0004 + 00006FD2 21 04 00 49 LD HL,4 + 00006FD5 39 50 ADD HL,SP + 00006FD6 EB 51 EX DE,HL + 00006FD7 3E 00 52 LD A,BYTE3 strcmp + 00006FD9 21 93 7D 53 LD HL,LWRD strcmp + 00006FDC CD 19 82 54 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006FDF 7D 55 LD A,L + 00006FE0 B4 56 OR H + 00006FE1 CA CF 70 57 JP Z,?0001 + 00006FE4 58 ?0003: + 00006FE4 21 D9 84 59 LD HL,?0005 + 00006FE7 E5 60 PUSH HL + 00006FE8 3E 00 61 LD A,BYTE3 printf + 00006FEA 21 32 7A 62 LD HL,LWRD printf + 00006FED CD 19 82 63 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006FF0 F1 64 POP AF + 00006FF1 11 0D 85 65 LD DE,stdout + 00006FF4 3E 00 66 LD A,BYTE3 fflush + 00006FF6 21 EC 72 67 LD HL,LWRD fflush + 00006FF9 CD 19 82 68 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006FFC 21 04 00 69 LD HL,4 + 00006FFF 39 70 ADD HL,SP + 00007000 EB 71 EX DE,HL + 00007001 3E 01 72 LD A,BYTE3 gets + 00007003 21 C4 49 73 LD HL,LWRD gets + 00007006 CD 19 82 74 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007009 21 00 00 75 LD HL,0 + 0000700C 39 76 ADD HL,SP + 0000700D E5 77 PUSH HL + 0000700E 21 06 00 78 LD HL,6 + 00007011 39 79 ADD HL,SP + 00007012 EB 80 EX DE,HL + 00007013 3E 00 81 LD A,BYTE3 dbExecuteStatement + 00007015 21 73 61 82 LD HL,LWRD dbExecuteStatement + 00007018 CD 19 82 83 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000701B 4D 84 LD C,L + 0000701C 44 85 LD B,H + 0000701D E1 86 POP HL + 0000701E 71 87 LD (HL),C + 0000701F 23 88 INC HL + 00007020 70 89 LD (HL),B + 00007021 3E 00 90 LD A,BYTE3 dbNewRow + 00007023 21 99 62 91 LD HL,LWRD dbNewRow + 00007026 CD 19 82 92 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007029 E5 93 PUSH HL + 0000702A FD E1 94 POP IY + 0000702C 79 95 LD A,C + 0000702D B0 96 OR B + 0000702E CA C1 70 97 JP Z,?0007 + 00007031 98 ?0006: + 00007031 99 ?0028: + 00007031 FD E5 100 PUSH IY + 00007033 C1 101 POP BC + 00007034 21 00 00 102 LD HL,0 + 00007037 103 ?0029: + 00007037 39 104 ADD HL,SP + 00007038 5E 105 LD E,(HL) + 00007039 106 ?0030: + 00007039 23 107 INC HL + 0000703A 56 108 LD D,(HL) + 0000703B 109 ?0031: + 0000703B 3E 00 110 LD A,BYTE3 dbNextRow + 0000703D 21 DF 61 111 LD HL,LWRD dbNextRow + 00007040 112 ?0032: + 00007040 CD 19 82 113 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007043 114 ?0009: + 00007043 FD CB 03 7E 115 BIT 7,(IY+3) + 00007047 20 69 116 JR NZ,?0008 + 00007049 117 ?0010: + 00007049 DD 21 00 00 118 LD IX,0 + 0000704D 119 ?0012: + 0000704D 21 00 00 120 LD HL,0 + 00007050 39 121 ADD HL,SP + 00007051 7E 122 LD A,(HL) + 00007052 23 123 INC HL + 00007053 66 124 LD H,(HL) + 00007054 6F 125 LD L,A + 00007055 4E 126 LD C,(HL) + 00007056 23 127 INC HL + 00007057 46 128 LD B,(HL) + 00007058 DD E5 129 PUSH IX + 0000705A E1 130 POP HL + 0000705B F6 80 131 OR 128 + 0000705D ED 42 132 SBC HL,BC + 0000705F E2 63 70 133 JP PO,?0027 + 00007062 AC 134 XOR H + 00007063 135 ?0027: + 00007063 F2 91 70 136 JP P,?0011 + 00007066 137 ?0013: + 00007066 21 04 01 138 LD HL,260 + 00007069 39 139 ADD HL,SP + 0000706A E5 140 PUSH HL + 0000706B DD E5 141 PUSH IX + 0000706D C1 142 POP BC + 0000706E FD E5 143 PUSH IY + 00007070 D1 144 POP DE + 00007071 3E 00 145 LD A,BYTE3 dbGetString + 00007073 21 C6 62 146 LD HL,LWRD dbGetString + 00007076 CD 19 82 147 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007079 E1 148 POP HL + 0000707A 21 04 01 149 LD HL,260 + 0000707D 39 150 ADD HL,SP + 0000707E E5 151 PUSH HL + 0000707F 21 DF 84 152 LD HL,?0015 + 00007082 E5 153 PUSH HL + 00007083 3E 00 154 LD A,BYTE3 printf + 00007085 21 32 7A 155 LD HL,LWRD printf + 00007088 CD 19 82 156 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000708B F1 157 POP AF + 0000708C F1 158 POP AF + 0000708D DD 23 159 INC IX + 0000708F 18 BC 160 JR ?0012 + 00007091 161 ?0011: + 00007091 21 E5 84 162 LD HL,?0016 + 00007094 E5 163 PUSH HL + 00007095 3E 00 164 LD A,BYTE3 printf + 00007097 21 32 7A 165 LD HL,LWRD printf + 0000709A CD 19 82 166 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000709D F1 167 POP AF + 0000709E 18 91 168 JR ?0028 + 000070A0 21 00 00 169 LD HL,0 + 000070A3 18 92 170 JR ?0029 + 000070A5 5E 171 LD E,(HL) + 000070A6 18 91 172 JR ?0030 + 000070A8 56 173 LD D,(HL) + 000070A9 18 90 174 JR ?0031 + 000070AB 21 DF 61 175 LD HL,LWRD dbNextRow + 000070AE 18 90 176 JR ?0032 + 000070B0 18 91 177 JR ?0009 + 000070B2 178 ?0008: + 000070B2 21 00 00 179 LD HL,0 + 000070B5 39 180 ADD HL,SP + 000070B6 5E 181 LD E,(HL) + 000070B7 23 182 INC HL + 000070B8 56 183 LD D,(HL) + 000070B9 3E 00 184 LD A,BYTE3 dbResultSetClose + 000070BB 21 1F 51 185 LD HL,LWRD dbResultSetClose + 000070BE CD 19 82 186 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000070C1 187 ?0007: + 000070C1 FD E5 188 PUSH IY + 000070C3 D1 189 POP DE + 000070C4 3E 00 190 LD A,BYTE3 dbDeleteRow + 000070C6 21 7A 62 191 LD HL,LWRD dbDeleteRow + 000070C9 CD 19 82 192 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000070CC C3 CF 6F 193 JP LWRD ?0002 + 000070CF 194 ?0001: + 000070CF 21 6E 01 195 LD HL,366 + 000070D2 39 196 ADD HL,SP + 000070D3 F9 197 LD SP,HL + 000070D4 DD E1 198 POP IX + 000070D6 FD E1 199 POP IY + 000070D8 D1 200 POP DE + 000070D9 C1 201 POP BC + 000070DA C3 A9 81 202 JP LWRD ?BANK_FAST_LEAVE_L08 + 203 RSEG CSTR + 000084D6 204 ?0004: + 000084D6 51 54 205 DEFB 'QT' + 000084D8 00 206 DEFB 0 + 000084D9 207 ?0005: + 000084D9 53 51 4C 3E 20 208 DEFB 'SQL> ' + 000084DE 00 209 DEFB 0 + 000084DF 210 ?0015: + 000084DF 27 25 73 27 2C 211 DEFB '''%s'',' + 000084E4 00 212 DEFB 0 + 000084E5 213 ?0016: + 000084E5 0A 00 214 DEFB 10,0 + 215 RSEG CONST + 0000845A 216 ?0000: + 0000845A 53 45 4C 20 63 6F 6C 217 DEFB 'SEL column1, column2, testtest FR test' + 75 6D 6E 31 2C 20 63 + 6F 6C 75 6D 6E 32 2C + 20 74 65 73 74 74 65 + 73 74 20 46 52 20 74 + 65 73 74 + 00008480 00 218 DEFB 0 + 00000027 219 END + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. +Hexadecimal [32-Bits] + +Symbol Table + + .__.ABS. = 00000000 G | 3 ?0000 00000000 R + 1 ?0001 00000133 R | 1 ?0002 00000033 R + 1 ?0003 00000048 R | 2 ?0004 00000000 R + 2 ?0005 00000003 R | 1 ?0006 00000095 R + 1 ?0007 00000125 R | 1 ?0008 00000116 R + 1 ?0009 000000A7 R | 1 ?0010 000000AD R + 1 ?0011 000000F5 R | 1 ?0012 000000B1 R + 1 ?0013 000000CA R | 2 ?0015 00000009 R + 2 ?0016 0000000F R | 1 ?0027 000000C7 R + 1 ?0028 00000095 R | 1 ?0029 0000009B R + 1 ?0030 0000009D R | 1 ?0031 0000009F R + 1 ?0032 000000A4 R | ?BANK_CALL_DIR ******** GX + ?BANK_FAST_LEA ******** GX | ?CL64180B_4_06 ******** GX + dbDeleteRow ******** GX | dbExecuteState ******** GX + dbGetString ******** GX | dbNewRow ******** GX + dbNextRow ******** GX | dbResultSetClo ******** GX + fflush ******** GX | gets ******** GX + 1 main 00000000 GR | malloc ******** GX + printf ******** GX | stdout ******** GX + strcmp ******** 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 141 flags 0 + 2 CSTR size 11 flags 0 + 3 CONST size 27 flags 0 diff --git a/src/db/main.s01 b/src/db/main.s01 new file mode 100644 index 00000000..a9159be1 --- /dev/null +++ b/src/db/main.s01 @@ -0,0 +1,219 @@ + NAME main(17) + RSEG CODE(0) + RSEG CSTR(0) + RSEG CONST(0) + EXTERN dbDeleteRow + EXTERN dbExecuteStatement + EXTERN dbGetString + EXTERN dbNewRow + EXTERN dbNextRow + EXTERN dbResultSetClose + EXTERN fflush + EXTERN gets + PUBLIC main + EXTERN malloc + EXTERN printf + EXTERN stdout + EXTERN strcmp + EXTERN ?CL64180B_4_06_L00 + EXTERN ?BANK_CALL_DIRECT_L08 + EXTERN ?BANK_FAST_LEAVE_L08 + RSEG CODE +main: + PUSH BC + PUSH DE + PUSH IY + PUSH IX + LD HL,65170 + ADD HL,SP + LD SP,HL + LD HL,326 + ADD HL,SP + EX DE,HL + LD HL,?0000 + LD BC,39 + LDIR + LD DE,6 + LD A,BYTE3 malloc + LD HL,LWRD malloc + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD DE,20 + LD A,BYTE3 malloc + LD HL,LWRD malloc + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,4 + ADD HL,SP + LD (HL),B +?0002: + LD BC,?0004 + LD HL,4 + ADD HL,SP + EX DE,HL + LD A,BYTE3 strcmp + LD HL,LWRD strcmp + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD A,L + OR H + JP Z,?0001 +?0003: + LD HL,?0005 + PUSH HL + LD A,BYTE3 printf + LD HL,LWRD printf + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + LD DE,stdout + LD A,BYTE3 fflush + LD HL,LWRD fflush + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,4 + ADD HL,SP + EX DE,HL + LD A,BYTE3 gets + LD HL,LWRD gets + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,0 + ADD HL,SP + PUSH HL + LD HL,6 + ADD HL,SP + EX DE,HL + LD A,BYTE3 dbExecuteStatement + LD HL,LWRD dbExecuteStatement + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,L + LD B,H + POP HL + LD (HL),C + INC HL + LD (HL),B + LD A,BYTE3 dbNewRow + LD HL,LWRD dbNewRow + CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH HL + POP IY + LD A,C + OR B + JP Z,?0007 +?0006: +?0028: + PUSH IY + POP BC + LD HL,0 +?0029: + ADD HL,SP + LD E,(HL) +?0030: + INC HL + LD D,(HL) +?0031: + LD A,BYTE3 dbNextRow + LD HL,LWRD dbNextRow +?0032: + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0009: + BIT 7,(IY+3) + JR NZ,?0008 +?0010: + LD IX,0 +?0012: + LD HL,0 + ADD HL,SP + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD C,(HL) + INC HL + LD B,(HL) + PUSH IX + POP HL + OR 128 + SBC HL,BC + JP PO,?0027 + XOR H +?0027: + JP P,?0011 +?0013: + LD HL,260 + ADD HL,SP + PUSH HL + PUSH IX + POP BC + PUSH IY + POP DE + LD A,BYTE3 dbGetString + LD HL,LWRD dbGetString + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP HL + LD HL,260 + ADD HL,SP + PUSH HL + LD HL,?0015 + PUSH HL + LD A,BYTE3 printf + LD HL,LWRD printf + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + POP AF + INC IX + JR ?0012 +?0011: + LD HL,?0016 + PUSH HL + LD A,BYTE3 printf + LD HL,LWRD printf + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + JR ?0028 + LD HL,0 + JR ?0029 + LD E,(HL) + JR ?0030 + LD D,(HL) + JR ?0031 + LD HL,LWRD dbNextRow + JR ?0032 + JR ?0009 +?0008: + LD HL,0 + ADD HL,SP + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 dbResultSetClose + LD HL,LWRD dbResultSetClose + CALL LWRD ?BANK_CALL_DIRECT_L08 +?0007: + PUSH IY + POP DE + LD A,BYTE3 dbDeleteRow + LD HL,LWRD dbDeleteRow + CALL LWRD ?BANK_CALL_DIRECT_L08 + JP LWRD ?0002 +?0001: + LD HL,366 + ADD HL,SP + LD SP,HL + POP IX + POP IY + POP DE + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 + RSEG CSTR +?0004: + DEFB 'QT' + DEFB 0 +?0005: + DEFB 'SQL> ' + DEFB 0 +?0015: + DEFB '''%s'',' + DEFB 0 +?0016: + DEFB 10,0 + RSEG CONST +?0000: + DEFB 'SEL column1, column2, testtest FR test' + DEFB 0 + END diff --git a/src/db/n.bat b/src/db/n.bat new file mode 100644 index 00000000..3daf30d3 --- /dev/null +++ b/src/db/n.bat @@ -0,0 +1,30 @@ +iccz80 -mb -v1 -s9 -A -I..\..\include\ -DZILOG db +@if errorlevel 1 goto failure +del db.r01 +as-z80 -l -o db.s01 +@if errorlevel 1 goto failure + +iccz80 -mb -v1 -s9 -A -I..\..\include\ -DZILOG main +@if errorlevel 1 goto failure +del main.r01 +as-z80 -l -o main.s01 +@if errorlevel 1 goto failure + +link-z80 -f db +@if errorlevel 1 goto failure +ihex2bin -l db.i86 ..\..\bin\banked\db +@if errorlevel 1 goto failure + +copy test.DAT ..\..\bin\db +copy test.TBL ..\..\bin\db + +cd ..\..\bin +call appinst.bat +cd ..\src\db + +@echo SUCCESS +@goto done +:failure +@echo FAILURE +:done + diff --git a/src/db/product.DAT b/src/db/product.DAT new file mode 100644 index 0000000000000000000000000000000000000000..1fb216549da159f0d09d4d52ab74233505ed8777 GIT binary patch literal 430 zcmZ>93{hZXU}RtbVheLa6JrxY0|R4Ib907({Nj>=#B2pa28O>ta2E<3fl7gR0gz$_ zVswCFiiHW>6eFyrtO9B$Xo{sF+!SN1rW_{16f*;ak4&(da)%gG3=uvu#cIkg9HuZZ l7#bOyn3};fxnyQ%rz+%>=IFshz~KuGU7#W0I04bf0091+Z`A+* literal 0 HcmV?d00001 diff --git a/src/db/product.TBL b/src/db/product.TBL new file mode 100644 index 0000000000000000000000000000000000000000..b12b97e5230d296e2302e8f7f0f556b8ff81a66a GIT binary patch literal 80 zcmWG>@=;)8U|>i}EK1H#No5G;V_?Wj%uNLfF$BvoFccJJCWAPhEDQ`~i6vk)o=gl3 W#fdqoX+`93{hYJ0{{qn0Qvv` literal 0 HcmV?d00001 diff --git a/src/db/stock.TBL b/src/db/stock.TBL new file mode 100644 index 0000000000000000000000000000000000000000..9cb9c836db9c2df50ba15b1615cc25b84cc32549 GIT binary patch literal 44 tcmWG>@=;)BU|`5kOUq17Wnl1RVPHr~EK1H#No5G;V_+yOsRYVG!~xcz2%7)^ literal 0 HcmV?d00001 diff --git a/src/db/test.DAT b/src/db/test.DAT new file mode 100644 index 0000000000000000000000000000000000000000..d2cd9f2dd99e298e84d6a747fe79ae20c6f71e7d GIT binary patch literal 178 zcmZ>93{hZbU}RtbVnznHqQt!H)YPJ?)b!LG28O@tU~v`(m&_7{%wmPq)I5cf)Z!9` zSxg}H%nV+7;d%@=;)BU|>kj&neB#Gi2~&VqhpqEiM7!U;#s@xDkUV3j+fH`YsDG literal 0 HcmV?d00001 diff --git a/src/db/trans.DAT b/src/db/trans.DAT new file mode 100644 index 0000000000000000000000000000000000000000..d961fa1323a638472d3b40d650275d1b76b0ec6e GIT binary patch literal 10 NcmZ>93{hYJ0{{qn0Qvv` literal 0 HcmV?d00001 diff --git a/src/db/trans.TBL b/src/db/trans.TBL new file mode 100644 index 0000000000000000000000000000000000000000..3276d6c4ed94fd72d05258ca97580f2c3cc1f536 GIT binary patch literal 128 zcmXBMOA3G>07cPD1W|+5&{~=a&1wUEtQ?ePM!5UbW`_&!4QQMOAt92eV;b8 u=w)=FLSKSY$L}K8n`Du}G}>7&lD>xLmT^k##-_{kb2%S#@+;N0yWbyF$rx|| literal 0 HcmV?d00001 diff --git a/src/font/apibus!.txt b/src/font/apibus!.txt new file mode 100644 index 00000000..4c519730 --- /dev/null +++ b/src/font/apibus!.txt @@ -0,0 +1,26 @@ +# apibus.txt + +# chs2cmd infile.chs [outfile.cmd] slot +chs2cmd set00nld.chs lcd0.cmd 0 +chs2cmd set01nld.chs lcd0.cmd 1 +chs2cmd set02nld.chs lcd0.cmd 2 +chs2cmd set03nld.chs lcd0.cmd 3 +chs2cmd set04nld.chs lcd0.cmd 4 +chs2cmd set00nld.chs lcd1.cmd 0 +chs2cmd set01nld.chs lcd1.cmd 1 +chs2cmd set02nld.chs lcd1.cmd 2 +chs2cmd set03nld.chs lcd1.cmd 3 +chs2cmd set04nld.chs lcd1.cmd 4 + +# chs2hfm infile.chs device slot family style +chs2hfm set00nld.chs 0 0 sans regular +chs2hfm set01nld.chs 0 1 sans bold +chs2hfm set02nld.chs 0 2 sans regular +chs2hfm set03nld.chs 0 3 sans condensed +chs2hfm set04nld.chs 0 4 sans regular +chs2hfm set00nld.chs 1 0 sans regular +chs2hfm set01nld.chs 1 1 sans bold +chs2hfm set02nld.chs 1 2 sans regular +chs2hfm set03nld.chs 1 3 sans condensed +chs2hfm set04nld.chs 1 4 sans regular + diff --git a/src/font/apibus.hfm b/src/font/apibus.hfm index f29a71880c7791e587b550639112cd57c4593efb..fc1c9f074b713bc537dc0ae5b92aa8ff1159320e 100644 GIT binary patch literal 1697 zcmeHG&2AJi49?h&ogZg@R;9cl;?^giNQgr(NT41#^NxE2%9pgGc6TK>ajPeBV#oI9 zWbF6vrtm{4eA9_oe*XIXpqJ!F=txY9k%%T1iqBTWW)^c&a7>A&sef2373?I68LPqv zgG8xxZ;5fJqLSK)cn;^e=RhY@TVLD~&*@2QeDx-ti1m5VNFg89Alom|{|Lf1u%nXQR^hxH&9! zpywUEUXmZ76OmRAGwzU^n&et)_0qYhyXSST?xnN}$n3S{2CdHG`z reA*9h&^0gn;eN=^{jkN;e)tM`?}xuvehfEi;en=b&l(mq+86x;l-O^F literal 2664 zcmeHHJ#Q2-5FOhyUeDZ034#Jemy@VSiWCtNzl4HcfbuVs4#Cf$NIFDu4H6`I<6G}- zHUS+HMT&c?^?bY;&-&zh7oP%MSfq~@V&Y%FZ}0LPUGCS&MRp=FOv1B8N|I$8#;rSe zoNMb4MUhSS*dtN8M@@fA%;tBdxoe+a=Frlwk>gH_DrRbt!jmGFTyoKtacT_IJcJu)2niELb?u%@uY}x7`5Irss>8&ISuY* z%W9$y-$xa{_5g2D{Fbe}*~7!;4fbFfV?G8ouq{mM_?CH!f7QsrzJPuG6`%K#+sS#3 z%>9}r;@aZMrj#-#j+3I85;Edo7+g!vH4;SV0ht8L0Q@_mXE&%`WOQzU%_p(%>hO`1 zbj|(8W%(~SD$CUfG_LTT;C-_^^=*!qZr{SIp{E)^Jxc_-BqO3sg+hI9=?mh5C)W5U zeGY`0zQ&-!RV0$3p6HIQ648p@5u>U@LBfg_tiHnnZ=_SKjIIM|_wA8B?PYQ=lT{e^ yGCAtoUM8Q1YPw9G%R`y`fp{vD-}6J6ynz-@W%8!%E|c#~=#m4SiO{tM`e64wUa2Sm diff --git a/src/font/apibus.txt b/src/font/apibus.txt index 4c519730..f4da09a1 100644 --- a/src/font/apibus.txt +++ b/src/font/apibus.txt @@ -1,26 +1,44 @@ # apibus.txt +# bmp2txt infile.bmp [outfile.txt] +bmp2txt sans07r.bmp +bmp2txt sans07b.bmp +bmp2txt sans09r.bmp +bmp2txt sans12r.bmp +bmp2txt sans16r.bmp +bmp2txt sans07c.bmp + +# txt2chs infile.txt [outfile.chs] x_space y_space +txt2chs sans07r.txt 1 3 +txt2chs sans07b.txt 1 3 +txt2chs sans09r.txt 1 4 +txt2chs sans12r.txt 2 5 +txt2chs sans16r.txt 2 7 +txt2chs sans07c.txt 1 3 + # chs2cmd infile.chs [outfile.cmd] slot -chs2cmd set00nld.chs lcd0.cmd 0 -chs2cmd set01nld.chs lcd0.cmd 1 -chs2cmd set02nld.chs lcd0.cmd 2 -chs2cmd set03nld.chs lcd0.cmd 3 -chs2cmd set04nld.chs lcd0.cmd 4 -chs2cmd set00nld.chs lcd1.cmd 0 -chs2cmd set01nld.chs lcd1.cmd 1 -chs2cmd set02nld.chs lcd1.cmd 2 -chs2cmd set03nld.chs lcd1.cmd 3 -chs2cmd set04nld.chs lcd1.cmd 4 +chs2cmd sans07r.chs lcd0.cmd 1 +chs2cmd sans07b.chs lcd0.cmd 2 +chs2cmd sans09r.chs lcd0.cmd 3 +chs2cmd sans12r.chs lcd0.cmd 4 +chs2cmd sans16r.chs lcd0.cmd 5 +chs2cmd sans07c.chs lcd0.cmd 6 +chs2cmd sans07r.chs lcd1.cmd 1 +chs2cmd sans07b.chs lcd1.cmd 2 +chs2cmd sans09r.chs lcd1.cmd 3 +chs2cmd sans12r.chs lcd1.cmd 4 +chs2cmd sans16r.chs lcd1.cmd 5 # chs2hfm infile.chs device slot family style -chs2hfm set00nld.chs 0 0 sans regular -chs2hfm set01nld.chs 0 1 sans bold -chs2hfm set02nld.chs 0 2 sans regular -chs2hfm set03nld.chs 0 3 sans condensed -chs2hfm set04nld.chs 0 4 sans regular -chs2hfm set00nld.chs 1 0 sans regular -chs2hfm set01nld.chs 1 1 sans bold -chs2hfm set02nld.chs 1 2 sans regular -chs2hfm set03nld.chs 1 3 sans condensed -chs2hfm set04nld.chs 1 4 sans regular +chs2hfm sans07r.chs 0 1 sans regular +chs2hfm sans07b.chs 0 2 sans bold +chs2hfm sans09r.chs 0 3 sans regular +chs2hfm sans12r.chs 0 4 sans regular +chs2hfm sans16r.chs 0 5 sans regular +chs2hfm sans07c.chs 0 6 sans condensed +chs2hfm sans07r.chs 1 1 sans regular +chs2hfm sans07b.chs 1 2 sans bold +chs2hfm sans09r.chs 1 3 sans regular +chs2hfm sans12r.chs 1 4 sans regular +chs2hfm sans16r.chs 1 5 sans regular diff --git a/src/font/large.psd b/src/font/large.psd deleted file mode 100644 index d2f7656a5149b6e47f8d2f0a60b9d3ea24a92591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64357 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 diff --git a/src/font/lcd0.cmd b/src/font/lcd0.cmd index 1f9121d5bcd39399b855c7170f83025c72849668..2cf784c15d78a002fb59d81dc7cb4537b55b1802 100644 GIT binary patch literal 12499 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 K@HRM>TKpLR literal 13209 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 diff --git a/src/font/lcd1.cmd b/src/font/lcd1.cmd index 1f9121d5bcd39399b855c7170f83025c72849668..81280083d42dd2e0ecb0e0067ce1d8f246a9916f 100644 GIT binary patch literal 10965 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 diff --git a/src/font/set00nld.c b/src/font/set00nld.c index ff767a19..14bad0e4 100644 --- a/src/font/set00nld.c +++ b/src/font/set00nld.c @@ -1,35 +1,35 @@ /* set00nld.c generated from apibus.hfm, do not edit! */ -0x06,0x01,0x02,0x03,0x04,0xfc,0xfd,0xfe, -0xff,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x07,0x06,0x0c,0xf4,0x06,0x06, -0x06,0x02,0x04,0x06,0x06,0x06,0x06,0x03, -0x04,0x04,0x06,0x06,0x03,0x06,0x03,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x03,0x03,0x05,0x06,0x05,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x02,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x04,0x06,0x04,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x02,0x05,0x05,0x03,0x06,0x06,0x06, -0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x05,0x02,0x05,0x07,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x03,0x06,0x03,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x03,0x07,0x0a,0x09,0x06,0x07, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 diff --git a/src/font/set01.bmp b/src/font/set01.bmp deleted file mode 100644 index c49ae7a6b180c702df08afc3f9b7533240e18483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26580 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 diff --git a/src/font/set01.txt b/src/font/set01.txt deleted file mode 100644 index 2b3e6462..00000000 --- a/src/font/set01.txt +++ /dev/null @@ -1,1056 +0,0 @@ -at 15,17 size 2,10 - -## -## -## -## -## - -##__ - - -at 21,17 size 4,10 -## ## -## ## -## ## - - - - -________ - - -at 30,17 size 7,10 - - ## ## - ## ## - ########## - ## ## -########## - ## ## -__##__##______ - - -at 41,17 size 6,10 - ## - ## - ######## -## ## - #### - #### - ## ## -########____ - ## - ## -at 51,17 size 10,10 - - #### ## -## ## ## -## ## ## - #### ## #### - ## ## ## - ## ## ## -____##______####____ - - -at 65,17 size 7,10 - - #### -## ## -## ## - #### ## -## ## ## -## ## -__######__##__ - - -at 76,17 size 2,10 -## -## -## - - - - -____ - - -at 82,17 size 4,10 - ## - ## -## -## -## -## -## -##______ - ## - ## -at 90,17 size 4,10 -## - ## - ## - ## - ## - ## - ## -____##__ - ## -## -at 99,17 size 6,10 - ## -## ## ## - ###### -## ## ## - ## - - -____________ - - -at 108,17 size 8,10 - - ## - ## - ## -############## - ## - ## -______##________ - - -at 120,17 size 3,10 - - - - - - - ## -__##__ -## - -at 127,17 size 4,10 - - - - -###### - - -________ - - -at 135,17 size 2,10 - - - - - - -## -##__ - - -at 141,17 size 5,10 - ## - ## - ## - ## - ## - ## - ## -##________ -## - -at 151,17 size 6,10 - - ###### -## ## -## ## -## ## -## ## -## ## -__######____ - - -at 160,17 size 6,10 - - ## -###### - ## - ## - ## - ## -##########__ - - -at 170,17 size 6,10 - - ###### -## ## - ## - ## - ## - ## -##########__ - - -at 180,17 size 6,10 - - ###### -## ## - ## - #### - ## -## ## -__######____ - - -at 190,17 size 6,10 - - ## - #### - ## ## -## ## -########## - ## -______##____ - - -at 200,17 size 6,10 - -########## -## -######## - ## - ## -## ## -__######____ - - -at 210,17 size 6,10 - - #### - ## -## -######## -## ## -## ## -__######____ - - -at 220,17 size 6,10 - -########## - ## - ## - ## - ## - ## -__##________ - - -at 230,17 size 6,10 - - ###### -## ## -## ## - ###### -## ## -## ## -__######____ - - -at 239,17 size 6,10 - - ###### -## ## -## ## - ######## - ## - ## -__####______ - - -at 250,17 size 2,10 - - - -## -## - -## -##__ - - -at 257,17 size 3,10 - - - - ## - ## - - ## -__##__ -## - -at 265,17 size 7,10 - - - #### - #### -#### - #### - #### -______________ - - -at 277,17 size 7,10 - - - -############ - -############ - -______________ - - -at 289,17 size 7,10 - - -#### - #### - #### - #### -#### -______________ - - -at 300,17 size 5,10 - -###### - ## - ## - ## - ## - -__##______ - - -at 7,41 size 9,10 - - ########## - ## ## -## ###### ## -## ## ## ## -## ## ## ## -## ## ## ## -##____####__##____ - ## - ######## -at 20,41 size 8,10 - - ## - ## ## - ## ## - ## ## - ########## - ## ## -##__________##__ - - -at 31,41 size 6,10 - -###### -## ## -## ## -######## -## ## -## ## -########____ - - -at 41,41 size 7,10 - - ###### - ## ## -## -## -## - ## ## -____######____ - - -at 52,41 size 7,10 - -######## -## ## -## ## -## ## -## ## -## ## -########______ - - -at 63,41 size 5,10 - -######## -## -## -######## -## -## -########__ - - -at 73,41 size 6,10 - -########## -## -## -######## -## -## -##__________ - - -at 82,41 size 7,10 - - ###### - ## ## -## -## ###### -## ## - ## ## -____########__ - - -at 93,41 size 7,10 - -## ## -## ## -## ## -############ -## ## -## ## -##________##__ - - -at 104,41 size 4,10 - -###### - ## - ## - ## - ## - ## -######__ - - -at 111,41 size 5,10 - - #### - ## - ## - ## - ## - ## -######____ - - -at 120,41 size 7,10 - -## ## -## ## -## ## -###### -## ## -## ## -##________##__ - - -at 131,41 size 6,10 - -## -## -## -## -## -## -##########__ - - -at 140,41 size 8,10 - -#### #### -#### #### -## ## ## ## -## ## ## ## -## ## ## -## ## ## -##__________##__ - - -at 152,41 size 6,10 - -## ## -#### ## -## ## ## -## ## ## -## #### -## ## -##______##__ - - -at 163,41 size 8,10 - - ###### - ## ## -## ## -## ## -## ## - ## ## -____######______ - - -at 174,41 size 6,10 - -######## -## ## -## ## -## ## -######## -## -##__________ - - -at 184,41 size 8,10 - - ###### - ## ## -## ## -## ## -## ## - ## ## -____######______ - ## - #### -at 195,41 size 7,10 - -######## -## ## -## ## -######## -## ## -## ## -##________##__ - - -at 205,41 size 6,10 - - ###### -## ## -## - ###### - ## -## ## -__######____ - - -at 215,41 size 8,10 - -############## - ## - ## - ## - ## - ## -______##________ - - -at 225,41 size 7,10 - -## ## -## ## -## ## -## ## -## ## -## ## -__########____ - - -at 235,41 size 8,10 - -## ## - ## ## - ## ## - ## ## - ## ## - ## ## -______##________ - - -at 247,41 size 10,10 - -## ## ## -## ## ## - ## ## ## ## - ## ## ## ## - ## ## ## ## - ## ## -____##______##______ - - -at 260,41 size 6,10 - -## ## -## ## - ## ## - ## - ## ## -## ## -##______##__ - - -at 269,41 size 8,10 - -## ## - ## ## - ## ## - ## - ## - ## -______##________ - - -at 280,41 size 6,10 - -########## - ## - ## - ## - ## -## -##########__ - - -at 290,41 size 4,10 -###### -## -## -## -## -## -## -##______ -## -###### -at 297,41 size 5,10 -## -## - ## - ## - ## - ## - ## -______##__ - ## - -at 307,41 size 4,10 -###### - ## - ## - ## - ## - ## - ## -____##__ - ## -###### -at 315,41 size 7,10 - - #### - ## ## -## ## - - - -______________ - - -at 325,41 size 7,10 - - - - - - - -______________ - -############ -at 8,65 size 3,10 -## - ## - - - - - -______ - - -at 17,65 size 6,10 - - - - ###### - ## - ######## -## ## -__########__ - - -at 26,65 size 6,10 -## -## -## -######## -## ## -## ## -## ## -########____ - - -at 36,65 size 5,10 - - - - ###### -## -## -## -__######__ - - -at 45,65 size 6,10 - ## - ## - ## - ######## -## ## -## ## -## ## -__########__ - - -at 55,65 size 6,10 - - - - ###### -## ## -########## -## -__########__ - - -at 63,65 size 5,10 - #### - ## - ## -######## - ## - ## - ## -__##______ - - -at 71,65 size 6,10 - - - - ######## -## ## -## ## -## ## -__########__ - ## - ###### -at 81,65 size 6,10 -## -## -## -######## -## ## -## ## -## ## -##______##__ - - -at 91,65 size 2,10 - -## - -## -## -## -## -##__ - - -at 96,65 size 3,10 - - ## - -#### - ## - ## - ## -__##__ - ## -## -at 104,65 size 6,10 -## -## -## -## ## -## ## -###### -## ## -##______##__ - - -at 113,65 size 2,10 -## -## -## -## -## -## -## -##__ - - -at 120,65 size 10,10 - - - -######## ###### -## ## ## -## ## ## -## ## ## -##______##______##__ - - -at 133,65 size 6,10 - - - -######## -## ## -## ## -## ## -##______##__ - - -at 143,65 size 6,10 - - - - ###### -## ## -## ## -## ## -__######____ - - -at 152,65 size 6,10 - - - -######## -## ## -## ## -## ## -########____ -## -## -at 162,65 size 6,10 - - - - ######## -## ## -## ## -## ## -__########__ - ## - ## -at 172,65 size 4,10 - - - -## ## -#### -## -## -##______ - - -at 180,65 size 5,10 - - - - ###### -## - #### - ## -######____ - - -at 187,65 size 5,10 - - ## - ## -######## - ## - ## - ## -____####__ - - -at 196,65 size 6,10 - - - -## ## -## ## -## ## -## ## -__########__ - - -at 206,65 size 5,10 - - - -## ## -## ## -## ## - #### -__####____ - - -at 215,65 size 6,10 - - - -## ## -## ## ## -## ## ## - ## ## -__##__##____ - - -at 227,65 size 6,10 - - - -## ## - ## ## - ## - ## ## -##______##__ - - -at 236,65 size 5,10 - - - -## ## -## ## -## ## - #### -____##____ - ## - ## -at 246,65 size 5,10 - - - -######## - ## - ## -## -########__ - - -at 254,65 size 6,10 - #### - ## - ## - ## - ## -#### - ## -____##______ - ## - #### -at 265,65 size 2,10 -## -## -## -## -## -## -## -##__ -## -## -at 271,65 size 6,10 -#### - ## - ## - ## - ## - #### - ## -____##______ - ## -#### -at 282,65 size 7,10 - - - - ## ## -## #### ## -## ## - -______________ - - -at 293,65 size 7,10 - - ###### - ## ## -######## - ## -######## - ## ## -____######____ - - -at 303,65 size 6,10 - - - ## - ######## -## -## -## -__########__ - ## - diff --git a/src/font/set01nld.c b/src/font/set01nld.c index 6db354b8..18493ed2 100644 --- a/src/font/set01nld.c +++ b/src/font/set01nld.c @@ -1,35 +1,35 @@ /* set01nld.c generated from apibus.hfm, do not edit! */ -0x08,0x01,0x02,0x03,0x04,0xfc,0xfd,0xfe, -0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x09,0x08,0x0c,0xf4,0x08,0x08, -0x08,0x04,0x07,0x09,0x08,0x09,0x09,0x05, -0x06,0x06,0x09,0x08,0x05,0x08,0x04,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x04,0x05,0x06,0x08,0x06,0x08, -0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x04,0x08,0x08,0x08,0x09,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09, -0x08,0x08,0x08,0x06,0x08,0x06,0x09,0x01, -0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x04,0x06,0x08,0x05,0x09,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09, -0x08,0x08,0x08,0x08,0x04,0x08,0x09,0x09, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x05,0x08,0x04,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x04,0x09,0x0b,0x0a,0x08,0x0a, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0xe2,0x08 +0x06,0x01,0x02,0x03,0x04,0xfc,0xfd,0xfe, +0xff,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x0c,0xf4,0x06,0x06, +0x06,0x02,0x04,0x07,0x06,0x0a,0x07,0x02, +0x04,0x04,0x06,0x08,0x03,0x04,0x02,0x05, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x02,0x03,0x07,0x07,0x07,0x05, +0x09,0x08,0x06,0x07,0x07,0x05,0x06,0x07, +0x07,0x04,0x05,0x07,0x06,0x08,0x06,0x08, +0x06,0x08,0x07,0x06,0x08,0x07,0x08,0x0a, +0x06,0x08,0x06,0x04,0x05,0x04,0x07,0x07, +0x03,0x06,0x06,0x05,0x06,0x06,0x05,0x06, +0x06,0x02,0x04,0x06,0x02,0x0a,0x06,0x06, +0x06,0x06,0x04,0x05,0x05,0x06,0x05,0x06, +0x06,0x05,0x05,0x06,0x02,0x06,0x07,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06 diff --git a/src/font/set02.bmp b/src/font/set02.bmp deleted file mode 100644 index 0c7e2e80152f5cd479a9c2cc6025a049f12b93f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29048 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 diff --git a/src/font/set02.cmd b/src/font/set02.cmd deleted file mode 100644 index 160af2d0f1ba2b104a34d9cfdc81375082264549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1607 zcmds0O^6&t6z-{??w;L_X)z%kR-_T}=b*GM$Ve6$mjqUEF_1kN5K=XVh+z{NgtZTi zv=Sodo>tU7miBksnD#Zje7ohX!;Hy`MfxpQO*w=jjSP zLXXik`UYL6AJC8KC-frynqHwl)9dsmy+t_-*&KV2&9kT3vuuSOVaHg`-eMcNP_p1sKESOd=3a zDUsk4{MZmkz~ilSE5>bM7*6p+C4<&t!epm{2LceTobmlIjN^X4C~DVIfUvaY(i4?{ z7}@M*1Wcw~rqO0vd(w+~FK$kv2(w0wBFrL!8d(I)MoA)svRME{+?FDX(lM1By-=_K zUtpmMRO?2f5Rp6fC7U|V6jLe*NRTu*sKgOmK@Ub~LE}LdVT^1;IjTmbMg$;$ zFi7#{@b?QBPMyMrlb5c4{^9yb%z`Qiiwm+eFhaK5W}~|rZQ7K2*ebs5?xZ=(RuF8> z+GUnyNj*F8w9@K$alCl7n0Mx#rkEue2)8q2xZe(mXQzx|a;8GD7!{s;QS|$99EQGc zYj#xlsz4J9d#l5aFFR8x5hcc+ml(o)nr=F-B82p|P z24NxT*=k^WTL5kU5e__oDNJ^SQ(?1EEr~9{WVq}|Xk$D(;Nt@4#uqZ74&6|KK}ge@ z{2yb0GE4AXHF^!4Ask$ztcQCM!|DczEE#tt-`?IndeoNCP{gvOL?DF0zXJLPw>zoO o<;W0p^LAiO!5lC>3IlT0!R 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 a+zE7U=jnTwcGtNR=-kfJ_pYON2mA*Tu{aO_ diff --git a/src/font/set03.chs b/src/font/set03.chs deleted file mode 100644 index 05c355bed2da64c06d018a031562c958073d49dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1826 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 diff --git a/src/font/set05.cmd b/src/font/set05.cmd deleted file mode 100644 index c365d83ab395fa2922d0558fa3a515dd7ef7f405..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3528 zcmds3&5Inz6@S}3(>)*6)3fW{xSgGBTe*dV&>Q5X9R`gY6r;=e_Fr+QcG0 zr(V-tU0wD1z2EP>SGE52=SJSvg%_W{bZLA0!i9?$x3^z<>9Sq7nwDqz*0S}KwPrnS zUA8}uJY%h!nZNfotZ!Idi(BtnA6R!SZPo2B+uyXmhgx2>e`x>G{=ojL{i(fC`Br7O z@{`K%Du1awtT@##R=27btFKhwseV}fd)0F`otK?!&U?<#`NVnTcZS&`fa(;0Hi#w^_@f0bUSHVD3xbP26^p#DMi*6Bxm3Z z9DB)H1xP|Mkay1S!#>=B0r;|_D)_g3Rmg$)PIL4ZcG_JB_88n_Fbd2S!MzCfc4YU8 zf}1HEMoT}V%WkE%s~lVEm82a)PrN2M%BBc|bHPq9Jd#?b@(rC2-VNR3O5Z8nKY?w=t7y10n zhR1H-jiZ!vDYJUtIyreNSZT%LcAsMM`(`^J}e39 zle{Ggu?M=9wDFs?r7K&qBV&YA$wC);IuA-cav;fKk^v0F(nQNl5BlMYP{d}2gj;BV zQl%%Hr==e_r%;6|r!1jGB|3x+Aw#H?cnl_M6~Bgz>_{}pV4~0p#AAY4pZG1u)j)-0 z8d_zG9-M=5wa<_WFbz9nx8F|Fw0xhC_Rm(r@Tc0AK6F8&bP*vNNrC90pSVRF7Xl=Nn;#%Ks6TaW-pw9zx6avB9h>$Fc#dMBC|$0;Ni=TM*i_ksiVzh!6eBo* zLpXvQ?!q5oB!+}sDq~8Ui6v8uPCZR(As?!xH}uBQ*3s7C?&0nMw$a<8w}(WL5#mEf zI?AG>=;P=xx)~irBb4F$!}qatQSnNNSL8z@A03Vy&ISGNARik2M|(~%jnTeI8;Sx> zPT7QdR{w_{a!J7+oFfd1&(Jqo!~o}na-cDD4HhZ%q_5!(iewR}v`{^1;^aR{;$nHE zK4CD6z-c5-o+?dIODG5f>6B57K^?>~#daCx1c-|%P1}a#kxV15d3mKb_~s2+Ue7SO z?uqhhxlmr@r;4%k^H>Ga6TWaUEj{503}c1+L!@HzL3J>hqBsqZ0AISMC@uP7@S;*+ zDr;G`94uM0Qj6bcZ^`p1KeK0^(_SD=!Ar5!M5YpS%w9mdf`bsD2&&*f`z|V(>`n6r zMsho;V@VONU^3uwiY{SZT3)hLsQYfeqS7cBvxHG$egSz#<}kdd-Ns&5;s&>j!xQ<4 zO7o;}n)0cJSSxP9xS258W>cYNa}{tg5Fu^y%f<^%_mKBg%9Sa-Mg#7(1GT}&p3#7T zP2Z-upFZ1Dp**hlmp9JgW|`-F)^I`lNy>nqN8<;82%a`x+%~SAzLn<~fW=WP3ag9( zy!qxFOxDTtX*f=og8MKn1$d%ZUesp#JZ<*g%{=)6@w{c$`tH zL{D<1%B`LNc@jTU{+wX@xBmkutp zPN@{nZ|e}6*&(jm6dYk7mlk!B#!~0>)D#2RM5PzcDgsk{o_;unF|uY(FebBTO}UQt z^k8AE1z1cZGP^c&YOzCVG-RlHs)C-Fq_~JOekvWDqv2sYak^}eU16ge!%S+d6TYqe jY$J#<(JA`zj>bh;I5q-5v-N{!vQnn~lk%+m+T{NRN_irk diff --git a/src/font/set05.txt b/src/font/set05.txt deleted file mode 100644 index 1739a518..00000000 --- a/src/font/set05.txt +++ /dev/null @@ -1,2145 +0,0 @@ -at 32,42 size 3,21 - -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### - - -#### -####__ - - - - -at 48,42 size 7,21 -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### - - - - - - - - - - -______________ - - - - -at 66,42 size 15,21 - - ## ## - ## ## - ## ## - ## ## - ## ## - ########################## - ## ## - ## ## - ## ## - ## ## -########################## - ## ## - ## ## - ## ## - ## ## -____##________##______________ - - - - -at 90,42 size 12,21 - ## - ## - ## - ############ - ################## -###### ## ## -#### ## -#### ## -###### ## - ############## - ############ - ## ###### - ## #### - ## #### -#### ## ###### -#################### -__##############________ - ## - ## - ## - ## -at 113,42 size 21,21 - - ######## #### - ############ #### -###### ###### #### -#### #### #### -#### #### #### -#### #### #### -###### ###### #### - ############ #### ######## - ######## #### ############ - #### ###### ###### - #### #### #### - #### #### #### - #### #### #### - #### ###### ###### - #### ############ -__________####______________########______ - - - - -at 144,42 size 17,21 - - ########## - ############## - ###### ###### - #### #### - #### #### - #### #### - ########## #### - ########## #### - #### #### #### -#### ###### #### -#### ######## -#### ###### -#### ######## -######## ############ - ################ ###### -______##########__________######__ - - - - -at 168,42 size 3,21 -#### -#### -#### -#### -#### -#### - - - - - - - - - - -______ - - - - -at 182,42 size 7,21 - ###### - #### - #### - #### - #### - #### -###### -#### -#### -#### -#### -#### -#### -#### -###### - #### -__####________ - #### - #### - #### - ###### -at 200,42 size 7,21 -###### - #### - #### - ###### - #### - #### - ###### - #### - #### - #### - #### - #### - #### - #### - ###### - #### -______####____ - ###### - #### - #### -###### -at 216,42 size 12,21 - ## - ## -#### ## #### - ###### ## ###### - ########## - ########## - ###### ## ###### -#### ## #### - ## - ## - - - - - - -________________________ - - - - -at 239,42 size 15,21 - - - - #### - #### - #### - #### - #### - #### -############################ -############################ - #### - #### - #### - #### - #### -____________####______________ - - - - -at 265,42 size 6,21 - - - - - - - - - - - - - - - ###### - #### -__######____ - #### - #### -#### -#### -at 281,42 size 8,21 - - - - - - - - - -############## -############## - - - - - -________________ - - - - -at 299,42 size 4,21 - - - - - - - - - - - - - - -###### -###### -######__ - - - - -at 312,42 size 11,21 - #### - #### - #### - ###### - #### - #### - #### - #### - ###### - #### - #### - #### - #### - #### - #### - #### -__######______________ - #### - #### -#### - -at 331,42 size 12,21 - - ########## - ############## - ###### ###### - #### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### - #### #### - ###### ###### - ############## -______##########________ - - - - -at 354,42 size 9,21 - - #### - #### -########## -########## - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### -################ -################__ - - - - -at 375,42 size 11,21 - - ############ -################ -## ###### - #### - #### - #### - #### - #### - #### - ###### - ###### - ###### - ###### -###### -#################### -####################__ - - - - -at 397,42 size 11,21 - - ############## -################## -## ###### - #### - #### - #### - ######## - ######## - #### - #### - #### - #### - #### -## #### -################## -__############________ - - - - -at 418,42 size 13,21 - - #### - ###### - ######## - ########## - ###### #### - ###### #### - ###### #### - ###### #### -###### #### -######################## -######################## - #### - #### - #### - #### -________________####______ - - - - -at 440,42 size 11,21 - - ################## - ################## - #### - #### - #### - #### - ############## - ################ - ###### - #### - #### - #### - #### -## #### -################## -__############________ - - - - -at 461,42 size 12,21 - - ########## - ############ - ###### - #### - #### -#### -#### ########## -#################### -###### ###### -#### #### -#### #### -#### #### - #### #### - ###### #### - ############## -______##########________ - - - - -at 484,42 size 12,21 - -###################### -###################### - #### - #### - #### - ###### - #### - #### - #### - #### - ###### - #### - #### - #### - #### -__######________________ - - - - -at 504,42 size 12,21 - - ########## - ################## -###### ###### -#### #### -#### #### -###### #### - ######## ###### - ########## - #### ######## -#### ###### -#### #### -#### #### -#### #### -###### #### - ################## -______##########________ - - - - -at 526,42 size 12,21 - - ########## - ############## - #### ###### -#### #### -#### #### -#### #### -#### #### -###### ###### - #################### - ########## #### - #### - #### - #### - ###### - ############ -____##########__________ - - - - -at 551,42 size 4,21 - - - - - -###### -###### -###### - - - - - - -###### -###### -######__ - - - - -at 568,42 size 6,21 - - - - - - ###### - ###### - ###### - - - - - - - ###### - #### -__######____ - #### - #### -#### -#### -at 585,42 size 13,21 - - - - - #### - ######## - ######## - ######## - ######## -######## -######## - ######## - ######## - ######## - ######## - #### -__________________________ - - - - -at 611,42 size 14,21 - - - - - - - -########################## -########################## - - - -########################## -########################## - - -____________________________ - - - - -at 637,42 size 13,21 - - - - -#### -######## - ######## - ######## - ######## - ######## - ######## - ######## - ######## - ######## -######## -#### -__________________________ - - - - -at 662,42 size 10,21 - - ############ -################ -## ###### - #### - #### - #### - #### - ###### - ###### - #### - #### - #### - - - #### -______####__________ - - - - -at 16,94 size 19,21 - - ############ - #################### - ###### ######## - ###### #### - ###### ############## #### - #### ################ #### -###### #### #### #### -#### #### #### #### -#### #### #### #### -#### #### #### #### -#### #### #### #### -#### #### #### #### -###### ###### ###### ###### - #### ######################## - ###### ######## ############ -____######____________________________ - ######## - ################## - ############## - -at 44,94 size 16,21 - - ###### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - ###### ###### - ###################### - ###################### - #### #### - #### #### - #### #### -####______________________####__ - - - - -at 68,94 size 13,21 - -################## -#################### -#### ###### -#### #### -#### #### -#### #### -################## -###################### -#### #### -#### #### -#### #### -#### #### -#### #### -#### ###### -###################### -##################________ - - - - -at 90,94 size 14,21 - - ############ - #################### - ###### ###### - ###### ## - #### -#### -#### -#### -#### -#### -#### - #### - ###### ## - ###### ###### - #################### -________##############______ - - - - -at 114,94 size 15,21 - -################## -###################### -#### ######## -#### ###### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### ###### -#### ######## -###################### -##################____________ - - - - -at 139,94 size 12,21 - -###################### -###################### -#### -#### -#### -#### -###################### -###################### -#### -#### -#### -#### -#### -#### -###################### -######################__ - - - - -at 161,94 size 12,21 - -###################### -###################### -#### -#### -#### -#### -#################### -#################### -#### -#### -#### -#### -#### -#### -#### -####____________________ - - - - -at 180,94 size 15,21 - - ############## - ###################### - ###### ###### - ###### ## - #### -#### -#### -#### -#### ############ -#### ############ -#### #### - #### #### - ###### #### - ###### #### - ###################### -__________############________ - - - - -at 206,94 size 14,21 - -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -########################## -########################## -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -####__________________####__ - - - - -at 230,94 size 7,21 - -############ -############ - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### -############ -############__ - - - - -at 245,94 size 9,21 - - ############ - ############ - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - ###### -############## -############______ - - - - -at 265,94 size 14,21 - -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -############ -###### #### -#### ###### -#### ###### -#### ###### -#### ###### -#### ###### -####________________######__ - - - - -at 288,94 size 11,21 - -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#################### -####################__ - - - - -at 308,94 size 16,21 - -###### ###### -######## ######## -######## ######## -#### #### #### #### -#### #### #### #### -#### #### #### #### -#### #### #### #### -#### #### #### #### -#### #### #### #### -#### ###### #### -#### ###### #### -#### ## #### -#### #### -#### #### -#### #### -####______________________####__ - - - - -at 334,94 size 13,21 - -######## #### -######## #### -########## #### -#### #### #### -#### ###### #### -#### #### #### -#### ###### #### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -#### ######## -#### ######## -#### ###### -####______________######__ - - - - -at 357,94 size 16,21 - - ############ - ################## - ###### ###### - ###### ###### - #### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### - #### #### - ###### ###### - ###### ###### - ################## -__________############__________ - - - - -at 383,94 size 11,21 - -############## -################## -#### ###### -#### #### -#### #### -#### #### -#### #### -#### #### -################ -############## -#### -#### -#### -#### -#### -####__________________ - - - - -at 403,94 size 16,21 - - ############ - ################## - ###### ###### - ###### ###### - #### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### - #### #### - ###### ###### - ###### ###### - ################## -__________##########____________ - #### - ###### - ############ - ########## -at 429,94 size 14,21 - -################ -################## -#### ###### -#### #### -#### #### -#### #### -#### #### -#### #### -################ -############## -#### #### -#### ###### -#### ###### -#### ###### -#### ###### -####________________######__ - - - - -at 451,94 size 14,21 - - ############## - ###################### - #### ###### -#### ## -#### -#### - ###### - ################ - ################ - ######## - #### - #### -## #### -###### ###### -###################### -____################________ - - - - -at 473,94 size 15,21 - -############################ -############################ - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### -____________####______________ - - - - -at 497,94 size 13,21 - -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -###### ###### - ###### ###### - ################ -______############________ - - - - -at 518,94 size 16,21 - -#### #### - #### #### - #### #### - #### #### - #### #### - #### #### - ###### ###### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - ########## -____________######______________ - - - - -at 542,94 size 21,21 - -#### #### #### -#### ###### #### - #### ######## #### - #### ######## #### - #### ######## #### - ###### ## #### #### - #### #### #### #### - #### #### #### #### - #### #### #### #### - #### ## #### #### - #### #### #### #### - #### #### #### #### - #### #### #### #### - ###### ###### - ###### ###### -________######____________######__________ - - - - -at 572,94 size 14,21 - -###### ###### - #### #### - #### #### - ###### ###### - #### #### - #### #### - ########## - ###### - ###### - #### #### - #### #### - #### #### - ###### ###### - #### #### - #### #### -######______________######__ - - - - -at 593,94 size 15,21 - -###### ###### - #### #### - #### #### - ###### ###### - #### #### - #### #### - ############ - ######## - #### - #### - #### - #### - #### - #### - #### -____________####______________ - - - - -at 616,94 size 14,21 - -########################## -########################## - ###### - ###### - ###### - ###### - #### - #### - #### - #### - ###### - ###### - ###### -###### -########################## -##########################__ - - - - -at 640,94 size 7,21 -############ -############ -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -####__________ -#### -#### -############ -############ -at 656,94 size 11,21 -#### - #### - #### - ###### - #### - #### - #### - #### - ###### - #### - #### - #### - #### - #### - #### - #### -____________######____ - #### - #### - #### - -at 675,94 size 7,21 -############ -############ - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### - #### -________####__ - #### - #### -############ -############ -at 693,94 size 15,21 - - #### - ######## - ######## - #### #### - #### #### - ###### ###### - #### #### - #### #### -#### #### - - - - - - -______________________________ - - - - -at 716,94 size 12,21 - - - - - - - - - - - - - - - - -________________________ - - -###################### - -at 18,146 size 6,22 -###### - ###### - #### - #### - - - - - - - - - - - - - -____________ - - - - -at 37,146 size 11,22 - - - - - - - ############## - ################ - ## ###### - #### - ############## - ################## -######## #### -#### #### -#### #### -###### ###### - ################## -____########____####__ - - - - -at 59,146 size 12,22 - -#### -#### -#### -#### -#### -#### ######## -#################### -###### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### ###### -#### ###### -################## -####__##########________ - - - - -at 79,146 size 10,22 - - - - - - - ########## - ############## - ###### ## -###### -#### -#### -#### -#### -###### - #### ## - ################ -______##########____ - - - - -at 98,146 size 12,22 - - #### - #### - #### - #### - #### - ########## #### - ################## - ###### #### -###### #### -#### #### -#### #### -#### #### -#### #### -#### #### - #### ###### - #################### -______########____####__ - - - - -at 120,146 size 12,22 - - - - - - - ########## - ################ - ###### #### -###### #### -#### #### -###################### -###################### -#### -#### - ###### ## - ################## -______##############____ - - - - -at 141,146 size 8,22 - - ######## - ########## - ###### - #### - #### -############ -############ - #### - #### - #### - #### - #### - #### - #### - #### - #### -__####__________ - - - - -at 156,146 size 12,22 - - - - - - - ########## #### - ################## - ###### #### -###### #### -#### #### -#### #### -#### #### -#### #### -#### #### - #### ###### - #################### -______########____####__ - #### - ## #### - ################## - ############## -at 178,146 size 11,22 - -#### -#### -#### -#### -#### -#### ######## -################## -###### ###### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -####____________####__ - - - - -at 200,146 size 3,22 - - -#### -#### - - -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -####__ - - - - -at 212,146 size 7,22 - - - #### - #### - - - ########## - ########## - #### - #### - #### - #### - #### - #### - #### - #### - #### -________####__ - #### - ###### -########## -######## -at 229,146 size 12,22 - -#### -#### -#### -#### -#### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -############ -###### ###### -#### ###### -#### ###### -#### ###### -####____________######__ - - - - -at 250,146 size 3,22 - -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -####__ - - - - -at 264,146 size 19,22 - - - - - - -#### ######## ########## -################## ############## -###### ########## ###### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -#### #### #### -####____________####____________####__ - - - - -at 293,146 size 11,22 - - - - - - -#### ######## -################## -###### ###### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -####____________####__ - - - - -at 314,146 size 12,22 - - - - - - - ########## - ############## - ###### ###### -###### ###### -#### #### -#### #### -#### #### -#### #### -###### ###### - ###### ###### - ############## -______##########________ - - - - -at 336,146 size 12,22 - - - - - - -#### ######## -#################### -###### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### ###### -#### ###### -################## -####__##########________ -#### -#### -#### -#### -at 356,146 size 12,22 - - - - - - - ########## #### - ################## - ###### #### -###### #### -#### #### -#### #### -#### #### -#### #### -#### #### - #### ###### - #################### -______##########__####__ - #### - #### - #### - #### -at 378,146 size 8,22 - - - - - - -#### ###### -############## -###### -#### -#### -#### -#### -#### -#### -#### -#### -####____________ - - - - -at 395,146 size 10,22 - - - - - - - ############ - ################ -#### ## -#### -###### - ############ - ########## - ###### - #### -## #### -################ -__############______ - - - - -at 414,146 size 9,22 - - - - #### - #### - #### -################ -################ - #### - #### - #### - #### - #### - #### - #### - ###### - ############ -______##########__ - - - - -at 431,146 size 11,22 - - - - - - -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -#### #### -###### ###### - ################## -____########____####__ - - - - -at 452,146 size 12,22 - - - - - - -#### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - ###### - ###### -________######__________ - - - - -at 473,146 size 17,22 - - - - - - -#### #### #### -#### #### #### - #### ######## #### - #### ######## #### - #### ## ## #### - #### #### #### #### - #### #### #### ## - #### ## ## #### - #### ## ######## - ######## ######## - #### #### -______####____________####________ - - - - -at 498,146 size 12,22 - - - - - - -###### ###### - ###### #### - #### #### - #### #### - ########## - ###### - ###### - ########## - #### #### - #### #### - #### #### -######__________######__ - - - - -at 519,146 size 12,22 - - - - - - -#### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - #### #### - ###### - ###### -________####____________ - #### - #### - #### - ###### -at 540,146 size 11,22 - - - - - - -#################### -#################### - ###### - ###### - ###### - ###### - ###### - ###### - ###### -###### -#################### -####################__ - - - - -at 560,146 size 11,22 - - ######## - ########## - ###### - #### - #### - #### - #### - #### - #### - #### -######## -######## - #### - #### - #### - #### -________####__________ - #### - ###### - ########## - ######## -at 584,146 size 3,22 - -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -#### -####__ -#### -#### -#### -#### -at 600,146 size 11,22 - -######## -########## - ###### - #### - #### - #### - #### - #### - #### - #### - ######## - ######## - #### - #### - #### - #### -________####__________ - #### - ###### -########## -######## -at 621,146 size 15,22 - - - - - - - - - ######## #### - ############ #### - #### ###### #### -#### ###### #### -#### ############ -#### ######## - - - -______________________________ - - - - -at 647,146 size 14,22 - - - ############ - ################## - ######## #### - ###### - #### -###################### -###################### - #### -#################### -#################### - #### - ###### - ######## #### - ################## - ############ -____________________________ - - - - -at 676,146 size 10,22 - - - - #### - #### - #### - ########## - ############## - ###### ## -###### -#### -#### -#### -#### -###### - #### ## - ################ -______##########____ - #### - #### - #### - diff --git a/src/font/set06.bmp b/src/font/set06.bmp deleted file mode 100644 index e995ee456702111a47dbc99f4e4abc5ab8a10956..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20024 zcmeHL1=Ll=7XA=W8VM^5{&nwNoY{MS``h2%Gjm+a{}e5oyByRnXE-2@@ZN~0lz74*g2LqzGcr8} z5KfpdVesC2?;&j1um~3}9KweWkN4kyA0K@10U|_*fQS(zB2uJCh#WaGqC|;;s8ORL zTC`}09z8lf{P07>h!F!ZW5z_RSg{a0c5Hm~(MO0ACl2Dqjf;5k;vs(g_(+f-0Y3it zV*|TRyjvP6VGiOfZ z%9RVbbLU2$Jb92eZ(iifmk;^#=SP781yHbHK@=)f2!#t5Mv)>#P_$@K6f0H?#fuk5 zi4rC7*=L{O^UpuW7himVk|j%`RH;%ZUAi>NlqrLasDO$UE22`R zN~m19GOARmf~r-kqFS|Ts9wD~YSgHKnl)>pR;^m7UAs2w)Tx8Ib?c&Dy?Ur$zdpYF z@=G*m&;Sh^HbkRFjnKGpV>D^f1WlVZMYCqj(7btbv}n-+EnBukt5&Vhx^-)O_0?Bs z)20pDwrz`c?b@Mz`}XM2p##4D`fGIT*b$vNbwcOPozbOB7j*5~72UdZ!#Cf2gYMnC zqeqV(`1adx(X(ey^y<|My?ggYpFVxiw{Ktc>(>wc`}fCy0Ru2_;6Mx-GzfzS55|xo zLojscPz)P34BvhC9fl7dju9h9VC2Y=`2PFvF>2H(j2=B2W5$fZ*s){r!w)~;#~**h zxN+k!e*Ab$m@okoCr-qqNs};n@?=bzG6hqoPQ|oo(=dJdbj+AB12bpN#H?AfFnjiF z%$YL>bLY;*ym|95fBt+dSg-&K7cRu2MT@X_@nS4lvII+)F2%BC%dmX;a;#Xf0xMUp z#Hv-RuzK}stXZ=LYuB#Dx^?UD(@#HP{rdITuwer>Zrq4Xn>Jzd=FQl$Wec`$-HL77 zwqg7B?fCiUpRr@d4(!~y6T5cp!tUL>v1iX7?A^N;`}Xa_{{8!L;J^VKJa`a?4jsbb z!-w(9FTdc|Uw_4sBS&!b=u!Ok+iy5_>==$8KaLY8PT=IplQ?zi6i%N$jWcJ?;OyD6 zICt(Ge*gVCz=!zI+*1u3W*@t5Qy~69)ukq&18~OP2FR*`qzWu=aA9()*@4r8v zK;Zp<``Z_PF?bYt#vW-39g^euBzl1!d=W~-1NEv37Vsa6c$9gBzB@Z4$MenfLR|$i zP=E`i8Xu6Cm<#YIpsN*sI4Tma%5q9%C@)Z%a2}%RJO^Znq=Nf`}m6po& zN`O)19MeRa843#C;!$EQS>luvs|rj?h6*u86L=C4(pDwzFkOMdDQk0dp%EaOqsCK7 zRj!r}y&8n7RB#us5(x-3Wq74PN3t!w5zL}NXap`%))A7SqpEvQo$N;s8D6E;484ES zWHy&6o<&w=!Ct7)&}kE%{iubr^2Q0#Q|cm#iR(})F{-u-As2=tVMP4WO{;D?Aw(BI%5$$WrK|0u12y|g;ge8PbkQ4u7uGr4y#)< z-#Lv+!;g+cIFR$Hf zI&lByDE!h1+`nI5yV-Q${>@SNr4zV+zr1#{>A?LvN5NlF3=;Ys{w%=OYe&xgE6)kN znExvvL`N`U#!(;VtcbTIAbtNbsUCA^o-r$BiEtf9>gsU@w1d%P5X{OYmluYo?L8PZ6GGcW(923Y%WfdeBevC_GXVsoC z%F`opC_qgx0v6!NOA#%ehGDjc_~Fq9n9sKn5r2Uni9~G z+Eo!j8gbEdMoT!wJPd17%nFtjt`)J*|NY2vm6i)nCSCq1oC80!f&Kg8rCVDL+`n}g ze&`17-w!X{+H&Cjt;6s`H*o)ccHa_b*G|q1+nc|LFd^ z4FsL1j91BN~CgM*;<}(amwfLZ-Nn}g~Z_@zEp+#dlpiesb!;aQNu^p}vl#Yfy zTo)zSfu&_D%kO6@rT5R@h6TnKN0nB+<1&Rtl{IP}d)3WMAAKN-Vt6{Dn75?o;`t1j z^Y3DvPJHjqDdr!2)jL9jMIc%k2TI)Izb_Eh5zzZh!TdqQ`o$}R4k?c}^3~WeC|F`4wY6!@^b2#Alhd@MmiXnh@FWelbv3# zm!E7CT~~?1K&fNo6$47Vfx)F@LY<`C>pnkg?eoac*t++0*7^3gzrEJC*Y-^#8~5%V z8*4P0&9SlZ@kyw`d>Dd7uo#xWQdkC)|MVM%6`nVXD`73vVJkFY91g-EI1Xpv99UYt z3=VF=19%M2;5EF1PtXM+7K&l9N~{-~#i-aRVsStm5huiHab8S_Yoaagi(EVvuf$vN zQG693hvcwaEjP$5a;J>tetB3Plc(f)IU%phoAS22Cm+da`9i*t?`0wTvVx0oC9cIy zxD9vVZrq25@Fg~@G9QGyZ8{F;7fdqAMi8&TfhG+3+D}p-N8^L2tW%h^{oD` zf9Rijf&QXvvV0tnU&beMCsm5_P?mE}4B(*4QxpYk{je3Jgwb5$rS-x&HQ=&N5 zQ}zh$7qq)4lA2-}3dJ8rmBFe~b(H&t2`W`6^%D{>=DSD+a!LnyYn8dQvxiAlTMq5f z+-sC*7%5ZCr8*=6)ezQW+YLiT3)2Z1Wd-A&vjU?bZBwe;W=XmvSbHZ9bsrKmK@b>9 zDn2n>WT=e}`e5LeeZI5$8k^2du!3!$MK)36sgX~8grZz3xr2BmC z`jQ67nbL(YjPKATdY&yz>c_?8d=6n%zZiPQjh_bV4GnnRP+FsLFN57B3VZsO=lx28 zMT>$D;AyhuNi;w#@9X*dq>zhqIZ1M&jf&>FWk~T}lAv;#MWI-qlb2J^1kpYNGSb1oMC?o)ne6n^ z%TKn6uB$|0pwuz)iUB3wz~E9cp-xinb^Wci&m%))>)z8@=iA@@_FCUwOV(@{s%#w@ zUAKGp*jS^{Y>thMk6(Zq%!VPD2lHV8EQCdH;h%oPu*CDe;Zj%$b=U+=7>E6E0FJ^b zI0KeeFM)%ba33DQQ+Ne$;UjcGh`C}|EEB86da+q-7qQqU4vAypq&O=k#8uH2_e3t9 zh?nAx_#nOrkVA4W@eV$~$M^!@;CuXp|JLvS%EDO#VrMW^2?EeU zOZ`oM*FW@6Jx71mJxHpCBQQOg2q&cv_6yqG6G=_6429wkqsm}asXEGi#RQcql==w?81r2u139GwytT?)+S$XT zsx621Xzn#iG>nufW>OszfocfrvF(N-qlM{&jIx4p&sc%ckhUpRZnGp^60E%)hq@05 znji=aB^93-E;7_chkZ;$5fuDQU)q!kBo-+0p*GsM*lxEkZ`-z0owF=PyD17*$g=6_ z=~m09Q&X+U$&Aw|CaF03T^W%H9W2q&L1q+LR#0`!(3U!#vCaFgyc#KFSz4wsg`b1- z)P1|%@F+oX?2pSRrSN^S?^GI1Le51}DMOzOwQkSQf-B4PiaW8}2B?^1` zm*@RTf<=ph58!FCNfIv4(Z|{ERSEtUa`&AL@Z`G-D{%5IE zb?d%vk2&G&o-X6`N9xRH&J|qinpj)YyN@}c`=p7gYPeE5LVe~H2>N2-ey8ZNolL~}t@Q{%sPU+F@{PWJgpvX07 zJk#yrTDhjKW$!-4!_Mq^axX><89JmNb^g!BIjZ5z4)DtF`^LM5eTIz~DO7JrY1_A7 zaUZFdNEtqQehGY zrTvO}jwv45Z*Xx@_aS{cy1)~%Jx&?XdrWbk-h=uTbtpQe_u#?3i#m7gOwYIc<8A19 zmi?=@O=gexV_Ou~XVi!*!d<4|@Zg)>eG75c$j4MO?i+2E58`*2lwNXqws@nfw14XM zbeZIn6bErDKA5&h9^SH7Zq;hf zmd*T6sPv}xXQuhiJ2!99eAgB&cHO;2ix#`{(PDQU(sFwkByYHuO+?XQ4Ki(9LCZ{o zmYHOMD|C&MH#1!XWy6gB5y1R35VZ>%Hfr3Y=}tS#w9W6#xPk`OxvR?*W*QU}7BpH%?_8&mJJH`+wHK1-Tt+At2V>0>)dGf-#_^L3H!Hg-DB#dhaWNG`spV&KA@!M z+RxYZDL!(KhbI1}-B16}tM5sFeR$+i-4 z@<(2JYxb8L&b{o48^=BR^4oKkZan&wf4hA2O?N#u>7CMLn_9Yp0zq5oF*R<~@JJ6~ zzr%Jb6a>TDv})M-y5H{(f~h^GuRXl&rJs+uzU0K7t@{)ovF?CI0BGFq$iL1I5D$N^ z?@8wzHL~9qIS5-v&^|&)=DB7Kyv&xai`&qvq}SY8PmQ|m>6y2ecADDpkuiI(_!sz5`a5FPQx4DN9fO`olAd_dKL^%_Ylw^jOih(!K2?ZA-cz zlzhBlpBsPj?jg@kZhq)hr(Za*YsUd?8jfu-uB!Fk9Uq&qaMk;_yN(?P|MHDnHvaCK zCD+WnpnKa#Z+qh6vdRxC2Tr=|+D@yk%=Rg}zqrflDVt}zjYmCn(Y?2Swqn1fFHigU z=riyBAUkFH1qZc#?6`5q9rb9xB`Lrr_}K>*^?1AVFH^^MEIR$Z-cJw8 zUX{2bd;a*W`LA5Q_~d1S+cxRYe@yW%E3)^Wx#_&bZ9cZkDHlv0c>3K}-1zF^bB8V- zR(bH0NA7+8nVQ0Prp#OZhe^W+j=uWqCrid%eag~iuYJGo;8u;x$Dg?Tm%o|6^2o$J zoVcm2=HGkkoTE3q_M_qjFWp*v!){GKeS7TcPrsf%Kl^l#X73IE!2=VnKmLn-t}Huf z(EGb}o$$)k}yLS1y zs-#EzzIVBm6Ca*wBn!J378T{Weoq-4UAzpI=!y!^Sn+jV>N zgDYNpx90Ul*OdKW!IZNm&Aj~M*Cr%x$aBMoJ~r~&pOu~4%{~9;Rf)Tyvdg;h%V+fL zcfdvWymZ`)jV{>v0k`sxKW=`-#1EdSyym`JE?WJqGoxGs@ z=OrZsu&CxEdVDf-!``24Dt&qKzC9;(`nvysPWzM|KYqf%`7ghH_1MIf?{UtUQLjDN zf904KeeQ2w{CNKv<7fUNaRV+~_41P)FMq21sPikQtT_IFi6y6vIRBmtKfM2h#0~u0 z#m(JS|2c2fsE!M6tL)O_<>S9jT+_;rmOuSmdDB}*9XhVXgIDc4@WMY;x;>`7H2ZV=JJEruAYcFgxzvlfbj{W(9JFota!BaNvUDM^MmH$4W~+th1H)fST!_zUE)3;f9~uvCoa9Kv}Aqh@we@L&xW+s9T;*xo9c>)g4r z7M@cr$v^iKc5keQZjb9(C5H?hF<5k@K~_iqb0B-D?JK(S4jMINfQo!u~Bjwkw0NyR`M^a{9M8Kx2@MBu#XS)&nu&8LiqBceQ7qu-qpr~C@`=SGj z4k|jh=to6|$VR1O(V_4kIi_cS;k~=dbXlwHYkyjM*RI$4uC7B2?Cqt9$gjeAJ-cBXTtCjCH3QnzRxTvLD?_kMQ+W zQ}c#6H`VWcyZY85p`q*->NcU?Kh$kQeL$$&g}QyH4-EA|p*}d&KMM6Bq3#gsj-fs@ z)SW_oSg1RP`tVR65$YpDeN?EA4)rmi{&A@PCDg};`nXUZAL^fkx{K7!)%M;FdaX9; z8fdzO`h-xQ80w#f`lL|H4$#~1lu(}<>h7UFE!3xn`ixMY8S1k_{j*S?9cuQm_@+mw zd79$BSE$bk^|_(`w@{xK>hnW=L8vbb_0L0nQK&Bt^)IB}(k8O?lb=fhP47@&8tOiw z?i=cUp}s8CmxsE4s0W1l-$Okx)Pq7jIMhQzJv7wALOndxBSKvq>XD%y73wQOJv!7^ zhI&k>e;MklLj9{y|2ouHhg$97O_2ZLvz2DApGwaU#WO`Ri;5&)6}kPTw3Tvzly*|u zOF2-=K~fHu@*^pSNa-M@qm)BKHjLS?POoD75V{N zOK`c=mn7vX3EnIlsh;Xfq|yIKk35}NQcRM~mxK<+_<`~{)!M>!eNxQGvk3_RBY8uG z>#p8XU8Su^5@t6kMRNV^C&dPy@79xIq3^FdDHcjn)c$QJ#X@&}p!>&?Vy2c&{(n!3 z*rWE(4$g?2*u5p?2U27on7K6U2Zw-Ti;Va_t@5)YGNPPlSmsk9@zdJ79<9gc;ZD5<4DMI#cY_W6WqL2@!z{N444cJTsj@&OUoN>t$zp^0y`b)o>i2>fSHBm` zxc^u7g1VX6Nj5a~|LQGJZ-M`X7Pu~{|5tB;dJEKBpxy%Y7O1yCy#?wmP;Y^H3)EYn z-U9U&sJB491?nwOZ-MWw1^gSQcJ4}dr@PhtR!-LcL#}@y{~B%M-)`SZ;QU8`xp5(#02-Io9Lc(CGyRQcJt+3-{bCK`FeD@e6y@Tiu}4jvPkL* zDK%2$%lpYPN9!v>RT)~L+$=8$T~g_?QlNFxqSxG4NvU*&Lg9p$OV)cHRYI}Z_hhA2 zud7_OP|H{HoL$kgOsLjM*(BGC>X6Hbj7zFrBN@nlumu)^DJTFq`Ifl|Un8HiLP2X4 z(B#@`ZPQU%2e0ZtZKGDo{VFM5DXBm6pw_u6p+xPb0f%(ikTSUjh8L2vLmCRb2%}WF z20|lMjW5pW(5MyIK?QrtW>@J4LZ@ifdY53nDz}rzgZowmXlu+Z4N*TRD+SmJQ zm7;z0M+>EGLBBaXjiy?7$aiEsDs|R+v5Rs^lExl`bOYWAYhn#nSYo~VT0V&w7^;9I z*(lf5o<(#7G)7k`M#34(rC^GMZh25WlZb%Lxu`%SR!xgUNVWHIm5AofM5|RbGHAEx zuvkb#FuO2DVOM&1vqD@jIhYW{9}@|?A;)}x^7%-ht`NnlWkNuW1huwK4m_^Y2APyi zQgo7F0w(jE(6dD9YPU{WUUakM`UT%RTdu&eSlX*{y)K#PuJcLY+y9&>h_N!rS4bSx z_$wy5YDQh{HP*OSZ*g7ii{58tBvvMbK#oNT8WKk=#2cPstnty>?%`tBR@ZnASlW4e z;;%Bv$6kbma2%*X&b>JvCuU`kF(gRTu^L!n@X#V^_)$(te#H;EBR zzG}t?>55EKA{vx4H>4J&=(3q>tcWuc4R8u=^hag9Redkfh*z^YfHs;Dbt$5etQ=J_ z1=&#Oy^tCaL@|MioqL@!jfG5%md20Y6{kwqD8dYzC2>UDAVo+8Il+soat-wg26aQP z7V@~3L2dW~WV4aUA!=wdmK$9PGSH&8>M}P5H5y|XCV-4gLsw6l7*Yk}Obe_0QY^a7dF5`3v@Y|ji|!|qZ0B#wjqQy z-^V)ZJ)%CtDjJ5GTcAf95^fy9T0qd!!^9y9hz9&)qe;6l2WX!Kx<(CJYDnoMb;&Hp zCN5INX=Plgt>4okM{OPT zf7R-mJki9o(a2OR?9J>Re1`h1VBZ*x>`IhN%sbJhQ8Sa0)>PBJ?u*oxER0$45p5b* z(3>^X@7fm;y(SdQy~U0PDQ5eJvPDjkucbt)zlcUqeUYM)U79=u!r!uiWY=vyR_?IA z9gzp?d8RGkj~y;^H_4I12sc`O5xc(}BDDAhZ%>f#_P^$yb}zcgZoJ#u?Y2$&ChizH zboirt!rdp!%s4r8IAEnj);;cVx5}}b&-w>9{jBkEP8+eOTX0rm?x9`gubBh7-Dds} zr_2+mvQo(XI)4{Ry}S-7S+}!L%Rm1i%y?8ogo%L>Vpr!tLU+kr2GdC)SmO?k?v+*Jpc z+vwo-sG>3TDhL>3paV4mU=`r&oc2$B5&%XVG%(D@6Z~+{DWVV*e9V)!2i5##FcrKh zZ8dyj8i>N#IoC$6uB#h)idcg~O|7u;7arE5Hr=eN8f^c7PmWO7nw?BtaHA$giS%fB9OVn-y`bu1$tBl_jmoh@&A5 zx*~vy8Qo{(R7S&{>||s9Ao^IpqxHGY1%Hi92*au*bo+@U2d^wVVdM8j4Wo_B0|s2a%sP)gR7 z3Ldp?l6)#F086i}Ni1#hH=Vozj5?YDY7(#dFK0%%*A+;^!#liIFbfH6cu2+71ir-* z_cl=3B$jfuOPyEanuMr;JUyi?<17|*n$yB&L5E9#BP_%@gF{Q8qJ?51Wa2`%y`}Le zb0ZmoMRR=9P}AD!M2B200NoefjAXMMsN5=Jt61pC5!8(_bQ{JrAT_cI4P^Nk6`49w z(Q&=NV+#Z7vSUi`T4u!>h)|hk###{5W>i)=h!zq)$qOB3q?2N~m1~Vc423kMQn_qy zp;twNWb^MLeD`K_%50912i zB=ap&eJOWkF&O3xk*w@H>@j)koOeWes^_T|5RbNXL)jj{yUdcP2 z6ohiQ(KS>vnJNqr6N^b$ag~bnz{3cw@YfAkO1N22Ey~MoeIH>!e7ZsfItoGJ6#|q= zQAg-o_-fg_U@ui2<~WtH;W?CB9H~$xK)k|1AJ^)WGBE|iH~W`eesHjeiRZoh z$}Pmg9|{iFxsKkzRALq$Qq+OyriydF#QB#sMM6s$8MuZQ}{HPd$2XK1lN7eY>i&S9ilu zv-Klx%(`lA-R;CyeFM&0L*qnU8D=fJRM_g)Pxr*y8lkC*@!lX?u<649VkkzPR>(#GN3rWn z4d^%e8RCO2Pb*k4gUuccN2s+$ZFKUeGWI}aPiIge6fS0q+V`5Qpusn$N@ebeQJ>}% z94O$4nKZvB?@j5K*CtAnjR7VV>0yl*Be1GcF3}W^Kek^5eam5xwgw-l&``KG=&RC@ zHP*~R5wZ@$?&gPWM3Nv6p)D(h#8ouDT0#x)V-^YdA*7quc($NchbCQ6A`iIPT5BYl z64czA?$(~KKzdyKW*kVN$5u8D$abBs>rw-m&=?-GJMGY`8s1($O;0lRD8UvcyX5>CaKmBR0a$nhp|KC zWsEs87**y3cGJlwHobMhyu^QqQ&ad?kJAi3**Ho46e`o5u z`LBf=Aislfo1AR?%8itB4$d~Vjr4Ij*_bL{3V2mQ`eFGijeBg9zJ>dV>nwE7xCh*0 z?jHH8jR$R$e%rFYjot&@a5vWdPW~F?Rq}O+;&0So5BVL6QunT$&HP2S4v+ia*4P$~ zPVP9@$&HuazWB3P=}yu3;QwKbw}p0l`dWwvzY^b-xZB+riIrc8&Dv~JCv3(E*sJa( zvBLx3XtT~fN*)(0zalof`@3he@9u9D)g!C7z>c%P-(>szM(%Ge&Gt_M^0r>~GJNt_ zrcVd*qE!00w)<+iUdFe7IH94F_o|diPsF=G3Qr%}zEJArK~!x)*<@!CC;$A1uu}{? zm%x}>k*r1{+edf;M&1O0)>rywS0Pqx(Ysz+Hc6>c;uU#N^kA1gn(FQE>%f8b2u|TZ zKXg_DDR4CBO54&H^>;4RTKeS)9i4`=Ic0nWf@Wx>rcfC*?(2MGm=l6gs**<7Mo=(H zZNqyrw?WD}-{kTfQsKACFo&2&I?lU=P#LTBHhUyOl=1@nL8phWUaC;3sl4trUZHZ| zXaPa=Xk5RaXY(38WH+B;S@`3*H4vucA|ZGah}onmaP_~Gbo$Ksi&9>%@N)Tjd3B5* zQQOqTMjA$lwJ=XR4cBXU10;XGER)fuA+v0`6cmB$x@3}kz8|nWF4u&GVcT)D{h#Cf ziC9YAL9N>I=!->&7__tSR(}NNTioW?7+&X%4d)aove0Xbru-fpqJiWR@fgmgjP(|s z8<_ZCFOYVRBDgqY3W$+ish!-KfE;ppe3fQX3I*jqVJEU9Q*MkTmxbaeW13|y`hPlJ zp&`oOn+}>ZZuMHs%T3=rk%rtjs|9WTsT!&RcvS=c6;(^ffI05USRsh^Qgm^Y|3#EsgWE!g>vhRO`J5#>p%%Y<_-Ppbq1@ZD%IaJu zB|Rcq)<(?sp0L=l^h`Fj4X1`*4uI`KVZ||Cm|I4z9Fz!T@JV#eTBC+UP0|GT{3o2! ziNo^S;-J)wprqgZfHa55&nC4DFr*{wkyKA^b^4mf&~1B?G%whisRLh?Wf2@TOlLGC zLH9)fJ6qx{WO4ZAmN;8S1M3uWg`JNxbQ@05Baf%9uDPasoQlq7nyxm^Ey&>uyn`w7 z?3vOZRJA}tswIhB=?3z?b8FD!DaTVI{Lmd7EEVTr+zsFW(3Exbj?_QH#S zY@rDU<*O3ZL@Fz%vaO6NFamp805GeTCd^CJ#qN+_S{Mp)!%*;O8F= z%2uBzDr7G3wH95?wCTACMOA($dW3r%{GW_kfbdt z0EUbWPwCw9#Hgl}n;b-pjDwa*;X1mfOe_M6&FXKGY4DFJyTLnTv5ZQKMg|mod4TKa z7@Q;K!5Iu#DaSPZv#VuuA77a-6;e;eGJk9erfPFhb3Z5rKs{#!0IfvMZHQbC1CENWds^ zJ-Q3nKk;fU_S4VDZ=Pl_Bt@75V1j6CiyAQ-=&8t^t5k=lKWGq~22}fA^C2|2$keIK z@zUdGg$4$A>b#7+=LSvqn^P4;R5O}Yk}d`FDv0>GTCO1UQc5351E+Tyl#6@UwL z3fBf-XTf6sr@R7e4L);Tgsp?IviXBL`XCim@|^Fj;GGbN)aYspz4im(pC3+oI1oLl z)>rQ;E!QYg2l)J`1Dq*B&AnN{+Vho&k?a8kEwmMz*(hM!b-J!g6(mAqXw3e!*H*<_ zE<}%6EM^mnB%&v}fhVJMrsBz10~0DFD+jVkn$Fe$o_3%#o$_&NI2cwnIeF;81FN z^AxB%Qnr*XWM*uo~kgNtvC<|Ek*G;p-=TYWP^L(&J3d*62B1Cs*hig6CPg z@Vpk}@hnL#Rlvaakm5KUA99W7zzaBwiriZc4H6A+d7T!XZf&=SQuLuH!Ssq(XSQ4s zW)}QV*)_FIt8^QJ%~Y~i0XYQ{8^lcR_daVaQY$)Sm<=jFUqfg`d2+vN9CvkiJr7Yi}$fTr0|6@jg8{}zQFC^Uyk7WZvhTVB;iMR<|sj2|`UC99-Vvi8cop7sN5 zooxE_t$yxhg2G@}nGnE~-0T+)pKTXO13;mm7l9Q2yhs<>olOp%Mrbw2Ov}yk*v&xb zBBHha6i2tiJAu~!W0e2hayh^;P&k>t`^za72OhZ3K*3XasK&@KtI%iehu$!;04>W5vTYoGl_)PyOEx zMqsNaHi{2xNKa~sg*C2X4d&Wx0K3h>$+f=eHa5Rb_L>eKiNK!t92d{Q-xiF z?jUM=L>J_U2I>k?kOM6&juf>#U-?&jP}shJX=BsJOu>|&Bdt&;$x``bfqyaK{pO!M zIw)q#olgCwa>vFU3f}yF7Zce;udybcr5@n|u@crIm8gZN?I=+9OQK>pe$@vIjRm~P z9?EuPy7MC;#e#*Q!xK76t*IeNL{Y5IY7V)eW1is`{Jz$sB_$%qJQqjn?BSk~L=uHv zp>jn7;)+&Uh*hKHn2T$uwT_t7xAC5S`OnkA&m=}9b?XGJ%ES8L$Vy}rBa8H8iNp+n zB?e;%v7N)2TC~Z3c`C7WR<=xCk`@%(qmE9Fd{r2yzd9~#VXf>{glfPwVAlsNQm0#{ zg}O0npkami`65KxAxuWl^DPkmtMbR_anfC+0Gg0XQ5@H@((0Wi0h9dQt83 zt?0i9T;m2N7`Lv7GV@0T{CQytKgvf}VmV?PFjz9;$8qSzQL*-e!=ChX)@sb?>?Amd zQVSTl^jx`zJ6tH~{0O7Yju zJ{ls?(yZ(paUf4M(ZeS+2XD+iIubfKGZB!M6h0?+EL> z5&sHyjR%c)Mra#p#@2dHXDs~?F?>(ZB1UVne4M4)#u#*iUZX`d(hR_NDe&raPhpgC z-Wn=u<792zOOa1nEV)~+%8VS-_eKLIxL|W@vpTH{8N=G~rS0N%t+bt-YBDSEG zqLGjv)jCh_7Al#i^7(fuWQ7kC`=UX<2KS17UnRuuv>YV|;H#zNXO8b$?yJXBZ-IZ@ G0{<5ZU8o-b diff --git a/src/font/wid-demo.exe b/src/font/wid-demo.exe index 5b0d8b86c99d38c1980e0871c07088857c1b566d..a093222e31bdb6504d8b7e644dba58eb032cb6cc 100644 GIT binary patch delta 11457 zcmdUVdwf$>_U}n@lAN{)O;2=uDw!scAd# z6`zNqI;X5%x%##nDe7Uu*9#!Mc2XVp$$zKiTV%Qiba{D?dMII>oTAu6^nMwtKi`Uk zE7x!pbd^xfyL1Ig!tx2fTxXFz%s-?XCzXHCzpR_W_v$qKm%5ak$2^qm&eYU>>Hy;v zVvtr_8z)6hd!U8SOdFpiF=zs`PnesiO=(3IWZXi~s&-RKzeYQ{72a&!S?zFH*8b>zQy|ivo_X4gjAo>d; z9?EYX&;PIV(czrq9?EoL%c*Eq!7dNQ^=$r7#8{)+9F)2~WE8JOwb>*q=-M)Y1C-E_ z0W}&sLrfq?co@93?8-q(cq@&f#H?&cYtz39+r(hjw*H;SS%*=Suu+TTtz?R7H9$(6 z8Hrc4jNcXZP@+YTlJM@JD6)q%(ejVI!YMFv<$WB(B}FTHy;Z`#6f*Q~ZlxfGdWFNN zX59l2E)Ob&$FtCLP)`eQBjYF9i&=YHJcR#erpRTcc4TUYxC)MYuBM1hsT~7EWrsszBHcXZw$y5ib@&-z3Kaz8jUP8k99Q;VgyumO)Qan zk*vf}LA7x62>zkW>*QaJ;6KYOkiR~HPs*BCh$&-xQ{!?|XX;B0hbN)fH9)fi>S+0~ z)Zde}Eb1FeJ0e*I8P?67;m>0Y{dUAgdD(FOlM(l!5Xzn@dxAfZU0`_vriuKxDwN)M zJ~S-Wxc{Okdc~|A68Ru0O%7=zl^12PgU_Q7-84`m{5g|P8(AZJtmEd93uT#eGSOS; z5OiqG;;PXm4c7*TcrZUx9j@Rd0Q^2`kW zww$NJ1z0J*KxSiST}Zv3l2cS%2!au$f#ah$R{la5d$62IFlulzi3)n8&?SI@u)qi0+@%#X(e1-eAYe30-_qMAT;L>=;IpnQCsVu^hXfJZv$bZL})y-D5N7DMct%RF$)WsKb2P- zo{v(rlHn>fQ7y^CU$GaM)W#k(Vn}mDNeV0k#Mii+uOMwEq$TeAuONjR2yM2Tzk=3CNH%xu3esJK zq<7zU1?g@=N^?IzNXdyVw}2!{ngkf}WNlQ+*4D)tb{Ruefr35TMh40Di18#bq!F{i zlVI;fOS-xFdYaP;(A$wkX5P1-q(L%XjF#ltPL1>MI@+NNeHYWrs*7o2gzD@fq#*WK zceUw^Blj34#8(qi3h%>da2DdtOyU+*ad$A?&JdLdigURiVmuphR^hfvMoAba=x87e;4ZKj5B!_@AgpD3%JQ; z=*w4QI%7I-5}n;4llV5*?>rmC(jpvCh>DLFvpnG92An^pHhcjJspDT7=T^9|v@eYt zCI3{-kJ691%0LVrU98t(L+N~CmYuZfj#sk-^3Yu8k7N}<5WifXR}fZ{0bv^8h|kAU z7Qjz^fkO&sOpTaj2GgVZ(N$#$Cb&W-Fk0C370e#BMA|)2;J_XaRRC3DcM~0*{p&_W zZlWo6n0R=mGP#xTu!k8Xsf&MvgI9`Vz=OMOYE3VOeki2#c`d7y0fhH5Q+#w+{>U;XuN)w)aY&YaOMnWE@7>Ib7`Gu zAzT6M^+fHJqL)akx!PB=AOH^k{HxJth!HLs_+b-l^2Jy4*G^bPQ2T_D$=JW~p+ivEo({J!u{ zEUMbt1gXXwJ4mX84-|-7YuN$U`U!~|ukbgJ5VT26S-}}lCNr7qdg>6I#+5UR2JO`qbtq~B!P^O4868<2> zU?8N?=Z})U2V|*@Taj@r$qq5C&Aa(2lk*g7us*M!JUsnIm>qg?=c1waYN~z0**t#3 ze9{z@@W%7bo`If1p_|B!K~k9(-|9=af?4afsjwJbuvX^?f4>o9jVG@%F>V|9JEQsZ_)xtyM z&>X036hjkz2n&Y15HS}w0ODBIy$yq+f+KyxoKcdIgPHN?s{`0l4cQa}lBMM6f7Zig|Zp7&_jpw=sB$q)v_S{(N5rOf&f5|3zZPq+}$pqACQ zQ!|~CjQRsadSbR4&jO zn*>?ZLIj@O`BXG_MLU0&#V}Snu08Rue&##7GiII_T{779Dg9LJk<(A`rz{0(bjCE} z1pm>Jub=yL;(YeD5n;k%Eb`dC*TM0!2Q`mBUfTxQCD!3iBAfBJMKG-W#wXkZOzOxn zdRazX70o4iQ>WB;=gysRts~dJo4?Om;P#VQV+SsUbVrmVkKs^aVUskxi@zi`NW{TV zDmE{X4+(wNX-+b3jCM%6q;DJPPSOIMEhRo_b6=(sLn!a_;qpm_B$<%++g68(vI&|u z*4PJ!?SnrO=HN~dfdA~nO(;?8`>EO|T1X=y6$?w^!4CPaJbrSi8RGj4#}0dFF`P!M z?*~!5iAy{GiYz!h(nO3mLAPbAlJwHlybM~$bI!ja59$(i1*8hXk*XJ#?@y2J9H%7X z#|@bTxl|}Ua8bxXAGJr6$M*0S?4{PzHtdEYFW^w1*w5*;8n#!V=)onk-wH$NV*;w1 zfmahuA(;g5+W1=?SIbY^_=g;Nf(|;e3yGlEEb1+w1Ax7NU4R{c?SQR-du;pRVwxu0RWivvXQEfL`3LfdwN}mY zw@lN7Gr0vCu9AUkou=cyo%lNqcf%n2%3w{`SE<~a+#Q2AAEmJ-=R`LR#_o}oL8a)D zbJ5CvPLpxIOBSsh2!*>Y(1FrfOQV$<=UeL)(M=j|ZU*g~o56%CaI<7D6s*g689GHy zejS@DqrZQ5OnrOVrKHeA^g6~7j_cX3-l2N153w9*KZGXWQW37(X^3RF`V2ZMWocv? z#gc*O?F_Wxe(VzI>shgMy&_P$l&c(MKZIg^sf{fVF>%2lD3XfN1p~8gaJ~jT*DIqK z^lOSGgIxGWNFeQeqCW?Qz{i2_99V~d+THzW=k6RQz=%~UY3*{ zpCB>mV%PUdHH0h7B-PR&T%Mr@N%JH-2fLQ{M@K~$XAFvX62O|FTFIJg>`ZO=2hmfz z7bPiH$HQN$qC)c`6+r+=dGJP6CBB=emzoTjC&|l5#i5oS9lN9HP#B^Tf;o@wQpJn} zM};nO`wUoxT}EG$DC|Z?46Vk&EUwXr?@Aw5--F$!94xo+)%j2>zX%R}tl5m299!XqurUv2edfiXG5bGht8Npu1h|!YhowTUz+|AFfSf)UO zj@=d871FrK)OTaL5)&xRbYkZHWag{HEZp0MDka1J-{u`+{=3sYmvwiBF<9B1GyZ3D zo=@(smnVE^J`%^f3;s+pCoUL?H8V5;V%AoS1)&{-=c3OK%BNt|xy0fo(cvcRCc302 zx~Vty-c~qAMD`-LPA5$UqAaxJLzPPuz#VT_7Ru$Y<>2*m!_pheYP7{0(RBYQ7N<|v zc49HSVgy%lmTk!UdqA!c-+`wmoI$UDe}drOL2%m|5XE=efTt&m6ICY#_JZGdW8X?CO<(ft93fv(1_ZL~imm5g!Kga5Vt%%%cITJq; zt2|dzHFRAwByOGPD}^gR7v01}%Ln3r`I&h;c>uT>eb>g_oZ@_$f%XJ7_-Q6$AC=nh z2I97aayjTB>L$v@hfgf;563gvLQ?vr?$YKB$b}DHMdTx$+trB+m#=2sI+&=RnCR2| zmhH}JE_LbM}M2pWq zz)VPYl#|FfHWegp-Mi}&x9&IVM#-1_$bV7i7)fr~nD$EaDTdxlT-_y&c-K;c0-Eu+ zEuAd?>ks@RORZAz-KArt=fT0H?gtzW%RCtSU&O1+s<6ZKv4yB6@#=dhHm^al9ne{Y zcy+vN9>Uc^qz4@%^mVmunVvkZ~$-! z@NP8%)ma(HabiEx0RS@}W0}uix^W)aoby)L^wP86tMM6$=@;&PSGwW{P2`c%Llwj{ z2f?^|h52eytXYTO!v58cU|mKrWR+gTn3ekJdyk`2bu`Cd>Rj||3tDTmsT3JUTBK9yL8F9@UEMtCjI0g_~13h;6`-EIFXxs|gQGS=p@7xWvl6D~oE72nO#Z=V8d8}Sj{n=c#yZEgDI3$Fnu zxZnt=_4v_)FyIG9s=Imt-c0NDIhjs3F;FT?ejUNH@b^PD${{wIx~fdOKQVyh!~i0z z#$PdjJ*&os_x~rZnVWCYeE%a}2BNCyOeQ*$uIm;Hv(Zp2%#qRpDb-6U`PoV=oFt_N zDK$%}T}sJIkyz-F(lRL}&&y)rTqz~i6bt7|=|U+DFP6|UDP19@eksMF0M<298kEwF zQd%#i5h-nu(k3arM@pNebgPtZlhW-{+9IVpr1VKC-6f^%!z8pJ~^n2uJt zM_G90ZMqaTC6{w*GRctdSOVb^FBWHbsO$I%%^Nz7H4n;FuT1n%hbQtU_~{v4*L$c} z0fZ~$^-#BaJslrDmzAm>pNrGo>VbT%LiR?-m?u){wsyIUH#{|JrAnnar&6ipv|5#{ zmeaI~QP6TFC_|rIp;oJvNsJ09fL5wi4EYD7W|EPkm9$!|P^r)c|K+qwo=lq3N~J_n zs^ls)|IJgS59~DXolm8Q)iSw)9=v!-gxvr7Y0iP7fKUyiKzpc?5UiGzQ79OOQ6-VC zRS9*74rBBIWNm`YfPD)8mNzo*elvZgpnk3z@6pbc1S(}1kCuvf& zNm@`f!_ttbl2lr)O5$Zwl4*4ctwXaECOIiNd029CI4PM%yMNoKO7z@ec&0&?mYDF@(|09;++Dy3im4`G z9q?k{G~h|V>A(zd2Jm~EagYP=046`w*8`6NE(0D7tN|u*>Bs1EBk(EU+kp=O-vPWA zc#xvTQSHcxAhZAnEB_UA?Aw_< z7sg^BR?jsoGW@~tyg^~iGhS<4WPI58tnnk`dE?xoNKs?aV@11)UMPCC=#8TOqVI~t zq6|~EDc@9RT4dT_ikSXv+Gl#z@CxLxkp;3##? za9!(~GINGX=CXFrH_~HFa2BT2c_ST z1F-kV5Be>D8faK?~lyvArYRv3N88^cDw@mAwe z<1u4)(UKyMsn&F_=|NMw>452VQ;K4a?;Xo z8DTB7`mBqs0V`{L#QL~(pY?$Cb?Zs%->n~6lWbYGeB0HwsWywP!WOlCYtz`X>{>^T zV~S(GW4Yrt#~qHCW3MCJ?NAnvEVdQTC|+6|EZ$OlfAOQmyNaJL?kaw(_*8L!vBH_` z%yH_SW@ou`p>vJ1+4-q+z?lgn-r*nL;cg$a#zca6}1T0OK zKU#KKx-9>&d};Z?l5Cx5wOMCbYpg4+w^`R)e{b!v_F6x)er-Kx9k32s3vF|3D{ZT7 zYi!}5ZKJK;7O^$hnrtU*r)}@qdTk%uX4@Co*Vs4M>+KPHgT2-MH~U39?O+@lht84d z$c7mU90A7~N6@j+QSUhHc+U}ceB&5!$cmX_UGebZF~t*#H@fbIeV%abbiLr}bRBb@ zaee8c+$ruf_i%TPdxCqWd#<}C>|Wwt<-Wze$<4ZtxNj-J0`kDC0o`C&X}HA@G2Cs~ zZfG<7)zE?6@si*gxj&-N?r2Q(#RENbe%`wyAb%bjiOC2j6s~x{{+~s)0 zQRbZO^g4ac_0FjC5$BW6XPqxP-*JBJY<2zJ^-tGVE|q&U^!7sO71%X@bU){Q(|rbe zg((?X@?6OQ>Ajejt{XnfoFp0U^Xu~9Jg8T*arj048$MHNMJi@ZhirM=%<^jT3K_W!w}G?UYG ziz#T@XsXBVZ!k5P?lCo+{%-2UiV;kGCXe}cGjIMA*2gF2^X44OB#X&XVOeYmS{}4K zVcCsUa>DWn?2>PtU=1&_{>Iv1{j>Ek>oe9a>l@Y+SSDw!DqF7YM%yj6ZMH|TB0jPS zwy$jGY(Lm2yUMPyr`xmbd3L@18oR-6wY%)o?G^Ux?DOq6*q7OFvahzUwQscFiFLEZ z-fVx+zTN(q{Ym@N_PzEO?49<*_Sfy?Wsn?ldc*j!hV7;nN$-BsITQIaTpcPj*bxO* lWLhYy;-RBT*)+t&Pb5F6li_7rEi1)C5jEqXG@UHxe*-b8zv}=1 delta 16298 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 YN@>2D9;ZA~x-P04B3UZ^%9`?l56nL%3IG5A diff --git a/src/gui/0001.scr b/src/gui/0001.scr deleted file mode 100644 index a9efc69b82edbe201455f1c36c5139dba337745b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmZ9_y>7xV6o%pNoET8clDU(w0GVuTwJVE+gz)18ZlD=DpjIFTHn{Vih^9n%vLC-b zKE2}&Ps;&Jg@V%eiv$!q7Ry<{7?S`AICdbWWz@4sITPLlf#54$ud(-j9zN1mcFpnh)xb<<#vt{@8k;(+uxt+B$BX_vAAax) DO7bN- diff --git a/src/gui/0001.tmp b/src/gui/0001.tmp deleted file mode 100644 index e69de29b..00000000 diff --git a/src/gui/0002.scr b/src/gui/0002.scr deleted file mode 100644 index bb846eea7adb6ca400430bd3f49737fcf1946896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 719 zcmYk&%}&BV7=__8MdH6!jnNom8r?S9iV7^9P=P2d0%GEhNP`H1DMggq@)Eo;kHnI% zn@*qPo#}iUFjNuq$AL1nL95OQ4h&N-&>GTGriL<R*{6R;W$(CkI z+hR+*m$q$IKr5*^I@qx)igr6E&S2Nl2JKPW9%ssXOcVQ?-@c_eX7wfQfGzD)+M%Vv zdrYJqv88=Tv)Izc(vGeA3BD6a-kosLeSV4Y9(7+wXT1*MVccr*n{_6t_V zMRVBioTArn4Ps=GLmn5n#1&keBf~q`sMgAU1EnCiDWKx{54a7gWe+;=@mQ|cJs+N9 vXYzO|-uPCvp(#$L diff --git a/src/gui/0003.scr b/src/gui/0003.scr deleted file mode 100644 index 43d8958ebb76eb3850de4b8de269a642d7cd26c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmaixJ8l9|5CmuT5s;Jl2w1lH`V)|}O+bi*PvT>6IgJ08vD_om!vsidKyQ^wPY-yR z+J&8cVDA2SaW}sh-xe-3um>Lh-xAzi;mTsL{w8jS$NNVClS?1P!=7lzC=`yOVM$kjMwMK z|Fiu)bt^OUc-GpL@vQapYLj?)LF3|i*|`|sBrG+wl$I*d8zMbsq&s>6s{MqM_bI*h1Q)D;7&!-!f( zT{WOOjHpf2H3O={h}uS7H=sIIiP#s3pkQ;VvKy?^VW7Hc1s>6s{ zL>(DW9Y)kL>bU{cVMMK>UK&sxM$|g$odMNhL~Wv88BiTY)HdqA0o7qdO;Jw`s174) z7xm15>M){)Jcc(7s174)jCx@}br?~LsM`iqhY_`mx?@0f7*VUJy9QK;5w(uGXFzor zQJbg-22_U;wT*gcKy?^VQ`92^s>6udMNNi-JoO*;C(fSpm>>6hC)esQ=A0K%Zw;sp zBWf9S%Yf=IqE=C_4X6$yY8^EjP#s3pChCa+)nP4vLFrtR2ujB7> pE_e0#%cswOfL|Z;%$*v)S-=1I*FSWwwac~6s`!TXCm)?Xe*$ZfGM@kd diff --git a/src/gui/Copy (2) of wnd.c b/src/gui/Copy (2) of wnd.c deleted file mode 100644 index da577936..00000000 --- a/src/gui/Copy (2) of wnd.c +++ /dev/null @@ -1,1138 +0,0 @@ -/************************************************ - * Graphical User Interface driver (GUI) * - * By J.W. Morsink for Retail Vision B.V. * - ************************************************/ - -#include -#include "..\libc\malloc-l.h" -#undef NULL -#define NULL 0 - -/*void *malloc(size_t size) - { - void *ptr; - - ptr = (void *)sbrk(size); - return (ptr == (void *)-1) ? NULL : ptr; - } - -void free(void *ptr) - { - } - -*/ -#define JOOST_DEBUG -/*#define STR_DEBUG*/ -/*#define MALLOC_DEBUG - -/************************************************ - * Global variables for GUI * - ************************************************/ - -struct Global_GUI* global; - -/************************************************ - * Graphics * - ************************************************/ - -void GraphicsOpen(){ - struct sgttyb temp; - char init[]={0x1B,'K'}; - - global->lcd=open("/dev/lcd0",O_RDWR); - gtty(global->lcd,&temp); - temp.sg_flags=RAW | UNBUFF; - stty(global->lcd,&temp); - - write(global->lcd,init,2); -} - -void GraphicsClose(){ - close(global->lcd); -} - -void Move(int x, int y){ - unsigned char cmd[]={0x1B,'S',0,0}; - cmd[2]=(unsigned char) (x); - cmd[3]=(unsigned char) (y); - write(global->lcd,cmd,4); -} - -void ClearRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'C',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void DrawRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'N',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void FillRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'R',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void FillRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'F',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void GrayRect(int sx,int sy){ - unsigned char cmd[]={0x1B,'h',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void Text(char *s){ - int c=strlen(s); - write(global->lcd,s,c); -} - -void TouchRegion(int msg, int x, int y, int sx, int sy){ - char touch[]={0x1B,'Z',0,0,0,0,0}; - touch[2]=(unsigned char) (msg); - touch[3]=(unsigned char) (x); - touch[4]=(unsigned char) (y); - touch[5]=(unsigned char) (sx); - touch[6]=(unsigned char) (sy); - write(global->lcd,touch,7); -#ifdef JOOST_DEBUG - printf("Touch: %x,%x,%x,%x,%x\n",msg,x,y,sx,sy); fflush(stdout); -#endif -} - -void ClearScreen(){ - Move(0,0); - ClearRect(0,0x80); - TouchRegion(0,0,0,0,0x80); -} - -void EnableScreen(unsigned char c){ - char cmd[]={0x1B,'E',0}; - cmd[2]=c; - write(global->lcd,cmd,3); -} - -void grSetFont(int f){ - char cmd[]={0x1B,0}; - cmd[1]=f & 0xff; - write(global->lcd,cmd,2); -} - -/************************************************ - * Fonts * - ************************************************/ - -struct Font* fontSearch(int f){ - struct Font* current=global->firstfont; - while(current!=NULL && current->id!=f) - current=current->nextfont; - return current; -} - -void setCurrentFont(int f){ - if(fontSearch(f)!=NULL){ - grSetFont(f); - global->currentfont=fontSearch(f); - } -} - -void loadFont(int id,int (*sw)(char*),int (*sh)(char*),int sizedata, void* data){ - struct Font* font=(struct Font*) malloc(sizeof(struct Font)); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",font); fflush(stdout); -#endif - font->id=id; - font->stringwidth=sw; - font->stringheight=sh; - font->nextfont=NULL; - font->sizefontdata=sizedata; - font->fontdata=data; - if(global->firstfont==NULL){ - global->firstfont=font; - global->currentfont=font; - } - else - { - struct Font* current=global->firstfont; - while(current->nextfont!=NULL) - current=current->nextfont; - current->nextfont=font; - } -} - -int stringwidth(char *str,int extra){ - int w=0,i=0; - while(str[i]!=0x00){ - switch(str[i]){ - case 'i': - case 'I': - case '!': - w+=2; - break; - case 'l': - w+=3; - break; - case ',': - case '1': - case '.': - w+=4; - break; - case 'r': - case 'k': - case 'j': - w+=5; - break; - default: - w+=6; - } - i++; - w+=extra; - } - return w; -} - -int stringheight(char ch, int extra){ - if(ch<0x80) return 7+extra; - if(ch>=0xcc && ch<=0xdf) return 1+extra; -} - -int stringheight01(char* ch){ - return stringheight(ch[0],0); -} - -int stringheight2(char* ch){ - return stringheight(ch[0],5); -} - -int stringwidth0(char *str){ - return stringwidth(str,0); -} - -int stringwidth1(char *str){ - return stringwidth(str,2); -} - -int stringwidth2(char *str){ - return stringwidth(str,3); -} -/************************************************ - * Components * - ************************************************/ - -struct Component* Component_new(int x,int y,int sx,int sy){ - struct Component* this=(struct Component*) (malloc(sizeof(struct Component))); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",this); fflush(stdout); -#endif - - this->id=(++global->id); - this->x=x; - this->y=y; - this->sizex=sx; - this->sizey=sy; - this->state=0; - this->order=0; - this->font=0; - this->msg=0; - this->parent=NULL; - this->next_sibling=NULL; - this->first_child=NULL; - this->handler=NULL; - this->paint=NULL; - this->add=NULL; - this->sizexds=0; - this->xds=NULL; - this->label=NULL; - this->label2=NULL; - return this; -} - -void Component_setlabel(struct Component* this, char* s){ - int i=0; - while(s[i]!=0 && ilabel[i]=s[i]; - i++; - } - this->label[i]=0; -} - -void Component_add(struct Component* this, struct Component* comp){ - struct Component* current=this->first_child; - if(this->first_child==NULL){ - this->first_child=comp; - comp->next_sibling=NULL; - } - else - { - while(current->next_sibling!=NULL){ - current=current->next_sibling; - } - current->next_sibling=comp; - comp->next_sibling=NULL; - } - comp->parent=this; -} - -void Component_paint(struct Component* this){ - struct Component* current=this->first_child; - EnableScreen(0); - while(current!=NULL){ - current->paint(current); - current=current->next_sibling; - } - EnableScreen(1); -} - -void Component_findXY(struct Component* this, int* x, int* y){ - struct Component* current=this; - do{ - *x+=current->x; - *y+=current->y; - current=current->parent; - } while(current!=NULL); -} - -struct Component* Component_find(struct Component* this, int msg){ - struct Component* current=this->first_child; -#ifdef JOOST_DEBUG - printf("Find %x in %x:\n",msg, this->id); fflush(stdout); -#endif - while(current!=NULL){ -#ifdef JOOST_DEBUG - printf("Comp_find: %x, %x\n",msg, current->msg); fflush(stdout); -#endif - if(current->msg==msg) - return current; - current=current->next_sibling; - } - return NULL; -} - -struct Component* Component_delete(struct Component* this){ - struct Component* current=this->first_child; - int id=this->id; - if(this!=NULL){ -#ifdef JOOST_DEBUG - printf("Deleting component: %d\n",id); fflush(stdout); -#endif - while(current!=NULL){ - current=Component_delete(current); - } - if(this->parent!=NULL){ - if(this==this->parent->first_child) - this->parent->first_child=this->parent->first_child->next_sibling; - else{ - current=this->parent->first_child; - while(this!=current->next_sibling && current->next_sibling!=NULL) - current=current->next_sibling; - if(current->next_sibling!=NULL) - current->next_sibling=current->next_sibling->next_sibling; - } - } - current=this->next_sibling; - if(this->sizexds==sizeof(struct StringTableXDS)) - { - struct Component* par=this->parent; - struct StringTableXDS* stx=(struct StringTableXDS*) this->xds; - -#ifdef STR_DEBUG - printf("Stringtable @ %x freed!\n",stx->stringtabledata); fflush(stdout); -#endif - -#ifdef MALLOC_DEBUG - printf("free: %x\n",stx->stringtabledata); fflush(stdout); -#endif - free(stx->stringtabledata); -#ifdef MALLOC_DEBUG - printf("free: %x\n",stx->stringtable); fflush(stdout); -#endif - free(stx->stringtable); - - while((par!=NULL) && (par->sizexds!=sizeof(struct StringTableXDS))) - par=par->parent; - if(par!=NULL) - { - stx=(struct StringTableXDS*) par->xds; - global->stringtabledata=stx->stringtabledata; - global->stringtable=stx->stringtable; - } - } - if(this->sizexds>0){ -#ifdef MALLOC_DEBUG - printf("free: %x\n",this->xds); fflush(stdout); -#endif - free(this->xds); - } - if((this->state & STRING_FROMTABLE)==0 && this->label!=NULL){ -#ifdef MALLOC_DEBUG - printf("free: %x\n",this->label); fflush(stdout); -#endif - free(this->label); - } -#ifdef MALLOC_DEBUG - printf("free: %x\n",this); fflush(stdout); -#endif - - free(this); -#ifdef JOOST_DEBUG - printf("Deleted component: %d\n",id); fflush(stdout); -#endif - } - return current; -} - -void Component_delete_children(struct Component* this){ - struct Component* current=this->first_child; - while(current!=NULL) - current=Component_delete(current); -} - -void Component_changestate_children(struct Component* this, int andmask, int ormask, int xormask){ - struct Component* current=this->first_child; - while(current!=NULL){ - current->state&=(0xffff-andmask); - current->state|=ormask; - current->state^=xormask; - current=current->next_sibling; - } - fflush(stdout); -} - -void Component_linkstringtable(struct Component* this){ - struct Component* child=this->first_child; -#ifdef STR_DEBUG - printf("%d: %x -> %x\n",this->id,this->label-1,global->stringtable[(int) (this->label)-1]); fflush(stdout); -#endif - if(((int)(this->label))<0x1000 && ((int)(this->label))>0) - this->label=global->stringtable[(int) (this->label)-1]; - if(((int)(this->label2))<0x1000 && ((int)(this->label2))>0) - this->label2=global->stringtable[(int) (this->label2)-1]; - while(child!=NULL){ - Component_linkstringtable(child); - child=child->next_sibling; - } - -} - -/************************************************ - * Windows * - ************************************************/ - -void Window_handler (struct Component* this, int msg, int param){ - struct Component* current,current2; - int x=0,y=0; -#ifdef JOOST_DEBUG - printf("Message in window %d, Msg: %x, Param: %x\n",this->id,msg,param); fflush(stdout); -#endif - switch(msg){ - case KEY_PRESSED: - current=this->first_child; - while(current!=NULL) { - if((current->state & STATE_VISIBLE)==(STATE_VISIBLE)) - current->handler(current,msg,param); - current=current->next_sibling; - } - break; - case KEY_RELEASED: - current=this->first_child; - while(current!=NULL) { - if((current->state & STATE_VISIBLE)==(STATE_VISIBLE)) - current->handler(current,msg,param); - current->handler(current,KEY_TYPED,param); - current=current->next_sibling; - } - break; - case KEY_TYPED: - current=this->first_child; - while(current!=NULL) { - if((current->state & STATE_VISIBLE)==(STATE_VISIBLE)){ - current->handler(current,msg,param); - if((current->state & STATE_ACTION)!=0 && current->msg==param){ - struct ActionXDS* act=(struct ActionXDS*) (current->xds); -#ifdef JOOST_DEBUG - printf("Before actionhandler...\n"); -#endif - act->actionhandler(current); - if((act->action & 0xff00)==0){ - current=NULL; - } -#ifdef JOOST_DEBUG - printf("After actionhandler...\n"); -#endif - } - } - if(current!=NULL) - current=current->next_sibling; - } - break; - case WND_REDRAW: - this->paint(this); - break; - case WND_CLOSE: - this->state=this->state & (0xffff-(STATE_VISIBLE | STATE_ENABLED)); - Component_findXY(this,&x,&y); - TouchRegion(0,x,y,this->sizex,this->sizey); - this->parent->handler(this->parent,WND_REDRAW,0); - break; - case WND_DESTROY: - current=this->parent; - Component_delete(this); - current->handler(current,WND_REDRAW,0); - break; - case WND_BROADCAST: - current=this->first_child; - while(current!=NULL){ - if(current!=(struct Component*) (param) && (current->state & STATE_FOCUS)!=0) - current->handler(current,CMP_BROADCAST,param); - current=current->next_sibling; - } - break; - case APP_QUIT: - if(this->parent==NULL) - global->willquit=1; - else if((this->state & STATE_APPLICATION)==0) - this->parent->handler(this->parent,APP_QUIT,param); - else{ - current=this->parent; - current->state|=STATE_VISIBLE | STATE_ENABLED; - Component_changestate_children(current,0,STATE_VISIBLE,0); - this->handler(this,WND_DESTROY,0); - } - break; - } -} - -void Window_paint(struct Component* this){ - int x=0,y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - - EnableScreen(0); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion(0,x,y,this->sizex,this->sizey); - Move(x,y+global->currentfont->stringheight(this->label)+4); - DrawRectNC(this->sizex,this->sizey-global->currentfont->stringheight(this->label)-4); - Move(x,y); - FillRect(this->sizex,global->currentfont->stringheight(this->label)+5); - Move(x+2,y+2); - Text(this->label); - Component_paint(this); - } -} - -void Root_paint(struct Component* this){ - EnableScreen(0); - Move(0,0); - ClearRect(0,0x80); - GrayRect(0,0x80); - TouchRegion(0,0,0,0,0x80); - - Component_paint(this); -/* EnableScreen(0); - Window_paint(this); - EnableScreen(1);*/ -} - -void Window_add(struct Component* this, struct Component* comp){ - Component_add(this,comp); -} - -struct Component* Window_new(int x,int y,int sx,int sy){ - struct Component* this=Component_new(x,y,sx,sy); - this->handler=Window_handler; - this->paint=Window_paint; - this->add=Window_add; - return this; -} - -/************************************************ - * Buttons * - ************************************************/ - -void Button_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->parent->handler(this->parent, CMP_ACTION, param); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void Button_drawtext(struct Component* this, int x, int y){ - if((this->state & STYLE_MULTILINE)!=0){ - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-2*global->currentfont->stringheight(this->label))/2); - Text(this->label); - Move(x+(this->sizex-global->currentfont->stringwidth(this->label2))/2,y+(this->sizey)/2+1); - Text(this->label2); - } else { - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+1); - Text(this->label); - } -#ifdef STR_DEBUG - printf("Drawtext (%d): ""%s"" @ %x\n",this->id,this->label,this->label); fflush(stdout); -#endif -} - -void Button_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - - if( (this->state & (STATE_ENABLED | STYLE_INVERTED))!=0 && (this->state & (STATE_ENABLED | STYLE_INVERTED))!=(STATE_ENABLED | STYLE_INVERTED) ) - FillRectNC(this->sizex,this->sizey); - else - DrawRectNC(this->sizex,this->sizey); - Button_drawtext(this,x,y); - } -} - -void Button_add(struct Component* this, struct Component* comp){ - return; -} - -struct Component* Button_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_ENABLED | STATE_VISIBLE; - this->msg=msg; - this->handler=Button_handler; - this->paint=Button_paint; - this->add=Button_add; - - return this; -} - -/*void Numpad(struct Component* this, int x, int y){ - int i; - char s[2]={0,0}; - struct Component* button; - for(i=0; i<9; i++){ - s[0]=0x31+(char) i; - button=Button_new(x+(i%3)*0x18,y+0x30-(i/3)*0x18,0x16,0x16,i+0x31); - Component_setlabel(button,s); - button->state|=STATE_CASTING; - this->add(this,button); - } - button=Button_new(x+0x18,y+0x48,0x16,0x16,0x30); - Component_setlabel(button,"0"); - button->state|=STATE_CASTING; - this->add(this,button); - - button=Button_new(x+0x30,y+0x48,0x16,0x16,0x08); - Component_setlabel(button,"CE"); - button->state|=STATE_CASTING; - this->add(this,button); -}*/ - -/************************************************ - * Toggle-buttons * - ************************************************/ - -void ToggleButton_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->state^=STATE_CHECKED; - this->parent->handler(this->parent, CMP_STATECHANGE, param); - this->handler(this, WND_REDRAW, 0); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void ToggleButton_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - if((this->state & STATE_ENABLED)!=0 && (this->state & STATE_CHECKED)!=0){ - FillRectNC(this->sizex,this->sizey); - TouchRegion(this->msg,x,y,this->sizex,this->sizey); - }else{ - DrawRectNC(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - } - Button_drawtext(this,x,y); - } -} - -struct Component* ToggleButton_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_ENABLED | STATE_VISIBLE | STATE_CHECKED; - this->msg=msg; - this->handler=ToggleButton_handler; - this->paint=ToggleButton_paint; - this->add=Button_add; - - return this; -} - -/************************************************ - * Dialogs * - ************************************************/ - -void Dialog_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==CMP_ACTION && param==0xff){ - if((this->state & STYLE_SELFDESTRUCT)!=0) - this->handler(this,WND_DESTROY,0); - else - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_OK, this->msg); - } - if(msg==CMP_ACTION && param==0xfe){ - if((this->state & STYLE_SELFDESTRUCT)!=0) - this->handler(this,WND_DESTROY,0); - else - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_CANCEL, this->msg); - - } -} - -struct Component* Dialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* ok; - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_VISIBLE; - this->msg=msg; - this->handler=Dialog_handler; - this->paint=Window_paint; - this->add=Window_add; - - ok=Button_new(sx-0x30,sy-0x1c,0x28,0x14,0xff); - ok->label=(char*) malloc(3); - Component_setlabel(ok,"OK"); - this->add(this,ok); - - ok=Button_new(sx-0x30,sy-0x38,0x28,0x14,0xfe); /*Cancel*/ - ok->label=(char*) malloc(7); - Component_setlabel(ok,"Cancel"); - this->add(this,ok); - - return this; -} - -/************************************************ - * Displays * - ************************************************/ -void Display_handler(struct Component* this, int msg, int param){ - Button_handler(this,msg,param); - if(msg==CMP_BROADCAST && (this->state & STATE_FOCUS)!=0){ -#ifdef JOOST_DEBUG - printf("strlen = %d->",strlen(this->label)); fflush(stdout); -#endif - if(param==0x08){ - if(strlen(this->label)!=0) - this->label[strlen(this->label)-1]=0; - }else{ - this->label[strlen(this->label)+1]=0; - this->label[strlen(this->label)]=(char) param; - } -#ifdef JOOST_DEBUG - printf("%d\n",strlen(this->label)); fflush(stdout); -#endif - this->handler(this,WND_REDRAW,0); - } -} - -void Display_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - char pwd[64]; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - - if( (this->state & STYLE_INVERTED)==0) - FillRectNC(this->sizex,this->sizey); - else - DrawRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2); - if(this->state & STYLE_PASSWORD){ - int i; - for(i=0; ilabel); i++) - pwd[i]='*'; - pwd[i]=0; - Text(pwd); - }else - Text(this->label); - -/* Component_findXY(this,&x,&y); - - Move(x,y); - ClearRect(this->sizex,this->sizey); - - FillRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2); - Text(this->label); - TouchRegion((this->state&STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); -*/ - } -} - -struct Component* Display_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Button_new(x,y,sx,sy,msg); - this->state|=STATE_FOCUS; - Component_setlabel(this,""); - this->paint=Display_paint; - this->handler=Display_handler; - return this; -} - -/************************************************ - * Labels * - ************************************************/ -void Label_handler(struct Component* this, int msg, int param){ - return; -} - -void Label_paint(struct Component* this){ - int x=0, y=0; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Button_drawtext(this,x,y); - } -} - -struct Component* Label_new(int x, int y, int sx, int sy,char* l){ - struct Component* comp=Component_new(x,y,sx,sy); - comp->label=l; - comp->state=STATE_VISIBLE; - comp->handler=Label_handler; - comp->paint=Label_paint; - comp->add=Button_add; - return comp; -} - /************************************************ - * Implementation * - ************************************************/ -/* -void ScreenDialog_handler(struct Component* this, int msg, int param){ - char cmd[]={0x1B,'V',0}; - Dialog_handler(this,msg,param); - if(msg==CMP_ACTION){ - if(param=='U') - cmd[2]=0; - else if(param=='D') - cmd[2]=1; - else - return; - write(global->lcd,cmd,3); - } -} - -struct Component* ScreenDialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* button; - struct Component* this=Dialog_new(x,y,sx,sy,msg); - - button=Button_new(0x04,0x10,0x20,0x14,'U'); - Component_setlabel(button,"Up"); - this->add(this,button); - - button=Button_new(0x04,0x28,0x20,0x14,'D'); - Component_setlabel(button,"Down"); - this->add(this,button); - - this->handler=ScreenDialog_handler; - - return this; -} -*/ -void rootWindow_handler(struct Component* this, int msg, int param){ - struct Component* dummy; - Window_handler(this,msg,param); -} - - -void screenbuilder(struct Component* root, char* filename){ - struct Component* subw; - struct ActionXDS* action; - int mode; - int fh,rd; - char buf[SIZE_SCRBLD_RECORD]; - long l; - int xs,ys; - xs=0x2b; - ys=0x1a; - buf[0]=0; - fh=open(filename,O_RDONLY); - do{ - char comp=0; - if(buf[0]=='s'){ /* Change size */ - xs=*((int*)(buf+0x1)); - ys=*((int*)(buf+0x3)); - } - - if(buf[0]=='B' || buf[0]=='M'){ /* Button, Multi-line button */ - subw=Button_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - if(buf[0]=='M') subw->state|=STYLE_MULTILINE; - comp=1; - } - if(buf[0]=='T'){ /* Toggle-button */ - subw=ToggleButton_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - comp=1; - } - if(buf[0]=='D'){ /* Display button */ - subw=Display_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - comp=1; - } - if(buf[0]=='L'){ /* Label */ - subw=Label_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf+0x12); - comp=1; - } - if(buf[0]=='A'){ - struct ActionXDS a; - root->xds=&a; - a.action=*((int*)(buf+0x6)); - a.wParam=*((int*)(buf+0x8)); - a.lParam=*((long*)(buf+0xa)); - root_actionhandler(root); - } - - if(buf[0]=='S'){ - struct StringTableXDS* stx; - read_stringtable(fh,buf); - root->xds=(void*) malloc(sizeof(struct StringTableXDS)); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",root->xds); fflush(stdout); -#endif - - stx=(struct StringTableXDS*) root->xds; - root->sizexds=sizeof(struct StringTableXDS); - stx->stringtable=global->stringtable; - stx->stringtabledata=global->stringtabledata; -#ifdef STR_DEBUG - printf("Stringtable created @ %x\n",stx->stringtabledata); fflush(stdout); -#endif - comp=0; - } - if(comp!=0){ - if((buf[6] | buf[7])!=0){ - subw->state|=STATE_ACTION; - subw->sizexds=sizeof(struct ActionXDS); - subw->xds=(void*) malloc(sizeof(struct ActionXDS)); -#ifdef MALLOC_DEBUG - printf("malloc Action: %x\n",subw->xds); fflush(stdout); -#endif - - action=(struct ActionXDS*) (subw->xds); - action->actionhandler=root_actionhandler; - action->action=*((int*)(buf+0x6)); - action->wParam=*((int*)(buf+0x8)); - action->lParam=*((long*)(buf+0xa)); - } - if((buf[0x0e] | buf[0x0f])!=0) - subw->state=*((int*)(buf+0x0e)); - subw->font=*((int*)(buf+0x10)); - - subw->label=(char*) (*((int*) (buf+0x12)) & 0x0fff); - if(subw->label==NULL) { - subw->label=(char*) malloc(LABEL_LENGTH); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",subw->label); fflush(stdout); -#endif - subw->label[0]=0; - } - else - subw->state|=STRING_FROMTABLE; - - if((*((int*) (buf+0x12)) &0xf000)>0x1000) - subw->label2=(char*)((*((int*) (buf+0x12)) & 0x0fff)+1); - - root->add(root,subw); - } - - rd=read(fh,buf,SIZE_SCRBLD_RECORD); - } while(rd==SIZE_SCRBLD_RECORD); - close(fh); - Component_linkstringtable(root); - root->paint(root); -} - -void root_actionhandler(struct Component* this){ - struct ActionXDS *act; - struct Component* subw; - char filename[]={'0','0','0','0','.','s','c','r',0}; - - act=(struct ActionXDS*) (this->xds); -#ifdef JOOST_DEBUG - printf("0x%x: (0x%x, 0x%x, 0x%lx)",act, act->action, act->wParam, act->lParam); -#endif - if(act->action==0x0001){ /*QUIT*/ - this->handler(this,APP_QUIT,0); - } - if((act->action & 0xfffe)==0x0002){ /*Open Screen*/ - Component_changestate_children(this->parent,STATE_VISIBLE,0,0); - subw=Window_new(0,0,this->parent->sizex,this->parent->sizey); - subw->state=STATE_VISIBLE | STATE_ENABLED; - if((act->action & 1)!=0) - subw->state|=STATE_APPLICATION; - subw->handler=rootWindow_handler; - subw->paint=Root_paint; - filename[0]=(char) ((act->lParam) &0xff); - filename[1]=(char) ((act->lParam>>8) &0xff); - filename[2]=(char) ((act->lParam>>16) &0xff); - filename[3]=(char) ((act->lParam>>24) &0xff); - screenbuilder(subw,filename); - this->parent->add(this->parent,subw); - } - if(act->action==0x0004) { /* Open MessageBox */ - /*Component_changestate_children(this->parent,0,0,0);*/ - struct Component* label; - int i; - subw=Dialog_new(0x05,0x05,this->parent->sizex-0x0a,this->parent->sizey-0x0a,1); - subw->state=STATE_VISIBLE | STATE_ENABLED | STYLE_SELFDESTRUCT; - subw->font=0x0030; - for(i=0; i<(act->wParam>>12)&0x0f; i++){ - label=Label_new(0x08,0x14+i*0x0c,(subw->sizex & 0xff)-0x10,0x10,global->stringtable[(act->wParam&0xfff)+i-1]); - label->font=0x0030; - subw->add(subw,label); - } - Component_setlabel(subw,"Message Box"); - Component_find(subw,0xff)->font=0x0030; - Component_delete(Component_find(subw,0xfe)); - this->parent->add(this->parent,subw); - this->parent->handler(this->parent,WND_REDRAW,0); - } -#ifdef JOOST_DEBUG - printf("Before external handler...\n"); fflush(stdout); -#endif - if(global->actionhandler!=NULL) - global->actionhandler(this); - -#ifdef JOOST_DEBUG - printf("After external handler...\n"); fflush(stdout); -#endif -} - -void read_stringtable(int fh,char* buf){ - int siz,bsiz; - int i=0,j=0; - char **ptrs; - char *rawdata; - - siz=*((int*) (buf+0x01)); - bsiz=*((int*) (buf+0x03)); -#ifdef STR_DEBUG - printf("%d %d\n",siz,bsiz); -#endif - - ptrs=(char**) malloc(sizeof(char*)*siz); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",ptrs); fflush(stdout); -#endif - - rawdata=(char*) malloc(bsiz); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",rawdata); fflush(stdout); -#endif - - read(fh,rawdata,bsiz); - while(istringtabledata=rawdata; - global->stringtable=ptrs; -#ifdef STR_DEBUG - for(i=0; i""%s""\n",i,global->stringtable[i],global->stringtable[i]); - fflush(stdout); -#endif - -} - -struct Global_GUI* gui_globals(){ - return global; -} - - -void GUIinit(void){ - global=(struct Global_GUI*) malloc(sizeof(struct Global_GUI)); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",global); fflush(stdout); -#endif - - global->id=0; - global->willquit=0; - global->currentfont=NULL; - global->firstfont=NULL; - global->stringtable=NULL; - global->stringtabledata=NULL; - global->actionhandler=NULL; - GraphicsOpen(); - loadFont(0x0030,stringwidth0,stringheight01,0,NULL); - loadFont(0x0031,stringwidth1,stringheight01,0,NULL); - loadFont(0x0032,stringwidth2,stringheight2,0,NULL); - global->root=Window_new(0x0,0x0,0x00,0x80); - global->root->state=STATE_VISIBLE; - global->root->handler=rootWindow_handler; - global->root->paint=Root_paint; -} - -void GUIunit(void){ - Component_delete(global->root); - ClearScreen(); - GraphicsClose(); -} - -void GUIgo(char* scr){ - char buf,obuf; - screenbuilder(global->root,scr); - - while(read(global->lcd,&buf,1)==1); - - while(!global->willquit){ - if(read(global->lcd,&buf,1)==1){ - if(buf!=0) - global->root->handler(global->root,KEY_PRESSED,buf); - else - global->root->handler(global->root,KEY_RELEASED,obuf); - obuf=buf; - } - } -} - -/*void main(void){ - GUIinit(); - GUIgo(); - GUIunit(); -}*/ - diff --git a/src/gui/Copy of wnd.c b/src/gui/Copy of wnd.c deleted file mode 100644 index d2397708..00000000 --- a/src/gui/Copy of wnd.c +++ /dev/null @@ -1,941 +0,0 @@ -/************************************************ - * Graphical User Interface driver (GUI) * - * By J.W. Morsink for Retail Vision B.V. * - ************************************************/ - -#include - -#define JOOST_DEBUG - -/************************************************ - * Global variables for GUI * - ************************************************/ -struct Global_GUI { - int id; - int lcd; - int willquit; - char *stringtabledata; - char **stringtable; - struct Font* currentfont; - struct Font* firstfont; - struct Component* root; -}; - -struct Global_GUI* global; - -/************************************************ - * Graphics * - ************************************************/ - -void GraphicsOpen(){ - struct sgttyb temp; - char init[]={0x1B,'K'}; - - global->lcd=open("/dev/lcd0",O_RDWR); - gtty(global->lcd,&temp); - temp.sg_flags=RAW | UNBUFF; - stty(global->lcd,&temp); - - write(global->lcd,init,2); -} - -void GraphicsClose(){ - close(global->lcd); -} - -void Move(int x, int y){ - unsigned char cmd[]={0x1B,'S',0,0}; - cmd[2]=(unsigned char) (x); - cmd[3]=(unsigned char) (y); - write(global->lcd,cmd,4); -} - -void ClearRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'C',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void DrawRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'N',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void FillRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'R',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void FillRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'F',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void Text(char *s){ - int c=strlen(s); - write(global->lcd,s,c); -} - -void TouchRegion(int msg, int x, int y, int sx, int sy){ - char touch[]={0x1B,'Z',0,0,0,0,0}; - touch[2]=(unsigned char) (msg); - touch[3]=(unsigned char) (x); - touch[4]=(unsigned char) (y); - touch[5]=(unsigned char) (sx); - touch[6]=(unsigned char) (sy); - write(global->lcd,touch,7); -#ifdef JOOST_DEBUG - printf("Touch: %x,%x,%x,%x,%x\n",msg,x,y,sx,sy); fflush(stdout); -#endif -} - -void ClearScreen(){ - Move(0,0); - ClearRect(0,0x80); - TouchRegion(0,0,0,0,0x80); -} - -void EnableScreen(unsigned char c){ - char cmd[]={0x1B,'E',0}; - cmd[2]=c; - write(global->lcd,cmd,3); -} - -void grSetFont(int f){ - char cmd[]={0x1B,0}; - cmd[1]=f & 0xff; - write(global->lcd,cmd,2); -} - -/************************************************ - * Fonts * - ************************************************/ - -struct Font* fontSearch(int f){ - struct Font* current=global->firstfont; - while(current!=NULL && current->id!=f) - current=current->nextfont; - return current; -} - -void setCurrentFont(int f){ - if(fontSearch(f)!=NULL){ - grSetFont(f); - global->currentfont=fontSearch(f); - } -} - -void loadFont(int id,int (*sw)(char*),int (*sh)(char*),int sizedata, void* data){ - struct Font* font=(struct Font*) malloc(sizeof(struct Font)); - font->id=id; - font->stringwidth=sw; - font->stringheight=sh; - font->nextfont=NULL; - font->sizefontdata=sizedata; - font->fontdata=data; - if(global->firstfont==NULL){ - global->firstfont=font; - global->currentfont=font; - } - else - { - struct Font* current=global->firstfont; - while(current->nextfont!=NULL) - current=current->nextfont; - current->nextfont=font; - } -} - -int stringwidth(char *str,int extra){ - int w=0,i=0; - while(str[i]!=0x00){ - switch(str[i]){ - case 'i': - case 'I': - case '!': - w+=2; - break; - case 'l': - w+=3; - break; - case ',': - case '1': - case '.': - w+=4; - break; - case 'r': - case 'k': - case 'j': - w+=5; - break; - default: - w+=6; - } - i++; - w+=extra; - } - return w; -} - -int stringheight(char ch, int extra){ - if(ch<0x80) return 7+extra; - if(ch>=0xcc && ch<=0xdf) return 1+extra; -} - -int stringheight01(char* ch){ - return stringheight(ch[0],0); -} - -int stringheight2(char* ch){ - return stringheight(ch[0],5); -} - -int stringwidth0(char *str){ - return stringwidth(str,0); -} - -int stringwidth1(char *str){ - return stringwidth(str,2); -} - -int stringwidth2(char *str){ - return stringwidth(str,3); -} -/************************************************ - * Components * - ************************************************/ - -struct Component* Component_new(int x,int y,int sx,int sy){ - struct Component* this=(struct Component*) (malloc(sizeof(struct Component))); - this->id=(++global->id); - this->x=x; - this->y=y; - this->sizex=sx; - this->sizey=sy; - this->state=0; - this->order=0; - this->font=0; - this->msg=0; - this->parent=NULL; - this->next_sibling=NULL; - this->first_child=NULL; - this->handler=NULL; - this->paint=NULL; - this->add=NULL; - this->sizexds=0; - this->xds=NULL; - this->label[0]=0; - this->label[LABEL_LENGTH]=0; - return this; -} - -void Component_setlabel(struct Component* this, char* s){ - int i=0; - while(s[i]!=0 && ilabel[i]=s[i]; - i++; - } - this->label[i]=0; -} - -void Component_add(struct Component* this, struct Component* comp){ - struct Component* current=this->first_child; - if(this->first_child==NULL){ - this->first_child=comp; - comp->next_sibling=NULL; - } - else - { - while(current->next_sibling!=NULL){ - current=current->next_sibling; - } - current->next_sibling=comp; - comp->next_sibling=NULL; - } - comp->parent=this; -} - -void Component_paint(struct Component* this){ - struct Component* current=this->first_child; - while(current!=NULL){ - current->paint(current); - current=current->next_sibling; - } -} - -void Component_findXY(struct Component* this, int* x, int* y){ - struct Component* current=this; - do{ - *x+=current->x; - *y+=current->y; - current=current->parent; - } while(current!=NULL); -} - -struct Component* Component_find(struct Component* this, int msg){ - struct Component* current=this->first_child; -#ifdef JOOST_DEBUG - printf("Find %x in %x:\n",msg, this->id); fflush(stdout); -#endif - while(current!=NULL){ -#ifdef JOOST_DEBUG - printf("Comp_find: %x, %x\n",msg, current->msg); fflush(stdout); -#endif - if(current->msg==msg) - return current; - current=current->next_sibling; - } - return NULL; -} - -struct Component* Component_delete(struct Component* this){ - struct Component* current=this->first_child; - int id=this->id; - if(this!=NULL){ -#ifdef JOOST_DEBUG - printf("Deleting component: %d\n",id); fflush(stdout); -#endif - while(current!=NULL){ - current=Component_delete(current); - } - if(this->parent!=NULL){ - if(this==this->parent->first_child) - this->parent->first_child=this->parent->first_child->next_sibling; - else{ - current=this->parent->first_child; - while(this!=current->next_sibling && current->next_sibling!=NULL) - current=current->next_sibling; - if(current->next_sibling!=NULL) - current->next_sibling=current->next_sibling->next_sibling; - } - } - current=this->next_sibling; - if(this->sizexds>0) - free(this->xds); - free(this); -#ifdef JOOST_DEBUG - printf("Deleted component: %d\n",id); fflush(stdout); -#endif - } - return current; -} - -void Component_delete_children(struct Component* this){ - struct Component* current=this->first_child; - while(current!=NULL) - current=Component_delete(current); -} - -void Component_changestate_children(struct Component* this, int andmask, int ormask, int xormask){ - struct Component* current=this->first_child; - while(current!=NULL){ - current->state&=(0xffff-andmask); - current->state|=ormask; - current->state^=xormask; - current=current->next_sibling; - } - fflush(stdout); -} - -/************************************************ - * Windows * - ************************************************/ - -void Window_handler (struct Component* this, int msg, int param){ - struct Component* current,current2; - int x=0,y=0; -#ifdef JOOST_DEBUG - printf("Message in window %d, Msg: %x, Param: %x\n",this->id,msg,param); fflush(stdout); -#endif - switch(msg){ - case KEY_TYPED: - current=this->first_child; - while(current!=NULL) { - if((current->state & STATE_VISIBLE)==(STATE_VISIBLE)){ - current->handler(current,msg,param); - if((current->state & STATE_ACTION)!=0 && current->msg==param){ - struct ActionXDS* act=(struct ActionXDS*) (current->xds); -#ifdef JOOST_DEBUG - printf("Before actionhandler...\n"); -#endif - act->actionhandler(current); - if((act->action & 0xff00)==0){ - current=NULL; - } -#ifdef JOOST_DEBUG - printf("After actionhandler...\n"); -#endif - } - } - if(current!=NULL) - current=current->next_sibling; - } - break; - case WND_REDRAW: - this->paint(this); - break; - case WND_CLOSE: - this->state=this->state & (0xffff-(STATE_VISIBLE | STATE_ENABLED)); - Component_findXY(this,&x,&y); - TouchRegion(0,x,y,this->sizex,this->sizey); - this->parent->handler(this->parent,WND_REDRAW,0); - break; - case WND_DESTROY: - current=this->parent; - Component_delete(this); - current->handler(current,WND_REDRAW,0); - break; - case WND_BROADCAST: - current=this->first_child; - while(current!=NULL){ - if(current!=(struct Component*) (param) && (current->state & STATE_FOCUS)!=0) - current->handler(current,CMP_BROADCAST,param); - current=current->next_sibling; - } - break; - case APP_QUIT: - if(this->parent==NULL) - global->willquit=1; - else if((this->state & STATE_APPLICATION)==0) - this->parent->handler(this->parent,APP_QUIT,param); - else{ - current=this->parent; - current->state|=STATE_VISIBLE | STATE_ENABLED; - Component_changestate_children(current,0,STATE_VISIBLE,0); - this->handler(this,WND_DESTROY,0); - } - break; - } -} - -void Window_paint(struct Component* this){ - int x=0,y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion(0,x,y,this->sizex,this->sizey); - Move(x,y+global->currentfont->stringheight(this->label)+4); - DrawRect(this->sizex,this->sizey-global->currentfont->stringheight(this->label)-4); - Move(x,y); - FillRect(this->sizex,global->currentfont->stringheight(this->label)+5); - Move(x+2,y+2); - Text(this->label); - Component_paint(this); - } -} - -void Root_paint(struct Component* this){ - Move(0,0); - ClearRect(0,0x80); - TouchRegion(0,0,0,0,0x80); - - Component_paint(this); -/* EnableScreen(0); - Window_paint(this); - EnableScreen(1);*/ -} - -void Window_add(struct Component* this, struct Component* comp){ - Component_add(this,comp); -} - -struct Component* Window_new(int x,int y,int sx,int sy){ - struct Component* this=Component_new(x,y,sx,sy); - this->handler=Window_handler; - this->paint=Window_paint; - this->add=Window_add; - return this; -} - -/************************************************ - * Buttons * - ************************************************/ - -void Button_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->parent->handler(this->parent, CMP_ACTION, param); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void Button_drawtext(struct Component* this, int x, int y){ - if((this->state & STYLE_MULTILINE)!=0){ - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-2*global->currentfont->stringheight(this->label))/2); - Text(this->label); - Move(x+(this->sizex-global->currentfont->stringwidth(this->label+LABEL_LENGTH/2))/2,y+(this->sizey)/2+1); - Text((this->label)+0x0a); - } else { - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+1); - Text(this->label); - } -} - -void Button_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - - if( (this->state & (STATE_ENABLED | STYLE_INVERTED))!=0 && (this->state & (STATE_ENABLED | STYLE_INVERTED))!=(STATE_ENABLED | STYLE_INVERTED) ) - FillRectNC(this->sizex,this->sizey); - else - DrawRect(this->sizex,this->sizey); - Button_drawtext(this,x,y); - } -} - -void Button_add(struct Component* this, struct Component* comp){ - return; -} - -struct Component* Button_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_ENABLED | STATE_VISIBLE; - this->msg=msg; - this->handler=Button_handler; - this->paint=Button_paint; - this->add=Button_add; - - return this; -} - -void Numpad(struct Component* this, int x, int y){ - int i; - char s[2]={0,0}; - struct Component* button; - for(i=0; i<9; i++){ - s[0]=0x31+(char) i; - button=Button_new(x+(i%3)*0x18,y+0x30-(i/3)*0x18,0x16,0x16,i+0x31); - Component_setlabel(button,s); - button->state|=STATE_CASTING; - this->add(this,button); - } - button=Button_new(x+0x18,y+0x48,0x16,0x16,0x30); - Component_setlabel(button,"0"); - button->state|=STATE_CASTING; - this->add(this,button); - - button=Button_new(x+0x30,y+0x48,0x16,0x16,0x08); - Component_setlabel(button,"CE"); - button->state|=STATE_CASTING; - this->add(this,button); -} - -/************************************************ - * Toggle-buttons * - ************************************************/ - -void ToggleButton_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->state^=STATE_CHECKED; - this->parent->handler(this->parent, CMP_STATECHANGE, param); - this->handler(this, WND_REDRAW, 0); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void ToggleButton_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - if((this->state & STATE_ENABLED)!=0 && (this->state & STATE_CHECKED)!=0){ - FillRectNC(this->sizex,this->sizey); - TouchRegion(this->msg,x,y,this->sizex,this->sizey); - }else{ - DrawRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - } - Button_drawtext(this,x,y); - } -} - -struct Component* ToggleButton_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_ENABLED | STATE_VISIBLE | STATE_CHECKED; - this->msg=msg; - this->handler=ToggleButton_handler; - this->paint=ToggleButton_paint; - this->add=Button_add; - - return this; -} - -/************************************************ - * Dialogs * - ************************************************/ - -void Dialog_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==CMP_ACTION && param==0xff){ - if((this->state & STYLE_SELFDESTRUCT)!=0) - this->handler(this,WND_DESTROY,0); - else - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_OK, this->msg); - } - if(msg==CMP_ACTION && param==0xfe){ - if((this->state & STYLE_SELFDESTRUCT)!=0) - this->handler(this,WND_DESTROY,0); - else - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_CANCEL, this->msg); - - } -} - -struct Component* Dialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* ok; - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_VISIBLE; - this->msg=msg; - this->handler=Dialog_handler; - this->paint=Window_paint; - this->add=Window_add; - - ok=Button_new(sx-0x30,sy-0x1c,0x28,0x14,0xff); - Component_setlabel(ok,"OK"); - this->add(this,ok); - - ok=Button_new(sx-0x30,sy-0x38,0x28,0x14,0xfe); /*Cancel*/ - Component_setlabel(ok,"Cancel"); - this->add(this,ok); - - return this; -} - -/************************************************ - * Displays * - ************************************************/ -void Display_handler(struct Component* this, int msg, int param){ - Button_handler(this,msg,param); - if(msg==CMP_BROADCAST && (this->state & STATE_FOCUS)!=0){ -#ifdef JOOST_DEBUG - printf("strlen = %d->",strlen(this->label)); fflush(stdout); -#endif - if(param==0x08){ - if(strlen(this->label)!=0) - this->label[strlen(this->label)-1]=0; - }else{ - this->label[strlen(this->label)+1]=0; - this->label[strlen(this->label)]=(char) param; - } -#ifdef JOOST_DEBUG - printf("%d\n",strlen(this->label)); fflush(stdout); -#endif - this->handler(this,WND_REDRAW,0); - } -} - -void Display_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - - if( (this->state & STYLE_INVERTED)==0) - FillRectNC(this->sizex,this->sizey); - else - DrawRect(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2); - Text(this->label); - -/* Component_findXY(this,&x,&y); - - Move(x,y); - ClearRect(this->sizex,this->sizey); - - FillRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2); - Text(this->label); - TouchRegion((this->state&STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); -*/ - } -} - -struct Component* Display_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Button_new(x,y,sx,sy,msg); - this->state|=STATE_FOCUS; - Component_setlabel(this,""); - this->paint=Display_paint; - this->handler=Display_handler; - return this; -} - -/************************************************ - * Labels * - ************************************************/ -void Label_handler(struct Component* this, int msg, int param){ - return; -} - -void Label_paint(struct Component* this){ - int x=0, y=0; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Button_drawtext(this,x,y); - } -} - -struct Component* Label_new(int x, int y, int sx, int sy,char* l){ - struct Component* comp=Component_new(x,y,sx,sy); - Component_setlabel(comp,l); - comp->state=STATE_VISIBLE; - comp->handler=Label_handler; - comp->paint=Label_paint; - comp->add=Button_add; - return comp; -} -/************************************************ - * Implementation * - ************************************************/ -/* -void ScreenDialog_handler(struct Component* this, int msg, int param){ - char cmd[]={0x1B,'V',0}; - Dialog_handler(this,msg,param); - if(msg==CMP_ACTION){ - if(param=='U') - cmd[2]=0; - else if(param=='D') - cmd[2]=1; - else - return; - write(global->lcd,cmd,3); - } -} - -struct Component* ScreenDialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* button; - struct Component* this=Dialog_new(x,y,sx,sy,msg); - - button=Button_new(0x04,0x10,0x20,0x14,'U'); - Component_setlabel(button,"Up"); - this->add(this,button); - - button=Button_new(0x04,0x28,0x20,0x14,'D'); - Component_setlabel(button,"Down"); - this->add(this,button); - - this->handler=ScreenDialog_handler; - - return this; -} -*/ -void rootWindow_handler(struct Component* this, int msg, int param){ - struct Component* dummy; - Window_handler(this,msg,param); -} - - -void screenbuilder(struct Component* root, char* filename){ - struct Component* subw; - struct ActionXDS* action; - int mode; - int fh,rd; - char buf[SIZE_SCRBLD_RECORD]; - long l; - int xs,ys; - xs=0x2b; - ys=0x1a; - buf[0]=0; - fh=open(filename,O_RDONLY); - do{ - char comp=0; - if(buf[0]=='s'){ /* Change size */ - xs=*((int*)(buf+0x1)); - ys=*((int*)(buf+0x3)); - } - - if(buf[0]=='B' || buf[0]=='M'){ /* Button, Multi-line button */ - subw=Button_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - if(buf[0]=='M') subw->state|=STYLE_MULTILINE; - comp=1; - } - if(buf[0]=='T'){ /* Toggle-button */ - subw=ToggleButton_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - comp=1; - } - if(buf[0]=='D'){ /* Display button */ - subw=Display_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - comp=1; - } - if(buf[0]=='L'){ /* Label */ - subw=Label_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf+0x12); - comp=1; - } - if(comp!=0){ - if((buf[6] | buf[7])!=0){ - subw->state|=STATE_ACTION; - subw->sizexds=sizeof(struct ActionXDS); - subw->xds=(void*) malloc(sizeof(struct ActionXDS)); - action=(struct ActionXDS*) (subw->xds); - action->actionhandler=root_actionhandler; - action->action=*((int*)(buf+0x6)); - action->wParam=*((int*)(buf+0x8)); - action->lParam=*((long*)(buf+0xa)); - } - if((buf[0x0e] | buf[0x0f])!=0) - subw->state=*((int*)(buf+0x0e)); - subw->font=*((int*)(buf+0x10)); - for(rd=0; rd<20; rd++) - subw->label[rd]=buf[rd+0x12]; - root->add(root,subw); - } - - rd=read(fh,buf,SIZE_SCRBLD_RECORD); - } while(rd==SIZE_SCRBLD_RECORD); - close(fh); - root->paint(root); -} - -void root_actionhandler(struct Component* this){ - struct ActionXDS *act; - struct Component* subw; - char filename[]={'0','0','0','0','.','s','c','r',0}; - - act=(struct ActionXDS*) (this->xds); - - if(act->action==0x0001){ /*QUIT*/ - this->handler(this,APP_QUIT,0); - } - if((act->action & 0xfffe)==0x0002){ /*Open Screen*/ - Component_changestate_children(this->parent,STATE_VISIBLE,0,0); - subw=Window_new(0,0,this->parent->sizex,this->parent->sizey); - subw->state=STATE_VISIBLE | STATE_ENABLED; - if((act->action & 1)!=0) - subw->state|=STATE_APPLICATION; - subw->handler=rootWindow_handler; - subw->paint=Root_paint; - filename[0]=(char) ((act->lParam) &0xff); - filename[1]=(char) ((act->lParam>>8) &0xff); - filename[2]=(char) ((act->lParam>>16) &0xff); - filename[3]=(char) ((act->lParam>>24) &0xff); - screenbuilder(subw,filename); - this->parent->add(this->parent,subw); - } - if(act->action==0x0004) { /* Open MessageBox */ - /*Component_changestate_children(this->parent,0,0,0);*/ - struct Component* label; - int i; - subw=Dialog_new(0x05,0x05,this->parent->sizex-0x0a,this->parent->sizey-0x0a,1); - subw->state=STATE_VISIBLE | STATE_ENABLED | STYLE_SELFDESTRUCT; - subw->font=0x0030; - for(i=0; i<(act->wParam>>12)&0x0f; i++){ - label=Label_new(0x08,0x14+i*0x0c,(subw->sizex & 0xff)-0x10,0x10,global->stringtable[(act->wParam&0xfff)+i]); - label->font=0x0030; - subw->add(subw,label); - } - Component_setlabel(subw,"Message Box"); - Component_find(subw,0xff)->font=0x0030; - Component_delete(Component_find(subw,0xfe)); - this->parent->add(this->parent,subw); - this->parent->handler(this->parent,WND_REDRAW,0); - } -} - -void read_stringtable(){ - int siz,bsiz; - int i=0,j=0; - char buf[12]; - char **ptrs; - char *rawdata; - int fh=open("strings.txt",O_RDONLY); - read(fh,buf,12); - siz=(buf[0]-0x30)*10000+(buf[1]-0x30)*1000+(buf[2]-0x30)*100+(buf[3]-0x30)*10+(buf[4]-0x30); - bsiz=(buf[5]-0x30)*10000+(buf[6]-0x30)*1000+(buf[7]-0x30)*100+(buf[8]-0x30)*10+(buf[9]-0x30); - - ptrs=(char**) malloc(sizeof(char*)*siz); - rawdata=(char*) malloc(bsiz); - read(fh,rawdata,bsiz); - while(istringtabledata=rawdata; - global->stringtable=ptrs; - -} - -void GUIinit(void){ - global=(struct Global_GUI*) malloc(sizeof(struct Global_GUI)); - global->id=0; - global->willquit=0; - global->currentfont=NULL; - global->firstfont=NULL; - GraphicsOpen(); - loadFont(0x0030,stringwidth0,stringheight01,0,NULL); - loadFont(0x0031,stringwidth1,stringheight01,0,NULL); - loadFont(0x0032,stringwidth2,stringheight2,0,NULL); - read_stringtable(); - global->root=Window_new(0x0,0x0,0x00,0x80); - global->root->state=STATE_VISIBLE; - global->root->handler=rootWindow_handler; - global->root->paint=Root_paint; - Component_setlabel(global->root,"Test-window"); - -} - -void GUIunit(void){ - Component_delete(global->root); - ClearScreen(); - GraphicsClose(); -} - -void GUIgo(void){ - char buf; - screenbuilder(global->root,"0000.scr"); - - while(read(global->lcd,&buf,1)==1); - - while(!global->willquit){ - if(read(global->lcd,&buf,1)==1) - global->root->handler(global->root,KEY_TYPED,buf); - } -} - -void main(void){ - GUIinit(); - GUIgo(); - GUIunit(); -} - diff --git a/src/gui/Copy of wnd.h b/src/gui/Copy of wnd.h deleted file mode 100644 index 13fe89d1..00000000 --- a/src/gui/Copy of wnd.h +++ /dev/null @@ -1,180 +0,0 @@ -#ifndef JOOST_WND_H -#define JOOST_WND_H -#include -#include -#include -#include -#include -#include - -#define FONT_HEIGHT global->currentfont->stringheight -#define FONT_WIDTH(x) global->currentfont->stringwidth(x) -#define LABEL_LENGTH 0x14 -#define SIZE_SCRBLD_RECORD 0x12+LABEL_LENGTH - - -#define STATE_VISIBLE 0x0001 -#define STATE_ENABLED 0x0002 -#define STATE_CHECKED 0x0004 -#define STATE_FOCUS 0x0008 -#define STATE_CASTING 0x0010 -#define STATE_ACTION 0x0020 -#define STYLE_MULTILINE 0x0040 -#define STYLE_INVERTED 0x0080 -#define STYLE_SELFDESTRUCT 0x2000 -#define STATE_APPLICATION 0x4000 -#define STATE_DUMMY 0x8000 - -#define KEY_TYPED 0x0001 -#define WND_OPEN 0x0101 -#define WND_CLOSE 0x0102 -#define WND_REDRAW 0x0103 -#define WND_BROADCAST 0x0104 -#define WND_DESTROY 0x0105 -#define CMP_ACTION 0x0201 -#define CMP_STATECHANGE 0x0202 -#define CMP_BROADCAST 0x0203 -#define DLG_OK 0x0301 -#define DLG_CANCEL 0x0302 -#define APP_QUIT 0x0401 - -struct Font; -struct Component; - -/************************************************ - * Graphics * - ************************************************/ - -void GraphicsOpen(); -void GraphicsClose(); -void Move(int x, int y); -void ClearRect(int sx, int sy); -void DrawRect(int sx, int sy); -void FillRect(int sx, int sy); -void FillRectNC(int sx, int sy); -void Text(char *s); -void TouchRegion(int msg, int x, int y, int sx, int sy); -void ClearScreen(); -void EnableScreen(unsigned char c); -void grSetFont(int f); - -/************************************************ - * Fonts * - ************************************************/ - -struct Font { - int id; - int (*stringwidth)(char*); - int (*stringheight)(char*); - struct Font* nextfont; - int sizefontdata; - void* fontdata; -}; - -struct Font* fontSearch(int f); -void setCurrentFont(int f); -void loadFont(int id,int (*sw)(char*),int (*sh)(char*),int sizedata, void* data); - - -/************************************************ - * Components * - ************************************************/ - -struct Component { - int id; - int x,y; - int sizex,sizey; - int state; - int order; - int font; - char msg; - struct Component* parent; - struct Component *next_sibling; - struct Component *first_child; - void (*handler) (struct Component*, int, int); - void (*paint) (struct Component*); - void (*add) (struct Component*, struct Component*); - char label[LABEL_LENGTH+1]; - int sizexds; - void *xds; -}; - -struct ActionXDS { - void (*actionhandler)(struct Component*); - int action; - int wParam; - long lParam; -}; - -struct Component* Component_new(int x,int y,int sx,int sy); -void Component_setlabel(struct Component* this, char* s); -void Component_add(struct Component* this, struct Component* comp); -void Component_paint(struct Component* this); -void Component_findXY(struct Component* this, int* x, int* y); -struct Component* Component_find(struct Component* this, int msg); -struct Component* Component_delete(struct Component* this); -void Component_delete_children(struct Component* this); -void Component_changestate_children(struct Component* this, int andmask, int ormask, int xormask); - -/************************************************ - * Windows * - ************************************************/ - -void Window_handler (struct Component* this, int msg, int param); -void Window_paint(struct Component* this); -void Root_paint(struct Component* this); -void Window_add(struct Component* this, struct Component* comp); -struct Component* Window_new(int x,int y,int sx,int sy); - -/************************************************ - * Buttons * - ************************************************/ - -void Button_handler(struct Component* this, int msg, int param); -void Button_drawtext(struct Component* this, int x, int y); -void Button_paint(struct Component* this); -void Button_add(struct Component* this, struct Component* comp); -struct Component* Button_new(int x, int y, int sx, int sy, int msg); -void Numpad(struct Component* this, int x, int y); - -/************************************************ - * Toggle-buttons * - ************************************************/ - -void ToggleButton_handler(struct Component* this, int msg, int param); -void ToggleButton_paint(struct Component* this); -struct Component* ToggleButton_new(int x, int y, int sx, int sy, int msg); - -/************************************************ - * Dialogs * - ************************************************/ - -void Dialog_handler(struct Component* this, int msg, int param); -struct Component* Dialog_new(int x, int y, int sx, int sy, int msg); - -/************************************************ - * Displays * - ************************************************/ -void Display_handler(struct Component* this, int msg, int param); -void Display_paint(struct Component* this); -struct Component* Display_new(int x, int y, int sx, int sy, int msg); - -/************************************************ - * Labels * - ************************************************/ -void Label_handler(struct Component* this, int msg, int param); -void Label_paint(struct Component* this); -struct Component* Label_new(int x, int y, int sx, int sy,char* l); - -/************************************************ - * Implementation * - ************************************************/ -void rootWindow_handler(struct Component* this, int msg, int param); -void root_actionhandler(struct Component*); -void screenbuilder(struct Component* root, char* filename); -void read_stringtable(); -void GUIinit(); -void GUIgo(); -void GUIunit(); - -#endif \ No newline at end of file diff --git a/src/gui/cl64180.r01 b/src/gui/cl64180.r01 deleted file mode 100644 index 19dd6c159c5f94b672c5cc145c769973845656e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100922 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 diff --git a/src/gui/grlogin.i86 b/src/gui/grlogin.i86 index 48cdda01..ee8c30ca 100644 --- a/src/gui/grlogin.i86 +++ b/src/gui/grlogin.i86 @@ -1,668 +1,683 @@ :020000040000FA -:20000000C9A6020078563412140000810081B586688A689AD1ED53B586C1ED43B786E12299 -:13002000B98621D86A3E00CD5E81EB2104453E01C35E810B -:2005C900CD8881F8FF21060039EB218184010200EDB02AC0862323E50303C501B584C53E91 -:2005E9000121AD42CD5E81F1F14D44E171237021000039E5210000E52AC08623234E23462B -:20060900C53E00216873CD5E81F1F1F1DD36FC60DD36FD0021000039E5210100E52AC0861E -:2006290023234E2346C53E00216873CD5E81F1F1F1210200E52E08394D442AC08623235E1A -:2006490023563E0021D16DCD5E81F1C31F81D52AC08623235E23563E00212B72CD5E81D1A0 -:20066900C32581CD8881FCFF21000039EB218384010400EDB0DD4602DD70FEDD4604DD7044 -:20068900FF210400E52B2BC340464DC342462AC08623235E23563E00C34D46CD5E81F1C390 -:2006A9001F81CD8881FCFF21000039EB218784010400EDB0DD4602DD70FEDD4604DD70FFCA -:2006C900210400E52B2BC340464DC394462AC086C3464623C39C4623563E00C34D46CD5EBF -:2006E90081F1C31F81CD8881FCFF21000039EB218B84010400EDB0DD4602DD70FEDD46049D -:20070900DD70FF210400E52B2BC340464DC394462AC086C3D94623C3484623C39E463E0023 -:20072900C3E446CD5E81F1C31F81CD8881FCFF21000039EB218F84010400EDB0DD4602DDD5 -:2007490070FEDD4604DD70FF210400E52B2BC340464DC394462AC086C3D94623C32047235A -:20076900C34A463E00C3A146CD5E81F1C31F81CD8881FCFF21000039EB219384010400EDF5 -:20078900B0DD4602DD70FEDD4604DD70FF210400E52B2BC340464DC394462AC086C3D946D8 -:2007A90023C3204723C369473E00C34D46CD5E81F1C31F81CD8881FCFF21000039EB2197EB -:2007C90084010400EDB0DD4602DD70FEDD4604DD70FF210400E52B2BC340464DC394462A4A -:2007E900C086C3D94623C3204723C369473E00C3B347CD5E81F1C31F81C5FDE5DDE5D5DDCF -:20080900E13E00214072CD5E81E5DDE5C12AC08623235E23563E0021D16DCD5E81F1DDE144 -:20082900FDE1C1C32581CD8881F8FF21000039EB219B84010700EDB0DD4602DD70FADD4621 -:2008490004DD70FBDD460ADD70FCDD460CDD70FDDD460EDD70FE210700E52E02C340464D05 -:20086900C394462AC086C3D94623C3204723C369473E00C3B347CD5E81F1C31F81C5D5CD3B -:20088900A048CD5E81218000E56CE5E5CDB848E1E1E1D1C1C3258101000059503E00216C1F -:2008A90046CD5E8101800058503E0021AB46C94D44EB3E00212F48C35E81CD8881FCFF2115 -:2008C900000039EB21A284010300EDB0DD4602DD70FE210300E52BC340464DC394462AC042 -:2008E90086C3D94623C3204723C369473E00C3B347CD5E81F1C31F81CD8881FEFF210000B5 -:2009090039EB21A584010200EDB0DD4602DD70FF210200E5C340464DC394462AC086C3D908 -:200929004623C3204723C369473E00C3B347CD5E81F1C31F81CD88810000210C00ED4BC08F -:20094900860946236668EB7BB228166B6246236668DD4E02DD4603ED422806210800191864 -:20096900E1EBC31F81CD52813E00213E49CDEB492829DD5E02DD56033E00210149CD5E819F -:20098900210A00ED4BC08609E5DD5E02DD56033E00213E49CDF649E1712370C31F81ED4BD2 -:2009A900C086094623666823234E2346237E6960CD5E814D44FD6E06FD6607A7ED42EB0167 -:2009C9000200CDC181DD6E04DD660519EB3E00216C46C9CD5E814D44FD6E08FD6609A7EDD8 -:2009E90042C9CD5E817DB4C93E0121D842CD5E814D44C9CD8881FCFFFDE5110E00CD974A3D -:200A0900DD4E0271DD46032370DD460CDD6E0AFD7502DD660BFD7403FD7004DD4610DD6ECD -:200A29000EFD7505DD660FFD7406FD7007AFFD7708FD7709DD6E12FD750ADD6613FD740B98 -:200A4900DD6E14FD750CDD6615FD740D210C00ED4BC086097E23B6210C00ED4BC0860920FB -:200A690010FDE5C1712370210A00ED4BC08609181246236668EB210800197E23B6210800F6 -:200A89001920EEFDE5C1712370FDE1C31F813E0121D842CD5E81E5FDE1C9FDE5DDE5C5D54E -:200AA900DD210000FD210000FDE5210200394E2346E1097EB72850FDE5E1095ECD40810AC3 -:200AC90000212C2E3149696A6B6C72FE4AF94AEF4AF94AF94AEA4AEA4AF44AF44AF44AEAA6 -:200AE9004A0102001812010300180D01040018080105001803010600DD09210200394E234D -:200B090046DD09FD2318A1DDE5E1F1F1DDE1FDE1C32581CD52817BFE803006210700091825 -:200B29000CFECC38083EDFBB3803696023C31F81CD52810100001A5F3E00211C4BCD5E81A8 -:200B4900C31F81CD5281010500C33F4BCD52810100003E0021A34ACD5E81C31F81CD52819A -:200B6900010200C35B4BCD5281010300C35B4BCD88810000FDE5112800CD974A2AC0865E86 -:200B8900235613722B73FDE5E1732372DD6E02FD7502DD6603FD7403FD7104FD7005DD6E3B -:200BA9000AFD7506DD660BFD7407DD6E0CFD7508DD660DFD7409AFFD770AFD770BFD770C1D -:200BC900FD770DFD770EFD770FFD7710FD7711FD7712FD7713FD7714FD7715FD7716FD7761 -:200BE90017FD7718FD7719FD771AFD771BFD771CFD771DFD771EFD771FFD7724FD7725FD2B -:200C09007726FD7727FD7720FD7721FD7722FD7723FDE5E1FDE1C31F81CD88810000FDE581 -:200C2900DD6E02DD6603E5FDE1110000DD6E04DD6605197EB728210114806B6278AC67ED3C -:200C4900423015FD6E20FD662119E5DD6E04DD66051946E1701318D4FD6E20FD6621193653 -:200C690000FDE1C31F81CD88810000FDE55950211500DD4E02DD4603097E23666FE5FDE1FE -:200C8900211500097E23B62009211500097323721819FD7E13FDB614280BFD6E13FD661497 -:200CA900E5FDE118EDFD7313FD72142113001977237721110019DD4E0271DD46032370FD60 -:200CC900E1C31F81C5FDE5DDE52115001946236668E5DDE1CD094DDDE5E17DB4281ADDE53A -:200CE900D1DD7E1CDD6E1ADD661BCD5E81DD6E13DD6614E5DDE118DF1E01CD0B4DC327486F -:200D09001E003E0021C348C35E81CD88810000FDE5DD6E02DD6603E5FDE1DD6E04DD6605FB -:200D29007EFD860277237EFD8E0377DD6E0ADD660B7EFD860477237EFD8E0577FD6E11FD4A -:200D49006612E5FDE17DB420D1FDE1C31F81CD88810000211500DD4E02DD460309462366B5 -:200D690068EB7BB2281B211000194E0600DD6E04DD6605A7ED422003EB1808211300191809 -:200D8900DC6F67C31F81CD8881F8FFFDE5DD6E02DD6603E5FDE1FD6E15DD75F8FD6616DD10 -:200DA90074F9FDE5E17DB4CA424FDD7EF8DDB6F92811DD5EF8DD56F9CD584FDD75F8DD74E8 -:200DC900F918E7FD7E11FDB612CA5E4EFD6E11FD66120115000946236668FDE5C1A7ED428B -:200DE900FD6E11FD6612011500092009E5FD6E11FD6612185046236668DD75F8DD74F92187 -:200E09001300DD4EF8DD46F90946236668FDE5C1A7ED422819211300DD4EF8DD46F9097E83 -:200E290023B6280A211300095623666A18CB211300DD4EF8DD46F9097E23B62818211300EE -:200E490009E52113000946236668011300094E2346E1712370FD6E13DD75F8FD6614DD74DE -:200E6900F93E04FDAE24FDB625C20E4FFD6E11DD75FCFD6612DD74FDFD6E26DD75FEFD6697 -:200E890027DD74FFCD4D4FDD6EFEDD66FF2323CD4D4FDD7EFCDDB6FD2820212400DD4EFC94 -:200EA900DD46FD093E04AE23B6280F2111000956DD72FC2366DD74FD18D8DD7EFCDDB6FD76 -:200EC9002843212600DD4EFCDD46FD0946DD70FE2366DD74FF210600ED4BC08609E5DD6EBF -:200EE900FEDD66FF5E2356E1732372210800ED4BC08609E5DD4EFEDD46FF030369604E23C9 -:200F090046E1712370FD4E24FD4625210000CDA6813009FD5E26FD5627CD504FFDCB0B76C8 -:200F29002011FD7E20FDB6212809FD5E20FD5621CD504FFDE5D1CD504FDD6EF8DD66F9FDE1 -:200F4900E1C31F815E23563E0021E573C35E813E00218F4DC35E81C5FDE5DDE5211500197F -:200F690046236668E5DDE17DB42808DDE5D1CD584F18F1C32748CD88810000FDE5211500FD -:200F8900DD5E02DD5603195623666AE5FDE17DB4283D210A00FDE5C109DD7E04DD56052F7D -:200FA9005F7A2F577EA377237EA277210A00097EDDB60A77237EDDB60B77210A00097EDD6C -:200FC900AE0C77237EDDAE0D772113000918B81177853E0021A96BCD5E81FDE1C31F81C5E8 -:200FE900FDE5DDE5D5DDE12115001946236668E5FDE121200019462366680100903E80ACDC -:2010090067ED42302EDD4E20DD4621210000CDA6813020DD6E20DD662129E5210800ED4BA1 -:20102900C086094E2346E1092B2B46DD70202366DD7421DD6E22DD66230100903E80AC677E -:20104900ED42302EDD4E22DD4623210000CDA6813020DD6E22DD662329E5210800ED4BC000 -:2010690086094E2346E1092B2B46DD70222366DD7423FDE5E17DB42816FDE5D13E0021E803 -:201089004FCD5E81FD6E13FD6614E5FDE118E3C32748CD8881D0FFFDE5AFDD77FADD77FB94 -:2010A900DD77FCDD77FD5950CD6B810800010002000300020103010401050101043453A2D6 -:2010C9005235526152A951BA516E510951D850211500DD4E02DD46030946236668E5FDE1A9 -:2010E9007DB42819FDCB0A46280BDD6E0ADD660BE5CD3953E1FD6E13FD661418E0C3345331 -:20110900211500DD4E02DD46030946236668E5FDE17DB4284DFDCB0A462838DD6E0ADD6684 -:201129000BE5CD3953E1DD6E0ADD660BE5010300CD3F53E1FD7E0AE6226F26003E22AD2061 -:2011490012FD4E1044DD6E0ADD660BED422004FD210000FDE5E17DB428B7FD6E13FD6614F9 -:2011690018ACC33453DD6E02DD6603E5FDE1210A00DD4E02DD460309CB462821FDCB0A6EE1 -:20118900281BFD4E1047DD6E0ADD660BA7ED42200CFD6E26FD6627FDE5D1CD5E53C3345326 -:2011A900DD5E024BDD560342211A00CD5D53C33453210A00DD4E02DD4603097EE6FC7721A5 -:2011C9002E0039E52B2B4D44DD5E02DD5603CD5553E1210800DD4E02DD4603095E2356D5D9 -:2011E900210600095E2356D5DD6EFCDD66FDE5DD4EFADD46FB110000CDBB48E1E1E12100B6 -:2012090000E52E11DD5E02DD5603195E2356211100DD4E02DD460309462366680117000958 -:201229004E2346237E69600103011829211100DD4E02DD4603095623666AE5FDE15950CD2E -:20124900584F210000E5010301FDE5D1FD7E19FD6E17FD6618C33053211500DD4E02DD46C3 -:20126900030946236668E5FDE17DB42829DD6E0ADD660BFDE5C1ED422814FDCB0A5E280EC6 -:20128900DD6E0ADD660BE5010302CD3F53E1FD6E13FD661418D0C33453211100DD4E02DD14 -:2012A9004603097E23B6200E210400ED4BC08609360123771875210A000923CB6E2028DD8F -:2012C9006E0ADD660BE52111005950195E23562111000946236668011700094E2346237EA4 -:2012E90069600101041840211100095623666AE5FDE1110A00197EF603776A62E523E54A52 -:2013090042FDE5D13E00217F4FCD5E81E1E1210000E5DD5E024BDD5603422E17094E234629 -:20132900237E6960010501CD5E81E1FDE1C31F81DD4E04DD4605FDE5D1FD7E19FD6E17FD48 -:201349006618C35E8123234D44DDE5D13E0021134DC35E81094E2346237E6960C35E81CD00 -:201369008881FCFFFDE5DD6E02DD6603E5FDE1AFDD77FEDD77FFDD77FCDD77FD210A00ED1B -:201389004BC086097E23666F46236668FD4E0EFD460FA7ED422809FD5E0EFD560FCDED5472 -:2013A900FDCB0A46CAA55421020039E523234D44FDE5D1CD5553E1CD094DDD4EFCDD46FDBE -:2013C900DD5EFEDD56FF3E00216C46CD5E81FD4E08FD4609FD5E06FD56073E0021AB46CD65 -:2013E9005E81FD6E08FD6609E5FD6E06FD6607E5DD6EFCDD66FDE5DD4EFEDD46FF110000B9 -:20140900CDBB48E1E1E1FD5E20FD5621210A00ED4BC086097E23666FCDAA54DD4EFCDD4624 -:20142900FD09110400194D44CDB8547E23666F010500094E2346237E6960CDDC4901FCFF71 -:20144900094D44FD5E06FD56073E0021EE46CD5E81DD4EFCDD46FDCDB85446236668CDAA21 -:2014690054010500094D44FD5E06FD56073E00213347CD5E81210E00DD4EFCDD46FD094D63 -:2014890044DD5EFEDD56FF13133E00216C46CDD554FDE5D13E0021CD4CCD5E81FDE1C31FD0 -:2014A90081010500094E2346237E6960C35E81DD5EFEDD56FF3E00216C46CD5E81FD5E202D -:2014C900FD5621210A00ED4BC08609C9CD5E81FD5E20FD56213E00210248CD5E81C9DD5E20 -:2014E9000EDD560F3E00216E49C35E81CD5281CD094DCDA048CD5E8101800058503E00212F -:20150900BD47CD5E81218000E56CE5E5CDB848E1E1E1DD5E02DD56033E0021CD4CCD5E814F -:20152900C31F81CD52813E00216F4CCD5E81C31F81CD88810000FDE5DD6E0CDD660DE5DD55 -:201549006E0ADD660BE5CD7E55F1F1E5FDE101170009369B233650233600FD361A68FD36B6 -:201569001B53FD361C00FD361D2CFD361E55FD361F00C31A4CDD5E02DD56033E0021784B73 -:20158900C35E81CD5281FDE5D5FDE1DD6E0ADD660BE53E00219B50CD5E81E13E03DDAE043C -:2015A900DDB605203EFD4E1047DD6E0ADD660BED422030FD7E0AE6032829DD6E0ADD660B06 -:2015C900E5FD5E11FD5612FD6E11FD66120E17CD1956E1FDCB0A66280AFD4E100600C5CDBC -:2015E9002756E1210102DD4E04DD4605A7ED42200BDD6E0ADD660BE5CD0A56E1FDE1C31FB2 -:2016090081FD5E11FD5612FD6E11FD6612011700094E2346237E6960010102C35E81FD5E3B -:2016290011FD5612FD6E11FD66120E17094E2346237E6960010401C35E81CD5281FDE5D5EC -:20164900FDE1210A0019CB76FD5E20FD5621210A00ED4BC086097E23666F010500094E2387 -:2016690046237E69602853CD5E81294D44FD6E08FD6609A7ED42CDF0560E0C09E5FD5E2085 -:20168900FD5621210A00ED4BC086097E23666FCDB049C1CDD554FD5E08FD5609CDF1560E47 -:2016A9000A09E5FD5E22FD56236960CDA749C1CD5E81FD5E22FD56231820CDDC49CDF05613 -:2016C9000E0D09E5FD5E20FD5621210A00CDA749C1CD5E81FD5E20FD56213E00210248CD4F -:2016E9005E81FDE1C31F81EB010200CDC181DD6E0ADD660B19C9C5DDE5F5F5D5DDE1210218 -:201709000039AF7723772B2B2B772377210A00ED4BC086097E23666F46236668E5210E00C2 -:20172900194E2346E1A7ED422803CDE754DDCB0A46CACF5721000039E5CD4E53E12100004F -:2017490039CDD757CD5E81DD6E08DD6609E5DD6E06DD6607E5210400394E2346C5234E232E -:2017690046DDCB0A4E2807DD5E1016001803110000CDBB48E1E1E1DD7E0AE682281CDD7E7F -:201789000AE682EE822813DD4E08DD4609DD5E06DD56073E002178471811DD4E08DD4609A3 -:2017A900DD5E06DD56073E0021EE46CD5E81210000394E2346C5234E2346DDE5D13E0021C4 -:2017C9004356CD5E81E1E1E1DDE1C1C325814E2346235E23563E00216C46CD5E81DD4E088F -:2017E900DD4609DD5E06DD56073E0021AB46C9CD5281C31F81CD88810000FDE5DD6E0CDD31 -:20180900660DE5DD6E0ADD660BE5CD7E55F1F1E5FDE1010A00097EF60377DD460EFD7010EA -:20182900FD36178CFD361855FD361900FD361AFFFD361B56FD361C00FD361DF8FD361E57AE -:20184900FD361F00C31A4CCD5281FDE5D5FDE1DD6E0ADD660BE53E00219B50CD5E81E13E32 -:2018690003DDAE04DDB605205CFD4E1047DD6E0ADD660BED42204EFD7E0AE6032847FD7E7F -:201889000AEE04FD770ADD6E0ADD660BE5FD5E11FD5612FD6E11FD66120E17094E23462373 -:2018A9007E6960010202CD5E81E1210000E5010301CD3F53E1FDCB0A66280AFD4E10060030 -:2018C900C5CD2756E1210102DD4E04DD4605A7ED42200BDD6E0ADD660BE5CD0A56E1FDE11F -:2018E900C31F81C5DDE5F5F5D5DDE121020039AF7723772B2B2B772377210A00ED4BC08621 -:20190900097E23666F46236668E5210E00194E2346E1A7ED422803CDE754DDCB0A46CAD5A3 -:201929005921000039E5CD4E53E121000039CDD757CD5E81DDCB0A4E2836DDCB0A562830F8 -:20194900DD4E08DD4609DD5E06DD56073E00217847CD5E81DD6E08DD6609E5DD6E06DD66C2 -:2019690007E5210400394E2346C5234E23461834DD4E08DD4609DD5E06DD56073E0021EE4B -:2019890046CD5E81DD6E08DD6609E5DD6E06DD6607E5210400394E2346C5234E2346DDCBEC -:2019A9000A4E2807DD5E1016001803110000CDBB48E1E1E1210000394E2346C5234E2346E7 -:2019C900DDE5D13E00214356CD5E81E1C3CF57CD88810000FDE5DD6E0CDD660DE5DD6E0A64 -:2019E900DD660BE5CD7E55F1F1E5FDE1010A00097EF60777DD460EFD7010FD361750FD36E5 -:201A09001858FD361900FD361AECFD361B58FD361C00FD361DF8FD361E57FD361F00C31AB4 -:201A29004CCD5281FDE5D5FDE1DD6E0ADD660BE53E00219B50CD5E81E1210102DD4E04DD8D -:201A49004605A7ED4220403EFFDDAE0ADDB60B2036FDCB0B66E528050105011803010201C5 -:201A6900CD3F53E1FD4E100600C5FD5E11FD5612FD6E11FD66120E17094E2346237E6960E6 -:201A8900010103CD5E81E1210102DD4E04DD4605A7ED4220403EFEDDAE0ADDB60B2036FD38 -:201AA900CB0B66E528050105011803010201CD3F53E1FD4E100600C5FD5E11FD5612FD6E07 -:201AC90011FD66120E17094E2346237E6960010203CD5E81E1FDE1C31F81CD8881FEFFFD84 -:201AE900E5DD6E0CDD660DE5DD6E0ADD660BE5CD7E55F1F1E5FDE1010A0009CBC6DD460EC9 -:201B0900FD7010FD36172AFD36185AFD361900FD361A68FD361B53FD361C00FD361D2CFDBC -:201B2900361E55FD361F0021FF00E52E14E52E28E521E4FFCD955BF1F1F1DD75FEDD74FF06 -:201B490001200009E5110300CDF149E171237001BF84CDB15BCD5E8121FE00E52E14E52E4B -:201B690028E521C8FFCD955BF1F1F1DD75FEDD74FF01200009E5110700CDF149E171237024 -:201B890001C284CDB15BCD5E81C31A4CDD4E0CDD460D094D4421D0FFDD5E0ADD560B19EBCF -:201BA9003E0021FE57C35E81DD5EFEDD56FF3E0021224CCD5E81DD4EFEDD46FFFDE5D1FDE7 -:201BC9007E1FFD6E1DFD661EC9CD5281FDE5D5FDE1DD6E0ADD660BE53E00218C55CD5E81E4 -:201BE900E1210302DD4E04DD4605A7ED422040FDCB0A5E283A3E08DDAE0ADDB60BFD5E20C2 -:201C0900FD56213E00214072200DCDEB492815CD3D5C2B3600180DCD485C233600CD3D5CAF -:201C2900DD460A70210000E5010301CD3F53E1FDE1C31F81FD5E20FD56213E00214072CDA5 -:201C49005E81FD4E20FD462109C9C5FDE5DDE521B8FF39F9D5DDE1AF7723772377237721E0 -:201C69000A00ED4BC086097E23666F46236668E5210E00194E2346E1A7ED422803CDE7544F -:201C8900DDCB0A46CA975D21020039E52B2BCD5053E1210200394E23462B2B2BCDDB57CD3D -:201CA9005E81DD6E08DD6609E5DD6E06DD6607E5210600394E2346C52B2B2B4E2346DDCB7C -:201CC9000A4E2807DD5E1016001803110000CDBB48E1E1E1DDCB0A7EDD4E08DD4609DD5EAA -:201CE90006DD560720073E0021784718053E0021EE46CD5E81DD5E20DD5621210A00ED4BE8 -:201D0900C0860946236668010500094E2346237E6960CDF649DD6E08DD6609A7ED42EB0197 -:201D29000200CDC1816960394623666819010700094D44210000395E235613133E00216C73 -:201D490046CD5E81DDCB0B462836FD210000DD5E20DD56213E00214072CDF649FDE5E1A7DD -:201D6900ED42210600300B39FDE5C109362AFD2318DC39FDE5C109360021060039EB1806EC -:201D8900DD5E20DD56213E00210248CD5E8121480039F9C32748CD88810000FDE5DD6E0E58 -:201DA900DD660FE5DD6E0CDD660DE5DD6E0ADD660BE5DD5E02DD5603CDA95BF1F1F1E5FDD6 -:201DC900E1010A0009CBDE01C984FDE5D13E0021224CCD5E81FD361A53FD361B5CFD361C49 -:201DE90000FD3617D2FD36185BFD361900C31A4CCD5281C31F81C5DDE5F5F5D5DDE1210279 -:201E09000039AF7723772B2B2B772377210A00ED4BC086097E23666F46236668E5210E00BB -:201E2900194E2346E1A7ED422803CDE754DDCB0A46282121000039E5CD4E53E121000039B6 -:201E49004E2346C5234E2346DDE5D13E00214356CD5E81E1C3CF57CD88810000FDE5DD6E1F -:201E69000CDD660DE5DD6E0ADD660BE5CD7E55F1F1E5FDE101200009DD4E0E71DD460F2322 -:201E890070FD360A01FD360B00FD3617F9FD36185DFD361900FD361AFFFD361B5DFD361CD0 -:201EA90000FD361DF8FD361E57FD361F00C31A4CCD88810000DD6E0ADD660BE5DD5E02DD36 -:201EC90056033E00219B50CD5E81E1C31F81CD8881CEFFFDE5DD36D800210000E5C53E01EC -:201EE90021AD42CD5E81F1F1DD75D4DD74D5DD36F02BDD36F100DD36F21ADD36F300DD3685 -:201F0900F400DD7ED8FE732018DD6ED9DD66DADD75F0DD74F1DD6EDBDD66DCDD75F2DD7449 -:201F2900F3DD7ED8FE422807DD7ED8FE4D204FDD4EDD0600C5CD9762D5DD4EDBDD5EF0DD9A -:201F490056F1CDA062D5DD4EDADD5EF2DD56F3CD2A81D5DD5ED950DD4EF0DD46F1CD2A81DD -:201F69003E0021FE57C1CD5E81F1F1F1E5FDE1DD7ED8FE4D2004FDCB0AF6DD36F401DD7ED4 -:201F8900D8FE542044DD4EDD0600C5CD9762D5DD4EDBDD5EF0DD56F1CDA062D5DD4EDADD61 -:201FA9005EF2DD56F3CD2A81D5DD5ED950DD4EF0DD46F1CD2A813E0021D859C1CD5E81F15C -:201FC900F1F1E5FDE1DD36F401DD7ED8FE442044DD4EDD0600C5CD9762D5DD4EDBDD5EF0D3 -:201FE900DD56F1CDA062D5DD4EDADD5EF2DD56F3CD2A81D5DD5ED950DD4EF0DD46F1CD2AE1 -:20200900813E00219F5DC1CD5E81F1F1F1E5FDE1DD36F401DD7ED8FE4C2047210C00390185 -:20202900120009E5CD9762D5DD4EDBDD5EF0DD56F1CDA062D5DD4EDADD5EF2DD56F3CD2AB4 -:2020490081D5DD5ED950DD4EF0DD46F1CD2A813E0021605EC1CD5E81F1F1F1E5FDE1DD36E3 -:20206900F401DD7ED8FE412051212600DD4E02DD460309E5212B0039EBE1732372DD6EDE75 -:20208900DD66DFDD75F8DD74F9DD6EE0DD66E1DD75FADD74FB211600394E2346235E235679 -:2020A900DD71FCDD70FDDD73FEDD72FFDD5E02DD56033E0021A762CD5E81DD7ED8FE5320BC -:2020C90071210C00394D44DD5ED4DD56D53E0021DF65CD5E81212600DD4E02DD460309E5A1 -:2020E900110400CD8F62EBE17323722126000956DD72F52366DD74F6212400093604233695 -:20210900006ADD66F62323E5210800ED4BC086095E2356E1732372210600ED4BC086094684 -:20212900236668E5DD6EF5DD66F6C1712370DD36F400AFDDB6F4CA3B62DD7EDEDDB6DF280B -:2021490069FDCB0AEEFD36240BFD362500110B00CD8F62FD7526FD7427FD6E26DD75D0FDD9 -:202169006627DD74D136A7233662233600DD6ED0DD66D1232323DD4EDE71DD46DF237021EE -:202189000500DD4ED0DD46D109DD5EE073DD56E1237221070009E5211800395E2356234E32 -:2021A9002346E173237223712370DD7EE6DDB6E7280CDD6EE6FD750ADD66E7FD740BDD6E10 -:2021C900E8FD750EDD66E9FD740FDD6EEAFD7520DD7EEBE60FFD7721FD7E20FDB6212016A6 -:2021E900111400CD8F62FD7520FD7421FD6E20FD662136001804FDCB0BF6DD7EEB2E004DE4 -:20220900E6F0472610ED423010DD6EEADD7EEBE60F6723FD7522FD7423FDE5DD5E024BDD8A -:20222900560342211D00094E2346237E6960C1CD5E81211400E52E0E394D44DD5ED4DD56C3 -:20224900D5CD8762F13E14ADB4CA075FDD5ED4DD56D53E00212B72CD5E81DD5E02DD5603E4 -:202269003E0021E84FCD5E81DD5E024BDD560342211A00094E2346237E6960C3E8563E016E -:20228900213445C35E813E0121D842C35E81DD4EDCDD5EF2DD56F3CD2A811B1B1BC9CD889C -:2022A90081EAFFFDE5DD6E02DD6603E5FDE121060039EB21A784010E00EDB0FD6E26DD754D -:2022C900EAFD6627DD74EB2323233E01AE23B62008C5010104CD3F53E1DD6EEADD66EB235D -:2022E900232346236668CB853E02ADB4C212646F67E5E5010100FD5E11FD56123E00217FDE -:202309004FCD5E81E1E1FD6E11FD6612010800094E2346C5FD6E11FD6612010600094E2306 -:2023290046C501000059503E00213A55CD5E81F1F1DD75ECDD74ED010A000936032370DD2A -:202349006EEADD66EB232323CB46280C6960DD4EECDD46ED0923CBEE211700DD4EECDD46F9 -:20236900ED0936B923365E233600211A000936F5233654233600210700DD5EEADD56EB1966 -:202389005EEBDD75F3210700DD4EEADD46EB095E2356234E2346EB3E08CDF981DD75F421C2 -:2023A9000700DD4EEADD46EB095E2356234E2346EB3E10CDF981DD75F5210700DD4EEADD4F -:2023C90046EB095E2356234E2346EB3E18CDF981DD75F6210600394D44DD5EECDD56ED3EC3 -:2023E9000021D75ECD5E81DD4EECDD46EDC5FD5E11FD5612FD6E11FD6612011D00094E238C -:2024090046237E6960C1CD5E81DD6EEADD66EB2323233E04AE23B6C2B065210100E5FD6EB8 -:2024290011FD6612010800094623666801F6FF09E5FD6E11FD6612010600094623666801A7 -:20244900F6FF09E501050059503E0021E35ACD5E81F1F1F1DD75ECDD74ED010A00093603FD -:20246900233610210E00DD4EECDD46ED093630233600AFDD77FEDD77FF210500DD4EEADD60 -:2024890046EB095E2356060CCD2E824B42DD6EFEDD66FFCDA68130043E011801AFE60FCA8D -:2024A9004465210500DD4EEADD46EB0946237E68E60F67DD4EFEDD46FF0929E5210800EDF5 -:2024C9005BC086195E2356E1192B2B5E2356D5211000E52E06DD5EECDD56ED196E26000127 -:2024E900F0FF09E5DD6EFEDD66FF29294D442909011400094D441108003E0021605ECD5E46 -:2025090081F1F1F1DD75FCDD74FD010E000936302370DD4EFCDD46FDC5DD5EEC4BDD56ED13 -:2025290042211D00094E2346237E6960C1CD5E81DD34FE2003DD34FFC3826401CA84DD5E06 -:20254900ECDD56ED3E0021224CCD5E8101FF00CDD165010E0009363023700EFECDD165EBDF -:20256900CD584FDD4EECDD46EDC5FD5E11FD5612FD6E11FD6612011D00094E2346237E6948 -:2025890060C1CD5E81210000E5FD5E11FD5612FD6E11FD6612011700094E2346237E69605B -:2025A900010301CD5E81E1211000ED4BC086097E23B623B6280DFDE5D1211000ED4BC08601 -:2025C900CD5D53FDE1C31F81DD5EECDD56ED3E0021574DC35E81CD8881F8FFFDE5030ADDAF -:2025E90077FE030ADD77FF0369604EDD71FC2346DD70FDDD6EFE6729EBCD8F62DD75FADD3B -:2026090074FB5950CD974AC54D44DD5E02DD5603CD8762F1110000AFDD77F8DD77F9DD4EF7 -:20262900FCDD46FD6B62CDA6813035CDA566303023DD75F8DD74F92B29DD4EFADD46FB09C0 -:20264900E5FDE5E1194D44E1712370FDE5E1197EB728031318F56B6213FDE5C1097718BE05 -:20266900CDA566301329DD4EFADD46FB09E5FDE5E1194D44E1712370210600ED4BC08609DC -:20268900FDE5C1712370210800ED4BC08609DD4EFA71DD46FB2370FDE1C31F81DD4EFEDD4C -:2026A90046FFDD6EF8DD66F9C3A6812AC086C32581C5D5111300CD8F6222C086AF772377E6 -:2026C900210400ED4BC08609772377210A00ED4BC08609772377210C00ED4BC08609772323 -:2026E90077210800ED4BC08609772377210600ED4BC08609772377211000ED4BC0860977AB -:20270900237723773E0021C945CD5E81210000E5E50E00C521394BE50E00C521554BE51191 -:202729003000CDD967210C0039F9210000E5E50E00C521394BE50E00C521664BE5113100E0 -:20274900CDD967210C0039F9210000E5E50E00C5214C4BE50E00C5216F4BE5113200CDD92D -:2027690067210C0039F9210E00ED4BC08609E5118000D55AD54B423E00213A55CD5E81F142 -:20278900F14D44E1712370210E00ED4BC086095623666A110A001936012372210E00ED4B63 -:2027A900C086095623666A1117001936B923365E233600210E00ED4BC0860946236668014A -:2027C9001A000936F5233654233600D1C1C325813E0021FC49C35E81C5D5210E00ED4BC09A -:2027E90086095E2356CD584F3E00218648CD5E813E00215746CD5E81D1C1C32581CD8881A4 -:20280900FEFFDD4E02DD4603210E00ED5BC086195E23563E0021D75ECD5E81210400ED4B15 -:20282900C086097E23B6C2C468210100E523394D442AC08623235E2356CD8762F13E01ADE7 -:20284900B420D8DD4EFE47C521D684E53E00210A6ECD5E81F1F1AFDDB6FE28294FC5210EF5 -:2028690000ED5BC086195E2356210E00ED4BC0860946236668011700094E2346237E6960A2 -:202889000101001829DD4EFFC5210E00ED5BC086195E2356210E00ED4BC086094623666863 -:1E28A900011700094E2346237E6960010200CD5E81E1DD46FEDD70FFC32468C31F8120 -:2003C9002F6465762F6C636430004F4B0043616E63656C00004D65737361676520426F7826 -:0903E900003078253032780A005A -:200395001B4B1B5300001B4300001B4E00001B5200001B4600001B6800001B5A00000000E7 -:1403B500001B45001B002F776E642F303030302E73637200DC -:2028C700FDE5DDE5C521C0FF39F9D5DDE1210C00197E23666FAFB62008DD360CDEDD360D7D -:2028E7008421000039362D012F00DD5E0CDD560D3E0021416BCD5E81E5FDE17DB42804FD05 -:20290700231809DD6E0CDD660DE5FDE1FDE5C12100003911010019EB3E0021C574CD5E81AB -:2029270021000039E5214200397E23666FC171237021400039472366682323AF772377DDC5 -:202947005E06DD56073E00210D6BCD5E81DD5E04DD56053E0021F06DCD5E81DD5E0ADD56F8 -:202967000B3E0021BC6DCD5E81210100E5DD4E0ADD460B11E6843E00210F6FCD5E81F12191 -:202987000100E5DD4E00DD460111EB843E00210F6FCD5E81F1214000394E2346DD5E0CDD8C -:2029A700560D3E00215573CD5E81DD5E0CDD560D3E00211873CD5E811101003E0121044502 -:2029C700CD5E8121420039F9DDE1FDE1C32581CD8881E0FFFDE5DD6E02DD6603E5FDE1219C -:2029E7002600DD4E02DD4603094623666823232346236668010101A7ED42C2D36AFD6E2014 -:202A0700FD662146DD70ECFD6E20FD66212346DD70EDDD36EE00FD6E20FD66213600210E85 -:202A27000039EB3E00213975CD5E81EB3E0021EC74CD5E81DD75E0DD74E1FD4E20FD462129 -:202A47000303DD71EADD70EB7DB4287123237E23666F46DD70E2DD6EE0DD66E12323462300 -:202A670066682346DD70E3DD36E400210400394D44DD5EEADD56EB3E01210040CD5E81DD96 -:202A870075E8DD74E9DD4EE0DD46E1030369604E2346DD5EE8DD56E93E00217772CD5E81D0 -:202AA7007DB420193E00218648CD5E81010000DD5EE0DD56E13E0021C768CD5E81FDE5D1AF -:202AC700FD7E1CFD6E1AFD661BCD5E81FDE1C31F81CD52813E0021BA66CD5E813E0021B48A -:202AE70066CD5E810110000936D623366923360011F0843E00210668CD5E813E0021E167D7 -:062B0700CD5E81C31F81B9 -:2003F2002F62696E2F736800484F4D450055534552002F776E642F6C6F676E2E7363720044 -:202B0D00CD5281D5210600E5210700E53E0021276BCD5E81F1F1F1C31F8121040039C5D54F -:142B2D005E2356234D44F7300622BB8621FFFFD1C1C325815F +:20000000C9A6020078563412140000810081B486678A679AD1ED53B486C1ED43B686E1229E +:13002000B886218F6C3E00CD5E81EB215D7C3E00C35E81C4 +:2005C800CD5281210600ED4BBF8609E5EB290923234E2346E1712370C31F81CD8881F8FFB2 +:2005E80021060039EB217384010200EDB02ABF862323E50303C5019984C5CDDC46F1F14D8A +:2006080044E171237021000039E5210000E52ABF8623234E2346C5CDD446F1F1F1DD36FC6A +:2006280060DD36FD0021000039E5210100E52ABF8623234E2346C5CDD446F1F1F1210200EE +:20064800E52E08394D442ABF862323CDEE46F1210400ED4BBF8609E5110200D511A384D581 +:20066800CDDC46F1F1EBE173237221000039E5210000E52E04ED4BBF86095E2356D5CDD483 +:2006880046F1F1F1DD36FC60DD36FD0021000039E5210100E52E04095E2356D5CDD446F1B5 +:2006A800F1F1210200E52E0839CDE446F11101003E0021C845CD5E8111AD84CDF946110068 +:2006C800003E0021C845CD5E81C31F813E0021F074C35E813E0021067AC35E814D442104FB +:2006E80000ED5BBF86195E23563E0021886FC35E813E0021A648C35E81C5D52ABF8623233F +:20070800CD1B47210400ED4BBF8609CD1B47D1C1C325815E23563E0021B373C35E81CD887A +:2007280081FCFF21000039EB217584010400EDB0DD4602DD70FEDD4604DD70FF210400E547 +:200748002B2B394D44210600ED5BBF86195E23563E00CDF346F1C31F81CD8881FCFF210043 +:200768000039EB217984010400EDB0C33847DD70FEDD4604DD70FF210400E52B2B394DC3E4 +:200788004C47210600ED5BBF86195E23563E00C35A47CD5E81F1C31F81CD8881FCFF210086 +:2007A8000039EB217D84010400EDB0C33847DD70FEC37947DD70FF210400E52B2B394D44C3 +:2007C800210600C3504719C3924723563E00C35A47CD5E81F1C31F81CD8881FCFF210000CE +:2007E80039EB218184010400EDB0C33847DD70FEC37947DD70FFC3BF47E52B2B394D4421BA +:200808000600ED5BBF8619C3554723C394473E00C3D647CD5E81F1C31F81CD8881FCFF21F4 +:20082800000039EB218584010400EDB0C33847DD70FEC37947DD70FFC3BF47E5C302482B7E +:20084800394D44210600ED5BBF86195E23C357473E00C39747CD5E81F1C31F81CD8881FC66 +:20086800FF21000039EB218984010400EDB0C33847DD70FEC37947DD70FFC3BF47E5C3028D +:20088800482BC348484D44210600ED5BBF86195E23563E00C35A47CD5E81F1C31F81C5FDF1 +:2008A800E5DDE5D5DDE13E0021C873CD5E81E5DDE5C1210600CDE946F1DDE1FDE1C1C325EF +:2008C80081CD8881F8FF21000039EB218D84010700EDB0DD4602DD70FADD4604DD70FBDDEE +:2008E800460ADD70FCDD460CDD70FDDD460EDD70FE210700E52E02C34A474DC387472106CC +:2009080000C3CB4719C30F4823C355483E00C39C48CD5E81F1C31F81C5D5CD3A49CD5E81C9 +:20092800218000E56CE5E5CD5249E1E1E1D1C1C3258101000059503E00212647CD5E8101CA +:20094800800058503E00216147C94D44EB3E0021C948C35E81CD8881FCFF21000039EB21D2 +:200968009484010300EDB0DD4602DD70FE210300E52BC34A474DC38747210600C3CB4719CB +:20098800C30F4823C355483E00C39C48CD5E81F1C31F81CD8881FEFF21000039EB21978479 +:2009A800010200EDB0DD4602DD70FF210200E5C34A474DC38747210600C3CB4719C30F48B5 +:2009C80023C355483E00C39C48CD5E81F1C31F81CD88810000211400ED4BBF860946236647 +:2009E80068EB7BB228166B6246236668DD4E02DD4603ED4228062108001918E1EBC31F81F4 +:200A0800CD52813E0021D849CD794A2829DD5E02DD56033E00219B49CD5E81211200ED4B00 +:200A2800BF8609E5DD5E02DD56033E0021D849CD844AE1712370C31F81211200ED4BBF86F5 +:200A4800094623666823234E2346237E6960CD5E814D44FD6E06FD6607A7ED42EB0102000B +:200A6800CDB881DD6E04DD660519EB3E00212647C9CD5E817DB4C93E0021317ACD5E814D8F +:200A880044C9CD8881FCFFFDE5110E00CD254BDD4E0271DD46032370DD460CDD6E0AFD75E5 +:200AA80002DD660BFD7403FD7004DD4610DD6E0EFD7505DD660FFD7406FD7007AFFD77088E +:200AC800FD7709DD6E12FD750ADD6613FD740BDD6E14FD750CDD6615FD740D211400ED4BC6 +:200AE800BF86097E23B6211400ED4BBF86092010FDE5C1712370211200ED4BBF86091812D4 +:200B080046236668EB210800197E23B62108001920EEFDE5C1712370FDE1C31F813E00217B +:200B2800317ACD5E81E5FDE1C9FDE5DDE5C5D5DD210000FD210000FDE5210200394E23467B +:200B4800E1097EB72850FDE5E1095ECD40810A00212C2E3149696A6B6C728C4B874B7D4BB2 +:200B6800874B874B784B784B824B824B824B784B0102001812010300180D0104001808019D +:200B880005001803010600DD09210200394E2346DD09FD2318A1DDE5E1F1F1DDE1FDE1C38A +:200BA8002581CD52817BFE80300621070009180CFECC38083EDFBB3803696023C31F81CD2A +:200BC80052810100001A5F3E0021AA4BCD5E81C31F81CD5281010500C3CD4BCD528101003B +:200BE800003E0021314BCD5E81C31F81CD5281010200C3E94BCD5281010300C3E94BCD8879 +:200C0800810000FDE5112800CD254B2ABF865E235613722B73FDE5E1732372DD6E02FD7500 +:200C280002DD6603FD7403FD7104FD7005DD6E0AFD7506DD660BFD7407DD6E0CFD7508DDCB +:200C4800660DFD7409AFFD770AFD770BFD770CFD770DFD770EFD770FFD7710FD7711FD7770 +:200C680012FD7713FD7714FD7715FD7716FD7717FD7718FD7719FD771AFD771BFD771CFDEA +:200C8800771DFD771EFD771FFD7724FD7725FD7726FD7727FD7720FD7721FD7722FD7723D7 +:200CA800FDE5E1FDE1C31F81CD88810000FDE5DD6E02DD6603E5FDE1110000DD6E04DD6677 +:200CC80005197EB728210114806B6278AC67ED423015FD6E20FD662119E5DD6E04DD66056B +:200CE8001946E1701318D4FD6E20FD6621193600FDE1C31F81CD88810000FDE55950211507 +:200D080000DD4E02DD4603097E23666FE5FDE1211500097E23B62009211500097323721818 +:200D280019FD7E13FDB614280BFD6E13FD6614E5FDE118EDFD7313FD721421130019772360 +:200D48007721110019DD4E0271DD46032370FDE1C31F81C5FDE5DDE5211500194623666842 +:200D6800E5DDE1CD974DDDE5E17DB4281ADDE5D1DD7E1CDD6E1ADD661BCD5E81DD6E13DD4D +:200D88006614E5DDE118DF1E01CD994DC3C1481E003E00215D49C35E81CD88810000FDE51C +:200DA800DD6E02DD6603E5FDE1DD6E04DD66057EFD860277237EFD8E0377DD6E0ADD660B7B +:200DC8007EFD860477237EFD8E0577FD6E11FD6612E5FDE17DB420D1FDE1C31F81CD8881FA +:200DE8000000211500DD4E02DD46030946236668EB7BB2281B211000194E0600DD6E04DDFD +:200E08006605A7ED422003EB18082113001918DC6F67C31F81CD8881F8FFFDE5DD6E02DD08 +:200E28006603E5FDE1FD6E15DD75F8FD6616DD74F9FDE5E17DB4CAD04FDD7EF8DDB6F9280D +:200E480011DD5EF8DD56F9CDE64FDD75F8DD74F918E7FD7E11FDB612CAEC4EFD6E11FD6651 +:200E6800120115000946236668FDE5C1A7ED42FD6E11FD6612011500092009E5FD6E11FDF2 +:200E88006612185046236668DD75F8DD74F9211300DD4EF8DD46F90946236668FDE5C1A7A2 +:200EA800ED422819211300DD4EF8DD46F9097E23B6280A211300095623666A18CB21130018 +:200EC800DD4EF8DD46F9097E23B6281821130009E52113000946236668011300094E2346C1 +:200EE800E1712370FD6E13DD75F8FD6614DD74F93E04FDAE24FDB625C29C4FFD6E11DD7518 +:200F0800FCFD6612DD74FDFD6E26DD75FEFD6627DD74FFCDDB4FDD6EFEDD66FF2323CDDBDF +:200F28004FDD7EFCDDB6FD2820212400DD4EFCDD46FD093E04AE23B6280F2111000956DD28 +:200F480072FC2366DD74FD18D8DD7EFCDDB6FD2843212600DD4EFCDD46FD0946DD70FE23B7 +:200F680066DD74FF210A00ED4BBF8609E5DD6EFEDD66FF5E2356E1732372210C00ED4BBFAE +:200F88008609E5DD4EFEDD46FF030369604E2346E1712370FD4E24FD4625210000CDA68133 +:200FA8003009FD5E26FD5627CDDE4FFDCB0B762011FD7E20FDB6212809FD5E20FD5621CD25 +:200FC800DE4FFDE5D1CDDE4FDD6EF8DD66F9FDE1C31F815E23563E00216D75C35E813E0077 +:200FE800211D4EC35E81C5FDE5DDE52115001946236668E5DDE17DB42808DDE5D1CDE64F33 +:2010080018F1C3C148CD88810000FDE5211500DD5E02DD5603195623666AE5FDE17DB42814 +:201028003D210A00FDE5C109DD7E04DD56052F5F7A2F577EA377237EA277210A00097EDD8E +:20104800B60A77237EDDB60B77210A00097EDDAE0C77237EDDAE0D772113000918B8117697 +:20106800853E0021606DCD5E81FDE1C31F81C5FDE5DDE5D5DDE12115001946236668E5FD66 +:20108800E121200019462366680100903E80AC67ED42302EDD4E20DD4621210000CDA68143 +:2010A8003020DD6E20DD662129E5210C00ED4BBF86094E2346E1092B2B46DD70202366DD38 +:2010C8007421DD6E22DD66230100903E80AC67ED42302EDD4E22DD4623210000CDA68130D9 +:2010E80020DD6E22DD662329E5210C00ED4BBF86094E2346E1092B2B46DD70222366DD74AE +:2011080023FDE5E17DB42816FDE5D13E00217650CD5E81FD6E13FD6614E5FDE118E3C3C1B7 +:2011280048CD8881D0FFFDE5AFDD77FADD77FBDD77FCDD77FD5950CD6B810800010002007E +:20114800030002010301040105010105C2533053C352EF5237524852FC5197516651211539 +:2011680000DD4E02DD46030946236668E5FDE17DB42819FDCB0A46280BDD6E0ADD660BE5CC +:20118800CDD253E1FD6E13FD661418E0C3C253211500DD4E02DD46030946236668E5FDE123 +:2011A8007DB4284DFDCB0A462838DD6E0ADD660BE5CDD253E1DD6E0ADD660BE5010300CD55 +:2011C800D853E1FD7E0AE6226F26003E22AD2012FD4E1044DD6E0ADD660BED422004FD21E7 +:2011E8000000FDE5E17DB428B7FD6E13FD661418ACC3C253DD6E02DD6603E5FDE1210A0002 +:20120800DD4E02DD460309CB462821FDCB0A6E281BFD4E1047DD6E0ADD660BA7ED42200C46 +:20122800FD6E26FD6627FDE5D1CDC853C3C253DD5E024BDD560342211A00CDC753C3C2531E +:20124800210A00DD4E02DD4603097EE6FC77212E0039E52B2B4D44DD5E02DD5603CDEE5353 +:20126800E1210800DD4E02DD4603095E2356D5210600095E2356D5DD6EFCDD66FDE5DD4EE1 +:20128800FADD46FB110000CD5549E1E1E1210000E52E11DD5E02DD5603195E235621110035 +:2012A800DD4E02DD46030946236668011700094E2346237E69600103011829211100DD4EAE +:2012C80002DD4603095623666AE5FDE15950CDE64F210000E5010301FDE5D1FD7E19FD6E61 +:2012E80017FD6618C3BE53211500DD4E02DD46030946236668E5FDE17DB42829DD6E0ADD40 +:20130800660BFDE5C1ED422814FDCB0A5E280EDD6E0ADD660BE5010302CDD853E1FD6E13FB +:20132800FD661418D0C3C253211100DD4E02DD4603097E23B6200E210800ED4BBF86093676 +:201348000123771875210A000923CB6E2028DD6E0ADD660BE52111005950195E2356211100 +:20136800000946236668011700094E2346237E69600101051840211100095623666AE5FD1E +:20138800E1110A00197EF603776A62E523E54A42FDE5D13E00210D50CD5E81E1E1210000FF +:2013A800E5DD5E024BDD5603422E17094E2346237E6960010501CD5E81E1FDE1C31F8109F3 +:2013C8004E2346237E6960C35E81DD4E04DD4605FDE5D1FD7E19FD6E17FD6618C35E8123E2 +:2013E800234D44DDE5D13E0021A14DC35E81C5DDE5F5F5D5DDE121020039AF7723772B2B39 +:201408002B772377211200ED4BBF86097E23666F46236668E5210E00194E2346E1A7ED4287 +:201428002803CD2F55DDCB0A46CA275521000039E5CDE753E1CD974D21000039CD7355CD56 +:201448005E81DD6E08DD6609E5DD6E06DD6607E5210400394E2346C5234E2346110000CD0F +:201468005549E1E1E1DD5E20DD5621CD4355E5210200394E2346E109010400094D4421026B +:2014880000395E23563E00212647CD5E81DD5E20DD5621211200ED4BBF86097E23666F01DD +:2014A8000500094E2346237E6960CD844ADD6E08DD6609A7ED4201FCFF094D44DD5E06DD31 +:2014C80056073E0021A147CD5E81210000394E2346235E23563E00212647CD5D55CD4F55ED +:2014E800010500094D44DD5E06DD56073E0021E047CD5E81210000394E23460303235E23DC +:201508005613133E00212647CD5E81DD5E20DD5621CDF946DDE5D13E00215B4DCD5E81E1ED +:20152800E1DDE1C1C32581DD5E0EDD560F3E0021084AC35E81FD5E20FD5621211200ED4BA2 +:20154800BF86097E23666F010500094E2346237E6960C35E81CD5E81DD5E20DD562121125F +:2015680000ED4BBF860946236668C94E2346235E23563E00212647CD5E81DD4E08DD460955 +:20158800DD5E06DD56073E00216147C9CD5281CD974DCD3A49CD5E8101800058503E002123 +:2015A8006448CD5E81218000E56CE5E5CD5249E1E1E1DD5E02DD56033E00215B4DCD5E81DE +:2015C800C31F81CD52813E0021FD4CCD5E81C31F81CD88810000FDE5DD6E0CDD660DE5DD28 +:2015E8006E0ADD660BE5DD5E02DD56033E0021064CCD5E81F1F1E5FDE10117000936292320 +:201608003651233600FD361AF6FD361B53FD361C00FD361DCBFD361E55FD361F00C3A84CE5 +:20162800CD5281FDE5D5FDE1DD6E0ADD660BE53E00212951CD5E81E13E03DDAE04DDB60517 +:20164800203EFD4E1047DD6E0ADD660BED422030FD7E0AE6032829DD6E0ADD660BE5FD5EBE +:2016680011FD5612FD6E11FD66120E17CDB556E1FDCB0A66280AFD4E100600C5CDC356E1C6 +:20168800210102DD4E04DD4605A7ED42200BDD6E0ADD660BE5CDA656E1FDE1C31F81FD5EF8 +:2016A80011FD5612FD6E11FD6612011700094E2346237E6960010102C35E81FD5E11FD5614 +:2016C80012FD6E11FD66120E17094E2346237E6960010401C35E81CD5281FDE5D5FDE121B2 +:2016E8000A0019CB762853FD5E08FD5609010200CDB881DD6E0ADD660B19E5FD5E20FD56CC +:2017080021211200ED4BBF86097E23666FCD4D4AC1CD5E81FD5E20FD5621CDF946CD3D5546 +:2017280029CD6957C5FD5E22FD5623CD414AC1CD5E81FD5E22FD5623181ACD3D55CD69575D +:20174800C5FD5E20FD5621CD414AC1CD5E81FD5E20FD56213E0021A648CD5E81FDE1C31F60 +:2017680081FD4E08FD460909EB010200CDB881DD6E0ADD660B194D4403C9C5DDE5F5F5D5E5 +:20178800DDE121020039AF7723772B2B2B772377211200ED4BBF86097E23666F462366686F +:2017A800E5210E00194E2346E1A7ED422803CD2F55DDCB0A46CA525821000039E5CDE75358 +:2017C800E121000039CD7355CD5E81DD6E08DD6609E5DD6E06DD6607E5210400394E23466C +:2017E800C5234E2346DDCB0A4E2807DD5E1016001803110000CD5549E1E1E1DD7E0AE682AB +:20180800281CDD7E0AE682EE822813DD4E08DD4609DD5E06DD56073E002122481811DD4E0D +:2018280008DD4609DD5E06DD56073E0021A147CD5E81210000394E2346C5234E2346DDE58C +:20184800D13E0021DF56CD5E81E1C32755CD5281C31F81CD88810000FDE5DD6E0CDD660DED +:20186800E5DD6E0ADD660BE5DD5E02DD56033E0021064CCD5E81F1F1E5FDE1010A00097EEC +:20188800F60377DD460EFD7010FD361728FD361856FD361900FD361A82FD361B57FD361C00 +:2018A80000FD361D55FD361E58FD361F00C3A84CCD5281FDE5D5FDE1DD6E0ADD660BE53ECE +:2018C80000212951CD5E81E13E03DDAE04DDB605205CFD4E1047DD6E0ADD660BED42204E12 +:2018E800FD7E0AE6032847FD7E0AEE04FD770ADD6E0ADD660BE5FD5E11FD5612FD6E11FD3C +:2019080066120E17094E2346237E6960010202CD5E81E1210000E5010301CDD853E1FDCBBA +:201928000A66280AFD4E100600C5CDC356E1210102DD4E04DD4605A7ED42200BDD6E0ADD62 +:20194800660BE5CDA656E1FDE1C31F81C5DDE5F5F5D5DDE121020039AF7723772B2B2B7726 +:201968002377211200ED4BBF86097E23666F46236668E5210E00194E2346E1A7ED42280399 +:20198800CD2F55DDCB0A46CA3D5A21000039E5CDE753E121000039CD7355CD5E81DDCB0A21 +:2019A8004E2836DDCB0A562830DD4E08DD4609DD5E06DD56073E00212248CD5E81DD6E0871 +:2019C800DD6609E5DD6E06DD6607E5210400394E2346C5234E23461834DD4E08DD4609DD12 +:2019E8005E06DD56073E0021A147CD5E81DD6E08DD6609E5DD6E06DD6607E5210400394E9E +:201A08002346C5234E2346DDCB0A4E2807DD5E1016001803110000CD5549E1E1E1210000CB +:201A2800394E2346C5234E2346DDE5D13E0021DF56CD5E81E1C32755CD88810000FDE5DD87 +:201A48006E0CDD660DE5DD6E0ADD660BE5DD5E02DD56033E0021064CCD5E81F1F1E5FDE1D2 +:201A6800010A00097EF60777DD460EFD7010FD3617B8FD361858FD361900FD361A54FD36E5 +:201A88001B59FD361C00FD361D55FD361E58FD361F00C3A84CCD5281FDE5D5FDE1DD6E0A9A +:201AA800DD660BE53E00212951CD5E81E1210102DD4E04DD4605A7ED4220403EFFDDAE0A02 +:201AC800DDB60B2036FDCB0B66E528050105011803010201CDD853E1FD4E100600C5FD5E3F +:201AE80011FD5612FD6E11FD66120E17094E2346237E6960010103CD5E81E1210102DD4E47 +:201B080004DD4605A7ED4220403EFEDDAE0ADDB60B2036FDCB0B66E5280501050118030128 +:201B28000201CDD853E1FD4E100600C5FD5E11FD5612FD6E11FD66120E17094E2346237E53 +:201B48006960010203CD5E81E1FDE1C31F81CD8881FEFFFDE5DD6E0CDD660DE5DD6E0ADD6D +:201B6800660BE5DD5E02DD56033E0021064CCD5E81F1F1E5FDE1010A0009CBC6DD460EFDBF +:201B88007010FD36179DFD36185AFD361900FD361AF6FD361B53FD361C00FD361DCBFD3664 +:201BA8001E55FD361F0021FF00E52E14E52E28E521E4FFDD4E0CDD460D094D4421D0FFDD1F +:201BC8005E0ADD560B19EB3E00215B58CD5E81F1F1F1DD75FEDD74FF01200009E5110300FF +:201BE800CD7F4AE171237001B984CD455CCD5E8121FE00E52E14E52E28E521C8FFDD4E0C85 +:201C0800DD460D094D4421D0FFDD5E0ADD560B19EB3E00215B58CD5E81F1F1F1DD75FEDDBD +:201C280074FF01200009E5110700CD7F4AE171237001BC84CD455CCD5E81C3A84CDD5EFE3C +:201C4800DD56FF3E0021B04CCD5E81DD4EFEDD46FFFDE5D1FD7E1FFD6E1DFD661EC9CD52BA +:201C680081FDE5D5FDE1DD6E0ADD660BE53E00212856CD5E81E1210302DD4E04DD4605A730 +:201C8800ED422040FDCB0A5E283A3E08DDAE0ADDB60BFD5E20FD56213E0021C873200DCD1F +:201CA800794A2815CDD15C2B3600180DCDDC5C233600CDD15CDD460A70210000E50103019C +:201CC800CDD853E1FDE1C31F81FD5E20FD56213E0021C873CD5E81FD4E20FD462109C9C547 +:201CE800FDE5DDE521B8FF39F9D5DDE1AF77237723772377211200ED4BBF86097E23666F78 +:201D080046236668E5210E00194E2346E1A7ED422803CD2F55DDCB0A46CA035E21020039EE +:201D2800E52B2BCDE953E1210200394E23462B2B2BCD7755CD5E81DD6E08DD6609E5DD6ECE +:201D480006DD6607E5210600394E2346C52B2B2B4E2346DDCB0A4E2807DD5E101600180387 +:201D6800110000CD5549E1E1E1DDCB0A7EDD4E08DD4609DD5E06DD560720073E0021224842 +:201D880018053E0021A147CD5D55CD4F55DD4E08DD460909EB010200CDB881696039462320 +:201DA8006668194D44210000395E235613133E00212647CD5E81DDCB0B462836FD2100005F +:201DC800DD5E20DD56213E0021C873CD844AFDE5E1A7ED42210600300B39FDE5C109362AD7 +:201DE800FD2318DC39FDE5C109360021060039EB1806DD5E20DD5621CDF94621480039F9ED +:201E0800C3C148CD88810000FDE5DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5DDB5 +:201E28005E02DD56033E00215B58CD5E81F1F1F1E5FDE1010A0009CBDE01C384FDE5D13EBA +:201E48000021B04CCD5E81FD361AE7FD361B5CFD361C00FD361766FD36185CFD361900C31E +:201E6800A84CCD5281C31F81C5DDE5F5F5D5DDE121020039AF7723772B2B2B77237721127E +:201E880000ED4BBF86097E23666F46236668E5210E00194E2346E1A7ED422803CD2F55DD13 +:201EA800CB0A46282121000039E5CDE753E1210000394E2346C5234E2346DDE5D13E0021ED +:201EC800DF56CD5E81E1C32755CD88810000FDE5DD6E0CDD660DE5DD6E0ADD660BE5DD5EF2 +:201EE80002DD56033E0021064CCD5E81F1F1E5FDE101200009DD4E0E71DD460F2370FD36D4 +:201F08000A01FD360B00FD36176AFD36185EFD361900FD361A70FD361B5EFD361C00FD36DC +:201F28001D55FD361E58FD361F00C3A84CCD88810000DD6E0ADD660BE5DD5E02DD56033E66 +:201F480000212951CD5E81E1C31F81CD8881CEFFFDE5DD36D800210000E5C5CDDC46F1F1E2 +:201F6800DD75D4DD74D5DD36F006DD36F100DD36F205DD36F300DD36F400DD7ED8FE732025 +:201F880018DD6ED9DD66DADD75F0DD74F1DD6EDBDD66DCDD75F2DD74F3DD7ED8FE422807ED +:201FA800DD7ED8FE4D204EDD4EDD0600C5CD0263D5CD1863D5DD6EDB260044DD4ED9094D4C +:201FC80044110301CD2063EBD1A7ED522B2B2BE5CD2C63D5CD18633E00215B58C1CD5E8150 +:201FE800F1F1F1E5FDE1DD7ED8FE4D2004FDCB0AF6DD36F401DD7ED8FE542043DD4EDD06DB +:2020080000C5CD0263D5CD1863D5DD6EDB260044DD4ED9094D44110301CD2063EBD1A7EDEC +:20202800522B2B2BE5CD2C63D5CD18633E0021405AC1CD5E81F1F1F1E5FDE1DD36F401DD86 +:202048007ED8FE442043DD4EDD0600C5CD0263D5CD1863D5DD6EDB260044DD4ED9094D4458 +:20206800110301CD2063EBD1A7ED522B2B2BE5CD2C63D5CD18633E00210B5EC1CD5E81F14C +:20208800F1F1E5FDE1DD36F401DD7ED8FE4C2046210C003901120009E5CD0263D5CD1863F2 +:2020A800D5DD6EDB260044DD4ED9094D44110301CD2063EBD1A7ED522B2B2BE5CD2C63D577 +:2020C800CD18633E0021D15EC1CD5E81F1F1F1E5FDE1DD36F401DD7ED8FE412051212600ED +:2020E800DD4E02DD460309E5212B0039EBE1732372DD6EDEDD66DFDD75F8DD74F9DD6EE034 +:20210800DD66E1DD75FADD74FB211600394E2346235E2356DD71FCDD70FDDD73FEDD72FFAA +:20212800DD5E02DD56033E00214063CD5E81DD7ED8FE532071210C00394D44DD5ED4DD5628 +:20214800D53E00218F66CD5E81212600DD4E02DD460309E5110400CDFA62EBE173237221E7 +:2021680026000956DD72F52366DD74F62124000936042336006ADD66F62323E5210C00EDF5 +:202188004BBF86095E2356E1732372210A00ED4BBF860946236668E5DD6EF5DD66F6C17166 +:2021A8002370DD36F400AFDDB6F4CAAE62DD7EDEDDB6DF2869FDCB0AEEFD36240BFD3625B7 +:2021C80000110B00CDFA62FD7526FD7427FD6E26DD75D0FD6627DD74D13640233663233698 +:2021E80000DD6ED0DD66D1232323DD4EDE71DD46DF2370210500DD4ED0DD46D109DD5EE0F7 +:2022080073DD56E1237221070009E5211800395E2356234E2346E173237223712370DD7EF6 +:20222800E6DDB6E7280CDD6EE6FD750ADD66E7FD740BDD6EE8FD750EDD66E9FD740FDD6E05 +:20224800EAFD7520DD7EEBE60FFD7721FD7E20FDB6212016111400CDFA62FD7520FD742113 +:20226800FD6E20FD662136001804FDCB0BF6DD7EEB2E004DE6F0472610ED423010DD6EEA74 +:20228800DD7EEBE60F6723FD7522FD7423FDE5DD5E024BDD560342211D00094E2346237EC8 +:2022A8006960C1CD5E81211400E52E0E394D44DD5ED4DD56D53E00218D7CCD5E81F13E1452 +:2022C800ADB4CA7E5FDD5ED4DD56D5CD1E47DD5E02DD56033E00217650CD5E81DD5E024BD9 +:2022E800DD560342211A00094E2346237E6960C361573E0021317AC35E81DD4EDC11830037 +:20230800CD2A81DD4EF2DD46F3CDB8811B1B1BC9DD5ED91600010301CD2A81DD4EF0DD4605 +:20232800F1C3B881DD5EDA1600018300CD2A81DD4EF2DD46F3C3B881CD8881F8FFFDE5DDC6 +:202348006E02DD6603E5FDE1FD6E26DD75F8FD6627DD74F92323233E01AE23B6200A6F671E +:20236800E5010105CDD853E1DD6EF8DD66F923232346236668CB853E02ADB4C26F642105C5 +:2023880000DD4EF8DD46F90956237E6AE60F6729E5210C00ED5BBF86195E2356E1192B2B28 +:2023A80056DD72FC2366DD74FD210000E5E5010100FD5E11FD56123E00210D50CD5E81E196 +:2023C800E1FD6E11FD6612010800094E2346C5FD6E11FD6612010600094E2346C501000017 +:2023E80059503E0021D955CD5E81F1F1DD75FADD74FB010A000936032370DD6EF8DD66F91A +:20240800232323CB46280C6960DD4EFADD46FB0923CBEE211700DD4EFADD46FB0936352303 +:20242800365F233600211A00093694233655233600DD4EFCDD46FDDD5EFADD56FB3E002188 +:20244800535FCD5E81DD4EFADD46FBC5FD5E11FD5612FD6E11FD6612011D00094E2346234B +:202468007E6960C1CD5E81DD6EF8DD66F92323233E04AE23B6C20D66210100E5FD6E11FD3A +:202488006612010800094623666801F6FF09E5FD6E11FD6612010600094623666801F6FF61 +:2024A80009E501050059503E0021565BCD5E81F1F1F1DD75FADD74FB010A000936032336AA +:2024C80010210E00DD4EFADD46FB093630233600AFDD77FEDD77FF210500DD4EF8DD46F9F1 +:2024E800095E2356060CCD09824B42DD6EFEDD66FFCDA68130043E011801AFE60FCAA1657E +:20250800210500DD4EF8DD46F90946237E68E60F67DD4EFEDD46FF0929E5210C00ED5BBF04 +:2025280086195E2356E1192B2B5E2356D5211000E52E06DD5EFADD56FB196E260001F0FFD7 +:2025480009E5DD6EFEDD66FF29294D442909011400094D441108003E0021D15ECD5E81F1F2 +:20256800F1F1DD75FCDD74FD010E000936302370DD4EFCDD46FDC5DD5EFA4BDD56FB4221A7 +:202588001D00094E2346237E6960C1CD5E81DD34FE2003DD34FFC3DF6401C484DD5EFADDDC +:2025A80056FB3E0021B04CCD5E8101FF00CD8166010E0009363023700EFECD8166EBCDE698 +:2025C8004FDD4EFADD46FBC5FD5E11FD5612FD6E11FD6612011D00094E2346237E6960C1D1 +:2025E800CD5E81210000E5FD5E11FD5612FD6E11FD6612011700094E2346237E6960010319 +:2026080001CD5E81E1DD6EF8DD66F92323233E05AE23B6201D210500DD4EF8DD46F9095E69 +:202628002356D5210700094D442ABF862323CDEE46F1DD6EF8DD66F92323233E06AE23B628 +:202648002016210500DD4EF8DD46F9095E2356D521070009CDE446F1211800ED4BBF86094A +:202668007E23B623B6280DFDE5D1211800ED4BBF86CDC753FDE1C31F81DD5EFADD56FB3EBB +:202688000021E54DC35E81CD8881F8FFFDE5030ADD77FE030ADD77FF0369604EDD71FC2348 +:2026A80046DD70FDDD6EFE6729EBCDFA62DD75FADD74FB5950CD254BC54D44DD5E02DD5651 +:2026C800033E00218D7CCD5E81F1110000AFDD77F8DD77F9DD4EFCDD46FD6B62CDA6813059 +:2026E80035CD5A67303023DD75F8DD74F92B29DD4EFADD46FB09E5FDE5E1194D44E1712391 +:2027080070FDE5E1197EB728031318F56B6213FDE5C1097718BECD5A67301329DD4EFADD10 +:2027280046FB09E5FDE5E1194D44E1712370210A00ED4BBF8609FDE5C1712370210C00ED9E +:202748004BBF8609DD4EFA71DD46FB2370FDE1C31F81DD4EFEDD46FFDD6EF8DD66F9C3A61D +:20276800812ABF86C32581C5D5111B00CDFA6222BF86AF772377210800ED4BBF8609772399 +:2027880077211200ED4BBF8609772377211400ED4BBF8609772377210C00ED4BBF860977FA +:2027A8002377210A00ED4BBF8609772377211800ED4BBF860977237723773E0021E345CDF7 +:2027C8005E81210000E5E50E00C521C74BE50E00C521E34BE5113000CD8E68210C0039F9D2 +:2027E800210000E5E50E00C521C74BE50E00C521F44BE5113100CD8E68210C0039F921005E +:2028080000E5E50E00C521DA4BE50E00C521FD4BE5113200CD8E68210C0039F9211600ED3E +:202828004BBF8609E5118000D55AD54B423E0021D955CD5E81F1F14D44E171237021160028 +:20284800ED4BBF86095623666A110A001936012372211600ED4BBF86095623666A11170073 +:2028680019363523365F233600211600ED4BBF860946236668011A000936942336552336D2 +:2028880000D1C1C325813E00218A4AC35E81C5D5211600ED4BBF86095E2356CDE64F3E00F2 +:2028A800212049CD5E813E00210147CD5E81D1C1C32581C5DDE5D5F5F5F5F54B4221160098 +:2028C800ED5BBF86195E23563E0021535FCD5E81210E00ED4BBF8609E5111000CDFA62EBE7 +:2028E800E1732372210E00ED4BBF86097E23666F3600211000ED4BBF8609E5110000D511F3 +:20290800D084D5CDDC46F1F1EBE173237221020039E5210000E52E10ED4BBF86095E2356FF +:20292800D5CDD446F1F1F121060039366023360021020039E5210100E52E10094E2346C5A6 +:20294800CDD446F1F1F1DD210000210800ED4BBF86097E23B6C2736A210100E523394D441E +:20296800210600ED5BBF86195E23563E00218D7CCD5E81F13E01ADB420676F6739B6282B67 +:202988004F0600C5211600ED5BBF86195E2356211600ED4BBF860946236668011700094EFE +:2029A8002346237E69600101001829234E47C5211600ED5BBF86195E2356211600ED4BBF9A +:2029C800860946236668011700094E2346237E6960010200CD5E81E121010039E52B46E1C5 +:2029E80070210100E523394D44211000ED5BBF86195E23563E00218D7CCD5E81F13E01ADCC +:202A0800B420656F67393E10BE210E00ED4BBF8630150946236668DDE5C109E5210200395C +:202A280046E170DD231841095623666ADDE5D1193600210E00ED4BBF8609E5211600ED5B51 +:202A4800BF86195E2356211600ED4BBF860946236668011700094E2346237E6960010104FD +:162A6800CD5E81E1DD210000C35269210A0039F9DDE1C1C325810A +:2003AD002F6465762F6C636430002F6465762F6C6364310048595445434820313030300089 +:2003CD004F4B0043616E63656C00004D65737361676520426F78002F6465762F62617263ED +:0403ED006F646500D4 +:200387001B4B1B5300001B4300001B4E00001B5200001B4600001B6800001B5A00000000F5 +:0603A700001B45001B00D5 +:202A7E00FDE5DDE5C521C0FF39F9D5DDE1210C00197E23666FAFB62008DD360CDDDD360DC5 +:202A9E008421000039362D012F00DD5E0CDD560D3E0021F86CCD5E81E5FDE17DB42804FD94 +:202ABE00231809DD6E0CDD660DE5FDE1FDE5C12100003911010019EB3E00214D76CD5E8169 +:202ADE0021000039E5214200397E23666FC171237021400039472366682323AF772377DD0D +:202AFE005E06DD56073E0021C46CCD5E81DD5E04DD56053E0021A76FCD5E81DD5E0ADD56CF +:202B1E000B3E0021736FCD5E81210100E5DD4E0ADD460B11E5843E00219770CD5E81F12197 +:202B3E000100E5DD4E00DD460111EA843E00219770CD5E81F1214000394E2346DD5E0CDD4B +:202B5E00560D3E0021DD74CD5E81DD5E0CDD560D3E0021A074CD5E811101003E00215D7CA8 +:202B7E00CD5E8121420039F9DDE1FDE1C32581CD8881E0FFFDE5DD6E02DD6603E5FDE121E3 +:202B9E002600DD4E02DD4603094623666823232346236668010101A7ED42C28A6CFD6E20A2 +:202BBE00FD662146DD70ECFD6E20FD66212346DD70EDDD36EE00FD6E20FD66213600210ECD +:202BDE000039EB3E0021C176CD5E81EB3E00217476CD5E81DD75E0DD74E1FD4E20FD46215E +:202BFE000303DD71EADD70EB7DB4287123237E23666F46DD70E2DD6EE0DD66E12323462348 +:202C1E0066682346DD70E3DD36E400210400394D44DD5EEADD56EB3E00215977CD5E81DD4E +:202C3E0075E8DD74E9DD4EE0DD46E1030369604E2346DD5EE8DD56E93E0021FF73CD5E818E +:202C5E007DB420193E00212049CD5E81010000DD5EE0DD56E13E00217E6ACD5E81FDE5D1A2 +:202C7E00FD7E1CFD6E1AFD661BCD5E81FDE1C31F81CD52813E00216F67CD5E813E00216966 +:202C9E0067CD5E8101180009368D23366B23360011EF843E0021BB68CD5E813E00219668F2 +:062CBE00CD5E81C31F8101 +:2003F1002F62696E2F736800484F4D450055534552002F776E642F6C6F676E2E7363720045 +:202CC400CD5281D5210600E5210700E53E0021DE6CCD5E81F1F1F1C31F8121040039C5D5DF +:142CE4005E2356234D44F7300622BA8621FFFFD1C1C32581A8 :0B003300DDF9DDE1D1C1F1ED3939C983 -:202B4100CD8881FEFFDD5E02DD56033E00214072CD5E81DD5E02DD560319DD75FEDD74FF45 -:202B610079B02008DD6EFEDD66FF1839DD6E02DD6603DD4EFEDD46FFA7ED422825DD6EFEDD -:202B8100DD66FF2BDD75FEDD74FF4E0600DD6E04DD6605A7ED422008DD6EFEDD66FF180596 -:202BA10018CA210000C31F81CD8881F8FFAFDD77FEDD77FFDD7E02DDB6032078115F853ECF -:202BC1000021A96BCD5E817DB4201E1177853E0021A96BCD5E817DB4200F118F853E002194 -:202BE100A96BCD5E817DB4280621FFFFC3B96D2A5D85DD7502DD7403DD7E02DDB603282EB0 -:202C0100DD5E02DD56033E0021A96BCD5E817DB4280621FFFFC3B96D211600DD4E02DD4633 -:202C210003095623666ADD7502DD740318CA210000C3B96D210C00DD4E02DD4603097EE6BD -:202C410080CA0F6D210600DD4E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7D6B -:202C6100B4CA0D6D210600DD4E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DDC8 -:202C81004EF8DD46F9210A00DD5E02DD5603195E23563E0021D16DCD5E81F1DD75FCDD746A -:202CA100FD4D44210000CDA681301E210000397EDD86FC77237EDD8EFD77210200397EDD3D -:202CC10096FC77237EDD9EFD77DD4EFCDD46FD210000CDA68138A1DD7EFCDDA6FD3C2009E9 -:202CE1002ABB863E04ADB4288FDD7EFADDB6FB281B210C00DD4E02DD4603097EF600772351 -:202D01007EF60277DD36FEFFDD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E0225 -:202D2100DD66034E2346DD6E02DD660323235623666AA7ED42DD75FADD74FB4D4421000053 -:202D4100CDA6813033210100E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD76 -:202D61004E02DD4603095E23563E0021396ECD5E81F1F1F1CB782800210C00DD4E02DD468F -:202D810003097EE63F77237EE6FA7769602323E5210400DD4E02DD460309E5210600095634 -:202DA10023666AE56960C1712370E1712370E1712370DD6EFEDD66FFC31F81CD5281D5215E -:202DC1000300E53E0021276BCD5E81F1F1C31F81CD5281DD6E0ADD660BE5C5D5212400E53C -:0F2DE1003E0021276BCD5E81F1F1F1F1C31F811F +:202CF800CD8881FEFFDD5E02DD56033E0021C873CD5E81DD5E02DD560319DD75FEDD74FF04 +:202D180079B02008DD6EFEDD66FF1839DD6E02DD6603DD4EFEDD46FFA7ED422825DD6EFE24 +:202D3800DD66FF2BDD75FEDD74FF4E0600DD6E04DD6605A7ED422008DD6EFEDD66FF1805DD +:202D580018CA210000C31F81CD8881F8FFAFDD77FEDD77FFDD7E02DDB6032078115E853E17 +:202D78000021606DCD5E817DB4201E1176853E0021606DCD5E817DB4200F118E853E00216B +:202D9800606DCD5E817DB4280621FFFFC3706F2A5C85DD7502DD7403DD7E02DDB603282E86 +:202DB800DD5E02DD56033E0021606DCD5E817DB4280621FFFFC3706F211600DD4E02DD4609 +:202DD80003095623666ADD7502DD740318CA210000C3706F210C00DD4E02DD4603097EE64C +:202DF80080CAC66E210600DD4E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7DFB +:202E1800B4CAC46E210600DD4E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DD57 +:202E38004EF8DD46F9210A00DD5E02DD5603195E23563E0021886FCD5E81F1DD75FCDD74F8 +:202E5800FD4D44210000CDA681301E210000397EDD86FC77237EDD8EFD77210200397EDD84 +:202E780096FC77237EDD9EFD77DD4EFCDD46FD210000CDA68138A1DD7EFCDDA6FD3C200930 +:202E98002ABA863E04ADB4288FDD7EFADDB6FB281B210C00DD4E02DD4603097EF600772399 +:202EB8007EF60277DD36FEFFDD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E026D +:202ED800DD66034E2346DD6E02DD660323235623666AA7ED42DD75FADD74FB4D442100009B +:202EF800CDA6813033210100E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DDBE +:202F18004E02DD4603095E23563E0021C16FCD5E81F1F1F1CB782800210C00DD4E02DD464D +:202F380003097EE63F77237EE6FA7769602323E5210400DD4E02DD460309E521060009567B +:202F580023666AE56960C1712370E1712370E1712370DD6EFEDD66FFC31F81CD5281D521A5 +:202F78000300E53E0021DE6CCD5E81F1F1C31F81CD5281DD6E0ADD660BE5C5D5212400E5CB +:0F2F98003E0021DE6CCD5E81F1F1F1F1C31F81AE :16003E00F5C5E5784251676BED4CED6CED5C79858257E1C1F1C922 -:202DF000CD5281D5210300E5210700E53E0021276BCD5E81F1F1F1C31F81CD8881FCFF2173 -:202E10000E003901020009DD75FCDD74FDE5DD4E0ADD460B1177853E00215177CD5E81F19A -:202E3000DD75FEDD74FFC31F81CD5281DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660B20 -:202E5000E5D5211900E53E01215649CD5E81F1F1F1F1F1C32282CD8881FEFF2A5D85DD7591 -:202E7000FEDD74FF1177853E0021A96BCD5E81118F853E0021A96BCD5E81DD7EFEDDB6FF99 -:202E9000283CDD5EFEDD56FF3E0021A96BCD5E81210A00DD4EFEDD46FF095E23563E00217F -:202EB0002B72CD5E81210A000936FF2336FF211600095623666ADD75FEDD74FF18BCC31F19 -:202ED00081C5D52AA7857DB42002182E21000022A7851101003E00219373CD5E817DB428ED -:1F2EF0000C2183857EF60177237EF600770E0011666E3E01212349CD5E81D1C1C325812E -:200471000000C286C286C286C286C2870000100000000000000000000000C287C287C28717 -:20049100C287C28801002000000000000000000000009D859D859D859D859F8502002200C7 -:0C04B1000000000000000000000001003E -: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 -:20322B00CD5281D5210600E53E0021276BCD5E81F1F1C31F81CD8881FEFFDD6E02DD6603BA -:20324B00DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD460308 -:20326B00DD6EFEDD66FFA7ED42C31F81CD8881FAFFDD6E02DD6603DD75FADD74FBDD71FC3B -:20328B00DD70FDDD6EFCDD66FD23DD75FCDD74FD2B46DD70FFDD6EFADD66FB23DD75FADD07 -:2032AB0074FB2B4EDD71FE79B82008AFDDB6FE280218D0DD4EFF0600DD6EFE2600A7ED42AF -:0332CB00C31F819D +:202FA700CD5281D5210300E5210700E53E0021DE6CCD5E81F1F1F1C31F81CD5281DD6E0EFB +:202FC700DD660FE5DD6E0CDD660DE5DD6E0ADD660BE5D5211900E53E01213741CD5E81F136 +:202FE700F1F1F1F1C3FD81CD8881FEFF2A5C85DD75FEDD74FF1176853E0021606DCD5E8163 +:20300700118E853E0021606DCD5E81DD7EFEDDB6FF283CDD5EFEDD56FF3E0021606DCD5E9C +:2030270081210A00DD4EFEDD46FF095E23563E0021B373CD5E81210A000936FF2336FF219F +:203047001600095623666ADD75FEDD74FF18BCC31F81C5D52AA6857DB42002182E21000081 +:2030670022A6851101003E00211B75CD5E817DB4280C2182857EF60177237EF600770E00BA +:1030870011EE6F3E0121F540CD5E81D1C1C325818F +:200470000000C186C186C186C186C1870000100000000000000000000000C187C187C18720 +:20049000C187C18801002000000000000000000000009C859C859C859C859E8502002200CF +:0C04B0000000000000000000000001003F +:20309700CD8881F2FFAFDD77F4DD77F5DD5E02DD56033E0021C873CD5E81DD75F6DD74F7C9 +:2030B70059503E0021C873CD5E81DD75F8DD74F92AB886DD75F2DD74F3DD6EF2DD66F34DC6 +:2030D700440303DD71F2DD70F346236668DD75FADD74FB7DB4283EDD6EF6DD66F7E5DD4E1E +:2030F70002DD4603DD5EFADD56FB3E0021AC7CCD5E81F17DB42014DD6EF6DD66F7DD4EFA05 +:20311700DD46FB097EFE3D2002180ADD34F42003DD34F518A4DD7EFADDB6FBC24872DD6EE0 +:20313700F4DD66F5232329EB3E0021317ACD5E81DD75FCDD74FD7DB4200C210C0022BA86B4 +:2031570021FFFFC31073DD6EF4DD66F529E5ED4BB886DD5EFCDD56FD3E0021357FCD5E81D2 +:20317700F1DD6EF8DD66F9DD4EF6DD46F709EB13133E0021317ACD5E81DD75FADD74FB7DA8 +:20319700B42010DD5EFCDD56FD3E00216D75CD5E8118A7DD6EF6DD66F7E5DD4E02DD46036E +:2031B700DD5EFADD56FB3E0021357FCD5E81F1DD6EF6DD66F7DD4EFADD46FB09363DDD6E60 +:2031D700F8DD66F923E5DD4E04DD4605DD6EF6DD66F7DD5EFADD56FB19EB133E0021357F3D +:2031F700CD5E81F1DD6EF4DD66F529DD4EFCDD46FD09DD5EFADD56FB732372DD6EF4DD663E +:20321700F529092323AF7723772AA8857DB4280CED5BA8853E00216D75CD5E81DD6EFCDD28 +:2032370066FD22A885DD6EFCDD66FD22B886C30D73DD7E0ADDB60BCA0D73DD5EFADD56FBEB +:203257003E0021C873CD5E81DD75FCDD74FDDD6EF8DD66F9DD4EF6DD46F7094D4403DD6ED3 +:20327700FCDD66FDA7ED423067DD6EF8DD66F9DD4EF6DD46F709EB13133E0021317ACD5E85 +:2032970081DD75FEDD74FF7DB42003C35171DD6EF6DD66F7E5DD4E02DD4603DD5EFEDD56FE +:2032B700FF3E0021357FCD5E81F1DD6EF6DD66F7DD4EFEDD46FF09363DDD6EF2DD66F32B68 +:2032D7002BDD75F2DD74F3DD71FADD70FB712370DD6EF8DD66F923E5DD4E04DD4605DD6E67 +:2032F700F6DD66F7DD5EFADD56FB19EB133E0021357FCD5E81F1210000C31F81CD8881F80B +:20331700FFDD5E02DD56033E0021C873CD5E81DD75FEDD74FF2AB886DD75F8DD74F9DD75F0 +:20333700FADD74FBDD6EF8DD66F94D440303DD71F8DD70F946236668DD75FCDD74FD7DB48A +:20335700284DDD6EFEDD66FFE5DD4E02DD4603DD5EFCDD56FD3E0021AC7CCD5E81F17DB462 +:203377002012DD6EFEDD66FFDD4EFCDD46FD097EFE3D2819DD6EFADD66FB4D440303DD71C7 +:1C339700FADD70FBDD4EFCDD46FD7123701895DD6EFADD66FBAF772377C31F813A +:0204BC0000003E +:2033B300CD5281D5210600E53E0021DE6CCD5E81F1F1C31F81CD8881FEFFDD6E02DD660379 +:2033D300DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD46037F +:2033F300DD6EFEDD66FFA7ED42C31F81CD8881FAFFDD6E02DD6603DD75FADD74FBDD71FCB2 +:20341300DD70FDDD6EFCDD66FD23DD75FCDD74FD2B46DD70FFDD6EFADD66FB23DD75FADD7D +:2034330074FB2B4EDD71FE79B82008AFDDB6FE280218D0DD4EFF0600DD6EFE2600A7ED4225 +:03345300C31F8113 :12005400E3F5C54E2346237BEDB12002232309C39C81B9 -:2032CE00CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE200386 -:2032EE00DD34FF18ECDD4E02DD4603DD6EFEDD66FFA7ED42E5DD4E02DD46031102003E006F -:20330E0021D16DCD5E81F1C3B082CD52817BB22008DD3602FEDD360384DD5E02DD5603CDCC -:20332E00CE72110485CDCE72ED5BBB863E0121DF45CD5E81DD7502DD7403EBCDCE72110727 -:07334E0085CDCE72C31F8183 -:0B0412006572726F72003A20000A0051 -:20335500CD52812AB986E53E0121C045CD5E81F1C31F81CD5281DD6E0EDD660FE5DD6E0C7E -:20337500DD660DE5DD6E0ADD660BE5210F00E53E0021276BCD5E81F1F1F1F1C31F81CD884D -:2033950081E2FF210000394D44DD5E02DD56033E0021CE73CD5E817DA43C2812DD7EE6E64E -:2033B500006FDD7EE7E6F0673E20ACB528052100001803210100C31F81CD5281C5D5210DF5 -:2033D50000E53E0021276BCD5E81F1F1F1C31F81CD8881FCFF21FCFFDD4E02DD460309DDFA -:2033F50075FEDD74FF23237E23B6280621FFFFC3C2742AD688DD75FCDD74FDDD4EFCDD46A4 -:20341500FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FFA7ED07 -:20343500423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD46FFDD48 -:203455006EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED42300272 -:203475001814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF2323E5DD3B -:203495004EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FF712396 -:1034B50070DD6EFCDD66FD22D688210000C31F810C +:20345600CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003FC +:20347600DD34FF18ECDD4E02DD4603DD6EFEDD66FFA7ED42E5DD4E02DD46031102003E00E5 +:2034960021886FCD5E81F1C38182CD52817BB22008DD3602FDDD360384DD5E02DD5603CDBA +:2034B6005674110385CD5674ED5BBA863E0021387DCD5E81DD7502DD7403EBCD5674110673 +:0734D60085CD5674C31F8170 +:0B0411006572726F72003A20000A0052 +:2034DD00CD52812AB886E53E0021197DCD5E81F1C31F81CD5281DD6E0EDD660FE5DD6E0C66 +:2034FD00DD660DE5DD6E0ADD660BE5210F00E53E0021DE6CCD5E81F1F1F1F1C31F81CD880C +:20351D0081E2FF210000394D44DD5E02DD56033E00215675CD5E817DA43C2812DD7EE6E63A +:20353D00006FDD7EE7E6F0673E20ACB528052100001803210100C31F81CD5281C5D5210D6B +:20355D0000E53E0021DE6CCD5E81F1F1F1C31F81CD8881FCFF21FCFFDD4E02DD460309DDB8 +:20357D0075FEDD74FF23237E23B6280621FFFFC34A762AD588DD75FCDD74FDDD4EFCDD4691 +:20359D00FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FFA7ED7E +:2035BD00423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD46FFDDBF +:2035DD006EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED423002E9 +:2035FD001814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF2323E5DDB2 +:20361D004EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FF71230C +:10363D0070DD6EFCDD66FD22D588210000C31F8183 :19006600E1C5D5DDE5DD210000DD39E9E526806F7EED2039ED3939E3E95E -:2034C500CD528159503E00214072CD5E8123E5DD4E04DD4605DD5E02DD56033E0121DC478C -:2034E500CD5E81F1C31F81CD8881FEFF3E00214F75CD5E813E0021B375CD5E81DD75FEDDC5 -:2035050074FF7DB4281D210400DD4EFEDD46FF0946236668DD4E02DD4603A7ED42200218AA -:143525000218D13E00219475CD5E81DD6EFEDD66FFC31F81A5 +:20364D00CD528159503E0021C873CD5E8123E5DD4E04DD4605DD5E02DD56033E0021357FE9 +:20366D00CD5E81F1C31F81CD8881FEFF3E0021D776CD5E813E00213B77CD5E81DD75FEDD28 +:20368D0074FF7DB4281D210400DD4EFEDD46FF0946236668DD4E02DD4603A7ED4220021821 +:1436AD000218D13E00211C77CD5E81DD6EFEDD66FFC31F8192 :20007F00E3F5C54E23462378B1280D0B7B962320F57A9620F12323230909C39C81E1C5D541 :1B009F00DDE5DD210000DD395E235623EB39F9EBE909097E23666FC1F1E3C99F -:20353900CD5281210A00E50100003E0121274BCD5E81F1C31F81D52AAB857DA43C280CED42 -:203559005BAB853E00212B72CD5E81210080E52AAD85E53E0121AD42CD5E81F1F122AB8529 -:203579007DA43C20122ABB86E5211585E53E00210A6ECD5E81F1F1D1C32581D52AAB857D68 -:20359900A43C280CED5BAB853E00212B72CD5E8121FFFF22AB85D1C32581D52AAB857DA4E3 -:1835B9003C280EED5BAB853E0121CF4BCD5E811803210000D1C3258174 -:20041D002F6574632F706173737764004552524E4F202564206F70656E696E6720706173F0 -:07043D0073776F72640A007F -:0404BF00FFFF0985AD -: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 -:203CAC00CD8881FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DDB5 -:203CCC00750CDD740DDD6EFEE53E0ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660D66 -:203CEC00E5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E00210F7DCD5E81F1F1F1F126 -:033D0C00C31F8151 +:2036C100CD5281210A00E50100003E0121A141CD5E81F1C31F81D52AAA857DA43C280CED4A +:2036E1005BAA853E0021B373CD5E81210080E52AAC85E53E0021067ACD5E81F1F122AA858A +:203701007DA43C20122ABA86E5211485E53E01210841CD5E81F1F1D1C32581D52AAA857D0F +:20372100A43C280CED5BAA853E0021B373CD5E8121FFFF22AA85D1C32581D52AAA857DA4D3 +:183741003C280EED5BAA853E01214942CD5E811803210000D1C325817A +:20041C002F6574632F706173737764004552524E4F202564206F70656E696E6720706173F1 +:07043C0073776F72640A0080 +:0404BE00FFFF0885AF :1200BA00C5E5F57CEE806778EE8047F1A7ED42E1C1C9E5 -: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 -:2042D800CD8881FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2AD688D2 -:2042F800DD75FCDD74FD7DB42011DD36FCD2DD36FD8821D28822D48822D688DD6EFCDD662C -:20431800FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA789 -:20433800ED42CAC843DD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E23469E -:20435800E1A7ED42206ADD6EFADD66FB232346236668ED4BD688A7ED422015DD6EFADD66DB -:20437800FB23234623666823234623666822D688DD6EFADD66FB23237E23666F4E2346DDDD -:204398006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604E3B -:2043B8002346030369604E2346E1712370C32543DD6EFADD66FB46236668DD4EFEDD46FFE1 -:2043D800A7ED42DA8644DD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD66AA -:2043F800FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DDA7 -:204418004EFADD46FB0922D688DD6EFCDD66FD2323ED5BD6887323722AD6882323E5030361 -:2044380069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52AD688B7 -:20445800D1732372DD6EFADD66FB712370DD6EFCDD66FD22D688DD6EFADD66FB2323AF77EE -:204478002377210400DD4EFADD46FB0918272AD688DD4EFADD46FBA7ED42204F1100043E77 -:204498000121574ECD5E81DD75FADD74FB7DA43C2006210000C31F81DD6EFADD66FB360039 -:2044B800233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E0021E573CD21 -:2044D8005E812AD688DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234697 -:0C44F800236668DD75FADD74FBC3254304 -:20010D00B7C8CB28CB19CB1CCB1D3D20F5C9B7C8FE0838096C61480600D60818F2CB38CBFB -:09012D0019CB1CCB1D3D20F5C9C6 -:20450400CD52812ABD863ABF86B5B42812010000DD5E02DD56033ABF862ABD86CD5E81DD7F -:204524005E02DD56033E0121AB49CD5E81C31F81CD5281DD6E0ADD660BE5C5D5211700E59F -:0F4544003E0021276BCD5E81F1F1F1F1C31F81A4 -:20013600DDF9DDE1D13333F1ED3939C90405C8CB2ACB1B10FAC9B7C8FE083809414C652E60 -:0E01560000D60818F229CB11CB103D20F8C9B5 -:20455300CD8881FAFFDD71FADD70FBDD6E02DD6603DD75FCDD74FDDD36FE00DD36FF00DDBA -:204573006E0ADD660B2BDD750ADD740B237DB4282CDD6EFCDD66FD23DD75FCDD74FD2B4620 -:20459300DD70FFDD6EFADD66FB23DD75FADD74FB2B4EDD71FE79B82802180218C2DD4EFF40 -:2045B3000600DD6EFE2600A7ED42C31F81CD5281DD6E0ADD660BE5C5D5210A00E53E002109 -:0C45D300276BCD5E81F1F1F1F1C31F8177 -:160164002100003E11CB13CB123DC8CB15CB14ED4230F20918EF35 -:2045DF00CD888176FFAFDD77FEDD77FF2AB1857DB4282BDDCB037E200FED4BB185DD6E0226 -:2045FF00DD6603CDA6813803C36447DD6E02DD660329ED4BAF850946236668C39947DD4E83 -:20461F0002DD4603210000CDA6813803C36447210000E5213C85E53E0121AD42CD5E81F1DC -:20463F00F1DD75FADD74FBCB7C2803C36447218000E5210400394D44DD5EFADD56FB3E01DB -:20465F00213445CD5E81F1DD75F8DD74F94D44210000CDA681D26447AFDD77FCDD77FDDD20 -:20467F004EF8DD46F9DD6EFCDD66FDA7ED42D2614721020039DD4EFCDD46FD097EFE0AC2EE -:20469F00294721D888DD4EFEDD46FF09360011D8883E00213975CD5E81DD4E02DD4603A75C -:2046BF00ED42205D21000039E501200011D8883E01217049CD5E814D44E171237079B020DA -:2046DF0010DD5EFADD56FB3E00212B72CD5E811874210000397E23666F7EFE20200B21005C -:2046FF000039342320013418E8DD5EFADD56FB3E00212B72CD5E8121000039462366681802 -:20471F0079AFDD77FEDD77FF182D014F00DD6EFEDD66FFA7ED42301F21020039DD4EFCDD08 -:20473F0046FD0946DD6EFEDD66FF23DD75FEDD74FF2B11D8881970DD34FC2003DD34FDC354 -:20475F007E46C34D46014E8511D8883E0021C574CD5E81210A00E511D8883E00214072CD38 -:1D477F005E8101D888094D44DD5E02DD56033E0021A37ECD5E81F121D888C31F81CF -:200450002F6C69622F6C69626572726F722E74787400556E6B6E6F776E206572726F7220AE -:01047000008B -:0404C3000000000035 -:13017A005E2356CD2A81722B73C9EB702B712B722B73C94F -:20479C00CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6E0ADD660B2BDD750ADD740B237DD1 -:2047BC00B42814DD4604DD6EFEDD66FF23DD75FEDD74FF2B7018DADD6E02DD6603C31F81F5 -:2047DC00CD8881FCFFDD6E02DD6603DD75FCDD74FDDD71FEDD70FFDD6E0ADD660B2BDD7505 -:2047FC000ADD740B237DB42820DD6EFEDD66FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD55 -:20481C0075FCDD74FD2B7018CEDD6E02DD6603C31F81CD8881FAFF2AB3852BDD75FADD744D -:20483C00FB21FFFF22B3853E0021000032BF8622BD86DDCBFB7E2053010500DD5EFADD56AB -:20485C00FBCD2A81212889195E23562346EBDD75FCDD74FDDD70FE110500DD4EFADD46FB73 -:20487C00CD2A81212B89194E2346DD5E02DD5603DD7EFEDD6EFCDD66FDCD5E81DD6EFADDDE -:20489C0066FB2BDD75FADD74FB18A7C31F81CD52812AB385CB7C200E010A802AB3853E8094 -:2048BC00AC67ED42380B210C0022BB8621FFFF18533E01212E4832BF8622BD86DD7E02DD51 -:2048DC00B603DDB604283A010500ED5BB385CD2A8121288919DD5604DD4E02DD4603712303 -:2048FC00702372010500ED5BB385CD2A81212B8919DD4E0ADD460B7123702AB3852322B3EA -:1A491C0085210000C31F81CD5281210000E53E0121AA48CD5E81F1C31F8180 -:0204C700000033 -:1E018D00EBE3F5E5210600397EAB77237EAA77D1237E73A94F237E72A847F1D1E1C99F -:20493600CD5281D53E00214072CD5E81D119EB3E0021C574CD5E81DD6E02DD6603C31F8120 -:1A49560021040039D55E2356234D44F7300822BB8621FFFF4D44D1C325810D -:1901AB00F57EB3775F237EB27757237EB1774F237EB077472B2B2BF1C9BC -:20497000CD8881FEFFDD6E02DD660346DD70FE480600DD6E04DD6605A7ED422008DD6E0200 -:20499000DD66031809AFDDB6FE2006210000C31F81DD34022003DD340318CACD5281D521F4 -:1049B0000B00E53E0021276BCD5E81F1F1C31F8125 -:2001C400DDF9DDE1D1C1C9F57E83775F237E8A7757237E89774F237E8877472B2B2BF1C955 -: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 -:20052900204444444444440404040404040404040404040404040404040404202020200129 -:20054900000000000000000000000000000000000000000000000000000000000000000092 -:20056900000000000000000000000000000000000000000000000000000000000000000072 -:20058900000000000000000000000000000000000000000000000000000000000000000052 -:2005A900000000000000000000000000000000000000000000000000000000000000000032 -:2002DF00E3F5D57B96235F7A9E23577B96237A9E23C3DF833004EB2329195E2356EBD1F191 -:2002FF00E3C9C5D55E2356234E2346EBCDFD83C3C283E3D5DDE5DD210000DD39DD5609DD01 -:20031F007409DD5E08DD7508D5C5F5DD6E0462ED6CDD5605ED5C1959DD5607ED5C19DD5E41 -:20033F000650ED5C19E5DD5E04DD56FEED5CDD6E05DD6607ED6C19DD4606ED4C09E5DD5EB1 -:20035F0004DD5607ED5CDD6E05DD6606ED6CAF1917F5DD5E04DD5606ED5C4A0600AF091751 -:16037F0055C14CE10984C1814D47EBF1D1D1DDE1D133333333C920 +:20375900CD8881DCFFDD36F8B9DD36F979DD36FA37DD36FB9E211000E501000011C1883EB7 +:203779000021F57ECD5E81F1210200E5DD4E04DD460511C1883E0021357FCD5E81F1DD3683 +:20379900FE00DD7EFEFE0E302EDD4EFE0600DD6E02DD6603097EB7281E21C388DD4EFE066E +:2037B9000009E5DD4EFE0600DD6E02DD66030946E170DD34FE18CBDD4EFE0600DD6E02DD55 +:2037D9006603097EB72818DD4EFE0600DD6E02DD6603093AC3888632C388DD34FE18D82176 +:2037F9001000E501C188210A00395D543E0021357FCD5E81F1AFDD77F4DD77F5DD77F6DD45 +:2038190077F7AFDD77E0DD77E1DD77E2DD77E3AFDD77DCDD77DDDD77DEDD77DFDD36FE40D6 +:20383900AFDDB6FECA5B7921180039DD4EFADD46FBDD5EF8DD56F9CD888221000039E52146 +:203859000600395E2356234E2346EB3E05CDE281C5E5DD6EE8DD66E9C109EBDD6EEADD66CB +:20387900EBC1ED4AE5D5DD6EE2DD66E3E5DD6EE0DD66E1E5DD6EF4DD66F5C109EBDD6EF6B9 +:20389900DD66F7C1ED4AE5D5210E00395E2356234E2346EB3E04CD1382C5E5DD6EE4DD665F +:2038B900E5C109EBDD6EE6DD66E7C1ED4A4D44EBCD4A82CD4A82EBE1CD888221040039E56E +:2038D900210200395E2356234E2346EB3E05CDE281C5E5DD6EF0DD66F1C109EBDD6EF2DD7C +:2038F90066F3C1ED4AE5D5DD6EDEDD66DFE5DD6EDCDD66DDE5DD6EF4DD66F5C109EBDD6ED1 +:20391900F6DD66F7C1ED4AE5D5210A00395E2356234E2346EB3E04CD1382C5E5DD6EECDD4A +:2039390066EDC109EBDD6EEEDD66EFC1ED4A4D44EBCD4A82CD4A82EBE1CD8882DD35FEC3DF +:20395900397821000039DD75FCDD74FDDD36FE02DD7EFEFE0DD2FC79DD7EFEFE0820282121 +:20397900000039E5210600395E2356234E2346EB3E1CCDE281EBE1CD6882DD7EFCC604DD09 +:2039990077FC3003DD34FDDD6EFCDD66FD5E2356234E2346EB7DE63FDD77FF3E06DD6EFCB7 +:2039B900DD66FDCDD481DD7EFFFE0C300ADD7EFFC62EDD77FF1819DD7EFFFE26300ADD7E09 +:2039D900FFC635DD77FF1808DD7EFFC63BDD77FFDD4EFE060021C18809DD46FF70DD34FE70 +:0D39F900C36979AF32CE8821C188C31F8118 +:203A0600CD5281DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E0021DE05 +:0B3A26006CCD5E81F1F1F1F1C31F8156 +:2000CC00F5C5E5AFCDA182F5CD2B82F1B728031318067B2F5F7A2F57E1C1F1C95E23562304 +:0A00EC004E2346EBCDE281C34182B2 +:203A3100CD8881FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2AD58882 +:203A5100DD75FCDD74FD7DB42011DD36FCD1DD36FD8821D18822D38822D588DD6EFCDD66DF +:203A7100FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA739 +:203A9100ED42CA217BDD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E2346BD +:203AB100E1A7ED42206ADD6EFADD66FB232346236668ED4BD588A7ED422015DD6EFADD668C +:203AD100FB23234623666823234623666822D588DD6EFADD66FB23237E23666F4E2346DD8E +:203AF1006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604EEB +:203B11002346030369604E2346E1712370C37E7ADD6EFADD66FB46236668DD4EFEDD46FF00 +:203B3100A7ED42DADF7BDD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD66C9 +:203B5100FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DD56 +:203B71004EFADD46FB0922D588DD6EFCDD66FD2323ED5BD5887323722AD5882323E5030314 +:203B910069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52AD58868 +:203BB100D1732372DD6EFADD66FB712370DD6EFCDD66FD22D588DD6EFADD66FB2323AF779F +:203BD1002377210400DD4EFADD46FB0918272AD588DD4EFADD46FBA7ED42204F1100043E28 +:203BF10001210C4ECD5E81DD75FADD74FB7DA43C2006210000C31F81DD6EFADD66FB360034 +:203C1100233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E00216D75CD46 +:203C31005E812AD588DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234647 +:0C3C5100236668DD75FADD74FBC37E7A23 +:1B00F600B7C8FE0838096C61480600D60818F2CB38CB19CB1CCB1D3D20F5C955 +:203C5D00CD52812ABC863ABE86B5B42812010000DD5E02DD56033ABE862ABC86CD5E81DD33 +:203C7D005E02DD56033E01218C41CD5E81C31F81CD5281DD6E0ADD660BE5C5D5211700E576 +:0F3C9D003E0021DE6CCD5E81F1F1F1F1C31F819C +:20011100DDF9DDE1D13333F1ED3939C90405C8CB2ACB1B10FAC9B7C8FE083809414C652E85 +:0E01310000D60818F229CB11CB103D20F8C9DA +:203CAC00CD8881FAFFDD71FADD70FBDD6E02DD6603DD75FCDD74FDDD36FE00DD36FF00DD6A +:203CCC006E0ADD660B2BDD750ADD740B237DB4282CDD6EFCDD66FD23DD75FCDD74FD2B46D0 +:203CEC00DD70FFDD6EFADD66FB23DD75FADD74FB2B4EDD71FE79B82802180218C2DD4EFFF0 +:203D0C000600DD6EFE2600A7ED42C31F81CD5281DD6E0ADD660BE5C5D5210A00E53E0021B8 +:0C3D2C00DE6CCD5E81F1F1F1F1C31F816E +:16013F002100003E11CB13CB123DC8CB15CB14ED4230F20918EF5A +:203D3800CD888176FFAFDD77FEDD77FF2AB0857DB4282BDDCB037E200FED4BB085DD6E02D7 +:203D5800DD6603CDA6813803C3BD7EDD6E02DD660329ED4BAE850946236668C3F27EDD4E13 +:203D780002DD4603210000CDA6813803C3BD7E210000E5212F85E53E0021067ACD5E81F179 +:203D9800F1DD75FADD74FBCB7C2803C3BD7E218000E5210400394D44DD5EFADD56FB3E00FC +:203DB800218D7CCD5E81F1DD75F8DD74F94D44210000CDA681D2BD7EAFDD77FCDD77FDDDB0 +:203DD8004EF8DD46F9DD6EFCDD66FDA7ED42D2BA7E21020039DD4EFCDD46FD097EFE0AC20E +:203DF800827E21D788DD4EFEDD46FF09360011D7883E0021C176CD5E81DD4E02DD4603A7F5 +:203E1800ED42205D21000039E501200011D7883E01215141CD5E814D44E171237079B020B1 +:203E380010DD5EFADD56FB3E0021B373CD5E811874210000397E23666F7EFE20200B210082 +:203E58000039342320013418E8DD5EFADD56FB3E0021B373CD5E8121000039462366681828 +:203E780079AFDD77FEDD77FF182D014F00DD6EFEDD66FFA7ED42301F21020039DD4EFCDDB8 +:203E980046FD0946DD6EFEDD66FF23DD75FEDD74FF2B11D7881970DD34FC2003DD34FDC305 +:203EB800D77DC3A67D01418511D7883E00214D76CD5E81210A00E511D7883E0021C873CDC4 +:1D3ED8005E8101D788094D44DD5E02DD56033E01216546CD5E81F121D788C31F81F6 +:200443002F6C69622F6C69626572726F722E74787400556E6B6E6F776E206572726F7220BB +:010463000098 +:0404C2000000000036 +:09015500EB702B712B722B73C9A6 +:203EF500CD8881FEFFDD6E02DD6603DD75FEDD74FFDD6E0ADD660B2BDD750ADD740B237D81 +:203F1500B42814DD4604DD6EFEDD66FF23DD75FEDD74FF2B7018DADD6E02DD6603C31F81A4 +:203F3500CD8881FCFFDD6E02DD6603DD75FCDD74FDDD71FEDD70FFDD6E0ADD660B2BDD75B4 +:203F55000ADD740B237DB42820DD6EFEDD66FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD04 +:123F750075FCDD74FD2B7018CEDD6E02DD6603C31F8104 +:20400000CD8881FAFF2AB2852BDD75FADD74FB21FFFF22B2853E0021000032BE8622BC86FC +:20402000DDCBFB7E2053010500DD5EFADD56FBCD2A81212789195E23562346EBDD75FCDDCB +:2040400074FDDD70FE110500DD4EFADD46FBCD2A81212A89194E2346DD5E02DD5603DD7E61 +:20406000FEDD6EFCDD66FDCD5E81DD6EFADD66FB2BDD75FADD74FB18A7C31F81CD52812ADD +:20408000B285CB7C200E010A802AB2853E80AC67ED42380B210C0022BA8621FFFF18533EEE +:2040A0000121004032BE8622BC86DD7E02DDB603DDB604283A010500ED5BB285CD2A8121BA +:2040C000278919DD5604DD4E02DD46037123702372010500ED5BB285CD2A81212A8919DD2D +:2040E0004E0ADD460B7123702AB2852322B285210000C31F81CD5281210000E53E01217C53 +:0841000040CD5E81F1C31F8177 +:0204C600000034 +:1E015E00EBE3F5E5210600397EAB77237EAA77D1237E73A94F237E72A847F1D1E1C9CE +:20410800CD8881FCFF210E003901020009DD75FCDD74FDE5DD4E0ADD460B1176853E012102 +:204128004E48CD5E81F1DD75FEDD74FFC31F8121040039D55E2356234D44F7300822BA86F2 +:0941480021FFFF4D44D1C3258184 +:19017C00F57EB3775F237EB27757237EB1774F237EB077472B2B2BF1C9EB +:20415100CD8881FEFFDD6E02DD660346DD70FE480600DD6E04DD6605A7ED422008DD6E0227 +:20417100DD66031809AFDDB6FE2006210000C31F81DD34022003DD340318CACD5281D5211B +:104191000B00E53E0021DE6CCD5E81F1F1C31F8194 +:20019500DDF9DDE1D1C1C9F57E83775F237E8A7757237E89774F237E8877472B2B2BF1C984 +:2041A100CD8881F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD6EFEDD66FF4E06CF +:2041C1000021B485097EE610280ADD34FE2003DD34FF18E4DD6EFEDD66FF7EFE2D2012DD54 +:2041E10034FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFE2B2008DD34FE2067 +:2042010003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E0121C74ECD5E81F12E +:20422100DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CDBD82180CDD4EFADD46FBDDF5 +:204241006EF8DD66F9C3FD81CD8881F4FF210001E5015989DD5E02DD56033E00218D7CCD1F +:204261005E81F1DD75FEDD74FF4D44210000CDA6813806210000C3CE44010A001159893EB7 +:2042810001215141CD5E81DD75F4DD74F57DB4285BDD6EF4DD66F523DD75F4DD74F52B36F6 +:2042A10000210100E5015989DD6EF4DD66F5A7ED42DD4EFEDD46FFA7ED427C079F4F41C52E +:2042C100E5DD5E02DD56033E0021C16FCD5E81F1F1F1DD6EF4DD66F52B2B7EFE0D200ADD1A +:2042E1006EF4DD66F52B2B3600C37F43210001E5015989DD5E02DD56033E00218D7CCD5E22 +:2043010081F1DD75FEDD74FF4D44210000CDA6813806210000C3CE44010A001159893E0173 +:20432100215141CD5E81DD75F4DD74F57DB428BC210100E5DD6EFEDD66FF7C079F5F53D541 +:20434100E5015989DD6EF4DD66F5A7ED427C079F5F53A7C1ED42EBC1ED42E5D5210100C164 +:2043610009EB210000C1ED4AE5D5DD5E02DD56033E0021C16FCD5E81F1F1F1C34E423A590E +:2043810089FE2328153A5989FE20280E3A5989FE0A28073A5989FE092003C34E42DD36F4D2 +:2043A10059DD36F589AFDD77FCDD77FD010780DD6EFCDD66FD3E80AC67ED42D27944DD5EE9 +:2043C100FCDD56FDCDF082000007002F44DC43E743F24300440E4419442444DD6EF4DD669C +:2043E100F522598A1848DD6EF4DD66F5225B8A183DDD6EF4DD66F5DD75FADD74FB182FDD5C +:204401006EF4DD66F5DD75F8DD74F91821DD6EF4DD66F522618A1816DD6EF4DD66F5226386 +:204421008A180BDD6EF4DD66F522658A1800010680DD6EFCDD66FD3E80AC67ED42302E01C1 +:204441003A00DD5EF4DD56F53E01215141CD5E81DD75F4DD74F57DB42003C34E42DD6EF4BA +:20446100DD66F523DD75F4DD74F52B3600DD34FC2003DD34FDC3AD43210A00E52104003994 +:204481004D44DD5EF8DD56F93E0121C74ECD5E81F1225F8ADD6EF6DD66F7AFB62803C34EF2 +:2044A10042210A00E5210400394D44DD5EFADD56FB3E0121C74ECD5E81F1225D8ADD6EF6FB +:1044C100DD66F7AFB62803C34E4221598AC31F8167 +:2044D100CD8881D6FFDD6E0ADD660BDD75F8DD74F921000039DD75FADD74FB212C0039DD94 +:2044F10075FCDD74FD213A00397ED60A77DD4E0CDD460D212400CDA6813811010280DD6ECC +:204511000CDD660D3E80AC67ED423003C35446DD6EFCDD66FD23237EE60047237EE680B06F +:204531002831AFDDB60E282BDD6EF8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6E08 +:2045510002DD6603CDBD82DD7502DD7403DD7104DD7005DD6EFCDD66FD23237E23B6200264 +:20457100184EDD6E0CDD660D7C079F4F41C5E5DD4E04DD4605DD6E02DD6603CD2283E5DDA3 +:204591006EFADD66FB23DD75FADD74FB2BC171212C0039DD5E0CDD560D7A079F4F41CD12B0 +:2045B10083DD6EFCDD66FD23237E23B620B41830DD5E02DD5603DD4E0CDD460DCDCF82DD52 +:2045D1006EFADD66FB23DD75FADD74FB2B73DD5E02DD5603CDD882DD6EFCDD66FD732372A2 +:2045F100DD6EFCDD66FD7E23B620C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB610 +:20461100FF2840DD6EFADD66FB2BDD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77EE +:20463100FE1809DD7EFEDD8610DD77FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD3528 +:20465100FF18BADD6EF8DD66F93600DD6E0ADD660BC31F81CD8881FEFFDD36FE41DDCB0BE5 +:204671007E2816DD36FE61DD4E0ADD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5E7 +:20469100DD6E0ADD660BE5DD6E04DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A0769 +:2046B1009F4F411809DD5E02DD56030100003E0121D144CD5E81F1F1F1F1C31F81CD888107 +:2046D100FAFFAFDD77FBDD77FC59503E0021C873CD5E81DD75FDDD74FEDD6E04DD66057EE0 +:2046F100FE2D2014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A2808DD3469 +:20471100FD2003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDA681300CB1 +:20473100DD6E10DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDA681300CDD6EFDAF +:20475100DD66FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FD77237E8E +:20477100DD9EFE77DD7E0EDDB60F2009DD7EFDDDB6FECA4548DD7E08DDB6092034DD7E0E08 +:20479100DDB60F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DD460CDD77 +:2047B10070FADD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60A280CDDE1 +:2047D100460ADD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FADD6EFD84 +:2047F100DD66FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDD740FDD8A +:204811004E02DD4603DD5EFA16003E01211E50CD5E81DD7EFAFE0A20183E01DDAE12DDB648 +:2048310013200EDD5E02DD56033E0021606DCD5E81C37547DD6EFBDD66FCC38182CD88813B +:20485100A2FFAFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DD71FDDD89 +:2048710070FE210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CA534DDD6E04DD6605A2 +:204891007EFE25C2064D3E02DDAEFDDDB6FE200EDD5E02DD56033E0021606DCD5E81AFDDF3 +:2048B10077A4DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDD36A8FF45 +:2048D100DD36A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD77A6DD7738 +:2048F100A7AFDD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6E04DD66FE +:20491100053E39BE3002186521000039010A00CDE682DD6E04DD66054E060021D0FF094DD2 +:2049310044210000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A972 +:204951001821DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A3DD75ACF4 +:20497100DD74ADDD34042003DD34051883DD6E04DD66055ECD40811400002021232A2B2DC2 +:204991002E5862636468696C6F70737578024D0A4B124B954CE54ADB4A614A764A6C4A760E +:2049B1004A524CD14A004B564AD849E349F749F049344CE349C849DD6E04DD66052BDD7561 +:2049D10004DD7405C3064DDD36A401DD36A500C3F248DD6E04DD660546DD70B3C3F248DD32 +:2049F10036B401C3F248216800397EC60277237ECE00772B6E672B2B46236668DD75A2DDFB +:204A110074A3DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD66A3DD75C7 +:204A3100ACDD74ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DD75ACDD5D +:204A510074ADC3F248DD36AA01DD36AB00C3F248DD36A601DD36A700C3F248AFDD77A6DDB7 +:204A710077A7C3F248210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC60477237EF8 +:204A9100CE00772B6E6701FCFF095E2356234E2346181A216C00397EC60277237ECE00776F +:204AB1002B6E672B2B5E23567A079F4F413E0121A94DCD5E81F1F1DD75B5DD74B6C3B94C4E +:204AD100DD36AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD36B230DDAB +:204AF10036AC05DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF0DD36AF59 +:204B1100FFDD7EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF095E2356C1 +:204B3100234E2346EB1819216800397EC60277237ECE00772B6E672B2B462366680100007B +:204B5100DD75B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DD4EBBDD4F +:204B710046BCDD5EB9DD56BA3E01217A51CD5E81F1F1DD75B5DD74B6DD36B750DD36B88510 +:204B9100AFDDB6B4CA314C3E02DDAEAEDDB6AF200ADD36B751DD36B88518493E08DDAEAE97 +:204BB100DDB6AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B754DD36B88518273E10DD64 +:204BD100AEAEDDB6AF200ADD36B756DD36B88518133E0FDDAEAEDDA6AF3C2008DD36B75922 +:204BF100DD36B885DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395D543E00B2 +:204C1100214D76CD5E81DD4EB5DD46B6211B00395D543E0121214ECD5E81DD75B5DD74B68B +:204C3100C3B94CDD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DD340518EE +:204C51001C216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A3DD46A288 +:204C7100DD6EB5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B646DD70B200 +:204C91001822181C216800397EC60277237ECE00772B6E672B2B46236668DD75B5DD74B695 +:204CB100DD36B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE5DD6EB23D +:204CD100E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CDCE46EB210C0039E1 +:204CF100F9EB4D44210E00397E8177237E8877180218021842DD4E02DD4603DD6E04DD663D +:204D1100055E16003E01211E50CD5E81DD34B02003DD34B1DD6E04DD66057EFE0A20183E56 +:204D310001DDAEFDDDB6FE200EDD5E02DD56033E0021606DCD5E81DD34042003DD3405C3BE +:204D51008048210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDDB6FE204A +:204D71000EDD5E02DD56033E0021606DCD5E813E01DDAEFDDDB6FE2016210400DD4E02DD0C +:184D9100460309E5210600094E2346E1712370DD6EB0DD66B1C31F81B5 +:0C0464000030620030003078003058009A +:1C01B500CB782809AF914F3E0098473E01CB7AC8F5AF935F3E009A57F1EE01C954 +:204DA900CD8881FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DDA7 +:204DC900750CDD740DDD6EFEE53E0ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660D58 +:204DE900E5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E0121D144CD5E81F1F1F1F18E +:034E0900C31F8143 +:1201D100F5AF956F3E009C673E00994F3E009847F1C936 +:154E0C00CD5281D5211800E53E0021DE6CCD5E81F1F1C31F8164 +:2001E300F5E5CD2B82EBE1F1C9F5E5CD2B827B2F5F7A2F57E1F1C95E2356CD2A81722B73CB +:01020300C931 +:204E2100CD5281D53E0021C873CD5E81D119EB3E00214D76CD5E81DD6E02DD6603C31F811D +:204E4100CD8881FEFFDD36FEFFDD36FFFFDD5E02160021B485197EE608280FDD4E020600C1 +:204E610021D0FF09DD75FEDD74FFDD4E02060021B485097EE604280FDD4E02060021A9FF67 +:204E810009DD75FEDD74FFDD4E02060021B485097EE602280FDD4E02060021B0FF09DD75D7 +:204EA100FEDD74FFDD4E04DD4605DD6EFEDD66FFCDA6813808DD36FEFFDD36FFFFDD6EFE23 +:204EC100DD66FFC38182CD8881FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADD5C +:204EE100460B212400CDA6813007AFDD770ADD770BDD6E02DD66034E060021B485097EE6D6 +:204F010010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD34035A +:204F2100186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FE6A +:204F4100582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD660391 +:204F6100237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DDC3 +:204F8100360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AF41 +:204FA100DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECD414EDD75FEDDD5 +:204FC10074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CDC78321000039DD5EFE73 +:204FE100DD56FF7A079F4F41CD8882DD34022003DD340318B7DD7E04DDB6052811DD6E0261 +:20500100DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC3FD81CD888127 +:20502100FEFF3E00215970CD5E81210C000946236668DD75FEDD74FF7DE6402818DD5E046F +:20504100DD56053E0021606DCD5E817DB4280621FFFFC32D51DD7EFEE6206FDD7EFFE6036F +:20506100673E20ADB4280621FFFFC32D51210800DD4E04DD4605095E23560A6F030A67A787 +:20508100ED523818DD5E04DD56053E0021606DCD5E817DB4280621FFFFC32D51DD6E04DD46 +:2050A10066054E234603702B710B6960DD460270210C00DD4E04DD4605097EF68077237EBC +:2050C100F600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5E04DD5677 +:2050E100053E0021606DCD5E817DB4280521FFFF183ADD7EFEE6032818210400DD4E04DD50 +:20510100460509E5210600094E2346E17123701816210400DD4E04DD460509E521080009BF +:205121004E2346E1712370DD6E022600C31F81CD5281160021B485197EE604280EDD7E02D8 +:20514100EE206FDD7E03EE00671806DD6E02DD6603C31F81CD5281160021B485197EE6027B +:19516100280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C31F815E +:2004C8000101010101010101011111111111010101010101010101010101010101010101A4 +:2004E800102020202020202020202020202020204848484848484848484820202020202074 +:2005080020424242424242020202020202020202020202020202020202020220202020205F +:2005280020444444444444040404040404040404040404040404040404040420202020012A +:20054800000000000000000000000000000000000000000000000000000000000000000093 +:20056800000000000000000000000000000000000000000000000000000000000000000073 +:20058800000000000000000000000000000000000000000000000000000000000000000053 +:2005A800000000000000000000000000000000000000000000000000000000000000000033 +:20517A00CD8881FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DDD2 +:20519A00750CDD740DDD6EFEE50E00C5DD6E0CDD660DE5DD6E0ADD660BE5DD4E04DD4605AA +:1551BA00DD5E02DD56033E0121D144CD5E81F1F1F1F1C31F8125 +:20020400E3F5D57B96235F7A9E23577B96237A9E23C304833004EB2329195E2356EBD1F147 +:20022400E3C9C5D55E2356234E2346EBCD4783C36A84EBE3F5DDE5DD210000DD39C5D5DD80 +:200244005609DD7409DD5E08DD7508CD6F83DDF9DDE1F1D13333C9EBE3F5DDE5DD2100007D +:20026400DD39C5D5DD5609DD7409DD5E08DD7508CD6F83E1C1CD5B84DDE1F1D13333C9F5E6 +:20028400210000010000DD36F82118021937DDCBFC16DDCBFD16DDCBFE16DDCBFF16DD35A2 +:2002A400F8282ECB11CB10CB15CB14ED5238DD201078DD960738D5200879DD960638CD18BC +:2002C4000479DD96064F78DD9E074730C12BA718BDF1E56069C1C9C5D55E2356234E234688 +:2002E400EBCDD783C36A84E3D5DDE5DD210000DD39DD5609DD7409DD5E08DD7508D5C5F5E7 +:20030400DD6E0462ED6CDD5605ED5C1959DD5607ED5C19DD5E0650ED5C19E5DD5E04DD56F6 +:20032400FEED5CDD6E05DD6607ED6C19DD4606ED4C09E5DD5E04DD5607ED5CDD6E05DD66C1 +:2003440006ED6CAF1917F5DD5E04DD5606ED5C4A0600AF091755C14CE10984C1814D47EBF5 +:20036400F1D1D1DDE1D133333333C9F57D2F6F7C2F67792F4F782F47F1C9EB702B712B726D +:030384002B73C90F :00000001FF diff --git a/src/gui/grlogin.map b/src/gui/grlogin.map index c89a398b..da85fee8 100644 --- a/src/gui/grlogin.map +++ b/src/gui/grlogin.map @@ -8,16 +8,16 @@ Area Addr Size Decimal Bytes (Attributes) ----- ------ ----- ------ ----- ------ 00000000 s__DEFAUL | 00000000 l_CCSTR | 00000000 l_ECSTR 00000000 .__.ABS. | 00000000 ?CL64180L | 00000000 ?CL64180B - 00000014 e__DEFAUL | 00000014 l__DEFAUL | 00000034 l_CONST - 000000A8 l_CSTR | 00000158 l_CDATA0 | 00000158 l_IDATA0 - 00000381 l_RCODE | 000003B3 l_UDATA0 | 00001000 l_CSTACK - 00004000 s_CODE | 00008100 s_RCODE | 00008481 e_RCODE - 00008481 s_CONST | 000084B5 s_CSTR | 000084B5 e_CONST - 0000855D e_CSTR | 0000855D s_IDATA0 | 0000855D s_CDATA0 - 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 | 0000C0F4 l_CODE | 000100F4 e_CODE + 00000014 e__DEFAUL | 00000014 l__DEFAUL | 00000026 l_CONST + 000000C3 l_CSTR | 00000158 l_CDATA0 | 00000158 l_IDATA0 + 00000373 l_RCODE | 000003B3 l_UDATA0 | 00001000 l_CSTACK + 00004000 s_CODE | 00008100 s_RCODE | 00008473 e_RCODE + 00008473 s_CONST | 00008499 s_CSTR | 00008499 e_CONST + 0000855C e_CSTR | 0000855C s_IDATA0 | 0000855C s_CDATA0 + 000086B4 s_UDATA0 | 000086B4 e_CCSTR | 000086B4 e_ECSTR + 000086B4 s_CCSTR | 000086B4 e_CDATA0 | 000086B4 s_ECSTR + 000086B4 e_IDATA0 | 00008A67 e_UDATA0 | 00008A67 s_CSTACK + 00009A67 e_CSTACK | 0000C079 l_CODE | 00010079 e_CODE Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -30,28 +30,28 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -RCODE 00008100 00000381 = 897. bytes (REL,CON) +RCODE 00008100 00000373 = 883. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ 00008100 __init | 0000811F ?BANK_LEA | 00008125 ?BANK_FAS 0000812A ?S_MUL_L0 | 00008140 ?C_V_SWIT | 00008152 ?ENT_PARM 0000815E ?BANK_CAL | 0000816B ?S_V_SWIT | 00008188 ?ENT_AUTO - 0000819C ?V_SWITCH | 000081A6 ?SS_CMP_L | 000081B8 ?US_MOD_L - 000081C1 ?SS_DIV_L | 000081DD ?UL_RSHAS | 000081EB ?US_DIV_L - 000081F9 ?SL_RSH_L | 00008207 ?UL_RSH_L | 00008222 ?BANK_LEA - 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 ?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 + 0000819C ?V_SWITCH | 000081A6 ?SS_CMP_L | 000081B8 ?SS_DIV_L + 000081D4 ?UL_RSHAS | 000081E2 ?UL_RSH_L | 000081FD ?BANK_LEA + 00008209 ?SS_RSH_L | 00008213 ?L_LSH_L0 | 0000822B ?S_DIVMOD + 00008241 ?L_END_AS | 0000824A ?L_XOR_L0 | 00008268 ?L_ORASG_ + 00008281 ?LEAVE_DI | 00008288 ?L_ADDASG | 000082A1 ?S_FIND_S + 000082BD ?L_NEG_L0 | 000082CF ?US_MOD_L | 000082D8 ?US_DIV_L + 000082E6 ?S_MULASG | 000082F0 ?S_S_SWIT | 00008304 ?S_SWITCH + 00008312 ?UL_DIVAS | 00008322 ?UL_MOD_L | 00008347 ?UL_DIV_L + 0000836F ?L_DIVMOD | 000083C7 ?L_MULASG | 000083D7 ?L_MUL_L0 + 0000845B ?L_NOT_L0 | 0000846A ?L_END_MU Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CONST 00008481 00000034 = 52. bytes (REL,CON) +CONST 00008473 00000026 = 38. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -59,7 +59,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CSTR 000084B5 000000A8 = 168. bytes (REL,CON) +CSTR 00008499 000000C3 = 195. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -67,18 +67,18 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -IDATA0 0000855D 00000158 = 344. bytes (NUL,CON) +IDATA0 0000855C 00000158 = 344. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 0000855D __IO_list | 0000855F stdin | 00008577 stdout - 0000858F stderr | 000085AD _path_pas | 000085AF __sys_err - 000085B1 __sys_ner | 000085B3 __on_exit | 000085B5 __ctype + 0000855C __IO_list | 0000855E stdin | 00008576 stdout + 0000858E stderr | 000085AC _path_pas | 000085AE __sys_err + 000085B0 __sys_ner | 000085B2 __on_exit | 000085B4 __ctype Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CDATA0 0000855D 00000158 = 344. bytes (REL,CON) +CDATA0 0000855C 00000158 = 344. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -86,7 +86,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -ECSTR 000086B5 00000000 = 0. bytes (NUL,CON) +ECSTR 000086B4 00000000 = 0. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -94,7 +94,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CCSTR 000086B5 00000000 = 0. bytes (REL,CON) +CCSTR 000086B4 00000000 = 0. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -102,67 +102,67 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CODE 00004000 0000C0F4 = 49396. bytes (NUL,CON) +CODE 00004000 0000C079 = 49273. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 000045C9 GraphicsO | 00004657 GraphicsC | 0000466C Move - 000046AB ClearRect | 000046EE DrawRectN | 00004733 FillRect - 00004778 FillRectN | 000047BD GrayRect | 00004802 Text - 0000482F TouchRegi | 00004886 ClearScre | 000048C3 EnableScr - 00004901 grSetFont | 0000493E fontSearc | 0000496E setCurren - 000049FC loadFont | 00004AA3 stringwid | 00004B1C stringhei - 00004B39 stringhei | 00004B4C stringhei | 00004B55 stringwid - 00004B66 stringwid | 00004B6F stringwid | 00004B78 Component - 00004C22 Component | 00004C6F Component | 00004CCD Component - 00004D13 Component | 00004D57 Component | 00004D8F Component - 00004F60 Component | 00004F7F Component | 00004FE8 Component - 0000509B Window_ha | 00005368 Window_pa | 000054F5 Root_pain - 0000552C Window_ad | 0000553A Window_ne | 0000558C Button_ha - 00005643 Button_dr | 000056FF Button_pa | 000057F8 Button_ad - 000057FE Button_ne | 00005850 ToggleBut | 000058EC ToggleBut - 000059D8 ToggleBut | 00005A2A Dialog_ha | 00005AE3 Dialog_ne - 00005BD2 Display_h | 00005C53 Display_p | 00005D9F Display_n - 00005DF9 Label_han | 00005DFF Label_pai | 00005E60 Label_new - 00005EB9 rootWindo | 00005ED7 screenbui | 000062A7 root_acti - 000065DF read_stri | 000066B4 gui_globa | 000066BA GUIinit - 000067E1 GUIunit | 00006806 GUIgo | 000068C7 login - 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 + 000045C8 SetCurren | 000045E3 GraphicsO | 00004701 GraphicsC + 00004726 Move | 00004761 ClearRect | 000047A1 DrawRectN + 000047E0 FillRect | 00004822 FillRectN | 00004864 GrayRect + 000048A6 Text | 000048C9 TouchRegi | 00004920 ClearScre + 0000495D EnableScr | 0000499B grSetFont | 000049D8 fontSearc + 00004A08 setCurren | 00004A8A loadFont | 00004B31 stringwid + 00004BAA stringhei | 00004BC7 stringhei | 00004BDA stringhei + 00004BE3 stringwid | 00004BF4 stringwid | 00004BFD stringwid + 00004C06 Component | 00004CB0 Component | 00004CFD Component + 00004D5B Component | 00004DA1 Component | 00004DE5 Component + 00004E1D Component | 00004FEE Component | 0000500D Component + 00005076 Component | 00005129 Window_ha | 000053F6 Window_pa + 00005594 Root_pain | 000055CB Window_ad | 000055D9 Window_ne + 00005628 Button_ha | 000056DF Button_dr | 00005782 Button_pa + 00005855 Button_ad | 0000585B Button_ne | 000058B8 ToggleBut + 00005954 ToggleBut | 00005A40 ToggleBut | 00005A9D Dialog_ha + 00005B56 Dialog_ne | 00005C66 Display_h | 00005CE7 Display_p + 00005E0B Display_n | 00005E6A Label_han | 00005E70 Label_pai + 00005ED1 Label_new | 00005F35 rootWindo | 00005F53 screenbui + 00006340 root_acti | 0000668F read_stri | 00006769 gui_globa + 0000676F GUIinit | 00006896 GUIunit | 000068BB GUIgo + 00006A7E login | 00006B8D login_act | 00006C8F main + 00006CC4 setgid | 00006CDE unix | 00006CF8 strrchr + 00006D60 fflush | 00006F73 chdir | 00006F88 _write + 00006FA7 setuid | 00006FC1 lseek | 00006FEE __stdio_c + 00007059 __stdio_i | 00007097 setenv | 00007313 unsetenv + 000073B3 close | 000073C8 strlen | 000073FF strcmp + 000074A0 perror | 000074DD execv | 000074F0 ioctl + 0000751B isatty | 00007556 fstat | 0000756D free + 0000764D strcpy | 00007674 getpwuid | 000076C1 atoi + 000076D7 setpwent | 0000771C endpwent | 0000773B getpwent + 00007759 crypt | 00007A06 open | 00007A31 malloc + 00007C5D exit | 00007C8D _read | 00007CAC memcmp + 00007D19 execve | 00007D38 strerror | 00007EF5 memset + 00007F35 memcpy | 0001407C on_exit | 000140F5 atexit + 00014108 printf | 00014137 unix_long | 00014151 strchr + 0001418C _exit | 000141A1 strtol | 00014249 __getpwen + 000144D1 __longtoa | 00014665 itoa | 0001484E vfprintf + 00014DA9 ltoa | 00014E0C sbrk | 00014E21 strcat + 00014EC7 strtoul | 0001501E fputc | 00015130 toupper + 00015155 tolower | 0001517A ultoa Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -UDATA0 000086B5 000003B3 = 947. bytes (REL,CON) +UDATA0 000086B4 000003B3 = 947. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 000086B5 _argc | 000086B7 _argv | 000086B9 environ - 000086BB errno | 000086BD __cleanup | 000086C0 global - 000088D2 __malloc_ | 000088D6 __malloc_ | 00008928 __on_exit + 000086B4 _argc | 000086B6 _argv | 000086B8 environ + 000086BA errno | 000086BC __cleanup | 000086BF global + 000088D1 __malloc_ | 000088D5 __malloc_ | 00008927 __on_exit Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CSTACK 00008A68 00001000 = 4096. bytes (REL,CON) +CSTACK 00008A67 00001000 = 4096. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -185,7 +185,6 @@ Libraries Linked [ object file ] ..\..\lib\libsysb.lib [ relsysb\write.rel ] ..\..\lib\libiar.lib [ reliar\SMUL.rel ] ..\..\lib\libsysb.lib [ relsysb\setuid.rel ] -..\..\lib\libcb.lib [ relcb\printf.rel ] ..\..\lib\libsysb.lib [ relsysb\lseek.rel ] ..\..\lib\libcb.lib [ relcb\stdio0.rel ] ..\..\lib\libcb.lib [ relcb\setenv.rel ] @@ -208,19 +207,13 @@ Libraries Linked [ object file ] ..\..\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 ] -..\..\lib\libcb.lib [ relcb\itoa.rel ] ..\..\lib\libcb.lib [ relcb\crypt.rel ] ..\..\lib\libsysb.lib [ relsysb\open.rel ] -..\..\lib\libiar.lib [ reliar\USMOD.rel ] ..\..\lib\libiar.lib [ reliar\SSDIV.rel ] ..\..\lib\libiar.lib [ reliar\ULRSHASG.rel ] -..\..\lib\libiar.lib [ reliar\USDIV.rel ] ..\..\lib\libiar.lib [ reliar\LIBVERSION.rel ] ..\..\lib\libcb.lib [ relcb\malloc.rel ] -..\..\lib\libiar.lib [ reliar\SLRSH.rel ] ..\..\lib\libiar.lib [ reliar\ULRSH.rel ] ..\..\lib\libcb.lib [ relcb\exit.rel ] ..\..\lib\libsysb.lib [ relsysb\read.rel ] @@ -231,38 +224,44 @@ Libraries Linked [ object file ] ..\..\lib\libsysb.lib [ relsysb\execve.rel ] ..\..\lib\libiar.lib [ reliar\SDIVMOD.rel ] ..\..\lib\libcb.lib [ relcb\error.rel ] -..\..\lib\libiar.lib [ reliar\SMULASG.rel ] ..\..\lib\libiar.lib [ reliar\LENDASG.rel ] ..\..\lib\libcb.lib [ relcb\memset.rel ] ..\..\lib\libcb.lib [ relcb\memcpy.rel ] ..\..\lib\libcb.lib [ relcb\atexit.rel ] ..\..\lib\libiar.lib [ reliar\LXOR.rel ] -..\..\lib\libcb.lib [ relcb\strcat.rel ] +..\..\lib\libcb.lib [ relcb\printf.rel ] ..\..\lib\libsysb.lib [ relsysb\sys1b.rel ] ..\..\lib\libiar.lib [ reliar\LORASG.rel ] ..\..\lib\libcb.lib [ relcb\strchr.rel ] ..\..\lib\libsysb.lib [ relsysb\_exit.rel ] ..\..\lib\libiar.lib [ reliar\LEAVEDIRECT.rel ] ..\..\lib\libiar.lib [ reliar\LADDASG.rel ] -..\..\lib\libcb.lib [ relcb\fputc.rel ] -..\..\lib\libcb.lib [ relcb\ultoa.rel ] ..\..\lib\libcb.lib [ relcb\strtol.rel ] -..\..\lib\libiar.lib [ reliar\ULDIVASG.rel ] ..\..\lib\libcb.lib [ relcb\getpwent.rel ] -..\..\lib\libiar.lib [ reliar\ULMOD.rel ] +..\..\lib\libcb.lib [ relcb\itoa.rel ] +..\..\lib\libcb.lib [ relcb\vfprintf.rel ] ..\..\lib\libiar.lib [ reliar\SFINDSIGN.rel ] -..\..\lib\libiar.lib [ reliar\ULDIV.rel ] -..\..\lib\libsysb.lib [ relsysb\sbrk.rel ] +..\..\lib\libcb.lib [ relcb\ltoa.rel ] ..\..\lib\libiar.lib [ reliar\LNEG.rel ] -..\..\lib\libiar.lib [ reliar\LDIVMOD.rel ] -..\..\lib\libiar.lib [ reliar\LNOT.rel ] -..\..\lib\libiar.lib [ reliar\LENDMULDIVASG.rel ] +..\..\lib\libsysb.lib [ relsysb\sbrk.rel ] +..\..\lib\libiar.lib [ reliar\USMOD.rel ] +..\..\lib\libiar.lib [ reliar\USDIV.rel ] +..\..\lib\libiar.lib [ reliar\SMULASG.rel ] +..\..\lib\libcb.lib [ relcb\strcat.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\libiar.lib [ reliar\ULDIVASG.rel ] +..\..\lib\libiar.lib [ reliar\ULMOD.rel ] +..\..\lib\libiar.lib [ reliar\ULDIV.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 ] User Base Address Definitions diff --git a/src/gui/hello.map b/src/gui/hello.map deleted file mode 100644 index 44a45a1b..00000000 --- a/src/gui/hello.map +++ /dev/null @@ -1 +0,0 @@ -Error[e12]: Unable to open file 'hello' diff --git a/src/gui/login.c.org b/src/gui/login.c.org deleted file mode 100644 index 598cf056..00000000 --- a/src/gui/login.c.org +++ /dev/null @@ -1,93 +0,0 @@ -/* 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 a7595258..57f1f54b 100644 --- a/src/gui/login.lst +++ b/src/gui/login.lst @@ -307,7 +307,7 @@ 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 + 00000224 01 18 00 310 LD BC,24 00000227 09 311 ADD HL,BC 00000228 36 0F 312 LD (HL),LOW(login_actionhandler) 0000022A 23 313 INC HL diff --git a/src/gui/login.map b/src/gui/login.map deleted file mode 100644 index 297c5c7d..00000000 --- a/src/gui/login.map +++ /dev/null @@ -1,283 +0,0 @@ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -. .ABS. 00000000 00000000 = 0. bytes (ABS,OVR) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ - 00000000 s__DEFAUL | 00000000 l_CCSTR | 00000000 l_ECSTR - 00000000 .__.ABS. | 00000000 ?CL64180L | 00000000 ?CL64180B - 00000014 e__DEFAUL | 00000014 l__DEFAUL | 0000002F l_CONST - 00000148 l_CSTR | 00000170 l_CDATA0 | 00000170 l_IDATA0 - 000003B5 l_UDATA0 | 00000430 l_RCODE | 00001000 l_CSTACK - 00004000 s_CODE | 00008100 s_RCODE | 00008530 e_RCODE - 00008530 s_CONST | 0000855F s_CSTR | 0000855F e_CONST - 000086A7 e_CSTR | 000086A7 s_IDATA0 | 000086A7 s_CDATA0 - 00008817 s_UDATA0 | 00008817 e_CCSTR | 00008817 e_ECSTR - 00008817 s_CCSTR | 00008817 e_CDATA0 | 00008817 s_ECSTR - 00008817 e_IDATA0 | 00008BCC e_UDATA0 | 00008BCC s_CSTACK - 00009BCC e_CSTACK | 0000C27F l_CODE | 0001027F e_CODE -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -_DEFAULT 00000000 00000014 = 20. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -RCODE 00008100 00000430 = 1072. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ - 00008100 __init | 0000811F ?L_MUL_L0 | 000081A3 ?BANK_LEA - 000081A9 ?BANK_FAS | 000081AE ?S_MUL_L0 | 000081C4 ?C_V_SWIT - 000081D6 ?L_ADDASG | 000081EF ?ENT_PARM | 000081FB ?BANK_CAL - 00008208 ?S_S_SWIT | 0000821C ?S_V_SWIT | 00008239 ?S_SWITCH - 00008247 ?SL_MOD_L | 0000827A ?ENT_AUTO | 0000828E ?V_SWITCH - 00008298 ?SL_DIV_L | 000082C8 ?SS_CMP_L | 000082DA ?L_INC_L0 - 000082E2 ?US_MOD_L | 000082EB ?SS_DIV_L | 00008307 ?UL_RSHAS - 00008315 ?US_DIV_L | 00008323 ?SL_RSH_L | 00008331 ?UL_RSH_L - 0000834C ?L_DIVMOD | 000083A4 ?BANK_LEA | 000083B0 ?SS_RSH_L - 000083BA ?L_LSH_L0 | 000083D2 ?S_DIVMOD | 000083E8 ?S_MULASG - 000083F2 ?L_END_AS | 000083FB ?L_NOT_L0 | 0000840A ?L_XOR_L0 - 00008428 ?L_ORASG_ | 00008441 ?LEAVE_DI | 00008448 ?L_FIND_S - 0000848C ?UL_DIVAS | 0000849C ?UL_MOD_L | 000084C1 ?S_FIND_S - 000084DD ?UL_DIV_L | 00008505 ?L_NEG_L0 | 00008517 ?L_MULASG - 00008527 ?L_END_MU -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -CONST 00008530 0000002F = 47. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -CSTR 0000855F 00000148 = 328. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -IDATA0 000086A7 00000170 = 368. bytes (NUL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ - 000086BF __IO_list | 000086C1 stdin | 000086D9 stdout - 000086F1 stderr | 0000870F _path_pas | 00008711 __sys_err - 00008713 __sys_ner | 00008715 __on_exit | 00008717 __ctype -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -CDATA0 000086A7 00000170 = 368. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -ECSTR 00008817 00000000 = 0. bytes (NUL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -CCSTR 00008817 00000000 = 0. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -CODE 00004000 0000C27F = 49791. bytes (NUL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ - 0000472B GraphicsO | 000047C7 GraphicsC | 000047DF Move - 0000481E ClearRect | 00004861 DrawRectN | 000048A6 FillRect - 000048EB FillRectN | 00004930 GrayRect | 00004975 Text - 000049A1 TouchRegi | 000049F8 ClearScre | 00004A35 EnableScr - 00004A73 grSetFont | 00004AB0 fontSearc | 00004AE0 setCurren - 00004B7C loadFont | 00004C23 stringwid | 00004C9C stringhei - 00004CB9 stringhei | 00004CCC stringhei | 00004CD5 stringwid - 00004CE6 stringwid | 00004CEF stringwid | 00004CF8 Component - 00004DA2 Component | 00004DEF Component | 00004E4D Component - 00004E93 Component | 00004ED7 Component | 00004F0F Component - 000050E0 Component | 000050FF Component | 00005168 Component - 0000521B Window_ha | 00005485 Window_pa | 00005611 Root_pain - 00005648 Window_ad | 00005656 Window_ne | 000056A8 Button_ha - 0000575F Button_dr | 0000582D Button_pa | 00005900 Button_ad - 00005906 Button_ne | 00005958 ToggleBut | 000059F1 ToggleBut - 00005ADD ToggleBut | 00005B2F Dialog_ha | 00005BE8 Dialog_ne - 00005CD7 Display_h | 00005D55 Display_p | 00005E72 Display_n - 00005ECC Label_han | 00005ED2 Label_pai | 00005F33 Label_new - 00005F8C Transacti | 000065CA rootWindo | 000065E8 screenbui - 000069B0 root_acti | 00006CE5 read_stri | 00006DBA gui_globa - 00006DC0 GUIinit | 00006EF0 GUIunit | 00006F15 GUIgo - 00006F94 login | 000070BD login_act | 00007213 main - 0000727A setgid | 00007294 unix | 000072AE sprintf - 000072F2 strrchr | 0000735A fflush | 0000756D chdir - 00007582 _write | 000075A1 setuid | 000075BB printf - 000075EA lseek | 00007617 __stdio_c | 00007682 __stdio_i - 000076C0 setenv | 0000793C unsetenv | 000079DC close - 000079F1 strlen | 00007A28 strcmp | 00007AC9 perror - 00007B06 execv | 00007B19 ioctl | 00007B44 isatty - 00007B7F fstat | 00007B96 free | 00007C76 getpwnam - 00007CD8 setpwent | 00007D1D endpwent | 00007D3C getpwent - 00007D5A strcpy | 00014000 __getpwen | 00014288 atoi - 0001441E vfprintf | 00014979 ltoa | 000149DC atol - 000149F2 __longtoa | 00014B86 itoa | 00014BEF crypt - 00014E9C fputs | 00014EFA open | 00014F25 malloc - 00015151 exit | 00015181 _read | 000151A0 memcmp - 0001520D execve | 0001522C strerror | 000153E9 memset - 00015429 memcpy | 000154F7 on_exit | 00015570 atexit - 00015583 strcat | 000155A3 unix_long | 000155BD strchr - 000155F8 _exit | 00015693 strtoul | 000157EA fputc - 000158FC toupper | 00015921 tolower | 00015946 ultoa - 0001599B strtol | 00015A43 sbrk -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -UDATA0 00008817 000003B5 = 949. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ - 00008817 _argc | 00008819 _argv | 0000881B environ - 0000881D errno | 0000881F __cleanup | 00008822 global - 00008824 trans | 00008B44 __malloc_ | 00008B48 __malloc_ - 00008B9A __on_exit -Hexadecimal [32-Bits] - -Area Addr Size Decimal Bytes (Attributes) --------------------- ---- ---- ------- ----- ------------ -CSTACK 00008BCC 00001000 = 4096. bytes (REL,CON) - - Value Global Value Global Value Global - ----- ------ ----- ------ ----- ------ - -Files Linked [ module(s) ] - -..\..\lib\c0b.rel [ _c0b ] -wnd [ wnd ] -login [ login ] - - -Libraries Linked [ object file ] - -..\..\lib\libsysb.lib [ relsysb\setgid.rel ] -..\..\lib\libsysb.lib [ relsysb\sys0b.rel ] -..\..\lib\libcb.lib [ relcb\sprintf.rel ] -..\..\lib\libiar.lib [ reliar\LMUL.rel ] -..\..\lib\libiar.lib [ reliar\BANKLEAVEDIRECT.rel ] -..\..\lib\libcb.lib [ relcb\strrchr.rel ] -..\..\lib\libcb.lib [ relcb\fflush.rel ] -..\..\lib\libsysb.lib [ relsysb\chdir.rel ] -..\..\lib\libsysb.lib [ relsysb\write.rel ] -..\..\lib\libiar.lib [ reliar\SMUL.rel ] -..\..\lib\libsysb.lib [ relsysb\setuid.rel ] -..\..\lib\libcb.lib [ relcb\printf.rel ] -..\..\lib\libsysb.lib [ relsysb\lseek.rel ] -..\..\lib\libcb.lib [ relcb\stdio0.rel ] -..\..\lib\libcb.lib [ relcb\setenv.rel ] -..\..\lib\libsysb.lib [ relsysb\close.rel ] -..\..\lib\libcb.lib [ relcb\strlen.rel ] -..\..\lib\libcb.lib [ relcb\strcmp.rel ] -..\..\lib\libiar.lib [ reliar\CVSWITCH.rel ] -..\..\lib\libcb.lib [ relcb\perror.rel ] -..\..\lib\libcb.lib [ relcb\execv.rel ] -..\..\lib\libsysb.lib [ relsysb\ioctl.rel ] -..\..\lib\libiar.lib [ reliar\LADDASG.rel ] -..\..\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\libiar.lib [ reliar\SSSWITCH.rel ] -..\..\lib\libiar.lib [ reliar\SVSWITCH.rel ] -..\..\lib\libiar.lib [ reliar\SSWITCHEND.rel ] -..\..\lib\libiar.lib [ reliar\SLMOD.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\libiar.lib [ reliar\SLDIV.rel ] -..\..\lib\libcb.lib [ relcb\vfprintf.rel ] -..\..\lib\libcb.lib [ relcb\ltoa.rel ] -..\..\lib\libcb.lib [ relcb\atol.rel ] -..\..\lib\libiar.lib [ reliar\SSCMP.rel ] -..\..\lib\libcb.lib [ relcb\itoa.rel ] -..\..\lib\libiar.lib [ reliar\LINC.rel ] -..\..\lib\libcb.lib [ relcb\crypt.rel ] -..\..\lib\libcb.lib [ relcb\fputs.rel ] -..\..\lib\libsysb.lib [ relsysb\open.rel ] -..\..\lib\libiar.lib [ reliar\USMOD.rel ] -..\..\lib\libiar.lib [ reliar\SSDIV.rel ] -..\..\lib\libiar.lib [ reliar\ULRSHASG.rel ] -..\..\lib\libiar.lib [ reliar\USDIV.rel ] -..\..\lib\libiar.lib [ reliar\LIBVERSION.rel ] -..\..\lib\libcb.lib [ relcb\malloc.rel ] -..\..\lib\libiar.lib [ reliar\SLRSH.rel ] -..\..\lib\libiar.lib [ reliar\ULRSH.rel ] -..\..\lib\libcb.lib [ relcb\exit.rel ] -..\..\lib\libiar.lib [ reliar\LDIVMOD.rel ] -..\..\lib\libsysb.lib [ relsysb\read.rel ] -..\..\lib\libiar.lib [ reliar\BANKLEAVE32.rel ] -..\..\lib\libiar.lib [ reliar\SSRSH.rel ] -..\..\lib\libiar.lib [ reliar\LLSH.rel ] -..\..\lib\libcb.lib [ relcb\memcmp.rel ] -..\..\lib\libsysb.lib [ relsysb\execve.rel ] -..\..\lib\libiar.lib [ reliar\SDIVMOD.rel ] -..\..\lib\libcb.lib [ relcb\error.rel ] -..\..\lib\libiar.lib [ reliar\SMULASG.rel ] -..\..\lib\libiar.lib [ reliar\LENDASG.rel ] -..\..\lib\libiar.lib [ reliar\LNOT.rel ] -..\..\lib\libcb.lib [ relcb\memset.rel ] -..\..\lib\libcb.lib [ relcb\memcpy.rel ] -..\..\lib\libcb.lib [ relcb\atexit.rel ] -..\..\lib\libiar.lib [ reliar\LXOR.rel ] -..\..\lib\libcb.lib [ relcb\strcat.rel ] -..\..\lib\libsysb.lib [ relsysb\sys1b.rel ] -..\..\lib\libiar.lib [ reliar\LORASG.rel ] -..\..\lib\libcb.lib [ relcb\strchr.rel ] -..\..\lib\libsysb.lib [ relsysb\_exit.rel ] -..\..\lib\libiar.lib [ reliar\LEAVEDIRECT.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\libcb.lib [ relcb\strtol.rel ] -..\..\lib\libiar.lib [ reliar\LFINDSIGN.rel ] -..\..\lib\libiar.lib [ reliar\ULDIVASG.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\LMULASG.rel ] -..\..\lib\libiar.lib [ reliar\LENDMULDIVASG.rel ] - - -User Base Address Definitions - -l RCODE=0x8100 -l CODE=0x4000,0x10000 -c CODE=0x4000 diff --git a/src/gui/login.rel b/src/gui/login.rel index 5ceecf27..1e0e7a78 100644 --- a/src/gui/login.rel +++ b/src/gui/login.rel @@ -202,7 +202,7 @@ 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 22 02 00 00 00 00 00 00 01 10 00 09 36 +T 22 02 00 00 00 00 00 00 01 18 00 09 36 R 00 00 01 00 02 04 0F 00 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 diff --git a/src/gui/login.rst b/src/gui/login.rst index a448d5a4..c110be5f 100644 --- a/src/gui/login.rst +++ b/src/gui/login.rst @@ -29,313 +29,313 @@ 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 + 00006A7E 32 login: + 00006A7E FD E5 33 PUSH IY + 00006A80 DD E5 34 PUSH IX + 00006A82 C5 35 PUSH BC + 00006A83 21 C0 FF 36 LD HL,65472 + 00006A86 39 37 ADD HL,SP + 00006A87 F9 38 LD SP,HL + 00006A88 D5 39 PUSH DE + 00006A89 DD E1 40 POP IX + 00006A8B 21 0C 00 41 LD HL,12 + 00006A8E 19 42 ADD HL,DE + 00006A8F 7E 43 LD A,(HL) + 00006A90 23 44 INC HL + 00006A91 66 45 LD H,(HL) + 00006A92 6F 46 LD L,A + 00006A93 AF 47 XOR A + 00006A94 B6 48 OR (HL) + 00006A95 20 08 49 JR NZ,?0001 + 00006A97 50 ?0000: + 00006A97 DD 36 0C DD 51 LD (IX+12),LOW(?0002) + 00006A9B DD 36 0D 84 52 LD (IX+13),HIGH(?0002) + 00006A9F 53 ?0001: + 00006A9F 21 00 00 54 LD HL,0 + 00006AA2 39 55 ADD HL,SP + 00006AA3 36 2D 56 LD (HL),45 + 00006AA5 01 2F 00 57 LD BC,47 + 00006AA8 DD 5E 0C 58 LD E,(IX+12) + 00006AAB DD 56 0D 59 LD D,(IX+13) + 00006AAE 3E 00 60 LD A,BYTE3 strrchr + 00006AB0 21 F8 6C 61 LD HL,LWRD strrchr + 00006AB3 CD 5E 81 62 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006AB6 E5 63 PUSH HL + 00006AB7 FD E1 64 POP IY + 00006AB9 7D 65 LD A,L + 00006ABA B4 66 OR H + 00006ABB 28 04 67 JR Z,?0004 + 00006ABD 68 ?0003: + 00006ABD FD 23 69 INC IY + 00006ABF 18 09 70 JR ?0005 + 00006AC1 71 ?0004: + 00006AC1 DD 6E 0C 72 LD L,(IX+12) + 00006AC4 DD 66 0D 73 LD H,(IX+13) + 00006AC7 E5 74 PUSH HL + 00006AC8 FD E1 75 POP IY + 00006ACA 76 ?0005: + 00006ACA FD E5 77 PUSH IY + 00006ACC C1 78 POP BC + 00006ACD 21 00 00 79 LD HL,0 + 00006AD0 39 80 ADD HL,SP + 00006AD1 11 01 00 81 LD DE,1 + 00006AD4 19 82 ADD HL,DE + 00006AD5 EB 83 EX DE,HL + 00006AD6 3E 00 84 LD A,BYTE3 strcpy + 00006AD8 21 4D 76 85 LD HL,LWRD strcpy + 00006ADB CD 5E 81 86 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006ADE 21 00 00 87 LD HL,0 + 00006AE1 39 88 ADD HL,SP + 00006AE2 E5 89 PUSH HL + 00006AE3 21 42 00 90 LD HL,66 + 00006AE6 39 91 ADD HL,SP + 00006AE7 7E 92 LD A,(HL) + 00006AE8 23 93 INC HL + 00006AE9 66 94 LD H,(HL) + 00006AEA 6F 95 LD L,A + 00006AEB C1 96 POP BC + 00006AEC 71 97 LD (HL),C + 00006AED 23 98 INC HL + 00006AEE 70 99 LD (HL),B + 00006AEF 21 40 00 100 LD HL,64 + 00006AF2 39 101 ADD HL,SP + 00006AF3 47 102 LD B,A + 00006AF4 23 103 INC HL + 00006AF5 66 104 LD H,(HL) + 00006AF6 68 105 LD L,B + 00006AF7 23 106 INC HL + 00006AF8 23 107 INC HL + 00006AF9 AF 108 XOR A + 00006AFA 77 109 LD (HL),A + 00006AFB 23 110 INC HL + 00006AFC 77 111 LD (HL),A + 00006AFD DD 5E 06 112 LD E,(IX+6) + 00006B00 DD 56 07 113 LD D,(IX+7) + 00006B03 3E 00 114 LD A,BYTE3 setgid + 00006B05 21 C4 6C 115 LD HL,LWRD setgid + 00006B08 CD 5E 81 116 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B0B DD 5E 04 117 LD E,(IX+4) + 00006B0E DD 56 05 118 LD D,(IX+5) + 00006B11 3E 00 119 LD A,BYTE3 setuid + 00006B13 21 A7 6F 120 LD HL,LWRD setuid + 00006B16 CD 5E 81 121 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B19 DD 5E 0A 122 LD E,(IX+10) + 00006B1C DD 56 0B 123 LD D,(IX+11) + 00006B1F 3E 00 124 LD A,BYTE3 chdir + 00006B21 21 73 6F 125 LD HL,LWRD chdir + 00006B24 CD 5E 81 126 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B27 21 01 00 127 LD HL,1 + 00006B2A E5 128 PUSH HL + 00006B2B DD 4E 0A 129 LD C,(IX+10) + 00006B2E DD 46 0B 130 LD B,(IX+11) + 00006B31 11 E5 84 131 LD DE,?0006 + 00006B34 3E 00 132 LD A,BYTE3 setenv + 00006B36 21 97 70 133 LD HL,LWRD setenv + 00006B39 CD 5E 81 134 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B3C F1 135 POP AF + 00006B3D 21 01 00 136 LD HL,1 + 00006B40 E5 137 PUSH HL + 00006B41 DD 4E 00 138 LD C,(IX+0) + 00006B44 DD 46 01 139 LD B,(IX+1) + 00006B47 11 EA 84 140 LD DE,?0007 + 00006B4A 3E 00 141 LD A,BYTE3 setenv + 00006B4C 21 97 70 142 LD HL,LWRD setenv + 00006B4F CD 5E 81 143 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B52 F1 144 POP AF + 00006B53 21 40 00 145 LD HL,64 + 00006B56 39 146 ADD HL,SP + 00006B57 4E 147 LD C,(HL) + 00006B58 23 148 INC HL + 00006B59 46 149 LD B,(HL) + 00006B5A DD 5E 0C 150 LD E,(IX+12) + 00006B5D DD 56 0D 151 LD D,(IX+13) + 00006B60 3E 00 152 LD A,BYTE3 execv + 00006B62 21 DD 74 153 LD HL,LWRD execv + 00006B65 CD 5E 81 154 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B68 DD 5E 0C 155 LD E,(IX+12) + 00006B6B DD 56 0D 156 LD D,(IX+13) + 00006B6E 3E 00 157 LD A,BYTE3 perror + 00006B70 21 A0 74 158 LD HL,LWRD perror + 00006B73 CD 5E 81 159 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B76 11 01 00 160 LD DE,1 + 00006B79 3E 00 161 LD A,BYTE3 exit + 00006B7B 21 5D 7C 162 LD HL,LWRD exit + 00006B7E CD 5E 81 163 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006B81 21 42 00 164 LD HL,66 + 00006B84 39 165 ADD HL,SP + 00006B85 F9 166 LD SP,HL + 00006B86 DD E1 167 POP IX + 00006B88 FD E1 168 POP IY + 00006B8A C3 25 81 169 JP LWRD ?BANK_FAST_LEAVE_L08 + 00006B8D 170 login_actionhandler: + 00006B8D CD 88 81 171 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00006B90 E0 FF 172 DEFW -32 + 00006B92 FD E5 173 PUSH IY + 00006B94 DD 6E 02 174 LD L,(IX+2) + 00006B97 DD 66 03 175 LD H,(IX+3) + 00006B9A E5 176 PUSH HL + 00006B9B FD E1 177 POP IY + 00006B9D 21 26 00 178 LD HL,38 + 00006BA0 DD 4E 02 179 LD C,(IX+2) + 00006BA3 DD 46 03 180 LD B,(IX+3) + 00006BA6 09 181 ADD HL,BC + 00006BA7 46 182 LD B,(HL) + 00006BA8 23 183 INC HL + 00006BA9 66 184 LD H,(HL) + 00006BAA 68 185 LD L,B + 00006BAB 23 186 INC HL + 00006BAC 23 187 INC HL + 00006BAD 23 188 INC HL + 00006BAE 46 189 LD B,(HL) + 00006BAF 23 190 INC HL + 00006BB0 66 191 LD H,(HL) + 00006BB1 68 192 LD L,B + 00006BB2 01 01 01 193 LD BC,257 + 00006BB5 A7 194 AND A + 00006BB6 ED 42 195 SBC HL,BC + 00006BB8 C2 8A 6C 196 JP NZ,?0009 + 00006BBB 197 ?0008: + 00006BBB FD 6E 20 198 LD L,(IY+32) + 00006BBE FD 66 21 199 LD H,(IY+33) + 00006BC1 46 200 LD B,(HL) + 00006BC2 DD 70 EC 201 LD (IX-20),B + 00006BC5 FD 6E 20 202 LD L,(IY+32) + 00006BC8 FD 66 21 203 LD H,(IY+33) + 00006BCB 23 204 INC HL + 00006BCC 46 205 LD B,(HL) + 00006BCD DD 70 ED 206 LD (IX-19),B + 00006BD0 DD 36 EE 00 207 LD (IX-18),0 + 00006BD4 FD 6E 20 208 LD L,(IY+32) + 00006BD7 FD 66 21 209 LD H,(IY+33) + 00006BDA 36 00 210 LD (HL),0 + 00006BDC 21 0E 00 211 LD HL,14 + 00006BDF 39 212 ADD HL,SP + 00006BE0 EB 213 EX DE,HL + 00006BE1 3E 00 214 LD A,BYTE3 atoi + 00006BE3 21 C1 76 215 LD HL,LWRD atoi + 00006BE6 CD 5E 81 216 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006BE9 EB 217 EX DE,HL + 00006BEA 3E 00 218 LD A,BYTE3 getpwuid + 00006BEC 21 74 76 219 LD HL,LWRD getpwuid + 00006BEF CD 5E 81 220 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006BF2 DD 75 E0 221 LD (IX-32),L + 00006BF5 DD 74 E1 222 LD (IX-31),H + 00006BF8 FD 4E 20 223 LD C,(IY+32) + 00006BFB FD 46 21 224 LD B,(IY+33) + 00006BFE 03 225 INC BC + 00006BFF 03 226 INC BC + 00006C00 DD 71 EA 227 LD (IX-22),C + 00006C03 DD 70 EB 228 LD (IX-21),B + 00006C06 7D 229 LD A,L + 00006C07 B4 230 OR H + 00006C08 28 71 231 JR Z,?0013 + 00006C0A 232 ?0010: + 00006C0A 23 233 INC HL + 00006C0B 23 234 INC HL + 00006C0C 7E 235 LD A,(HL) + 00006C0D 23 236 INC HL + 00006C0E 66 237 LD H,(HL) + 00006C0F 6F 238 LD L,A + 00006C10 46 239 LD B,(HL) + 00006C11 DD 70 E2 240 LD (IX-30),B + 00006C14 DD 6E E0 241 LD L,(IX-32) + 00006C17 DD 66 E1 242 LD H,(IX-31) + 00006C1A 23 243 INC HL + 00006C1B 23 244 INC HL + 00006C1C 46 245 LD B,(HL) + 00006C1D 23 246 INC HL + 00006C1E 66 247 LD H,(HL) + 00006C1F 68 248 LD L,B + 00006C20 23 249 INC HL + 00006C21 46 250 LD B,(HL) + 00006C22 DD 70 E3 251 LD (IX-29),B + 00006C25 DD 36 E4 00 252 LD (IX-28),0 + 00006C29 21 04 00 253 LD HL,4 + 00006C2C 39 254 ADD HL,SP + 00006C2D 4D 255 LD C,L + 00006C2E 44 256 LD B,H + 00006C2F DD 5E EA 257 LD E,(IX-22) + 00006C32 DD 56 EB 258 LD D,(IX-21) + 00006C35 3E 00 259 LD A,BYTE3 crypt + 00006C37 21 59 77 260 LD HL,LWRD crypt + 00006C3A CD 5E 81 261 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C3D DD 75 E8 262 LD (IX-24),L + 00006C40 DD 74 E9 263 LD (IX-23),H + 00006C43 DD 4E E0 264 LD C,(IX-32) + 00006C46 DD 46 E1 265 LD B,(IX-31) + 00006C49 03 266 INC BC + 00006C4A 03 267 INC BC + 00006C4B 69 268 LD L,C + 00006C4C 60 269 LD H,B + 00006C4D 4E 270 LD C,(HL) + 00006C4E 23 271 INC HL + 00006C4F 46 272 LD B,(HL) + 00006C50 DD 5E E8 273 LD E,(IX-24) + 00006C53 DD 56 E9 274 LD D,(IX-23) + 00006C56 3E 00 275 LD A,BYTE3 strcmp + 00006C58 21 FF 73 276 LD HL,LWRD strcmp + 00006C5B CD 5E 81 277 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C5E 7D 278 LD A,L + 00006C5F B4 279 OR H + 00006C60 20 19 280 JR NZ,?0013 + 00006C62 281 ?0012: + 00006C62 3E 00 282 LD A,BYTE3 ClearScreen + 00006C64 21 20 49 283 LD HL,LWRD ClearScreen + 00006C67 CD 5E 81 284 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C6A 01 00 00 285 LD BC,0 + 00006C6D DD 5E E0 286 LD E,(IX-32) + 00006C70 DD 56 E1 287 LD D,(IX-31) + 00006C73 3E 00 288 LD A,BYTE3 login + 00006C75 21 7E 6A 289 LD HL,LWRD login + 00006C78 CD 5E 81 290 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C7B 291 ?0013: + 00006C7B 292 ?0011: + 00006C7B FD E5 293 PUSH IY + 00006C7D D1 294 POP DE + 00006C7E FD 7E 1C 295 LD A,(IY+28) + 00006C81 FD 6E 1A 296 LD L,(IY+26) + 00006C84 FD 66 1B 297 LD H,(IY+27) + 00006C87 CD 5E 81 298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C8A 299 ?0009: + 00006C8A FD E1 300 POP IY + 00006C8C C3 1F 81 301 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00006C8F 302 main: + 00006C8F CD 52 81 303 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00006C92 3E 00 304 LD A,BYTE3 GUIinit + 00006C94 21 6F 67 305 LD HL,LWRD GUIinit + 00006C97 CD 5E 81 306 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C9A 3E 00 307 LD A,BYTE3 gui_globals + 00006C9C 21 69 67 308 LD HL,LWRD gui_globals + 00006C9F CD 5E 81 309 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006CA2 01 18 00 310 LD BC,24 + 00006CA5 09 311 ADD HL,BC + 00006CA6 36 8D 312 LD (HL),LOW(login_actionhandler) + 00006CA8 23 313 INC HL + 00006CA9 36 6B 314 LD (HL),HIGH(login_actionhandler) + 00006CAB 23 315 INC HL + 00006CAC 36 00 316 LD (HL),BYTE3 login_actionhandler + 00006CAE 11 EF 84 317 LD DE,?0014 + 00006CB1 3E 00 318 LD A,BYTE3 GUIgo + 00006CB3 21 BB 68 319 LD HL,LWRD GUIgo + 00006CB6 CD 5E 81 320 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006CB9 3E 00 321 LD A,BYTE3 GUIunit + 00006CBB 21 96 68 322 LD HL,LWRD GUIunit + 00006CBE CD 5E 81 323 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006CC1 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' + 000084DD 326 ?0002: + 000084DD 2F 62 69 6E 2F 73 68 327 DEFB '/bin/sh' + 000084E4 00 328 DEFB 0 + 000084E5 329 ?0006: + 000084E5 48 4F 4D 45 330 DEFB 'HOME' + 000084E9 00 331 DEFB 0 + 000084EA 332 ?0007: + 000084EA 55 53 45 52 333 DEFB 'USER' + 000084EE 00 334 DEFB 0 + 000084EF 335 ?0014: + 000084EF 2F 77 6E 64 2F 6C 6F 336 DEFB '/wnd/logn.scr' 67 6E 2E 73 63 72 - 000084FD 00 337 DEFB 0 + 000084FC 00 337 DEFB 0 00000020 338 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] diff --git a/src/gui/login.s01 b/src/gui/login.s01 index 90e53fbd..badf1994 100644 --- a/src/gui/login.s01 +++ b/src/gui/login.s01 @@ -307,7 +307,7 @@ main: LD A,BYTE3 gui_globals LD HL,LWRD gui_globals CALL LWRD ?BANK_CALL_DIRECT_L08 - LD BC,16 + LD BC,24 ADD HL,BC LD (HL),LOW(login_actionhandler) INC HL diff --git a/src/gui/m.bat b/src/gui/m.bat index 3e56b365..b5bd020f 100644 --- a/src/gui/m.bat +++ b/src/gui/m.bat @@ -15,9 +15,9 @@ link-z80 -f wnd ihex2bin -l grlogin.i86 ..\..\bin\banked\grlogin @if errorlevel 1 goto failure -rem cd ..\..\bin -rem call appinst.bat -rem cd ..\src\gui +cd ..\..\bin +call appinst.bat +cd ..\src\gui @echo SUCCESS @goto done diff --git a/src/gui/t.bat b/src/gui/t.bat index be22e8f3..f7e61fb0 100644 --- a/src/gui/t.bat +++ b/src/gui/t.bat @@ -21,9 +21,9 @@ link-z80 -f test ihex2bin -l test.i86 ..\..\bin\banked\test @if errorlevel 1 goto failure -rem cd ..\..\bin -rem call appinst.bat -rem cd ..\src\gui +cd ..\..\bin +call appinst.bat +cd ..\src\gui @echo SUCCESS @goto done diff --git a/src/gui/test.c b/src/gui/test.c index 2ef63cbe..7ac93704 100644 --- a/src/gui/test.c +++ b/src/gui/test.c @@ -1,10 +1,12 @@ #include #include +#include void main(void){ GUIinit(); Transaction_init(); gui_globals()->actionhandler=Transaction_handler; - GUIgo("/wnd/0000.scr"); /* Nick added /wnd/ */ + chdir("/wnd"); + GUIgo("/wnd/0000.scr"); GUIunit(); } \ No newline at end of file diff --git a/src/gui/test.i86 b/src/gui/test.i86 index 1627a04d..991c9daf 100644 --- a/src/gui/test.i86 +++ b/src/gui/test.i86 @@ -1,597 +1,607 @@ :020000040000FA -:20000000C9A602007856341214000081008134877B897B99D1ED533487C1ED433687E122F5 -:13002000388721DD6F3E00CDFB81EB212C423E01C3FB8122 -:20064800CD7A82F8FF21060039EB21AF84010200EDB02A3F872323E50303C501E384C53E42 -:200668000021CD7ECDFB81F1F14D44E171237021000039E5210000E52A3F8723234E234633 -:20068800C53E0021E273CDFB81F1F1F1DD36FC60DD36FD0021000039E5210100E52A3F8708 -:2006A80023234E2346C53E0021E273CDFB81F1F1F1210200E52E08394D442A3F8723235E04 -:2006C80023563E00217272CDFB81F1C3A381D52A3F8723235E23563E00219673CDFB81D1D1 -:2006E800C3A981CD7A82FCFF21000039EB21B184010400EDB0DD4602DD70FEDD4604DD7020 -:20070800FF210400E52B2BC3BF464DC3C1462A3F8723235E23563E00C3CC46CDFB81F1C376 -:20072800A381CD7A82FCFF21000039EB21B584010400EDB0DD4602DD70FEDD4604DD70FFA5 -:20074800210400E52B2BC3BF464DC313472A3F87C3C54623C31B4723563E00C3CC46CDFBA5 -:2007680081F1C3A381CD7A82FCFF21000039EB21B984010400EDB0DD4602DD70FEDD460478 -:20078800DD70FF210400E52B2BC3BF464DC313472A3F87C3584723C3C74623C31D473E00A6 -:2007A800C36347CDFB81F1C3A381CD7A82FCFF21000039EB21BD84010400EDB0DD4602DD94 -:2007C80070FEDD4604DD70FF210400E52B2BC3BF464DC313472A3F87C3584723C39F47235D -:2007E800C3C9463E00C32047CDFB81F1C3A381CD7A82FCFF21000039EB21C184010400ED35 -:20080800B0DD4602DD70FEDD4604DD70FF210400E52B2BC3BF464DC313472A3F87C3584759 -:2008280023C39F4723C3E8473E00C3CC46CDFB81F1C3A381CD7A82FCFF21000039EB21C5AC -:2008480084010400EDB0DD4602DD70FEDD4604DD70FF210400E52B2BC3BF464DC313472ACB -:200868003F87C3584723C39F4723C3E8473E00C33248CDFB81F1C3A381C5FDE5DDE5D5DDB0 -:20088800E13E0021AB73CDFB81E5DDE5C12A3F8723235E23563E00217272CDFB81F1DDE1F9 -:2008A800FDE1C1C3A981CD7A82F8FF21000039EB21C984010700EDB0DD4602DD70FADD46FD -:2008C80004DD70FBDD460ADD70FCDD460CDD70FDDD460EDD70FE210700E52E02C3BF464D07 -:2008E800C313472A3F87C3584723C39F4723C3E8473E00C33248CDFB81F1C3A381C5D5CD9D -:200908001F49CDFB81218000E56CE5E5CD3749E1E1E1D1C1C3A98101000059503E0021EBFF -:2009280046CDFB8101800058503E00212A47C94D44EB3E0021AE48C3FB81CD7A82FCFF2169 -:20094800000039EB21D084010300EDB0DD4602DD70FE210300E52BC3BF464DC313472A3F16 -:2009680087C3584723C39F4723C3E8473E00C33248CDFB81F1C3A381CD7A82FEFF21000022 -:2009880039EB21D384010200EDB0DD4602DD70FF210200E5C3BF464DC313472A3F87C3585D -:2009A8004723C39F4723C3E8473E00C33248CDFB81F1C3A381CD7A820000210C00ED4B3FFE -:2009C800870946236668EB7BB228166B6246236668DD4E02DD4603ED4228062108001918E4 -:2009E800E1EBC3A381CDEF813E0021BD49CD6A4A2829DD5E02DD56033E00218049CDFB81E4 -:200A0800210A00ED4B3F8709E5DD5E02DD56033E0021BD49CD754AE1712370C3A381ED4B4F -:200A28003F87094623666823234E2346237E6960CDFB814D44FD6E06FD6607A7ED42EB01CA -:200A48000200CDEB82DD6E04DD660519EB3E0021EB46C9CDFB814D44FD6E08FD6609A7ED11 -:200A680042C9CDFB817DB4C93E01210040CDFB814D44C9CD7A82FCFFFDE5110E00CD164BEA -:200A8800DD4E0271DD46032370DD460CDD6E0AFD7502DD660BFD7403FD7004DD4610DD6E4E -:200AA8000EFD7505DD660FFD7406FD7007AFFD7708FD7709DD6E12FD750ADD6613FD740B19 -:200AC800DD6E14FD750CDD6615FD740D210C00ED4B3F87097E23B6210C00ED4B3F8709207C -:200AE80010FDE5C1712370210A00ED4B3F8709181246236668EB210800197E23B6210800F7 -:200B08001920EEFDE5C1712370FDE1C3A3813E01210040CDFB81E5FDE1C9FDE5DDE5C5D587 -:200B2800DD210000FD210000FDE5210200394E2346E1097EB72850FDE5E1095ECDC4810ABF -:200B480000212C2E3149696A6B6C727D4B784B6E4B784B784B694B694B734B734B734B69A7 -:200B68004B0102001812010300180D01040018080105001803010600DD09210200394E23CC -:200B880046DD09FD2318A1DDE5E1F1F1DDE1FDE1C3A981CDEF817BFE803006210700091885 -:200BA8000CFECC38083EDFBB3803696023C3A381CDEF810100001A5F3E00219B4BCDFB81EC -:200BC800C3A381CDEF81010500C3BE4BCDEF810100003E0021224BCDFB81C3A381CDEF81A0 -:200BE800010200C3DA4BCDEF81010300C3DA4BCD7A820000FDE5112800CD164B2A3F875E79 -:200C0800235613722B73FDE5E1732372DD6E02FD7502DD6603FD7403FD7104FD7005DD6EBB -:200C28000AFD7506DD660BFD7407DD6E0CFD7508DD660DFD7409AFFD770AFD770BFD770C9D -:200C4800FD770DFD770EFD770FFD7710FD7711FD7712FD7713FD7714FD7715FD7716FD77E1 -:200C680017FD7718FD7719FD771AFD771BFD771CFD771DFD771EFD771FFD7724FD7725FDAB -:200C88007726FD7727FD7720FD7721FD7722FD7723FDE5E1FDE1C3A381CD7A820000FDE58B -:200CA800DD6E02DD6603E5FDE1110000DD6E04DD6605197EB728210114806B6278AC67EDBD -:200CC800423015FD6E20FD662119E5DD6E04DD66051946E1701318D4FD6E20FD66211936D4 -:200CE80000FDE1C3A381CD7A820000FDE55950211500DD4E02DD4603097E23666FE5FDE108 -:200D0800211500097E23B62009211500097323721819FD7E13FDB614280BFD6E13FD661417 -:200D2800E5FDE118EDFD7313FD72142113001977237721110019DD4E0271DD46032370FDE0 -:200D4800E1C3A381C5FDE5DDE52115001946236668E5DDE1CD884DDDE5E17DB4281ADDE5B7 -:200D6800D1DD7E1CDD6E1ADD661BCDFB81DD6E13DD6614E5DDE118DF1E01CD8A4DC3A64854 -:200D88001E003E00214249C3FB81CD7A820000FDE5DD6E02DD6603E5FDE1DD6E04DD66056C -:200DA8007EFD860277237EFD8E0377DD6E0ADD660B7EFD860477237EFD8E0577FD6E11FDCB -:200DC8006612E5FDE17DB420D1FDE1C3A381CD7A820000211500DD4E02DD460309462366BF -:200DE80068EB7BB2281B211000194E0600DD6E04DD6605A7ED422003EB180821130019188A -:200E0800DC6F67C3A381CD7A82F8FFFDE5DD6E02DD6603E5FDE1FD6E15DD75F8FD6616DD19 -:200E280074F9FDE5E17DB4CAC14FDD7EF8DDB6F92811DD5EF8DD56F9CDD74FDD75F8DD746A -:200E4800F918E7FD7E11FDB612CADD4EFD6E11FD66120115000946236668FDE5C1A7ED428C -:200E6800FD6E11FD6612011500092009E5FD6E11FD6612185046236668DD75F8DD74F92107 -:200E88001300DD4EF8DD46F90946236668FDE5C1A7ED422819211300DD4EF8DD46F9097E04 -:200EA80023B6280A211300095623666A18CB211300DD4EF8DD46F9097E23B628182113006F -:200EC80009E52113000946236668011300094E2346E1712370FD6E13DD75F8FD6614DD745F -:200EE800F93E04FDAE24FDB625C28D4FFD6E11DD75FCFD6612DD74FDFD6E26DD75FEFD6699 -:200F080027DD74FFCDCC4FDD6EFEDD66FF2323CDCC4FDD7EFCDDB6FD2820212400DD4EFC16 -:200F2800DD46FD093E04AE23B6280F2111000956DD72FC2366DD74FD18D8DD7EFCDDB6FDF6 -:200F48002843212600DD4EFCDD46FD0946DD70FE2366DD74FF210600ED4B3F8709E5DD6EBF -:200F6800FEDD66FF5E2356E1732372210800ED4B3F8709E5DD4EFEDD46FF030369604E23C9 -:200F880046E1712370FD4E24FD4625210000CDC8823009FD5E26FD5627CDCF4FFDCB0B76A7 -:200FA8002011FD7E20FDB6212809FD5E20FD5621CDCF4FFDE5D1CDCF4FDD6EF8DD66F9FD64 -:200FC800E1C3A3815E23563E00215F74C3FB813E00210E4EC3FB81C5FDE5DDE52115001947 -:200FE80046236668E5DDE17DB42808DDE5D1CDD74F18F1C3A648CD7A820000FDE52115008D -:20100800DD5E02DD5603195623666AE5FDE17DB4283D210A00FDE5C109DD7E04DD56052FFD -:201028005F7A2F577EA377237EA277210A00097EDDB60A77237EDDB60B77210A00097EDDEC -:20104800AE0C77237EDDAE0D772113000918B81100863E00215F70CDFB81FDE1C3A381C502 -:20106800FDE5DDE5D5DDE12115001946236668E5FDE121200019462366680100903E80AC5C -:2010880067ED42302EDD4E20DD4621210000CDC8823020DD6E20DD662129E5210800ED4BFF -:2010A8003F87094E2346E1092B2B46DD70202366DD7421DD6E22DD66230100903E80AC677F -:2010C800ED42302EDD4E22DD4623210000CDC8823020DD6E22DD662329E5210800ED4B3FDF -:2010E80087094E2346E1092B2B46DD70222366DD7423FDE5E17DB42816FDE5D13E00216704 -:2011080050CDFB81FD6E13FD6614E5FDE118E3C3A648CD7A82D0FFFDE5AFDD77FADD77FB04 -:20112800DD77FCDD77FD5950CD1C82080001000200030002010301040105010104B35321A6 -:2011480053B452E05228523952ED5188515751211500DD4E02DD46030946236668E5FDE1AC -:201168007DB42819FDCB0A46280BDD6E0ADD660BE5CDB853E1FD6E13FD661418E0C3B353B3 -:20118800211500DD4E02DD46030946236668E5FDE17DB4284DFDCB0A462838DD6E0ADD6605 -:2011A8000BE5CDB853E1DD6E0ADD660BE5010300CDBE53E1FD7E0AE6226F26003E22AD20E4 -:2011C80012FD4E1044DD6E0ADD660BED422004FD210000FDE5E17DB428B7FD6E13FD66147A -:2011E80018ACC3B353DD6E02DD6603E5FDE1210A00DD4E02DD460309CB462821FDCB0A6EE3 -:20120800281BFD4E1047DD6E0ADD660BA7ED42200CFD6E26FD6627FDE5D1CDDD53C3B353A8 -:20122800DD5E024BDD560342211A00CDDC53C3B353210A00DD4E02DD4603097EE6FC772127 -:201248002E0039E52B2B4D44DD5E02DD5603CDD453E1210800DD4E02DD4603095E2356D5DA -:20126800210600095E2356D5DD6EFCDD66FDE5DD4EFADD46FB110000CD3A49E1E1E12100B6 -:2012880000E52E11DD5E02DD5603195E2356211100DD4E02DD4603094623666801170009D9 -:2012A8004E2346237E69600103011829211100DD4E02DD4603095623666AE5FDE15950CDAF -:2012C800D74F210000E5010301FDE5D1FD7E19FD6E17FD6618C3AF53211500DD4E02DD4646 -:2012E800030946236668E5FDE17DB42829DD6E0ADD660BFDE5C1ED422814FDCB0A5E280E47 -:20130800DD6E0ADD660BE5010302CDBE53E1FD6E13FD661418D0C3B353211100DD4E02DD96 -:201328004603097E23B6200E210400ED4B3F8709360123771875210A000923CB6E2028DD8F -:201348006E0ADD660BE52111005950195E23562111000946236668011700094E2346237E24 -:2013680069600101041840211100095623666AE5FDE1110A00197EF603776A62E523E54AD2 -:2013880042FDE5D13E0021FE4FCDFB81E1E1210000E5DD5E024BDD5603422E17094E23468E -:2013A800237E6960010501CDFB81E1FDE1C3A381DD4E04DD4605FDE5D1FD7E19FD6E17FDA8 -:2013C8006618C3FB8123234D44DDE5D13E0021924DC3FB81094E2346237E6960C3FB81CD2B -:2013E8007A82FCFFFDE5DD6E02DD6603E5FDE1AFDD77FEDD77FFDD77FCDD77FD210A00EDA9 -:201408004B3F87097E23666F46236668FD4E0EFD460FA7ED422809FD5E0EFD560FCD6C55F2 -:20142800FDCB0A46CA245521020039E523234D44FDE5D1CDD453E1CD884DDD4EFCDD46FDC0 -:20144800DD5EFEDD56FF3E0021EB46CDFB81FD4E08FD4609FD5E06FD56073E00212A47CD49 -:20146800FB81FD6E08FD6609E5FD6E06FD6607E5DD6EFCDD66FDE5DD4EFEDD46FF1100009C -:20148800CD3A49E1E1E1FD5E20FD5621210A00ED4B3F87097E23666FCD2955DD4EFCDD4625 -:2014A800FD09110400194D44CD37557E23666F010500094E2346237E6960CD5B4A01FCFFF2 -:2014C800094D44FD5E06FD56073E00216D47CDFB81DD4EFCDD46FDCD375546236668CD2986 -:2014E80055010500094D44FD5E06FD56073E0021B247CDFB81210E00DD4EFCDD46FD094DC7 -:2015080044DD5EFEDD56FF13133E0021EB46CD5455FDE5D13E00214C4DCDFB81FDE1C3A3B0 -:2015280081010500094E2346237E6960C3FB81DD5EFEDD56FF3E0021EB46CDFB81FD5E20F4 -:20154800FD5621210A00ED4B3F8709C9CDFB81FD5E20FD56213E00218148CDFB81C9DD5E67 -:201568000EDD560F3E0021ED49C3FB81CDEF81CD884DCD1F49CDFB8101800058503E00215A -:201588003C48CDFB81218000E56CE5E5CD3749E1E1E1DD5E02DD56033E00214C4DCDFB8116 -:2015A800C3A381CDEF813E0021EE4CCDFB81C3A381CD7A820000FDE5DD6E0CDD660DE5DD22 -:2015C8006E0ADD660BE5CDFD55F1F1E5FDE101170009361A233651233600FD361AE7FD36B9 -:2015E8001B53FD361C00FD361DABFD361E55FD361F00C3994CDD5E02DD56033E0021F74B77 -:20160800C3FB81CDEF81FDE5D5FDE1DD6E0ADD660BE53E00211A51CDFB81E13E03DDAE0465 -:20162800DDB605203EFD4E1047DD6E0ADD660BED422030FD7E0AE6032829DD6E0ADD660B86 -:20164800E5FD5E11FD5612FD6E11FD66120E17CD9856E1FDCB0A66280AFD4E100600C5CDBD -:20166800A656E1210102DD4E04DD4605A7ED42200BDD6E0ADD660BE5CD8956E1FDE1C3A3B0 -:2016880081FD5E11FD5612FD6E11FD6612011700094E2346237E6960010102C3FB81FD5E1F -:2016A80011FD5612FD6E11FD66120E17094E2346237E6960010401C3FB81CDEF81FDE5D533 -:2016C800FDE1210A0019CB76FD5E20FD5621210A00ED4B3F87097E23666F010500094E2388 -:2016E80046237E69602853CDFB81294D44FD6E08FD6609A7ED42CD6F570E0C09E5FD5E20E9 -:20170800FD5621210A00ED4B3F87097E23666FCD2F4AC1CD5455FD5E08FD5609CD70570EC7 -:201728000A09E5FD5E22FD56236960CD264AC1CDFB81FD5E22FD56231820CD5B4ACD6F5776 -:201748000E0D09E5FD5E20FD5621210A00CD264AC1CDFB81FD5E20FD56213E00218148CD33 -:20176800FB81FDE1C3A381EB010200CDEB82DD6E0ADD660B19C9C5DDE5F5F5D5DDE121024C -:201788000039AF7723772B2B2B772377210A00ED4B3F87097E23666F46236668E5210E00C3 -:2017A800194E2346E1A7ED422803CD6655DDCB0A46CA4E5821000039E5CDCD53E121000051 -:2017C80039CD5658CDFB81DD6E08DD6609E5DD6E06DD6607E5210400394E2346C5234E2392 -:2017E80046DDCB0A4E2807DD5E1016001803110000CD3A49E1E1E1DD7E0AE682281CDD7E80 -:201808000AE682EE822813DD4E08DD4609DD5E06DD56073E0021F7471811DD4E08DD4609A4 -:20182800DD5E06DD56073E00216D47CDFB81210000394E2346C5234E2346DDE5D13E002127 -:20184800C256CDFB81E1E1E1DDE1C1C3A9814E2346235E23563E0021EB46CDFB81DD4E0853 -:20186800DD4609DD5E06DD56073E00212A47C9CDEF81C3A381CD7A820000FDE5DD6E0CDD1D -:20188800660DE5DD6E0ADD660BE5CDFD55F1F1E5FDE1010A00097EF60377DD460EFD7010EC -:2018A800FD36170BFD361856FD361900FD361A7EFD361B57FD361C00FD361D77FD361E58AF -:2018C800FD361F00C3994CCDEF81FDE5D5FDE1DD6E0ADD660BE53E00211A51CDFB81E13E7A -:2018E80003DDAE04DDB605205CFD4E1047DD6E0ADD660BED42204EFD7E0AE6032847FD7E00 -:201908000AEE04FD770ADD6E0ADD660BE5FD5E11FD5612FD6E11FD66120E17094E234623F3 -:201928007E6960010202CDFB81E1210000E5010301CDBE53E1FDCB0A66280AFD4E10060094 -:20194800C5CDA656E1210102DD4E04DD4605A7ED42200BDD6E0ADD660BE5CD8956E1FDE1A1 -:20196800C3A381C5DDE5F5F5D5DDE121020039AF7723772B2B2B772377210A00ED4B3F879D -:20198800097E23666F46236668E5210E00194E2346E1A7ED422803CD6655DDCB0A46CA5425 -:2019A8005A21000039E5CDCD53E121000039CD5658CDFB81DDCB0A4E2836DDCB0A562830DC -:2019C800DD4E08DD4609DD5E06DD56073E0021F747CDFB81DD6E08DD6609E5DD6E06DD6627 -:2019E80007E5210400394E2346C5234E23461834DD4E08DD4609DD5E06DD56073E00216D4D -:201A080047CDFB81DD6E08DD6609E5DD6E06DD6607E5210400394E2346C5234E2346DDCBCE -:201A28000A4E2807DD5E1016001803110000CD3A49E1E1E1210000394E2346C5234E2346E7 -:201A4800DDE5D13E0021C256CDFB81E1C34E58CD7A820000FDE5DD6E0CDD660DE5DD6E0A55 -:201A6800DD660BE5CDFD55F1F1E5FDE1010A00097EF60777DD460EFD7010FD3617CFFD3667 -:201A88001858FD361900FD361A6BFD361B59FD361C00FD361D77FD361E58FD361F00C399B6 -:201AA8004CCDEF81FDE5D5FDE1DD6E0ADD660BE53E00211A51CDFB81E1210102DD4E04DD54 -:201AC8004605A7ED4220403EFFDDAE0ADDB60B2036FDCB0B66E52805010501180301020146 -:201AE800CDBE53E1FD4E100600C5FD5E11FD5612FD6E11FD66120E17094E2346237E6960E8 -:201B0800010103CDFB81E1210102DD4E04DD4605A7ED4220403EFEDDAE0ADDB60B2036FD1B -:201B2800CB0B66E528050105011803010201CDBE53E1FD4E100600C5FD5E11FD5612FD6E08 -:201B480011FD66120E17094E2346237E6960010203CDFB81E1FDE1C3A381CD7A82FEFFFDF0 -:201B6800E5DD6E0CDD660DE5DD6E0ADD660BE5CDFD55F1F1E5FDE1010A0009CBC6DD460ECA -:201B8800FD7010FD3617A9FD36185AFD361900FD361AE7FD361B53FD361C00FD361DABFDC0 -:201BA800361E55FD361F0021FF00E52E14E52E28E521E4FFCD145CF1F1F1DD75FEDD74FF07 -:201BC80001200009E5110300CD704AE171237001ED84CD305CCDFB8121FE00E52E14E52E01 -:201BE80028E521C8FFCD145CF1F1F1DD75FEDD74FF01200009E5110700CD704AE1712370A5 -:201C080001F084CD305CCDFB81C3994CDD4E0CDD460D094D4421D0FFDD5E0ADD560B19EB85 -:201C28003E00217D58C3FB81DD5EFEDD56FF3E0021A14CCDFB81DD4EFEDD46FFFDE5D1FD2E -:201C48007E1FFD6E1DFD661EC9CDEF81FDE5D5FDE1DD6E0ADD660BE53E00210B56CDFB81AA -:201C6800E1210302DD4E04DD4605A7ED422040FDCB0A5E283A3E08DDAE0ADDB60BFD5E2042 -:201C8800FD56213E0021AB73200DCD6A4A2815CDBC5C2B3600180DCDC75C233600CDBC5CC7 -:201CA800DD460A70210000E5010301CDBE53E1FDE1C3A381FD5E20FD56213E0021AB73CDB7 -:201CC800FB81FD4E20FD462109C9C5FDE5DDE521B8FF39F9D5DDE1AF7723772377237721C4 -:201CE8000A00ED4B3F87097E23666F46236668E5210E00194E2346E1A7ED422803CD6655D0 -:201D0800DDCB0A46CA165E21020039E52B2BCDCF53E1210200394E23462B2B2BCD5A58CD3E -:201D2800FB81DD6E08DD6609E5DD6E06DD6607E5210600394E2346C52B2B2B4E2346DDCB5F -:201D48000A4E2807DD5E1016001803110000CD3A49E1E1E1DDCB0A7EDD4E08DD4609DD5EAA -:201D680006DD560720073E0021F74718053E00216D47CDFB81DD5E20DD5621210A00ED4BCC -:201D88003F870946236668010500094E2346237E6960CD754ADD6E08DD6609A7ED42EB0118 -:201DA8000200CDEB826960394623666819010700094D44210000395E235613133E0021EB4A -:201DC80046CDFB81DDCB0B462836FD210000DD5E20DD56213E0021AB73CD754AFDE5E1A7D5 -:201DE800ED42210600300B39FDE5C109362AFD2318DC39FDE5C109360021060039EB18066D -:201E0800DD5E20DD56213E00218148CDFB8121480039F9C3A648CD7A820000FDE5DD6E0E4A -:201E2800DD660FE5DD6E0CDD660DE5DD6E0ADD660BE5DD5E02DD5603CD285CF1F1F1E5FDD6 -:201E4800E1010A0009CBDE01F784FDE5D13E0021A14CCDFB81FD361AD2FD361B5CFD361C00 -:201E680000FD361751FD36185CFD361900C3994CCDEF81C3A381C5DDE5F5F5D5DDE12102D9 -:201E88000039AF7723772B2B2B772377210A00ED4B3F87097E23666F46236668E5210E00BC -:201EA800194E2346E1A7ED422803CD6655DDCB0A46282121000039E5CDCD53E12100003938 -:201EC8004E2346C5234E2346DDE5D13E0021C256CDFB81E1C34E58CD7A820000FDE5DD6E11 -:201EE8000CDD660DE5DD6E0ADD660BE5CDFD55F1F1E5FDE101200009DD4E0E71DD460F2324 -:201F080070FD360A01FD360B00FD361778FD36185EFD361900FD361A7EFD361B5EFD361C50 -:201F280000FD361D77FD361E58FD361F00C3994CCD7A820000DD6E0ADD660BE5DD5E02DDC4 -:201F480056033E00211A51CDFB81E1C3A381CD7A82CEFFFDE5DD36D800210000E5C53E00D9 -:201F680021CD7ECDFB81F1F1DD75D4DD74D5DD36F02BDD36F100DD36F21ADD36F300DD360C -:201F8800F400DD7ED8FE732018DD6ED9DD66DADD75F0DD74F1DD6EDBDD66DCDD75F2DD74CA -:201FA800F3DD7ED8FE422807DD7ED8FE4D204FDD4EDD0600C5CD1663D5DD4EDBDD5EF0DD9B -:201FC80056F1CD1F63D5DD4EDADD5EF2DD56F3CDAE81D5DD5ED950DD4EF0DD46F1CDAE81D6 -:201FE8003E00217D58C1CDFB81F1F1F1E5FDE1DD7ED8FE4D2004FDCB0AF6DD36F401DD7E38 -:20200800D8FE542044DD4EDD0600C5CD1663D5DD4EDBDD5EF0DD56F1CD1F63D5DD4EDADDE1 -:202028005EF2DD56F3CDAE81D5DD5ED950DD4EF0DD46F1CDAE813E0021575AC1CDFB81F1B7 -:20204800F1F1E5FDE1DD36F401DD7ED8FE442044DD4EDD0600C5CD1663D5DD4EDBDD5EF0D3 -:20206800DD56F1CD1F63D5DD4EDADD5EF2DD56F3CDAE81D5DD5ED950DD4EF0DD46F1CDAED9 -:20208800813E00211E5EC1CDFB81F1F1F1E5FDE1DD36F401DD7ED8FE4C2047210C003901E9 -:2020A800120009E5CD1663D5DD4EDBDD5EF0DD56F1CD1F63D5DD4EDADD5EF2DD56F3CDAEB1 -:2020C80081D5DD5ED950DD4EF0DD46F1CDAE813E0021DF5EC1CDFB81F1F1F1E5FDE1DD36C4 -:2020E800F401DD7ED8FE412051212600DD4E02DD460309E5212B0039EBE1732372DD6EDEF6 -:20210800DD66DFDD75F8DD74F9DD6EE0DD66E1DD75FADD74FB211600394E2346235E2356F9 -:20212800DD71FCDD70FDDD73FEDD72FFDD5E02DD56033E00212663CDFB81DD7ED8FE53201F -:2021480071210C00394D44DD5ED4DD56D53E00215E66CDFB81212600DD4E02DD460309E504 -:20216800110400CD0E63EBE17323722126000956DD72F52366DD74F6212400093604233695 -:20218800006ADD66F62323E5210800ED4B3F87095E2356E1732372210600ED4B3F87094605 -:2021A800236668E5DD6EF5DD66F6C1712370DD36F400AFDDB6F4CABA62DD7EDEDDB6DF280D -:2021C80069FDCB0AEEFD36240BFD362500110B00CD0E63FD7526FD7427FD6E26DD75D0FDDA -:2021E8006627DD74D13626233663233600DD6ED0DD66D1232323DD4EDE71DD46DF237021EF -:202208000500DD4ED0DD46D109DD5EE073DD56E1237221070009E5211800395E2356234EB2 -:202228002346E173237223712370DD7EE6DDB6E7280CDD6EE6FD750ADD66E7FD740BDD6E90 -:20224800E8FD750EDD66E9FD740FDD6EEAFD7520DD7EEBE60FFD7721FD7E20FDB621201626 -:20226800111400CD0E63FD7520FD7421FD6E20FD662136001804FDCB0BF6DD7EEB2E004DE4 -:20228800E6F0472610ED423010DD6EEADD7EEBE60F6723FD7522FD7423FDE5DD5E024BDD0B -:2022A800560342211D00094E2346237E6960C1CDFB81211400E52E0E394D44DD5ED4DD56A7 -:2022C800D5CD0663F13E14ADB4CA865FDD5ED4DD56D53E00219673CDFB81DD5E02DD56035D -:2022E8003E00216750CDFB81DD5E024BDD560342211A00094E2346237E6960C367573E0152 -:20230800215C42C3FB813E01210040C3FB81DD4EDCDD5EF2DD56F3CDAE811B1B1BC9CD7A21 -:2023280082EAFFFDE5DD6E02DD6603E5FDE121060039EB21D584010E00EDB0FD6E26DD759E -:20234800EAFD6627DD74EB2323233E01AE23B62008C5010104CDBE53E1DD6EEADD66EB235E -:20236800232346236668CB853E02ADB4C291646F67E5E5010100FD5E11FD56123E0021FE60 -:202388004FCDFB81E1E1FD6E11FD6612010800094E2346C5FD6E11FD6612010600094E23EA -:2023A80046C501000059503E0021B955CDFB81F1F1DD75ECDD74ED010A000936032370DD8F -:2023C8006EEADD66EB232323CB46280C6960DD4EECDD46ED0923CBEE211700DD4EECDD467A -:2023E800ED09363823365F233600211A00093674233655233600210700DD5EEADD56EB19E7 -:202408005EEBDD75F3210700DD4EEADD46EB095E2356234E2346EB3E08CD1583DD75F42124 -:202428000700DD4EEADD46EB095E2356234E2346EB3E10CD1583DD75F5210700DD4EEADDB1 -:2024480046EB095E2356234E2346EB3E18CD1583DD75F6210600394D44DD5EECDD56ED3E25 -:202468000021565FCDFB81DD4EECDD46EDC5FD5E11FD5612FD6E11FD6612011D00094E23EF -:2024880046237E6960C1CDFB81DD6EEADD66EB2323233E04AE23B6C22F66210100E5FD6E1C -:2024A80011FD6612010800094623666801F6FF09E5FD6E11FD661201060009462366680128 -:2024C800F6FF09E501050059503E0021625BCDFB81F1F1F1DD75ECDD74ED010A0009360361 -:2024E800233610210E00DD4EECDD46ED093630233600AFDD77FEDD77FF210500DD4EEADDE1 -:2025080046EB095E2356060CCD87834B42DD6EFEDD66FFCDC88230043E011801AFE60FCA90 -:20252800C365210500DD4EEADD46EB0946237E68E60F67DD4EFEDD46FF0929E5210800EDF6 -:202548005B3F87195E2356E1192B2B5E2356D5211000E52E06DD5EECDD56ED196E26000127 -:20256800F0FF09E5DD6EFEDD66FF29294D442909011400094D441108003E0021DF5ECDFBAA -:2025880081F1F1F1DD75FCDD74FD010E000936302370DD4EFCDD46FDC5DD5EEC4BDD56ED94 -:2025A80042211D00094E2346237E6960C1CDFB81DD34FE2003DD34FFC3016501F884DD5E3C -:2025C800ECDD56ED3E0021A14CCDFB8101FF00CD5066010E0009363023700EFECD5066EB44 -:2025E800CDD74FDD4EECDD46EDC5FD5E11FD5612FD6E11FD6612011D00094E2346237E694A -:2026080060C1CDFB81210000E5FD5E11FD5612FD6E11FD6612011700094E2346237E69603E -:20262800010301CDFB81E1211000ED4B3F87097E23B623B6280DFDE5D1211000ED4B3F87E4 -:20264800CDDC53FDE1C3A381DD5EECDD56ED3E0021D64DC3FB81CD7A82F8FFFDE5030ADD1D -:2026680077FE030ADD77FF0369604EDD71FC2346DD70FDDD6EFE6729EBCD0E63DD75FADD3B -:2026880074FB5950CD164BC54D44DD5E02DD5603CD0663F1110000AFDD77F8DD77F9DD4E78 -:2026A800FCDD46FD6B62CDC8823035CD2467303023DD75F8DD74F92B29DD4EFADD46FB099E -:2026C800E5FDE5E1194D44E1712370FDE5E1197EB728031318F56B6213FDE5C1097718BE86 -:2026E800CD2467301329DD4EFADD46FB09E5FDE5E1194D44E1712370210600ED4B3F87095D -:20270800FDE5C1712370210800ED4B3F8709DD4EFA71DD46FB2370FDE1C3A381DD4EFEDDC8 -:2027280046FFDD6EF8DD66F9C3C8822A3F87C3A981C5D5111300CD0E63223F87AF7723773F -:20274800210400ED4B3F8709772377210A00ED4B3F8709772377210C00ED4B3F8709772323 -:2027680077210800ED4B3F8709772377210600ED4B3F8709772377211000ED4B3F870977AB -:20278800237723773E00214846CDFB81210000E5E50E00C521B84BE50E00C521D44BE511F7 -:2027A8003000CD5868210C0039F9210000E5E50E00C521B84BE50E00C521E54BE5113100E3 -:2027C800CD5868210C0039F9210000E5E50E00C521CB4BE50E00C521EE4BE5113200CD58B1 -:2027E80068210C0039F9210E00ED4B3F8709E5118000D55AD54B423E0021B955CDFB81F126 -:20280800F14D44E1712370210E00ED4B3F87095623666A110A001936012372210E00ED4B63 -:202828003F87095623666A11170019363823365F233600210E00ED4B3F870946236668014A -:202848001A00093674233655233600D1C1C3A9813E00217B4AC3FB81C5D5210E00ED4B3F7A -:2028680087095E2356CDD74F3E00210549CDFB813E0021D646CDFB81D1C1C3A981CD7A82F4 -:20288800FEFFDD4E02DD4603210E00ED5B3F87195E23563E0021565FCDFB81210400ED4BF9 -:2028A8003F87097E23B6C24369210100E523394D442A3F8723235E2356CD0663F13E01AD68 -:2028C800B420D8DD4EFE47C5210485E53E00219172CDFB81F1F1AFDDB6FE28294FC5210E1F -:2028E80000ED5B3F87195E2356210E00ED4B3F870946236668011700094E2346237E696023 -:202908000101001829DD4EFFC5210E00ED5B3F87195E2356210E00ED4B3F870946236668E3 -:1E292800011700094E2346237E6960010200CDFB81E1DD46FEDD70FFC3A368C3A38100 -:2003F7002F6465762F6C636430004F4B0043616E63656C00004D65737361676520426F78F8 -:09041700003078253032780A002B +:20000000C9A602007856341214000081008146878D898D99D1ED534687C1ED434887E1229B +:130020004A872107713E00CDFB81EB2157423E01C3FB81B9 +:20065A00CDEF81210600ED4B518709E5EB290923234E2346E1712370C3A381CD7A82F8FF78 +:20067A0021060039EB21AF84010200EDB02A51872323E50303C501D584C5CD6E47F1F14D59 +:20069A0044E171237021000039E5210000E52A518723234E2346C5CD6647F1F1F1DD36FCB2 +:2006BA0060DD36FD0021000039E5210100E52A518723234E2346C5CD6647F1F1F121020036 +:2006DA00E52E08394D442A51872323CD8047F1210400ED4B518709E5110200D511DF84D5FA +:2006FA00CD6E47F1F1EBE173237221000039E5210000E52E04ED4B5187095E2356D5CD6639 +:20071A0047F1F1F1DD36FC60DD36FD0021000039E5210100E52E04095E2356D5CD6647F18E +:20073A00F1F1210200E52E0839CD7647F11101003E00215A46CDFB8111E984CD8B47110043 +:20075A00003E00215A46CDFB81C3A3813E0021FD74C3FB813E01210040C3FB814D442104AC +:20077A0000ED5B5187195E23563E0021BC73C3FB813E00213849C3FB81C5D52A5187232381 +:20079A00CDAD47210400ED4B518709CDAD47D1C1C3A9815E23563E0021B174C3FB81CD7A1F +:2007BA0082FCFF21000039EB21B184010400EDB0DD4602DD70FEDD4604DD70FF210400E578 +:2007DA002B2B394D44210600ED5B5187195E23563E00CD8547F1C3A381CD7A82FCFF210014 +:2007FA000039EB21B584010400EDB0C3CA47DD70FEDD4604DD70FF210400E52B2B394DC384 +:20081A00DE47210600ED5B5187195E23563E00C3EC47CDFB81F1C3A381CD7A82FCFF210028 +:20083A000039EB21B984010400EDB0C3CA47DD70FEC30B48DD70FF210400E52B2B394D44CF +:20085A00210600C3E24719C3244823563E00C3EC47CDFB81F1C3A381CD7A82FCFF21000070 +:20087A0039EB21BD84010400EDB0C3CA47DD70FEC30B48DD70FFC35148E52B2B394D442133 +:20089A000600ED5B518719C3E74723C326483E00C36848CDFB81F1C3A381CD7A82FCFF2103 +:2008BA00000039EB21C184010400EDB0C3CA47DD70FEC30B48DD70FFC35148E5C394482B66 +:2008DA00394D44210600ED5B5187195E23C3E9473E00C32948CDFB81F1C3A381CD7A82FC08 +:2008FA00FF21000039EB21C584010400EDB0C3CA47DD70FEC30B48DD70FFC35148E5C39475 +:20091A00482BC3DA484D44210600ED5B5187195E23563E00C3EC47CDFB81F1C3A381C5FD86 +:20093A00E5DDE5D5DDE13E0021C674CDFB81E5DDE5C1210600CD7B47F1DDE1FDE1C1C3A9A9 +:20095A0081CD7A82F8FF21000039EB21C984010700EDB0DD4602DD70FADD4604DD70FBDD2C +:20097A00460ADD70FCDD460CDD70FDDD460EDD70FE210700E52E02C3DC474DC31948210614 +:20099A0000C35D4819C3A14823C3E7483E00C32E49CDFB81F1C3A381C5D5CDCC49CDFB819D +:2009BA00218000E56CE5E5CDE449E1E1E1D1C1C3A98101000059503E0021B847CDFB8101F3 +:2009DA00800058503E0021F347C94D44EB3E00215B49C3FB81CD7A82FCFF21000039EB218B +:2009FA00D084010300EDB0DD4602DD70FE210300E52BC3DC474DC31948210600C35D481945 +:200A1A00C3A14823C3E7483E00C32E49CDFB81F1C3A381CD7A82FEFF21000039EB21D384DF +:200A3A00010200EDB0DD4602DD70FF210200E5C3DC474DC31948210600C35D4819C3A148D8 +:200A5A0023C3E7483E00C32E49CDFB81F1C3A381CD7A820000211400ED4B518709462366E8 +:200A7A0068EB7BB228166B6246236668DD4E02DD4603ED4228062108001918E1EBC3A381DD +:200A9A00CDEF813E00216A4ACD0B4B2829DD5E02DD56033E00212D4ACDFB81211200ED4B7B +:200ABA00518709E5DD5E02DD56033E00216A4ACD164BE1712370C3A381211200ED4B518793 +:200ADA00094623666823234E2346237E6960CDFB814D44FD6E06FD6607A7ED42EB010200DC +:200AFA00CDEB82DD6E04DD660519EB3E0021B847C9CDFB817DB4C93E01212B40CDFB814D3C +:200B1A0044C9CD7A82FCFFFDE5110E00CDB74BDD4E0271DD46032370DD460CDD6E0AFD75CD +:200B3A0002DD660BFD7403FD7004DD4610DD6E0EFD7505DD660FFD7406FD7007AFFD7708FB +:200B5A00FD7709DD6E12FD750ADD6613FD740BDD6E14FD750CDD6615FD740D211400ED4B33 +:200B7A005187097E23B6211400ED4B5187092010FDE5C1712370211200ED4B518709181288 +:200B9A0046236668EB210800197E23B62108001920EEFDE5C1712370FDE1C3A3813E012164 +:200BBA002B40CDFB81E5FDE1C9FDE5DDE5C5D5DD210000FD210000FDE5210200394E23468C +:200BDA00E1097EB72850FDE5E1095ECDC4810A00212C2E3149696A6B6C721E4C194C0F4CE3 +:200BFA00194C194C0A4C0A4C144C144C144C0A4C0102001812010300180D01040018080173 +:200C1A0005001803010600DD09210200394E2346DD09FD2318A1DDE5E1F1F1DDE1FDE1C3F7 +:200C3A00A981CDEF817BFE80300621070009180CFECC38083EDFBB3803696023C3A381CDF2 +:200C5A00EF810100001A5F3E00213C4CCDFB81C3A381CDEF81010500C35F4CCDEF8101008A +:200C7A00003E0021C34BCDFB81C3A381CDEF81010200C37B4CCDEF81010300C37B4CCD7AE1 +:200C9A00820000FDE5112800CDB74B2A51875E235613722B73FDE5E1732372DD6E02FD7548 +:200CBA0002DD6603FD7403FD7104FD7005DD6E0AFD7506DD660BFD7407DD6E0CFD7508DD39 +:200CDA00660DFD7409AFFD770AFD770BFD770CFD770DFD770EFD770FFD7710FD7711FD77DE +:200CFA0012FD7713FD7714FD7715FD7716FD7717FD7718FD7719FD771AFD771BFD771CFD58 +:200D1A00771DFD771EFD771FFD7724FD7725FD7726FD7727FD7720FD7721FD7722FD772344 +:200D3A00FDE5E1FDE1C3A381CD7A820000FDE5DD6E02DD6603E5FDE1110000DD6E04DD666D +:200D5A0005197EB728210114806B6278AC67ED423015FD6E20FD662119E5DD6E04DD6605D8 +:200D7A001946E1701318D4FD6E20FD6621193600FDE1C3A381CD7A820000FDE559502115FD +:200D9A0000DD4E02DD4603097E23666FE5FDE1211500097E23B62009211500097323721886 +:200DBA0019FD7E13FDB614280BFD6E13FD6614E5FDE118EDFD7313FD7214211300197723CE +:200DDA007721110019DD4E0271DD46032370FDE1C3A381C5FDE5DDE521150019462366682C +:200DFA00E5DDE1CD294EDDE5E17DB4281ADDE5D1DD7E1CDD6E1ADD661BCDFB81DD6E13DD8B +:200E1A006614E5DDE118DF1E01CD2B4EC353491E003E0021EF49C3FB81CD7A820000FDE541 +:200E3A00DD6E02DD6603E5FDE1DD6E04DD66057EFD860277237EFD8E0377DD6E0ADD660BE8 +:200E5A007EFD860477237EFD8E0577FD6E11FD6612E5FDE17DB420D1FDE1C3A381CD7A82F0 +:200E7A000000211500DD4E02DD46030946236668EB7BB2281B211000194E0600DD6E04DD6A +:200E9A006605A7ED422003EB18082113001918DC6F67C3A381CD7A82F8FFFDE5DD6E02DDFF +:200EBA006603E5FDE1FD6E15DD75F8FD6616DD74F9FDE5E17DB4CA6250DD7EF8DDB6F928E8 +:200EDA0011DD5EF8DD56F9CD7850DD75F8DD74F918E7FD7E11FDB612CA7E4FFD6E11FD6699 +:200EFA00120115000946236668FDE5C1A7ED42FD6E11FD6612011500092009E5FD6E11FD60 +:200F1A006612185046236668DD75F8DD74F9211300DD4EF8DD46F90946236668FDE5C1A70F +:200F3A00ED422819211300DD4EF8DD46F9097E23B6280A211300095623666A18CB21130085 +:200F5A00DD4EF8DD46F9097E23B6281821130009E52113000946236668011300094E23462E +:200F7A00E1712370FD6E13DD75F8FD6614DD74F93E04FDAE24FDB625C22E50FD6E11DD75F2 +:200F9A00FCFD6612DD74FDFD6E26DD75FEFD6627DD74FFCD6D50DD6EFEDD66FF2323CD6D28 +:200FBA0050DD7EFCDDB6FD2820212400DD4EFCDD46FD093E04AE23B6280F2111000956DD95 +:200FDA0072FC2366DD74FD18D8DD7EFCDDB6FD2843212600DD4EFCDD46FD0946DD70FE2325 +:200FFA0066DD74FF210A00ED4B518709E5DD6EFEDD66FF5E2356E1732372210C00ED4B51F7 +:20101A008709E5DD4EFEDD46FF030369604E2346E1712370FD4E24FD4625210000CDC8827C +:20103A003009FD5E26FD5627CD7050FDCB0B762011FD7E20FDB6212809FD5E20FD5621CDFF +:20105A007050FDE5D1CD7050DD6EF8DD66F9FDE1C3A3815E23563E00217A75C3FB813E0090 +:20107A0021AF4EC3FB81C5FDE5DDE52115001946236668E5DDE17DB42808DDE5D1CD7850DE +:20109A0018F1C35349CD7A820000FDE5211500DD5E02DD5603195623666AE5FDE17DB428FC +:2010BA003D210A00FDE5C109DD7E04DD56052F5F7A2F577EA377237EA277210A00097EDDFC +:2010DA00B60A77237EDDB60B77210A00097EDDAE0C77237EDDAE0D772113000918B8111269 +:2010FA00863E00219471CDFB81FDE1C3A381C5FDE5DDE5D5DDE12115001946236668E5FD7A +:20111A00E121200019462366680100903E80AC67ED42302EDD4E20DD4621210000CDC8828D +:20113A003020DD6E20DD662129E5210C00ED4B5187094E2346E1092B2B46DD70202366DD12 +:20115A007421DD6E22DD66230100903E80AC67ED42302EDD4E22DD4623210000CDC8823023 +:20117A0020DD6E22DD662329E5210C00ED4B5187094E2346E1092B2B46DD70222366DD7488 +:20119A0023FDE5E17DB42816FDE5D13E00210851CDFB81FD6E13FD6614E5FDE118E3C35363 +:2011BA0049CD7A82D0FFFDE5AFDD77FADD77FBDD77FCDD77FD5950CD1C8208000100020046 +:2011DA000300020103010401050101055454C25355538153C952DA528E522952F851211580 +:2011FA0000DD4E02DD46030946236668E5FDE17DB42819FDCB0A46280BDD6E0ADD660BE53A +:20121A00CD6454E1FD6E13FD661418E0C35454211500DD4E02DD46030946236668E5FDE16A +:20123A007DB4284DFDCB0A462838DD6E0ADD660BE5CD6454E1DD6E0ADD660BE5010300CD2F +:20125A006A54E1FD7E0AE6226F26003E22AD2012FD4E1044DD6E0ADD660BED422004FD21C1 +:20127A000000FDE5E17DB428B7FD6E13FD661418ACC35454DD6E02DD6603E5FDE1210A00DC +:20129A00DD4E02DD460309CB462821FDCB0A6E281BFD4E1047DD6E0ADD660BA7ED42200CB4 +:2012BA00FD6E26FD6627FDE5D1CD5A54C35454DD5E024BDD560342211A00CD5954C3545440 +:2012DA00210A00DD4E02DD4603097EE6FC77212E0039E52B2B4D44DD5E02DD5603CD80542E +:2012FA00E1210800DD4E02DD4603095E2356D5210600095E2356D5DD6EFCDD66FDE5DD4E4F +:20131A00FADD46FB110000CDE749E1E1E1210000E52E11DD5E02DD5603195E235621110010 +:20133A00DD4E02DD46030946236668011700094E2346237E69600103011829211100DD4E1B +:20135A0002DD4603095623666AE5FDE15950CD7850210000E5010301FDE5D1FD7E19FD6E3B +:20137A0017FD6618C35054211500DD4E02DD46030946236668E5FDE17DB42829DD6E0ADD1A +:20139A00660BFDE5C1ED422814FDCB0A5E280EDD6E0ADD660BE5010302CD6A54E1FD6E13D6 +:2013BA00FD661418D0C35454211100DD4E02DD4603097E23B6200E210800ED4B51870936BE +:2013DA000123771875210A000923CB6E2028DD6E0ADD660BE52111005950195E235621116E +:2013FA00000946236668011700094E2346237E69600101051840211100095623666AE5FD8C +:20141A00E1110A00197EF603776A62E523E54A42FDE5D13E00219F50CDFB81E1E12100003D +:20143A00E5DD5E024BDD5603422E17094E2346237E6960010501CDFB81E1FDE1C3A381093F +:20145A004E2346237E6960C3FB81DD4E04DD4605FDE5D1FD7E19FD6E17FD6618C3FB812315 +:20147A00234D44DDE5D13E0021334EC3FB81C5DDE5F5F5D5DDE121020039AF7723772B2B76 +:20149A002B772377211200ED4B5187097E23666F46236668E5210E00194E2346E1A7ED4262 +:2014BA002803CDC155DDCB0A46CAB95521000039E5CD7954E1CD294E21000039CD0556CDE7 +:2014DA00FB81DD6E08DD6609E5DD6E06DD6607E5210400394E2346C5234E2346110000CDE0 +:2014FA00E749E1E1E1DD5E20DD5621CDD555E5210200394E2346E109010400094D442102B5 +:20151A0000395E23563E0021B847CDFB81DD5E20DD5621211200ED4B5187097E23666F0188 +:20153A000500094E2346237E6960CD164BDD6E08DD6609A7ED4201FCFF094D44DD5E06DD0B +:20155A0056073E00213348CDFB81210000394E2346235E23563E0021B847CDEF55CDE15574 +:20157A00010500094D44DD5E06DD56073E00217248CDFB81210000394E23460303235E2319 +:20159A005613133E0021B847CDFB81DD5E20DD5621CD8B47DDE5D13E0021ED4DCDFB81E16A +:2015BA00E1DDE1C1C3A981DD5E0EDD560F3E00219A4AC3FB81FD5E20FD5621211200ED4B5D +:2015DA005187097E23666F010500094E2346237E6960C3FB81CDFB81DD5E20DD5621211200 +:2015FA0000ED4B51870946236668C94E2346235E23563E0021B847CDFB81DD4E08DD460901 +:20161A00DD5E06DD56073E0021F347C9CDEF81CD294ECDCC49CDFB8101800058503E00219F +:20163A00F648CDFB81218000E56CE5E5CDE449E1E1E1DD5E02DD56033E0021ED4DCDFB815B +:20165A00C3A381CDEF813E00218F4DCDFB81C3A381CD7A820000FDE5DD6E0CDD660DE5DDCD +:20167A006E0ADD660BE5DD5E02DD56033E0021984CCDFB81F1F1E5FDE10117000936BB23CC +:20169A003651233600FD361A88FD361B54FD361C00FD361D5DFD361E56FD361F00C33A4D9A +:2016BA00CDEF81FDE5D5FDE1DD6E0ADD660BE53E0021BB51CDFB81E13E03DDAE04DDB605B9 +:2016DA00203EFD4E1047DD6E0ADD660BED422030FD7E0AE6032829DD6E0ADD660BE5FD5E2C +:2016FA0011FD5612FD6E11FD66120E17CD4757E1FDCB0A66280AFD4E100600C5CD5557E10E +:20171A00210102DD4E04DD4605A7ED42200BDD6E0ADD660BE5CD3857E1FDE1C3A381FD5E4E +:20173A0011FD5612FD6E11FD6612011700094E2346237E6960010102C3FB81FD5E11FD56E4 +:20175A0012FD6E11FD66120E17094E2346237E6960010401C3FB81CDEF81FDE5D5FDE121E5 +:20177A000A0019CB762853FD5E08FD5609010200CDEB82DD6E0ADD660B19E5FD5E20FD5605 +:20179A0021211200ED4B5187097E23666FCDDF4AC1CDFB81FD5E20FD5621CD8B47CDCF55CD +:2017BA0029CDFB57C5FD5E22FD5623CDD34AC1CDFB81FD5E22FD5623181ACDCF55CDFB57E6 +:2017DA00C5FD5E20FD5621CDD34AC1CDFB81FD5E20FD56213E00213849CDFB81FDE1C3A3EB +:2017FA0081FD4E08FD460909EB010200CDEB82DD6E0ADD660B194D4403C9C5DDE5F5F5D51F +:20181A00DDE121020039AF7723772B2B2B772377211200ED4B5187097E23666F4623666849 +:20183A00E5210E00194E2346E1A7ED422803CDC155DDCB0A46CAE45821000039E5CD79540E +:20185A00E121000039CD0556CDFB81DD6E08DD6609E5DD6E06DD6607E5210400394E2346A9 +:20187A00C5234E2346DDCB0A4E2807DD5E1016001803110000CDE749E1E1E1DD7E0AE68286 +:20189A00281CDD7E0AE682EE822813DD4E08DD4609DD5E06DD56073E0021B4481811DD4EE9 +:2018BA0008DD4609DD5E06DD56073E00213348CDFB81210000394E2346C5234E2346DDE5CA +:2018DA00D13E00217157CDFB81E1C3B955CDEF81C3A381CD7A820000FDE5DD6E0CDD660D85 +:2018FA00E5DD6E0ADD660BE5DD5E02DD56033E0021984CCDFB81F1F1E5FDE1010A00097E2B +:20191A00F60377DD460EFD7010FD3617BAFD361856FD361900FD361A14FD361B58FD361C48 +:20193A0000FD361DE7FD361E58FD361F00C33A4DCDEF81FDE5D5FDE1DD6E0ADD660BE53E79 +:20195A000021BB51CDFB81E13E03DDAE04DDB605205CFD4E1047DD6E0ADD660BED42204E50 +:20197A00FD7E0AE6032847FD7E0AEE04FD770ADD6E0ADD660BE5FD5E11FD5612FD6E11FDA9 +:20199A0066120E17094E2346237E6960010202CDFB81E1210000E5010301CD6A54E1FDCBF8 +:2019BA000A66280AFD4E100600C5CD5557E1210102DD4E04DD4605A7ED42200BDD6E0ADD3D +:2019DA00660BE5CD3857E1FDE1C3A381C5DDE5F5F5D5DDE121020039AF7723772B2B2B777D +:2019FA002377211200ED4B5187097E23666F46236668E5210E00194E2346E1A7ED42280374 +:201A1A00CDC155DDCB0A46CACF5A21000039E5CD7954E121000039CD0556CDFB81DDCB0AA7 +:201A3A004E2836DDCB0A562830DD4E08DD4609DD5E06DD56073E0021B448CDFB81DD6E08AF +:201A5A00DD6609E5DD6E06DD6607E5210400394E2346C5234E23461834DD4E08DD4609DD7F +:201A7A005E06DD56073E00213348CDFB81DD6E08DD6609E5DD6E06DD6607E5210400394EDB +:201A9A002346C5234E2346DDCB0A4E2807DD5E1016001803110000CDE749E1E1E1210000A7 +:201ABA00394E2346C5234E2346DDE5D13E00217157CDFB81E1C3B955CD7A820000FDE5DD40 +:201ADA006E0CDD660DE5DD6E0ADD660BE5DD5E02DD56033E0021984CCDFB81F1F1E5FDE111 +:201AFA00010A00097EF60777DD460EFD7010FD36174AFD361859FD361900FD361AE6FD362E +:201B1A001B59FD361C00FD361DE7FD361E58FD361F00C33A4DCDEF81FDE5D5FDE1DD6E0A45 +:201B3A00DD660BE53E0021BB51CDFB81E1210102DD4E04DD4605A7ED4220403EFFDDAE0A40 +:201B5A00DDB60B2036FDCB0B66E528050105011803010201CD6A54E1FD4E100600C5FD5E19 +:201B7A0011FD5612FD6E11FD66120E17094E2346237E6960010103CDFB81E1210102DD4E17 +:201B9A0004DD4605A7ED4220403EFEDDAE0ADDB60B2036FDCB0B66E5280501050118030196 +:201BBA000201CD6A54E1FD4E100600C5FD5E11FD5612FD6E11FD66120E17094E2346237E2E +:201BDA006960010203CDFB81E1FDE1C3A381CD7A82FEFFFDE5DD6E0CDD660DE5DD6E0ADDC7 +:201BFA00660BE5DD5E02DD56033E0021984CCDFB81F1F1E5FDE1010A0009CBC6DD460EFDFE +:201C1A007010FD36172FFD36185BFD361900FD361A88FD361B54FD361C00FD361D5DFD3619 +:201C3A001E56FD361F0021FF00E52E14E52E28E521E4FFDD4E0CDD460D094D4421D0FFDD8B +:201C5A005E0ADD560B19EB3E0021ED58CDFB81F1F1F1DD75FEDD74FF01200009E51103003D +:201C7A00CD114BE171237001F584CDD75CCDFB8121FE00E52E14E52E28E521C8FFDD4E0CF4 +:201C9A00DD460D094D4421D0FFDD5E0ADD560B19EB3E0021ED58CDFB81F1F1F1DD75FEDDFC +:201CBA0074FF01200009E5110700CD114BE171237001F884CDD75CCDFB81C33A4DDD5EFE19 +:201CDA00DD56FF3E0021424DCDFB81DD4EFEDD46FFFDE5D1FD7E1FFD6E1DFD661EC9CDEF5B +:201CFA0081FDE5D5FDE1DD6E0ADD660BE53E0021BA56CDFB81E1210302DD4E04DD4605A76F +:201D1A00ED422040FDCB0A5E283A3E08DDAE0ADDB60BFD5E20FD56213E0021C674200DCD8D +:201D3A000B4B2815CD635D2B3600180DCD6E5D233600CD635DDD460A70210000E5010301BD +:201D5A00CD6A54E1FDE1C3A381FD5E20FD56213E0021C674CDFB81FD4E20FD462109C9C501 +:201D7A00FDE5DDE521B8FF39F9D5DDE1AF77237723772377211200ED4B5187097E23666F52 +:201D9A0046236668E5210E00194E2346E1A7ED422803CDC155DDCB0A46CA955E2102003938 +:201DBA00E52B2BCD7B54E1210200394E23462B2B2BCD0956CDFB81DD6E08DD6609E5DD6E79 +:201DDA0006DD6607E5210600394E2346C52B2B2B4E2346DDCB0A4E2807DD5E1016001803F5 +:201DFA00110000CDE749E1E1E1DDCB0A7EDD4E08DD4609DD5E06DD560720073E0021B4488C +:201E1A0018053E00213348CDEF55CDE155DD4E08DD460909EB010200CDEB826960394623A2 +:201E3A006668194D44210000395E235613133E0021B847CDFB81DDCB0B462836FD2100009D +:201E5A00DD5E20DD56213E0021C674CD164BFDE5E1A7ED42210600300B39FDE5C109362AB2 +:201E7A00FD2318DC39FDE5C109360021060039EB1806DD5E20DD5621CD8B4721480039F9C7 +:201E9A00C35349CD7A820000FDE5DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5DD9D +:201EBA005E02DD56033E0021ED58CDFB81F1F1F1E5FDE1010A0009CBDE01FF84FDE5D13EBD +:201EDA000021424DCDFB81FD361A79FD361B5DFD361C00FD3617F8FD36185CFD361900C337 +:201EFA003A4DCDEF81C3A381C5DDE5F5F5D5DDE121020039AF7723772B2B2B772377211238 +:201F1A0000ED4B5187097E23666F46236668E5210E00194E2346E1A7ED422803CDC155DD5B +:201F3A00CB0A46282121000039E5CD7954E1210000394E2346C5234E2346DDE5D13E0021C7 +:201F5A007157CDFB81E1C3B955CD7A820000FDE5DD6E0CDD660DE5DD6E0ADD660BE5DD5EAA +:201F7A0002DD56033E0021984CCDFB81F1F1E5FDE101200009DD4E0E71DD460F2370FD3612 +:201F9A000A01FD360B00FD3617FCFD36185EFD361900FD361A02FD361B5FFD361C00FD3625 +:201FBA001DE7FD361E58FD361F00C33A4DCD7A820000DD6E0ADD660BE5DD5E02DD56033EBC +:201FDA000021BB51CDFB81E1C3A381CD7A82CEFFFDE5DD36D800210000E5C5CD6E47F1F117 +:201FFA00DD75D4DD74D5DD36F006DD36F100DD36F205DD36F300DD36F400DD7ED8FE732093 +:20201A0018DD6ED9DD66DADD75F0DD74F1DD6EDBDD66DCDD75F2DD74F3DD7ED8FE4228075A +:20203A00DD7ED8FE4D204EDD4EDD0600C5CD9463D5CDAA63D5DD6EDB260044DD4ED9094D95 +:20205A0044110301CDB263EBD1A7ED522B2B2BE5CDBE63D5CDAA633E0021ED58C1CDFB81D8 +:20207A00F1F1F1E5FDE1DD7ED8FE4D2004FDCB0AF6DD36F401DD7ED8FE542043DD4EDD0648 +:20209A0000C5CD9463D5CDAA63D5DD6EDB260044DD4ED9094D44110301CDB263EBD1A7EDA4 +:2020BA00522B2B2BE5CDBE63D5CDAA633E0021D25AC1CDFB81F1F1F1E5FDE1DD36F401DDA1 +:2020DA007ED8FE442043DD4EDD0600C5CD9463D5CDAA63D5DD6EDB260044DD4ED9094D44A2 +:2020FA00110301CDB263EBD1A7ED522B2B2BE5CDBE63D5CDAA633E00219D5EC1CDFB81F1D5 +:20211A00F1F1E5FDE1DD36F401DD7ED8FE4C2046210C003901120009E5CD9463D5CDAA633B +:20213A00D5DD6EDB260044DD4ED9094D44110301CDB263EBD1A7ED522B2B2BE5CDBE63D5C0 +:20215A00CDAA633E0021635FC1CDFB81F1F1F1E5FDE1DD36F401DD7ED8FE41205121260098 +:20217A00DD4E02DD460309E5212B0039EBE1732372DD6EDEDD66DFDD75F8DD74F9DD6EE0A1 +:20219A00DD66E1DD75FADD74FB211600394E2346235E2356DD71FCDD70FDDD73FEDD72FF18 +:2021BA00DD5E02DD56033E0021D263CDFB81DD7ED8FE532071210C00394D44DD5ED4DD5667 +:2021DA00D53E00212167CDFB81212600DD4E02DD460309E5110400CD8C63EBE17323722192 +:2021FA0026000956DD72F52366DD74F62124000936042336006ADD66F62323E5210C00ED63 +:20221A004B5187095E2356E1732372210A00ED4B51870946236668E5DD6EF5DD66F6C171AD +:20223A002370DD36F400AFDDB6F4CA4063DD7EDEDDB6DF2869FDCB0AEEFD36240BFD362591 +:20225A0000110B00CD8C63FD7526FD7427FD6E26DD75D0FD6627DD74D136D22336632336E0 +:20227A0000DD6ED0DD66D1232323DD4EDE71DD46DF2370210500DD4ED0DD46D109DD5EE064 +:20229A0073DD56E1237221070009E5211800395E2356234E2346E173237223712370DD7E64 +:2022BA00E6DDB6E7280CDD6EE6FD750ADD66E7FD740BDD6EE8FD750EDD66E9FD740FDD6E73 +:2022DA00EAFD7520DD7EEBE60FFD7721FD7E20FDB6212016111400CD8C63FD7520FD7421EE +:2022FA00FD6E20FD662136001804FDCB0BF6DD7EEB2E004DE6F0472610ED423010DD6EEAE2 +:20231A00DD7EEBE60F6723FD7522FD7423FDE5DD5E024BDD560342211D00094E2346237E35 +:20233A006960C1CDFB81211400E52E0E394D44DD5ED4DD56D53E01218742CDFB81F13E14C4 +:20235A00ADB4CA1060DD5ED4DD56D5CDB047DD5E02DD56033E00210851CDFB81DD5E024BF1 +:20237A00DD560342211A00094E2346237E6960C3F3573E01212B40C3FB81DD4EDC118300B4 +:20239A00CDAE81DD4EF2DD46F3CDEB821B1B1BC9DD5ED91600010301CDAE81DD4EF0DD4637 +:2023BA00F1C3EB82DD5EDA1600018300CDAE81DD4EF2DD46F3C3EB82CD7A82F8FFFDE5DD55 +:2023DA006E02DD6603E5FDE1FD6E26DD75F8FD6627DD74F92323233E01AE23B6200A6F678C +:2023FA00E5010105CD6A54E1DD6EF8DD66F923232346236668CB853E02ADB4C2016521050D +:20241A0000DD4EF8DD46F90956237E6AE60F6729E5210C00ED5B5187195E2356E1192B2B02 +:20243A0056DD72FC2366DD74FD210000E5E5010100FD5E11FD56123E00219F50CDFB81E1D4 +:20245A00E1FD6E11FD6612010800094E2346C5FD6E11FD6612010600094E2346C501000084 +:20247A0059503E00216B56CDFB81F1F1DD75FADD74FB010A000936032370DD6EF8DD66F957 +:20249A00232323CB46280C6960DD4EFADD46FB0923CBEE211700DD4EFADD46FB0936C723DF +:2024BA00365F233600211A00093626233656233600DD4EFCDD46FDDD5EFADD56FB3E002163 +:2024DA00E55FCDFB81DD4EFADD46FBC5FD5E11FD5612FD6E11FD6612011D00094E2346238A +:2024FA007E6960C1CDFB81DD6EF8DD66F92323233E04AE23B6C29F66210100E5FD6E11FD79 +:20251A006612010800094623666801F6FF09E5FD6E11FD6612010600094623666801F6FFCE +:20253A0009E501050059503E0021E85BCDFB81F1F1F1DD75FADD74FB010A000936032336E8 +:20255A0010210E00DD4EFADD46FB093630233600AFDD77FEDD77FF210500DD4EF8DD46F95E +:20257A00095E2356060CCD87834B42DD6EFEDD66FFCDC88230043E011801AFE60FCA3366B6 +:20259A00210500DD4EF8DD46F90946237E68E60F67DD4EFEDD46FF0929E5210C00ED5B51E0 +:2025BA0087195E2356E1192B2B5E2356D5211000E52E06DD5EFADD56FB196E260001F0FF44 +:2025DA0009E5DD6EFEDD66FF29294D442909011400094D441108003E0021635FCDFB81F130 +:2025FA00F1F1DD75FCDD74FD010E000936302370DD4EFCDD46FDC5DD5EFA4BDD56FB422115 +:20261A001D00094E2346237E6960C1CDFB81DD34FE2003DD34FFC37165010085DD5EFADDDC +:20263A0056FB3E0021424DCDFB8101FF00CD1367010E0009363023700EFECD1367EBCD781D +:20265A0050DD4EFADD46FBC5FD5E11FD5612FD6E11FD6612011D00094E2346237E6960C13D +:20267A00CDFB81210000E5FD5E11FD5612FD6E11FD6612011700094E2346237E69600103E9 +:20269A0001CDFB81E1DD6EF8DD66F92323233E05AE23B6201D210500DD4EF8DD46F9095E3A +:2026BA002356D5210700094D442A51872323CD8047F1DD6EF8DD66F92323233E06AE23B670 +:2026DA002016210500DD4EF8DD46F9095E2356D521070009CD7647F1211800ED4B51870992 +:2026FA007E23B623B6280DFDE5D1211800ED4B5187CD5954FDE1C3A381DD5EFADD56FB3E7F +:20271A000021774EC3FB81CD7A82F8FFFDE5030ADD77FE030ADD77FF0369604EDD71FC2392 +:20273A0046DD70FDDD6EFE6729EBCD8C63DD75FADD74FB5950CDB74BC54D44DD5E02DD5699 +:20275A00033E01218742CDFB81F1110000AFDD77F8DD77F9DD4EFCDD46FD6B62CDC8823045 +:20277A0035CDEC67303023DD75F8DD74F92B29DD4EFADD46FB09E5FDE5E1194D44E171236C +:20279A0070FDE5E1197EB728031318F56B6213FDE5C1097718BECDEC67301329DD4EFADDEC +:2027BA0046FB09E5FDE5E1194D44E1712370210A00ED4B518709FDE5C1712370210C00ED79 +:2027DA004B518709DD4EFA71DD46FB2370FDE1C3A381DD4EFEDD46FFDD6EF8DD66F9C3C852 +:2027FA00822A5187C3A981C5D5111B00CD8C63225187AF772377210800ED4B518709772336 +:20281A0077211200ED4B518709772377211400ED4B518709772377210C00ED4B51870977AE +:20283A002377210A00ED4B518709772377211800ED4B51870977237723773E00217546CDAB +:20285A00FB81210000E5E50E00C521594CE50E00C521754CE5113000CD2069210C0039F9E9 +:20287A00210000E5E50E00C521594CE50E00C521864CE5113100CD2069210C0039F9210012 +:20289A0000E5E50E00C5216C4CE50E00C5218F4CE5113200CD2069210C0039F9211600EDF3 +:2028BA004B518709E5118000D55AD54B423E00216B56CDFB81F1F14D44E1712370211600D3 +:2028DA00ED4B5187095623666A110A001936012372211600ED4B5187095623666A111700BB +:2028FA001936C723365F233600211600ED4B51870946236668011A00093626233656233688 +:20291A0000D1C1C3A9813E00211C4BC3FB81C5D5211600ED4B5187095E2356CD78503E0085 +:20293A0021B249CDFB813E00219347CDFB81D1C1C3A981C5DDE5D5F5F5F5F54B4221160023 +:20295A00ED5B5187195E23563E0021E55FCDFB81210E00ED4B518709E5111000CD8C63EB6C +:20297A00E1732372210E00ED4B5187097E23666F3600211000ED4B518709E5110000D5113A +:20299A000C85D5CD6E47F1F1EBE173237221020039E5210000E52E10ED4B5187095E23560A +:2029BA00D5CD6647F1F1F121060039366023360021020039E5210100E52E10094E2346C581 +:2029DA00CD6647F1F1F1DD210000210800ED4B5187097E23B6C2056B210100E523394D44D3 +:2029FA00210600ED5B5187195E23563E01218742CDFB81F13E01ADB420676F6739B6282BE4 +:202A1A004F0600C5211600ED5B5187195E2356211600ED4B51870946236668011700094E45 +:202A3A002346237E69600101001829234E47C5211600ED5B5187195E2356211600ED4B51E2 +:202A5A00870946236668011700094E2346237E6960010200CDFB81E121010039E52B46E194 +:202A7A0070210100E523394D44211000ED5B5187195E23563E01218742CDFB81F13E01AD48 +:202A9A00B420656F67393E10BE210E00ED4B518730150946236668DDE5C109E52102003937 +:202ABA0046E170DD231841095623666ADDE5D1193600210E00ED4B518709E5211600ED5B2C +:202ADA005187195E2356211600ED4B51870946236668011700094E2346237E696001010445 +:162AFA00CDFB81E1DD210000C3E469210A0039F9DDE1C1C3A981C5 +:2003E9002F6465762F6C636430002F6465762F6C636431004859544543482031303030004D +:200409004F4B0043616E63656C00004D65737361676520426F78002F6465762F62617263B0 +:040429006F64650097 :2003C3001B4B1B5300001B4300001B4E00001B5200001B4600001B6800001B5A00000000B9 -:1403E300001B45001B002F776E642F303030302E73637200AE -:20294600C5D5110800CDB36922418701060009E5CDB0694D44E1712370210600ED4B418773 -:20296600095623666A11140019AF772377210600ED4B4187097E23666F72210600ED4B4149 -:2029860087095623666A110E0019AF772377210600ED4B4187094623666801100009772345 -:2029A6007723772377D1C1C3A9811116003E01210040C3FB81CD7A829EFFFDE5212600DD75 -:2029C6004E02DD46030946DD709E2366DD749F2A41877DB420083E00214669CDFB8168DDE1 -:2029E600669F2323233E1023AE2BB6206421070048DD469F096E67E52A4187C17123702A09 -:202A060041872323E5CD1D6FE1712370210400ED4B418709E5210700DD5E9EDD569F195E22 -:202A26002356234E2346EB3E10CD316FE17123702A41874E2346DD5E02DD5603CD586FDD25 -:202A46005E02DD5603CD386FDD5E02DD5603CD756FDD6E9EDD669F232323462366680110C6 -:202A6600903E80AC67ED42DA9C6BDD6E9EDD669F2323234E2346211210CDC882DA9C6B2198 -:202A86000600ED4B41870946236668DD75A2DD74A3211400DD4EA2DD46A3097E23B6280AA8 -:202AA600211400095623666A18E1210500DD4E9EDD469F094E2346211100DD5E02DD56037A -:202AC600195E23563E0021D64DCDFB81DD75A0DD74A1012000094E2346DD5E02DD56033EBF -:202AE6000021A14CCDFB81012085DD5EA0DD56A13E0021A14CCDFB81DD5EA04BDD56A1CDC8 -:202B0600896FDD6E9EDD669F2323235E2356CD088210100300926B236B406B656B212000EB -:202B2600DD4E02DD4603094E2346DD5EA2DD56A33E00213F75CDFB811852210E00DD4EA207 -:202B4600DD46A309E5212000DD4E02DD4603095E23563E00216675CDFB814D44E1182A21EF -:202B66002000DD4E02DD4603095E23563E0021BA7CCDFB817C079F4F41E5211000DD5EA279 -:202B8600DD56A319D173237223712370DD5E024BDD5603CD896FDD6E9EDD669F2323234643 -:202BA600236668011E10A7ED42C2F96DAFDD77ACDD77ADDD77AEDD77AF210600ED4B418715 -:202BC6000946236668E5FDE1210100E5212185E53E0021CD7ECDFB81F1F1DD75A0DD74A180 -:202BE60021080039E5210000E5DD6EA0DD66A1E53E0021E273CDFB81F1F1F1DD36A860DD06 -:202C060036A90021080039E5210100E5DD6EA0DD66A1E53E0021E273CDFB81F1F1F1FDE51B -:202C2600E17DB4CA0E6DFD7E0EFDB60FCA026D3E01FDAE0EFDB60F20296F67E52E64E5CDB1 -:202C4600A06FC5E56F67E52E64E5CDAF6FC5E5FDE5212E85E521200039E5CD986F210E00F1 -:202C66001868210000E52E64E5FD6E0EFD660F7C079F4F41C5E5CDBE6FCD4782C5E52100AF -:202C860000E52E64E5FD6E0EFD660F7C079F4F41C5E5CDBE6FCD9882C5E5210000E52E6468 -:202CA600E5CDA06FC5E5210000E52E64E5CDAF6FC5E5FD6E0EFD660FE5FDE5215185E521E2 -:202CC6002A0039E5CD986F21180039F921100039E5FD5E0EFD560F7A079F4F41C5D5CDBE78 -:202CE6006FEBE1CDD68121140039EB3E0021AB73CDFB81E521160039CDCD6FF1FD6E14FD85 -:202D06006615E5FDE1C3246C6F67E52E64E5DD4EAEDD46AFDD6EACDD66ADCD4782C5E56FA9 -:202D260067E52E64E5DD4EAEDD46AFDD6EACDD66ADCD9882C5E5212085E5E5219185E521DA -:202D4600220039E5CD986F21100039F921140039EB3E0021AB73CDFB81E521160039CDCDE8 -:202D66006FF1DD5EA0DD56A13E00219673CDFB81210600ED4B41870946236668E5FDE17DE6 -:202D8600B42813FDE5D13E00215F74CDFB81FD6E14FD661518E6210600ED4B418709E5CD39 -:202DA600B069EBE1732372210600ED4B4187095623666A11140019AF772377210600ED4B4A -:202DC6004187097E23666F72210600ED4B4187095623666A110E0019AF772377210600EDAF -:202DE6004B418709462366680110000977237723772377DD6E9EDD669F23232346236668B0 -:202E0600011F10A7ED42C2186F210600ED4B41870946236668DD75A0DD74A1211400DD4EB2 -:202E2600A0DD46A1097E23B6280A211400095623666A18E1210700DD4E9EDD469F096E6785 -:202E4600E52A4187C17123702A41872323E5CD1D6FE1712370210400ED4B418709E521073A -:202E660000DD5E9EDD569F195E2356234E2346EB3E10CD316FE17123702A41874E23462182 -:202E86001100DD5E02DD5603195E2356CD586F211100DD5E02DD5603195E2356CD386F21FA -:202EA6001100DD5E02DD5603195E2356CD756F211100DD4E02DD4603095E23562111000947 -:202EC60046236668011A00CD8D6F211400DD4EA0DD46A109E5CDB069EBE173237221140030 -:202EE600095623666ADD75A0DD74A101140009AF772377DD6EA0DD66A170210E00DD4EA07F -:202F0600DD46A1097723772110000977237723772377FDE1C3A381210700DD4E9EDD469FD6 -:202F2600095E2356234E2346EB3E08CD158306004DC93E0021D64DCDFB81EB3E0021A14C1D -:202F4600011485CDFB81210400ED5B4187194E2346C93E0021D64DCDFB81EB3E0021A14CB8 -:202F6600010C85CDFB812A418723234E2346C93E0021D64DCDFB81EB3E0021A14C011A8516 -:202F8600C3FB8142211A00094E2346237E6960C3FB813E00211B70C3FB81FD4E12FD46132A -:202FA600FD6E10FD6611C34782FD4E12FD4613FD6E10FD6611C39882FD4E12FD4613FD6EF3 -:172FC60010FD6611C31F814D44DD5EA0DD56A13E00217272C3FB814B -:20042000426172636F6465005374756B73005072696A7300002F6465762F7072696E7465BB -:20044000720025313373205665726B6F6F70617274696B656C20207C25376C642C253032A1 -:200460006C640D0A0025313373205665726B6F6F70617274696B656C0D0A253464782040FB -:20048000207C2025376C642C2530326C64202020202020202020207C25376C642C25303256 -:2004A0006C640D0A000D0A25313373546F7461616C3A253130737C25376C642C2530326CE3 -:0804C000640D0A0D0A0D0A008B -:202FDD00C5D53E00213967CDFB813E00214669CDFB813E00213367CDFB810110000936BB4E -:1E2FFD0023366923360011B4853E00218568CDFB813E00216068CDFB81D1C1C3A981CD -:0E04C8002F776E642F303030302E7363720049 -:20301B00CD7A82FCFF2110003901020009DD75FCDD74FDDD4E0ADD460BED43CE85E5DD4EC9 -:20303B000CDD460D11CE853E0021FC76CDFB81F1DD75FEDD74FF2ACE853600DD6EFEDD66EB -:04305B00FFC3A3818B -:1804E20000000000FFFF0000FFFFFFFF200000000000000000000000E8 +:0603E300001B45001B0099 +:202B1000C5D5110800CD7D6B22538701060009E5CD7A6B4D44E1712370210600ED4B5387EB +:202B3000095623666A11140019AF772377210600ED4B5387097E23666F72210600ED4B5359 +:202B500087095623666A110E0019AF772377210600ED4B5387094623666801100009772367 +:202B70007723772377D1C1C3A9811116003E01212B40C3FB81CD7A829EFFFDE5212600DD7E +:202B90004E02DD46030946DD709E2366DD749F2A53877DB420083E0021106BCDFB8168DD37 +:202BB000669F232323462366680110903E80AC67ED42DA046DDD6E9EDD669F2323234E23CF +:202BD00046211210CDC882DA046D210600ED4B53870946236668DD75A2DD74A3211400DD87 +:202BF0004EA2DD46A3097E23B6280A211400095623666A18E1210500DD4E9EDD469F094EF5 +:202C10002346211100DD5E02DD5603195E23563E0021774ECDFB81DD75A0DD74A101200034 +:202C3000094E2346DD5E02DD56033E0021424DCDFB81011985DD5EA0DD56A13E0021424DDE +:202C5000CDFB81DD5EA04BDD56A1CDB370DD6E9EDD669F2323235E2356CD088210100300AC +:202C7000FA6C786C956CCD6C212000DD4E02DD4603094E2346DD5EA2DD56A33E00215A768A +:202C9000CDFB811865210E00DD4EA2DD46A309E5212000DD5E02DD5603195E23563E0021AB +:202CB0008176CDFB81EBE1732372210E00097E23B62037210E000936012377182D2120007B +:202CD000DD4E02DD4603095E23563E0021D57DCDFB817C079F4F41E5211000DD5EA2DD56DF +:202CF000A319D173237223712370DD5E024BDD5603CDB370DD6E9EDD669F23232346236657 +:202D100068011E10A7ED42C2616FAFDD77ACDD77ADDD77AEDD77AF210600ED4B5387094667 +:202D3000236668E5FDE1210100E5211A85E53E01210040CDFB81F1F1DD75A0DD74A121084B +:202D50000039E5210000E5DD6EA0DD66A1E53E0021FD74CDFB81F1F1F1DD36A860DD36A9C8 +:202D70000021080039E5210100E5DD6EA0DD66A1E53E0021FD74CDFB81F1F1F1FDE5E17D15 +:202D9000B4CA766EFD7E0EFDB60FCA6A6E3E01FDAE0EFDB60F20296F67E52E64E5CDCA7098 +:202DB000C5E56F67E52E64E5CDD970C5E5FDE5212785E521200039E5CDC270210E001868C6 +:202DD000210000E52E64E5FD6E0EFD660F7C079F4F41C5E5CDE870CD4782C5E5210000E5B4 +:202DF0002E64E5FD6E0EFD660F7C079F4F41C5E5CDE870CD9882C5E5210000E52E64E5CD05 +:202E1000CA70C5E5210000E52E64E5CDD970C5E5FD6E0EFD660FE5FDE5214A85E5212A00AF +:202E300039E5CDC27021180039F921100039E5FD5E0EFD560F7A079F4F41C5D5CDE870EB86 +:202E5000E1CDD68121140039EB3E0021C674CDFB81E521160039CDF770F1FD6E14FD6615B1 +:202E7000E5FDE1C38C6D6F67E52E64E5DD4EAEDD46AFDD6EACDD66ADCD4782C5E56F67E504 +:202E90002E64E5DD4EAEDD46AFDD6EACDD66ADCD9882C5E5211985E5E5218A85E5212200A7 +:202EB00039E5CDC27021100039F921140039EB3E0021C674CDFB81E521160039CDF770F1CD +:202ED000DD5EA0DD56A13E0021B174CDFB81210600ED4B53870946236668E5FDE17DB428D1 +:202EF00013FDE5D13E00217A75CDFB81FD6E14FD661518E6210600ED4B538709E5CD7A6B97 +:202F1000EBE1732372210600ED4B5387095623666A11140019AF772377210600ED4B53870B +:202F3000097E23666F72210600ED4B5387095623666A110E0019AF772377210600ED4B535B +:202F50008709462366680110000977237723772377DD6E9EDD669F23232346236668011FB0 +:202F700010A7ED42C28F70210600ED4B53870946236668DD75A0DD74A1211400DD4EA0DD60 +:202F900046A1097E23B6280A211400095623666A18E1210700DD4E9EDD469F096E67E52A88 +:202FB0005387C17123702A53872323E5210700DD4E9EDD469F095E2356234E2346EB3E0895 +:202FD000CD158306004DE1712370210400ED4B538709E5210700DD5E9EDD569F195E23565C +:202FF000234E2346EB3E10CD158306004DE17123702A5387CD947001AD85CDFB812A5387BC +:203010002323CD947001B585CDFB81210400ED5B538719CD947001BB85CDFB81211100DD3B +:203030004E02DD4603095E23562111000946236668011A00CDB770211400DD4EA0DD46A1E5 +:2030500009E5CD7A6BEBE1732372211400095623666ADD75A0DD74A101140009AF772377A3 +:20307000DD6EA0DD66A170210E00DD4EA0DD46A1097723772110000977237723772377FDAD +:20309000E1C3A3814E2346211100DD5E02DD5603195E23563E0021774ECDFB81EB3E002155 +:2030B000424DC942211A00094E2346237E6960C3FB813E00215071C3FB81FD4E12FD4613B0 +:2030D000FD6E10FD6611C34782FD4E12FD4613FD6E10FD6611C39882FD4E12FD4613FD6EC8 +:1730F00010FD6611C31F814D44DD5EA0DD56A13E0021BC73C3FB81D5 +:20042D00002F6465762F7072696E7465720025313373205665726B6F6F70617274696B658C +:20044D006C20207C25376C642C2530326C640D0A0025313373205665726B6F6F7061727458 +:20046D00696B656C0D0A253464782040207C2025376C642C2530326C6420202020202020D3 +:20048D002020207C25376C642C2530326C640D0A000D0A25313373546F7461616C3A2531A5 +:2004AD0030737C25376C642C2530326C640D0A0D0A0D0A00426172636F6465005374756BC5 +:0804CD0073005072696A7300AC +:20310700C5D53E00210168CDFB813E0021106BCDFB813E0021FB67CDFB81011800093685F3 +:2031270023366B23360011C1853E0021A773CDFB8111C6853E00214D69CDFB813E00212811 +:0931470069CDFB81D1C1C3A9814E +:1304D5002F776E64002F776E642F303030302E73637200BF +:20315000CD7A82FCFF2110003901020009DD75FCDD74FDDD4E0ADD460BED43E085E5DD4E81 +:203170000CDD460D11E0853E00211778CDFB81F1DD75FEDD74FF2AE0853600DD6EFEDD6674 +:04319000FFC3A38155 +:1804F40000000000FFFF0000FFFFFFFF200000000000000000000000D6 :20003300E3D5DDE5DD210000DD39DD5609DD7409DD5E08DD7508D5C5F5DD6E0462ED6CDD76 :200053005605ED5C1959DD5607ED5C19DD5E0650ED5C19E5DD5E04DD56FEED5CDD6E05DD1D :200073006607ED6C19DD4606ED4C09E5DD5E04DD5607ED5CDD6E05DD6606ED6CAF1917F5B6 :20009300DD5E04DD5606ED5C4A0600AF091755C14CE10984C1814D47EBF1D1D1DDE1D13387 :0F00B300333333C9DDF9DDE1D1C1F1ED3939C99D -:20305F00CD7A82F8FFAFDD77FEDD77FFDD7E02DDB603207811E8853E00215F70CDFB817D40 -:20307F00B4201E1100863E00215F70CDFB817DB4200F1118863E00215F70CDFB817DB42852 -:20309F000621FFFFC36F722AE685DD7502DD7403DD7E02DDB603282EDD5E02DD56033E0011 -:2030BF00215F70CDFB817DB4280621FFFFC36F72211600DD4E02DD4603095623666ADD7568 -:2030DF0002DD740318CA210000C36F72210C00DD4E02DD4603097EE680CAC571210600DD63 -:2030FF004E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7DB4CAC371210600DDBD -:20311F004E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DD4EF8DD46F9210A0074 -:20313F00DD5E02DD5603195E23563E00217272CDFB81F1DD75FCDD74FD4D44210000CDC8AD -:20315F0082301E210000397EDD86FC77237EDD8EFD77210200397EDD96FC77237EDD9EFD79 -:20317F0077DD4EFCDD46FD210000CDC88238A1DD7EFCDDA6FD3C20092A3A873E04ADB4286F -:20319F008FDD7EFADDB6FB281B210C00DD4E02DD4603097EF60077237EF60277DD36FEFFC7 -:2031BF00DD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E02DD66034E2346DD6E18 -:2031DF0002DD660323235623666AA7ED42DD75FADD74FB4D44210000CDC88230332101003D -:2031FF00E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD4E02DD4603095E232D -:20321F00563E0021C072CDFB81F1F1F1CB782800210C00DD4E02DD4603097EE63F77237EDD -:20323F00E6FA7769602323E5210400DD4E02DD460309E5210600095623666AE56960C17165 -:20325F002370E1712370E1712370DD6EFEDD66FFC3A381CDEF81DD6E0ADD660BE5C5D52100 -:12327F002400E53E01217B42CDFB81F1F1F1F1C3A38123 +:20319400CD7A82F8FFAFDD77FEDD77FFDD7E02DDB603207811FA853E00219471CDFB817DC2 +:2031B400B4201E1112863E00219471CDFB817DB4200F112A863E00219471CDFB817DB4288C +:2031D4000621FFFFC3A4732AF885DD7502DD7403DD7E02DDB603282EDD5E02DD56033E0093 +:2031F400219471CDFB817DB4280621FFFFC3A473211600DD4E02DD4603095623666ADD75C6 +:2032140002DD740318CA210000C3A473210C00DD4E02DD4603097EE680CAFA72210600DDC0 +:203234004E02DD4603095E23560A6F030A67A7ED52DD75FADD74FB7DB4CAF872210600DD50 +:203254004E02DD46030946236668DD75F8DD74F9DD6EFADD66FBE5DD4EF8DD46F9210A003E +:20327400DD5E02DD5603195E23563E0021BC73CDFB81F1DD75FCDD74FD4D44210000CDC82C +:2032940082301E210000397EDD86FC77237EDD8EFD77210200397EDD96FC77237EDD9EFD43 +:2032B40077DD4EFCDD46FD210000CDC88238A1DD7EFCDDA6FD3C20092A4C873E04ADB42827 +:2032D4008FDD7EFADDB6FB281B210C00DD4E02DD4603097EF60077237EF60277DD36FEFF91 +:2032F400DD36FFFF186A210C00DD4E02DD4603097EE640285BDD6E02DD66034E2346DD6EE2 +:2033140002DD660323235623666AA7ED42DD75FADD74FB4D44210000CDC882303321010006 +:20333400E5DD4EFADD46FBA7210000ED427C079F4F41C5E5210A00DD4E02DD4603095E23F6 +:20335400563E0021DB73CDFB81F1F1F1CB782800210C00DD4E02DD4603097EE63F77237E8B +:20337400E6FA7769602323E5210400DD4E02DD460309E5210600095623666AE56960C1712F +:203394002370E1712370E1712370DD6EFEDD66FFC3A381CDEF81D5210300E53E0121A642E7 +:2033B400CDFB81F1F1C3A381CDEF81DD6E0ADD660BE5C5D5212400E53E0121A642CDFB81CD +:0733D400F1F1F1F1C3A38147 :1600C200F5C5E5784251676BED4CED6CED5C79858257E1C1F1C99E -:20329100CD7A82FCFF210E003901020009DD75FCDD74FDE5DD4E0ADD460B1100863E00210B -:2032B100FC76CDFB81F1DD75FEDD74FFC3A381CDEF81DD6E0EDD660FE5DD6E0CDD660DE571 -:2032D100DD6E0ADD660BE5D5211900E53E01210F44CDFB81F1F1F1F1F1C37B83CD7A82FE28 -:2032F100FF2AE685DD75FEDD74FF1100863E00215F70CDFB811118863E00215F70CDFB8155 -:20331100DD7EFEDDB6FF283CDD5EFEDD56FF3E00215F70CDFB81210A00DD4EFEDD46FF09EC -:203331005E23563E00219673CDFB81210A000936FF2336FF211600095623666ADD75FEDD7D -:2033510074FF18BCC3A381C5D52A30867DB42002182E2100002230861101003E00210D7430 -:20337100CDFB817DB4280C210C867EF60177237EF600770E0011ED723E0121DC43CDFB819B -:05339100D1C1C3A981B8 -:2004FA0000004387438743874387438800001000000000000000000000004388438843887E -:20051A00438843890100200000000000000000000000268626862686268628860200220087 -:0C053A00000000000000000000000100B4 -:20339600CDEF81D5210600E53E01217B42CDFB81F1F1C3A381CD7A82FEFFDD6E02DD660371 -:2033B600DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD46039C -:0C33D600DD6EFEDD66FFA7ED42C3A381A3 +:2033DB00CDEF81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5D5211900E53E01219D +:2033FB003A44CDFB81F1F1F1F1F1C37B83CD7A82FEFF2AF885DD75FEDD74FF1112863E0081 +:20341B00219471CDFB81112A863E00219471CDFB81DD7EFEDDB6FF283CDD5EFEDD56FF3EBC +:20343B0000219471CDFB81210A00DD4EFEDD46FF095E23563E0021B174CDFB81210A0009AB +:20345B0036FF2336FF211600095623666ADD75FEDD74FF18BCC3A381C5D52A42867DB42003 +:20347B0002182E2100002242861101003E00212875CDFB817DB4280C211E867EF60177234E +:16349B007EF600770E001108743E01210744CDFB81D1C1C3A98122 +:20050C000000558755875587558755880000100000000000000000000000558855885588DB +:20052C0055885589010020000000000000000000000038863886388638863A8602002200F7 +:0C054C00000000000000000000000100A2 +:2034B100CDEF81D5210600E53E0121A642CDFB81F1F1C3A381CD7A82FEFFDD6E02DD66032A +:2034D100DD75FEDD74FFDD6EFEDD66FFAFB6280ADD34FE2003DD34FF18ECDD4E02DD460380 +:0C34F100DD6EFEDD66FFA7ED42C3A38187 :1200D800E3F5C54E2346237BEDB12002232309C38E8242 -:2033E200CDEF81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5210F00E53E01217BFA -:0B34020042CDFB81F1F1F1F1C3A38189 +:2034FD00CDEF81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5210F00E53E0121A6B3 +:0B351D0042CDFB81F1F1F1F1C3A3816D :1900EA00F57E83775F237E8A7757237E89774F237E8877472B2B2BF1C926 -:20340D00CD7A82E2FF210000394D44DD5E02DD56033E00214874CDFB817DA43C2812DD7E41 -:20342D00E6E6006FDD7EE7E6F0673E20ACB528052100001803210100C3A381CDEF81C5D5BD -:20344D00210D00E53E01217B42CDFB81F1F1F1C3A381CD7A82FCFF21FCFFDD4E02DD4603F9 -:20346D0009DD75FEDD74FF23237E23B6280621FFFFC33C752A4789DD75FCDD74FDDD4EFC7B -:20348D00DD46FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FF00 -:2034AD00A7ED423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD4618 -:2034CD00FFDD6EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED4250 -:2034ED0030021814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF232353 -:20350D00E5DD4EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FFEF -:12352D00712370DD6EFCDD66FD224789210000C3A38107 +:20352800CD7A82E2FF210000394D44DD5E02DD56033E00216375CDFB817DA43C2812DD7E09 +:20354800E6E6006FDD7EE7E6F0673E20ACB528052100001803210100C3A381CDEF81C5D5A1 +:20356800210D00E53E0121A642CDFB81F1F1F1C3A381CD7A82FCFF21FCFFDD4E02DD4603B2 +:2035880009DD75FEDD74FF23237E23B6280621FFFFC357762A5989DD75FCDD74FDDD4EFC31 +:2035A800DD46FDDD6EFEDD66FFA7ED423817DD6EFCDD66FD232346236668DD4EFEDD46FFE4 +:2035C800A7ED423053DD6EFCDD66FD23234E2346DD6EFCDD66FDA7ED423829DD4EFEDD46FC +:2035E800FFDD6EFCDD66FDA7ED423816DD6EFCDD66FD23234E2346DD6EFEDD66FFA7ED4234 +:2036080030021814DD6EFCDD66FD232346236668DD75FCDD74FD1885DD6EFEDD66FF232336 +:20362800E5DD4EFCDD46FD030369604E2346E1712370DD6EFCDD66FD2323DD4EFEDD46FFD3 +:12364800712370DD6EFCDD66FD225989210000C3A381D9 :19010300E1C5D5DDE5DD210000DD39E9E526806F7EED2039ED3939E3E9C0 -:20353F00CDEF8159503E0021AB73CDFB8123E5DD4E04DD4605DD5E02DD56033E01219542B7 -:07355F00CDFB81F1C3A38144 +:20365A00CDEF8159503E0021C674CDFB8123E5DD4E04DD4605DD5E02DD56033E0121C04254 +:07367A00CDFB81F1C3A38128 :20011C00E3F5D57B96235F7A9E23577B96237A9E23C33982E3F5C54E23462378B1280D0B24 :20013C007B962320F57A9620F12323230909C38E823004EB2329195E2356EBD1F1E3C9EB4C :20015C00E3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD75083E01CDC783CD23833F :20017C00B72006CDB183CDDA82DDF9DDE1F1D13333C9E1C5D5DDE5DD210000DD395E2356AF :10019C0023EB39F9EBE909097E23666FC1F1E3C959 -:16356600CDEF81210A00E50100003E0121A545CDFB81F1C3A38196 +:16368100CDEF81210A00E50100003E0121D045CDFB81F1C3A3814F :2001AC00EBE3F5DDE5DD210000DD39C5D5DD5609DD7409DD5E08DD7508AFCDC783CD238394 :1001CC00E1C1B7CCB183C4DA82DDE1F1D13333C9FB -:20357C00CD7A82FAFFAFDD77FBDD77FC59503E0021AB73CDFB81DD75FDDD74FEDD6E04DDE6 -:20359C0066057EFE2D2014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A28FF -:2035BC0008DD34FD2003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDC89A -:2035DC0082300CDD6E10DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDC882300C7D -:2035FC00DD6EFDDD66FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FDC5 -:20361C0077237EDD9EFE77DD7E0EDDB60F2009DD7EFDDDB6FECAF376DD7E08DDB6092034E3 -:20363C00DD7E0EDDB60F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DDA3 -:20365C00460CDD70FADD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60A29 -:20367C00280CDD460ADD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FA21 -:20369C00DD6EFDDD66FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDD08 -:2036BC00740FDD4E02DD4603DD5EFA16003E01213E44CDFB81DD7EFAFE0A20183E01DDAE43 -:2036DC0012DDB613200EDD5E02DD56033E00215F70CDFB81C32376DD6EFBDD66FCC3C08317 -:2036FC00CD7A82A2FFAFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DD72 -:20371C0071FDDD70FE210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CA017CDD6E0428 -:20373C00DD66057EFE25C2B47B3E02DDAEFDDDB6FE200EDD5E02DD56033E00215F70CDFBA3 -:20375C0081AFDD77A4DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDD7B -:20377C0036A8FFDD36A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD77BB -:20379C00A6DD77A7AFDD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6EB1 -:2037BC0004DD66053E39BE3002186521000039010A00CDA783DD6E04DD66054E060021D085 -:2037DC00FF094D44210000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A87E -:2037FC00DD74A91821DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A35F -:20381C00DD75ACDD74ADDD34042003DD34051883DD6E04DD66055ECDC48114000020212328 -:20383C002A2B2D2E5862636468696C6F70737578B07BB879C079437B937989790F79247939 -:20385C001A792479007B7F79AE79047986789178A5789E78E27A91787678DD6E04DD6605E1 -:20387C002BDD7504DD7405C3B47BDD36A401DD36A500C3A077DD6E04DD660546DD70B3C379 -:20389C00A077DD36B401C3A077216800397EC60277237ECE00772B6E672B2B46236668DD84 -:2038BC0075A2DD74A3DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD662F -:2038DC00A3DD75ACDD74ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DDCD -:2038FC0075ACDD74ADC3A077DD36AA01DD36AB00C3A077DD36A601DD36A700C3A077AFDD83 -:20391C0077A6DD77A7C3A077210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC6049F -:20393C0077237ECE00772B6E6701FCFF095E2356234E2346181A216C00397EC60277237E02 -:20395C00CE00772B6E672B2B5E23567A079F4F413E0021577CCDFB81F1F1DD75B5DD74B6BE -:20397C00C3677BDD36AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD362B -:20399C00B230DD36AC05DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF0C2 -:2039BC00DD36AFFFDD7EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF093D -:2039DC005E2356234E2346EB1819216800397EC60277237ECE00772B6E672B2B462366680C -:2039FC00010000DD75B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DD9B -:203A1C004EBBDD46BCDD5EB9DD56BA3E01215045CDFB81F1F1DD75B5DD74B6DD36B7C2DD2A -:203A3C0036B885AFDDB6B4CADF7A3E02DDAEAEDDB6AF200ADD36B7C3DD36B88518493E0875 -:203A5C00DDAEAEDDB6AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B7C6DD36B88518274A -:203A7C003E10DDAEAEDDB6AF200ADD36B7C8DD36B88518133E0FDDAEAEDDA6AF3C2008DD31 -:203A9C0036B7CBDD36B885DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395DF2 -:203ABC00543E00213F75CDFB81DD4EB5DD46B6211B00395D543E0121EF43CDFB81DD75B579 -:203ADC00DD74B6C3677BDD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DDC2 -:203AFC003405181C216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A363 -:203B1C00DD46A2DD6EB5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B646A0 -:203B3C00DD70B21822181C216800397EC60277237ECE00772B6E672B2B46236668DD75B503 -:203B5C00DD74B6DD36B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE599 -:203B7C00DD6EB2E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CD7C75EB21B2 -:203B9C000C0039F9EB4D44210E00397E8177237E8877180218021842DD4E02DD4603DD6EA5 -:203BBC0004DD66055E16003E01213E44CDFB81DD34B02003DD34B1DD6E04DD66057EFE0A3B -:203BDC0020183E01DDAEFDDDB6FE200EDD5E02DD56033E00215F70CDFB81DD34042003DD0C -:203BFC003405C32E77210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDDAC -:203C1C00B6FE200EDD5E02DD56033E00215F70CDFB813E01DDAEFDDDB6FE2016210400DD2C -:1B3C3C004E02DD460309E5210600094E2346E1712370DD6EB0DD66B1C3A38167 -:0C04D60000306200300030780030580028 -:203C5700CD7A82FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DD17 -:203C7700750CDD740DDD6EFEE53E0ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660DBB -:203C9700E5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E0021D07CCDFB81F1F1F1F11E -:193CB700C3A381CDEF81210A00E50100003E0121A545CDFB81F1C37B837A +:20369700CD7A82FAFFAFDD77FBDD77FC59503E0021C674CDFB81DD75FDDD74FEDD6E04DDAE +:2036B70066057EFE2D2014DD6E04DD660523DD7504DD74052B46DD700A180EAFDDB60A28E3 +:2036D70008DD34FD2003DD34FEDD7E10DDA6113C281DDD4EFDDD46FEDD6E10DD6611CDC87E +:2036F70082300CDD6E10DD6611DD75FDDD74FEDD4EFDDD46FEDD6E0EDD660FCDC882300C61 +:20371700DD6EFDDD66FEDD750EDD740FDD6E0EDD660FDD75FBDD74FC211400397EDD96FDA8 +:2037370077237EDD9EFE77DD7E0EDDB60F2009DD7EFDDDB6FECA0E78DD7E08DDB6092034AA +:20375700DD7E0EDDB60F282CDD7EFDDDB6FE280FAFDDB60A2809DD7E0CFE3020021823DD87 +:20377700460CDD70FADD6E0EDD660F2BDD750EDD740F184EDD7EFDDDB6FE2833AFDDB60A0D +:20379700280CDD460ADD70FADD360A001812DD6E04DD660523DD7504DD74052B46DD70FA05 +:2037B700DD6EFDDD66FE2BDD75FDDD74FE1813DD460CDD70FADD6E0EDD660F2BDD750EDDEC +:2037D700740FDD4E02DD4603DD5EFA16003E01216944CDFB81DD7EFAFE0A20183E01DDAEFC +:2037F70012DDB613200EDD5E02DD56033E00219471CDFB81C33E77DD6EFBDD66FCC3C083A9 +:20381700CD7A82A2FFAFDD77B0DD77B1210C00DD5E02DD5603197EE6034F237EE60047DD55 +:2038370071FDDD70FE210C00197EE6FC77237EE6FF77DD6E04DD6605AFB6CA1C7DDD6E04F0 +:20385700DD66057EFE25C2CF7C3E02DDAEFDDDB6FE200EDD5E02DD56033E00219471CDFB35 +:2038770081AFDD77A4DD77A5DD36B300DD36B220DD36ACFFDD36ADFFAFDD77AADD77ABDD5F +:2038970036A8FFDD36A9FFDD36AE0ADD36AF00211B0039DD75B5DD74B6DD36B400AFDD779F +:2038B700A6DD77A7AFDD77A2DD77A3DD34042003DD3405DD6E04DD66057EFE30380BDD6E95 +:2038D70004DD66053E39BE3002186521000039010A00CDA783DD6E04DD66054E060021D069 +:2038F700FF094D44210000397E8177237E8877DD7EAADDB6AB280EDD6EA2DD66A3DD75A862 +:20391700DD74A91821DD7EA2DDB6A3200DDD7EB2FE202006DD36B230188ADD6EA2DD66A342 +:20393700DD75ACDD74ADDD34042003DD34051883DD6E04DD66055ECDC4811400002021230C +:203957002A2B2D2E5862636468696C6F70737578CB7CD37ADB7A5E7CAE7AA47A2A7A3F7A3D +:20397700357A3F7A1B7C9A7AC97A1F7AA179AC79C079B979FD7BAC799179DD6E04DD660559 +:203997002BDD7504DD7405C3CF7CDD36A401DD36A500C3BB78DD6E04DD660546DD70B3C325 +:2039B700BB78DD36B401C3BB78216800397EC60277237ECE00772B6E672B2B46236668DD30 +:2039D70075A2DD74A3DD7EAADDB6AB280EDD6EA2DD66A3DD75A8DD74A9182ADD6EA2DD6613 +:2039F700A3DD75ACDD74ADCB7C281ADD36A401DD36A500DD4EA2DD46A3A7210000ED42DDB1 +:203A170075ACDD74ADC3BB78DD36AA01DD36AB00C3BB78DD36A601DD36A700C3BB78AFDD12 +:203A370077A6DD77A7C3BB78210A00E5211D0039E5DD7EA6DDB6A7281D216C00397EC60467 +:203A570077237ECE00772B6E6701FCFF095E2356234E2346181A216C00397EC60277237EE6 +:203A7700CE00772B6E672B2B5E23567A079F4F413E0021727DCDFB81F1F1DD75B5DD74B686 +:203A9700C3827CDD36AE02DD36AF001837DD36AE08DD36AF00182DAFDD77A6DD77A7DD36F3 +:203AB700B230DD36AC05DD36AD00DD36A808DD36A900DD36AE10DD36AF001808DD36AEF0A6 +:203AD700DD36AFFFDD7EA6DDB6A7281E216800397EC60477237ECE00772B6E6701FCFF0921 +:203AF7005E2356234E2346EB1819216800397EC60277237ECE00772B6E672B2B46236668F0 +:203B1700010000DD75B9DD74BADD71BBDD70BCDD5EAEDD56AFD5211D003901040009E5DD7E +:203B37004EBBDD46BCDD5EB9DD56BA3E01217B45CDFB81F1F1DD75B5DD74B6DD36B7D4DDD1 +:203B570036B885AFDDB6B4CAFA7B3E02DDAEAEDDB6AF200ADD36B7D5DD36B88518493E082B +:203B7700DDAEAEDDB6AF2018DD7EB9DDB6BADDB6BBDDB6BC2808DD36B7D8DD36B88518271C +:203B97003E10DDAEAEDDB6AF200ADD36B7DADD36B88518133E0FDDAEAEDDA6AF3C2008DD03 +:203BB70036B7DDDD36B885DD6EB7DD66B8AFB62832DD36B200DD4EB7DD46B8211B00395DC4 +:203BD700543E00215A76CDFB81DD4EB5DD46B6211B00395D543E01211A44CDFB81DD75B515 +:203BF700DD74B6C3827CDD6E04DD6605234E0600DD71A2DD70A379B02808DD34042003DD8A +:203C17003405181C216800397EC60277237ECE00772B6E672B2B46236668DD75A2DD74A346 +:203C3700DD46A2DD6EB5DD66B670DD6EB5DD66B6233600AFDDB6B4280CDD6EB5DD66B64684 +:203C5700DD70B21822181C216800397EC60277237ECE00772B6E672B2B46236668DD75B5E7 +:203C7700DD74B6DD36B220DD36B300DD6EFDDD66FEE5DD6EA8DD66A9E5DD6EACDD66ADE57D +:203C9700DD6EB2E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DD46B6DD5E02DD5603CD9776EB217A +:203CB7000C0039F9EB4D44210E00397E8177237E8877180218021842DD4E02DD4603DD6E89 +:203CD70004DD66055E16003E01216944CDFB81DD34B02003DD34B1DD6E04DD66057EFE0AF4 +:203CF70020183E01DDAEFDDDB6FE200EDD5E02DD56033E00219471CDFB81DD34042003DDBA +:203D17003405C34978210C00DD4E02DD4603097EDDB6FD77237EDDB6FE773E02DDAEFDDD73 +:203D3700B6FE200EDD5E02DD56033E00219471CDFB813E01DDAEFDDDB6FE2016210400DDDA +:1B3D57004E02DD460309E5210600094E2346E1712370DD6EB0DD66B1C3A3814B +:0C04E80000306200300030780030580016 +:203D7200CD7A82FEFFDD36FE41DDCB0D7E2816DD36FE61DD4E0CDD460DA7210000ED42DDFB +:203D9200750CDD740DDD6EFEE53E0ADDAE0CDDB60D20043E011801AF4FC5DD6E0CDD660D9F +:203DB200E5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E0021EB7DCDFB81F1F1F1F1E6 +:193DD200C3A381CDEF81210A00E50100003E0121D045CDFB81F1C37B8333 :1201DC00C5E5F57CEE806778EE8047F1A7ED42E1C1C9C2 -:203CD000CD7A82D6FFDD6E0ADD660BDD75F8DD74F921000039DD75FADD74FB212C0039DDAA -:203CF00075FCDD74FD213A00397ED60A77DD4E0CDD460D212400CDC8823811010280DD6EB2 -:203D10000CDD660D3E80AC67ED423003C3537EDD6EFCDD66FD23237EE60047237EE680B041 -:203D30002831AFDDB60E282BDD6EF8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6E11 -:203D500002DD6603CD8484DD7502DD7403DD7104DD7005DD6EFCDD66FD23237E23B62002A4 -:203D7000184EDD6E0CDD660D7C079F4F41C5E5DD4E04DD4605DD6E02DD6603CD1B84E5DDB2 -:203D90006EFADD66FB23DD75FADD74FB2BC171212C0039DD5E0CDD560D7A079F4F41CD0BC0 -:203DB00084DD6EFCDD66FD23237E23B620B41830DD5E02DD5603DD4E0CDD460DCDE282DD47 -:203DD0006EFADD66FB23DD75FADD74FB2B73DD5E02DD5603CD0783DD6EFCDD66FD7323727B -:203DF000DD6EFCDD66FD7E23B620C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB619 -:203E1000FF2840DD6EFADD66FB2BDD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77F7 -:203E3000FE1809DD7EFEDD8610DD77FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD3531 -:203E5000FF18BADD6EF8DD66F93600DD6E0ADD660BC3A381CD7A82FEFFDD36FE41DDCB0B77 -:203E70007E2816DD36FE61DD4E0ADD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5F0 -:203E9000DD6E0ADD660BE5DD6E04DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A0772 -:1D3EB0009F4F411809DD5E02DD56030100003E0021D07CCDFB81F1F1F1F1C3A38192 +:203DEB00CD7A82D6FFDD6E0ADD660BDD75F8DD74F921000039DD75FADD74FB212C0039DD8E +:203E0B0075FCDD74FD213A00397ED60A77DD4E0CDD460D212400CDC8823811010280DD6E95 +:203E2B000CDD660D3E80AC67ED423003C36E7FDD6EFCDD66FD23237EE60047237EE680B009 +:203E4B002831AFDDB60E282BDD6EF8DD66F923DD75F8DD74F92B362DDD4E04DD4605DD6EF5 +:203E6B0002DD6603CD8484DD7502DD7403DD7104DD7005DD6EFCDD66FD23237E23B6200288 +:203E8B00184EDD6E0CDD660D7C079F4F41C5E5DD4E04DD4605DD6E02DD6603CD1B84E5DD96 +:203EAB006EFADD66FB23DD75FADD74FB2BC171212C0039DD5E0CDD560D7A079F4F41CD0BA4 +:203ECB0084DD6EFCDD66FD23237E23B620B41830DD5E02DD5603DD4E0CDD460DCDE282DD2B +:203EEB006EFADD66FB23DD75FADD74FB2B73DD5E02DD5603CD0783DD6EFCDD66FD7323725F +:203F0B00DD6EFCDD66FD7E23B620C5210000394D44DD6EFADD66FBA7ED42DD75FFAFDDB6FC +:203F2B00FF2840DD6EFADD66FB2BDD75FADD74FB46DD70FE78FE0A300ADD7EFEC630DD77DB +:203F4B00FE1809DD7EFEDD8610DD77FEDD6EF8DD66F923DD75F8DD74F92BDD46FE70DD3515 +:203F6B00FF18BADD6EF8DD66F93600DD6E0ADD660BC3A381CD7A82FEFFDD36FE41DDCB0B5B +:203F8B007E2816DD36FE61DD4E0ADD460BA7210000ED42DD750ADD740BDD6EFEE50E01C5D4 +:203FAB00DD6E0ADD660BE5DD6E04DD6605E53E0ADDAE0ADDB60B200DDD5E02DD56037A0756 +:1D3FCB009F4F411809DD5E02DD56030100003E0021EB7DCDFB81F1F1F1F1C3A3815A :0801EE002CC024C00CC004C9A0 -:203ECD00CDEF81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E01217BFF -:0B3EED0042CDFB81F1F1F1F1C3A38194 +:20400000CDEF81DD6E0EDD660FE5DD6E0CDD660DE5DD6E0ADD660BE5211400E53E0121A69F +:0B40200042CDFB81F1F1F1F1C3A3815F :2001F600F5E5CD9183EBE1F1C9F5C5E5AFCD4084F5CD9183F1B728031318067B2F5F7A2F3D -:1302160057E1C1F1C9F5E5CD91837B2F5F7A2F57E1F1C9C3 -:20400000CD7A82FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2A478947 -:20402000DD75FCDD74FD7DB42011DD36FC43DD36FD89214389224589224789DD6EFCDD663E -:20404000FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA764 -:20406000ED42CAF040DD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E234654 -:20408000E1A7ED42206ADD6EFADD66FB232346236668ED4B4789A7ED422015DD6EFADD6644 -:2040A000FB232346236668232346236668224789DD6EFADD66FB23237E23666F4E2346DD46 -:2040C0006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604E16 -:2040E0002346030369604E2346E1712370C34D40DD6EFADD66FB46236668DD4EFEDD46FF97 -:20410000A7ED42DAAE41DD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD665F -:20412000FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DD81 -:204140004EFADD46FB09224789DD6EFCDD66FD2323ED5B47897323722A47892323E50303E6 -:2041600069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52A478920 -:20418000D1732372DD6EFADD66FB712370DD6EFCDD66FD224789DD6EFADD66FB2323AF7757 -:2041A0002377210400DD4EFADD46FB0918272A4789DD4EFADD46FBA7ED42204F1100043EE0 -:2041C00001214D46CDFB81DD75FADD74FB7DA43C2006210000C3A381DD6EFADD66FB360005 -:2041E000233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E00215F74CD81 -:20420000FB812A4789DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234662 -:0C422000236668DD75FADD74FBC34D40B9 -:0E022900B7C8CB28CB19CB1CCB1D3D20F5C987 -:20422C00CDEF812A3C873A3E87B5B42812010000DD5E02DD56033A3E872A3C87CDFB81DD20 -:10424C005E02DD56033E01212944CDFB81C3A381CF +:2002160057E1C1F1C9F5E5CD91837B2F5F7A2F57E1F1C9B7C8CB28CB19CB1CCB1D3D20F53F +:01023600C9FE +:20402B00CD7A82FAFFDD6E02DD6603232323CB3CCB1DCB3CCB1D23DD75FEDD74FF2A59890A +:20404B00DD75FCDD74FD7DB42011DD36FC55DD36FD89215589225789225989DD6EFCDD66CB +:20406B00FD232346236668DD75FADD74FBDD6EFADD66FB232346236668DD4EFADD46FBA739 +:20408B00ED42CA1B41DD6EFADD66FB462366682929DD4EFADD46FB09E5030369604E2346FD +:2040AB00E1A7ED42206ADD6EFADD66FB232346236668ED4B5989A7ED422015DD6EFADD6607 +:2040CB00FB232346236668232346236668225989DD6EFADD66FB23237E23666F4E2346DD09 +:2040EB006EFADD66FB7E8177237E8877DD6EFADD66FB2323E5DD4EFADD46FB030369604EEB +:20410B002346030369604E2346E1712370C37840DD6EFADD66FB46236668DD4EFEDD46FF40 +:20412B00A7ED42DAD941DD6EFADD66FB46236668DD4EFEDD46FFA7ED42201CDD6EFCDD6609 +:20414B00FD2323E5DD4EFADD46FB030369604E2346E17123701856DD6EFEDD66FF2929DD56 +:20416B004EFADD46FB09225989DD6EFCDD66FD2323ED5B59897323722A59892323E5030385 +:20418B0069604E2346E1712370DD6EFADD66FB46236668DD4EFEDD46FFA7ED42E52A5989E3 +:2041AB00D1732372DD6EFADD66FB712370DD6EFCDD66FD225989DD6EFADD66FB2323AF771A +:2041CB002377210400DD4EFADD46FB0918272A5989DD4EFADD46FBA7ED42204F1100043EA3 +:2041EB0001217846CDFB81DD75FADD74FB7DA43C2006210000C3A381DD6EFADD66FB3600AF +:20420B00233601DD6EFADD66FB2323AF772377210400DD4EFADD46FB09EB3E00217A75CD39 +:20422B00FB812A5989DD75FADD74FBDD6EFADD66FBDD75FCDD74FDDD6EFADD66FB23234625 +:0C424B00236668DD75FADD74FBC3784063 +:20425700CDEF812A4E873A5087B5B42812010000DD5E02DD56033A50872A4E87CDFB81DDAD +:104277005E02DD56033E01215444CDFB81C3A38179 :20023700F5210000010000DD36F82118021937DDCBFC16DDCBFD16DDCBFE16DDCBFF16DD2F :2002570035F8282ECB11CB10CB15CB14ED5238DD201078DD960738D5200879DD960638CDEC :18027700180479DD96064F78DD9E074730C12BA718BDF1E56069C1C910 -:1F425C00CDEF81DD6E0ADD660BE5C5D5211700E53E01217B42CDFB81F1F1F1F1C3A381B6 +:1F428700CDEF81DD6E0ADD660BE5C5D5211700E53E0121A642CDFB81F1F1F1F1C3A38160 :20028F00DDF9DDE1D13333F1ED3939C90405C8CB2ACB1B10FAC92100003E11CB13CB123D84 :0C02AF00C8CB15CB14ED4230F20918EF5B -:1A427B0021040039C5D55E2356234D44F73006223A8721FFFFD1C1C3A981F8 +:1A42A60021040039C5D55E2356234D44F73006224C8721FFFFD1C1C3A981BB :1902BB005E2356CDAE81722B73C9F57D2F6F7C2F67792F4F782F47F1C9BD -:20429500CD7A82FCFFDD6E02DD6603DD75FCDD74FDDD71FEDD70FFDD6E0ADD660B2BDD755E -:2042B5000ADD740B237DB42820DD6EFEDD66FF23DD75FEDD74FF2B46DD6EFCDD66FD23DDA1 -:2042D50075FCDD74FD2B7018CEDD6E02DD6603C3A381CD7A82FAFF2A32862BDD75FADD74A3 -:2042F500FB21FFFF2232863E00210000323E87223C87DDCBFB7E2053010500DD5EFADD5678 -:20431500FBCDAE81214989195E23562346EBDD75FCDD74FDDD70FE110500DD4EFADD46FB1A -:20433500CDAE81214C89194E2346DD5E02DD5603DD7EFEDD6EFCDD66FDCDFB81DD6EFADDE8 -:2043550066FB2BDD75FADD74FB18A7C3A381CDEF812A3286CB7C200E010A802A32863E80BF -:20437500AC67ED42380B210C00223A8721FFFF18533E0121E742323E87223C87DD7E02DD6A -:20439500B603DDB604283A010500ED5B3286CDAE8121498919DD5604DD4E02DD460371232A -:2043B500702372010500ED5B3286CDAE81214C8919DD4E0ADD460B7123702A328623223212 -:1A43D50086210000C3A381CDEF81210000E53E01216343CDFB81F1C3A381D6 -:020546000000B3 -:2043EF00CDEF81D53E0021AB73CDFB81D119EB3E00213F75CDFB81DD6E02DD6603C3A3812B -:20440F0021040039D55E2356234D44F73008223A8721FFFF4D44D1C3A981CDEF81D5210B11 -:0F442F0000E53E01217B42CDFB81F1F1C3A3816A +:2042C000CD7A82FCFFDD6E02DD6603DD75FCDD74FDDD71FEDD70FFDD6E0ADD660B2BDD7533 +:2042E0000ADD740B237DB42820DD6EFEDD66FF23DD75FEDD74FF2B46DD6EFCDD66FD23DD76 +:2043000075FCDD74FD2B7018CEDD6E02DD6603C3A381CD7A82FAFF2A44862BDD75FADD7465 +:20432000FB21FFFF2244863E00210000325087224E87DDCBFB7E2053010500DD5EFADD5616 +:20434000FBCDAE81215B89195E23562346EBDD75FCDD74FDDD70FE110500DD4EFADD46FBDD +:20436000CDAE81215E89194E2346DD5E02DD5603DD7EFEDD6EFCDD66FDCDFB81DD6EFADDAB +:2043800066FB2BDD75FADD74FB18A7C3A381CDEF812A4486CB7C200E010A802A44863E8070 +:2043A000AC67ED42380B210C00224C8721FFFF18533E01211243325087224E87DD7E02DDDD +:2043C000B603DDB604283A010500ED5B4486CDAE81215B8919DD5604DD4E02DD46037123DB +:2043E000702372010500ED5B4486CDAE81215E8919DD4E0ADD460B7123702A44862322449F +:1A44000086210000C3A381CDEF81210000E53E01218E43CDFB81F1C3A3817F +:020558000000A1 +:20441A00CDEF81D53E0021C674CDFB81D119EB3E00215A76CDFB81DD6E02DD6603C3A381C7 +:20443A0021040039D55E2356234D44F73008224C8721FFFF4D44D1C3A981CDEF81D5210BD4 +:0F445A0000E53E0121A642CDFB81F1F1C3A38114 :0702D400DDF9DDE1D1C1C934 -:20443E00CD7A82FEFF3E00215873CDFB81210C000946236668DD75FEDD74FF7DE640281835 -:20445E00DD5E04DD56053E00215F70CDFB817DB4280621FFFFC34D45DD7EFEE6206FDD7E54 -:20447E00FFE603673E20ADB4280621FFFFC34D45210800DD4E04DD4605095E23560A6F0392 -:20449E000A67A7ED523818DD5E04DD56053E00215F70CDFB817DB4280621FFFFC34D45DDB9 -:2044BE006E04DD66054E234603702B710B6960DD460270210C00DD4E04DD4605097EF68074 -:2044DE0077237EF600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5E85 -:2044FE0004DD56053E00215F70CDFB817DB4280521FFFF183ADD7EFEE6032818210400DD98 -:20451E004E04DD460509E5210600094E2346E17123701816210400DD4E04DD460509E52190 -:20453E000800094E2346E1712370DD6E022600C3A381CD7A82FEFFDD36FE41DDCB0D7E28E3 -:20455E0016DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE50E00C5DD6E4F -:20457E000CDD660DE5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E0021D07CCDFB8196 -:20459E00F1F1F1F1C3A381CD7A82F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD32 -:2045BE006EFEDD66FF4E0600213486097EE610280ADD34FE2003DD34FF18E4DD6EFEDD6687 -:2045DE00FF7EFE2D2012DD34FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFE31 -:2045FE002B2008DD34FE2003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E017F -:20461E0021E846CDFB81F1DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CD8484180CC2 -:0F463E00DD4EFADD46FBDD6EF8DD66F9C37B83EA +:20446900CD7A82FEFF3E00217374CDFB81210C000946236668DD75FEDD74FF7DE6402818EE +:20448900DD5E04DD56053E00219471CDFB817DB4280621FFFFC37845DD7EFEE6206FDD7EC8 +:2044A900FFE603673E20ADB4280621FFFFC37845210800DD4E04DD4605095E23560A6F033C +:2044C9000A67A7ED523818DD5E04DD56053E00219471CDFB817DB4280621FFFFC37845DD2D +:2044E9006E04DD66054E234603702B710B6960DD460270210C00DD4E04DD4605097EF68049 +:2045090077237EF600773E0ADDAE02DDB6032007DD7EFEE6012007DD7EFEE6022817DD5E59 +:2045290004DD56053E00219471CDFB817DB4280521FFFF183ADD7EFEE6032818210400DD36 +:204549004E04DD460509E5210600094E2346E17123701816210400DD4E04DD460509E52165 +:204569000800094E2346E1712370DD6E022600C3A381CD7A82FEFFDD36FE41DDCB0D7E28B8 +:2045890016DD36FE61DD4E0CDD460DA7210000ED42DD750CDD740DDD6EFEE50E00C5DD6E24 +:2045A9000CDD660DE5DD6E0ADD660BE5DD4E04DD4605DD5E02DD56033E0021EB7DCDFB814F +:2045C900F1F1F1F1C3A381CD7A82F8FFAFDD77FCDD77FDDD6E02DD6603DD75FEDD74FFDD07 +:2045E9006EFEDD66FF4E0600214686097EE610280ADD34FE2003DD34FF18E4DD6EFEDD664A +:20460900FF7EFE2D2012DD34FC2003DD34FDDD34FE2003DD34FF1813DD6EFEDD66FF7EFE05 +:204629002B2008DD34FE2003DD34FFDD6E0ADD660BE5DD4E04DD4605DD5EFEDD56FF3E0153 +:20464900211347CDFB81F1DD75F8DD74F9DD71FADD70FBDD7EFCDDB6FD2805CD8484180C6B +:0F466900DD4EFADD46FBDD6EF8DD66F9C37B83BF :2002DB00CB7A2818424BDD6607DD6E06CDB183CDDA825059DD7407DD75063E01DDCBFF7E6F :2002FB00C8F5DD46FFDD4EFEDD66FDDD6EFCCDB183CDDA82DD70FFDD71FEDD74FDDD75FCF6 :20031B00F1EE01C9C5D55E2356234E2346EBCD5C84C39684EBE3F5DDE5DD210000DD39C5FB :20033B00D5DD5609DD7409DD5E08DD7508CD2383DDF9DDE1F1D13333C9CB782809AF914F9F :20035B003E0098473E01CB7AC8F5AF935F3E009A57F1EE01C9EBE3F5DDE5DD210000DD3912 :1D037B00C5D5DD5609DD7409DD5E08DD7508CD2383E1C1CDB183DDE1F1D13333C9D3 -:15464D00CDEF81D5211800E53E01217B42CDFB81F1F1C3A381F9 +:15467800CDEF81D5211800E53E0121A642CDFB81F1F1C3A381A3 :1B039800F5AF956F3E009C673E00994F3E009847F1C9EB702B712B722B73C969 -:20466200CD7A82FEFFDD36FEFFDD36FFFFDD5E021600213486197EE608280FDD4E02060034 -:2046820021D0FF09DD75FEDD74FFDD4E020600213486097EE604280FDD4E02060021A9FFCD -:2046A20009DD75FEDD74FFDD4E020600213486097EE602280FDD4E02060021B0FF09DD753D -:2046C200FEDD74FFDD4E04DD4605DD6EFEDD66FFCDC8823808DD36FEFFDD36FFFFDD6EFEE7 -:2046E200DD66FFC3C083CD7A82FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADD10 -:20470200460B212400CDC8823007AFDD770ADD770BDD6E02DD66034E0600213486097EE618 -:2047220010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD340341 -:20474200186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FE51 -:20476200582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD660378 -:20478200237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DDAA -:2047A200360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AF28 -:2047C200DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECD6246DD75FEDDA3 -:2047E20074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CD9F8421000039DD5EFE81 -:20480200DD56FF7A079F4F41CDD681DD34022003DD340318B7DD7E04DDB6052811DD6E02FA -:20482200DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC37B83CDEF8127 -:204842001600213486197EE604280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C3AD -:20486200A381CDEF811600213486197EE602280EDD7E02EE206FDD7E03EE00671806DD6E39 -:0748820002DD6603C3A38100 -:20054800010101010101010101111111111101010101010101010101010101010101010123 -:200568001020202020202020202020202020202048484848484848484848202020202020F3 -:200588002042424242424202020202020202020202020202020202020202022020202020DF -:2005A8002044444444444404040404040404040404040404040404040404042020202001AA -:2005C800000000000000000000000000000000000000000000000000000000000000000013 -:2005E8000000000000000000000000000000000000000000000000000000000000000000F3 -:200608000000000000000000000000000000000000000000000000000000000000000000D2 -:200628000000000000000000000000000000000000000000000000000000000000000000B2 +:20468D00CD7A82FEFFDD36FEFFDD36FFFFDD5E021600214686197EE608280FDD4E020600F7 +:2046AD0021D0FF09DD75FEDD74FFDD4E020600214686097EE604280FDD4E02060021A9FF90 +:2046CD0009DD75FEDD74FFDD4E020600214686097EE602280FDD4E02060021B0FF09DD7500 +:2046ED00FEDD74FFDD4E04DD4605DD6EFEDD66FFCDC8823808DD36FEFFDD36FFFFDD6EFEBC +:20470D00DD66FFC3C083CD7A82FAFF110280DD6E0ADD660B3E80AC67ED52380EDD4E0ADDE4 +:20472D00460B212400CDC8823007AFDD770ADD770BDD6E02DD66034E0600214686097EE6DB +:20474D0010280ADD34022003DD340318E4DD6E02DD66037EFE2B200ADD34022003DD340316 +:20476D00186DDD7E0ADDB60B2065DD6E02DD66037EFE30205ADD6E02DD6603237EEE20FE26 +:20478D00582017DD360A10DD360B00210800397EC60277237ECE00771835DD6E02DD66034D +:2047AD00237EEE20FE422017DD360A02DD360B00210800397EC60277237ECE00771810DD7F +:2047CD00360A08DD360B00DD34022003DD3403DD7E0ADDB60B2008DD360A0ADD360B00AFFD +:2047ED00DD77FADD77FBDD77FCDD77FDDD4E0ADD460BDD6E02DD66035ECD8D46DD75FEDD4D +:20480D0074FF7DA43C282E21000039DD5E0ADD560B7A079F4F41CD9F8421000039DD5EFE55 +:20482D00DD56FF7A079F4F41CDD681DD34022003DD340318B7DD7E04DDB6052811DD6E02CF +:20484D00DD6603E5DD6E04DD6605C1712370DD4EFCDD46FDDD6EFADD66FBC37B83CDEF81FC +:20486D001600214686197EE604280EDD7E02EE206FDD7E03EE00671806DD6E02DD6603C370 +:20488D00A381CDEF811600214686197EE602280EDD7E02EE206FDD7E03EE00671806DD6EFC +:0748AD0002DD6603C3A381D5 +:20055A00010101010101010101111111111101010101010101010101010101010101010111 +:20057A001020202020202020202020202020202048484848484848484848202020202020E1 +:20059A002042424242424202020202020202020202020202020202020202022020202020CD +:2005BA00204444444444440404040404040404040404040404040404040404202020200198 +:2005DA00000000000000000000000000000000000000000000000000000000000000000001 +:2005FA000000000000000000000000000000000000000000000000000000000000000000E1 +:20061A000000000000000000000000000000000000000000000000000000000000000000C0 +:20063A000000000000000000000000000000000000000000000000000000000000000000A0 :1003B300C5D55E2356234E2346EBCD1F81C39684BA :00000001FF diff --git a/src/gui/test.lst b/src/gui/test.lst index 4604eb7c..fa45ffc4 100644 --- a/src/gui/test.lst +++ b/src/gui/test.lst @@ -6,57 +6,66 @@ 6 EXTERN GUIunit 7 EXTERN Transaction_handler 8 EXTERN Transaction_init - 9 EXTERN gui_globals - 10 PUBLIC main - 11 EXTERN ?CL64180B_4_06_L00 - 12 EXTERN ?BANK_CALL_DIRECT_L08 - 13 EXTERN ?BANK_FAST_LEAVE_L08 - 14 RSEG CODE - 00000000 15 main: - 00000000 C5 16 PUSH BC - 00000001 D5 17 PUSH DE - 00000002 3E 00 18 LD A,BYTE3 GUIinit - 00000004 21 00 00 19 LD HL,LWRD GUIinit - 00000007 CD 00 00 20 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000000A 3E 00 21 LD A,BYTE3 Transaction_init - 0000000C 21 00 00 22 LD HL,LWRD Transaction_init - 0000000F CD 00 00 23 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000012 3E 00 24 LD A,BYTE3 gui_globals - 00000014 21 00 00 25 LD HL,LWRD gui_globals - 00000017 CD 00 00 26 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000001A 01 10 00 27 LD BC,16 - 0000001D 09 28 ADD HL,BC - 0000001E 36 00 29 LD (HL),LOW(Transaction_handler) - 00000020 23 30 INC HL - 00000021 36 00 31 LD (HL),HIGH(Transaction_handler) - 00000023 23 32 INC HL - 00000024 36 00 33 LD (HL),BYTE3 Transaction_handler - 00000026 11 00 00 34 LD DE,?0000 - 00000029 3E 00 35 LD A,BYTE3 GUIgo - 0000002B 21 00 00 36 LD HL,LWRD GUIgo - 0000002E CD 00 00 37 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000031 3E 00 38 LD A,BYTE3 GUIunit - 00000033 21 00 00 39 LD HL,LWRD GUIunit - 00000036 CD 00 00 40 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000039 D1 41 POP DE - 0000003A C1 42 POP BC - 0000003B C3 00 00 43 JP LWRD ?BANK_FAST_LEAVE_L08 - 44 RSEG CSTR - 00000000 45 ?0000: - 00000000 2F 77 6E 64 2F 30 30 46 DEFB '/wnd/0000.scr' + 9 EXTERN chdir + 10 EXTERN gui_globals + 11 PUBLIC main + 12 EXTERN ?CL64180B_4_06_L00 + 13 EXTERN ?BANK_CALL_DIRECT_L08 + 14 EXTERN ?BANK_FAST_LEAVE_L08 + 15 RSEG CODE + 00000000 16 main: + 00000000 C5 17 PUSH BC + 00000001 D5 18 PUSH DE + 00000002 3E 00 19 LD A,BYTE3 GUIinit + 00000004 21 00 00 20 LD HL,LWRD GUIinit + 00000007 CD 00 00 21 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000000A 3E 00 22 LD A,BYTE3 Transaction_init + 0000000C 21 00 00 23 LD HL,LWRD Transaction_init + 0000000F CD 00 00 24 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000012 3E 00 25 LD A,BYTE3 gui_globals + 00000014 21 00 00 26 LD HL,LWRD gui_globals + 00000017 CD 00 00 27 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000001A 01 18 00 28 LD BC,24 + 0000001D 09 29 ADD HL,BC + 0000001E 36 00 30 LD (HL),LOW(Transaction_handler) + 00000020 23 31 INC HL + 00000021 36 00 32 LD (HL),HIGH(Transaction_handler) + 00000023 23 33 INC HL + 00000024 36 00 34 LD (HL),BYTE3 Transaction_handler + 00000026 11 00 00 35 LD DE,?0000 + 00000029 3E 00 36 LD A,BYTE3 chdir + 0000002B 21 00 00 37 LD HL,LWRD chdir + 0000002E CD 00 00 38 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000031 11 05 00 39 LD DE,?0001 + 00000034 3E 00 40 LD A,BYTE3 GUIgo + 00000036 21 00 00 41 LD HL,LWRD GUIgo + 00000039 CD 00 00 42 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000003C 3E 00 43 LD A,BYTE3 GUIunit + 0000003E 21 00 00 44 LD HL,LWRD GUIunit + 00000041 CD 00 00 45 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000044 D1 46 POP DE + 00000045 C1 47 POP BC + 00000046 C3 00 00 48 JP LWRD ?BANK_FAST_LEAVE_L08 + 49 RSEG CSTR + 00000000 50 ?0000: + 00000000 2F 77 6E 64 51 DEFB '/wnd' + 00000004 00 52 DEFB 0 + 00000005 53 ?0001: + 00000005 2F 77 6E 64 2F 30 30 54 DEFB '/wnd/0000.scr' 30 30 2E 73 63 72 - 0000000D 00 47 DEFB 0 - 0000000E 48 END + 00000012 00 55 DEFB 0 + 00000013 56 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] Symbol Table .__.ABS. = 00000000 G | 2 ?0000 00000000 R - ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX - ?CL64180B_4_06 ******** GX | GUIgo ******** GX - GUIinit ******** GX | GUIunit ******** GX - Transaction_ha ******** GX | Transaction_in ******** GX + 2 ?0001 00000005 R | ?BANK_CALL_DIR ******** GX + ?BANK_FAST_LEA ******** GX | ?CL64180B_4_06 ******** GX + GUIgo ******** GX | GUIinit ******** GX + GUIunit ******** GX | Transaction_ha ******** GX + Transaction_in ******** GX | chdir ******** GX gui_globals ******** GX | 1 main 00000000 GR ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. @@ -65,5 +74,5 @@ Hexadecimal [32-Bits] Area Table 0 _DEFAULT size 0 flags 0 - 1 CODE size 3E flags 0 - 2 CSTR size E flags 0 + 1 CODE size 49 flags 0 + 2 CSTR size 13 flags 0 diff --git a/src/gui/test.map b/src/gui/test.map index 154ee27b..1b9780a3 100644 --- a/src/gui/test.map +++ b/src/gui/test.map @@ -8,16 +8,16 @@ Area Addr Size Decimal Bytes (Attributes) ----- ------ ----- ------ ----- ------ 00000000 s__DEFAUL | 00000000 l_CCSTR | 00000000 l_ECSTR 00000000 .__.ABS. | 00000000 ?CL64180L | 00000000 ?CL64180B - 00000014 e__DEFAUL | 00000014 l__DEFAUL | 00000034 l_CONST - 000000EB l_CSTR | 00000166 l_CDATA0 | 00000166 l_IDATA0 + 00000014 e__DEFAUL | 00000014 l__DEFAUL | 00000026 l_CONST + 0000010B l_CSTR | 00000166 l_CDATA0 | 00000166 l_IDATA0 00000247 l_UDATA0 | 000003AF l_RCODE | 00001000 l_CSTACK 00004000 s_CODE | 00008100 s_RCODE | 000084AF e_RCODE - 000084AF s_CONST | 000084E3 s_CSTR | 000084E3 e_CONST - 000085CE e_CSTR | 000085CE s_IDATA0 | 000085CE s_CDATA0 - 00008734 s_UDATA0 | 00008734 e_CCSTR | 00008734 e_ECSTR - 00008734 s_CCSTR | 00008734 e_CDATA0 | 00008734 s_ECSTR - 00008734 e_IDATA0 | 0000897B e_UDATA0 | 0000897B s_CSTACK - 0000997B e_CSTACK | 0000C108 l_CODE | 00010108 e_CODE + 000084AF s_CONST | 000084D5 s_CSTR | 000084D5 e_CONST + 000085E0 e_CSTR | 000085E0 s_IDATA0 | 000085E0 s_CDATA0 + 00008746 s_UDATA0 | 00008746 e_CCSTR | 00008746 e_ECSTR + 00008746 s_CCSTR | 00008746 e_CDATA0 | 00008746 s_ECSTR + 00008746 e_IDATA0 | 0000898D e_UDATA0 | 0000898D s_CSTACK + 0000998D e_CSTACK | 0000C018 l_CODE | 00010018 e_CODE Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) @@ -51,7 +51,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CONST 000084AF 00000034 = 52. bytes (REL,CON) +CONST 000084AF 00000026 = 38. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -59,7 +59,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CSTR 000084E3 000000EB = 235. bytes (REL,CON) +CSTR 000084D5 0000010B = 267. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -67,17 +67,17 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -IDATA0 000085CE 00000166 = 358. bytes (NUL,CON) +IDATA0 000085E0 00000166 = 358. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 000085E6 __IO_list | 000085E8 stdin | 00008600 stdout - 00008618 stderr | 00008632 __on_exit | 00008634 __ctype + 000085F8 __IO_list | 000085FA stdin | 00008612 stdout + 0000862A stderr | 00008644 __on_exit | 00008646 __ctype Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CDATA0 000085CE 00000166 = 358. bytes (REL,CON) +CDATA0 000085E0 00000166 = 358. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -85,7 +85,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -ECSTR 00008734 00000000 = 0. bytes (NUL,CON) +ECSTR 00008746 00000000 = 0. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -93,7 +93,7 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CCSTR 00008734 00000000 = 0. bytes (REL,CON) +CCSTR 00008746 00000000 = 0. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -101,62 +101,62 @@ Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CODE 00004000 0000C108 = 49416. bytes (NUL,CON) +CODE 00004000 0000C018 = 49176. bytes (NUL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 00004648 GraphicsO | 000046D6 GraphicsC | 000046EB Move - 0000472A ClearRect | 0000476D DrawRectN | 000047B2 FillRect - 000047F7 FillRectN | 0000483C GrayRect | 00004881 Text - 000048AE TouchRegi | 00004905 ClearScre | 00004942 EnableScr - 00004980 grSetFont | 000049BD fontSearc | 000049ED setCurren - 00004A7B loadFont | 00004B22 stringwid | 00004B9B stringhei - 00004BB8 stringhei | 00004BCB stringhei | 00004BD4 stringwid - 00004BE5 stringwid | 00004BEE stringwid | 00004BF7 Component - 00004CA1 Component | 00004CEE Component | 00004D4C Component - 00004D92 Component | 00004DD6 Component | 00004E0E Component - 00004FDF Component | 00004FFE Component | 00005067 Component - 0000511A Window_ha | 000053E7 Window_pa | 00005574 Root_pain - 000055AB Window_ad | 000055B9 Window_ne | 0000560B Button_ha - 000056C2 Button_dr | 0000577E Button_pa | 00005877 Button_ad - 0000587D Button_ne | 000058CF ToggleBut | 0000596B ToggleBut - 00005A57 ToggleBut | 00005AA9 Dialog_ha | 00005B62 Dialog_ne - 00005C51 Display_h | 00005CD2 Display_p | 00005E1E Display_n - 00005E78 Label_han | 00005E7E Label_pai | 00005EDF Label_new - 00005F38 rootWindo | 00005F56 screenbui | 00006326 root_acti - 0000665E read_stri | 00006733 gui_globa | 00006739 GUIinit - 00006860 GUIunit | 00006885 GUIgo | 00006946 Transacti - 000069BB Transacti | 00006FDD main | 0000701B sprintf - 0000705F fflush | 00007272 _write | 00007291 printf - 000072C0 lseek | 000072ED __stdio_c | 00007358 __stdio_i - 00007396 close | 000073AB strlen | 000073E2 ioctl - 0000740D isatty | 00007448 fstat | 0000745F free - 0000753F strcpy | 00007566 atoi | 000076FC vfprintf - 00007C57 ltoa | 00007CBA atol | 00007CD0 __longtoa - 00007E64 itoa | 00007ECD open | 00014000 malloc - 0001422C exit | 0001425C _read | 0001427B unix - 00014295 memcpy | 00014363 on_exit | 000143DC atexit - 000143EF strcat | 0001440F unix_long | 00014429 _exit - 0001443E fputc | 00014550 ultoa | 000145A5 strtol - 0001464D sbrk | 000146E8 strtoul | 0001483F toupper - 00014864 tolower + 0000465A SetCurren | 00004675 GraphicsO | 00004793 GraphicsC + 000047B8 Move | 000047F3 ClearRect | 00004833 DrawRectN + 00004872 FillRect | 000048B4 FillRectN | 000048F6 GrayRect + 00004938 Text | 0000495B TouchRegi | 000049B2 ClearScre + 000049EF EnableScr | 00004A2D grSetFont | 00004A6A fontSearc + 00004A9A setCurren | 00004B1C loadFont | 00004BC3 stringwid + 00004C3C stringhei | 00004C59 stringhei | 00004C6C stringhei + 00004C75 stringwid | 00004C86 stringwid | 00004C8F stringwid + 00004C98 Component | 00004D42 Component | 00004D8F Component + 00004DED Component | 00004E33 Component | 00004E77 Component + 00004EAF Component | 00005080 Component | 0000509F Component + 00005108 Component | 000051BB Window_ha | 00005488 Window_pa + 00005626 Root_pain | 0000565D Window_ad | 0000566B Window_ne + 000056BA Button_ha | 00005771 Button_dr | 00005814 Button_pa + 000058E7 Button_ad | 000058ED Button_ne | 0000594A ToggleBut + 000059E6 ToggleBut | 00005AD2 ToggleBut | 00005B2F Dialog_ha + 00005BE8 Dialog_ne | 00005CF8 Display_h | 00005D79 Display_p + 00005E9D Display_n | 00005EFC Label_han | 00005F02 Label_pai + 00005F63 Label_new | 00005FC7 rootWindo | 00005FE5 screenbui + 000063D2 root_acti | 00006721 read_stri | 000067FB gui_globa + 00006801 GUIinit | 00006928 GUIunit | 0000694D GUIgo + 00006B10 Transacti | 00006B85 Transacti | 00007107 main + 00007150 sprintf | 00007194 fflush | 000073A7 chdir + 000073BC _write | 000073DB lseek | 00007408 __stdio_c + 00007473 __stdio_i | 000074B1 close | 000074C6 strlen + 000074FD ioctl | 00007528 isatty | 00007563 fstat + 0000757A free | 0000765A strcpy | 00007681 atoi + 00007817 vfprintf | 00007D72 ltoa | 00007DD5 atol + 00007DEB __longtoa | 00007F7F itoa | 00014000 open + 0001402B malloc | 00014257 exit | 00014287 _read + 000142A6 unix | 000142C0 memcpy | 0001438E on_exit + 00014407 atexit | 0001441A strcat | 0001443A unix_long + 00014454 _exit | 00014469 fputc | 0001457B ultoa + 000145D0 strtol | 00014678 sbrk | 00014713 strtoul + 0001486A toupper | 0001488F tolower Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -UDATA0 00008734 00000247 = 583. bytes (REL,CON) +UDATA0 00008746 00000247 = 583. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ - 00008734 _argc | 00008736 _argv | 00008738 environ - 0000873A errno | 0000873C __cleanup | 0000873F global - 00008741 trans | 00008943 __malloc_ | 00008947 __malloc_ - 00008949 __on_exit + 00008746 _argc | 00008748 _argv | 0000874A environ + 0000874C errno | 0000874E __cleanup | 00008751 global + 00008753 trans | 00008955 __malloc_ | 00008959 __malloc_ + 0000895B __on_exit Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------- ---- ---- ------- ----- ------------ -CSTACK 0000897B 00001000 = 4096. bytes (REL,CON) +CSTACK 0000898D 00001000 = 4096. bytes (REL,CON) Value Global Value Global Value Global ----- ------ ----- ------ ----- ------ @@ -175,9 +175,9 @@ Libraries Linked [ object file ] ..\..\lib\libiar.lib [ reliar\LMUL.rel ] ..\..\lib\libiar.lib [ reliar\BANKLEAVEDIRECT.rel ] ..\..\lib\libcb.lib [ relcb\fflush.rel ] +..\..\lib\libsysb.lib [ relsysb\chdir.rel ] ..\..\lib\libsysb.lib [ relsysb\write.rel ] ..\..\lib\libiar.lib [ reliar\SMUL.rel ] -..\..\lib\libcb.lib [ relcb\printf.rel ] ..\..\lib\libsysb.lib [ relsysb\lseek.rel ] ..\..\lib\libcb.lib [ relcb\stdio0.rel ] ..\..\lib\libsysb.lib [ relsysb\close.rel ] @@ -210,8 +210,8 @@ Libraries Linked [ object file ] ..\..\lib\libiar.lib [ reliar\SSDIV.rel ] ..\..\lib\libiar.lib [ reliar\USDIV.rel ] ..\..\lib\libiar.lib [ reliar\LIBVERSION.rel ] -..\..\lib\libcb.lib [ relcb\malloc.rel ] ..\..\lib\libiar.lib [ reliar\SLRSH.rel ] +..\..\lib\libcb.lib [ relcb\malloc.rel ] ..\..\lib\libcb.lib [ relcb\exit.rel ] ..\..\lib\libiar.lib [ reliar\LDIVMOD.rel ] ..\..\lib\libsysb.lib [ relsysb\read.rel ] diff --git a/src/gui/test.rel b/src/gui/test.rel index 3862ba0b..b02d92ae 100644 --- a/src/gui/test.rel +++ b/src/gui/test.rel @@ -1,9 +1,10 @@ XL4 -H 3 areas B global symbols +H 3 areas C global symbols M test S GUIunit Ref00000000 S ?BANK_FAST_LEAVE_L08 Ref00000000 S gui_globals Ref00000000 +S chdir Ref00000000 S GUIgo Ref00000000 S ?BANK_CALL_DIRECT_L08 Ref00000000 S Transaction_handler Ref00000000 @@ -12,36 +13,44 @@ S Transaction_init Ref00000000 S GUIinit Ref00000000 S .__.ABS. Def00000000 A _DEFAULT size 0 flags 0 -A CODE size 3E flags 0 +A CODE size 49 flags 0 S main Def00000000 -A CSTR size E flags 0 +A CSTR size 13 flags 0 T 00 00 00 00 R 00 00 01 00 T 00 00 00 00 C5 D5 3E 00 00 00 00 21 -R 00 00 01 00 2B 07 08 00 +R 00 00 01 00 2B 07 09 00 T 05 00 00 00 00 00 00 00 CD 00 00 00 00 3E -R 00 00 01 00 02 04 08 00 02 09 04 00 +R 00 00 01 00 02 04 09 00 02 09 05 00 T 0B 00 00 00 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 04 07 00 02 09 07 00 +R 00 00 01 00 2B 04 08 00 02 09 08 00 T 10 00 00 00 00 00 00 00 3E 00 00 00 00 21 -R 00 00 01 00 02 04 04 00 2B 09 02 00 +R 00 00 01 00 02 04 05 00 2B 09 02 00 T 15 00 00 00 00 00 00 00 CD 00 00 00 00 01 -R 00 00 01 00 02 04 02 00 02 09 04 00 -T 1B 00 00 00 10 00 09 36 00 00 00 00 23 36 -R 00 00 01 00 0B 08 05 00 +R 00 00 01 00 02 04 02 00 02 09 05 00 +T 1B 00 00 00 18 00 09 36 00 00 00 00 23 36 +R 00 00 01 00 0B 08 06 00 T 22 00 00 00 00 00 00 00 23 36 00 00 00 00 11 -R 00 00 01 00 8B 04 05 00 2B 0A 05 00 +R 00 00 01 00 8B 04 06 00 2B 0A 06 00 T 27 00 00 00 00 00 00 00 3E 00 00 00 00 21 R 00 00 01 00 00 04 02 00 2B 09 03 00 -T 2C 00 00 00 00 00 00 00 CD 00 00 00 00 3E -R 00 00 01 00 02 04 03 00 02 09 04 00 -T 32 00 00 00 00 00 00 00 21 00 00 00 00 CD +T 2C 00 00 00 00 00 00 00 CD 00 00 00 00 11 +R 00 00 01 00 02 04 03 00 02 09 05 00 +T 32 00 00 00 05 00 00 00 3E 00 00 00 00 21 +R 00 00 01 00 00 04 02 00 2B 09 04 00 +T 37 00 00 00 00 00 00 00 CD 00 00 00 00 3E +R 00 00 01 00 02 04 04 00 02 09 05 00 +T 3D 00 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 00 00 02 09 00 00 -T 37 00 00 00 00 00 00 00 D1 C1 C3 00 00 00 00 -R 00 00 01 00 02 04 04 00 02 0B 01 00 +T 42 00 00 00 00 00 00 00 D1 C1 C3 00 00 00 00 +R 00 00 01 00 02 04 05 00 02 0B 01 00 T 00 00 00 00 R 00 00 02 00 -T 00 00 00 00 2F 77 6E 64 2F 30 30 30 30 2E 73 +T 00 00 00 00 2F 77 6E 64 00 R 00 00 02 00 -T 0B 00 00 00 63 72 00 +T 05 00 00 00 +R 00 00 02 00 +T 05 00 00 00 2F 77 6E 64 2F 30 30 30 30 2E 73 +R 00 00 02 00 +T 10 00 00 00 63 72 00 R 00 00 02 00 diff --git a/src/gui/test.rst b/src/gui/test.rst index f7c0a8a2..b2e4aaa0 100644 --- a/src/gui/test.rst +++ b/src/gui/test.rst @@ -6,57 +6,66 @@ 6 EXTERN GUIunit 7 EXTERN Transaction_handler 8 EXTERN Transaction_init - 9 EXTERN gui_globals - 10 PUBLIC main - 11 EXTERN ?CL64180B_4_06_L00 - 12 EXTERN ?BANK_CALL_DIRECT_L08 - 13 EXTERN ?BANK_FAST_LEAVE_L08 - 14 RSEG CODE - 00006FDD 15 main: - 00006FDD C5 16 PUSH BC - 00006FDE D5 17 PUSH DE - 00006FDF 3E 00 18 LD A,BYTE3 GUIinit - 00006FE1 21 39 67 19 LD HL,LWRD GUIinit - 00006FE4 CD FB 81 20 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006FE7 3E 00 21 LD A,BYTE3 Transaction_init - 00006FE9 21 46 69 22 LD HL,LWRD Transaction_init - 00006FEC CD FB 81 23 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006FEF 3E 00 24 LD A,BYTE3 gui_globals - 00006FF1 21 33 67 25 LD HL,LWRD gui_globals - 00006FF4 CD FB 81 26 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006FF7 01 10 00 27 LD BC,16 - 00006FFA 09 28 ADD HL,BC - 00006FFB 36 BB 29 LD (HL),LOW(Transaction_handler) - 00006FFD 23 30 INC HL - 00006FFE 36 69 31 LD (HL),HIGH(Transaction_handler) - 00007000 23 32 INC HL - 00007001 36 00 33 LD (HL),BYTE3 Transaction_handler - 00007003 11 B4 85 34 LD DE,?0000 - 00007006 3E 00 35 LD A,BYTE3 GUIgo - 00007008 21 85 68 36 LD HL,LWRD GUIgo - 0000700B CD FB 81 37 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000700E 3E 00 38 LD A,BYTE3 GUIunit - 00007010 21 60 68 39 LD HL,LWRD GUIunit - 00007013 CD FB 81 40 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00007016 D1 41 POP DE - 00007017 C1 42 POP BC - 00007018 C3 A9 81 43 JP LWRD ?BANK_FAST_LEAVE_L08 - 44 RSEG CSTR - 000085B4 45 ?0000: - 000085B4 2F 77 6E 64 2F 30 30 46 DEFB '/wnd/0000.scr' + 9 EXTERN chdir + 10 EXTERN gui_globals + 11 PUBLIC main + 12 EXTERN ?CL64180B_4_06_L00 + 13 EXTERN ?BANK_CALL_DIRECT_L08 + 14 EXTERN ?BANK_FAST_LEAVE_L08 + 15 RSEG CODE + 00007107 16 main: + 00007107 C5 17 PUSH BC + 00007108 D5 18 PUSH DE + 00007109 3E 00 19 LD A,BYTE3 GUIinit + 0000710B 21 01 68 20 LD HL,LWRD GUIinit + 0000710E CD FB 81 21 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007111 3E 00 22 LD A,BYTE3 Transaction_init + 00007113 21 10 6B 23 LD HL,LWRD Transaction_init + 00007116 CD FB 81 24 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007119 3E 00 25 LD A,BYTE3 gui_globals + 0000711B 21 FB 67 26 LD HL,LWRD gui_globals + 0000711E CD FB 81 27 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007121 01 18 00 28 LD BC,24 + 00007124 09 29 ADD HL,BC + 00007125 36 85 30 LD (HL),LOW(Transaction_handler) + 00007127 23 31 INC HL + 00007128 36 6B 32 LD (HL),HIGH(Transaction_handler) + 0000712A 23 33 INC HL + 0000712B 36 00 34 LD (HL),BYTE3 Transaction_handler + 0000712D 11 C1 85 35 LD DE,?0000 + 00007130 3E 00 36 LD A,BYTE3 chdir + 00007132 21 A7 73 37 LD HL,LWRD chdir + 00007135 CD FB 81 38 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007138 11 C6 85 39 LD DE,?0001 + 0000713B 3E 00 40 LD A,BYTE3 GUIgo + 0000713D 21 4D 69 41 LD HL,LWRD GUIgo + 00007140 CD FB 81 42 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00007143 3E 00 43 LD A,BYTE3 GUIunit + 00007145 21 28 69 44 LD HL,LWRD GUIunit + 00007148 CD FB 81 45 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000714B D1 46 POP DE + 0000714C C1 47 POP BC + 0000714D C3 A9 81 48 JP LWRD ?BANK_FAST_LEAVE_L08 + 49 RSEG CSTR + 000085C1 50 ?0000: + 000085C1 2F 77 6E 64 51 DEFB '/wnd' + 000085C5 00 52 DEFB 0 + 000085C6 53 ?0001: + 000085C6 2F 77 6E 64 2F 30 30 54 DEFB '/wnd/0000.scr' 30 30 2E 73 63 72 - 000085C1 00 47 DEFB 0 - 0000000E 48 END + 000085D3 00 55 DEFB 0 + 00000013 56 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] Symbol Table .__.ABS. = 00000000 G | 2 ?0000 00000000 R - ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX - ?CL64180B_4_06 ******** GX | GUIgo ******** GX - GUIinit ******** GX | GUIunit ******** GX - Transaction_ha ******** GX | Transaction_in ******** GX + 2 ?0001 00000005 R | ?BANK_CALL_DIR ******** GX + ?BANK_FAST_LEA ******** GX | ?CL64180B_4_06 ******** GX + GUIgo ******** GX | GUIinit ******** GX + GUIunit ******** GX | Transaction_ha ******** GX + Transaction_in ******** GX | chdir ******** GX gui_globals ******** GX | 1 main 00000000 GR ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. @@ -65,5 +74,5 @@ Hexadecimal [32-Bits] Area Table 0 _DEFAULT size 0 flags 0 - 1 CODE size 3E flags 0 - 2 CSTR size E flags 0 + 1 CODE size 49 flags 0 + 2 CSTR size 13 flags 0 diff --git a/src/gui/test.s01 b/src/gui/test.s01 index 48018bdc..03c70a84 100644 --- a/src/gui/test.s01 +++ b/src/gui/test.s01 @@ -6,6 +6,7 @@ EXTERN GUIunit EXTERN Transaction_handler EXTERN Transaction_init + EXTERN chdir EXTERN gui_globals PUBLIC main EXTERN ?CL64180B_4_06_L00 @@ -24,7 +25,7 @@ main: LD A,BYTE3 gui_globals LD HL,LWRD gui_globals CALL LWRD ?BANK_CALL_DIRECT_L08 - LD BC,16 + LD BC,24 ADD HL,BC LD (HL),LOW(Transaction_handler) INC HL @@ -32,6 +33,10 @@ main: INC HL LD (HL),BYTE3 Transaction_handler LD DE,?0000 + LD A,BYTE3 chdir + LD HL,LWRD chdir + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD DE,?0001 LD A,BYTE3 GUIgo LD HL,LWRD GUIgo CALL LWRD ?BANK_CALL_DIRECT_L08 @@ -43,6 +48,9 @@ main: JP LWRD ?BANK_FAST_LEAVE_L08 RSEG CSTR ?0000: + DEFB '/wnd' + DEFB 0 +?0001: DEFB '/wnd/0000.scr' DEFB 0 END diff --git a/src/gui/trans.c b/src/gui/trans.c index c41491a0..c7ec75a0 100644 --- a/src/gui/trans.c +++ b/src/gui/trans.c @@ -28,7 +28,7 @@ void Transaction_handler(struct Component* this){ Transaction_init(); } - if(act->action==0x1000) /* Transaction module init*/ + /*if(act->action==0x1000) Transaction module init { trans->barcode=act->lParam & 0xff; trans->stuks=(act->lParam>>8) & 0xff; @@ -36,7 +36,7 @@ void Transaction_handler(struct Component* this){ Component_setlabel(Component_find(this,trans->barcode),"Barcode"); Component_setlabel(Component_find(this,trans->stuks),"Stuks"); Component_setlabel(Component_find(this,trans->prijs),"Prijs"); - } + }*/ if(act->action>=0x1010 && act->action<=0x1012){ struct Component* display; @@ -51,8 +51,10 @@ void Transaction_handler(struct Component* this){ case 0x1010: strcpy(tr->barcode,this->label); break; - case 0x1011: + case 0x1011: tr->stuks=atoi(this->label); + if(tr->stuks==0) + tr->stuks=1; break; case 0x1012: tr->prijs=atol(this->label); @@ -61,7 +63,7 @@ void Transaction_handler(struct Component* this){ this->paint(this); } - if(act->action==0x101e){ + if(act->action==0x101e){ /* Print receipt */ int prn,i; struct sgttyb temp; struct Transaction* tr; @@ -101,7 +103,7 @@ void Transaction_handler(struct Component* this){ } - if(act->action==0x101f){ + if(act->action==0x101f){ /* Register transaction line*/ struct Transaction* tr=trans->first; while(tr->next!=NULL) tr=tr->next; diff --git a/src/gui/trans.lst b/src/gui/trans.lst index 44587233..d6d49a58 100644 --- a/src/gui/trans.lst +++ b/src/gui/trans.lst @@ -35,12 +35,12 @@ 00000000 C5 35 PUSH BC 00000001 D5 36 PUSH DE 00000002 11 08 00 37 LD DE,8 - 00000005 CD 6D 00 38 CALL LWRD ?0046 + 00000005 CD 6D 00 38 CALL LWRD ?0045 00000008 22 00 00 39 LD (trans),HL 0000000B 01 06 00 40 LD BC,6 0000000E 09 41 ADD HL,BC 0000000F E5 42 PUSH HL - 00000010 CD 6A 00 43 CALL LWRD ?0047 + 00000010 CD 6A 00 43 CALL LWRD ?0046 00000013 4D 44 LD C,L 00000014 44 45 LD B,H 00000015 E1 46 POP HL @@ -100,9 +100,9 @@ 00000065 D1 100 POP DE 00000066 C1 101 POP BC 00000067 C3 00 00 102 JP LWRD ?BANK_FAST_LEAVE_L08 - 0000006A 103 ?0047: + 0000006A 103 ?0046: 0000006A 11 16 00 104 LD DE,22 - 0000006D 105 ?0046: + 0000006D 105 ?0045: 0000006D 3E 00 106 LD A,BYTE3 malloc 0000006F 21 00 00 107 LD HL,LWRD malloc 00000072 C3 00 00 108 JP LWRD ?BANK_CALL_DIRECT_L08 @@ -133,976 +133,882 @@ 000000A2 23 133 INC HL 000000A3 23 134 INC HL 000000A4 23 135 INC HL - 000000A5 3E 10 136 LD A,16 - 000000A7 23 137 INC HL - 000000A8 AE 138 XOR (HL) - 000000A9 2B 139 DEC HL - 000000AA B6 140 OR (HL) - 000000AB 20 64 141 JR NZ,?0003 - 000000AD 142 ?0002: - 000000AD 21 07 00 143 LD HL,7 - 000000B0 48 144 LD C,B - 000000B1 DD 46 9F 145 LD B,(IX-97) - 000000B4 09 146 ADD HL,BC - 000000B5 6E 147 LD L,(HL) - 000000B6 67 148 LD H,A - 000000B7 E5 149 PUSH HL - 000000B8 2A 00 00 150 LD HL,(trans) - 000000BB C1 151 POP BC - 000000BC 71 152 LD (HL),C - 000000BD 23 153 INC HL - 000000BE 70 154 LD (HL),B - 000000BF 2A 00 00 155 LD HL,(trans) - 000000C2 23 156 INC HL - 000000C3 23 157 INC HL - 000000C4 E5 158 PUSH HL - 000000C5 CD D7 05 159 CALL LWRD ?0048 - 000000C8 E1 160 POP HL - 000000C9 71 161 LD (HL),C - 000000CA 23 162 INC HL - 000000CB 70 163 LD (HL),B - 000000CC 21 04 00 164 LD HL,4 - 000000CF ED 4B 00 00 165 LD BC,(trans) - 000000D3 09 166 ADD HL,BC - 000000D4 E5 167 PUSH HL - 000000D5 21 07 00 168 LD HL,7 - 000000D8 DD 5E 9E 169 LD E,(IX-98) - 000000DB DD 56 9F 170 LD D,(IX-97) - 000000DE 19 171 ADD HL,DE - 000000DF 5E 172 LD E,(HL) - 000000E0 23 173 INC HL - 000000E1 56 174 LD D,(HL) - 000000E2 23 175 INC HL - 000000E3 4E 176 LD C,(HL) - 000000E4 23 177 INC HL - 000000E5 46 178 LD B,(HL) - 000000E6 EB 179 EX DE,HL - 000000E7 3E 10 180 LD A,16 - 000000E9 CD EB 05 181 CALL LWRD ?0049 - 000000EC E1 182 POP HL - 000000ED 71 183 LD (HL),C - 000000EE 23 184 INC HL - 000000EF 70 185 LD (HL),B - 000000F0 2A 00 00 186 LD HL,(trans) - 000000F3 4E 187 LD C,(HL) - 000000F4 23 188 INC HL - 000000F5 46 189 LD B,(HL) - 000000F6 DD 5E 02 190 LD E,(IX+2) - 000000F9 DD 56 03 191 LD D,(IX+3) - 000000FC CD 12 06 192 CALL LWRD ?0051 - 000000FF DD 5E 02 193 LD E,(IX+2) - 00000102 DD 56 03 194 LD D,(IX+3) - 00000105 CD F2 05 195 CALL LWRD ?0050 - 00000108 DD 5E 02 196 LD E,(IX+2) - 0000010B DD 56 03 197 LD D,(IX+3) - 0000010E CD 2F 06 198 CALL LWRD ?0052 - 00000111 199 ?0003: - 00000111 DD 6E 9E 200 LD L,(IX-98) - 00000114 DD 66 9F 201 LD H,(IX-97) - 00000117 23 202 INC HL - 00000118 23 203 INC HL - 00000119 23 204 INC HL - 0000011A 46 205 LD B,(HL) - 0000011B 23 206 INC HL - 0000011C 66 207 LD H,(HL) - 0000011D 68 208 LD L,B - 0000011E 01 10 90 209 LD BC,36880 - 00000121 3E 80 210 LD A,128 - 00000123 AC 211 XOR H - 00000124 67 212 LD H,A - 00000125 ED 42 213 SBC HL,BC - 00000127 DA 56 02 214 JP C,?0008 - 0000012A DD 6E 9E 215 LD L,(IX-98) - 0000012D DD 66 9F 216 LD H,(IX-97) - 00000130 23 217 INC HL - 00000131 23 218 INC HL - 00000132 23 219 INC HL - 00000133 4E 220 LD C,(HL) - 00000134 23 221 INC HL - 00000135 46 222 LD B,(HL) - 00000136 21 12 10 223 LD HL,4114 - 00000139 CD 00 00 224 CALL LWRD ?SS_CMP_L02 - 0000013C DA 56 02 225 JP C,?0008 - 0000013F 226 ?0010: - 0000013F 227 ?0009: - 0000013F 228 ?0007: - 0000013F 21 06 00 229 LD HL,6 - 00000142 ED 4B 00 00 230 LD BC,(trans) - 00000146 09 231 ADD HL,BC - 00000147 46 232 LD B,(HL) - 00000148 23 233 INC HL - 00000149 66 234 LD H,(HL) - 0000014A 68 235 LD L,B - 0000014B 236 ?0041: - 0000014B DD 75 A2 237 LD (IX-94),L - 0000014E DD 74 A3 238 LD (IX-93),H - 00000151 239 ?0012: - 00000151 21 14 00 240 LD HL,20 - 00000154 DD 4E A2 241 LD C,(IX-94) - 00000157 DD 46 A3 242 LD B,(IX-93) - 0000015A 09 243 ADD HL,BC - 0000015B 7E 244 LD A,(HL) - 0000015C 23 245 INC HL - 0000015D B6 246 OR (HL) - 0000015E 28 0A 247 JR Z,?0011 - 00000160 248 ?0013: - 00000160 21 14 00 249 LD HL,20 - 00000163 09 250 ADD HL,BC - 00000164 56 251 LD D,(HL) - 00000165 23 252 INC HL - 00000166 66 253 LD H,(HL) - 00000167 6A 254 LD L,D - 00000168 18 E1 255 JR ?0041 - 0000016A 256 ?0011: - 0000016A 21 05 00 257 LD HL,5 - 0000016D DD 4E 9E 258 LD C,(IX-98) - 00000170 DD 46 9F 259 LD B,(IX-97) - 00000173 09 260 ADD HL,BC - 00000174 4E 261 LD C,(HL) - 00000175 23 262 INC HL - 00000176 46 263 LD B,(HL) - 00000177 21 11 00 264 LD HL,17 - 0000017A DD 5E 02 265 LD E,(IX+2) - 0000017D DD 56 03 266 LD D,(IX+3) - 00000180 19 267 ADD HL,DE - 00000181 5E 268 LD E,(HL) - 00000182 23 269 INC HL - 00000183 56 270 LD D,(HL) - 00000184 3E 00 271 LD A,BYTE3 Component_find - 00000186 21 00 00 272 LD HL,LWRD Component_find - 00000189 CD 00 00 273 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000018C DD 75 A0 274 LD (IX-96),L - 0000018F DD 74 A1 275 LD (IX-95),H - 00000192 01 20 00 276 LD BC,32 - 00000195 09 277 ADD HL,BC - 00000196 4E 278 LD C,(HL) - 00000197 23 279 INC HL - 00000198 46 280 LD B,(HL) - 00000199 DD 5E 02 281 LD E,(IX+2) - 0000019C DD 56 03 282 LD D,(IX+3) - 0000019F 3E 00 283 LD A,BYTE3 Component_setlabel - 000001A1 21 00 00 284 LD HL,LWRD Component_setlabel - 000001A4 CD 00 00 285 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001A7 01 14 00 286 LD BC,?0014 - 000001AA DD 5E A0 287 LD E,(IX-96) - 000001AD DD 56 A1 288 LD D,(IX-95) - 000001B0 3E 00 289 LD A,BYTE3 Component_setlabel - 000001B2 21 00 00 290 LD HL,LWRD Component_setlabel - 000001B5 CD 00 00 291 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001B8 DD 5E A0 292 LD E,(IX-96) - 000001BB 4B 293 LD C,E - 000001BC DD 56 A1 294 LD D,(IX-95) - 000001BF CD 43 06 295 CALL LWRD ?0053 - 000001C2 DD 6E 9E 296 LD L,(IX-98) - 000001C5 DD 66 9F 297 LD H,(IX-97) - 000001C8 23 298 INC HL - 000001C9 23 299 INC HL - 000001CA 23 300 INC HL - 000001CB 5E 301 LD E,(HL) - 000001CC 23 302 INC HL - 000001CD 56 303 LD D,(HL) - 000001CE CD 00 00 304 CALL LWRD ?S_S_SWITCH_L06 - 000001D1 10 10 305 DEFW 4112 - 000001D3 03 00 306 DEFW 3 - 000001D5 4C 02 307 DEFW ?0015 - 000001D7 DD 01 308 DEFW ?0016 - 000001D9 FA 01 309 DEFW ?0017 - 000001DB 1F 02 310 DEFW ?0018 - 000001DD 311 ?0016: - 000001DD 21 20 00 312 LD HL,32 - 000001E0 DD 4E 02 313 LD C,(IX+2) - 000001E3 DD 46 03 314 LD B,(IX+3) - 000001E6 09 315 ADD HL,BC - 000001E7 4E 316 LD C,(HL) - 000001E8 23 317 INC HL - 000001E9 46 318 LD B,(HL) - 000001EA DD 5E A2 319 LD E,(IX-94) - 000001ED DD 56 A3 320 LD D,(IX-93) - 000001F0 3E 00 321 LD A,BYTE3 strcpy - 000001F2 21 00 00 322 LD HL,LWRD strcpy - 000001F5 CD 00 00 323 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001F8 18 52 324 JR ?0015 - 000001FA 325 ?0017: - 000001FA 21 0E 00 326 LD HL,14 - 000001FD DD 4E A2 327 LD C,(IX-94) - 00000200 DD 46 A3 328 LD B,(IX-93) - 00000203 09 329 ADD HL,BC - 00000204 E5 330 PUSH HL - 00000205 21 20 00 331 LD HL,32 - 00000208 DD 4E 02 332 LD C,(IX+2) - 0000020B DD 46 03 333 LD B,(IX+3) - 0000020E 09 334 ADD HL,BC - 0000020F 5E 335 LD E,(HL) - 00000210 23 336 INC HL - 00000211 56 337 LD D,(HL) - 00000212 3E 00 338 LD A,BYTE3 atoi - 00000214 21 00 00 339 LD HL,LWRD atoi - 00000217 CD 00 00 340 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000021A 4D 341 LD C,L - 0000021B 44 342 LD B,H - 0000021C E1 343 POP HL - 0000021D 18 2A 344 JR ?0042 - 0000021F 345 ?0018: - 0000021F 21 20 00 346 LD HL,32 - 00000222 DD 4E 02 347 LD C,(IX+2) - 00000225 DD 46 03 348 LD B,(IX+3) - 00000228 09 349 ADD HL,BC - 00000229 5E 350 LD E,(HL) - 0000022A 23 351 INC HL - 0000022B 56 352 LD D,(HL) - 0000022C 3E 00 353 LD A,BYTE3 atol - 0000022E 21 00 00 354 LD HL,LWRD atol - 00000231 CD 00 00 355 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000234 7C 356 LD A,H - 00000235 07 357 RLCA - 00000236 9F 358 SBC A,A - 00000237 4F 359 LD C,A - 00000238 41 360 LD B,C - 00000239 E5 361 PUSH HL - 0000023A 21 10 00 362 LD HL,16 - 0000023D DD 5E A2 363 LD E,(IX-94) - 00000240 DD 56 A3 364 LD D,(IX-93) - 00000243 19 365 ADD HL,DE - 00000244 D1 366 POP DE - 00000245 73 367 LD (HL),E - 00000246 23 368 INC HL - 00000247 72 369 LD (HL),D - 00000248 23 370 INC HL - 00000249 371 ?0042: - 00000249 71 372 LD (HL),C - 0000024A 23 373 INC HL - 0000024B 70 374 LD (HL),B - 0000024C 375 ?0015: - 0000024C DD 5E 02 376 LD E,(IX+2) - 0000024F 4B 377 LD C,E - 00000250 DD 56 03 378 LD D,(IX+3) - 00000253 CD 43 06 379 CALL LWRD ?0053 - 00000256 380 ?0008: - 00000256 DD 6E 9E 381 LD L,(IX-98) - 00000259 DD 66 9F 382 LD H,(IX-97) - 0000025C 23 383 INC HL - 0000025D 23 384 INC HL - 0000025E 23 385 INC HL - 0000025F 46 386 LD B,(HL) - 00000260 23 387 INC HL - 00000261 66 388 LD H,(HL) - 00000262 68 389 LD L,B - 00000263 01 1E 10 390 LD BC,4126 - 00000266 A7 391 AND A - 00000267 ED 42 392 SBC HL,BC - 00000269 C2 B3 04 393 JP NZ,?0020 - 0000026C 394 ?0019: - 0000026C AF 395 XOR A - 0000026D DD 77 AC 396 LD (IX-84),A - 00000270 DD 77 AD 397 LD (IX-83),A - 00000273 DD 77 AE 398 LD (IX-82),A - 00000276 DD 77 AF 399 LD (IX-81),A - 00000279 21 06 00 400 LD HL,6 - 0000027C ED 4B 00 00 401 LD BC,(trans) - 00000280 09 402 ADD HL,BC - 00000281 46 403 LD B,(HL) - 00000282 23 404 INC HL - 00000283 66 405 LD H,(HL) - 00000284 68 406 LD L,B - 00000285 E5 407 PUSH HL - 00000286 FD E1 408 POP IY - 00000288 21 01 00 409 LD HL,1 - 0000028B E5 410 PUSH HL - 0000028C 21 15 00 411 LD HL,?0021 - 0000028F E5 412 PUSH HL - 00000290 3E 00 413 LD A,BYTE3 open - 00000292 21 00 00 414 LD HL,LWRD open - 00000295 CD 00 00 415 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000298 F1 416 POP AF - 00000299 F1 417 POP AF - 0000029A DD 75 A0 418 LD (IX-96),L - 0000029D DD 74 A1 419 LD (IX-95),H - 000002A0 21 08 00 420 LD HL,8 - 000002A3 39 421 ADD HL,SP - 000002A4 E5 422 PUSH HL - 000002A5 21 00 00 423 LD HL,0 - 000002A8 E5 424 PUSH HL - 000002A9 DD 6E A0 425 LD L,(IX-96) - 000002AC DD 66 A1 426 LD H,(IX-95) - 000002AF E5 427 PUSH HL - 000002B0 3E 00 428 LD A,BYTE3 ioctl - 000002B2 21 00 00 429 LD HL,LWRD ioctl - 000002B5 CD 00 00 430 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000002B8 F1 431 POP AF - 000002B9 F1 432 POP AF - 000002BA F1 433 POP AF - 000002BB DD 36 A8 60 434 LD (IX-88),96 - 000002BF DD 36 A9 00 435 LD (IX-87),0 - 000002C3 21 08 00 436 LD HL,8 - 000002C6 39 437 ADD HL,SP - 000002C7 E5 438 PUSH HL - 000002C8 21 01 00 439 LD HL,1 - 000002CB E5 440 PUSH HL - 000002CC DD 6E A0 441 LD L,(IX-96) - 000002CF DD 66 A1 442 LD H,(IX-95) - 000002D2 E5 443 PUSH HL - 000002D3 3E 00 444 LD A,BYTE3 ioctl - 000002D5 21 00 00 445 LD HL,LWRD ioctl - 000002D8 CD 00 00 446 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000002DB F1 447 POP AF - 000002DC F1 448 POP AF - 000002DD F1 449 POP AF - 000002DE 450 ?0023: - 000002DE FD E5 451 PUSH IY - 000002E0 E1 452 POP HL - 000002E1 7D 453 LD A,L - 000002E2 B4 454 OR H - 000002E3 CA C8 03 455 JP Z,?0022 - 000002E6 456 ?0024: - 000002E6 FD 7E 0E 457 LD A,(IY+14) - 000002E9 FD B6 0F 458 OR (IY+15) - 000002EC CA BC 03 459 JP Z,?0026 - 000002EF 460 ?0025: - 000002EF 3E 01 461 LD A,1 - 000002F1 FD AE 0E 462 XOR (IY+14) - 000002F4 FD B6 0F 463 OR (IY+15) - 000002F7 20 29 464 JR NZ,?0028 - 000002F9 465 ?0027: - 000002F9 6F 466 LD L,A - 000002FA 67 467 LD H,A - 000002FB E5 468 PUSH HL - 000002FC 2E 64 469 LD L,100 - 000002FE E5 470 PUSH HL - 000002FF CD 5A 06 471 CALL LWRD ?0056 - 00000302 C5 472 PUSH BC - 00000303 E5 473 PUSH HL - 00000304 6F 474 LD L,A - 00000305 67 475 LD H,A - 00000306 E5 476 PUSH HL - 00000307 2E 64 477 LD L,100 - 00000309 E5 478 PUSH HL - 0000030A CD 69 06 479 CALL LWRD ?0057 - 0000030D C5 480 PUSH BC - 0000030E E5 481 PUSH HL - 0000030F FD E5 482 PUSH IY - 00000311 21 22 00 483 LD HL,?0029 - 00000314 E5 484 PUSH HL - 00000315 21 20 00 485 LD HL,32 - 00000318 39 486 ADD HL,SP - 00000319 E5 487 PUSH HL - 0000031A CD 52 06 488 CALL LWRD ?0055 - 0000031D 21 0E 00 489 LD HL,14 - 00000320 18 68 490 JR ?0043 - 00000322 491 ?0028: - 00000322 21 00 00 492 LD HL,0 - 00000325 E5 493 PUSH HL - 00000326 2E 64 494 LD L,100 - 00000328 E5 495 PUSH HL - 00000329 FD 6E 0E 496 LD L,(IY+14) - 0000032C FD 66 0F 497 LD H,(IY+15) - 0000032F 7C 498 LD A,H - 00000330 07 499 RLCA - 00000331 9F 500 SBC A,A - 00000332 4F 501 LD C,A - 00000333 41 502 LD B,C - 00000334 C5 503 PUSH BC - 00000335 E5 504 PUSH HL - 00000336 CD 78 06 505 CALL LWRD ?0058 - 00000339 CD 00 00 506 CALL LWRD ?SL_MOD_L03 - 0000033C C5 507 PUSH BC - 0000033D E5 508 PUSH HL - 0000033E 21 00 00 509 LD HL,0 - 00000341 E5 510 PUSH HL - 00000342 2E 64 511 LD L,100 - 00000344 E5 512 PUSH HL - 00000345 FD 6E 0E 513 LD L,(IY+14) - 00000348 FD 66 0F 514 LD H,(IY+15) - 0000034B 7C 515 LD A,H - 0000034C 07 516 RLCA - 0000034D 9F 517 SBC A,A - 0000034E 4F 518 LD C,A - 0000034F 41 519 LD B,C - 00000350 C5 520 PUSH BC - 00000351 E5 521 PUSH HL - 00000352 CD 78 06 522 CALL LWRD ?0058 - 00000355 CD 00 00 523 CALL LWRD ?SL_DIV_L03 - 00000358 C5 524 PUSH BC - 00000359 E5 525 PUSH HL - 0000035A 21 00 00 526 LD HL,0 - 0000035D E5 527 PUSH HL - 0000035E 2E 64 528 LD L,100 - 00000360 E5 529 PUSH HL - 00000361 CD 5A 06 530 CALL LWRD ?0056 - 00000364 C5 531 PUSH BC - 00000365 E5 532 PUSH HL - 00000366 21 00 00 533 LD HL,0 - 00000369 E5 534 PUSH HL - 0000036A 2E 64 535 LD L,100 - 0000036C E5 536 PUSH HL - 0000036D CD 69 06 537 CALL LWRD ?0057 - 00000370 C5 538 PUSH BC - 00000371 E5 539 PUSH HL - 00000372 FD 6E 0E 540 LD L,(IY+14) - 00000375 FD 66 0F 541 LD H,(IY+15) - 00000378 E5 542 PUSH HL - 00000379 FD E5 543 PUSH IY - 0000037B 21 45 00 544 LD HL,?0031 - 0000037E E5 545 PUSH HL - 0000037F 21 2A 00 546 LD HL,42 - 00000382 39 547 ADD HL,SP - 00000383 E5 548 PUSH HL - 00000384 CD 52 06 549 CALL LWRD ?0055 - 00000387 21 18 00 550 LD HL,24 - 0000038A 551 ?0043: - 0000038A 39 552 ADD HL,SP - 0000038B F9 553 LD SP,HL - 0000038C 554 ?0030: - 0000038C 21 10 00 555 LD HL,16 - 0000038F 39 556 ADD HL,SP - 00000390 E5 557 PUSH HL - 00000391 FD 5E 0E 558 LD E,(IY+14) - 00000394 FD 56 0F 559 LD D,(IY+15) - 00000397 7A 560 LD A,D - 00000398 07 561 RLCA - 00000399 9F 562 SBC A,A - 0000039A 4F 563 LD C,A - 0000039B 41 564 LD B,C - 0000039C C5 565 PUSH BC - 0000039D D5 566 PUSH DE - 0000039E CD 78 06 567 CALL LWRD ?0058 - 000003A1 EB 568 EX DE,HL - 000003A2 E1 569 POP HL - 000003A3 CD 00 00 570 CALL LWRD ?L_ADDASG_L03 - 000003A6 21 14 00 571 LD HL,20 - 000003A9 39 572 ADD HL,SP - 000003AA EB 573 EX DE,HL - 000003AB 3E 00 574 LD A,BYTE3 strlen - 000003AD 21 00 00 575 LD HL,LWRD strlen - 000003B0 CD 00 00 576 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000003B3 E5 577 PUSH HL - 000003B4 21 16 00 578 LD HL,22 - 000003B7 39 579 ADD HL,SP - 000003B8 CD 87 06 580 CALL LWRD ?0059 - 000003BB F1 581 POP AF - 000003BC 582 ?0026: - 000003BC FD 6E 14 583 LD L,(IY+20) - 000003BF FD 66 15 584 LD H,(IY+21) - 000003C2 E5 585 PUSH HL - 000003C3 FD E1 586 POP IY - 000003C5 C3 DE 02 587 JP LWRD ?0023 - 000003C8 588 ?0022: - 000003C8 6F 589 LD L,A - 000003C9 67 590 LD H,A - 000003CA E5 591 PUSH HL - 000003CB 2E 64 592 LD L,100 - 000003CD E5 593 PUSH HL - 000003CE DD 4E AE 594 LD C,(IX-82) - 000003D1 DD 46 AF 595 LD B,(IX-81) - 000003D4 DD 6E AC 596 LD L,(IX-84) - 000003D7 DD 66 AD 597 LD H,(IX-83) - 000003DA CD 00 00 598 CALL LWRD ?SL_MOD_L03 - 000003DD C5 599 PUSH BC - 000003DE E5 600 PUSH HL - 000003DF 6F 601 LD L,A - 000003E0 67 602 LD H,A - 000003E1 E5 603 PUSH HL - 000003E2 2E 64 604 LD L,100 - 000003E4 E5 605 PUSH HL - 000003E5 DD 4E AE 606 LD C,(IX-82) - 000003E8 DD 46 AF 607 LD B,(IX-81) - 000003EB DD 6E AC 608 LD L,(IX-84) - 000003EE DD 66 AD 609 LD H,(IX-83) - 000003F1 CD 00 00 610 CALL LWRD ?SL_DIV_L03 - 000003F4 C5 611 PUSH BC - 000003F5 E5 612 PUSH HL - 000003F6 21 14 00 613 LD HL,?0014 - 000003F9 E5 614 PUSH HL - 000003FA E5 615 PUSH HL - 000003FB 21 85 00 616 LD HL,?0032 - 000003FE E5 617 PUSH HL - 000003FF 21 22 00 618 LD HL,34 - 00000402 39 619 ADD HL,SP - 00000403 E5 620 PUSH HL - 00000404 CD 52 06 621 CALL LWRD ?0055 - 00000407 21 10 00 622 LD HL,16 - 0000040A 39 623 ADD HL,SP - 0000040B F9 624 LD SP,HL - 0000040C 21 14 00 625 LD HL,20 - 0000040F 39 626 ADD HL,SP - 00000410 EB 627 EX DE,HL - 00000411 3E 00 628 LD A,BYTE3 strlen - 00000413 21 00 00 629 LD HL,LWRD strlen - 00000416 CD 00 00 630 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000419 E5 631 PUSH HL - 0000041A 21 16 00 632 LD HL,22 - 0000041D 39 633 ADD HL,SP - 0000041E CD 87 06 634 CALL LWRD ?0059 - 00000421 F1 635 POP AF - 00000422 DD 5E A0 636 LD E,(IX-96) - 00000425 DD 56 A1 637 LD D,(IX-95) - 00000428 3E 00 638 LD A,BYTE3 close - 0000042A 21 00 00 639 LD HL,LWRD close - 0000042D CD 00 00 640 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000430 21 06 00 641 LD HL,6 - 00000433 ED 4B 00 00 642 LD BC,(trans) - 00000437 09 643 ADD HL,BC - 00000438 46 644 LD B,(HL) - 00000439 23 645 INC HL - 0000043A 66 646 LD H,(HL) - 0000043B 68 647 LD L,B - 0000043C 648 ?0044: - 0000043C E5 649 PUSH HL - 0000043D FD E1 650 POP IY - 0000043F 651 ?0034: - 0000043F 7D 652 LD A,L - 00000440 B4 653 OR H - 00000441 28 13 654 JR Z,?0033 - 00000443 655 ?0035: - 00000443 FD E5 656 PUSH IY - 00000445 D1 657 POP DE - 00000446 3E 00 658 LD A,BYTE3 free - 00000448 21 00 00 659 LD HL,LWRD free - 0000044B CD 00 00 660 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000044E FD 6E 14 661 LD L,(IY+20) - 00000451 FD 66 15 662 LD H,(IY+21) - 00000454 18 E6 663 JR ?0044 - 00000456 664 ?0033: - 00000456 21 06 00 665 LD HL,6 - 00000459 ED 4B 00 00 666 LD BC,(trans) - 0000045D 09 667 ADD HL,BC - 0000045E E5 668 PUSH HL - 0000045F CD 6A 00 669 CALL LWRD ?0047 - 00000462 EB 670 EX DE,HL - 00000463 E1 671 POP HL - 00000464 73 672 LD (HL),E - 00000465 23 673 INC HL - 00000466 72 674 LD (HL),D - 00000467 21 06 00 675 LD HL,6 - 0000046A ED 4B 00 00 676 LD BC,(trans) - 0000046E 09 677 ADD HL,BC - 0000046F 56 678 LD D,(HL) - 00000470 23 679 INC HL - 00000471 66 680 LD H,(HL) - 00000472 6A 681 LD L,D - 00000473 11 14 00 682 LD DE,20 - 00000476 19 683 ADD HL,DE - 00000477 AF 684 XOR A - 00000478 77 685 LD (HL),A - 00000479 23 686 INC HL - 0000047A 77 687 LD (HL),A - 0000047B 21 06 00 688 LD HL,6 - 0000047E ED 4B 00 00 689 LD BC,(trans) - 00000482 09 690 ADD HL,BC - 00000483 7E 691 LD A,(HL) - 00000484 23 692 INC HL - 00000485 66 693 LD H,(HL) - 00000486 6F 694 LD L,A - 00000487 72 695 LD (HL),D - 00000488 21 06 00 696 LD HL,6 - 0000048B ED 4B 00 00 697 LD BC,(trans) - 0000048F 09 698 ADD HL,BC - 00000490 56 699 LD D,(HL) - 00000491 23 700 INC HL - 00000492 66 701 LD H,(HL) - 00000493 6A 702 LD L,D - 00000494 11 0E 00 703 LD DE,14 - 00000497 19 704 ADD HL,DE - 00000498 AF 705 XOR A - 00000499 77 706 LD (HL),A - 0000049A 23 707 INC HL - 0000049B 77 708 LD (HL),A - 0000049C 21 06 00 709 LD HL,6 - 0000049F ED 4B 00 00 710 LD BC,(trans) - 000004A3 09 711 ADD HL,BC - 000004A4 46 712 LD B,(HL) - 000004A5 23 713 INC HL - 000004A6 66 714 LD H,(HL) - 000004A7 68 715 LD L,B - 000004A8 01 10 00 716 LD BC,16 - 000004AB 09 717 ADD HL,BC - 000004AC 77 718 LD (HL),A - 000004AD 23 719 INC HL - 000004AE 77 720 LD (HL),A - 000004AF 23 721 INC HL - 000004B0 77 722 LD (HL),A - 000004B1 23 723 INC HL - 000004B2 77 724 LD (HL),A - 000004B3 725 ?0020: - 000004B3 DD 6E 9E 726 LD L,(IX-98) - 000004B6 DD 66 9F 727 LD H,(IX-97) - 000004B9 23 728 INC HL - 000004BA 23 729 INC HL - 000004BB 23 730 INC HL - 000004BC 46 731 LD B,(HL) - 000004BD 23 732 INC HL - 000004BE 66 733 LD H,(HL) - 000004BF 68 734 LD L,B - 000004C0 01 1F 10 735 LD BC,4127 - 000004C3 A7 736 AND A - 000004C4 ED 42 737 SBC HL,BC - 000004C6 C2 D2 05 738 JP NZ,?0037 - 000004C9 739 ?0036: - 000004C9 21 06 00 740 LD HL,6 - 000004CC ED 4B 00 00 741 LD BC,(trans) - 000004D0 09 742 ADD HL,BC - 000004D1 46 743 LD B,(HL) - 000004D2 23 744 INC HL - 000004D3 66 745 LD H,(HL) - 000004D4 68 746 LD L,B - 000004D5 747 ?0045: - 000004D5 DD 75 A0 748 LD (IX-96),L - 000004D8 DD 74 A1 749 LD (IX-95),H - 000004DB 750 ?0039: - 000004DB 21 14 00 751 LD HL,20 - 000004DE DD 4E A0 752 LD C,(IX-96) - 000004E1 DD 46 A1 753 LD B,(IX-95) - 000004E4 09 754 ADD HL,BC - 000004E5 7E 755 LD A,(HL) - 000004E6 23 756 INC HL - 000004E7 B6 757 OR (HL) - 000004E8 28 0A 758 JR Z,?0038 - 000004EA 759 ?0040: - 000004EA 21 14 00 760 LD HL,20 - 000004ED 09 761 ADD HL,BC - 000004EE 56 762 LD D,(HL) - 000004EF 23 763 INC HL - 000004F0 66 764 LD H,(HL) - 000004F1 6A 765 LD L,D - 000004F2 18 E1 766 JR ?0045 - 000004F4 767 ?0038: - 000004F4 21 07 00 768 LD HL,7 - 000004F7 DD 4E 9E 769 LD C,(IX-98) - 000004FA DD 46 9F 770 LD B,(IX-97) - 000004FD 09 771 ADD HL,BC - 000004FE 6E 772 LD L,(HL) - 000004FF 67 773 LD H,A - 00000500 E5 774 PUSH HL - 00000501 2A 00 00 775 LD HL,(trans) - 00000504 C1 776 POP BC - 00000505 71 777 LD (HL),C - 00000506 23 778 INC HL - 00000507 70 779 LD (HL),B - 00000508 2A 00 00 780 LD HL,(trans) - 0000050B 23 781 INC HL - 0000050C 23 782 INC HL - 0000050D E5 783 PUSH HL - 0000050E CD D7 05 784 CALL LWRD ?0048 - 00000511 E1 785 POP HL - 00000512 71 786 LD (HL),C - 00000513 23 787 INC HL - 00000514 70 788 LD (HL),B - 00000515 21 04 00 789 LD HL,4 - 00000518 ED 4B 00 00 790 LD BC,(trans) - 0000051C 09 791 ADD HL,BC - 0000051D E5 792 PUSH HL - 0000051E 21 07 00 793 LD HL,7 - 00000521 DD 5E 9E 794 LD E,(IX-98) - 00000524 DD 56 9F 795 LD D,(IX-97) - 00000527 19 796 ADD HL,DE - 00000528 5E 797 LD E,(HL) - 00000529 23 798 INC HL - 0000052A 56 799 LD D,(HL) - 0000052B 23 800 INC HL - 0000052C 4E 801 LD C,(HL) - 0000052D 23 802 INC HL - 0000052E 46 803 LD B,(HL) - 0000052F EB 804 EX DE,HL - 00000530 3E 10 805 LD A,16 - 00000532 CD EB 05 806 CALL LWRD ?0049 - 00000535 E1 807 POP HL - 00000536 71 808 LD (HL),C - 00000537 23 809 INC HL - 00000538 70 810 LD (HL),B - 00000539 2A 00 00 811 LD HL,(trans) - 0000053C 4E 812 LD C,(HL) - 0000053D 23 813 INC HL - 0000053E 46 814 LD B,(HL) - 0000053F 21 11 00 815 LD HL,17 - 00000542 DD 5E 02 816 LD E,(IX+2) - 00000545 DD 56 03 817 LD D,(IX+3) - 00000548 19 818 ADD HL,DE - 00000549 5E 819 LD E,(HL) - 0000054A 23 820 INC HL - 0000054B 56 821 LD D,(HL) - 0000054C CD 12 06 822 CALL LWRD ?0051 - 0000054F 21 11 00 823 LD HL,17 - 00000552 DD 5E 02 824 LD E,(IX+2) - 00000555 DD 56 03 825 LD D,(IX+3) - 00000558 19 826 ADD HL,DE - 00000559 5E 827 LD E,(HL) - 0000055A 23 828 INC HL - 0000055B 56 829 LD D,(HL) - 0000055C CD F2 05 830 CALL LWRD ?0050 - 0000055F 21 11 00 831 LD HL,17 - 00000562 DD 5E 02 832 LD E,(IX+2) - 00000565 DD 56 03 833 LD D,(IX+3) - 00000568 19 834 ADD HL,DE - 00000569 5E 835 LD E,(HL) - 0000056A 23 836 INC HL - 0000056B 56 837 LD D,(HL) - 0000056C CD 2F 06 838 CALL LWRD ?0052 - 0000056F 21 11 00 839 LD HL,17 - 00000572 DD 4E 02 840 LD C,(IX+2) - 00000575 DD 46 03 841 LD B,(IX+3) - 00000578 09 842 ADD HL,BC - 00000579 5E 843 LD E,(HL) - 0000057A 23 844 INC HL - 0000057B 56 845 LD D,(HL) - 0000057C 21 11 00 846 LD HL,17 - 0000057F 09 847 ADD HL,BC - 00000580 46 848 LD B,(HL) - 00000581 23 849 INC HL - 00000582 66 850 LD H,(HL) - 00000583 68 851 LD L,B - 00000584 01 1A 00 852 LD BC,26 - 00000587 CD 47 06 853 CALL LWRD ?0054 - 0000058A 21 14 00 854 LD HL,20 - 0000058D DD 4E A0 855 LD C,(IX-96) - 00000590 DD 46 A1 856 LD B,(IX-95) - 00000593 09 857 ADD HL,BC - 00000594 E5 858 PUSH HL - 00000595 CD 6A 00 859 CALL LWRD ?0047 - 00000598 EB 860 EX DE,HL - 00000599 E1 861 POP HL - 0000059A 73 862 LD (HL),E - 0000059B 23 863 INC HL - 0000059C 72 864 LD (HL),D - 0000059D 21 14 00 865 LD HL,20 - 000005A0 09 866 ADD HL,BC - 000005A1 56 867 LD D,(HL) - 000005A2 23 868 INC HL - 000005A3 66 869 LD H,(HL) - 000005A4 6A 870 LD L,D - 000005A5 DD 75 A0 871 LD (IX-96),L - 000005A8 DD 74 A1 872 LD (IX-95),H - 000005AB 01 14 00 873 LD BC,20 - 000005AE 09 874 ADD HL,BC - 000005AF AF 875 XOR A - 000005B0 77 876 LD (HL),A - 000005B1 23 877 INC HL - 000005B2 77 878 LD (HL),A - 000005B3 DD 6E A0 879 LD L,(IX-96) - 000005B6 DD 66 A1 880 LD H,(IX-95) - 000005B9 70 881 LD (HL),B - 000005BA 21 0E 00 882 LD HL,14 - 000005BD DD 4E A0 883 LD C,(IX-96) - 000005C0 DD 46 A1 884 LD B,(IX-95) - 000005C3 09 885 ADD HL,BC - 000005C4 77 886 LD (HL),A - 000005C5 23 887 INC HL - 000005C6 77 888 LD (HL),A - 000005C7 21 10 00 889 LD HL,16 - 000005CA 09 890 ADD HL,BC - 000005CB 77 891 LD (HL),A - 000005CC 23 892 INC HL - 000005CD 77 893 LD (HL),A - 000005CE 23 894 INC HL - 000005CF 77 895 LD (HL),A - 000005D0 23 896 INC HL - 000005D1 77 897 LD (HL),A - 000005D2 898 ?0037: - 000005D2 FD E1 899 POP IY - 000005D4 C3 00 00 900 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000005D7 901 ?0048: - 000005D7 21 07 00 902 LD HL,7 - 000005DA DD 4E 9E 903 LD C,(IX-98) - 000005DD DD 46 9F 904 LD B,(IX-97) - 000005E0 09 905 ADD HL,BC - 000005E1 5E 906 LD E,(HL) - 000005E2 23 907 INC HL - 000005E3 56 908 LD D,(HL) - 000005E4 23 909 INC HL - 000005E5 4E 910 LD C,(HL) - 000005E6 23 911 INC HL - 000005E7 46 912 LD B,(HL) - 000005E8 EB 913 EX DE,HL - 000005E9 3E 08 914 LD A,8 - 000005EB 915 ?0049: - 000005EB CD 00 00 916 CALL LWRD ?SL_RSH_L03 - 000005EE 06 00 917 LD B,0 - 000005F0 4D 918 LD C,L - 000005F1 C9 919 RET - 000005F2 920 ?0050: - 000005F2 3E 00 921 LD A,BYTE3 Component_find - 000005F4 21 00 00 922 LD HL,LWRD Component_find - 000005F7 CD 00 00 923 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000005FA EB 924 EX DE,HL - 000005FB 3E 00 925 LD A,BYTE3 Component_setlabel - 000005FD 21 00 00 926 LD HL,LWRD Component_setlabel - 00000600 01 08 00 927 LD BC,?0005 - 00000603 CD 00 00 928 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000606 21 04 00 929 LD HL,4 - 00000609 ED 5B 00 00 930 LD DE,(trans) - 0000060D 19 931 ADD HL,DE - 0000060E 4E 932 LD C,(HL) - 0000060F 23 933 INC HL - 00000610 46 934 LD B,(HL) - 00000611 C9 935 RET - 00000612 936 ?0051: - 00000612 3E 00 937 LD A,BYTE3 Component_find - 00000614 21 00 00 938 LD HL,LWRD Component_find - 00000617 CD 00 00 939 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000061A EB 940 EX DE,HL - 0000061B 3E 00 941 LD A,BYTE3 Component_setlabel - 0000061D 21 00 00 942 LD HL,LWRD Component_setlabel - 00000620 01 00 00 943 LD BC,?0004 - 00000623 CD 00 00 944 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000626 2A 00 00 945 LD HL,(trans) - 00000629 23 946 INC HL - 0000062A 23 947 INC HL - 0000062B 4E 948 LD C,(HL) - 0000062C 23 949 INC HL - 0000062D 46 950 LD B,(HL) - 0000062E C9 951 RET - 0000062F 952 ?0052: - 0000062F 3E 00 953 LD A,BYTE3 Component_find - 00000631 21 00 00 954 LD HL,LWRD Component_find - 00000634 CD 00 00 955 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000637 EB 956 EX DE,HL - 00000638 3E 00 957 LD A,BYTE3 Component_setlabel - 0000063A 21 00 00 958 LD HL,LWRD Component_setlabel - 0000063D 01 0E 00 959 LD BC,?0006 - 00000640 C3 00 00 960 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000643 961 ?0053: - 00000643 42 962 LD B,D - 00000644 21 1A 00 963 LD HL,26 - 00000647 964 ?0054: - 00000647 09 965 ADD HL,BC - 00000648 4E 966 LD C,(HL) - 00000649 23 967 INC HL - 0000064A 46 968 LD B,(HL) - 0000064B 23 969 INC HL - 0000064C 7E 970 LD A,(HL) - 0000064D 69 971 LD L,C - 0000064E 60 972 LD H,B - 0000064F C3 00 00 973 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000652 974 ?0055: - 00000652 3E 00 975 LD A,BYTE3 sprintf - 00000654 21 00 00 976 LD HL,LWRD sprintf - 00000657 C3 00 00 977 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000065A 978 ?0056: - 0000065A FD 4E 12 979 LD C,(IY+18) - 0000065D FD 46 13 980 LD B,(IY+19) - 00000660 FD 6E 10 981 LD L,(IY+16) - 00000663 FD 66 11 982 LD H,(IY+17) - 00000666 C3 00 00 983 JP LWRD ?SL_MOD_L03 - 00000669 984 ?0057: - 00000669 FD 4E 12 985 LD C,(IY+18) - 0000066C FD 46 13 986 LD B,(IY+19) - 0000066F FD 6E 10 987 LD L,(IY+16) - 00000672 FD 66 11 988 LD H,(IY+17) - 00000675 C3 00 00 989 JP LWRD ?SL_DIV_L03 - 00000678 990 ?0058: - 00000678 FD 4E 12 991 LD C,(IY+18) - 0000067B FD 46 13 992 LD B,(IY+19) - 0000067E FD 6E 10 993 LD L,(IY+16) - 00000681 FD 66 11 994 LD H,(IY+17) - 00000684 C3 00 00 995 JP LWRD ?L_MUL_L03 - 00000687 996 ?0059: - 00000687 4D 997 LD C,L - 00000688 44 998 LD B,H - 00000689 DD 5E A0 999 LD E,(IX-96) - 0000068C DD 56 A1 1000 LD D,(IX-95) - 0000068F 3E 00 1001 LD A,BYTE3 _write - 00000691 21 00 00 1002 LD HL,LWRD _write - 00000694 C3 00 00 1003 JP LWRD ?BANK_CALL_DIRECT_L08 - 1004 RSEG CSTR - 00000000 1005 ?0004: - 00000000 42 61 72 63 6F 64 65 1006 DEFB 'Barcode' - 00000007 00 1007 DEFB 0 - 00000008 1008 ?0005: - 00000008 53 74 75 6B 73 1009 DEFB 'Stuks' - 0000000D 00 1010 DEFB 0 - 0000000E 1011 ?0006: - 0000000E 50 72 69 6A 73 1012 DEFB 'Prijs' - 00000013 00 1013 DEFB 0 - 00000014 1014 ?0014: - 00000014 00 1015 DEFB 0 - 00000015 1016 ?0021: - 00000015 2F 64 65 76 2F 70 72 1017 DEFB '/dev/printer' + 000000A5 46 136 LD B,(HL) + 000000A6 23 137 INC HL + 000000A7 66 138 LD H,(HL) + 000000A8 68 139 LD L,B + 000000A9 01 10 90 140 LD BC,36880 + 000000AC 3E 80 141 LD A,128 + 000000AE AC 142 XOR H + 000000AF 67 143 LD H,A + 000000B0 ED 42 144 SBC HL,BC + 000000B2 DA F4 01 145 JP C,?0003 + 000000B5 DD 6E 9E 146 LD L,(IX-98) + 000000B8 DD 66 9F 147 LD H,(IX-97) + 000000BB 23 148 INC HL + 000000BC 23 149 INC HL + 000000BD 23 150 INC HL + 000000BE 4E 151 LD C,(HL) + 000000BF 23 152 INC HL + 000000C0 46 153 LD B,(HL) + 000000C1 21 12 10 154 LD HL,4114 + 000000C4 CD 00 00 155 CALL LWRD ?SS_CMP_L02 + 000000C7 DA F4 01 156 JP C,?0003 + 000000CA 157 ?0005: + 000000CA 158 ?0004: + 000000CA 159 ?0002: + 000000CA 21 06 00 160 LD HL,6 + 000000CD ED 4B 00 00 161 LD BC,(trans) + 000000D1 09 162 ADD HL,BC + 000000D2 46 163 LD B,(HL) + 000000D3 23 164 INC HL + 000000D4 66 165 LD H,(HL) + 000000D5 68 166 LD L,B + 000000D6 167 ?0041: + 000000D6 DD 75 A2 168 LD (IX-94),L + 000000D9 DD 74 A3 169 LD (IX-93),H + 000000DC 170 ?0007: + 000000DC 21 14 00 171 LD HL,20 + 000000DF DD 4E A2 172 LD C,(IX-94) + 000000E2 DD 46 A3 173 LD B,(IX-93) + 000000E5 09 174 ADD HL,BC + 000000E6 7E 175 LD A,(HL) + 000000E7 23 176 INC HL + 000000E8 B6 177 OR (HL) + 000000E9 28 0A 178 JR Z,?0006 + 000000EB 179 ?0008: + 000000EB 21 14 00 180 LD HL,20 + 000000EE 09 181 ADD HL,BC + 000000EF 56 182 LD D,(HL) + 000000F0 23 183 INC HL + 000000F1 66 184 LD H,(HL) + 000000F2 6A 185 LD L,D + 000000F3 18 E1 186 JR ?0041 + 000000F5 187 ?0006: + 000000F5 21 05 00 188 LD HL,5 + 000000F8 DD 4E 9E 189 LD C,(IX-98) + 000000FB DD 46 9F 190 LD B,(IX-97) + 000000FE 09 191 ADD HL,BC + 000000FF 4E 192 LD C,(HL) + 00000100 23 193 INC HL + 00000101 46 194 LD B,(HL) + 00000102 21 11 00 195 LD HL,17 + 00000105 DD 5E 02 196 LD E,(IX+2) + 00000108 DD 56 03 197 LD D,(IX+3) + 0000010B 19 198 ADD HL,DE + 0000010C 5E 199 LD E,(HL) + 0000010D 23 200 INC HL + 0000010E 56 201 LD D,(HL) + 0000010F 3E 00 202 LD A,BYTE3 Component_find + 00000111 21 00 00 203 LD HL,LWRD Component_find + 00000114 CD 00 00 204 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000117 DD 75 A0 205 LD (IX-96),L + 0000011A DD 74 A1 206 LD (IX-95),H + 0000011D 01 20 00 207 LD BC,32 + 00000120 09 208 ADD HL,BC + 00000121 4E 209 LD C,(HL) + 00000122 23 210 INC HL + 00000123 46 211 LD B,(HL) + 00000124 DD 5E 02 212 LD E,(IX+2) + 00000127 DD 56 03 213 LD D,(IX+3) + 0000012A 3E 00 214 LD A,BYTE3 Component_setlabel + 0000012C 21 00 00 215 LD HL,LWRD Component_setlabel + 0000012F CD 00 00 216 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000132 01 00 00 217 LD BC,?0009 + 00000135 DD 5E A0 218 LD E,(IX-96) + 00000138 DD 56 A1 219 LD D,(IX-95) + 0000013B 3E 00 220 LD A,BYTE3 Component_setlabel + 0000013D 21 00 00 221 LD HL,LWRD Component_setlabel + 00000140 CD 00 00 222 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000143 DD 5E A0 223 LD E,(IX-96) + 00000146 4B 224 LD C,E + 00000147 DD 56 A1 225 LD D,(IX-95) + 0000014A CD A3 05 226 CALL LWRD ?0048 + 0000014D DD 6E 9E 227 LD L,(IX-98) + 00000150 DD 66 9F 228 LD H,(IX-97) + 00000153 23 229 INC HL + 00000154 23 230 INC HL + 00000155 23 231 INC HL + 00000156 5E 232 LD E,(HL) + 00000157 23 233 INC HL + 00000158 56 234 LD D,(HL) + 00000159 CD 00 00 235 CALL LWRD ?S_S_SWITCH_L06 + 0000015C 10 10 236 DEFW 4112 + 0000015E 03 00 237 DEFW 3 + 00000160 EA 01 238 DEFW ?0010 + 00000162 68 01 239 DEFW ?0011 + 00000164 85 01 240 DEFW ?0012 + 00000166 BD 01 241 DEFW ?0015 + 00000168 242 ?0011: + 00000168 21 20 00 243 LD HL,32 + 0000016B DD 4E 02 244 LD C,(IX+2) + 0000016E DD 46 03 245 LD B,(IX+3) + 00000171 09 246 ADD HL,BC + 00000172 4E 247 LD C,(HL) + 00000173 23 248 INC HL + 00000174 46 249 LD B,(HL) + 00000175 DD 5E A2 250 LD E,(IX-94) + 00000178 DD 56 A3 251 LD D,(IX-93) + 0000017B 3E 00 252 LD A,BYTE3 strcpy + 0000017D 21 00 00 253 LD HL,LWRD strcpy + 00000180 CD 00 00 254 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000183 18 65 255 JR ?0010 + 00000185 256 ?0012: + 00000185 21 0E 00 257 LD HL,14 + 00000188 DD 4E A2 258 LD C,(IX-94) + 0000018B DD 46 A3 259 LD B,(IX-93) + 0000018E 09 260 ADD HL,BC + 0000018F E5 261 PUSH HL + 00000190 21 20 00 262 LD HL,32 + 00000193 DD 5E 02 263 LD E,(IX+2) + 00000196 DD 56 03 264 LD D,(IX+3) + 00000199 19 265 ADD HL,DE + 0000019A 5E 266 LD E,(HL) + 0000019B 23 267 INC HL + 0000019C 56 268 LD D,(HL) + 0000019D 3E 00 269 LD A,BYTE3 atoi + 0000019F 21 00 00 270 LD HL,LWRD atoi + 000001A2 CD 00 00 271 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001A5 EB 272 EX DE,HL + 000001A6 E1 273 POP HL + 000001A7 73 274 LD (HL),E + 000001A8 23 275 INC HL + 000001A9 72 276 LD (HL),D + 000001AA 21 0E 00 277 LD HL,14 + 000001AD 09 278 ADD HL,BC + 000001AE 7E 279 LD A,(HL) + 000001AF 23 280 INC HL + 000001B0 B6 281 OR (HL) + 000001B1 20 37 282 JR NZ,?0010 + 000001B3 283 ?0013: + 000001B3 21 0E 00 284 LD HL,14 + 000001B6 09 285 ADD HL,BC + 000001B7 36 01 286 LD (HL),1 + 000001B9 23 287 INC HL + 000001BA 77 288 LD (HL),A + 000001BB 289 ?0014: + 000001BB 18 2D 290 JR ?0010 + 000001BD 291 ?0015: + 000001BD 21 20 00 292 LD HL,32 + 000001C0 DD 4E 02 293 LD C,(IX+2) + 000001C3 DD 46 03 294 LD B,(IX+3) + 000001C6 09 295 ADD HL,BC + 000001C7 5E 296 LD E,(HL) + 000001C8 23 297 INC HL + 000001C9 56 298 LD D,(HL) + 000001CA 3E 00 299 LD A,BYTE3 atol + 000001CC 21 00 00 300 LD HL,LWRD atol + 000001CF CD 00 00 301 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001D2 7C 302 LD A,H + 000001D3 07 303 RLCA + 000001D4 9F 304 SBC A,A + 000001D5 4F 305 LD C,A + 000001D6 41 306 LD B,C + 000001D7 E5 307 PUSH HL + 000001D8 21 10 00 308 LD HL,16 + 000001DB DD 5E A2 309 LD E,(IX-94) + 000001DE DD 56 A3 310 LD D,(IX-93) + 000001E1 19 311 ADD HL,DE + 000001E2 D1 312 POP DE + 000001E3 73 313 LD (HL),E + 000001E4 23 314 INC HL + 000001E5 72 315 LD (HL),D + 000001E6 23 316 INC HL + 000001E7 71 317 LD (HL),C + 000001E8 23 318 INC HL + 000001E9 70 319 LD (HL),B + 000001EA 320 ?0010: + 000001EA DD 5E 02 321 LD E,(IX+2) + 000001ED 4B 322 LD C,E + 000001EE DD 56 03 323 LD D,(IX+3) + 000001F1 CD A3 05 324 CALL LWRD ?0048 + 000001F4 325 ?0003: + 000001F4 DD 6E 9E 326 LD L,(IX-98) + 000001F7 DD 66 9F 327 LD H,(IX-97) + 000001FA 23 328 INC HL + 000001FB 23 329 INC HL + 000001FC 23 330 INC HL + 000001FD 46 331 LD B,(HL) + 000001FE 23 332 INC HL + 000001FF 66 333 LD H,(HL) + 00000200 68 334 LD L,B + 00000201 01 1E 10 335 LD BC,4126 + 00000204 A7 336 AND A + 00000205 ED 42 337 SBC HL,BC + 00000207 C2 51 04 338 JP NZ,?0017 + 0000020A 339 ?0016: + 0000020A AF 340 XOR A + 0000020B DD 77 AC 341 LD (IX-84),A + 0000020E DD 77 AD 342 LD (IX-83),A + 00000211 DD 77 AE 343 LD (IX-82),A + 00000214 DD 77 AF 344 LD (IX-81),A + 00000217 21 06 00 345 LD HL,6 + 0000021A ED 4B 00 00 346 LD BC,(trans) + 0000021E 09 347 ADD HL,BC + 0000021F 46 348 LD B,(HL) + 00000220 23 349 INC HL + 00000221 66 350 LD H,(HL) + 00000222 68 351 LD L,B + 00000223 E5 352 PUSH HL + 00000224 FD E1 353 POP IY + 00000226 21 01 00 354 LD HL,1 + 00000229 E5 355 PUSH HL + 0000022A 21 01 00 356 LD HL,?0018 + 0000022D E5 357 PUSH HL + 0000022E 3E 00 358 LD A,BYTE3 open + 00000230 21 00 00 359 LD HL,LWRD open + 00000233 CD 00 00 360 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000236 F1 361 POP AF + 00000237 F1 362 POP AF + 00000238 DD 75 A0 363 LD (IX-96),L + 0000023B DD 74 A1 364 LD (IX-95),H + 0000023E 21 08 00 365 LD HL,8 + 00000241 39 366 ADD HL,SP + 00000242 E5 367 PUSH HL + 00000243 21 00 00 368 LD HL,0 + 00000246 E5 369 PUSH HL + 00000247 DD 6E A0 370 LD L,(IX-96) + 0000024A DD 66 A1 371 LD H,(IX-95) + 0000024D E5 372 PUSH HL + 0000024E 3E 00 373 LD A,BYTE3 ioctl + 00000250 21 00 00 374 LD HL,LWRD ioctl + 00000253 CD 00 00 375 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000256 F1 376 POP AF + 00000257 F1 377 POP AF + 00000258 F1 378 POP AF + 00000259 DD 36 A8 60 379 LD (IX-88),96 + 0000025D DD 36 A9 00 380 LD (IX-87),0 + 00000261 21 08 00 381 LD HL,8 + 00000264 39 382 ADD HL,SP + 00000265 E5 383 PUSH HL + 00000266 21 01 00 384 LD HL,1 + 00000269 E5 385 PUSH HL + 0000026A DD 6E A0 386 LD L,(IX-96) + 0000026D DD 66 A1 387 LD H,(IX-95) + 00000270 E5 388 PUSH HL + 00000271 3E 00 389 LD A,BYTE3 ioctl + 00000273 21 00 00 390 LD HL,LWRD ioctl + 00000276 CD 00 00 391 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000279 F1 392 POP AF + 0000027A F1 393 POP AF + 0000027B F1 394 POP AF + 0000027C 395 ?0020: + 0000027C FD E5 396 PUSH IY + 0000027E E1 397 POP HL + 0000027F 7D 398 LD A,L + 00000280 B4 399 OR H + 00000281 CA 66 03 400 JP Z,?0019 + 00000284 401 ?0021: + 00000284 FD 7E 0E 402 LD A,(IY+14) + 00000287 FD B6 0F 403 OR (IY+15) + 0000028A CA 5A 03 404 JP Z,?0023 + 0000028D 405 ?0022: + 0000028D 3E 01 406 LD A,1 + 0000028F FD AE 0E 407 XOR (IY+14) + 00000292 FD B6 0F 408 OR (IY+15) + 00000295 20 29 409 JR NZ,?0025 + 00000297 410 ?0024: + 00000297 6F 411 LD L,A + 00000298 67 412 LD H,A + 00000299 E5 413 PUSH HL + 0000029A 2E 64 414 LD L,100 + 0000029C E5 415 PUSH HL + 0000029D CD BA 05 416 CALL LWRD ?0051 + 000002A0 C5 417 PUSH BC + 000002A1 E5 418 PUSH HL + 000002A2 6F 419 LD L,A + 000002A3 67 420 LD H,A + 000002A4 E5 421 PUSH HL + 000002A5 2E 64 422 LD L,100 + 000002A7 E5 423 PUSH HL + 000002A8 CD C9 05 424 CALL LWRD ?0052 + 000002AB C5 425 PUSH BC + 000002AC E5 426 PUSH HL + 000002AD FD E5 427 PUSH IY + 000002AF 21 0E 00 428 LD HL,?0026 + 000002B2 E5 429 PUSH HL + 000002B3 21 20 00 430 LD HL,32 + 000002B6 39 431 ADD HL,SP + 000002B7 E5 432 PUSH HL + 000002B8 CD B2 05 433 CALL LWRD ?0050 + 000002BB 21 0E 00 434 LD HL,14 + 000002BE 18 68 435 JR ?0042 + 000002C0 436 ?0025: + 000002C0 21 00 00 437 LD HL,0 + 000002C3 E5 438 PUSH HL + 000002C4 2E 64 439 LD L,100 + 000002C6 E5 440 PUSH HL + 000002C7 FD 6E 0E 441 LD L,(IY+14) + 000002CA FD 66 0F 442 LD H,(IY+15) + 000002CD 7C 443 LD A,H + 000002CE 07 444 RLCA + 000002CF 9F 445 SBC A,A + 000002D0 4F 446 LD C,A + 000002D1 41 447 LD B,C + 000002D2 C5 448 PUSH BC + 000002D3 E5 449 PUSH HL + 000002D4 CD D8 05 450 CALL LWRD ?0053 + 000002D7 CD 00 00 451 CALL LWRD ?SL_MOD_L03 + 000002DA C5 452 PUSH BC + 000002DB E5 453 PUSH HL + 000002DC 21 00 00 454 LD HL,0 + 000002DF E5 455 PUSH HL + 000002E0 2E 64 456 LD L,100 + 000002E2 E5 457 PUSH HL + 000002E3 FD 6E 0E 458 LD L,(IY+14) + 000002E6 FD 66 0F 459 LD H,(IY+15) + 000002E9 7C 460 LD A,H + 000002EA 07 461 RLCA + 000002EB 9F 462 SBC A,A + 000002EC 4F 463 LD C,A + 000002ED 41 464 LD B,C + 000002EE C5 465 PUSH BC + 000002EF E5 466 PUSH HL + 000002F0 CD D8 05 467 CALL LWRD ?0053 + 000002F3 CD 00 00 468 CALL LWRD ?SL_DIV_L03 + 000002F6 C5 469 PUSH BC + 000002F7 E5 470 PUSH HL + 000002F8 21 00 00 471 LD HL,0 + 000002FB E5 472 PUSH HL + 000002FC 2E 64 473 LD L,100 + 000002FE E5 474 PUSH HL + 000002FF CD BA 05 475 CALL LWRD ?0051 + 00000302 C5 476 PUSH BC + 00000303 E5 477 PUSH HL + 00000304 21 00 00 478 LD HL,0 + 00000307 E5 479 PUSH HL + 00000308 2E 64 480 LD L,100 + 0000030A E5 481 PUSH HL + 0000030B CD C9 05 482 CALL LWRD ?0052 + 0000030E C5 483 PUSH BC + 0000030F E5 484 PUSH HL + 00000310 FD 6E 0E 485 LD L,(IY+14) + 00000313 FD 66 0F 486 LD H,(IY+15) + 00000316 E5 487 PUSH HL + 00000317 FD E5 488 PUSH IY + 00000319 21 31 00 489 LD HL,?0028 + 0000031C E5 490 PUSH HL + 0000031D 21 2A 00 491 LD HL,42 + 00000320 39 492 ADD HL,SP + 00000321 E5 493 PUSH HL + 00000322 CD B2 05 494 CALL LWRD ?0050 + 00000325 21 18 00 495 LD HL,24 + 00000328 496 ?0042: + 00000328 39 497 ADD HL,SP + 00000329 F9 498 LD SP,HL + 0000032A 499 ?0027: + 0000032A 21 10 00 500 LD HL,16 + 0000032D 39 501 ADD HL,SP + 0000032E E5 502 PUSH HL + 0000032F FD 5E 0E 503 LD E,(IY+14) + 00000332 FD 56 0F 504 LD D,(IY+15) + 00000335 7A 505 LD A,D + 00000336 07 506 RLCA + 00000337 9F 507 SBC A,A + 00000338 4F 508 LD C,A + 00000339 41 509 LD B,C + 0000033A C5 510 PUSH BC + 0000033B D5 511 PUSH DE + 0000033C CD D8 05 512 CALL LWRD ?0053 + 0000033F EB 513 EX DE,HL + 00000340 E1 514 POP HL + 00000341 CD 00 00 515 CALL LWRD ?L_ADDASG_L03 + 00000344 21 14 00 516 LD HL,20 + 00000347 39 517 ADD HL,SP + 00000348 EB 518 EX DE,HL + 00000349 3E 00 519 LD A,BYTE3 strlen + 0000034B 21 00 00 520 LD HL,LWRD strlen + 0000034E CD 00 00 521 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000351 E5 522 PUSH HL + 00000352 21 16 00 523 LD HL,22 + 00000355 39 524 ADD HL,SP + 00000356 CD E7 05 525 CALL LWRD ?0054 + 00000359 F1 526 POP AF + 0000035A 527 ?0023: + 0000035A FD 6E 14 528 LD L,(IY+20) + 0000035D FD 66 15 529 LD H,(IY+21) + 00000360 E5 530 PUSH HL + 00000361 FD E1 531 POP IY + 00000363 C3 7C 02 532 JP LWRD ?0020 + 00000366 533 ?0019: + 00000366 6F 534 LD L,A + 00000367 67 535 LD H,A + 00000368 E5 536 PUSH HL + 00000369 2E 64 537 LD L,100 + 0000036B E5 538 PUSH HL + 0000036C DD 4E AE 539 LD C,(IX-82) + 0000036F DD 46 AF 540 LD B,(IX-81) + 00000372 DD 6E AC 541 LD L,(IX-84) + 00000375 DD 66 AD 542 LD H,(IX-83) + 00000378 CD 00 00 543 CALL LWRD ?SL_MOD_L03 + 0000037B C5 544 PUSH BC + 0000037C E5 545 PUSH HL + 0000037D 6F 546 LD L,A + 0000037E 67 547 LD H,A + 0000037F E5 548 PUSH HL + 00000380 2E 64 549 LD L,100 + 00000382 E5 550 PUSH HL + 00000383 DD 4E AE 551 LD C,(IX-82) + 00000386 DD 46 AF 552 LD B,(IX-81) + 00000389 DD 6E AC 553 LD L,(IX-84) + 0000038C DD 66 AD 554 LD H,(IX-83) + 0000038F CD 00 00 555 CALL LWRD ?SL_DIV_L03 + 00000392 C5 556 PUSH BC + 00000393 E5 557 PUSH HL + 00000394 21 00 00 558 LD HL,?0009 + 00000397 E5 559 PUSH HL + 00000398 E5 560 PUSH HL + 00000399 21 71 00 561 LD HL,?0029 + 0000039C E5 562 PUSH HL + 0000039D 21 22 00 563 LD HL,34 + 000003A0 39 564 ADD HL,SP + 000003A1 E5 565 PUSH HL + 000003A2 CD B2 05 566 CALL LWRD ?0050 + 000003A5 21 10 00 567 LD HL,16 + 000003A8 39 568 ADD HL,SP + 000003A9 F9 569 LD SP,HL + 000003AA 21 14 00 570 LD HL,20 + 000003AD 39 571 ADD HL,SP + 000003AE EB 572 EX DE,HL + 000003AF 3E 00 573 LD A,BYTE3 strlen + 000003B1 21 00 00 574 LD HL,LWRD strlen + 000003B4 CD 00 00 575 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000003B7 E5 576 PUSH HL + 000003B8 21 16 00 577 LD HL,22 + 000003BB 39 578 ADD HL,SP + 000003BC CD E7 05 579 CALL LWRD ?0054 + 000003BF F1 580 POP AF + 000003C0 DD 5E A0 581 LD E,(IX-96) + 000003C3 DD 56 A1 582 LD D,(IX-95) + 000003C6 3E 00 583 LD A,BYTE3 close + 000003C8 21 00 00 584 LD HL,LWRD close + 000003CB CD 00 00 585 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000003CE 21 06 00 586 LD HL,6 + 000003D1 ED 4B 00 00 587 LD BC,(trans) + 000003D5 09 588 ADD HL,BC + 000003D6 46 589 LD B,(HL) + 000003D7 23 590 INC HL + 000003D8 66 591 LD H,(HL) + 000003D9 68 592 LD L,B + 000003DA 593 ?0043: + 000003DA E5 594 PUSH HL + 000003DB FD E1 595 POP IY + 000003DD 596 ?0031: + 000003DD 7D 597 LD A,L + 000003DE B4 598 OR H + 000003DF 28 13 599 JR Z,?0030 + 000003E1 600 ?0032: + 000003E1 FD E5 601 PUSH IY + 000003E3 D1 602 POP DE + 000003E4 3E 00 603 LD A,BYTE3 free + 000003E6 21 00 00 604 LD HL,LWRD free + 000003E9 CD 00 00 605 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000003EC FD 6E 14 606 LD L,(IY+20) + 000003EF FD 66 15 607 LD H,(IY+21) + 000003F2 18 E6 608 JR ?0043 + 000003F4 609 ?0030: + 000003F4 21 06 00 610 LD HL,6 + 000003F7 ED 4B 00 00 611 LD BC,(trans) + 000003FB 09 612 ADD HL,BC + 000003FC E5 613 PUSH HL + 000003FD CD 6A 00 614 CALL LWRD ?0046 + 00000400 EB 615 EX DE,HL + 00000401 E1 616 POP HL + 00000402 73 617 LD (HL),E + 00000403 23 618 INC HL + 00000404 72 619 LD (HL),D + 00000405 21 06 00 620 LD HL,6 + 00000408 ED 4B 00 00 621 LD BC,(trans) + 0000040C 09 622 ADD HL,BC + 0000040D 56 623 LD D,(HL) + 0000040E 23 624 INC HL + 0000040F 66 625 LD H,(HL) + 00000410 6A 626 LD L,D + 00000411 11 14 00 627 LD DE,20 + 00000414 19 628 ADD HL,DE + 00000415 AF 629 XOR A + 00000416 77 630 LD (HL),A + 00000417 23 631 INC HL + 00000418 77 632 LD (HL),A + 00000419 21 06 00 633 LD HL,6 + 0000041C ED 4B 00 00 634 LD BC,(trans) + 00000420 09 635 ADD HL,BC + 00000421 7E 636 LD A,(HL) + 00000422 23 637 INC HL + 00000423 66 638 LD H,(HL) + 00000424 6F 639 LD L,A + 00000425 72 640 LD (HL),D + 00000426 21 06 00 641 LD HL,6 + 00000429 ED 4B 00 00 642 LD BC,(trans) + 0000042D 09 643 ADD HL,BC + 0000042E 56 644 LD D,(HL) + 0000042F 23 645 INC HL + 00000430 66 646 LD H,(HL) + 00000431 6A 647 LD L,D + 00000432 11 0E 00 648 LD DE,14 + 00000435 19 649 ADD HL,DE + 00000436 AF 650 XOR A + 00000437 77 651 LD (HL),A + 00000438 23 652 INC HL + 00000439 77 653 LD (HL),A + 0000043A 21 06 00 654 LD HL,6 + 0000043D ED 4B 00 00 655 LD BC,(trans) + 00000441 09 656 ADD HL,BC + 00000442 46 657 LD B,(HL) + 00000443 23 658 INC HL + 00000444 66 659 LD H,(HL) + 00000445 68 660 LD L,B + 00000446 01 10 00 661 LD BC,16 + 00000449 09 662 ADD HL,BC + 0000044A 77 663 LD (HL),A + 0000044B 23 664 INC HL + 0000044C 77 665 LD (HL),A + 0000044D 23 666 INC HL + 0000044E 77 667 LD (HL),A + 0000044F 23 668 INC HL + 00000450 77 669 LD (HL),A + 00000451 670 ?0017: + 00000451 DD 6E 9E 671 LD L,(IX-98) + 00000454 DD 66 9F 672 LD H,(IX-97) + 00000457 23 673 INC HL + 00000458 23 674 INC HL + 00000459 23 675 INC HL + 0000045A 46 676 LD B,(HL) + 0000045B 23 677 INC HL + 0000045C 66 678 LD H,(HL) + 0000045D 68 679 LD L,B + 0000045E 01 1F 10 680 LD BC,4127 + 00000461 A7 681 AND A + 00000462 ED 42 682 SBC HL,BC + 00000464 C2 7F 05 683 JP NZ,?0034 + 00000467 684 ?0033: + 00000467 21 06 00 685 LD HL,6 + 0000046A ED 4B 00 00 686 LD BC,(trans) + 0000046E 09 687 ADD HL,BC + 0000046F 46 688 LD B,(HL) + 00000470 23 689 INC HL + 00000471 66 690 LD H,(HL) + 00000472 68 691 LD L,B + 00000473 692 ?0044: + 00000473 DD 75 A0 693 LD (IX-96),L + 00000476 DD 74 A1 694 LD (IX-95),H + 00000479 695 ?0036: + 00000479 21 14 00 696 LD HL,20 + 0000047C DD 4E A0 697 LD C,(IX-96) + 0000047F DD 46 A1 698 LD B,(IX-95) + 00000482 09 699 ADD HL,BC + 00000483 7E 700 LD A,(HL) + 00000484 23 701 INC HL + 00000485 B6 702 OR (HL) + 00000486 28 0A 703 JR Z,?0035 + 00000488 704 ?0037: + 00000488 21 14 00 705 LD HL,20 + 0000048B 09 706 ADD HL,BC + 0000048C 56 707 LD D,(HL) + 0000048D 23 708 INC HL + 0000048E 66 709 LD H,(HL) + 0000048F 6A 710 LD L,D + 00000490 18 E1 711 JR ?0044 + 00000492 712 ?0035: + 00000492 21 07 00 713 LD HL,7 + 00000495 DD 4E 9E 714 LD C,(IX-98) + 00000498 DD 46 9F 715 LD B,(IX-97) + 0000049B 09 716 ADD HL,BC + 0000049C 6E 717 LD L,(HL) + 0000049D 67 718 LD H,A + 0000049E E5 719 PUSH HL + 0000049F 2A 00 00 720 LD HL,(trans) + 000004A2 C1 721 POP BC + 000004A3 71 722 LD (HL),C + 000004A4 23 723 INC HL + 000004A5 70 724 LD (HL),B + 000004A6 2A 00 00 725 LD HL,(trans) + 000004A9 23 726 INC HL + 000004AA 23 727 INC HL + 000004AB E5 728 PUSH HL + 000004AC 21 07 00 729 LD HL,7 + 000004AF DD 4E 9E 730 LD C,(IX-98) + 000004B2 DD 46 9F 731 LD B,(IX-97) + 000004B5 09 732 ADD HL,BC + 000004B6 5E 733 LD E,(HL) + 000004B7 23 734 INC HL + 000004B8 56 735 LD D,(HL) + 000004B9 23 736 INC HL + 000004BA 4E 737 LD C,(HL) + 000004BB 23 738 INC HL + 000004BC 46 739 LD B,(HL) + 000004BD EB 740 EX DE,HL + 000004BE 3E 08 741 LD A,8 + 000004C0 CD 00 00 742 CALL LWRD ?SL_RSH_L03 + 000004C3 06 00 743 LD B,0 + 000004C5 4D 744 LD C,L + 000004C6 E1 745 POP HL + 000004C7 71 746 LD (HL),C + 000004C8 23 747 INC HL + 000004C9 70 748 LD (HL),B + 000004CA 21 04 00 749 LD HL,4 + 000004CD ED 4B 00 00 750 LD BC,(trans) + 000004D1 09 751 ADD HL,BC + 000004D2 E5 752 PUSH HL + 000004D3 21 07 00 753 LD HL,7 + 000004D6 DD 5E 9E 754 LD E,(IX-98) + 000004D9 DD 56 9F 755 LD D,(IX-97) + 000004DC 19 756 ADD HL,DE + 000004DD 5E 757 LD E,(HL) + 000004DE 23 758 INC HL + 000004DF 56 759 LD D,(HL) + 000004E0 23 760 INC HL + 000004E1 4E 761 LD C,(HL) + 000004E2 23 762 INC HL + 000004E3 46 763 LD B,(HL) + 000004E4 EB 764 EX DE,HL + 000004E5 3E 10 765 LD A,16 + 000004E7 CD 00 00 766 CALL LWRD ?SL_RSH_L03 + 000004EA 06 00 767 LD B,0 + 000004EC 4D 768 LD C,L + 000004ED E1 769 POP HL + 000004EE 71 770 LD (HL),C + 000004EF 23 771 INC HL + 000004F0 70 772 LD (HL),B + 000004F1 2A 00 00 773 LD HL,(trans) + 000004F4 CD 84 05 774 CALL LWRD ?0047 + 000004F7 01 94 00 775 LD BC,?0038 + 000004FA CD 00 00 776 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000004FD 2A 00 00 777 LD HL,(trans) + 00000500 23 778 INC HL + 00000501 23 779 INC HL + 00000502 CD 84 05 780 CALL LWRD ?0047 + 00000505 01 9C 00 781 LD BC,?0039 + 00000508 CD 00 00 782 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000050B 21 04 00 783 LD HL,4 + 0000050E ED 5B 00 00 784 LD DE,(trans) + 00000512 19 785 ADD HL,DE + 00000513 CD 84 05 786 CALL LWRD ?0047 + 00000516 01 A2 00 787 LD BC,?0040 + 00000519 CD 00 00 788 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000051C 21 11 00 789 LD HL,17 + 0000051F DD 4E 02 790 LD C,(IX+2) + 00000522 DD 46 03 791 LD B,(IX+3) + 00000525 09 792 ADD HL,BC + 00000526 5E 793 LD E,(HL) + 00000527 23 794 INC HL + 00000528 56 795 LD D,(HL) + 00000529 21 11 00 796 LD HL,17 + 0000052C 09 797 ADD HL,BC + 0000052D 46 798 LD B,(HL) + 0000052E 23 799 INC HL + 0000052F 66 800 LD H,(HL) + 00000530 68 801 LD L,B + 00000531 01 1A 00 802 LD BC,26 + 00000534 CD A7 05 803 CALL LWRD ?0049 + 00000537 21 14 00 804 LD HL,20 + 0000053A DD 4E A0 805 LD C,(IX-96) + 0000053D DD 46 A1 806 LD B,(IX-95) + 00000540 09 807 ADD HL,BC + 00000541 E5 808 PUSH HL + 00000542 CD 6A 00 809 CALL LWRD ?0046 + 00000545 EB 810 EX DE,HL + 00000546 E1 811 POP HL + 00000547 73 812 LD (HL),E + 00000548 23 813 INC HL + 00000549 72 814 LD (HL),D + 0000054A 21 14 00 815 LD HL,20 + 0000054D 09 816 ADD HL,BC + 0000054E 56 817 LD D,(HL) + 0000054F 23 818 INC HL + 00000550 66 819 LD H,(HL) + 00000551 6A 820 LD L,D + 00000552 DD 75 A0 821 LD (IX-96),L + 00000555 DD 74 A1 822 LD (IX-95),H + 00000558 01 14 00 823 LD BC,20 + 0000055B 09 824 ADD HL,BC + 0000055C AF 825 XOR A + 0000055D 77 826 LD (HL),A + 0000055E 23 827 INC HL + 0000055F 77 828 LD (HL),A + 00000560 DD 6E A0 829 LD L,(IX-96) + 00000563 DD 66 A1 830 LD H,(IX-95) + 00000566 70 831 LD (HL),B + 00000567 21 0E 00 832 LD HL,14 + 0000056A DD 4E A0 833 LD C,(IX-96) + 0000056D DD 46 A1 834 LD B,(IX-95) + 00000570 09 835 ADD HL,BC + 00000571 77 836 LD (HL),A + 00000572 23 837 INC HL + 00000573 77 838 LD (HL),A + 00000574 21 10 00 839 LD HL,16 + 00000577 09 840 ADD HL,BC + 00000578 77 841 LD (HL),A + 00000579 23 842 INC HL + 0000057A 77 843 LD (HL),A + 0000057B 23 844 INC HL + 0000057C 77 845 LD (HL),A + 0000057D 23 846 INC HL + 0000057E 77 847 LD (HL),A + 0000057F 848 ?0034: + 0000057F FD E1 849 POP IY + 00000581 C3 00 00 850 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000584 851 ?0047: + 00000584 4E 852 LD C,(HL) + 00000585 23 853 INC HL + 00000586 46 854 LD B,(HL) + 00000587 21 11 00 855 LD HL,17 + 0000058A DD 5E 02 856 LD E,(IX+2) + 0000058D DD 56 03 857 LD D,(IX+3) + 00000590 19 858 ADD HL,DE + 00000591 5E 859 LD E,(HL) + 00000592 23 860 INC HL + 00000593 56 861 LD D,(HL) + 00000594 3E 00 862 LD A,BYTE3 Component_find + 00000596 21 00 00 863 LD HL,LWRD Component_find + 00000599 CD 00 00 864 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000059C EB 865 EX DE,HL + 0000059D 3E 00 866 LD A,BYTE3 Component_setlabel + 0000059F 21 00 00 867 LD HL,LWRD Component_setlabel + 000005A2 C9 868 RET + 000005A3 869 ?0048: + 000005A3 42 870 LD B,D + 000005A4 21 1A 00 871 LD HL,26 + 000005A7 872 ?0049: + 000005A7 09 873 ADD HL,BC + 000005A8 4E 874 LD C,(HL) + 000005A9 23 875 INC HL + 000005AA 46 876 LD B,(HL) + 000005AB 23 877 INC HL + 000005AC 7E 878 LD A,(HL) + 000005AD 69 879 LD L,C + 000005AE 60 880 LD H,B + 000005AF C3 00 00 881 JP LWRD ?BANK_CALL_DIRECT_L08 + 000005B2 882 ?0050: + 000005B2 3E 00 883 LD A,BYTE3 sprintf + 000005B4 21 00 00 884 LD HL,LWRD sprintf + 000005B7 C3 00 00 885 JP LWRD ?BANK_CALL_DIRECT_L08 + 000005BA 886 ?0051: + 000005BA FD 4E 12 887 LD C,(IY+18) + 000005BD FD 46 13 888 LD B,(IY+19) + 000005C0 FD 6E 10 889 LD L,(IY+16) + 000005C3 FD 66 11 890 LD H,(IY+17) + 000005C6 C3 00 00 891 JP LWRD ?SL_MOD_L03 + 000005C9 892 ?0052: + 000005C9 FD 4E 12 893 LD C,(IY+18) + 000005CC FD 46 13 894 LD B,(IY+19) + 000005CF FD 6E 10 895 LD L,(IY+16) + 000005D2 FD 66 11 896 LD H,(IY+17) + 000005D5 C3 00 00 897 JP LWRD ?SL_DIV_L03 + 000005D8 898 ?0053: + 000005D8 FD 4E 12 899 LD C,(IY+18) + 000005DB FD 46 13 900 LD B,(IY+19) + 000005DE FD 6E 10 901 LD L,(IY+16) + 000005E1 FD 66 11 902 LD H,(IY+17) + 000005E4 C3 00 00 903 JP LWRD ?L_MUL_L03 + 000005E7 904 ?0054: + 000005E7 4D 905 LD C,L + 000005E8 44 906 LD B,H + 000005E9 DD 5E A0 907 LD E,(IX-96) + 000005EC DD 56 A1 908 LD D,(IX-95) + 000005EF 3E 00 909 LD A,BYTE3 _write + 000005F1 21 00 00 910 LD HL,LWRD _write + 000005F4 C3 00 00 911 JP LWRD ?BANK_CALL_DIRECT_L08 + 912 RSEG CSTR + 00000000 913 ?0009: + 00000000 00 914 DEFB 0 + 00000001 915 ?0018: + 00000001 2F 64 65 76 2F 70 72 916 DEFB '/dev/printer' 69 6E 74 65 72 - 00000021 00 1018 DEFB 0 - 00000022 1019 ?0029: - 00000022 25 31 33 73 20 56 65 1020 DEFB '%13s Verkoopartikel |%7ld,%02ld' + 0000000D 00 917 DEFB 0 + 0000000E 918 ?0026: + 0000000E 25 31 33 73 20 56 65 919 DEFB '%13s Verkoopartikel |%7ld,%02ld' 72 6B 6F 6F 70 61 72 74 69 6B 65 6C 20 20 7C 25 37 6C 64 2C 25 30 32 6C 64 - 00000042 0D 0A 00 1021 DEFB 13,10,0 - 00000045 1022 ?0031: - 00000045 25 31 33 73 20 56 65 1023 DEFB '%13s Verkoopartikel' + 0000002E 0D 0A 00 920 DEFB 13,10,0 + 00000031 921 ?0028: + 00000031 25 31 33 73 20 56 65 922 DEFB '%13s Verkoopartikel' 72 6B 6F 6F 70 61 72 74 69 6B 65 6C - 00000058 0D 0A 1024 DEFB 13,10 - 0000005A 25 34 64 78 20 40 20 1025 DEFB '%4dx @ | %7ld,%02ld |%7ld,%02ld' + 00000044 0D 0A 923 DEFB 13,10 + 00000046 25 34 64 78 20 40 20 924 DEFB '%4dx @ | %7ld,%02ld |%7ld,%02ld' 7C 20 25 37 6C 64 2C 25 30 32 6C 64 20 20 20 20 20 20 20 20 20 20 7C 25 37 6C 64 2C 25 30 32 6C 64 - 00000082 0D 0A 00 1026 DEFB 13,10,0 - 00000085 1027 ?0032: - 00000085 0D 0A 1028 DEFB 13,10 - 00000087 25 31 33 73 54 6F 74 1029 DEFB '%13sTotaal:%10s|%7ld,%02ld' + 0000006E 0D 0A 00 925 DEFB 13,10,0 + 00000071 926 ?0029: + 00000071 0D 0A 927 DEFB 13,10 + 00000073 25 31 33 73 54 6F 74 928 DEFB '%13sTotaal:%10s|%7ld,%02ld' 61 61 6C 3A 25 31 30 73 7C 25 37 6C 64 2C 25 30 32 6C 64 - 000000A1 0D 0A 0D 0A 0D 0A 00 1030 DEFB 13,10,13,10,13,10,0 - 1031 RSEG UDATA0 - 00000000 1032 trans: - 00000000 1033 DEFS 2 - 00000002 1034 END + 0000008D 0D 0A 0D 0A 0D 0A 00 929 DEFB 13,10,13,10,13,10,0 + 00000094 930 ?0038: + 00000094 42 61 72 63 6F 64 65 931 DEFB 'Barcode' + 0000009B 00 932 DEFB 0 + 0000009C 933 ?0039: + 0000009C 53 74 75 6B 73 934 DEFB 'Stuks' + 000000A1 00 935 DEFB 0 + 000000A2 936 ?0040: + 000000A2 50 72 69 6A 73 937 DEFB 'Prijs' + 000000A7 00 938 DEFB 0 + 939 RSEG UDATA0 + 00000000 940 trans: + 00000000 941 DEFS 2 + 00000002 942 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] Symbol Table .__.ABS. = 00000000 G | 1 ?0000 00000096 R - 1 ?0001 0000009E R | 1 ?0002 000000AD R - 1 ?0003 00000111 R | 2 ?0004 00000000 R - 2 ?0005 00000008 R | 2 ?0006 0000000E R - 1 ?0007 0000013F R | 1 ?0008 00000256 R - 1 ?0009 0000013F R | 1 ?0010 0000013F R - 1 ?0011 0000016A R | 1 ?0012 00000151 R - 1 ?0013 00000160 R | 2 ?0014 00000014 R - 1 ?0015 0000024C R | 1 ?0016 000001DD R - 1 ?0017 000001FA R | 1 ?0018 0000021F R - 1 ?0019 0000026C R | 1 ?0020 000004B3 R - 2 ?0021 00000015 R | 1 ?0022 000003C8 R - 1 ?0023 000002DE R | 1 ?0024 000002E6 R - 1 ?0025 000002EF R | 1 ?0026 000003BC R - 1 ?0027 000002F9 R | 1 ?0028 00000322 R - 2 ?0029 00000022 R | 1 ?0030 0000038C R - 2 ?0031 00000045 R | 2 ?0032 00000085 R - 1 ?0033 00000456 R | 1 ?0034 0000043F R - 1 ?0035 00000443 R | 1 ?0036 000004C9 R - 1 ?0037 000005D2 R | 1 ?0038 000004F4 R - 1 ?0039 000004DB R | 1 ?0040 000004EA R - 1 ?0041 0000014B R | 1 ?0042 00000249 R - 1 ?0043 0000038A R | 1 ?0044 0000043C R - 1 ?0045 000004D5 R | 1 ?0046 0000006D R - 1 ?0047 0000006A R | 1 ?0048 000005D7 R - 1 ?0049 000005EB R | 1 ?0050 000005F2 R - 1 ?0051 00000612 R | 1 ?0052 0000062F R - 1 ?0053 00000643 R | 1 ?0054 00000647 R - 1 ?0055 00000652 R | 1 ?0056 0000065A R - 1 ?0057 00000669 R | 1 ?0058 00000678 R - 1 ?0059 00000687 R | ?BANK_CALL_DIR ******** GX - ?BANK_FAST_LEA ******** GX | ?BANK_LEAVE_DI ******** GX - ?CL64180B_4_06 ******** GX | ?ENT_AUTO_DIRE ******** GX - ?L_ADDASG_L03 ******** GX | ?L_MUL_L03 ******** GX - ?SL_DIV_L03 ******** GX | ?SL_MOD_L03 ******** GX - ?SL_RSH_L03 ******** GX | ?SS_CMP_L02 ******** GX - ?S_S_SWITCH_L0 ******** GX | Component_find ******** GX - Component_setl ******** GX | 1 Transaction_ha 00000075 GR - 1 Transaction_in 00000000 GR | _write ******** GX - atoi ******** GX | atol ******** GX - close ******** GX | free ******** GX - ioctl ******** GX | malloc ******** GX - open ******** GX | sprintf ******** GX - strcpy ******** GX | strlen ******** GX - 3 trans 00000000 GR + 1 ?0001 0000009E R | 1 ?0002 000000CA R + 1 ?0003 000001F4 R | 1 ?0004 000000CA R + 1 ?0005 000000CA R | 1 ?0006 000000F5 R + 1 ?0007 000000DC R | 1 ?0008 000000EB R + 2 ?0009 00000000 R | 1 ?0010 000001EA R + 1 ?0011 00000168 R | 1 ?0012 00000185 R + 1 ?0013 000001B3 R | 1 ?0014 000001BB R + 1 ?0015 000001BD R | 1 ?0016 0000020A R + 1 ?0017 00000451 R | 2 ?0018 00000001 R + 1 ?0019 00000366 R | 1 ?0020 0000027C R + 1 ?0021 00000284 R | 1 ?0022 0000028D R + 1 ?0023 0000035A R | 1 ?0024 00000297 R + 1 ?0025 000002C0 R | 2 ?0026 0000000E R + 1 ?0027 0000032A R | 2 ?0028 00000031 R + 2 ?0029 00000071 R | 1 ?0030 000003F4 R + 1 ?0031 000003DD R | 1 ?0032 000003E1 R + 1 ?0033 00000467 R | 1 ?0034 0000057F R + 1 ?0035 00000492 R | 1 ?0036 00000479 R + 1 ?0037 00000488 R | 2 ?0038 00000094 R + 2 ?0039 0000009C R | 2 ?0040 000000A2 R + 1 ?0041 000000D6 R | 1 ?0042 00000328 R + 1 ?0043 000003DA R | 1 ?0044 00000473 R + 1 ?0045 0000006D R | 1 ?0046 0000006A R + 1 ?0047 00000584 R | 1 ?0048 000005A3 R + 1 ?0049 000005A7 R | 1 ?0050 000005B2 R + 1 ?0051 000005BA R | 1 ?0052 000005C9 R + 1 ?0053 000005D8 R | 1 ?0054 000005E7 R + ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX + ?BANK_LEAVE_DI ******** GX | ?CL64180B_4_06 ******** GX + ?ENT_AUTO_DIRE ******** GX | ?L_ADDASG_L03 ******** GX + ?L_MUL_L03 ******** GX | ?SL_DIV_L03 ******** GX + ?SL_MOD_L03 ******** GX | ?SL_RSH_L03 ******** GX + ?SS_CMP_L02 ******** GX | ?S_S_SWITCH_L0 ******** GX + Component_find ******** GX | Component_setl ******** GX + 1 Transaction_ha 00000075 GR | 1 Transaction_in 00000000 GR + _write ******** GX | atoi ******** GX + atol ******** GX | close ******** GX + free ******** GX | ioctl ******** GX + malloc ******** GX | open ******** GX + sprintf ******** GX | strcpy ******** GX + strlen ******** GX | 3 trans 00000000 GR + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. Hexadecimal [32-Bits] Area Table 0 _DEFAULT size 0 flags 0 - 1 CODE size 697 flags 0 + 1 CODE size 5F7 flags 0 2 CSTR size A8 flags 0 3 UDATA0 size 2 flags 0 diff --git a/src/gui/trans.rel b/src/gui/trans.rel index 0fc49de1..97ed7dce 100644 --- a/src/gui/trans.rel +++ b/src/gui/trans.rel @@ -28,7 +28,7 @@ S malloc Ref00000000 S Component_setlabel Ref00000000 S .__.ABS. Def00000000 A _DEFAULT size 0 flags 0 -A CODE size 697 flags 0 +A CODE size 5F7 flags 0 S Transaction_handler Def00000075 S Transaction_init Def00000000 A CSTR size A8 flags 0 @@ -88,549 +88,495 @@ T 9C 00 00 00 00 00 00 00 R 00 00 01 00 02 04 0B 00 T 9E 00 00 00 R 00 00 01 00 -T 9E 00 00 00 68 DD 66 9F 23 23 23 3E 10 23 AE +T 9E 00 00 00 68 DD 66 9F 23 23 23 46 23 66 68 R 00 00 01 00 -T A9 00 00 00 2B B6 20 64 +T A9 00 00 00 01 10 90 3E 80 AC 67 ED 42 DA R 00 00 01 00 -T AD 00 00 00 -R 00 00 01 00 -T AD 00 00 00 21 07 00 48 DD 46 9F 09 6E 67 E5 -R 00 00 01 00 -T B8 00 00 00 2A 00 00 00 00 C1 71 23 70 2A -R 00 00 01 00 00 05 03 00 -T C0 00 00 00 00 00 00 00 23 23 E5 CD -R 00 00 01 00 00 04 03 00 -T C6 00 00 00 D7 05 00 00 E1 71 23 70 21 04 00 -R 00 00 01 00 00 04 01 00 -T CF 00 00 00 ED 4B 00 00 00 00 09 E5 21 07 00 -R 00 00 01 00 00 06 03 00 -T D8 00 00 00 DD 5E 9E DD 56 9F 19 5E 23 56 23 -R 00 00 01 00 -T E3 00 00 00 4E 23 46 EB 3E 10 CD EB 05 00 00 -R 00 00 01 00 00 0B 01 00 -T EC 00 00 00 E1 71 23 70 2A 00 00 00 00 4E 23 -R 00 00 01 00 00 09 03 00 -T F5 00 00 00 46 DD 5E 02 DD 56 03 CD -R 00 00 01 00 -T FD 00 00 00 12 06 00 00 DD 5E 02 DD 56 03 CD +T B3 00 00 00 F4 01 00 00 DD 6E 9E DD 66 9F 23 R 00 00 01 00 00 04 01 00 -T 06 01 00 00 F2 05 00 00 DD 5E 02 DD 56 03 CD -R 00 00 01 00 00 04 01 00 -T 0F 01 00 00 2F 06 00 00 -R 00 00 01 00 00 04 01 00 -T 11 01 00 00 -R 00 00 01 00 -T 11 01 00 00 DD 6E 9E DD 66 9F 23 23 23 46 23 +T BC 00 00 00 23 23 4E 23 46 21 12 10 CD R 00 00 01 00 -T 1C 01 00 00 66 68 01 10 90 3E 80 AC 67 ED 42 -R 00 00 01 00 -T 27 01 00 00 DA 56 02 00 00 DD 6E 9E DD 66 9F -R 00 00 01 00 00 05 01 00 -T 30 01 00 00 23 23 23 4E 23 46 21 12 10 CD -R 00 00 01 00 -T 3A 01 00 00 00 00 00 00 DA 56 02 00 00 +T C5 00 00 00 00 00 00 00 DA F4 01 00 00 R 00 00 01 00 02 04 13 00 00 09 01 00 -T 3F 01 00 00 +T CA 00 00 00 R 00 00 01 00 -T 3F 01 00 00 +T CA 00 00 00 R 00 00 01 00 -T 3F 01 00 00 +T CA 00 00 00 R 00 00 01 00 -T 3F 01 00 00 21 06 00 ED 4B 00 00 00 00 09 46 +T CA 00 00 00 21 06 00 ED 4B 00 00 00 00 09 46 R 00 00 01 00 00 09 03 00 -T 48 01 00 00 23 66 68 +T D3 00 00 00 23 66 68 R 00 00 01 00 -T 4B 01 00 00 +T D6 00 00 00 R 00 00 01 00 -T 4B 01 00 00 DD 75 A2 DD 74 A3 +T D6 00 00 00 DD 75 A2 DD 74 A3 R 00 00 01 00 -T 51 01 00 00 +T DC 00 00 00 R 00 00 01 00 -T 51 01 00 00 21 14 00 DD 4E A2 DD 46 A3 09 7E +T DC 00 00 00 21 14 00 DD 4E A2 DD 46 A3 09 7E R 00 00 01 00 -T 5C 01 00 00 23 B6 28 0A +T E7 00 00 00 23 B6 28 0A R 00 00 01 00 -T 60 01 00 00 +T EB 00 00 00 R 00 00 01 00 -T 60 01 00 00 21 14 00 09 56 23 66 6A 18 E1 +T EB 00 00 00 21 14 00 09 56 23 66 6A 18 E1 R 00 00 01 00 -T 6A 01 00 00 +T F5 00 00 00 R 00 00 01 00 -T 6A 01 00 00 21 05 00 DD 4E 9E DD 46 9F 09 4E +T F5 00 00 00 21 05 00 DD 4E 9E DD 46 9F 09 4E R 00 00 01 00 -T 75 01 00 00 23 46 21 11 00 DD 5E 02 DD 56 03 +T 00 01 00 00 23 46 21 11 00 DD 5E 02 DD 56 03 R 00 00 01 00 -T 80 01 00 00 19 5E 23 56 3E 00 00 00 00 21 +T 0B 01 00 00 19 5E 23 56 3E 00 00 00 00 21 R 00 00 01 00 2B 09 04 00 -T 87 01 00 00 00 00 00 00 CD 00 00 00 00 DD 75 +T 12 01 00 00 00 00 00 00 CD 00 00 00 00 DD 75 R 00 00 01 00 02 04 04 00 02 09 0B 00 -T 8E 01 00 00 A0 DD 74 A1 01 20 00 09 4E 23 46 +T 19 01 00 00 A0 DD 74 A1 01 20 00 09 4E 23 46 R 00 00 01 00 -T 99 01 00 00 DD 5E 02 DD 56 03 3E 00 00 00 00 +T 24 01 00 00 DD 5E 02 DD 56 03 3E 00 00 00 00 R 00 00 01 00 2B 0B 18 00 -T A1 01 00 00 21 00 00 00 00 CD 00 00 00 00 01 +T 2C 01 00 00 21 00 00 00 00 CD 00 00 00 00 01 R 00 00 01 00 02 05 18 00 02 0A 0B 00 -T A8 01 00 00 14 00 00 00 DD 5E A0 DD 56 A1 3E +T 33 01 00 00 00 00 00 00 DD 5E A0 DD 56 A1 3E R 00 00 01 00 00 04 02 00 -T B1 01 00 00 00 00 00 00 21 00 00 00 00 CD +T 3C 01 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 18 00 02 09 18 00 -T B6 01 00 00 00 00 00 00 DD 5E A0 4B DD 56 A1 +T 41 01 00 00 00 00 00 00 DD 5E A0 4B DD 56 A1 R 00 00 01 00 02 04 0B 00 -T BF 01 00 00 CD 43 06 00 00 DD 6E 9E DD 66 9F +T 4A 01 00 00 CD A3 05 00 00 DD 6E 9E DD 66 9F R 00 00 01 00 00 05 01 00 -T C8 01 00 00 23 23 23 5E 23 56 CD 00 00 00 00 +T 53 01 00 00 23 23 23 5E 23 56 CD 00 00 00 00 R 00 00 01 00 02 0B 0D 00 -T D1 01 00 00 10 10 03 00 4C 02 00 00 +T 5C 01 00 00 10 10 03 00 EA 01 00 00 R 00 00 01 00 00 08 01 00 -T D7 01 00 00 DD 01 00 00 FA 01 00 00 +T 62 01 00 00 68 01 00 00 85 01 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T DB 01 00 00 1F 02 00 00 +T 66 01 00 00 BD 01 00 00 R 00 00 01 00 00 04 01 00 -T DD 01 00 00 +T 68 01 00 00 R 00 00 01 00 -T DD 01 00 00 21 20 00 DD 4E 02 DD 46 03 09 4E +T 68 01 00 00 21 20 00 DD 4E 02 DD 46 03 09 4E R 00 00 01 00 -T E8 01 00 00 23 46 DD 5E A2 DD 56 A3 3E +T 73 01 00 00 23 46 DD 5E A2 DD 56 A3 3E R 00 00 01 00 -T F1 01 00 00 00 00 00 00 21 00 00 00 00 CD +T 7C 01 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 0C 00 02 09 0C 00 -T F6 01 00 00 00 00 00 00 18 52 +T 81 01 00 00 00 00 00 00 18 65 R 00 00 01 00 02 04 0B 00 -T FA 01 00 00 +T 85 01 00 00 R 00 00 01 00 -T FA 01 00 00 21 0E 00 DD 4E A2 DD 46 A3 09 E5 +T 85 01 00 00 21 0E 00 DD 4E A2 DD 46 A3 09 E5 R 00 00 01 00 -T 05 02 00 00 21 20 00 DD 4E 02 DD 46 03 09 5E +T 90 01 00 00 21 20 00 DD 5E 02 DD 56 03 19 5E R 00 00 01 00 -T 10 02 00 00 23 56 3E 00 00 00 00 21 +T 9B 01 00 00 23 56 3E 00 00 00 00 21 R 00 00 01 00 2B 07 10 00 -T 15 02 00 00 00 00 00 00 CD 00 00 00 00 4D 44 +T A0 01 00 00 00 00 00 00 CD 00 00 00 00 EB E1 R 00 00 01 00 02 04 10 00 02 09 0B 00 -T 1C 02 00 00 E1 18 2A +T A7 01 00 00 73 23 72 21 0E 00 09 7E 23 B6 20 R 00 00 01 00 -T 1F 02 00 00 +T B2 01 00 00 37 R 00 00 01 00 -T 1F 02 00 00 21 20 00 DD 4E 02 DD 46 03 09 5E +T B3 01 00 00 R 00 00 01 00 -T 2A 02 00 00 23 56 3E 00 00 00 00 21 -R 00 00 01 00 2B 07 12 00 -T 2F 02 00 00 00 00 00 00 CD 00 00 00 00 7C 07 -R 00 00 01 00 02 04 12 00 02 09 0B 00 -T 36 02 00 00 9F 4F 41 E5 21 10 00 DD 5E A2 DD +T B3 01 00 00 21 0E 00 09 36 01 23 77 R 00 00 01 00 -T 41 02 00 00 56 A3 19 D1 73 23 72 23 +T BB 01 00 00 R 00 00 01 00 -T 49 02 00 00 +T BB 01 00 00 18 2D R 00 00 01 00 -T 49 02 00 00 71 23 70 +T BD 01 00 00 R 00 00 01 00 -T 4C 02 00 00 +T BD 01 00 00 21 20 00 DD 4E 02 DD 46 03 09 5E R 00 00 01 00 -T 4C 02 00 00 DD 5E 02 4B DD 56 03 CD +T C8 01 00 00 23 56 3E 00 00 00 00 21 +R 00 00 01 00 2B 07 12 00 +T CD 01 00 00 00 00 00 00 CD 00 00 00 00 7C 07 +R 00 00 01 00 02 04 12 00 02 09 0B 00 +T D4 01 00 00 9F 4F 41 E5 21 10 00 DD 5E A2 DD +R 00 00 01 00 +T DF 01 00 00 56 A3 19 D1 73 23 72 23 71 23 70 +R 00 00 01 00 +T EA 01 00 00 R 00 00 01 00 -T 54 02 00 00 43 06 00 00 +T EA 01 00 00 DD 5E 02 4B DD 56 03 CD +R 00 00 01 00 +T F2 01 00 00 A3 05 00 00 R 00 00 01 00 00 04 01 00 -T 56 02 00 00 +T F4 01 00 00 R 00 00 01 00 -T 56 02 00 00 DD 6E 9E DD 66 9F 23 23 23 46 23 +T F4 01 00 00 DD 6E 9E DD 66 9F 23 23 23 46 23 R 00 00 01 00 -T 61 02 00 00 66 68 01 1E 10 A7 ED 42 C2 +T FF 01 00 00 66 68 01 1E 10 A7 ED 42 C2 R 00 00 01 00 -T 6A 02 00 00 B3 04 00 00 +T 08 02 00 00 51 04 00 00 R 00 00 01 00 00 04 01 00 -T 6C 02 00 00 +T 0A 02 00 00 R 00 00 01 00 -T 6C 02 00 00 AF DD 77 AC DD 77 AD DD 77 AE DD +T 0A 02 00 00 AF DD 77 AC DD 77 AD DD 77 AE DD R 00 00 01 00 -T 77 02 00 00 77 AF 21 06 00 ED 4B 00 00 00 00 +T 15 02 00 00 77 AF 21 06 00 ED 4B 00 00 00 00 R 00 00 01 00 00 0B 03 00 -T 80 02 00 00 09 46 23 66 68 E5 FD E1 21 01 00 +T 1E 02 00 00 09 46 23 66 68 E5 FD E1 21 01 00 R 00 00 01 00 -T 8B 02 00 00 E5 21 15 00 00 00 E5 3E +T 29 02 00 00 E5 21 01 00 00 00 E5 3E R 00 00 01 00 00 06 02 00 -T 91 02 00 00 00 00 00 00 21 00 00 00 00 CD +T 2F 02 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 14 00 02 09 14 00 -T 96 02 00 00 00 00 00 00 F1 F1 DD 75 A0 DD 74 +T 34 02 00 00 00 00 00 00 F1 F1 DD 75 A0 DD 74 R 00 00 01 00 02 04 0B 00 -T 9F 02 00 00 A1 21 08 00 39 E5 21 00 00 E5 DD +T 3D 02 00 00 A1 21 08 00 39 E5 21 00 00 E5 DD R 00 00 01 00 -T AA 02 00 00 6E A0 DD 66 A1 E5 3E 00 00 00 00 +T 48 02 00 00 6E A0 DD 66 A1 E5 3E 00 00 00 00 R 00 00 01 00 2B 0B 08 00 -T B2 02 00 00 21 00 00 00 00 CD 00 00 00 00 F1 +T 50 02 00 00 21 00 00 00 00 CD 00 00 00 00 F1 R 00 00 01 00 02 05 08 00 02 0A 0B 00 -T B9 02 00 00 F1 F1 DD 36 A8 60 DD 36 A9 00 21 +T 57 02 00 00 F1 F1 DD 36 A8 60 DD 36 A9 00 21 R 00 00 01 00 -T C4 02 00 00 08 00 39 E5 21 01 00 E5 DD 6E A0 +T 62 02 00 00 08 00 39 E5 21 01 00 E5 DD 6E A0 R 00 00 01 00 -T CF 02 00 00 DD 66 A1 E5 3E 00 00 00 00 21 +T 6D 02 00 00 DD 66 A1 E5 3E 00 00 00 00 21 R 00 00 01 00 2B 09 08 00 -T D6 02 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 +T 74 02 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 R 00 00 01 00 02 04 08 00 02 09 0B 00 -T DD 02 00 00 F1 +T 7B 02 00 00 F1 R 00 00 01 00 -T DE 02 00 00 +T 7C 02 00 00 R 00 00 01 00 -T DE 02 00 00 FD E5 E1 7D B4 CA C8 03 00 00 +T 7C 02 00 00 FD E5 E1 7D B4 CA 66 03 00 00 R 00 00 01 00 00 0A 01 00 -T E6 02 00 00 +T 84 02 00 00 R 00 00 01 00 -T E6 02 00 00 FD 7E 0E FD B6 0F CA BC 03 00 00 +T 84 02 00 00 FD 7E 0E FD B6 0F CA 5A 03 00 00 R 00 00 01 00 00 0B 01 00 -T EF 02 00 00 +T 8D 02 00 00 R 00 00 01 00 -T EF 02 00 00 3E 01 FD AE 0E FD B6 0F 20 29 +T 8D 02 00 00 3E 01 FD AE 0E FD B6 0F 20 29 R 00 00 01 00 -T F9 02 00 00 +T 97 02 00 00 R 00 00 01 00 -T F9 02 00 00 6F 67 E5 2E 64 E5 CD 5A 06 00 00 +T 97 02 00 00 6F 67 E5 2E 64 E5 CD BA 05 00 00 R 00 00 01 00 00 0B 01 00 -T 02 03 00 00 C5 E5 6F 67 E5 2E 64 E5 CD +T A0 02 00 00 C5 E5 6F 67 E5 2E 64 E5 CD R 00 00 01 00 -T 0B 03 00 00 69 06 00 00 C5 E5 FD E5 21 +T A9 02 00 00 C9 05 00 00 C5 E5 FD E5 21 R 00 00 01 00 00 04 01 00 -T 12 03 00 00 22 00 00 00 E5 21 20 00 39 E5 CD +T B0 02 00 00 0E 00 00 00 E5 21 20 00 39 E5 CD R 00 00 01 00 00 04 02 00 -T 1B 03 00 00 52 06 00 00 21 0E 00 18 68 +T B9 02 00 00 B2 05 00 00 21 0E 00 18 68 R 00 00 01 00 00 04 01 00 -T 22 03 00 00 +T C0 02 00 00 R 00 00 01 00 -T 22 03 00 00 21 00 00 E5 2E 64 E5 FD 6E 0E FD +T C0 02 00 00 21 00 00 E5 2E 64 E5 FD 6E 0E FD R 00 00 01 00 -T 2D 03 00 00 66 0F 7C 07 9F 4F 41 C5 E5 CD +T CB 02 00 00 66 0F 7C 07 9F 4F 41 C5 E5 CD R 00 00 01 00 -T 37 03 00 00 78 06 00 00 CD 00 00 00 00 C5 E5 +T D5 02 00 00 D8 05 00 00 CD 00 00 00 00 C5 E5 R 00 00 01 00 00 04 01 00 02 09 0E 00 -T 3E 03 00 00 21 00 00 E5 2E 64 E5 FD 6E 0E FD +T DC 02 00 00 21 00 00 E5 2E 64 E5 FD 6E 0E FD R 00 00 01 00 -T 49 03 00 00 66 0F 7C 07 9F 4F 41 C5 E5 CD +T E7 02 00 00 66 0F 7C 07 9F 4F 41 C5 E5 CD R 00 00 01 00 -T 53 03 00 00 78 06 00 00 CD 00 00 00 00 C5 E5 +T F1 02 00 00 D8 05 00 00 CD 00 00 00 00 C5 E5 R 00 00 01 00 00 04 01 00 02 09 11 00 -T 5A 03 00 00 21 00 00 E5 2E 64 E5 CD +T F8 02 00 00 21 00 00 E5 2E 64 E5 CD R 00 00 01 00 -T 62 03 00 00 5A 06 00 00 C5 E5 21 00 00 E5 2E +T 00 03 00 00 BA 05 00 00 C5 E5 21 00 00 E5 2E R 00 00 01 00 00 04 01 00 -T 6B 03 00 00 64 E5 CD 69 06 00 00 C5 E5 FD 6E +T 09 03 00 00 64 E5 CD C9 05 00 00 C5 E5 FD 6E R 00 00 01 00 00 07 01 00 -T 74 03 00 00 0E FD 66 0F E5 FD E5 21 +T 12 03 00 00 0E FD 66 0F E5 FD E5 21 R 00 00 01 00 -T 7C 03 00 00 45 00 00 00 E5 21 2A 00 39 E5 CD +T 1A 03 00 00 31 00 00 00 E5 21 2A 00 39 E5 CD R 00 00 01 00 00 04 02 00 -T 85 03 00 00 52 06 00 00 21 18 00 +T 23 03 00 00 B2 05 00 00 21 18 00 R 00 00 01 00 00 04 01 00 -T 8A 03 00 00 +T 28 03 00 00 R 00 00 01 00 -T 8A 03 00 00 39 F9 +T 28 03 00 00 39 F9 R 00 00 01 00 -T 8C 03 00 00 +T 2A 03 00 00 R 00 00 01 00 -T 8C 03 00 00 21 10 00 39 E5 FD 5E 0E FD 56 0F +T 2A 03 00 00 21 10 00 39 E5 FD 5E 0E FD 56 0F R 00 00 01 00 -T 97 03 00 00 7A 07 9F 4F 41 C5 D5 CD +T 35 03 00 00 7A 07 9F 4F 41 C5 D5 CD R 00 00 01 00 -T 9F 03 00 00 78 06 00 00 EB E1 CD 00 00 00 00 +T 3D 03 00 00 D8 05 00 00 EB E1 CD 00 00 00 00 R 00 00 01 00 00 04 01 00 02 0B 09 00 -T A6 03 00 00 21 14 00 39 EB 3E 00 00 00 00 21 +T 44 03 00 00 21 14 00 39 EB 3E 00 00 00 00 21 R 00 00 01 00 2B 0A 07 00 -T AE 03 00 00 00 00 00 00 CD 00 00 00 00 E5 21 +T 4C 03 00 00 00 00 00 00 CD 00 00 00 00 E5 21 R 00 00 01 00 02 04 07 00 02 09 0B 00 -T B5 03 00 00 16 00 39 CD 87 06 00 00 F1 +T 53 03 00 00 16 00 39 CD E7 05 00 00 F1 R 00 00 01 00 00 08 01 00 -T BC 03 00 00 +T 5A 03 00 00 R 00 00 01 00 -T BC 03 00 00 FD 6E 14 FD 66 15 E5 FD E1 C3 +T 5A 03 00 00 FD 6E 14 FD 66 15 E5 FD E1 C3 R 00 00 01 00 -T C6 03 00 00 DE 02 00 00 +T 64 03 00 00 7C 02 00 00 R 00 00 01 00 00 04 01 00 -T C8 03 00 00 +T 66 03 00 00 R 00 00 01 00 -T C8 03 00 00 6F 67 E5 2E 64 E5 DD 4E AE DD 46 +T 66 03 00 00 6F 67 E5 2E 64 E5 DD 4E AE DD 46 R 00 00 01 00 -T D3 03 00 00 AF DD 6E AC DD 66 AD CD +T 71 03 00 00 AF DD 6E AC DD 66 AD CD R 00 00 01 00 -T DB 03 00 00 00 00 00 00 C5 E5 6F 67 E5 2E 64 +T 79 03 00 00 00 00 00 00 C5 E5 6F 67 E5 2E 64 R 00 00 01 00 02 04 0E 00 -T E4 03 00 00 E5 DD 4E AE DD 46 AF DD 6E AC DD +T 82 03 00 00 E5 DD 4E AE DD 46 AF DD 6E AC DD R 00 00 01 00 -T EF 03 00 00 66 AD CD 00 00 00 00 C5 E5 21 +T 8D 03 00 00 66 AD CD 00 00 00 00 C5 E5 21 R 00 00 01 00 02 07 11 00 -T F7 03 00 00 14 00 00 00 E5 E5 21 85 00 00 00 +T 95 03 00 00 00 00 00 00 E5 E5 21 71 00 00 00 R 00 00 01 00 00 04 02 00 00 0B 02 00 -T FE 03 00 00 E5 21 22 00 39 E5 CD 52 06 00 00 +T 9C 03 00 00 E5 21 22 00 39 E5 CD B2 05 00 00 R 00 00 01 00 00 0B 01 00 -T 07 04 00 00 21 10 00 39 F9 21 14 00 39 EB 3E +T A5 03 00 00 21 10 00 39 F9 21 14 00 39 EB 3E R 00 00 01 00 -T 12 04 00 00 00 00 00 00 21 00 00 00 00 CD +T B0 03 00 00 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 04 07 00 02 09 07 00 -T 17 04 00 00 00 00 00 00 E5 21 16 00 39 CD +T B5 03 00 00 00 00 00 00 E5 21 16 00 39 CD R 00 00 01 00 02 04 0B 00 -T 1F 04 00 00 87 06 00 00 F1 DD 5E A0 DD 56 A1 +T BD 03 00 00 E7 05 00 00 F1 DD 5E A0 DD 56 A1 R 00 00 01 00 00 04 01 00 -T 28 04 00 00 3E 00 00 00 00 21 00 00 00 00 CD +T C6 03 00 00 3E 00 00 00 00 21 00 00 00 00 CD R 00 00 01 00 2B 05 06 00 02 0A 06 00 -T 2E 04 00 00 00 00 00 00 21 06 00 ED 4B +T CC 03 00 00 00 00 00 00 21 06 00 ED 4B R 00 00 01 00 02 04 0B 00 -T 35 04 00 00 00 00 00 00 09 46 23 66 68 +T D3 03 00 00 00 00 00 00 09 46 23 66 68 R 00 00 01 00 00 04 03 00 -T 3C 04 00 00 +T DA 03 00 00 R 00 00 01 00 -T 3C 04 00 00 E5 FD E1 +T DA 03 00 00 E5 FD E1 R 00 00 01 00 -T 3F 04 00 00 +T DD 03 00 00 R 00 00 01 00 -T 3F 04 00 00 7D B4 28 13 +T DD 03 00 00 7D B4 28 13 R 00 00 01 00 -T 43 04 00 00 +T E1 03 00 00 R 00 00 01 00 -T 43 04 00 00 FD E5 D1 3E 00 00 00 00 21 +T E1 03 00 00 FD E5 D1 3E 00 00 00 00 21 R 00 00 01 00 2B 08 0A 00 -T 49 04 00 00 00 00 00 00 CD 00 00 00 00 FD 6E +T E7 03 00 00 00 00 00 00 CD 00 00 00 00 FD 6E R 00 00 01 00 02 04 0A 00 02 09 0B 00 -T 50 04 00 00 14 FD 66 15 18 E6 +T EE 03 00 00 14 FD 66 15 18 E6 R 00 00 01 00 -T 56 04 00 00 +T F4 03 00 00 R 00 00 01 00 -T 56 04 00 00 21 06 00 ED 4B 00 00 00 00 09 E5 +T F4 03 00 00 21 06 00 ED 4B 00 00 00 00 09 E5 R 00 00 01 00 00 09 03 00 -T 5F 04 00 00 CD 6A 00 00 00 EB E1 73 23 72 21 +T FD 03 00 00 CD 6A 00 00 00 EB E1 73 23 72 21 R 00 00 01 00 00 05 01 00 -T 68 04 00 00 06 00 ED 4B 00 00 00 00 09 56 23 +T 06 04 00 00 06 00 ED 4B 00 00 00 00 09 56 23 R 00 00 01 00 00 08 03 00 -T 71 04 00 00 66 6A 11 14 00 19 AF 77 23 77 21 +T 0F 04 00 00 66 6A 11 14 00 19 AF 77 23 77 21 R 00 00 01 00 -T 7C 04 00 00 06 00 ED 4B 00 00 00 00 09 7E 23 +T 1A 04 00 00 06 00 ED 4B 00 00 00 00 09 7E 23 R 00 00 01 00 00 08 03 00 -T 85 04 00 00 66 6F 72 21 06 00 ED 4B +T 23 04 00 00 66 6F 72 21 06 00 ED 4B R 00 00 01 00 -T 8D 04 00 00 00 00 00 00 09 56 23 66 6A 11 +T 2B 04 00 00 00 00 00 00 09 56 23 66 6A 11 R 00 00 01 00 00 04 03 00 -T 95 04 00 00 0E 00 19 AF 77 23 77 21 06 00 ED +T 33 04 00 00 0E 00 19 AF 77 23 77 21 06 00 ED R 00 00 01 00 -T A0 04 00 00 4B 00 00 00 00 09 46 23 66 68 01 +T 3E 04 00 00 4B 00 00 00 00 09 46 23 66 68 01 R 00 00 01 00 00 05 03 00 -T A9 04 00 00 10 00 09 77 23 77 23 77 23 77 +T 47 04 00 00 10 00 09 77 23 77 23 77 23 77 R 00 00 01 00 -T B3 04 00 00 +T 51 04 00 00 R 00 00 01 00 -T B3 04 00 00 DD 6E 9E DD 66 9F 23 23 23 46 23 +T 51 04 00 00 DD 6E 9E DD 66 9F 23 23 23 46 23 R 00 00 01 00 -T BE 04 00 00 66 68 01 1F 10 A7 ED 42 C2 +T 5C 04 00 00 66 68 01 1F 10 A7 ED 42 C2 R 00 00 01 00 -T C7 04 00 00 D2 05 00 00 +T 65 04 00 00 7F 05 00 00 R 00 00 01 00 00 04 01 00 -T C9 04 00 00 +T 67 04 00 00 R 00 00 01 00 -T C9 04 00 00 21 06 00 ED 4B 00 00 00 00 09 46 +T 67 04 00 00 21 06 00 ED 4B 00 00 00 00 09 46 R 00 00 01 00 00 09 03 00 -T D2 04 00 00 23 66 68 +T 70 04 00 00 23 66 68 R 00 00 01 00 -T D5 04 00 00 +T 73 04 00 00 R 00 00 01 00 -T D5 04 00 00 DD 75 A0 DD 74 A1 +T 73 04 00 00 DD 75 A0 DD 74 A1 R 00 00 01 00 -T DB 04 00 00 +T 79 04 00 00 R 00 00 01 00 -T DB 04 00 00 21 14 00 DD 4E A0 DD 46 A1 09 7E +T 79 04 00 00 21 14 00 DD 4E A0 DD 46 A1 09 7E R 00 00 01 00 -T E6 04 00 00 23 B6 28 0A +T 84 04 00 00 23 B6 28 0A R 00 00 01 00 -T EA 04 00 00 +T 88 04 00 00 R 00 00 01 00 -T EA 04 00 00 21 14 00 09 56 23 66 6A 18 E1 +T 88 04 00 00 21 14 00 09 56 23 66 6A 18 E1 R 00 00 01 00 -T F4 04 00 00 +T 92 04 00 00 R 00 00 01 00 -T F4 04 00 00 21 07 00 DD 4E 9E DD 46 9F 09 6E +T 92 04 00 00 21 07 00 DD 4E 9E DD 46 9F 09 6E R 00 00 01 00 -T FF 04 00 00 67 E5 2A 00 00 00 00 C1 71 23 70 +T 9D 04 00 00 67 E5 2A 00 00 00 00 C1 71 23 70 R 00 00 01 00 00 07 03 00 -T 08 05 00 00 2A 00 00 00 00 23 23 E5 CD +T A6 04 00 00 2A 00 00 00 00 23 23 E5 21 07 00 R 00 00 01 00 00 05 03 00 -T 0F 05 00 00 D7 05 00 00 E1 71 23 70 21 04 00 -R 00 00 01 00 00 04 01 00 -T 18 05 00 00 ED 4B 00 00 00 00 09 E5 21 07 00 -R 00 00 01 00 00 06 03 00 -T 21 05 00 00 DD 5E 9E DD 56 9F 19 5E 23 56 23 +T AF 04 00 00 DD 4E 9E DD 46 9F 09 5E 23 56 23 R 00 00 01 00 -T 2C 05 00 00 4E 23 46 EB 3E 10 CD EB 05 00 00 -R 00 00 01 00 00 0B 01 00 -T 35 05 00 00 E1 71 23 70 2A 00 00 00 00 4E 23 -R 00 00 01 00 00 09 03 00 -T 3E 05 00 00 46 21 11 00 DD 5E 02 DD 56 03 19 +T BA 04 00 00 4E 23 46 EB 3E 08 CD 00 00 00 00 +R 00 00 01 00 02 0B 16 00 +T C3 04 00 00 06 00 4D E1 71 23 70 21 04 00 ED R 00 00 01 00 -T 49 05 00 00 5E 23 56 CD 12 06 00 00 21 11 00 -R 00 00 01 00 00 08 01 00 -T 52 05 00 00 DD 5E 02 DD 56 03 19 5E 23 56 CD +T CE 04 00 00 4B 00 00 00 00 09 E5 21 07 00 DD +R 00 00 01 00 00 05 03 00 +T D7 04 00 00 5E 9E DD 56 9F 19 5E 23 56 23 4E R 00 00 01 00 -T 5D 05 00 00 F2 05 00 00 21 11 00 DD 5E 02 DD -R 00 00 01 00 00 04 01 00 -T 66 05 00 00 56 03 19 5E 23 56 CD 2F 06 00 00 -R 00 00 01 00 00 0B 01 00 -T 6F 05 00 00 21 11 00 DD 4E 02 DD 46 03 09 5E +T E2 04 00 00 23 46 EB 3E 10 CD 00 00 00 00 06 +R 00 00 01 00 02 0A 16 00 +T EB 04 00 00 00 4D E1 71 23 70 2A 00 00 00 00 +R 00 00 01 00 00 0B 03 00 +T F4 04 00 00 CD 84 05 00 00 01 94 00 00 00 CD +R 00 00 01 00 00 05 01 00 00 0A 02 00 +T FB 04 00 00 00 00 00 00 2A 00 00 00 00 23 23 +R 00 00 01 00 02 04 0B 00 00 09 03 00 +T 02 05 00 00 CD 84 05 00 00 01 9C 00 00 00 CD +R 00 00 01 00 00 05 01 00 00 0A 02 00 +T 09 05 00 00 00 00 00 00 21 04 00 ED 5B +R 00 00 01 00 02 04 0B 00 +T 10 05 00 00 00 00 00 00 19 CD 84 05 00 00 01 +R 00 00 01 00 00 04 03 00 00 0A 01 00 +T 17 05 00 00 A2 00 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 04 02 00 02 09 0B 00 +T 1D 05 00 00 11 00 DD 4E 02 DD 46 03 09 5E 23 R 00 00 01 00 -T 7A 05 00 00 23 56 21 11 00 09 46 23 66 68 01 +T 28 05 00 00 56 21 11 00 09 46 23 66 68 01 R 00 00 01 00 -T 85 05 00 00 1A 00 CD 47 06 00 00 21 14 00 DD +T 32 05 00 00 1A 00 CD A7 05 00 00 21 14 00 DD R 00 00 01 00 00 07 01 00 -T 8E 05 00 00 4E A0 DD 46 A1 09 E5 CD +T 3B 05 00 00 4E A0 DD 46 A1 09 E5 CD R 00 00 01 00 -T 96 05 00 00 6A 00 00 00 EB E1 73 23 72 21 +T 43 05 00 00 6A 00 00 00 EB E1 73 23 72 21 R 00 00 01 00 00 04 01 00 -T 9E 05 00 00 14 00 09 56 23 66 6A DD 75 A0 DD +T 4B 05 00 00 14 00 09 56 23 66 6A DD 75 A0 DD R 00 00 01 00 -T A9 05 00 00 74 A1 01 14 00 09 AF 77 23 77 DD +T 56 05 00 00 74 A1 01 14 00 09 AF 77 23 77 DD R 00 00 01 00 -T B4 05 00 00 6E A0 DD 66 A1 70 21 0E 00 DD 4E +T 61 05 00 00 6E A0 DD 66 A1 70 21 0E 00 DD 4E R 00 00 01 00 -T BF 05 00 00 A0 DD 46 A1 09 77 23 77 21 10 00 +T 6C 05 00 00 A0 DD 46 A1 09 77 23 77 21 10 00 R 00 00 01 00 -T CA 05 00 00 09 77 23 77 23 77 23 77 +T 77 05 00 00 09 77 23 77 23 77 23 77 R 00 00 01 00 -T D2 05 00 00 +T 7F 05 00 00 R 00 00 01 00 -T D2 05 00 00 FD E1 C3 00 00 00 00 +T 7F 05 00 00 FD E1 C3 00 00 00 00 R 00 00 01 00 02 07 05 00 -T D7 05 00 00 -R 00 00 01 00 -T D7 05 00 00 21 07 00 DD 4E 9E DD 46 9F 09 5E -R 00 00 01 00 -T E2 05 00 00 23 56 23 4E 23 46 EB 3E 08 +T 84 05 00 00 R 00 00 01 00 -T EB 05 00 00 +T 84 05 00 00 4E 23 46 21 11 00 DD 5E 02 DD 56 R 00 00 01 00 -T EB 05 00 00 CD 00 00 00 00 06 00 4D C9 -R 00 00 01 00 02 05 16 00 -T F2 05 00 00 -R 00 00 01 00 -T F2 05 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 04 00 02 0A 04 00 -T F8 05 00 00 00 00 00 00 EB 3E 00 00 00 00 21 -R 00 00 01 00 02 04 0B 00 2B 0A 18 00 -T FE 05 00 00 00 00 00 00 01 08 00 00 00 CD -R 00 00 01 00 02 04 18 00 00 09 02 00 -T 04 06 00 00 00 00 00 00 21 04 00 ED 5B -R 00 00 01 00 02 04 0B 00 -T 0B 06 00 00 00 00 00 00 19 4E 23 46 C9 -R 00 00 01 00 00 04 03 00 -T 12 06 00 00 -R 00 00 01 00 -T 12 06 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 04 00 02 0A 04 00 -T 18 06 00 00 00 00 00 00 EB 3E 00 00 00 00 21 -R 00 00 01 00 02 04 0B 00 2B 0A 18 00 -T 1E 06 00 00 00 00 00 00 01 00 00 00 00 CD -R 00 00 01 00 02 04 18 00 00 09 02 00 -T 24 06 00 00 00 00 00 00 2A 00 00 00 00 23 23 -R 00 00 01 00 02 04 0B 00 00 09 03 00 -T 2B 06 00 00 4E 23 46 C9 -R 00 00 01 00 -T 2F 06 00 00 -R 00 00 01 00 -T 2F 06 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 04 00 02 0A 04 00 -T 35 06 00 00 00 00 00 00 EB 3E 00 00 00 00 21 -R 00 00 01 00 02 04 0B 00 2B 0A 18 00 -T 3B 06 00 00 00 00 00 00 01 0E 00 00 00 C3 -R 00 00 01 00 02 04 18 00 00 09 02 00 -T 41 06 00 00 00 00 00 00 -R 00 00 01 00 02 04 0B 00 -T 43 06 00 00 +T 8F 05 00 00 03 19 5E 23 56 3E 00 00 00 00 21 +R 00 00 01 00 2B 0A 04 00 +T 97 05 00 00 00 00 00 00 CD 00 00 00 00 EB 3E +R 00 00 01 00 02 04 04 00 02 09 0B 00 +T 9E 05 00 00 00 00 00 00 21 00 00 00 00 C9 +R 00 00 01 00 2B 04 18 00 02 09 18 00 +T A3 05 00 00 R 00 00 01 00 -T 43 06 00 00 42 21 1A 00 +T A3 05 00 00 42 21 1A 00 R 00 00 01 00 -T 47 06 00 00 +T A7 05 00 00 R 00 00 01 00 -T 47 06 00 00 09 4E 23 46 23 7E 69 60 C3 +T A7 05 00 00 09 4E 23 46 23 7E 69 60 C3 R 00 00 01 00 -T 50 06 00 00 00 00 00 00 +T B0 05 00 00 00 00 00 00 R 00 00 01 00 02 04 0B 00 -T 52 06 00 00 +T B2 05 00 00 R 00 00 01 00 -T 52 06 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +T B2 05 00 00 3E 00 00 00 00 21 00 00 00 00 C3 R 00 00 01 00 2B 05 01 00 02 0A 01 00 -T 58 06 00 00 00 00 00 00 +T B8 05 00 00 00 00 00 00 R 00 00 01 00 02 04 0B 00 -T 5A 06 00 00 +T BA 05 00 00 R 00 00 01 00 -T 5A 06 00 00 FD 4E 12 FD 46 13 FD 6E 10 FD 66 +T BA 05 00 00 FD 4E 12 FD 46 13 FD 6E 10 FD 66 R 00 00 01 00 -T 65 06 00 00 11 C3 00 00 00 00 +T C5 05 00 00 11 C3 00 00 00 00 R 00 00 01 00 02 06 0E 00 -T 69 06 00 00 +T C9 05 00 00 R 00 00 01 00 -T 69 06 00 00 FD 4E 12 FD 46 13 FD 6E 10 FD 66 +T C9 05 00 00 FD 4E 12 FD 46 13 FD 6E 10 FD 66 R 00 00 01 00 -T 74 06 00 00 11 C3 00 00 00 00 +T D4 05 00 00 11 C3 00 00 00 00 R 00 00 01 00 02 06 11 00 -T 78 06 00 00 +T D8 05 00 00 R 00 00 01 00 -T 78 06 00 00 FD 4E 12 FD 46 13 FD 6E 10 FD 66 +T D8 05 00 00 FD 4E 12 FD 46 13 FD 6E 10 FD 66 R 00 00 01 00 -T 83 06 00 00 11 C3 00 00 00 00 +T E3 05 00 00 11 C3 00 00 00 00 R 00 00 01 00 02 06 00 00 -T 87 06 00 00 +T E7 05 00 00 R 00 00 01 00 -T 87 06 00 00 4D 44 DD 5E A0 DD 56 A1 3E +T E7 05 00 00 4D 44 DD 5E A0 DD 56 A1 3E R 00 00 01 00 -T 90 06 00 00 00 00 00 00 21 00 00 00 00 C3 +T F0 05 00 00 00 00 00 00 21 00 00 00 00 C3 R 00 00 01 00 2B 04 03 00 02 09 03 00 -T 95 06 00 00 00 00 00 00 +T F5 05 00 00 00 00 00 00 R 00 00 01 00 02 04 0B 00 T 00 00 00 00 R 00 00 02 00 -T 00 00 00 00 42 61 72 63 6F 64 65 00 +T 00 00 00 00 00 R 00 00 02 00 -T 08 00 00 00 +T 01 00 00 00 R 00 00 02 00 -T 08 00 00 00 53 74 75 6B 73 00 +T 01 00 00 00 2F 64 65 76 2F 70 72 69 6E 74 65 R 00 00 02 00 -T 0E 00 00 00 +T 0C 00 00 00 72 00 R 00 00 02 00 -T 0E 00 00 00 50 72 69 6A 73 00 +T 0E 00 00 00 R 00 00 02 00 -T 14 00 00 00 +T 0E 00 00 00 25 31 33 73 20 56 65 72 6B 6F 6F R 00 00 02 00 -T 14 00 00 00 00 +T 19 00 00 00 70 61 72 74 69 6B 65 6C 20 20 7C R 00 00 02 00 -T 15 00 00 00 +T 24 00 00 00 25 37 6C 64 2C 25 30 32 6C 64 0D R 00 00 02 00 -T 15 00 00 00 2F 64 65 76 2F 70 72 69 6E 74 65 +T 2F 00 00 00 0A 00 R 00 00 02 00 -T 20 00 00 00 72 00 +T 31 00 00 00 R 00 00 02 00 -T 22 00 00 00 +T 31 00 00 00 25 31 33 73 20 56 65 72 6B 6F 6F R 00 00 02 00 -T 22 00 00 00 25 31 33 73 20 56 65 72 6B 6F 6F +T 3C 00 00 00 70 61 72 74 69 6B 65 6C 0D 0A 25 R 00 00 02 00 -T 2D 00 00 00 70 61 72 74 69 6B 65 6C 20 20 7C +T 47 00 00 00 34 64 78 20 40 20 7C 20 25 37 6C R 00 00 02 00 -T 38 00 00 00 25 37 6C 64 2C 25 30 32 6C 64 0D +T 52 00 00 00 64 2C 25 30 32 6C 64 20 20 20 20 R 00 00 02 00 -T 43 00 00 00 0A 00 +T 5D 00 00 00 20 20 20 20 20 20 7C 25 37 6C 64 R 00 00 02 00 -T 45 00 00 00 +T 68 00 00 00 2C 25 30 32 6C 64 0D 0A 00 R 00 00 02 00 -T 45 00 00 00 25 31 33 73 20 56 65 72 6B 6F 6F +T 71 00 00 00 R 00 00 02 00 -T 50 00 00 00 70 61 72 74 69 6B 65 6C 0D 0A 25 +T 71 00 00 00 0D 0A 25 31 33 73 54 6F 74 61 61 R 00 00 02 00 -T 5B 00 00 00 34 64 78 20 40 20 7C 20 25 37 6C +T 7C 00 00 00 6C 3A 25 31 30 73 7C 25 37 6C 64 R 00 00 02 00 -T 66 00 00 00 64 2C 25 30 32 6C 64 20 20 20 20 +T 87 00 00 00 2C 25 30 32 6C 64 0D 0A 0D 0A 0D R 00 00 02 00 -T 71 00 00 00 20 20 20 20 20 20 7C 25 37 6C 64 +T 92 00 00 00 0A 00 R 00 00 02 00 -T 7C 00 00 00 2C 25 30 32 6C 64 0D 0A 00 +T 94 00 00 00 R 00 00 02 00 -T 85 00 00 00 +T 94 00 00 00 42 61 72 63 6F 64 65 00 R 00 00 02 00 -T 85 00 00 00 0D 0A 25 31 33 73 54 6F 74 61 61 +T 9C 00 00 00 R 00 00 02 00 -T 90 00 00 00 6C 3A 25 31 30 73 7C 25 37 6C 64 +T 9C 00 00 00 53 74 75 6B 73 00 R 00 00 02 00 -T 9B 00 00 00 2C 25 30 32 6C 64 0D 0A 0D 0A 0D +T A2 00 00 00 R 00 00 02 00 -T A6 00 00 00 0A 00 +T A2 00 00 00 50 72 69 6A 73 00 R 00 00 02 00 T 00 00 00 00 R 00 00 03 00 diff --git a/src/gui/trans.rst b/src/gui/trans.rst index d97f1ab3..7891e0bc 100644 --- a/src/gui/trans.rst +++ b/src/gui/trans.rst @@ -31,1078 +31,984 @@ 31 EXTERN ?BANK_FAST_LEAVE_L08 32 EXTERN ?ENT_AUTO_DIRECT_L09 33 RSEG CODE - 00006946 34 Transaction_init: - 00006946 C5 35 PUSH BC - 00006947 D5 36 PUSH DE - 00006948 11 08 00 37 LD DE,8 - 0000694B CD B3 69 38 CALL LWRD ?0046 - 0000694E 22 41 87 39 LD (trans),HL - 00006951 01 06 00 40 LD BC,6 - 00006954 09 41 ADD HL,BC - 00006955 E5 42 PUSH HL - 00006956 CD B0 69 43 CALL LWRD ?0047 - 00006959 4D 44 LD C,L - 0000695A 44 45 LD B,H - 0000695B E1 46 POP HL - 0000695C 71 47 LD (HL),C - 0000695D 23 48 INC HL - 0000695E 70 49 LD (HL),B - 0000695F 21 06 00 50 LD HL,6 - 00006962 ED 4B 41 87 51 LD BC,(trans) - 00006966 09 52 ADD HL,BC - 00006967 56 53 LD D,(HL) - 00006968 23 54 INC HL - 00006969 66 55 LD H,(HL) - 0000696A 6A 56 LD L,D - 0000696B 11 14 00 57 LD DE,20 - 0000696E 19 58 ADD HL,DE - 0000696F AF 59 XOR A - 00006970 77 60 LD (HL),A - 00006971 23 61 INC HL - 00006972 77 62 LD (HL),A - 00006973 21 06 00 63 LD HL,6 - 00006976 ED 4B 41 87 64 LD BC,(trans) - 0000697A 09 65 ADD HL,BC - 0000697B 7E 66 LD A,(HL) - 0000697C 23 67 INC HL - 0000697D 66 68 LD H,(HL) - 0000697E 6F 69 LD L,A - 0000697F 72 70 LD (HL),D - 00006980 21 06 00 71 LD HL,6 - 00006983 ED 4B 41 87 72 LD BC,(trans) - 00006987 09 73 ADD HL,BC - 00006988 56 74 LD D,(HL) - 00006989 23 75 INC HL - 0000698A 66 76 LD H,(HL) - 0000698B 6A 77 LD L,D - 0000698C 11 0E 00 78 LD DE,14 - 0000698F 19 79 ADD HL,DE - 00006990 AF 80 XOR A - 00006991 77 81 LD (HL),A - 00006992 23 82 INC HL - 00006993 77 83 LD (HL),A - 00006994 21 06 00 84 LD HL,6 - 00006997 ED 4B 41 87 85 LD BC,(trans) - 0000699B 09 86 ADD HL,BC - 0000699C 46 87 LD B,(HL) - 0000699D 23 88 INC HL - 0000699E 66 89 LD H,(HL) - 0000699F 68 90 LD L,B - 000069A0 01 10 00 91 LD BC,16 - 000069A3 09 92 ADD HL,BC - 000069A4 77 93 LD (HL),A - 000069A5 23 94 INC HL - 000069A6 77 95 LD (HL),A - 000069A7 23 96 INC HL - 000069A8 77 97 LD (HL),A - 000069A9 23 98 INC HL - 000069AA 77 99 LD (HL),A - 000069AB D1 100 POP DE - 000069AC C1 101 POP BC - 000069AD C3 A9 81 102 JP LWRD ?BANK_FAST_LEAVE_L08 - 000069B0 103 ?0047: - 000069B0 11 16 00 104 LD DE,22 - 000069B3 105 ?0046: - 000069B3 3E 01 106 LD A,BYTE3 malloc - 000069B5 21 00 40 107 LD HL,LWRD malloc - 000069B8 C3 FB 81 108 JP LWRD ?BANK_CALL_DIRECT_L08 - 000069BB 109 Transaction_handler: - 000069BB CD 7A 82 110 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000069BE 9E FF 111 DEFW 65438 - 000069C0 FD E5 112 PUSH IY - 000069C2 21 26 00 113 LD HL,38 - 000069C5 DD 4E 02 114 LD C,(IX+2) - 000069C8 DD 46 03 115 LD B,(IX+3) - 000069CB 09 116 ADD HL,BC - 000069CC 46 117 LD B,(HL) - 000069CD DD 70 9E 118 LD (IX-98),B - 000069D0 23 119 INC HL - 000069D1 66 120 LD H,(HL) - 000069D2 DD 74 9F 121 LD (IX-97),H - 000069D5 2A 41 87 122 LD HL,(trans) - 000069D8 7D 123 LD A,L - 000069D9 B4 124 OR H - 000069DA 20 08 125 JR NZ,?0001 - 000069DC 126 ?0000: - 000069DC 3E 00 127 LD A,BYTE3 Transaction_init - 000069DE 21 46 69 128 LD HL,LWRD Transaction_init - 000069E1 CD FB 81 129 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000069E4 130 ?0001: - 000069E4 68 131 LD L,B - 000069E5 DD 66 9F 132 LD H,(IX-97) - 000069E8 23 133 INC HL - 000069E9 23 134 INC HL - 000069EA 23 135 INC HL - 000069EB 3E 10 136 LD A,16 - 000069ED 23 137 INC HL - 000069EE AE 138 XOR (HL) - 000069EF 2B 139 DEC HL - 000069F0 B6 140 OR (HL) - 000069F1 20 64 141 JR NZ,?0003 - 000069F3 142 ?0002: - 000069F3 21 07 00 143 LD HL,7 - 000069F6 48 144 LD C,B - 000069F7 DD 46 9F 145 LD B,(IX-97) - 000069FA 09 146 ADD HL,BC - 000069FB 6E 147 LD L,(HL) - 000069FC 67 148 LD H,A - 000069FD E5 149 PUSH HL - 000069FE 2A 41 87 150 LD HL,(trans) - 00006A01 C1 151 POP BC - 00006A02 71 152 LD (HL),C - 00006A03 23 153 INC HL - 00006A04 70 154 LD (HL),B - 00006A05 2A 41 87 155 LD HL,(trans) - 00006A08 23 156 INC HL - 00006A09 23 157 INC HL - 00006A0A E5 158 PUSH HL - 00006A0B CD 1D 6F 159 CALL LWRD ?0048 - 00006A0E E1 160 POP HL - 00006A0F 71 161 LD (HL),C - 00006A10 23 162 INC HL - 00006A11 70 163 LD (HL),B - 00006A12 21 04 00 164 LD HL,4 - 00006A15 ED 4B 41 87 165 LD BC,(trans) - 00006A19 09 166 ADD HL,BC - 00006A1A E5 167 PUSH HL - 00006A1B 21 07 00 168 LD HL,7 - 00006A1E DD 5E 9E 169 LD E,(IX-98) - 00006A21 DD 56 9F 170 LD D,(IX-97) - 00006A24 19 171 ADD HL,DE - 00006A25 5E 172 LD E,(HL) - 00006A26 23 173 INC HL - 00006A27 56 174 LD D,(HL) - 00006A28 23 175 INC HL - 00006A29 4E 176 LD C,(HL) - 00006A2A 23 177 INC HL - 00006A2B 46 178 LD B,(HL) - 00006A2C EB 179 EX DE,HL - 00006A2D 3E 10 180 LD A,16 - 00006A2F CD 31 6F 181 CALL LWRD ?0049 - 00006A32 E1 182 POP HL - 00006A33 71 183 LD (HL),C - 00006A34 23 184 INC HL - 00006A35 70 185 LD (HL),B - 00006A36 2A 41 87 186 LD HL,(trans) - 00006A39 4E 187 LD C,(HL) - 00006A3A 23 188 INC HL - 00006A3B 46 189 LD B,(HL) - 00006A3C DD 5E 02 190 LD E,(IX+2) - 00006A3F DD 56 03 191 LD D,(IX+3) - 00006A42 CD 58 6F 192 CALL LWRD ?0051 - 00006A45 DD 5E 02 193 LD E,(IX+2) - 00006A48 DD 56 03 194 LD D,(IX+3) - 00006A4B CD 38 6F 195 CALL LWRD ?0050 - 00006A4E DD 5E 02 196 LD E,(IX+2) - 00006A51 DD 56 03 197 LD D,(IX+3) - 00006A54 CD 75 6F 198 CALL LWRD ?0052 - 00006A57 199 ?0003: - 00006A57 DD 6E 9E 200 LD L,(IX-98) - 00006A5A DD 66 9F 201 LD H,(IX-97) - 00006A5D 23 202 INC HL - 00006A5E 23 203 INC HL - 00006A5F 23 204 INC HL - 00006A60 46 205 LD B,(HL) - 00006A61 23 206 INC HL - 00006A62 66 207 LD H,(HL) - 00006A63 68 208 LD L,B - 00006A64 01 10 90 209 LD BC,36880 - 00006A67 3E 80 210 LD A,128 - 00006A69 AC 211 XOR H - 00006A6A 67 212 LD H,A - 00006A6B ED 42 213 SBC HL,BC - 00006A6D DA 9C 6B 214 JP C,?0008 - 00006A70 DD 6E 9E 215 LD L,(IX-98) - 00006A73 DD 66 9F 216 LD H,(IX-97) - 00006A76 23 217 INC HL - 00006A77 23 218 INC HL - 00006A78 23 219 INC HL - 00006A79 4E 220 LD C,(HL) - 00006A7A 23 221 INC HL - 00006A7B 46 222 LD B,(HL) - 00006A7C 21 12 10 223 LD HL,4114 - 00006A7F CD C8 82 224 CALL LWRD ?SS_CMP_L02 - 00006A82 DA 9C 6B 225 JP C,?0008 - 00006A85 226 ?0010: - 00006A85 227 ?0009: - 00006A85 228 ?0007: - 00006A85 21 06 00 229 LD HL,6 - 00006A88 ED 4B 41 87 230 LD BC,(trans) - 00006A8C 09 231 ADD HL,BC - 00006A8D 46 232 LD B,(HL) - 00006A8E 23 233 INC HL - 00006A8F 66 234 LD H,(HL) - 00006A90 68 235 LD L,B - 00006A91 236 ?0041: - 00006A91 DD 75 A2 237 LD (IX-94),L - 00006A94 DD 74 A3 238 LD (IX-93),H - 00006A97 239 ?0012: - 00006A97 21 14 00 240 LD HL,20 - 00006A9A DD 4E A2 241 LD C,(IX-94) - 00006A9D DD 46 A3 242 LD B,(IX-93) - 00006AA0 09 243 ADD HL,BC - 00006AA1 7E 244 LD A,(HL) - 00006AA2 23 245 INC HL - 00006AA3 B6 246 OR (HL) - 00006AA4 28 0A 247 JR Z,?0011 - 00006AA6 248 ?0013: - 00006AA6 21 14 00 249 LD HL,20 - 00006AA9 09 250 ADD HL,BC - 00006AAA 56 251 LD D,(HL) - 00006AAB 23 252 INC HL - 00006AAC 66 253 LD H,(HL) - 00006AAD 6A 254 LD L,D - 00006AAE 18 E1 255 JR ?0041 - 00006AB0 256 ?0011: - 00006AB0 21 05 00 257 LD HL,5 - 00006AB3 DD 4E 9E 258 LD C,(IX-98) - 00006AB6 DD 46 9F 259 LD B,(IX-97) - 00006AB9 09 260 ADD HL,BC - 00006ABA 4E 261 LD C,(HL) - 00006ABB 23 262 INC HL - 00006ABC 46 263 LD B,(HL) - 00006ABD 21 11 00 264 LD HL,17 - 00006AC0 DD 5E 02 265 LD E,(IX+2) - 00006AC3 DD 56 03 266 LD D,(IX+3) - 00006AC6 19 267 ADD HL,DE - 00006AC7 5E 268 LD E,(HL) - 00006AC8 23 269 INC HL - 00006AC9 56 270 LD D,(HL) - 00006ACA 3E 00 271 LD A,BYTE3 Component_find - 00006ACC 21 D6 4D 272 LD HL,LWRD Component_find - 00006ACF CD FB 81 273 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006AD2 DD 75 A0 274 LD (IX-96),L - 00006AD5 DD 74 A1 275 LD (IX-95),H - 00006AD8 01 20 00 276 LD BC,32 - 00006ADB 09 277 ADD HL,BC - 00006ADC 4E 278 LD C,(HL) - 00006ADD 23 279 INC HL - 00006ADE 46 280 LD B,(HL) - 00006ADF DD 5E 02 281 LD E,(IX+2) - 00006AE2 DD 56 03 282 LD D,(IX+3) - 00006AE5 3E 00 283 LD A,BYTE3 Component_setlabel - 00006AE7 21 A1 4C 284 LD HL,LWRD Component_setlabel - 00006AEA CD FB 81 285 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006AED 01 20 85 286 LD BC,?0014 - 00006AF0 DD 5E A0 287 LD E,(IX-96) - 00006AF3 DD 56 A1 288 LD D,(IX-95) - 00006AF6 3E 00 289 LD A,BYTE3 Component_setlabel - 00006AF8 21 A1 4C 290 LD HL,LWRD Component_setlabel - 00006AFB CD FB 81 291 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006AFE DD 5E A0 292 LD E,(IX-96) - 00006B01 4B 293 LD C,E - 00006B02 DD 56 A1 294 LD D,(IX-95) - 00006B05 CD 89 6F 295 CALL LWRD ?0053 - 00006B08 DD 6E 9E 296 LD L,(IX-98) - 00006B0B DD 66 9F 297 LD H,(IX-97) - 00006B0E 23 298 INC HL - 00006B0F 23 299 INC HL - 00006B10 23 300 INC HL - 00006B11 5E 301 LD E,(HL) - 00006B12 23 302 INC HL - 00006B13 56 303 LD D,(HL) - 00006B14 CD 08 82 304 CALL LWRD ?S_S_SWITCH_L06 - 00006B17 10 10 305 DEFW 4112 - 00006B19 03 00 306 DEFW 3 - 00006B1B 92 6B 307 DEFW ?0015 - 00006B1D 23 6B 308 DEFW ?0016 - 00006B1F 40 6B 309 DEFW ?0017 - 00006B21 65 6B 310 DEFW ?0018 - 00006B23 311 ?0016: - 00006B23 21 20 00 312 LD HL,32 - 00006B26 DD 4E 02 313 LD C,(IX+2) - 00006B29 DD 46 03 314 LD B,(IX+3) - 00006B2C 09 315 ADD HL,BC - 00006B2D 4E 316 LD C,(HL) - 00006B2E 23 317 INC HL - 00006B2F 46 318 LD B,(HL) - 00006B30 DD 5E A2 319 LD E,(IX-94) - 00006B33 DD 56 A3 320 LD D,(IX-93) - 00006B36 3E 00 321 LD A,BYTE3 strcpy - 00006B38 21 3F 75 322 LD HL,LWRD strcpy - 00006B3B CD FB 81 323 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006B3E 18 52 324 JR ?0015 - 00006B40 325 ?0017: - 00006B40 21 0E 00 326 LD HL,14 - 00006B43 DD 4E A2 327 LD C,(IX-94) - 00006B46 DD 46 A3 328 LD B,(IX-93) - 00006B49 09 329 ADD HL,BC - 00006B4A E5 330 PUSH HL - 00006B4B 21 20 00 331 LD HL,32 - 00006B4E DD 4E 02 332 LD C,(IX+2) - 00006B51 DD 46 03 333 LD B,(IX+3) - 00006B54 09 334 ADD HL,BC - 00006B55 5E 335 LD E,(HL) - 00006B56 23 336 INC HL - 00006B57 56 337 LD D,(HL) - 00006B58 3E 00 338 LD A,BYTE3 atoi - 00006B5A 21 66 75 339 LD HL,LWRD atoi - 00006B5D CD FB 81 340 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006B60 4D 341 LD C,L - 00006B61 44 342 LD B,H - 00006B62 E1 343 POP HL - 00006B63 18 2A 344 JR ?0042 - 00006B65 345 ?0018: - 00006B65 21 20 00 346 LD HL,32 - 00006B68 DD 4E 02 347 LD C,(IX+2) - 00006B6B DD 46 03 348 LD B,(IX+3) - 00006B6E 09 349 ADD HL,BC - 00006B6F 5E 350 LD E,(HL) - 00006B70 23 351 INC HL - 00006B71 56 352 LD D,(HL) - 00006B72 3E 00 353 LD A,BYTE3 atol - 00006B74 21 BA 7C 354 LD HL,LWRD atol - 00006B77 CD FB 81 355 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006B7A 7C 356 LD A,H - 00006B7B 07 357 RLCA - 00006B7C 9F 358 SBC A,A - 00006B7D 4F 359 LD C,A - 00006B7E 41 360 LD B,C - 00006B7F E5 361 PUSH HL - 00006B80 21 10 00 362 LD HL,16 - 00006B83 DD 5E A2 363 LD E,(IX-94) - 00006B86 DD 56 A3 364 LD D,(IX-93) - 00006B89 19 365 ADD HL,DE - 00006B8A D1 366 POP DE - 00006B8B 73 367 LD (HL),E - 00006B8C 23 368 INC HL - 00006B8D 72 369 LD (HL),D - 00006B8E 23 370 INC HL - 00006B8F 371 ?0042: - 00006B8F 71 372 LD (HL),C - 00006B90 23 373 INC HL - 00006B91 70 374 LD (HL),B - 00006B92 375 ?0015: - 00006B92 DD 5E 02 376 LD E,(IX+2) - 00006B95 4B 377 LD C,E - 00006B96 DD 56 03 378 LD D,(IX+3) - 00006B99 CD 89 6F 379 CALL LWRD ?0053 - 00006B9C 380 ?0008: - 00006B9C DD 6E 9E 381 LD L,(IX-98) - 00006B9F DD 66 9F 382 LD H,(IX-97) - 00006BA2 23 383 INC HL - 00006BA3 23 384 INC HL - 00006BA4 23 385 INC HL - 00006BA5 46 386 LD B,(HL) - 00006BA6 23 387 INC HL - 00006BA7 66 388 LD H,(HL) - 00006BA8 68 389 LD L,B - 00006BA9 01 1E 10 390 LD BC,4126 - 00006BAC A7 391 AND A - 00006BAD ED 42 392 SBC HL,BC - 00006BAF C2 F9 6D 393 JP NZ,?0020 - 00006BB2 394 ?0019: - 00006BB2 AF 395 XOR A - 00006BB3 DD 77 AC 396 LD (IX-84),A - 00006BB6 DD 77 AD 397 LD (IX-83),A - 00006BB9 DD 77 AE 398 LD (IX-82),A - 00006BBC DD 77 AF 399 LD (IX-81),A - 00006BBF 21 06 00 400 LD HL,6 - 00006BC2 ED 4B 41 87 401 LD BC,(trans) - 00006BC6 09 402 ADD HL,BC - 00006BC7 46 403 LD B,(HL) - 00006BC8 23 404 INC HL - 00006BC9 66 405 LD H,(HL) - 00006BCA 68 406 LD L,B - 00006BCB E5 407 PUSH HL - 00006BCC FD E1 408 POP IY - 00006BCE 21 01 00 409 LD HL,1 - 00006BD1 E5 410 PUSH HL - 00006BD2 21 21 85 411 LD HL,?0021 - 00006BD5 E5 412 PUSH HL - 00006BD6 3E 00 413 LD A,BYTE3 open - 00006BD8 21 CD 7E 414 LD HL,LWRD open - 00006BDB CD FB 81 415 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006BDE F1 416 POP AF - 00006BDF F1 417 POP AF - 00006BE0 DD 75 A0 418 LD (IX-96),L - 00006BE3 DD 74 A1 419 LD (IX-95),H - 00006BE6 21 08 00 420 LD HL,8 - 00006BE9 39 421 ADD HL,SP - 00006BEA E5 422 PUSH HL - 00006BEB 21 00 00 423 LD HL,0 - 00006BEE E5 424 PUSH HL - 00006BEF DD 6E A0 425 LD L,(IX-96) - 00006BF2 DD 66 A1 426 LD H,(IX-95) - 00006BF5 E5 427 PUSH HL - 00006BF6 3E 00 428 LD A,BYTE3 ioctl - 00006BF8 21 E2 73 429 LD HL,LWRD ioctl - 00006BFB CD FB 81 430 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006BFE F1 431 POP AF - 00006BFF F1 432 POP AF - 00006C00 F1 433 POP AF - 00006C01 DD 36 A8 60 434 LD (IX-88),96 - 00006C05 DD 36 A9 00 435 LD (IX-87),0 - 00006C09 21 08 00 436 LD HL,8 - 00006C0C 39 437 ADD HL,SP - 00006C0D E5 438 PUSH HL - 00006C0E 21 01 00 439 LD HL,1 - 00006C11 E5 440 PUSH HL - 00006C12 DD 6E A0 441 LD L,(IX-96) - 00006C15 DD 66 A1 442 LD H,(IX-95) - 00006C18 E5 443 PUSH HL - 00006C19 3E 00 444 LD A,BYTE3 ioctl - 00006C1B 21 E2 73 445 LD HL,LWRD ioctl - 00006C1E CD FB 81 446 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006C21 F1 447 POP AF - 00006C22 F1 448 POP AF - 00006C23 F1 449 POP AF - 00006C24 450 ?0023: - 00006C24 FD E5 451 PUSH IY - 00006C26 E1 452 POP HL - 00006C27 7D 453 LD A,L - 00006C28 B4 454 OR H - 00006C29 CA 0E 6D 455 JP Z,?0022 - 00006C2C 456 ?0024: - 00006C2C FD 7E 0E 457 LD A,(IY+14) - 00006C2F FD B6 0F 458 OR (IY+15) - 00006C32 CA 02 6D 459 JP Z,?0026 - 00006C35 460 ?0025: - 00006C35 3E 01 461 LD A,1 - 00006C37 FD AE 0E 462 XOR (IY+14) - 00006C3A FD B6 0F 463 OR (IY+15) - 00006C3D 20 29 464 JR NZ,?0028 - 00006C3F 465 ?0027: - 00006C3F 6F 466 LD L,A - 00006C40 67 467 LD H,A - 00006C41 E5 468 PUSH HL - 00006C42 2E 64 469 LD L,100 - 00006C44 E5 470 PUSH HL - 00006C45 CD A0 6F 471 CALL LWRD ?0056 - 00006C48 C5 472 PUSH BC - 00006C49 E5 473 PUSH HL - 00006C4A 6F 474 LD L,A - 00006C4B 67 475 LD H,A - 00006C4C E5 476 PUSH HL - 00006C4D 2E 64 477 LD L,100 - 00006C4F E5 478 PUSH HL - 00006C50 CD AF 6F 479 CALL LWRD ?0057 - 00006C53 C5 480 PUSH BC - 00006C54 E5 481 PUSH HL - 00006C55 FD E5 482 PUSH IY - 00006C57 21 2E 85 483 LD HL,?0029 - 00006C5A E5 484 PUSH HL - 00006C5B 21 20 00 485 LD HL,32 - 00006C5E 39 486 ADD HL,SP - 00006C5F E5 487 PUSH HL - 00006C60 CD 98 6F 488 CALL LWRD ?0055 - 00006C63 21 0E 00 489 LD HL,14 - 00006C66 18 68 490 JR ?0043 - 00006C68 491 ?0028: - 00006C68 21 00 00 492 LD HL,0 - 00006C6B E5 493 PUSH HL - 00006C6C 2E 64 494 LD L,100 - 00006C6E E5 495 PUSH HL - 00006C6F FD 6E 0E 496 LD L,(IY+14) - 00006C72 FD 66 0F 497 LD H,(IY+15) - 00006C75 7C 498 LD A,H - 00006C76 07 499 RLCA - 00006C77 9F 500 SBC A,A - 00006C78 4F 501 LD C,A - 00006C79 41 502 LD B,C - 00006C7A C5 503 PUSH BC - 00006C7B E5 504 PUSH HL - 00006C7C CD BE 6F 505 CALL LWRD ?0058 - 00006C7F CD 47 82 506 CALL LWRD ?SL_MOD_L03 - 00006C82 C5 507 PUSH BC - 00006C83 E5 508 PUSH HL - 00006C84 21 00 00 509 LD HL,0 - 00006C87 E5 510 PUSH HL - 00006C88 2E 64 511 LD L,100 - 00006C8A E5 512 PUSH HL - 00006C8B FD 6E 0E 513 LD L,(IY+14) - 00006C8E FD 66 0F 514 LD H,(IY+15) - 00006C91 7C 515 LD A,H - 00006C92 07 516 RLCA - 00006C93 9F 517 SBC A,A - 00006C94 4F 518 LD C,A - 00006C95 41 519 LD B,C - 00006C96 C5 520 PUSH BC - 00006C97 E5 521 PUSH HL - 00006C98 CD BE 6F 522 CALL LWRD ?0058 - 00006C9B CD 98 82 523 CALL LWRD ?SL_DIV_L03 - 00006C9E C5 524 PUSH BC - 00006C9F E5 525 PUSH HL - 00006CA0 21 00 00 526 LD HL,0 - 00006CA3 E5 527 PUSH HL - 00006CA4 2E 64 528 LD L,100 - 00006CA6 E5 529 PUSH HL - 00006CA7 CD A0 6F 530 CALL LWRD ?0056 - 00006CAA C5 531 PUSH BC - 00006CAB E5 532 PUSH HL - 00006CAC 21 00 00 533 LD HL,0 - 00006CAF E5 534 PUSH HL - 00006CB0 2E 64 535 LD L,100 - 00006CB2 E5 536 PUSH HL - 00006CB3 CD AF 6F 537 CALL LWRD ?0057 - 00006CB6 C5 538 PUSH BC - 00006CB7 E5 539 PUSH HL - 00006CB8 FD 6E 0E 540 LD L,(IY+14) - 00006CBB FD 66 0F 541 LD H,(IY+15) - 00006CBE E5 542 PUSH HL - 00006CBF FD E5 543 PUSH IY - 00006CC1 21 51 85 544 LD HL,?0031 - 00006CC4 E5 545 PUSH HL - 00006CC5 21 2A 00 546 LD HL,42 - 00006CC8 39 547 ADD HL,SP - 00006CC9 E5 548 PUSH HL - 00006CCA CD 98 6F 549 CALL LWRD ?0055 - 00006CCD 21 18 00 550 LD HL,24 - 00006CD0 551 ?0043: - 00006CD0 39 552 ADD HL,SP - 00006CD1 F9 553 LD SP,HL - 00006CD2 554 ?0030: - 00006CD2 21 10 00 555 LD HL,16 - 00006CD5 39 556 ADD HL,SP - 00006CD6 E5 557 PUSH HL - 00006CD7 FD 5E 0E 558 LD E,(IY+14) - 00006CDA FD 56 0F 559 LD D,(IY+15) - 00006CDD 7A 560 LD A,D - 00006CDE 07 561 RLCA - 00006CDF 9F 562 SBC A,A - 00006CE0 4F 563 LD C,A - 00006CE1 41 564 LD B,C - 00006CE2 C5 565 PUSH BC - 00006CE3 D5 566 PUSH DE - 00006CE4 CD BE 6F 567 CALL LWRD ?0058 - 00006CE7 EB 568 EX DE,HL - 00006CE8 E1 569 POP HL - 00006CE9 CD D6 81 570 CALL LWRD ?L_ADDASG_L03 - 00006CEC 21 14 00 571 LD HL,20 - 00006CEF 39 572 ADD HL,SP - 00006CF0 EB 573 EX DE,HL - 00006CF1 3E 00 574 LD A,BYTE3 strlen - 00006CF3 21 AB 73 575 LD HL,LWRD strlen - 00006CF6 CD FB 81 576 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006CF9 E5 577 PUSH HL - 00006CFA 21 16 00 578 LD HL,22 - 00006CFD 39 579 ADD HL,SP - 00006CFE CD CD 6F 580 CALL LWRD ?0059 - 00006D01 F1 581 POP AF - 00006D02 582 ?0026: - 00006D02 FD 6E 14 583 LD L,(IY+20) - 00006D05 FD 66 15 584 LD H,(IY+21) - 00006D08 E5 585 PUSH HL - 00006D09 FD E1 586 POP IY - 00006D0B C3 24 6C 587 JP LWRD ?0023 - 00006D0E 588 ?0022: - 00006D0E 6F 589 LD L,A - 00006D0F 67 590 LD H,A - 00006D10 E5 591 PUSH HL - 00006D11 2E 64 592 LD L,100 - 00006D13 E5 593 PUSH HL - 00006D14 DD 4E AE 594 LD C,(IX-82) - 00006D17 DD 46 AF 595 LD B,(IX-81) - 00006D1A DD 6E AC 596 LD L,(IX-84) - 00006D1D DD 66 AD 597 LD H,(IX-83) - 00006D20 CD 47 82 598 CALL LWRD ?SL_MOD_L03 - 00006D23 C5 599 PUSH BC - 00006D24 E5 600 PUSH HL - 00006D25 6F 601 LD L,A - 00006D26 67 602 LD H,A - 00006D27 E5 603 PUSH HL - 00006D28 2E 64 604 LD L,100 - 00006D2A E5 605 PUSH HL - 00006D2B DD 4E AE 606 LD C,(IX-82) - 00006D2E DD 46 AF 607 LD B,(IX-81) - 00006D31 DD 6E AC 608 LD L,(IX-84) - 00006D34 DD 66 AD 609 LD H,(IX-83) - 00006D37 CD 98 82 610 CALL LWRD ?SL_DIV_L03 - 00006D3A C5 611 PUSH BC - 00006D3B E5 612 PUSH HL - 00006D3C 21 20 85 613 LD HL,?0014 - 00006D3F E5 614 PUSH HL - 00006D40 E5 615 PUSH HL - 00006D41 21 91 85 616 LD HL,?0032 - 00006D44 E5 617 PUSH HL - 00006D45 21 22 00 618 LD HL,34 - 00006D48 39 619 ADD HL,SP - 00006D49 E5 620 PUSH HL - 00006D4A CD 98 6F 621 CALL LWRD ?0055 - 00006D4D 21 10 00 622 LD HL,16 - 00006D50 39 623 ADD HL,SP - 00006D51 F9 624 LD SP,HL - 00006D52 21 14 00 625 LD HL,20 - 00006D55 39 626 ADD HL,SP - 00006D56 EB 627 EX DE,HL - 00006D57 3E 00 628 LD A,BYTE3 strlen - 00006D59 21 AB 73 629 LD HL,LWRD strlen - 00006D5C CD FB 81 630 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006D5F E5 631 PUSH HL - 00006D60 21 16 00 632 LD HL,22 - 00006D63 39 633 ADD HL,SP - 00006D64 CD CD 6F 634 CALL LWRD ?0059 - 00006D67 F1 635 POP AF - 00006D68 DD 5E A0 636 LD E,(IX-96) - 00006D6B DD 56 A1 637 LD D,(IX-95) - 00006D6E 3E 00 638 LD A,BYTE3 close - 00006D70 21 96 73 639 LD HL,LWRD close - 00006D73 CD FB 81 640 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006D76 21 06 00 641 LD HL,6 - 00006D79 ED 4B 41 87 642 LD BC,(trans) - 00006D7D 09 643 ADD HL,BC - 00006D7E 46 644 LD B,(HL) - 00006D7F 23 645 INC HL - 00006D80 66 646 LD H,(HL) - 00006D81 68 647 LD L,B - 00006D82 648 ?0044: - 00006D82 E5 649 PUSH HL - 00006D83 FD E1 650 POP IY - 00006D85 651 ?0034: - 00006D85 7D 652 LD A,L - 00006D86 B4 653 OR H - 00006D87 28 13 654 JR Z,?0033 - 00006D89 655 ?0035: - 00006D89 FD E5 656 PUSH IY - 00006D8B D1 657 POP DE - 00006D8C 3E 00 658 LD A,BYTE3 free - 00006D8E 21 5F 74 659 LD HL,LWRD free - 00006D91 CD FB 81 660 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006D94 FD 6E 14 661 LD L,(IY+20) - 00006D97 FD 66 15 662 LD H,(IY+21) - 00006D9A 18 E6 663 JR ?0044 - 00006D9C 664 ?0033: - 00006D9C 21 06 00 665 LD HL,6 - 00006D9F ED 4B 41 87 666 LD BC,(trans) - 00006DA3 09 667 ADD HL,BC - 00006DA4 E5 668 PUSH HL - 00006DA5 CD B0 69 669 CALL LWRD ?0047 - 00006DA8 EB 670 EX DE,HL - 00006DA9 E1 671 POP HL - 00006DAA 73 672 LD (HL),E - 00006DAB 23 673 INC HL - 00006DAC 72 674 LD (HL),D - 00006DAD 21 06 00 675 LD HL,6 - 00006DB0 ED 4B 41 87 676 LD BC,(trans) - 00006DB4 09 677 ADD HL,BC - 00006DB5 56 678 LD D,(HL) - 00006DB6 23 679 INC HL - 00006DB7 66 680 LD H,(HL) - 00006DB8 6A 681 LD L,D - 00006DB9 11 14 00 682 LD DE,20 - 00006DBC 19 683 ADD HL,DE - 00006DBD AF 684 XOR A - 00006DBE 77 685 LD (HL),A - 00006DBF 23 686 INC HL - 00006DC0 77 687 LD (HL),A - 00006DC1 21 06 00 688 LD HL,6 - 00006DC4 ED 4B 41 87 689 LD BC,(trans) - 00006DC8 09 690 ADD HL,BC - 00006DC9 7E 691 LD A,(HL) - 00006DCA 23 692 INC HL - 00006DCB 66 693 LD H,(HL) - 00006DCC 6F 694 LD L,A - 00006DCD 72 695 LD (HL),D - 00006DCE 21 06 00 696 LD HL,6 - 00006DD1 ED 4B 41 87 697 LD BC,(trans) - 00006DD5 09 698 ADD HL,BC - 00006DD6 56 699 LD D,(HL) - 00006DD7 23 700 INC HL - 00006DD8 66 701 LD H,(HL) - 00006DD9 6A 702 LD L,D - 00006DDA 11 0E 00 703 LD DE,14 - 00006DDD 19 704 ADD HL,DE - 00006DDE AF 705 XOR A - 00006DDF 77 706 LD (HL),A - 00006DE0 23 707 INC HL - 00006DE1 77 708 LD (HL),A - 00006DE2 21 06 00 709 LD HL,6 - 00006DE5 ED 4B 41 87 710 LD BC,(trans) - 00006DE9 09 711 ADD HL,BC - 00006DEA 46 712 LD B,(HL) - 00006DEB 23 713 INC HL - 00006DEC 66 714 LD H,(HL) - 00006DED 68 715 LD L,B - 00006DEE 01 10 00 716 LD BC,16 - 00006DF1 09 717 ADD HL,BC - 00006DF2 77 718 LD (HL),A - 00006DF3 23 719 INC HL - 00006DF4 77 720 LD (HL),A - 00006DF5 23 721 INC HL - 00006DF6 77 722 LD (HL),A - 00006DF7 23 723 INC HL - 00006DF8 77 724 LD (HL),A - 00006DF9 725 ?0020: - 00006DF9 DD 6E 9E 726 LD L,(IX-98) - 00006DFC DD 66 9F 727 LD H,(IX-97) - 00006DFF 23 728 INC HL - 00006E00 23 729 INC HL - 00006E01 23 730 INC HL - 00006E02 46 731 LD B,(HL) - 00006E03 23 732 INC HL - 00006E04 66 733 LD H,(HL) - 00006E05 68 734 LD L,B - 00006E06 01 1F 10 735 LD BC,4127 - 00006E09 A7 736 AND A - 00006E0A ED 42 737 SBC HL,BC - 00006E0C C2 18 6F 738 JP NZ,?0037 - 00006E0F 739 ?0036: - 00006E0F 21 06 00 740 LD HL,6 - 00006E12 ED 4B 41 87 741 LD BC,(trans) - 00006E16 09 742 ADD HL,BC - 00006E17 46 743 LD B,(HL) - 00006E18 23 744 INC HL - 00006E19 66 745 LD H,(HL) - 00006E1A 68 746 LD L,B - 00006E1B 747 ?0045: - 00006E1B DD 75 A0 748 LD (IX-96),L - 00006E1E DD 74 A1 749 LD (IX-95),H - 00006E21 750 ?0039: - 00006E21 21 14 00 751 LD HL,20 - 00006E24 DD 4E A0 752 LD C,(IX-96) - 00006E27 DD 46 A1 753 LD B,(IX-95) - 00006E2A 09 754 ADD HL,BC - 00006E2B 7E 755 LD A,(HL) - 00006E2C 23 756 INC HL - 00006E2D B6 757 OR (HL) - 00006E2E 28 0A 758 JR Z,?0038 - 00006E30 759 ?0040: - 00006E30 21 14 00 760 LD HL,20 - 00006E33 09 761 ADD HL,BC - 00006E34 56 762 LD D,(HL) - 00006E35 23 763 INC HL - 00006E36 66 764 LD H,(HL) - 00006E37 6A 765 LD L,D - 00006E38 18 E1 766 JR ?0045 - 00006E3A 767 ?0038: - 00006E3A 21 07 00 768 LD HL,7 - 00006E3D DD 4E 9E 769 LD C,(IX-98) - 00006E40 DD 46 9F 770 LD B,(IX-97) - 00006E43 09 771 ADD HL,BC - 00006E44 6E 772 LD L,(HL) - 00006E45 67 773 LD H,A - 00006E46 E5 774 PUSH HL - 00006E47 2A 41 87 775 LD HL,(trans) - 00006E4A C1 776 POP BC - 00006E4B 71 777 LD (HL),C - 00006E4C 23 778 INC HL - 00006E4D 70 779 LD (HL),B - 00006E4E 2A 41 87 780 LD HL,(trans) - 00006E51 23 781 INC HL - 00006E52 23 782 INC HL - 00006E53 E5 783 PUSH HL - 00006E54 CD 1D 6F 784 CALL LWRD ?0048 - 00006E57 E1 785 POP HL - 00006E58 71 786 LD (HL),C - 00006E59 23 787 INC HL - 00006E5A 70 788 LD (HL),B - 00006E5B 21 04 00 789 LD HL,4 - 00006E5E ED 4B 41 87 790 LD BC,(trans) - 00006E62 09 791 ADD HL,BC - 00006E63 E5 792 PUSH HL - 00006E64 21 07 00 793 LD HL,7 - 00006E67 DD 5E 9E 794 LD E,(IX-98) - 00006E6A DD 56 9F 795 LD D,(IX-97) - 00006E6D 19 796 ADD HL,DE - 00006E6E 5E 797 LD E,(HL) - 00006E6F 23 798 INC HL - 00006E70 56 799 LD D,(HL) - 00006E71 23 800 INC HL - 00006E72 4E 801 LD C,(HL) - 00006E73 23 802 INC HL - 00006E74 46 803 LD B,(HL) - 00006E75 EB 804 EX DE,HL - 00006E76 3E 10 805 LD A,16 - 00006E78 CD 31 6F 806 CALL LWRD ?0049 - 00006E7B E1 807 POP HL - 00006E7C 71 808 LD (HL),C - 00006E7D 23 809 INC HL - 00006E7E 70 810 LD (HL),B - 00006E7F 2A 41 87 811 LD HL,(trans) - 00006E82 4E 812 LD C,(HL) - 00006E83 23 813 INC HL - 00006E84 46 814 LD B,(HL) - 00006E85 21 11 00 815 LD HL,17 - 00006E88 DD 5E 02 816 LD E,(IX+2) - 00006E8B DD 56 03 817 LD D,(IX+3) - 00006E8E 19 818 ADD HL,DE - 00006E8F 5E 819 LD E,(HL) - 00006E90 23 820 INC HL - 00006E91 56 821 LD D,(HL) - 00006E92 CD 58 6F 822 CALL LWRD ?0051 - 00006E95 21 11 00 823 LD HL,17 - 00006E98 DD 5E 02 824 LD E,(IX+2) - 00006E9B DD 56 03 825 LD D,(IX+3) - 00006E9E 19 826 ADD HL,DE - 00006E9F 5E 827 LD E,(HL) - 00006EA0 23 828 INC HL - 00006EA1 56 829 LD D,(HL) - 00006EA2 CD 38 6F 830 CALL LWRD ?0050 - 00006EA5 21 11 00 831 LD HL,17 - 00006EA8 DD 5E 02 832 LD E,(IX+2) - 00006EAB DD 56 03 833 LD D,(IX+3) - 00006EAE 19 834 ADD HL,DE - 00006EAF 5E 835 LD E,(HL) - 00006EB0 23 836 INC HL - 00006EB1 56 837 LD D,(HL) - 00006EB2 CD 75 6F 838 CALL LWRD ?0052 - 00006EB5 21 11 00 839 LD HL,17 - 00006EB8 DD 4E 02 840 LD C,(IX+2) - 00006EBB DD 46 03 841 LD B,(IX+3) - 00006EBE 09 842 ADD HL,BC - 00006EBF 5E 843 LD E,(HL) - 00006EC0 23 844 INC HL - 00006EC1 56 845 LD D,(HL) - 00006EC2 21 11 00 846 LD HL,17 - 00006EC5 09 847 ADD HL,BC - 00006EC6 46 848 LD B,(HL) - 00006EC7 23 849 INC HL - 00006EC8 66 850 LD H,(HL) - 00006EC9 68 851 LD L,B - 00006ECA 01 1A 00 852 LD BC,26 - 00006ECD CD 8D 6F 853 CALL LWRD ?0054 - 00006ED0 21 14 00 854 LD HL,20 - 00006ED3 DD 4E A0 855 LD C,(IX-96) - 00006ED6 DD 46 A1 856 LD B,(IX-95) - 00006ED9 09 857 ADD HL,BC - 00006EDA E5 858 PUSH HL - 00006EDB CD B0 69 859 CALL LWRD ?0047 - 00006EDE EB 860 EX DE,HL - 00006EDF E1 861 POP HL - 00006EE0 73 862 LD (HL),E - 00006EE1 23 863 INC HL - 00006EE2 72 864 LD (HL),D - 00006EE3 21 14 00 865 LD HL,20 - 00006EE6 09 866 ADD HL,BC - 00006EE7 56 867 LD D,(HL) - 00006EE8 23 868 INC HL - 00006EE9 66 869 LD H,(HL) - 00006EEA 6A 870 LD L,D - 00006EEB DD 75 A0 871 LD (IX-96),L - 00006EEE DD 74 A1 872 LD (IX-95),H - 00006EF1 01 14 00 873 LD BC,20 - 00006EF4 09 874 ADD HL,BC - 00006EF5 AF 875 XOR A - 00006EF6 77 876 LD (HL),A - 00006EF7 23 877 INC HL - 00006EF8 77 878 LD (HL),A - 00006EF9 DD 6E A0 879 LD L,(IX-96) - 00006EFC DD 66 A1 880 LD H,(IX-95) - 00006EFF 70 881 LD (HL),B - 00006F00 21 0E 00 882 LD HL,14 - 00006F03 DD 4E A0 883 LD C,(IX-96) - 00006F06 DD 46 A1 884 LD B,(IX-95) - 00006F09 09 885 ADD HL,BC - 00006F0A 77 886 LD (HL),A - 00006F0B 23 887 INC HL - 00006F0C 77 888 LD (HL),A - 00006F0D 21 10 00 889 LD HL,16 - 00006F10 09 890 ADD HL,BC - 00006F11 77 891 LD (HL),A - 00006F12 23 892 INC HL - 00006F13 77 893 LD (HL),A - 00006F14 23 894 INC HL - 00006F15 77 895 LD (HL),A - 00006F16 23 896 INC HL - 00006F17 77 897 LD (HL),A - 00006F18 898 ?0037: - 00006F18 FD E1 899 POP IY - 00006F1A C3 A3 81 900 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00006F1D 901 ?0048: - 00006F1D 21 07 00 902 LD HL,7 - 00006F20 DD 4E 9E 903 LD C,(IX-98) - 00006F23 DD 46 9F 904 LD B,(IX-97) - 00006F26 09 905 ADD HL,BC - 00006F27 5E 906 LD E,(HL) - 00006F28 23 907 INC HL - 00006F29 56 908 LD D,(HL) - 00006F2A 23 909 INC HL - 00006F2B 4E 910 LD C,(HL) - 00006F2C 23 911 INC HL - 00006F2D 46 912 LD B,(HL) - 00006F2E EB 913 EX DE,HL - 00006F2F 3E 08 914 LD A,8 - 00006F31 915 ?0049: - 00006F31 CD 15 83 916 CALL LWRD ?SL_RSH_L03 - 00006F34 06 00 917 LD B,0 - 00006F36 4D 918 LD C,L - 00006F37 C9 919 RET - 00006F38 920 ?0050: - 00006F38 3E 00 921 LD A,BYTE3 Component_find - 00006F3A 21 D6 4D 922 LD HL,LWRD Component_find - 00006F3D CD FB 81 923 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006F40 EB 924 EX DE,HL - 00006F41 3E 00 925 LD A,BYTE3 Component_setlabel - 00006F43 21 A1 4C 926 LD HL,LWRD Component_setlabel - 00006F46 01 14 85 927 LD BC,?0005 - 00006F49 CD FB 81 928 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006F4C 21 04 00 929 LD HL,4 - 00006F4F ED 5B 41 87 930 LD DE,(trans) - 00006F53 19 931 ADD HL,DE - 00006F54 4E 932 LD C,(HL) - 00006F55 23 933 INC HL - 00006F56 46 934 LD B,(HL) - 00006F57 C9 935 RET - 00006F58 936 ?0051: - 00006F58 3E 00 937 LD A,BYTE3 Component_find - 00006F5A 21 D6 4D 938 LD HL,LWRD Component_find - 00006F5D CD FB 81 939 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006F60 EB 940 EX DE,HL - 00006F61 3E 00 941 LD A,BYTE3 Component_setlabel - 00006F63 21 A1 4C 942 LD HL,LWRD Component_setlabel - 00006F66 01 0C 85 943 LD BC,?0004 - 00006F69 CD FB 81 944 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006F6C 2A 41 87 945 LD HL,(trans) - 00006F6F 23 946 INC HL - 00006F70 23 947 INC HL - 00006F71 4E 948 LD C,(HL) - 00006F72 23 949 INC HL - 00006F73 46 950 LD B,(HL) - 00006F74 C9 951 RET - 00006F75 952 ?0052: - 00006F75 3E 00 953 LD A,BYTE3 Component_find - 00006F77 21 D6 4D 954 LD HL,LWRD Component_find - 00006F7A CD FB 81 955 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00006F7D EB 956 EX DE,HL - 00006F7E 3E 00 957 LD A,BYTE3 Component_setlabel - 00006F80 21 A1 4C 958 LD HL,LWRD Component_setlabel - 00006F83 01 1A 85 959 LD BC,?0006 - 00006F86 C3 FB 81 960 JP LWRD ?BANK_CALL_DIRECT_L08 - 00006F89 961 ?0053: - 00006F89 42 962 LD B,D - 00006F8A 21 1A 00 963 LD HL,26 - 00006F8D 964 ?0054: - 00006F8D 09 965 ADD HL,BC - 00006F8E 4E 966 LD C,(HL) - 00006F8F 23 967 INC HL - 00006F90 46 968 LD B,(HL) - 00006F91 23 969 INC HL - 00006F92 7E 970 LD A,(HL) - 00006F93 69 971 LD L,C - 00006F94 60 972 LD H,B - 00006F95 C3 FB 81 973 JP LWRD ?BANK_CALL_DIRECT_L08 - 00006F98 974 ?0055: - 00006F98 3E 00 975 LD A,BYTE3 sprintf - 00006F9A 21 1B 70 976 LD HL,LWRD sprintf - 00006F9D C3 FB 81 977 JP LWRD ?BANK_CALL_DIRECT_L08 - 00006FA0 978 ?0056: - 00006FA0 FD 4E 12 979 LD C,(IY+18) - 00006FA3 FD 46 13 980 LD B,(IY+19) - 00006FA6 FD 6E 10 981 LD L,(IY+16) - 00006FA9 FD 66 11 982 LD H,(IY+17) - 00006FAC C3 47 82 983 JP LWRD ?SL_MOD_L03 - 00006FAF 984 ?0057: - 00006FAF FD 4E 12 985 LD C,(IY+18) - 00006FB2 FD 46 13 986 LD B,(IY+19) - 00006FB5 FD 6E 10 987 LD L,(IY+16) - 00006FB8 FD 66 11 988 LD H,(IY+17) - 00006FBB C3 98 82 989 JP LWRD ?SL_DIV_L03 - 00006FBE 990 ?0058: - 00006FBE FD 4E 12 991 LD C,(IY+18) - 00006FC1 FD 46 13 992 LD B,(IY+19) - 00006FC4 FD 6E 10 993 LD L,(IY+16) - 00006FC7 FD 66 11 994 LD H,(IY+17) - 00006FCA C3 1F 81 995 JP LWRD ?L_MUL_L03 - 00006FCD 996 ?0059: - 00006FCD 4D 997 LD C,L - 00006FCE 44 998 LD B,H - 00006FCF DD 5E A0 999 LD E,(IX-96) - 00006FD2 DD 56 A1 1000 LD D,(IX-95) - 00006FD5 3E 00 1001 LD A,BYTE3 _write - 00006FD7 21 72 72 1002 LD HL,LWRD _write - 00006FDA C3 FB 81 1003 JP LWRD ?BANK_CALL_DIRECT_L08 - 1004 RSEG CSTR - 0000850C 1005 ?0004: - 0000850C 42 61 72 63 6F 64 65 1006 DEFB 'Barcode' - 00008513 00 1007 DEFB 0 - 00008514 1008 ?0005: - 00008514 53 74 75 6B 73 1009 DEFB 'Stuks' - 00008519 00 1010 DEFB 0 - 0000851A 1011 ?0006: - 0000851A 50 72 69 6A 73 1012 DEFB 'Prijs' - 0000851F 00 1013 DEFB 0 - 00008520 1014 ?0014: - 00008520 00 1015 DEFB 0 - 00008521 1016 ?0021: - 00008521 2F 64 65 76 2F 70 72 1017 DEFB '/dev/printer' + 00006B10 34 Transaction_init: + 00006B10 C5 35 PUSH BC + 00006B11 D5 36 PUSH DE + 00006B12 11 08 00 37 LD DE,8 + 00006B15 CD 7D 6B 38 CALL LWRD ?0045 + 00006B18 22 53 87 39 LD (trans),HL + 00006B1B 01 06 00 40 LD BC,6 + 00006B1E 09 41 ADD HL,BC + 00006B1F E5 42 PUSH HL + 00006B20 CD 7A 6B 43 CALL LWRD ?0046 + 00006B23 4D 44 LD C,L + 00006B24 44 45 LD B,H + 00006B25 E1 46 POP HL + 00006B26 71 47 LD (HL),C + 00006B27 23 48 INC HL + 00006B28 70 49 LD (HL),B + 00006B29 21 06 00 50 LD HL,6 + 00006B2C ED 4B 53 87 51 LD BC,(trans) + 00006B30 09 52 ADD HL,BC + 00006B31 56 53 LD D,(HL) + 00006B32 23 54 INC HL + 00006B33 66 55 LD H,(HL) + 00006B34 6A 56 LD L,D + 00006B35 11 14 00 57 LD DE,20 + 00006B38 19 58 ADD HL,DE + 00006B39 AF 59 XOR A + 00006B3A 77 60 LD (HL),A + 00006B3B 23 61 INC HL + 00006B3C 77 62 LD (HL),A + 00006B3D 21 06 00 63 LD HL,6 + 00006B40 ED 4B 53 87 64 LD BC,(trans) + 00006B44 09 65 ADD HL,BC + 00006B45 7E 66 LD A,(HL) + 00006B46 23 67 INC HL + 00006B47 66 68 LD H,(HL) + 00006B48 6F 69 LD L,A + 00006B49 72 70 LD (HL),D + 00006B4A 21 06 00 71 LD HL,6 + 00006B4D ED 4B 53 87 72 LD BC,(trans) + 00006B51 09 73 ADD HL,BC + 00006B52 56 74 LD D,(HL) + 00006B53 23 75 INC HL + 00006B54 66 76 LD H,(HL) + 00006B55 6A 77 LD L,D + 00006B56 11 0E 00 78 LD DE,14 + 00006B59 19 79 ADD HL,DE + 00006B5A AF 80 XOR A + 00006B5B 77 81 LD (HL),A + 00006B5C 23 82 INC HL + 00006B5D 77 83 LD (HL),A + 00006B5E 21 06 00 84 LD HL,6 + 00006B61 ED 4B 53 87 85 LD BC,(trans) + 00006B65 09 86 ADD HL,BC + 00006B66 46 87 LD B,(HL) + 00006B67 23 88 INC HL + 00006B68 66 89 LD H,(HL) + 00006B69 68 90 LD L,B + 00006B6A 01 10 00 91 LD BC,16 + 00006B6D 09 92 ADD HL,BC + 00006B6E 77 93 LD (HL),A + 00006B6F 23 94 INC HL + 00006B70 77 95 LD (HL),A + 00006B71 23 96 INC HL + 00006B72 77 97 LD (HL),A + 00006B73 23 98 INC HL + 00006B74 77 99 LD (HL),A + 00006B75 D1 100 POP DE + 00006B76 C1 101 POP BC + 00006B77 C3 A9 81 102 JP LWRD ?BANK_FAST_LEAVE_L08 + 00006B7A 103 ?0046: + 00006B7A 11 16 00 104 LD DE,22 + 00006B7D 105 ?0045: + 00006B7D 3E 01 106 LD A,BYTE3 malloc + 00006B7F 21 2B 40 107 LD HL,LWRD malloc + 00006B82 C3 FB 81 108 JP LWRD ?BANK_CALL_DIRECT_L08 + 00006B85 109 Transaction_handler: + 00006B85 CD 7A 82 110 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00006B88 9E FF 111 DEFW 65438 + 00006B8A FD E5 112 PUSH IY + 00006B8C 21 26 00 113 LD HL,38 + 00006B8F DD 4E 02 114 LD C,(IX+2) + 00006B92 DD 46 03 115 LD B,(IX+3) + 00006B95 09 116 ADD HL,BC + 00006B96 46 117 LD B,(HL) + 00006B97 DD 70 9E 118 LD (IX-98),B + 00006B9A 23 119 INC HL + 00006B9B 66 120 LD H,(HL) + 00006B9C DD 74 9F 121 LD (IX-97),H + 00006B9F 2A 53 87 122 LD HL,(trans) + 00006BA2 7D 123 LD A,L + 00006BA3 B4 124 OR H + 00006BA4 20 08 125 JR NZ,?0001 + 00006BA6 126 ?0000: + 00006BA6 3E 00 127 LD A,BYTE3 Transaction_init + 00006BA8 21 10 6B 128 LD HL,LWRD Transaction_init + 00006BAB CD FB 81 129 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006BAE 130 ?0001: + 00006BAE 68 131 LD L,B + 00006BAF DD 66 9F 132 LD H,(IX-97) + 00006BB2 23 133 INC HL + 00006BB3 23 134 INC HL + 00006BB4 23 135 INC HL + 00006BB5 46 136 LD B,(HL) + 00006BB6 23 137 INC HL + 00006BB7 66 138 LD H,(HL) + 00006BB8 68 139 LD L,B + 00006BB9 01 10 90 140 LD BC,36880 + 00006BBC 3E 80 141 LD A,128 + 00006BBE AC 142 XOR H + 00006BBF 67 143 LD H,A + 00006BC0 ED 42 144 SBC HL,BC + 00006BC2 DA 04 6D 145 JP C,?0003 + 00006BC5 DD 6E 9E 146 LD L,(IX-98) + 00006BC8 DD 66 9F 147 LD H,(IX-97) + 00006BCB 23 148 INC HL + 00006BCC 23 149 INC HL + 00006BCD 23 150 INC HL + 00006BCE 4E 151 LD C,(HL) + 00006BCF 23 152 INC HL + 00006BD0 46 153 LD B,(HL) + 00006BD1 21 12 10 154 LD HL,4114 + 00006BD4 CD C8 82 155 CALL LWRD ?SS_CMP_L02 + 00006BD7 DA 04 6D 156 JP C,?0003 + 00006BDA 157 ?0005: + 00006BDA 158 ?0004: + 00006BDA 159 ?0002: + 00006BDA 21 06 00 160 LD HL,6 + 00006BDD ED 4B 53 87 161 LD BC,(trans) + 00006BE1 09 162 ADD HL,BC + 00006BE2 46 163 LD B,(HL) + 00006BE3 23 164 INC HL + 00006BE4 66 165 LD H,(HL) + 00006BE5 68 166 LD L,B + 00006BE6 167 ?0041: + 00006BE6 DD 75 A2 168 LD (IX-94),L + 00006BE9 DD 74 A3 169 LD (IX-93),H + 00006BEC 170 ?0007: + 00006BEC 21 14 00 171 LD HL,20 + 00006BEF DD 4E A2 172 LD C,(IX-94) + 00006BF2 DD 46 A3 173 LD B,(IX-93) + 00006BF5 09 174 ADD HL,BC + 00006BF6 7E 175 LD A,(HL) + 00006BF7 23 176 INC HL + 00006BF8 B6 177 OR (HL) + 00006BF9 28 0A 178 JR Z,?0006 + 00006BFB 179 ?0008: + 00006BFB 21 14 00 180 LD HL,20 + 00006BFE 09 181 ADD HL,BC + 00006BFF 56 182 LD D,(HL) + 00006C00 23 183 INC HL + 00006C01 66 184 LD H,(HL) + 00006C02 6A 185 LD L,D + 00006C03 18 E1 186 JR ?0041 + 00006C05 187 ?0006: + 00006C05 21 05 00 188 LD HL,5 + 00006C08 DD 4E 9E 189 LD C,(IX-98) + 00006C0B DD 46 9F 190 LD B,(IX-97) + 00006C0E 09 191 ADD HL,BC + 00006C0F 4E 192 LD C,(HL) + 00006C10 23 193 INC HL + 00006C11 46 194 LD B,(HL) + 00006C12 21 11 00 195 LD HL,17 + 00006C15 DD 5E 02 196 LD E,(IX+2) + 00006C18 DD 56 03 197 LD D,(IX+3) + 00006C1B 19 198 ADD HL,DE + 00006C1C 5E 199 LD E,(HL) + 00006C1D 23 200 INC HL + 00006C1E 56 201 LD D,(HL) + 00006C1F 3E 00 202 LD A,BYTE3 Component_find + 00006C21 21 77 4E 203 LD HL,LWRD Component_find + 00006C24 CD FB 81 204 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C27 DD 75 A0 205 LD (IX-96),L + 00006C2A DD 74 A1 206 LD (IX-95),H + 00006C2D 01 20 00 207 LD BC,32 + 00006C30 09 208 ADD HL,BC + 00006C31 4E 209 LD C,(HL) + 00006C32 23 210 INC HL + 00006C33 46 211 LD B,(HL) + 00006C34 DD 5E 02 212 LD E,(IX+2) + 00006C37 DD 56 03 213 LD D,(IX+3) + 00006C3A 3E 00 214 LD A,BYTE3 Component_setlabel + 00006C3C 21 42 4D 215 LD HL,LWRD Component_setlabel + 00006C3F CD FB 81 216 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C42 01 19 85 217 LD BC,?0009 + 00006C45 DD 5E A0 218 LD E,(IX-96) + 00006C48 DD 56 A1 219 LD D,(IX-95) + 00006C4B 3E 00 220 LD A,BYTE3 Component_setlabel + 00006C4D 21 42 4D 221 LD HL,LWRD Component_setlabel + 00006C50 CD FB 81 222 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C53 DD 5E A0 223 LD E,(IX-96) + 00006C56 4B 224 LD C,E + 00006C57 DD 56 A1 225 LD D,(IX-95) + 00006C5A CD B3 70 226 CALL LWRD ?0048 + 00006C5D DD 6E 9E 227 LD L,(IX-98) + 00006C60 DD 66 9F 228 LD H,(IX-97) + 00006C63 23 229 INC HL + 00006C64 23 230 INC HL + 00006C65 23 231 INC HL + 00006C66 5E 232 LD E,(HL) + 00006C67 23 233 INC HL + 00006C68 56 234 LD D,(HL) + 00006C69 CD 08 82 235 CALL LWRD ?S_S_SWITCH_L06 + 00006C6C 10 10 236 DEFW 4112 + 00006C6E 03 00 237 DEFW 3 + 00006C70 FA 6C 238 DEFW ?0010 + 00006C72 78 6C 239 DEFW ?0011 + 00006C74 95 6C 240 DEFW ?0012 + 00006C76 CD 6C 241 DEFW ?0015 + 00006C78 242 ?0011: + 00006C78 21 20 00 243 LD HL,32 + 00006C7B DD 4E 02 244 LD C,(IX+2) + 00006C7E DD 46 03 245 LD B,(IX+3) + 00006C81 09 246 ADD HL,BC + 00006C82 4E 247 LD C,(HL) + 00006C83 23 248 INC HL + 00006C84 46 249 LD B,(HL) + 00006C85 DD 5E A2 250 LD E,(IX-94) + 00006C88 DD 56 A3 251 LD D,(IX-93) + 00006C8B 3E 00 252 LD A,BYTE3 strcpy + 00006C8D 21 5A 76 253 LD HL,LWRD strcpy + 00006C90 CD FB 81 254 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006C93 18 65 255 JR ?0010 + 00006C95 256 ?0012: + 00006C95 21 0E 00 257 LD HL,14 + 00006C98 DD 4E A2 258 LD C,(IX-94) + 00006C9B DD 46 A3 259 LD B,(IX-93) + 00006C9E 09 260 ADD HL,BC + 00006C9F E5 261 PUSH HL + 00006CA0 21 20 00 262 LD HL,32 + 00006CA3 DD 5E 02 263 LD E,(IX+2) + 00006CA6 DD 56 03 264 LD D,(IX+3) + 00006CA9 19 265 ADD HL,DE + 00006CAA 5E 266 LD E,(HL) + 00006CAB 23 267 INC HL + 00006CAC 56 268 LD D,(HL) + 00006CAD 3E 00 269 LD A,BYTE3 atoi + 00006CAF 21 81 76 270 LD HL,LWRD atoi + 00006CB2 CD FB 81 271 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006CB5 EB 272 EX DE,HL + 00006CB6 E1 273 POP HL + 00006CB7 73 274 LD (HL),E + 00006CB8 23 275 INC HL + 00006CB9 72 276 LD (HL),D + 00006CBA 21 0E 00 277 LD HL,14 + 00006CBD 09 278 ADD HL,BC + 00006CBE 7E 279 LD A,(HL) + 00006CBF 23 280 INC HL + 00006CC0 B6 281 OR (HL) + 00006CC1 20 37 282 JR NZ,?0010 + 00006CC3 283 ?0013: + 00006CC3 21 0E 00 284 LD HL,14 + 00006CC6 09 285 ADD HL,BC + 00006CC7 36 01 286 LD (HL),1 + 00006CC9 23 287 INC HL + 00006CCA 77 288 LD (HL),A + 00006CCB 289 ?0014: + 00006CCB 18 2D 290 JR ?0010 + 00006CCD 291 ?0015: + 00006CCD 21 20 00 292 LD HL,32 + 00006CD0 DD 4E 02 293 LD C,(IX+2) + 00006CD3 DD 46 03 294 LD B,(IX+3) + 00006CD6 09 295 ADD HL,BC + 00006CD7 5E 296 LD E,(HL) + 00006CD8 23 297 INC HL + 00006CD9 56 298 LD D,(HL) + 00006CDA 3E 00 299 LD A,BYTE3 atol + 00006CDC 21 D5 7D 300 LD HL,LWRD atol + 00006CDF CD FB 81 301 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006CE2 7C 302 LD A,H + 00006CE3 07 303 RLCA + 00006CE4 9F 304 SBC A,A + 00006CE5 4F 305 LD C,A + 00006CE6 41 306 LD B,C + 00006CE7 E5 307 PUSH HL + 00006CE8 21 10 00 308 LD HL,16 + 00006CEB DD 5E A2 309 LD E,(IX-94) + 00006CEE DD 56 A3 310 LD D,(IX-93) + 00006CF1 19 311 ADD HL,DE + 00006CF2 D1 312 POP DE + 00006CF3 73 313 LD (HL),E + 00006CF4 23 314 INC HL + 00006CF5 72 315 LD (HL),D + 00006CF6 23 316 INC HL + 00006CF7 71 317 LD (HL),C + 00006CF8 23 318 INC HL + 00006CF9 70 319 LD (HL),B + 00006CFA 320 ?0010: + 00006CFA DD 5E 02 321 LD E,(IX+2) + 00006CFD 4B 322 LD C,E + 00006CFE DD 56 03 323 LD D,(IX+3) + 00006D01 CD B3 70 324 CALL LWRD ?0048 + 00006D04 325 ?0003: + 00006D04 DD 6E 9E 326 LD L,(IX-98) + 00006D07 DD 66 9F 327 LD H,(IX-97) + 00006D0A 23 328 INC HL + 00006D0B 23 329 INC HL + 00006D0C 23 330 INC HL + 00006D0D 46 331 LD B,(HL) + 00006D0E 23 332 INC HL + 00006D0F 66 333 LD H,(HL) + 00006D10 68 334 LD L,B + 00006D11 01 1E 10 335 LD BC,4126 + 00006D14 A7 336 AND A + 00006D15 ED 42 337 SBC HL,BC + 00006D17 C2 61 6F 338 JP NZ,?0017 + 00006D1A 339 ?0016: + 00006D1A AF 340 XOR A + 00006D1B DD 77 AC 341 LD (IX-84),A + 00006D1E DD 77 AD 342 LD (IX-83),A + 00006D21 DD 77 AE 343 LD (IX-82),A + 00006D24 DD 77 AF 344 LD (IX-81),A + 00006D27 21 06 00 345 LD HL,6 + 00006D2A ED 4B 53 87 346 LD BC,(trans) + 00006D2E 09 347 ADD HL,BC + 00006D2F 46 348 LD B,(HL) + 00006D30 23 349 INC HL + 00006D31 66 350 LD H,(HL) + 00006D32 68 351 LD L,B + 00006D33 E5 352 PUSH HL + 00006D34 FD E1 353 POP IY + 00006D36 21 01 00 354 LD HL,1 + 00006D39 E5 355 PUSH HL + 00006D3A 21 1A 85 356 LD HL,?0018 + 00006D3D E5 357 PUSH HL + 00006D3E 3E 01 358 LD A,BYTE3 open + 00006D40 21 00 40 359 LD HL,LWRD open + 00006D43 CD FB 81 360 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006D46 F1 361 POP AF + 00006D47 F1 362 POP AF + 00006D48 DD 75 A0 363 LD (IX-96),L + 00006D4B DD 74 A1 364 LD (IX-95),H + 00006D4E 21 08 00 365 LD HL,8 + 00006D51 39 366 ADD HL,SP + 00006D52 E5 367 PUSH HL + 00006D53 21 00 00 368 LD HL,0 + 00006D56 E5 369 PUSH HL + 00006D57 DD 6E A0 370 LD L,(IX-96) + 00006D5A DD 66 A1 371 LD H,(IX-95) + 00006D5D E5 372 PUSH HL + 00006D5E 3E 00 373 LD A,BYTE3 ioctl + 00006D60 21 FD 74 374 LD HL,LWRD ioctl + 00006D63 CD FB 81 375 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006D66 F1 376 POP AF + 00006D67 F1 377 POP AF + 00006D68 F1 378 POP AF + 00006D69 DD 36 A8 60 379 LD (IX-88),96 + 00006D6D DD 36 A9 00 380 LD (IX-87),0 + 00006D71 21 08 00 381 LD HL,8 + 00006D74 39 382 ADD HL,SP + 00006D75 E5 383 PUSH HL + 00006D76 21 01 00 384 LD HL,1 + 00006D79 E5 385 PUSH HL + 00006D7A DD 6E A0 386 LD L,(IX-96) + 00006D7D DD 66 A1 387 LD H,(IX-95) + 00006D80 E5 388 PUSH HL + 00006D81 3E 00 389 LD A,BYTE3 ioctl + 00006D83 21 FD 74 390 LD HL,LWRD ioctl + 00006D86 CD FB 81 391 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006D89 F1 392 POP AF + 00006D8A F1 393 POP AF + 00006D8B F1 394 POP AF + 00006D8C 395 ?0020: + 00006D8C FD E5 396 PUSH IY + 00006D8E E1 397 POP HL + 00006D8F 7D 398 LD A,L + 00006D90 B4 399 OR H + 00006D91 CA 76 6E 400 JP Z,?0019 + 00006D94 401 ?0021: + 00006D94 FD 7E 0E 402 LD A,(IY+14) + 00006D97 FD B6 0F 403 OR (IY+15) + 00006D9A CA 6A 6E 404 JP Z,?0023 + 00006D9D 405 ?0022: + 00006D9D 3E 01 406 LD A,1 + 00006D9F FD AE 0E 407 XOR (IY+14) + 00006DA2 FD B6 0F 408 OR (IY+15) + 00006DA5 20 29 409 JR NZ,?0025 + 00006DA7 410 ?0024: + 00006DA7 6F 411 LD L,A + 00006DA8 67 412 LD H,A + 00006DA9 E5 413 PUSH HL + 00006DAA 2E 64 414 LD L,100 + 00006DAC E5 415 PUSH HL + 00006DAD CD CA 70 416 CALL LWRD ?0051 + 00006DB0 C5 417 PUSH BC + 00006DB1 E5 418 PUSH HL + 00006DB2 6F 419 LD L,A + 00006DB3 67 420 LD H,A + 00006DB4 E5 421 PUSH HL + 00006DB5 2E 64 422 LD L,100 + 00006DB7 E5 423 PUSH HL + 00006DB8 CD D9 70 424 CALL LWRD ?0052 + 00006DBB C5 425 PUSH BC + 00006DBC E5 426 PUSH HL + 00006DBD FD E5 427 PUSH IY + 00006DBF 21 27 85 428 LD HL,?0026 + 00006DC2 E5 429 PUSH HL + 00006DC3 21 20 00 430 LD HL,32 + 00006DC6 39 431 ADD HL,SP + 00006DC7 E5 432 PUSH HL + 00006DC8 CD C2 70 433 CALL LWRD ?0050 + 00006DCB 21 0E 00 434 LD HL,14 + 00006DCE 18 68 435 JR ?0042 + 00006DD0 436 ?0025: + 00006DD0 21 00 00 437 LD HL,0 + 00006DD3 E5 438 PUSH HL + 00006DD4 2E 64 439 LD L,100 + 00006DD6 E5 440 PUSH HL + 00006DD7 FD 6E 0E 441 LD L,(IY+14) + 00006DDA FD 66 0F 442 LD H,(IY+15) + 00006DDD 7C 443 LD A,H + 00006DDE 07 444 RLCA + 00006DDF 9F 445 SBC A,A + 00006DE0 4F 446 LD C,A + 00006DE1 41 447 LD B,C + 00006DE2 C5 448 PUSH BC + 00006DE3 E5 449 PUSH HL + 00006DE4 CD E8 70 450 CALL LWRD ?0053 + 00006DE7 CD 47 82 451 CALL LWRD ?SL_MOD_L03 + 00006DEA C5 452 PUSH BC + 00006DEB E5 453 PUSH HL + 00006DEC 21 00 00 454 LD HL,0 + 00006DEF E5 455 PUSH HL + 00006DF0 2E 64 456 LD L,100 + 00006DF2 E5 457 PUSH HL + 00006DF3 FD 6E 0E 458 LD L,(IY+14) + 00006DF6 FD 66 0F 459 LD H,(IY+15) + 00006DF9 7C 460 LD A,H + 00006DFA 07 461 RLCA + 00006DFB 9F 462 SBC A,A + 00006DFC 4F 463 LD C,A + 00006DFD 41 464 LD B,C + 00006DFE C5 465 PUSH BC + 00006DFF E5 466 PUSH HL + 00006E00 CD E8 70 467 CALL LWRD ?0053 + 00006E03 CD 98 82 468 CALL LWRD ?SL_DIV_L03 + 00006E06 C5 469 PUSH BC + 00006E07 E5 470 PUSH HL + 00006E08 21 00 00 471 LD HL,0 + 00006E0B E5 472 PUSH HL + 00006E0C 2E 64 473 LD L,100 + 00006E0E E5 474 PUSH HL + 00006E0F CD CA 70 475 CALL LWRD ?0051 + 00006E12 C5 476 PUSH BC + 00006E13 E5 477 PUSH HL + 00006E14 21 00 00 478 LD HL,0 + 00006E17 E5 479 PUSH HL + 00006E18 2E 64 480 LD L,100 + 00006E1A E5 481 PUSH HL + 00006E1B CD D9 70 482 CALL LWRD ?0052 + 00006E1E C5 483 PUSH BC + 00006E1F E5 484 PUSH HL + 00006E20 FD 6E 0E 485 LD L,(IY+14) + 00006E23 FD 66 0F 486 LD H,(IY+15) + 00006E26 E5 487 PUSH HL + 00006E27 FD E5 488 PUSH IY + 00006E29 21 4A 85 489 LD HL,?0028 + 00006E2C E5 490 PUSH HL + 00006E2D 21 2A 00 491 LD HL,42 + 00006E30 39 492 ADD HL,SP + 00006E31 E5 493 PUSH HL + 00006E32 CD C2 70 494 CALL LWRD ?0050 + 00006E35 21 18 00 495 LD HL,24 + 00006E38 496 ?0042: + 00006E38 39 497 ADD HL,SP + 00006E39 F9 498 LD SP,HL + 00006E3A 499 ?0027: + 00006E3A 21 10 00 500 LD HL,16 + 00006E3D 39 501 ADD HL,SP + 00006E3E E5 502 PUSH HL + 00006E3F FD 5E 0E 503 LD E,(IY+14) + 00006E42 FD 56 0F 504 LD D,(IY+15) + 00006E45 7A 505 LD A,D + 00006E46 07 506 RLCA + 00006E47 9F 507 SBC A,A + 00006E48 4F 508 LD C,A + 00006E49 41 509 LD B,C + 00006E4A C5 510 PUSH BC + 00006E4B D5 511 PUSH DE + 00006E4C CD E8 70 512 CALL LWRD ?0053 + 00006E4F EB 513 EX DE,HL + 00006E50 E1 514 POP HL + 00006E51 CD D6 81 515 CALL LWRD ?L_ADDASG_L03 + 00006E54 21 14 00 516 LD HL,20 + 00006E57 39 517 ADD HL,SP + 00006E58 EB 518 EX DE,HL + 00006E59 3E 00 519 LD A,BYTE3 strlen + 00006E5B 21 C6 74 520 LD HL,LWRD strlen + 00006E5E CD FB 81 521 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006E61 E5 522 PUSH HL + 00006E62 21 16 00 523 LD HL,22 + 00006E65 39 524 ADD HL,SP + 00006E66 CD F7 70 525 CALL LWRD ?0054 + 00006E69 F1 526 POP AF + 00006E6A 527 ?0023: + 00006E6A FD 6E 14 528 LD L,(IY+20) + 00006E6D FD 66 15 529 LD H,(IY+21) + 00006E70 E5 530 PUSH HL + 00006E71 FD E1 531 POP IY + 00006E73 C3 8C 6D 532 JP LWRD ?0020 + 00006E76 533 ?0019: + 00006E76 6F 534 LD L,A + 00006E77 67 535 LD H,A + 00006E78 E5 536 PUSH HL + 00006E79 2E 64 537 LD L,100 + 00006E7B E5 538 PUSH HL + 00006E7C DD 4E AE 539 LD C,(IX-82) + 00006E7F DD 46 AF 540 LD B,(IX-81) + 00006E82 DD 6E AC 541 LD L,(IX-84) + 00006E85 DD 66 AD 542 LD H,(IX-83) + 00006E88 CD 47 82 543 CALL LWRD ?SL_MOD_L03 + 00006E8B C5 544 PUSH BC + 00006E8C E5 545 PUSH HL + 00006E8D 6F 546 LD L,A + 00006E8E 67 547 LD H,A + 00006E8F E5 548 PUSH HL + 00006E90 2E 64 549 LD L,100 + 00006E92 E5 550 PUSH HL + 00006E93 DD 4E AE 551 LD C,(IX-82) + 00006E96 DD 46 AF 552 LD B,(IX-81) + 00006E99 DD 6E AC 553 LD L,(IX-84) + 00006E9C DD 66 AD 554 LD H,(IX-83) + 00006E9F CD 98 82 555 CALL LWRD ?SL_DIV_L03 + 00006EA2 C5 556 PUSH BC + 00006EA3 E5 557 PUSH HL + 00006EA4 21 19 85 558 LD HL,?0009 + 00006EA7 E5 559 PUSH HL + 00006EA8 E5 560 PUSH HL + 00006EA9 21 8A 85 561 LD HL,?0029 + 00006EAC E5 562 PUSH HL + 00006EAD 21 22 00 563 LD HL,34 + 00006EB0 39 564 ADD HL,SP + 00006EB1 E5 565 PUSH HL + 00006EB2 CD C2 70 566 CALL LWRD ?0050 + 00006EB5 21 10 00 567 LD HL,16 + 00006EB8 39 568 ADD HL,SP + 00006EB9 F9 569 LD SP,HL + 00006EBA 21 14 00 570 LD HL,20 + 00006EBD 39 571 ADD HL,SP + 00006EBE EB 572 EX DE,HL + 00006EBF 3E 00 573 LD A,BYTE3 strlen + 00006EC1 21 C6 74 574 LD HL,LWRD strlen + 00006EC4 CD FB 81 575 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006EC7 E5 576 PUSH HL + 00006EC8 21 16 00 577 LD HL,22 + 00006ECB 39 578 ADD HL,SP + 00006ECC CD F7 70 579 CALL LWRD ?0054 + 00006ECF F1 580 POP AF + 00006ED0 DD 5E A0 581 LD E,(IX-96) + 00006ED3 DD 56 A1 582 LD D,(IX-95) + 00006ED6 3E 00 583 LD A,BYTE3 close + 00006ED8 21 B1 74 584 LD HL,LWRD close + 00006EDB CD FB 81 585 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006EDE 21 06 00 586 LD HL,6 + 00006EE1 ED 4B 53 87 587 LD BC,(trans) + 00006EE5 09 588 ADD HL,BC + 00006EE6 46 589 LD B,(HL) + 00006EE7 23 590 INC HL + 00006EE8 66 591 LD H,(HL) + 00006EE9 68 592 LD L,B + 00006EEA 593 ?0043: + 00006EEA E5 594 PUSH HL + 00006EEB FD E1 595 POP IY + 00006EED 596 ?0031: + 00006EED 7D 597 LD A,L + 00006EEE B4 598 OR H + 00006EEF 28 13 599 JR Z,?0030 + 00006EF1 600 ?0032: + 00006EF1 FD E5 601 PUSH IY + 00006EF3 D1 602 POP DE + 00006EF4 3E 00 603 LD A,BYTE3 free + 00006EF6 21 7A 75 604 LD HL,LWRD free + 00006EF9 CD FB 81 605 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006EFC FD 6E 14 606 LD L,(IY+20) + 00006EFF FD 66 15 607 LD H,(IY+21) + 00006F02 18 E6 608 JR ?0043 + 00006F04 609 ?0030: + 00006F04 21 06 00 610 LD HL,6 + 00006F07 ED 4B 53 87 611 LD BC,(trans) + 00006F0B 09 612 ADD HL,BC + 00006F0C E5 613 PUSH HL + 00006F0D CD 7A 6B 614 CALL LWRD ?0046 + 00006F10 EB 615 EX DE,HL + 00006F11 E1 616 POP HL + 00006F12 73 617 LD (HL),E + 00006F13 23 618 INC HL + 00006F14 72 619 LD (HL),D + 00006F15 21 06 00 620 LD HL,6 + 00006F18 ED 4B 53 87 621 LD BC,(trans) + 00006F1C 09 622 ADD HL,BC + 00006F1D 56 623 LD D,(HL) + 00006F1E 23 624 INC HL + 00006F1F 66 625 LD H,(HL) + 00006F20 6A 626 LD L,D + 00006F21 11 14 00 627 LD DE,20 + 00006F24 19 628 ADD HL,DE + 00006F25 AF 629 XOR A + 00006F26 77 630 LD (HL),A + 00006F27 23 631 INC HL + 00006F28 77 632 LD (HL),A + 00006F29 21 06 00 633 LD HL,6 + 00006F2C ED 4B 53 87 634 LD BC,(trans) + 00006F30 09 635 ADD HL,BC + 00006F31 7E 636 LD A,(HL) + 00006F32 23 637 INC HL + 00006F33 66 638 LD H,(HL) + 00006F34 6F 639 LD L,A + 00006F35 72 640 LD (HL),D + 00006F36 21 06 00 641 LD HL,6 + 00006F39 ED 4B 53 87 642 LD BC,(trans) + 00006F3D 09 643 ADD HL,BC + 00006F3E 56 644 LD D,(HL) + 00006F3F 23 645 INC HL + 00006F40 66 646 LD H,(HL) + 00006F41 6A 647 LD L,D + 00006F42 11 0E 00 648 LD DE,14 + 00006F45 19 649 ADD HL,DE + 00006F46 AF 650 XOR A + 00006F47 77 651 LD (HL),A + 00006F48 23 652 INC HL + 00006F49 77 653 LD (HL),A + 00006F4A 21 06 00 654 LD HL,6 + 00006F4D ED 4B 53 87 655 LD BC,(trans) + 00006F51 09 656 ADD HL,BC + 00006F52 46 657 LD B,(HL) + 00006F53 23 658 INC HL + 00006F54 66 659 LD H,(HL) + 00006F55 68 660 LD L,B + 00006F56 01 10 00 661 LD BC,16 + 00006F59 09 662 ADD HL,BC + 00006F5A 77 663 LD (HL),A + 00006F5B 23 664 INC HL + 00006F5C 77 665 LD (HL),A + 00006F5D 23 666 INC HL + 00006F5E 77 667 LD (HL),A + 00006F5F 23 668 INC HL + 00006F60 77 669 LD (HL),A + 00006F61 670 ?0017: + 00006F61 DD 6E 9E 671 LD L,(IX-98) + 00006F64 DD 66 9F 672 LD H,(IX-97) + 00006F67 23 673 INC HL + 00006F68 23 674 INC HL + 00006F69 23 675 INC HL + 00006F6A 46 676 LD B,(HL) + 00006F6B 23 677 INC HL + 00006F6C 66 678 LD H,(HL) + 00006F6D 68 679 LD L,B + 00006F6E 01 1F 10 680 LD BC,4127 + 00006F71 A7 681 AND A + 00006F72 ED 42 682 SBC HL,BC + 00006F74 C2 8F 70 683 JP NZ,?0034 + 00006F77 684 ?0033: + 00006F77 21 06 00 685 LD HL,6 + 00006F7A ED 4B 53 87 686 LD BC,(trans) + 00006F7E 09 687 ADD HL,BC + 00006F7F 46 688 LD B,(HL) + 00006F80 23 689 INC HL + 00006F81 66 690 LD H,(HL) + 00006F82 68 691 LD L,B + 00006F83 692 ?0044: + 00006F83 DD 75 A0 693 LD (IX-96),L + 00006F86 DD 74 A1 694 LD (IX-95),H + 00006F89 695 ?0036: + 00006F89 21 14 00 696 LD HL,20 + 00006F8C DD 4E A0 697 LD C,(IX-96) + 00006F8F DD 46 A1 698 LD B,(IX-95) + 00006F92 09 699 ADD HL,BC + 00006F93 7E 700 LD A,(HL) + 00006F94 23 701 INC HL + 00006F95 B6 702 OR (HL) + 00006F96 28 0A 703 JR Z,?0035 + 00006F98 704 ?0037: + 00006F98 21 14 00 705 LD HL,20 + 00006F9B 09 706 ADD HL,BC + 00006F9C 56 707 LD D,(HL) + 00006F9D 23 708 INC HL + 00006F9E 66 709 LD H,(HL) + 00006F9F 6A 710 LD L,D + 00006FA0 18 E1 711 JR ?0044 + 00006FA2 712 ?0035: + 00006FA2 21 07 00 713 LD HL,7 + 00006FA5 DD 4E 9E 714 LD C,(IX-98) + 00006FA8 DD 46 9F 715 LD B,(IX-97) + 00006FAB 09 716 ADD HL,BC + 00006FAC 6E 717 LD L,(HL) + 00006FAD 67 718 LD H,A + 00006FAE E5 719 PUSH HL + 00006FAF 2A 53 87 720 LD HL,(trans) + 00006FB2 C1 721 POP BC + 00006FB3 71 722 LD (HL),C + 00006FB4 23 723 INC HL + 00006FB5 70 724 LD (HL),B + 00006FB6 2A 53 87 725 LD HL,(trans) + 00006FB9 23 726 INC HL + 00006FBA 23 727 INC HL + 00006FBB E5 728 PUSH HL + 00006FBC 21 07 00 729 LD HL,7 + 00006FBF DD 4E 9E 730 LD C,(IX-98) + 00006FC2 DD 46 9F 731 LD B,(IX-97) + 00006FC5 09 732 ADD HL,BC + 00006FC6 5E 733 LD E,(HL) + 00006FC7 23 734 INC HL + 00006FC8 56 735 LD D,(HL) + 00006FC9 23 736 INC HL + 00006FCA 4E 737 LD C,(HL) + 00006FCB 23 738 INC HL + 00006FCC 46 739 LD B,(HL) + 00006FCD EB 740 EX DE,HL + 00006FCE 3E 08 741 LD A,8 + 00006FD0 CD 15 83 742 CALL LWRD ?SL_RSH_L03 + 00006FD3 06 00 743 LD B,0 + 00006FD5 4D 744 LD C,L + 00006FD6 E1 745 POP HL + 00006FD7 71 746 LD (HL),C + 00006FD8 23 747 INC HL + 00006FD9 70 748 LD (HL),B + 00006FDA 21 04 00 749 LD HL,4 + 00006FDD ED 4B 53 87 750 LD BC,(trans) + 00006FE1 09 751 ADD HL,BC + 00006FE2 E5 752 PUSH HL + 00006FE3 21 07 00 753 LD HL,7 + 00006FE6 DD 5E 9E 754 LD E,(IX-98) + 00006FE9 DD 56 9F 755 LD D,(IX-97) + 00006FEC 19 756 ADD HL,DE + 00006FED 5E 757 LD E,(HL) + 00006FEE 23 758 INC HL + 00006FEF 56 759 LD D,(HL) + 00006FF0 23 760 INC HL + 00006FF1 4E 761 LD C,(HL) + 00006FF2 23 762 INC HL + 00006FF3 46 763 LD B,(HL) + 00006FF4 EB 764 EX DE,HL + 00006FF5 3E 10 765 LD A,16 + 00006FF7 CD 15 83 766 CALL LWRD ?SL_RSH_L03 + 00006FFA 06 00 767 LD B,0 + 00006FFC 4D 768 LD C,L + 00006FFD E1 769 POP HL + 00006FFE 71 770 LD (HL),C + 00006FFF 23 771 INC HL + 00007000 70 772 LD (HL),B + 00007001 2A 53 87 773 LD HL,(trans) + 00007004 CD 94 70 774 CALL LWRD ?0047 + 00007007 01 AD 85 775 LD BC,?0038 + 0000700A CD FB 81 776 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000700D 2A 53 87 777 LD HL,(trans) + 00007010 23 778 INC HL + 00007011 23 779 INC HL + 00007012 CD 94 70 780 CALL LWRD ?0047 + 00007015 01 B5 85 781 LD BC,?0039 + 00007018 CD FB 81 782 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000701B 21 04 00 783 LD HL,4 + 0000701E ED 5B 53 87 784 LD DE,(trans) + 00007022 19 785 ADD HL,DE + 00007023 CD 94 70 786 CALL LWRD ?0047 + 00007026 01 BB 85 787 LD BC,?0040 + 00007029 CD FB 81 788 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000702C 21 11 00 789 LD HL,17 + 0000702F DD 4E 02 790 LD C,(IX+2) + 00007032 DD 46 03 791 LD B,(IX+3) + 00007035 09 792 ADD HL,BC + 00007036 5E 793 LD E,(HL) + 00007037 23 794 INC HL + 00007038 56 795 LD D,(HL) + 00007039 21 11 00 796 LD HL,17 + 0000703C 09 797 ADD HL,BC + 0000703D 46 798 LD B,(HL) + 0000703E 23 799 INC HL + 0000703F 66 800 LD H,(HL) + 00007040 68 801 LD L,B + 00007041 01 1A 00 802 LD BC,26 + 00007044 CD B7 70 803 CALL LWRD ?0049 + 00007047 21 14 00 804 LD HL,20 + 0000704A DD 4E A0 805 LD C,(IX-96) + 0000704D DD 46 A1 806 LD B,(IX-95) + 00007050 09 807 ADD HL,BC + 00007051 E5 808 PUSH HL + 00007052 CD 7A 6B 809 CALL LWRD ?0046 + 00007055 EB 810 EX DE,HL + 00007056 E1 811 POP HL + 00007057 73 812 LD (HL),E + 00007058 23 813 INC HL + 00007059 72 814 LD (HL),D + 0000705A 21 14 00 815 LD HL,20 + 0000705D 09 816 ADD HL,BC + 0000705E 56 817 LD D,(HL) + 0000705F 23 818 INC HL + 00007060 66 819 LD H,(HL) + 00007061 6A 820 LD L,D + 00007062 DD 75 A0 821 LD (IX-96),L + 00007065 DD 74 A1 822 LD (IX-95),H + 00007068 01 14 00 823 LD BC,20 + 0000706B 09 824 ADD HL,BC + 0000706C AF 825 XOR A + 0000706D 77 826 LD (HL),A + 0000706E 23 827 INC HL + 0000706F 77 828 LD (HL),A + 00007070 DD 6E A0 829 LD L,(IX-96) + 00007073 DD 66 A1 830 LD H,(IX-95) + 00007076 70 831 LD (HL),B + 00007077 21 0E 00 832 LD HL,14 + 0000707A DD 4E A0 833 LD C,(IX-96) + 0000707D DD 46 A1 834 LD B,(IX-95) + 00007080 09 835 ADD HL,BC + 00007081 77 836 LD (HL),A + 00007082 23 837 INC HL + 00007083 77 838 LD (HL),A + 00007084 21 10 00 839 LD HL,16 + 00007087 09 840 ADD HL,BC + 00007088 77 841 LD (HL),A + 00007089 23 842 INC HL + 0000708A 77 843 LD (HL),A + 0000708B 23 844 INC HL + 0000708C 77 845 LD (HL),A + 0000708D 23 846 INC HL + 0000708E 77 847 LD (HL),A + 0000708F 848 ?0034: + 0000708F FD E1 849 POP IY + 00007091 C3 A3 81 850 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00007094 851 ?0047: + 00007094 4E 852 LD C,(HL) + 00007095 23 853 INC HL + 00007096 46 854 LD B,(HL) + 00007097 21 11 00 855 LD HL,17 + 0000709A DD 5E 02 856 LD E,(IX+2) + 0000709D DD 56 03 857 LD D,(IX+3) + 000070A0 19 858 ADD HL,DE + 000070A1 5E 859 LD E,(HL) + 000070A2 23 860 INC HL + 000070A3 56 861 LD D,(HL) + 000070A4 3E 00 862 LD A,BYTE3 Component_find + 000070A6 21 77 4E 863 LD HL,LWRD Component_find + 000070A9 CD FB 81 864 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000070AC EB 865 EX DE,HL + 000070AD 3E 00 866 LD A,BYTE3 Component_setlabel + 000070AF 21 42 4D 867 LD HL,LWRD Component_setlabel + 000070B2 C9 868 RET + 000070B3 869 ?0048: + 000070B3 42 870 LD B,D + 000070B4 21 1A 00 871 LD HL,26 + 000070B7 872 ?0049: + 000070B7 09 873 ADD HL,BC + 000070B8 4E 874 LD C,(HL) + 000070B9 23 875 INC HL + 000070BA 46 876 LD B,(HL) + 000070BB 23 877 INC HL + 000070BC 7E 878 LD A,(HL) + 000070BD 69 879 LD L,C + 000070BE 60 880 LD H,B + 000070BF C3 FB 81 881 JP LWRD ?BANK_CALL_DIRECT_L08 + 000070C2 882 ?0050: + 000070C2 3E 00 883 LD A,BYTE3 sprintf + 000070C4 21 50 71 884 LD HL,LWRD sprintf + 000070C7 C3 FB 81 885 JP LWRD ?BANK_CALL_DIRECT_L08 + 000070CA 886 ?0051: + 000070CA FD 4E 12 887 LD C,(IY+18) + 000070CD FD 46 13 888 LD B,(IY+19) + 000070D0 FD 6E 10 889 LD L,(IY+16) + 000070D3 FD 66 11 890 LD H,(IY+17) + 000070D6 C3 47 82 891 JP LWRD ?SL_MOD_L03 + 000070D9 892 ?0052: + 000070D9 FD 4E 12 893 LD C,(IY+18) + 000070DC FD 46 13 894 LD B,(IY+19) + 000070DF FD 6E 10 895 LD L,(IY+16) + 000070E2 FD 66 11 896 LD H,(IY+17) + 000070E5 C3 98 82 897 JP LWRD ?SL_DIV_L03 + 000070E8 898 ?0053: + 000070E8 FD 4E 12 899 LD C,(IY+18) + 000070EB FD 46 13 900 LD B,(IY+19) + 000070EE FD 6E 10 901 LD L,(IY+16) + 000070F1 FD 66 11 902 LD H,(IY+17) + 000070F4 C3 1F 81 903 JP LWRD ?L_MUL_L03 + 000070F7 904 ?0054: + 000070F7 4D 905 LD C,L + 000070F8 44 906 LD B,H + 000070F9 DD 5E A0 907 LD E,(IX-96) + 000070FC DD 56 A1 908 LD D,(IX-95) + 000070FF 3E 00 909 LD A,BYTE3 _write + 00007101 21 BC 73 910 LD HL,LWRD _write + 00007104 C3 FB 81 911 JP LWRD ?BANK_CALL_DIRECT_L08 + 912 RSEG CSTR + 00008519 913 ?0009: + 00008519 00 914 DEFB 0 + 0000851A 915 ?0018: + 0000851A 2F 64 65 76 2F 70 72 916 DEFB '/dev/printer' 69 6E 74 65 72 - 0000852D 00 1018 DEFB 0 - 0000852E 1019 ?0029: - 0000852E 25 31 33 73 20 56 65 1020 DEFB '%13s Verkoopartikel |%7ld,%02ld' + 00008526 00 917 DEFB 0 + 00008527 918 ?0026: + 00008527 25 31 33 73 20 56 65 919 DEFB '%13s Verkoopartikel |%7ld,%02ld' 72 6B 6F 6F 70 61 72 74 69 6B 65 6C 20 20 7C 25 37 6C 64 2C 25 30 32 6C 64 - 0000854E 0D 0A 00 1021 DEFB 13,10,0 - 00008551 1022 ?0031: - 00008551 25 31 33 73 20 56 65 1023 DEFB '%13s Verkoopartikel' + 00008547 0D 0A 00 920 DEFB 13,10,0 + 0000854A 921 ?0028: + 0000854A 25 31 33 73 20 56 65 922 DEFB '%13s Verkoopartikel' 72 6B 6F 6F 70 61 72 74 69 6B 65 6C - 00008564 0D 0A 1024 DEFB 13,10 - 00008566 25 34 64 78 20 40 20 1025 DEFB '%4dx @ | %7ld,%02ld |%7ld,%02ld' + 0000855D 0D 0A 923 DEFB 13,10 + 0000855F 25 34 64 78 20 40 20 924 DEFB '%4dx @ | %7ld,%02ld |%7ld,%02ld' 7C 20 25 37 6C 64 2C 25 30 32 6C 64 20 20 20 20 20 20 20 20 20 20 7C 25 37 6C 64 2C 25 30 32 6C 64 - 0000858E 0D 0A 00 1026 DEFB 13,10,0 - 00008591 1027 ?0032: - 00008591 0D 0A 1028 DEFB 13,10 - 00008593 25 31 33 73 54 6F 74 1029 DEFB '%13sTotaal:%10s|%7ld,%02ld' + 00008587 0D 0A 00 925 DEFB 13,10,0 + 0000858A 926 ?0029: + 0000858A 0D 0A 927 DEFB 13,10 + 0000858C 25 31 33 73 54 6F 74 928 DEFB '%13sTotaal:%10s|%7ld,%02ld' 61 61 6C 3A 25 31 30 73 7C 25 37 6C 64 2C 25 30 32 6C 64 - 000085AD 0D 0A 0D 0A 0D 0A 00 1030 DEFB 13,10,13,10,13,10,0 - 1031 RSEG UDATA0 - 00008741 1032 trans: - 00008741 1033 DEFS 2 - 00000002 1034 END + 000085A6 0D 0A 0D 0A 0D 0A 00 929 DEFB 13,10,13,10,13,10,0 + 000085AD 930 ?0038: + 000085AD 42 61 72 63 6F 64 65 931 DEFB 'Barcode' + 000085B4 00 932 DEFB 0 + 000085B5 933 ?0039: + 000085B5 53 74 75 6B 73 934 DEFB 'Stuks' + 000085BA 00 935 DEFB 0 + 000085BB 936 ?0040: + 000085BB 50 72 69 6A 73 937 DEFB 'Prijs' + 000085C0 00 938 DEFB 0 + 939 RSEG UDATA0 + 00008753 940 trans: + 00008753 941 DEFS 2 + 00000002 942 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] Symbol Table .__.ABS. = 00000000 G | 1 ?0000 00000096 R - 1 ?0001 0000009E R | 1 ?0002 000000AD R - 1 ?0003 00000111 R | 2 ?0004 00000000 R - 2 ?0005 00000008 R | 2 ?0006 0000000E R - 1 ?0007 0000013F R | 1 ?0008 00000256 R - 1 ?0009 0000013F R | 1 ?0010 0000013F R - 1 ?0011 0000016A R | 1 ?0012 00000151 R - 1 ?0013 00000160 R | 2 ?0014 00000014 R - 1 ?0015 0000024C R | 1 ?0016 000001DD R - 1 ?0017 000001FA R | 1 ?0018 0000021F R - 1 ?0019 0000026C R | 1 ?0020 000004B3 R - 2 ?0021 00000015 R | 1 ?0022 000003C8 R - 1 ?0023 000002DE R | 1 ?0024 000002E6 R - 1 ?0025 000002EF R | 1 ?0026 000003BC R - 1 ?0027 000002F9 R | 1 ?0028 00000322 R - 2 ?0029 00000022 R | 1 ?0030 0000038C R - 2 ?0031 00000045 R | 2 ?0032 00000085 R - 1 ?0033 00000456 R | 1 ?0034 0000043F R - 1 ?0035 00000443 R | 1 ?0036 000004C9 R - 1 ?0037 000005D2 R | 1 ?0038 000004F4 R - 1 ?0039 000004DB R | 1 ?0040 000004EA R - 1 ?0041 0000014B R | 1 ?0042 00000249 R - 1 ?0043 0000038A R | 1 ?0044 0000043C R - 1 ?0045 000004D5 R | 1 ?0046 0000006D R - 1 ?0047 0000006A R | 1 ?0048 000005D7 R - 1 ?0049 000005EB R | 1 ?0050 000005F2 R - 1 ?0051 00000612 R | 1 ?0052 0000062F R - 1 ?0053 00000643 R | 1 ?0054 00000647 R - 1 ?0055 00000652 R | 1 ?0056 0000065A R - 1 ?0057 00000669 R | 1 ?0058 00000678 R - 1 ?0059 00000687 R | ?BANK_CALL_DIR ******** GX - ?BANK_FAST_LEA ******** GX | ?BANK_LEAVE_DI ******** GX - ?CL64180B_4_06 ******** GX | ?ENT_AUTO_DIRE ******** GX - ?L_ADDASG_L03 ******** GX | ?L_MUL_L03 ******** GX - ?SL_DIV_L03 ******** GX | ?SL_MOD_L03 ******** GX - ?SL_RSH_L03 ******** GX | ?SS_CMP_L02 ******** GX - ?S_S_SWITCH_L0 ******** GX | Component_find ******** GX - Component_setl ******** GX | 1 Transaction_ha 00000075 GR - 1 Transaction_in 00000000 GR | _write ******** GX - atoi ******** GX | atol ******** GX - close ******** GX | free ******** GX - ioctl ******** GX | malloc ******** GX - open ******** GX | sprintf ******** GX - strcpy ******** GX | strlen ******** GX - 3 trans 00000000 GR + 1 ?0001 0000009E R | 1 ?0002 000000CA R + 1 ?0003 000001F4 R | 1 ?0004 000000CA R + 1 ?0005 000000CA R | 1 ?0006 000000F5 R + 1 ?0007 000000DC R | 1 ?0008 000000EB R + 2 ?0009 00000000 R | 1 ?0010 000001EA R + 1 ?0011 00000168 R | 1 ?0012 00000185 R + 1 ?0013 000001B3 R | 1 ?0014 000001BB R + 1 ?0015 000001BD R | 1 ?0016 0000020A R + 1 ?0017 00000451 R | 2 ?0018 00000001 R + 1 ?0019 00000366 R | 1 ?0020 0000027C R + 1 ?0021 00000284 R | 1 ?0022 0000028D R + 1 ?0023 0000035A R | 1 ?0024 00000297 R + 1 ?0025 000002C0 R | 2 ?0026 0000000E R + 1 ?0027 0000032A R | 2 ?0028 00000031 R + 2 ?0029 00000071 R | 1 ?0030 000003F4 R + 1 ?0031 000003DD R | 1 ?0032 000003E1 R + 1 ?0033 00000467 R | 1 ?0034 0000057F R + 1 ?0035 00000492 R | 1 ?0036 00000479 R + 1 ?0037 00000488 R | 2 ?0038 00000094 R + 2 ?0039 0000009C R | 2 ?0040 000000A2 R + 1 ?0041 000000D6 R | 1 ?0042 00000328 R + 1 ?0043 000003DA R | 1 ?0044 00000473 R + 1 ?0045 0000006D R | 1 ?0046 0000006A R + 1 ?0047 00000584 R | 1 ?0048 000005A3 R + 1 ?0049 000005A7 R | 1 ?0050 000005B2 R + 1 ?0051 000005BA R | 1 ?0052 000005C9 R + 1 ?0053 000005D8 R | 1 ?0054 000005E7 R + ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX + ?BANK_LEAVE_DI ******** GX | ?CL64180B_4_06 ******** GX + ?ENT_AUTO_DIRE ******** GX | ?L_ADDASG_L03 ******** GX + ?L_MUL_L03 ******** GX | ?SL_DIV_L03 ******** GX + ?SL_MOD_L03 ******** GX | ?SL_RSH_L03 ******** GX + ?SS_CMP_L02 ******** GX | ?S_S_SWITCH_L0 ******** GX + Component_find ******** GX | Component_setl ******** GX + 1 Transaction_ha 00000075 GR | 1 Transaction_in 00000000 GR + _write ******** GX | atoi ******** GX + atol ******** GX | close ******** GX + free ******** GX | ioctl ******** GX + malloc ******** GX | open ******** GX + sprintf ******** GX | strcpy ******** GX + strlen ******** GX | 3 trans 00000000 GR + ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 2. Hexadecimal [32-Bits] Area Table 0 _DEFAULT size 0 flags 0 - 1 CODE size 697 flags 0 + 1 CODE size 5F7 flags 0 2 CSTR size A8 flags 0 3 UDATA0 size 2 flags 0 diff --git a/src/gui/trans.s01 b/src/gui/trans.s01 index ed02df12..08ec1a39 100644 --- a/src/gui/trans.s01 +++ b/src/gui/trans.s01 @@ -35,12 +35,12 @@ Transaction_init: PUSH BC PUSH DE LD DE,8 - CALL LWRD ?0046 + CALL LWRD ?0045 LD (trans),HL LD BC,6 ADD HL,BC PUSH HL - CALL LWRD ?0047 + CALL LWRD ?0046 LD C,L LD B,H POP HL @@ -100,9 +100,9 @@ Transaction_init: POP DE POP BC JP LWRD ?BANK_FAST_LEAVE_L08 -?0047: - LD DE,22 ?0046: + LD DE,22 +?0045: LD A,BYTE3 malloc LD HL,LWRD malloc JP LWRD ?BANK_CALL_DIRECT_L08 @@ -133,75 +133,6 @@ Transaction_handler: INC HL INC HL INC HL - LD A,16 - INC HL - XOR (HL) - DEC HL - OR (HL) - JR NZ,?0003 -?0002: - LD HL,7 - LD C,B - LD B,(IX-97) - ADD HL,BC - LD L,(HL) - LD H,A - PUSH HL - LD HL,(trans) - POP BC - LD (HL),C - INC HL - LD (HL),B - LD HL,(trans) - INC HL - INC HL - PUSH HL - CALL LWRD ?0048 - POP HL - LD (HL),C - INC HL - LD (HL),B - LD HL,4 - LD BC,(trans) - ADD HL,BC - PUSH HL - LD HL,7 - LD E,(IX-98) - LD D,(IX-97) - ADD HL,DE - LD E,(HL) - INC HL - LD D,(HL) - INC HL - LD C,(HL) - INC HL - LD B,(HL) - EX DE,HL - LD A,16 - CALL LWRD ?0049 - POP HL - LD (HL),C - INC HL - LD (HL),B - LD HL,(trans) - LD C,(HL) - INC HL - LD B,(HL) - LD E,(IX+2) - LD D,(IX+3) - CALL LWRD ?0051 - LD E,(IX+2) - LD D,(IX+3) - CALL LWRD ?0050 - LD E,(IX+2) - LD D,(IX+3) - CALL LWRD ?0052 -?0003: - LD L,(IX-98) - LD H,(IX-97) - INC HL - INC HL - INC HL LD B,(HL) INC HL LD H,(HL) @@ -211,7 +142,7 @@ Transaction_handler: XOR H LD H,A SBC HL,BC - JP C,?0008 + JP C,?0003 LD L,(IX-98) LD H,(IX-97) INC HL @@ -222,10 +153,10 @@ Transaction_handler: LD B,(HL) LD HL,4114 CALL LWRD ?SS_CMP_L02 - JP C,?0008 -?0010: -?0009: -?0007: + JP C,?0003 +?0005: +?0004: +?0002: LD HL,6 LD BC,(trans) ADD HL,BC @@ -236,7 +167,7 @@ Transaction_handler: ?0041: LD (IX-94),L LD (IX-93),H -?0012: +?0007: LD HL,20 LD C,(IX-94) LD B,(IX-93) @@ -244,8 +175,8 @@ Transaction_handler: LD A,(HL) INC HL OR (HL) - JR Z,?0011 -?0013: + JR Z,?0006 +?0008: LD HL,20 ADD HL,BC LD D,(HL) @@ -253,7 +184,7 @@ Transaction_handler: LD H,(HL) LD L,D JR ?0041 -?0011: +?0006: LD HL,5 LD C,(IX-98) LD B,(IX-97) @@ -283,7 +214,7 @@ Transaction_handler: LD A,BYTE3 Component_setlabel LD HL,LWRD Component_setlabel CALL LWRD ?BANK_CALL_DIRECT_L08 - LD BC,?0014 + LD BC,?0009 LD E,(IX-96) LD D,(IX-95) LD A,BYTE3 Component_setlabel @@ -292,7 +223,7 @@ Transaction_handler: LD E,(IX-96) LD C,E LD D,(IX-95) - CALL LWRD ?0053 + CALL LWRD ?0048 LD L,(IX-98) LD H,(IX-97) INC HL @@ -304,11 +235,11 @@ Transaction_handler: CALL LWRD ?S_S_SWITCH_L06 DEFW 4112 DEFW 3 + DEFW ?0010 + DEFW ?0011 + DEFW ?0012 DEFW ?0015 - DEFW ?0016 - DEFW ?0017 - DEFW ?0018 -?0016: +?0011: LD HL,32 LD C,(IX+2) LD B,(IX+3) @@ -321,28 +252,43 @@ Transaction_handler: LD A,BYTE3 strcpy LD HL,LWRD strcpy CALL LWRD ?BANK_CALL_DIRECT_L08 - JR ?0015 -?0017: + JR ?0010 +?0012: LD HL,14 LD C,(IX-94) LD B,(IX-93) ADD HL,BC PUSH HL LD HL,32 - LD C,(IX+2) - LD B,(IX+3) - ADD HL,BC + LD E,(IX+2) + LD D,(IX+3) + ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD A,BYTE3 atoi LD HL,LWRD atoi CALL LWRD ?BANK_CALL_DIRECT_L08 - LD C,L - LD B,H + EX DE,HL POP HL - JR ?0042 -?0018: + LD (HL),E + INC HL + LD (HL),D + LD HL,14 + ADD HL,BC + LD A,(HL) + INC HL + OR (HL) + JR NZ,?0010 +?0013: + LD HL,14 + ADD HL,BC + LD (HL),1 + INC HL + LD (HL),A +?0014: + JR ?0010 +?0015: LD HL,32 LD C,(IX+2) LD B,(IX+3) @@ -368,16 +314,15 @@ Transaction_handler: INC HL LD (HL),D INC HL -?0042: LD (HL),C INC HL LD (HL),B -?0015: +?0010: LD E,(IX+2) LD C,E LD D,(IX+3) - CALL LWRD ?0053 -?0008: + CALL LWRD ?0048 +?0003: LD L,(IX-98) LD H,(IX-97) INC HL @@ -390,8 +335,8 @@ Transaction_handler: LD BC,4126 AND A SBC HL,BC - JP NZ,?0020 -?0019: + JP NZ,?0017 +?0016: XOR A LD (IX-84),A LD (IX-83),A @@ -408,7 +353,7 @@ Transaction_handler: POP IY LD HL,1 PUSH HL - LD HL,?0021 + LD HL,?0018 PUSH HL LD A,BYTE3 open LD HL,LWRD open @@ -447,28 +392,28 @@ Transaction_handler: POP AF POP AF POP AF -?0023: +?0020: PUSH IY POP HL LD A,L OR H - JP Z,?0022 -?0024: + JP Z,?0019 +?0021: LD A,(IY+14) OR (IY+15) - JP Z,?0026 -?0025: + JP Z,?0023 +?0022: LD A,1 XOR (IY+14) OR (IY+15) - JR NZ,?0028 -?0027: + JR NZ,?0025 +?0024: LD L,A LD H,A PUSH HL LD L,100 PUSH HL - CALL LWRD ?0056 + CALL LWRD ?0051 PUSH BC PUSH HL LD L,A @@ -476,19 +421,19 @@ Transaction_handler: PUSH HL LD L,100 PUSH HL - CALL LWRD ?0057 + CALL LWRD ?0052 PUSH BC PUSH HL PUSH IY - LD HL,?0029 + LD HL,?0026 PUSH HL LD HL,32 ADD HL,SP PUSH HL - CALL LWRD ?0055 + CALL LWRD ?0050 LD HL,14 - JR ?0043 -?0028: + JR ?0042 +?0025: LD HL,0 PUSH HL LD L,100 @@ -502,7 +447,7 @@ Transaction_handler: LD B,C PUSH BC PUSH HL - CALL LWRD ?0058 + CALL LWRD ?0053 CALL LWRD ?SL_MOD_L03 PUSH BC PUSH HL @@ -519,7 +464,7 @@ Transaction_handler: LD B,C PUSH BC PUSH HL - CALL LWRD ?0058 + CALL LWRD ?0053 CALL LWRD ?SL_DIV_L03 PUSH BC PUSH HL @@ -527,31 +472,31 @@ Transaction_handler: PUSH HL LD L,100 PUSH HL - CALL LWRD ?0056 + CALL LWRD ?0051 PUSH BC PUSH HL LD HL,0 PUSH HL LD L,100 PUSH HL - CALL LWRD ?0057 + CALL LWRD ?0052 PUSH BC PUSH HL LD L,(IY+14) LD H,(IY+15) PUSH HL PUSH IY - LD HL,?0031 + LD HL,?0028 PUSH HL LD HL,42 ADD HL,SP PUSH HL - CALL LWRD ?0055 + CALL LWRD ?0050 LD HL,24 -?0043: +?0042: ADD HL,SP LD SP,HL -?0030: +?0027: LD HL,16 ADD HL,SP PUSH HL @@ -564,7 +509,7 @@ Transaction_handler: LD B,C PUSH BC PUSH DE - CALL LWRD ?0058 + CALL LWRD ?0053 EX DE,HL POP HL CALL LWRD ?L_ADDASG_L03 @@ -577,15 +522,15 @@ Transaction_handler: PUSH HL LD HL,22 ADD HL,SP - CALL LWRD ?0059 + CALL LWRD ?0054 POP AF -?0026: +?0023: LD L,(IY+20) LD H,(IY+21) PUSH HL POP IY - JP LWRD ?0023 -?0022: + JP LWRD ?0020 +?0019: LD L,A LD H,A PUSH HL @@ -610,15 +555,15 @@ Transaction_handler: CALL LWRD ?SL_DIV_L03 PUSH BC PUSH HL - LD HL,?0014 + LD HL,?0009 PUSH HL PUSH HL - LD HL,?0032 + LD HL,?0029 PUSH HL LD HL,34 ADD HL,SP PUSH HL - CALL LWRD ?0055 + CALL LWRD ?0050 LD HL,16 ADD HL,SP LD SP,HL @@ -631,7 +576,7 @@ Transaction_handler: PUSH HL LD HL,22 ADD HL,SP - CALL LWRD ?0059 + CALL LWRD ?0054 POP AF LD E,(IX-96) LD D,(IX-95) @@ -645,14 +590,14 @@ Transaction_handler: INC HL LD H,(HL) LD L,B -?0044: +?0043: PUSH HL POP IY -?0034: +?0031: LD A,L OR H - JR Z,?0033 -?0035: + JR Z,?0030 +?0032: PUSH IY POP DE LD A,BYTE3 free @@ -660,13 +605,13 @@ Transaction_handler: CALL LWRD ?BANK_CALL_DIRECT_L08 LD L,(IY+20) LD H,(IY+21) - JR ?0044 -?0033: + JR ?0043 +?0030: LD HL,6 LD BC,(trans) ADD HL,BC PUSH HL - CALL LWRD ?0047 + CALL LWRD ?0046 EX DE,HL POP HL LD (HL),E @@ -722,7 +667,7 @@ Transaction_handler: LD (HL),A INC HL LD (HL),A -?0020: +?0017: LD L,(IX-98) LD H,(IX-97) INC HL @@ -735,8 +680,8 @@ Transaction_handler: LD BC,4127 AND A SBC HL,BC - JP NZ,?0037 -?0036: + JP NZ,?0034 +?0033: LD HL,6 LD BC,(trans) ADD HL,BC @@ -744,10 +689,10 @@ Transaction_handler: INC HL LD H,(HL) LD L,B -?0045: +?0044: LD (IX-96),L LD (IX-95),H -?0039: +?0036: LD HL,20 LD C,(IX-96) LD B,(IX-95) @@ -755,16 +700,16 @@ Transaction_handler: LD A,(HL) INC HL OR (HL) - JR Z,?0038 -?0040: + JR Z,?0035 +?0037: LD HL,20 ADD HL,BC LD D,(HL) INC HL LD H,(HL) LD L,D - JR ?0045 -?0038: + JR ?0044 +?0035: LD HL,7 LD C,(IX-98) LD B,(IX-97) @@ -781,7 +726,22 @@ Transaction_handler: INC HL INC HL PUSH HL - CALL LWRD ?0048 + LD HL,7 + LD C,(IX-98) + LD B,(IX-97) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + INC HL + LD C,(HL) + INC HL + LD B,(HL) + EX DE,HL + LD A,8 + CALL LWRD ?SL_RSH_L03 + LD B,0 + LD C,L POP HL LD (HL),C INC HL @@ -803,39 +763,29 @@ Transaction_handler: LD B,(HL) EX DE,HL LD A,16 - CALL LWRD ?0049 + CALL LWRD ?SL_RSH_L03 + LD B,0 + LD C,L POP HL LD (HL),C INC HL LD (HL),B LD HL,(trans) - LD C,(HL) - INC HL - LD B,(HL) - LD HL,17 - LD E,(IX+2) - LD D,(IX+3) - ADD HL,DE - LD E,(HL) + CALL LWRD ?0047 + LD BC,?0038 + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,(trans) INC HL - LD D,(HL) - CALL LWRD ?0051 - LD HL,17 - LD E,(IX+2) - LD D,(IX+3) - ADD HL,DE - LD E,(HL) INC HL - LD D,(HL) - CALL LWRD ?0050 - LD HL,17 - LD E,(IX+2) - LD D,(IX+3) + CALL LWRD ?0047 + LD BC,?0039 + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,4 + LD DE,(trans) ADD HL,DE - LD E,(HL) - INC HL - LD D,(HL) - CALL LWRD ?0052 + CALL LWRD ?0047 + LD BC,?0040 + CALL LWRD ?BANK_CALL_DIRECT_L08 LD HL,17 LD C,(IX+2) LD B,(IX+3) @@ -850,13 +800,13 @@ Transaction_handler: LD H,(HL) LD L,B LD BC,26 - CALL LWRD ?0054 + CALL LWRD ?0049 LD HL,20 LD C,(IX-96) LD B,(IX-95) ADD HL,BC PUSH HL - CALL LWRD ?0047 + CALL LWRD ?0046 EX DE,HL POP HL LD (HL),E @@ -895,73 +845,31 @@ Transaction_handler: LD (HL),A INC HL LD (HL),A -?0037: +?0034: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0048: - LD HL,7 - LD C,(IX-98) - LD B,(IX-97) - ADD HL,BC - LD E,(HL) - INC HL - LD D,(HL) - INC HL +?0047: LD C,(HL) INC HL LD B,(HL) - EX DE,HL - LD A,8 -?0049: - CALL LWRD ?SL_RSH_L03 - LD B,0 - LD C,L - RET -?0050: - LD A,BYTE3 Component_find - LD HL,LWRD Component_find - CALL LWRD ?BANK_CALL_DIRECT_L08 - EX DE,HL - LD A,BYTE3 Component_setlabel - LD HL,LWRD Component_setlabel - LD BC,?0005 - CALL LWRD ?BANK_CALL_DIRECT_L08 - LD HL,4 - LD DE,(trans) + LD HL,17 + LD E,(IX+2) + LD D,(IX+3) ADD HL,DE - LD C,(HL) + LD E,(HL) INC HL - LD B,(HL) - RET -?0051: + LD D,(HL) LD A,BYTE3 Component_find LD HL,LWRD Component_find CALL LWRD ?BANK_CALL_DIRECT_L08 EX DE,HL LD A,BYTE3 Component_setlabel LD HL,LWRD Component_setlabel - LD BC,?0004 - CALL LWRD ?BANK_CALL_DIRECT_L08 - LD HL,(trans) - INC HL - INC HL - LD C,(HL) - INC HL - LD B,(HL) RET -?0052: - LD A,BYTE3 Component_find - LD HL,LWRD Component_find - CALL LWRD ?BANK_CALL_DIRECT_L08 - EX DE,HL - LD A,BYTE3 Component_setlabel - LD HL,LWRD Component_setlabel - LD BC,?0006 - JP LWRD ?BANK_CALL_DIRECT_L08 -?0053: +?0048: LD B,D LD HL,26 -?0054: +?0049: ADD HL,BC LD C,(HL) INC HL @@ -971,29 +879,29 @@ Transaction_handler: LD L,C LD H,B JP LWRD ?BANK_CALL_DIRECT_L08 -?0055: +?0050: LD A,BYTE3 sprintf LD HL,LWRD sprintf JP LWRD ?BANK_CALL_DIRECT_L08 -?0056: +?0051: LD C,(IY+18) LD B,(IY+19) LD L,(IY+16) LD H,(IY+17) JP LWRD ?SL_MOD_L03 -?0057: +?0052: LD C,(IY+18) LD B,(IY+19) LD L,(IY+16) LD H,(IY+17) JP LWRD ?SL_DIV_L03 -?0058: +?0053: LD C,(IY+18) LD B,(IY+19) LD L,(IY+16) LD H,(IY+17) JP LWRD ?L_MUL_L03 -?0059: +?0054: LD C,L LD B,H LD E,(IX-96) @@ -1002,32 +910,32 @@ Transaction_handler: LD HL,LWRD _write JP LWRD ?BANK_CALL_DIRECT_L08 RSEG CSTR -?0004: - DEFB 'Barcode' - DEFB 0 -?0005: - DEFB 'Stuks' - DEFB 0 -?0006: - DEFB 'Prijs' - DEFB 0 -?0014: +?0009: DEFB 0 -?0021: +?0018: DEFB '/dev/printer' DEFB 0 -?0029: +?0026: DEFB '%13s Verkoopartikel |%7ld,%02ld' DEFB 13,10,0 -?0031: +?0028: DEFB '%13s Verkoopartikel' DEFB 13,10 DEFB '%4dx @ | %7ld,%02ld |%7ld,%02ld' DEFB 13,10,0 -?0032: +?0029: DEFB 13,10 DEFB '%13sTotaal:%10s|%7ld,%02ld' DEFB 13,10,13,10,13,10,0 +?0038: + DEFB 'Barcode' + DEFB 0 +?0039: + DEFB 'Stuks' + DEFB 0 +?0040: + DEFB 'Prijs' + DEFB 0 RSEG UDATA0 trans: DEFS 2 diff --git a/src/gui/wnd.c b/src/gui/wnd.c index ec269e84..f2135c09 100644 --- a/src/gui/wnd.c +++ b/src/gui/wnd.c @@ -7,6 +7,7 @@ #include "..\libc\malloc-l.h" #undef NULL #define NULL 0 +#define TEXT_BOTTOM_ALIGNED /*void *malloc(size_t size) { @@ -35,20 +36,35 @@ struct Global_GUI* global; * Graphics * ************************************************/ +void SetCurrentGraphicsDevice(int n){ + global->lcd=global->lcda[n]; +} + void GraphicsOpen(){ struct sgttyb temp; char init[]={0x1B,'K'}; - global->lcd=open("/dev/lcd0",O_RDWR); - gtty(global->lcd,&temp); + global->lcda[0]=open("/dev/lcd0",O_RDWR); + gtty(global->lcda[0],&temp); + temp.sg_flags=RAW | UNBUFF; + stty(global->lcda[0],&temp); + + write(global->lcda[0],init,2); + + global->lcda[1]=open("/dev/lcd1",O_RDWR); + gtty(global->lcda[1],&temp); temp.sg_flags=RAW | UNBUFF; - stty(global->lcd,&temp); + stty(global->lcda[1],&temp); - write(global->lcd,init,2); + write(global->lcda[1],init,2); + SetCurrentGraphicsDevice(1); + Text("HYTECH 1000"); + SetCurrentGraphicsDevice(0); } void GraphicsClose(){ - close(global->lcd); + close(global->lcda[0]); + close(global->lcda[1]); } void Move(int x, int y){ @@ -66,7 +82,7 @@ void ClearRect(int sx, int sy){ } void DrawRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'N',0,0}; + unsigned char cmd[]={0x1B,'N',0,0}; cmd[2]=(unsigned char) (sx); cmd[3]=(unsigned char) (sy); write(global->lcd,cmd,4); @@ -532,7 +548,7 @@ void Window_paint(struct Component* this){ DrawRectNC(this->sizex,this->sizey-global->currentfont->stringheight(this->label)-4); Move(x,y); FillRect(this->sizex,global->currentfont->stringheight(this->label)+5); - Move(x+2,y+14); /* Nick 2); */ + Move(x+2,y+2); Text(this->label); Component_paint(this); } @@ -579,15 +595,30 @@ void Button_handler(struct Component* this, int msg, int param){ } void Button_drawtext(struct Component* this, int x, int y){ +#ifdef TEXT_TOP_ALIGNED + if((this->state & STYLE_MULTILINE)!=0){ + Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-2*global->currentfont->stringheight(this->label))/2); + Text(this->label); + Move(x+(this->sizex-global->currentfont->stringwidth(this->label2))/2,y+(this->sizey)/2+1); + Text(this->label2); + } else { + Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+1); + Text(this->label); + } +#endif +#ifdef TEXT_BOTTOM_ALIGNED if((this->state & STYLE_MULTILINE)!=0){ - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-2*global->currentfont->stringheight(this->label))/2+12); /* Nick +7 */ + Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey)/2); Text(this->label); - Move(x+(this->sizex-global->currentfont->stringwidth(this->label2))/2,y+(this->sizey)/2+10); /* Nick 1); */ + Move(x+(this->sizex-global->currentfont->stringwidth(this->label2))/2,y+(this->sizey+2*global->currentfont->stringheight(this->label))/2+1); Text(this->label2); } else { - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+13); /* Nick 1); */ + Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey+global->currentfont->stringheight(this->label))/2+1); Text(this->label); } + +#endif + #ifdef STR_DEBUG printf("Drawtext (%d): ""%s"" @ %x\n",this->id,this->label,this->label); fflush(stdout); #endif @@ -781,7 +812,12 @@ void Display_paint(struct Component* this){ FillRectNC(this->sizex,this->sizey); else DrawRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+7); +#ifdef TEXT_TOP_ALIGNED + Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2); +#endif +#ifdef TEXT_BOTTOM_ALIGNED + Move(x+2,y+(this->sizey+global->currentfont->stringheight(this->label))/2); +#endif if(this->state & STYLE_PASSWORD){ int i; for(i=0; ilabel); i++) @@ -797,7 +833,7 @@ void Display_paint(struct Component* this){ ClearRect(this->sizex,this->sizey); FillRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+12); /x Nick +7 x/ + Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2); Text(this->label); TouchRegion((this->state&STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); */ @@ -888,8 +924,8 @@ void screenbuilder(struct Component* root, char* filename){ char buf[SIZE_SCRBLD_RECORD]; long l; int xs,ys; - xs=0x2b; - ys=0x1a; + xs=6; + ys=5; buf[0]=0; fh=open(filename,O_RDONLY); do{ @@ -900,20 +936,20 @@ void screenbuilder(struct Component* root, char* filename){ } if(buf[0]=='B' || buf[0]=='M'){ /* Button, Multi-line button */ - subw=Button_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); + subw=Button_new(0x103*buf[1]/xs,0x083*buf[2]/ys,0x103*(buf[1]+buf[3])/xs-0x103*buf[1]/xs-3,0x083*buf[4]/ys-3,buf[5]); if(buf[0]=='M') subw->state|=STYLE_MULTILINE; comp=1; } if(buf[0]=='T'){ /* Toggle-button */ - subw=ToggleButton_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); + subw=ToggleButton_new(0x103*buf[1]/xs,0x083*buf[2]/ys,0x103*(buf[1]+buf[3])/xs-0x103*buf[1]/xs-3,0x083*buf[4]/ys-3,buf[5]); comp=1; } if(buf[0]=='D'){ /* Display button */ - subw=Display_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); + subw=Display_new(0x103*buf[1]/xs,0x083*buf[2]/ys,0x103*(buf[1]+buf[3])/xs-0x103*buf[1]/xs-3,0x083*buf[4]/ys-3,buf[5]); comp=1; } if(buf[0]=='L'){ /* Label */ - subw=Label_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf+0x12); + subw=Label_new(0x103*buf[1]/xs,0x083*buf[2]/ys,0x103*(buf[1]+buf[3])/xs-0x103*buf[1]/xs-3,0x083*buf[4]/ys-3,buf+0x12); comp=1; } if(buf[0]=='A'){ @@ -963,7 +999,7 @@ void screenbuilder(struct Component* root, char* filename){ subw->label=(char*) (*((int*) (buf+0x12)) & 0x0fff); if(subw->label==NULL) { - subw->label=(char*) malloc(LABEL_LENGTH); + subw->label=(char*) malloc(LABEL_LENGTH); /* Stringtable ref<0x8000 alloced data >0x8000*/ #ifdef MALLOC_DEBUG printf("malloc: %x\n",subw->label); fflush(stdout); #endif @@ -988,7 +1024,6 @@ void screenbuilder(struct Component* root, char* filename){ void root_actionhandler(struct Component* this){ struct ActionXDS *act; struct Component* subw; - char filename[]={'/','w','n','d','/','0','0','0','0','.','s','c','r',0}; /* Nick added /wnd/ */ act=(struct ActionXDS*) (this->xds); #ifdef JOOST_DEBUG @@ -998,6 +1033,7 @@ void root_actionhandler(struct Component* this){ this->handler(this,APP_QUIT,0); } if((act->action & 0xfffe)==0x0002){ /*Open Screen*/ + char* filename=global->stringtable[(act->wParam & 0xfff)-1]; Component_changestate_children(this->parent,STATE_VISIBLE,0,0); subw=Window_new(0,0,this->parent->sizex,this->parent->sizey); subw->state=STATE_VISIBLE | STATE_ENABLED; @@ -1005,10 +1041,6 @@ void root_actionhandler(struct Component* this){ subw->state|=STATE_APPLICATION; subw->handler=rootWindow_handler; subw->paint=Root_paint; - filename[5]=(char) ((act->lParam) &0xff); /* Nick 5 formerly 0 */ - filename[6]=(char) ((act->lParam>>8) &0xff); /* Nick 6 formerly 1 */ - filename[7]=(char) ((act->lParam>>16) &0xff); /* Nick 7 formerly 2 */ - filename[8]=(char) ((act->lParam>>24) &0xff); /* Nick 8 formerly 3 */ screenbuilder(subw,filename); this->parent->add(this->parent,subw); } @@ -1030,12 +1062,20 @@ void root_actionhandler(struct Component* this){ this->parent->add(this->parent,subw); this->parent->handler(this->parent,WND_REDRAW,0); } + + if(act->action==0x0005){ /* Send info to lcd0 */ + write(global->lcda[0],&(act->lParam),act->wParam); + } + + if(act->action==0x0006) { /* Send info to lcd1 */ + write(global->lcda[1],&(act->lParam),act->wParam); + } + #ifdef JOOST_DEBUG printf("Before external handler...\n"); fflush(stdout); #endif if(global->actionhandler!=NULL) global->actionhandler(this); - #ifdef JOOST_DEBUG printf("After external handler...\n"); fflush(stdout); #endif @@ -1118,19 +1158,42 @@ void GUIunit(void){ void GUIgo(char* scr){ char buf,obuf; - screenbuilder(global->root,scr); + int ptr=0; + struct sgttyb temp; - /* commented by Nick while(read(global->lcd,&buf,1)==1); */ + screenbuilder(global->root,scr); + global->barcode=malloc(16); + global->barcode[0]=0; + global->barcodetty=open("/dev/barcode",O_RDONLY); + + gtty(global->barcodetty,&temp); + temp.sg_flags=RAW | UNBUFF; + stty(global->barcodetty,&temp); + +#if 0 /* Nick, don't flush because continuity of testscript is ruined */ + while(read(global->lcd,&buf,1)==1); +#endif while(!global->willquit){ if(read(global->lcd,&buf,1)==1){ - printf("0x%02x\n", (int)buf); /* Nick */ +#if 0 /* Nick, optional code useful for debugging testscript execution */ + printf("0x%02x\n", (int)buf); +#endif if(buf!=0) global->root->handler(global->root,KEY_PRESSED,buf); else global->root->handler(global->root,KEY_RELEASED,obuf); obuf=buf; } + if(read(global->barcodetty,&buf,1)==1){ + if(buf>0x10) + global->barcode[ptr++]=buf; + else { + global->barcode[ptr++]=0; + global->root->handler(global->root,BARCODE_SCAN,(int) (&(global->barcode))); + ptr=0; + } + } } } diff --git a/src/gui/wnd.c.org b/src/gui/wnd.c.org deleted file mode 100644 index bb795a9b..00000000 --- a/src/gui/wnd.c.org +++ /dev/null @@ -1,1141 +0,0 @@ -/************************************************ - * Graphical User Interface driver (GUI) * - * By J.W. Morsink for Retail Vision B.V. * - ************************************************/ - -#include -#include "..\libc\malloc-l.h" -#undef NULL -#define NULL 0 - -/*void *malloc(size_t size) - { - void *ptr; - - ptr = (void *)sbrk(size); - return (ptr == (void *)-1) ? NULL : ptr; - } - -void free(void *ptr) - { - } - -*/ -/*#define JOOST_DEBUG -/*#define STR_DEBUG*/ -/*#define MALLOC_DEBUG - -/************************************************ - * Global variables for GUI * - ************************************************/ - -struct Global_GUI* global; - -/************************************************ - * Graphics * - ************************************************/ - -void GraphicsOpen(){ - struct sgttyb temp; - char init[]={0x1B,'K'}; - - global->lcd=open("/dev/lcd0",O_RDWR); - gtty(global->lcd,&temp); - temp.sg_flags=RAW | UNBUFF; - stty(global->lcd,&temp); - - write(global->lcd,init,2); -} - -void GraphicsClose(){ - close(global->lcd); -} - -void Move(int x, int y){ - unsigned char cmd[]={0x1B,'S',0,0}; - cmd[2]=(unsigned char) (x); - cmd[3]=(unsigned char) (y); - write(global->lcd,cmd,4); -} - -void ClearRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'C',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void DrawRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'N',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void FillRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'R',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void FillRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'F',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void GrayRect(int sx,int sy){ - unsigned char cmd[]={0x1B,'h',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(global->lcd,cmd,4); -} - -void Text(char *s){ - int c=strlen(s); - write(global->lcd,s,c); -} - -void TouchRegion(int msg, int x, int y, int sx, int sy){ - char touch[]={0x1B,'Z',0,0,0,0,0}; - touch[2]=(unsigned char) (msg); - touch[3]=(unsigned char) (x); - touch[4]=(unsigned char) (y); - touch[5]=(unsigned char) (sx); - touch[6]=(unsigned char) (sy); - write(global->lcd,touch,7); -#ifdef JOOST_DEBUG - printf("Touch: %x,%x,%x,%x,%x\n",msg,x,y,sx,sy); fflush(stdout); -#endif -} - -void ClearScreen(){ - Move(0,0); - ClearRect(0,0x80); - TouchRegion(0,0,0,0,0x80); -} - -void EnableScreen(unsigned char c){ - char cmd[]={0x1B,'E',0}; - cmd[2]=c; - write(global->lcd,cmd,3); -} - -void grSetFont(int f){ - char cmd[]={0x1B,0}; - cmd[1]=f & 0xff; - write(global->lcd,cmd,2); -} - -/************************************************ - * Fonts * - ************************************************/ - -struct Font* fontSearch(int f){ - struct Font* current=global->firstfont; - while(current!=NULL && current->id!=f) - current=current->nextfont; - return current; -} - -void setCurrentFont(int f){ - if(fontSearch(f)!=NULL){ - grSetFont(f); - global->currentfont=fontSearch(f); - } -} - -void loadFont(int id,int (*sw)(char*),int (*sh)(char*),int sizedata, void* data){ - struct Font* font=(struct Font*) malloc(sizeof(struct Font)); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",font); fflush(stdout); -#endif - font->id=id; - font->stringwidth=sw; - font->stringheight=sh; - font->nextfont=NULL; - font->sizefontdata=sizedata; - font->fontdata=data; - if(global->firstfont==NULL){ - global->firstfont=font; - global->currentfont=font; - } - else - { - struct Font* current=global->firstfont; - while(current->nextfont!=NULL) - current=current->nextfont; - current->nextfont=font; - } -} - -int stringwidth(char *str,int extra){ - int w=0,i=0; - while(str[i]!=0x00){ - switch(str[i]){ - case 'i': - case 'I': - case '!': - w+=2; - break; - case 'l': - w+=3; - break; - case ',': - case '1': - case '.': - w+=4; - break; - case 'r': - case 'k': - case 'j': - w+=5; - break; - default: - w+=6; - } - i++; - w+=extra; - } - return w; -} - -int stringheight(char ch, int extra){ - if(ch<0x80) return 7+extra; - if(ch>=0xcc && ch<=0xdf) return 1+extra; -} - -int stringheight01(char* ch){ - return stringheight(ch[0],0); -} - -int stringheight2(char* ch){ - return stringheight(ch[0],5); -} - -int stringwidth0(char *str){ - return stringwidth(str,0); -} - -int stringwidth1(char *str){ - return stringwidth(str,2); -} - -int stringwidth2(char *str){ - return stringwidth(str,3); -} -/************************************************ - * Components * - ************************************************/ - -struct Component* Component_new(int x,int y,int sx,int sy){ - struct Component* this=(struct Component*) (malloc(sizeof(struct Component))); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",this); fflush(stdout); -#endif - - this->id=(++global->id); - this->x=x; - this->y=y; - this->sizex=sx; - this->sizey=sy; - this->state=0; - this->order=0; - this->font=0; - this->msg=0; - this->parent=NULL; - this->next_sibling=NULL; - this->first_child=NULL; - this->handler=NULL; - this->paint=NULL; - this->add=NULL; - this->sizexds=0; - this->xds=NULL; - this->label=NULL; - this->label2=NULL; - return this; -} - -void Component_setlabel(struct Component* this, char* s){ - int i=0; - while(s[i]!=0 && ilabel[i]=s[i]; - i++; - } - this->label[i]=0; -} - -void Component_add(struct Component* this, struct Component* comp){ - struct Component* current=this->first_child; - if(this->first_child==NULL){ - this->first_child=comp; - comp->next_sibling=NULL; - } - else - { - while(current->next_sibling!=NULL){ - current=current->next_sibling; - } - current->next_sibling=comp; - comp->next_sibling=NULL; - } - comp->parent=this; -} - -void Component_paint(struct Component* this){ - struct Component* current=this->first_child; - EnableScreen(0); - while(current!=NULL){ - current->paint(current); - current=current->next_sibling; - } - EnableScreen(1); -} - -void Component_findXY(struct Component* this, int* x, int* y){ - struct Component* current=this; - do{ - *x+=current->x; - *y+=current->y; - current=current->parent; - } while(current!=NULL); -} - -struct Component* Component_find(struct Component* this, int msg){ - struct Component* current=this->first_child; -#ifdef JOOST_DEBUG - printf("Find %x in %x:\n",msg, this->id); fflush(stdout); -#endif - while(current!=NULL){ -#ifdef JOOST_DEBUG - printf("Comp_find: %x, %x\n",msg, current->msg); fflush(stdout); -#endif - if(current->msg==msg) - return current; - current=current->next_sibling; - } - return NULL; -} - -struct Component* Component_delete(struct Component* this){ - struct Component* current=this->first_child; - int id=this->id; - if(this!=NULL){ -#ifdef JOOST_DEBUG - printf("Deleting component: %d\n",id); fflush(stdout); -#endif - while(current!=NULL){ - current=Component_delete(current); - } - if(this->parent!=NULL){ - if(this==this->parent->first_child) - this->parent->first_child=this->parent->first_child->next_sibling; - else{ - current=this->parent->first_child; - while(this!=current->next_sibling && current->next_sibling!=NULL) - current=current->next_sibling; - if(current->next_sibling!=NULL) - current->next_sibling=current->next_sibling->next_sibling; - } - } - current=this->next_sibling; - if(this->sizexds==sizeof(struct StringTableXDS)) - { - struct Component* par=this->parent; - struct StringTableXDS* stx=(struct StringTableXDS*) this->xds; - -#ifdef STR_DEBUG - printf("Stringtable @ %x freed!\n",stx->stringtabledata); fflush(stdout); -#endif - -#ifdef MALLOC_DEBUG - printf("free: %x\n",stx->stringtabledata); fflush(stdout); -#endif - free(stx->stringtabledata); -#ifdef MALLOC_DEBUG - printf("free: %x\n",stx->stringtable); fflush(stdout); -#endif - free(stx->stringtable); - - while((par!=NULL) && (par->sizexds!=sizeof(struct StringTableXDS))) - par=par->parent; - if(par!=NULL) - { - stx=(struct StringTableXDS*) par->xds; - global->stringtabledata=stx->stringtabledata; - global->stringtable=stx->stringtable; - } - } - if(this->sizexds>0){ -#ifdef MALLOC_DEBUG - printf("free: %x\n",this->xds); fflush(stdout); -#endif - free(this->xds); - } - if((this->state & STRING_FROMTABLE)==0 && this->label!=NULL){ -#ifdef MALLOC_DEBUG - printf("free: %x\n",this->label); fflush(stdout); -#endif - free(this->label); - } -#ifdef MALLOC_DEBUG - printf("free: %x\n",this); fflush(stdout); -#endif - - free(this); -#ifdef JOOST_DEBUG - printf("Deleted component: %d\n",id); fflush(stdout); -#endif - } - return current; -} - -void Component_delete_children(struct Component* this){ - struct Component* current=this->first_child; - while(current!=NULL) - current=Component_delete(current); -} - -void Component_changestate_children(struct Component* this, int andmask, int ormask, int xormask){ - struct Component* current=this->first_child; - while(current!=NULL){ - current->state&=(0xffff-andmask); - current->state|=ormask; - current->state^=xormask; - current=current->next_sibling; - } - fflush(stdout); -} - -void Component_linkstringtable(struct Component* this){ - struct Component* child=this->first_child; -#ifdef STR_DEBUG - printf("%d: %x -> %x\n",this->id,this->label-1,global->stringtable[(int) (this->label)-1]); fflush(stdout); -#endif - if(((int)(this->label))<0x1000 && ((int)(this->label))>0) - this->label=global->stringtable[(int) (this->label)-1]; - if(((int)(this->label2))<0x1000 && ((int)(this->label2))>0) - this->label2=global->stringtable[(int) (this->label2)-1]; - while(child!=NULL){ - Component_linkstringtable(child); - child=child->next_sibling; - } - -} - -/************************************************ - * Windows * - ************************************************/ - -void Window_handler (struct Component* this, int msg, int param){ - struct Component* current,current2; - int x=0,y=0; -#ifdef JOOST_DEBUG - printf("Message in window %d, Msg: %x, Param: %x\n",this->id,msg,param); fflush(stdout); -#endif - switch(msg){ - case KEY_PRESSED: - current=this->first_child; - while(current!=NULL) { - if((current->state & STATE_VISIBLE)==(STATE_VISIBLE)) - current->handler(current,msg,param); - current=current->next_sibling; - } - break; - case KEY_RELEASED: - current=this->first_child; - while(current!=NULL) { - if((current->state & STATE_VISIBLE)!=0){ - current->handler(current,msg,param); - current->handler(current,KEY_TYPED,param); - if((current->state & (STATE_ACTION | STATE_ENABLED))==(STATE_ACTION | STATE_ENABLED) && current->msg==param) - current=NULL; - } - if(current!=NULL) - current=current->next_sibling; - } - break; - case KEY_TYPED: - current=this; - if((current->state & STATE_VISIBLE)==(STATE_VISIBLE)){ - - if((current->state & STATE_ACTION)!=0 && current->msg==param){ - struct ActionXDS* act=(struct ActionXDS*) (current->xds); -#ifdef JOOST_DEBUG - printf("Before actionhandler...\n"); -#endif - act->actionhandler(current); - if((act->action & 0xff00)==0){ - current=NULL; - } -#ifdef JOOST_DEBUG - printf("After actionhandler...\n"); -#endif - } - } - if(current!=NULL) - current=current->next_sibling; - - break; - case WND_REDRAW: - this->paint(this); - break; - case WND_CLOSE: - this->state=this->state & (0xffff-(STATE_VISIBLE | STATE_ENABLED)); - Component_findXY(this,&x,&y); - TouchRegion(0,x,y,this->sizex,this->sizey); - this->parent->handler(this->parent,WND_REDRAW,0); - break; - case WND_DESTROY: - current=this->parent; - Component_delete(this); - current->handler(current,WND_REDRAW,0); - break; - case WND_BROADCAST: - current=this->first_child; - while(current!=NULL){ - if(current!=(struct Component*) (param) && (current->state & STATE_FOCUS)!=0) - current->handler(current,CMP_BROADCAST,param); - current=current->next_sibling; - } - break; - case APP_QUIT: - if(this->parent==NULL) - global->willquit=1; - else if((this->state & STATE_APPLICATION)==0) - this->parent->handler(this->parent,APP_QUIT,param); - else{ - current=this->parent; - current->state|=STATE_VISIBLE | STATE_ENABLED; - Component_changestate_children(current,0,STATE_VISIBLE,0); - this->handler(this,WND_DESTROY,0); - } - break; - } -} - -void Window_paint(struct Component* this){ - int x=0,y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - - EnableScreen(0); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion(0,x,y,this->sizex,this->sizey); - Move(x,y+global->currentfont->stringheight(this->label)+4); - DrawRectNC(this->sizex,this->sizey-global->currentfont->stringheight(this->label)-4); - Move(x,y); - FillRect(this->sizex,global->currentfont->stringheight(this->label)+5); - Move(x+2,y+14); /* Nick 2); */ - Text(this->label); - Component_paint(this); - } -} - -void Root_paint(struct Component* this){ - EnableScreen(0); - Move(0,0); - ClearRect(0,0x80); - GrayRect(0,0x80); - TouchRegion(0,0,0,0,0x80); - - Component_paint(this); -/* EnableScreen(0); - Window_paint(this); - EnableScreen(1);*/ -} - -void Window_add(struct Component* this, struct Component* comp){ - Component_add(this,comp); -} - -struct Component* Window_new(int x,int y,int sx,int sy){ - struct Component* this=Component_new(x,y,sx,sy); - this->handler=Window_handler; - this->paint=Window_paint; - this->add=Window_add; - return this; -} - -/************************************************ - * Buttons * - ************************************************/ - -void Button_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->parent->handler(this->parent, CMP_ACTION, param); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void Button_drawtext(struct Component* this, int x, int y){ - if((this->state & STYLE_MULTILINE)!=0){ - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-2*global->currentfont->stringheight(this->label))/2+12); /* Nick +7 */ - Text(this->label); - Move(x+(this->sizex-global->currentfont->stringwidth(this->label2))/2,y+(this->sizey)/2+10); /* Nick 1); */ - Text(this->label2); - } else { - Move(x+(this->sizex-global->currentfont->stringwidth(this->label))/2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+13); /* Nick 1); */ - Text(this->label); - } -#ifdef STR_DEBUG - printf("Drawtext (%d): ""%s"" @ %x\n",this->id,this->label,this->label); fflush(stdout); -#endif -} - -void Button_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - - if( (this->state & (STATE_ENABLED | STYLE_INVERTED))!=0 && (this->state & (STATE_ENABLED | STYLE_INVERTED))!=(STATE_ENABLED | STYLE_INVERTED) ) - FillRectNC(this->sizex,this->sizey); - else - DrawRectNC(this->sizex,this->sizey); - Button_drawtext(this,x,y); - } -} - -void Button_add(struct Component* this, struct Component* comp){ - return; -} - -struct Component* Button_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_ENABLED | STATE_VISIBLE; - this->msg=msg; - this->handler=Button_handler; - this->paint=Button_paint; - this->add=Button_add; - - return this; -} - -/*void Numpad(struct Component* this, int x, int y){ - int i; - char s[2]={0,0}; - struct Component* button; - for(i=0; i<9; i++){ - s[0]=0x31+(char) i; - button=Button_new(x+(i%3)*0x18,y+0x30-(i/3)*0x18,0x16,0x16,i+0x31); - Component_setlabel(button,s); - button->state|=STATE_CASTING; - this->add(this,button); - } - button=Button_new(x+0x18,y+0x48,0x16,0x16,0x30); - Component_setlabel(button,"0"); - button->state|=STATE_CASTING; - this->add(this,button); - - button=Button_new(x+0x30,y+0x48,0x16,0x16,0x08); - Component_setlabel(button,"CE"); - button->state|=STATE_CASTING; - this->add(this,button); -}*/ - -/************************************************ - * Toggle-buttons * - ************************************************/ - -void ToggleButton_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->state^=STATE_CHECKED; - this->parent->handler(this->parent, CMP_STATECHANGE, param); - this->handler(this, WND_REDRAW, 0); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void ToggleButton_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - if((this->state & STATE_ENABLED)!=0 && (this->state & STATE_CHECKED)!=0){ - FillRectNC(this->sizex,this->sizey); - TouchRegion(this->msg,x,y,this->sizex,this->sizey); - }else{ - DrawRectNC(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - } - Button_drawtext(this,x,y); - } -} - -struct Component* ToggleButton_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_ENABLED | STATE_VISIBLE | STATE_CHECKED; - this->msg=msg; - this->handler=ToggleButton_handler; - this->paint=ToggleButton_paint; - this->add=Button_add; - - return this; -} - -/************************************************ - * Dialogs * - ************************************************/ - -void Dialog_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==CMP_ACTION && param==0xff){ - if((this->state & STYLE_SELFDESTRUCT)!=0) - this->handler(this,WND_DESTROY,0); - else - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_OK, this->msg); - } - if(msg==CMP_ACTION && param==0xfe){ - if((this->state & STYLE_SELFDESTRUCT)!=0) - this->handler(this,WND_DESTROY,0); - else - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_CANCEL, this->msg); - - } -} - -struct Component* Dialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* ok; - struct Component* this=Component_new(x,y,sx,sy); - this->state|=STATE_VISIBLE; - this->msg=msg; - this->handler=Dialog_handler; - this->paint=Window_paint; - this->add=Window_add; - - ok=Button_new(sx-0x30,sy-0x1c,0x28,0x14,0xff); - ok->label=(char*) malloc(3); - Component_setlabel(ok,"OK"); - this->add(this,ok); - - ok=Button_new(sx-0x30,sy-0x38,0x28,0x14,0xfe); /*Cancel*/ - ok->label=(char*) malloc(7); - Component_setlabel(ok,"Cancel"); - this->add(this,ok); - - return this; -} - -/************************************************ - * Displays * - ************************************************/ -void Display_handler(struct Component* this, int msg, int param){ - Button_handler(this,msg,param); - if(msg==CMP_BROADCAST && (this->state & STATE_FOCUS)!=0){ -#ifdef JOOST_DEBUG - printf("strlen = %d->",strlen(this->label)); fflush(stdout); -#endif - if(param==0x08){ - if(strlen(this->label)!=0) - this->label[strlen(this->label)-1]=0; - }else{ - this->label[strlen(this->label)+1]=0; - this->label[strlen(this->label)]=(char) param; - } -#ifdef JOOST_DEBUG - printf("%d\n",strlen(this->label)); fflush(stdout); -#endif - this->handler(this,WND_REDRAW,0); - } -} - -void Display_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - char pwd[64]; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - - if( (this->state & STYLE_INVERTED)==0) - FillRectNC(this->sizex,this->sizey); - else - DrawRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+7); - if(this->state & STYLE_PASSWORD){ - int i; - for(i=0; ilabel); i++) - pwd[i]='*'; - pwd[i]=0; - Text(pwd); - }else - Text(this->label); - -/* Component_findXY(this,&x,&y); - - Move(x,y); - ClearRect(this->sizex,this->sizey); - - FillRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-global->currentfont->stringheight(this->label))/2+12); /x Nick +7 x/ - Text(this->label); - TouchRegion((this->state&STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); -*/ - } -} - -struct Component* Display_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Button_new(x,y,sx,sy,msg); - this->state|=STATE_FOCUS; - Component_setlabel(this,""); - this->paint=Display_paint; - this->handler=Display_handler; - return this; -} - -/************************************************ - * Labels * - ************************************************/ -void Label_handler(struct Component* this, int msg, int param){ - return; -} - -void Label_paint(struct Component* this){ - int x=0, y=0; - if(global->currentfont->id!=this->font) - setCurrentFont(this->font); - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Button_drawtext(this,x,y); - } -} - -struct Component* Label_new(int x, int y, int sx, int sy,char* l){ - struct Component* comp=Component_new(x,y,sx,sy); - comp->label=l; - comp->state=STATE_VISIBLE; - comp->handler=Label_handler; - comp->paint=Label_paint; - comp->add=Button_add; - return comp; -} - /************************************************ - * Implementation * - ************************************************/ -/* -void ScreenDialog_handler(struct Component* this, int msg, int param){ - char cmd[]={0x1B,'V',0}; - Dialog_handler(this,msg,param); - if(msg==CMP_ACTION){ - if(param=='U') - cmd[2]=0; - else if(param=='D') - cmd[2]=1; - else - return; - write(global->lcd,cmd,3); - } -} - -struct Component* ScreenDialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* button; - struct Component* this=Dialog_new(x,y,sx,sy,msg); - - button=Button_new(0x04,0x10,0x20,0x14,'U'); - Component_setlabel(button,"Up"); - this->add(this,button); - - button=Button_new(0x04,0x28,0x20,0x14,'D'); - Component_setlabel(button,"Down"); - this->add(this,button); - - this->handler=ScreenDialog_handler; - - return this; -} -*/ -void rootWindow_handler(struct Component* this, int msg, int param){ - struct Component* dummy; - Window_handler(this,msg,param); -} - - -void screenbuilder(struct Component* root, char* filename){ - struct Component* subw; - struct ActionXDS* action; - int mode; - int fh,rd; - char buf[SIZE_SCRBLD_RECORD]; - long l; - int xs,ys; - xs=0x2b; - ys=0x1a; - buf[0]=0; - fh=open(filename,O_RDONLY); - do{ - char comp=0; - if(buf[0]=='s'){ /* Change size */ - xs=*((int*)(buf+0x1)); - ys=*((int*)(buf+0x3)); - } - - if(buf[0]=='B' || buf[0]=='M'){ /* Button, Multi-line button */ - subw=Button_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - if(buf[0]=='M') subw->state|=STYLE_MULTILINE; - comp=1; - } - if(buf[0]=='T'){ /* Toggle-button */ - subw=ToggleButton_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - comp=1; - } - if(buf[0]=='D'){ /* Display button */ - subw=Display_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf[5]); - comp=1; - } - if(buf[0]=='L'){ /* Label */ - subw=Label_new(buf[1]*xs,buf[2]*ys,buf[3]*xs-3,buf[4]*ys-3,buf+0x12); - comp=1; - } - if(buf[0]=='A'){ - struct ActionXDS a; - root->xds=&a; - a.action=*((int*)(buf+0x6)); - a.wParam=*((int*)(buf+0x8)); - a.lParam=*((long*)(buf+0xa)); - root_actionhandler(root); - } - - if(buf[0]=='S'){ - struct StringTableXDS* stx; - read_stringtable(fh,buf); - root->xds=(void*) malloc(sizeof(struct StringTableXDS)); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",root->xds); fflush(stdout); -#endif - - stx=(struct StringTableXDS*) root->xds; - root->sizexds=sizeof(struct StringTableXDS); - stx->stringtable=global->stringtable; - stx->stringtabledata=global->stringtabledata; -#ifdef STR_DEBUG - printf("Stringtable created @ %x\n",stx->stringtabledata); fflush(stdout); -#endif - comp=0; - } - if(comp!=0){ - if((buf[6] | buf[7])!=0){ - subw->state|=STATE_ACTION; - subw->sizexds=sizeof(struct ActionXDS); - subw->xds=(void*) malloc(sizeof(struct ActionXDS)); -#ifdef MALLOC_DEBUG - printf("malloc Action: %x\n",subw->xds); fflush(stdout); -#endif - - action=(struct ActionXDS*) (subw->xds); - action->actionhandler=root_actionhandler; - action->action=*((int*)(buf+0x6)); - action->wParam=*((int*)(buf+0x8)); - action->lParam=*((long*)(buf+0xa)); - } - if((buf[0x0e] | buf[0x0f])!=0) - subw->state=*((int*)(buf+0x0e)); - subw->font=*((int*)(buf+0x10)); - - subw->label=(char*) (*((int*) (buf+0x12)) & 0x0fff); - if(subw->label==NULL) { - subw->label=(char*) malloc(LABEL_LENGTH); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",subw->label); fflush(stdout); -#endif - subw->label[0]=0; - } - else - subw->state|=STRING_FROMTABLE; - - if((*((int*) (buf+0x12)) &0xf000)>0x1000) - subw->label2=(char*)((*((int*) (buf+0x12)) & 0x0fff)+1); - - root->add(root,subw); - } - - rd=read(fh,buf,SIZE_SCRBLD_RECORD); - } while(rd==SIZE_SCRBLD_RECORD); - close(fh); - Component_linkstringtable(root); - root->paint(root); -} - -void root_actionhandler(struct Component* this){ - struct ActionXDS *act; - struct Component* subw; - char filename[]={'/','w','n','d','/','0','0','0','0','.','s','c','r',0}; /* Nick added /wnd/ */ - - act=(struct ActionXDS*) (this->xds); -#ifdef JOOST_DEBUG - printf("0x%x: (0x%x, 0x%x, 0x%lx)",act, act->action, act->wParam, act->lParam); -#endif - if(act->action==0x0001){ /*QUIT*/ - this->handler(this,APP_QUIT,0); - } - if((act->action & 0xfffe)==0x0002){ /*Open Screen*/ - Component_changestate_children(this->parent,STATE_VISIBLE,0,0); - subw=Window_new(0,0,this->parent->sizex,this->parent->sizey); - subw->state=STATE_VISIBLE | STATE_ENABLED; - if((act->action & 1)!=0) - subw->state|=STATE_APPLICATION; - subw->handler=rootWindow_handler; - subw->paint=Root_paint; - filename[5]=(char) ((act->lParam) &0xff); /* Nick 5 formerly 0 */ - filename[6]=(char) ((act->lParam>>8) &0xff); /* Nick 6 formerly 1 */ - filename[7]=(char) ((act->lParam>>16) &0xff); /* Nick 7 formerly 2 */ - filename[8]=(char) ((act->lParam>>24) &0xff); /* Nick 8 formerly 3 */ - screenbuilder(subw,filename); - this->parent->add(this->parent,subw); - } - if(act->action==0x0004) { /* Open MessageBox */ - /*Component_changestate_children(this->parent,0,0,0);*/ - struct Component* label; - int i; - subw=Dialog_new(0x05,0x05,this->parent->sizex-0x0a,this->parent->sizey-0x0a,1); - subw->state=STATE_VISIBLE | STATE_ENABLED | STYLE_SELFDESTRUCT; - subw->font=0x0030; - for(i=0; i<(act->wParam>>12)&0x0f; i++){ - label=Label_new(0x08,0x14+i*0x0c,(subw->sizex & 0xff)-0x10,0x10,global->stringtable[(act->wParam&0xfff)+i-1]); - label->font=0x0030; - subw->add(subw,label); - } - Component_setlabel(subw,"Message Box"); - Component_find(subw,0xff)->font=0x0030; - Component_delete(Component_find(subw,0xfe)); - this->parent->add(this->parent,subw); - this->parent->handler(this->parent,WND_REDRAW,0); - } -#ifdef JOOST_DEBUG - printf("Before external handler...\n"); fflush(stdout); -#endif - if(global->actionhandler!=NULL) - global->actionhandler(this); - -#ifdef JOOST_DEBUG - printf("After external handler...\n"); fflush(stdout); -#endif -} - -void read_stringtable(int fh,char* buf){ - int siz,bsiz; - int i=0,j=0; - char **ptrs; - char *rawdata; - - siz=*((int*) (buf+0x01)); - bsiz=*((int*) (buf+0x03)); -#ifdef STR_DEBUG - printf("%d %d\n",siz,bsiz); -#endif - - ptrs=(char**) malloc(sizeof(char*)*siz); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",ptrs); fflush(stdout); -#endif - - rawdata=(char*) malloc(bsiz); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",rawdata); fflush(stdout); -#endif - - read(fh,rawdata,bsiz); - while(istringtabledata=rawdata; - global->stringtable=ptrs; -#ifdef STR_DEBUG - for(i=0; i""%s""\n",i,global->stringtable[i],global->stringtable[i]); - fflush(stdout); -#endif - -} - -struct Global_GUI* gui_globals(){ - return global; -} - - -void GUIinit(void){ - global=(struct Global_GUI*) malloc(sizeof(struct Global_GUI)); -#ifdef MALLOC_DEBUG - printf("malloc: %x\n",global); fflush(stdout); -#endif - - global->id=0; - global->willquit=0; - global->currentfont=NULL; - global->firstfont=NULL; - global->stringtable=NULL; - global->stringtabledata=NULL; - global->actionhandler=NULL; - GraphicsOpen(); - loadFont(0x0030,stringwidth0,stringheight01,0,NULL); - loadFont(0x0031,stringwidth1,stringheight01,0,NULL); - loadFont(0x0032,stringwidth2,stringheight2,0,NULL); - global->root=Window_new(0x0,0x0,0x00,0x80); - global->root->state=STATE_VISIBLE; - global->root->handler=rootWindow_handler; - global->root->paint=Root_paint; -} - -void GUIunit(void){ - Component_delete(global->root); - ClearScreen(); - GraphicsClose(); -} - -void GUIgo(char* scr){ - char buf,obuf; - screenbuilder(global->root,scr); - - while(read(global->lcd,&buf,1)==1); - - while(!global->willquit){ - if(read(global->lcd,&buf,1)==1){ - if(buf!=0) - global->root->handler(global->root,KEY_PRESSED,buf); - else - global->root->handler(global->root,KEY_RELEASED,obuf); - obuf=buf; - } - } -} - -/*void main(void){ - GUIinit(); - GUIgo(); - GUIunit(); -}*/ - diff --git a/src/gui/wnd.cbackup b/src/gui/wnd.cbackup deleted file mode 100644 index d7f96dac..00000000 --- a/src/gui/wnd.cbackup +++ /dev/null @@ -1,658 +0,0 @@ -#include -#include -#include -#include -#include -#include - -/*#define JOOST_DEBUG*/ - -#define FONT_HEIGHT 7 -#define FONT_WIDTH 6 - -#define STATE_VISIBLE 0x0001 -#define STATE_ENABLED 0x0002 -#define STATE_CHECKED 0x0004 -#define STATE_FOCUS 0x0008 -#define STATE_CASTING 0x0010 -#define STATE_ACTION 0x0020 - -#define KEY_TYPED 0x0001 -#define WND_OPEN 0x0101 -#define WND_CLOSE 0x0102 -#define WND_REDRAW 0x0103 -#define WND_BROADCAST 0x0104 -#define CMP_ACTION 0x0201 -#define CMP_STATECHANGE 0x0202 -#define CMP_BROADCAST 0x0203 -#define DLG_OK 0x0301 -#define DLG_CANCEL 0x0302 - -int id=0; -int lcd; -int willquit; - -/************************************************ - * Graphics * - ************************************************/ - -void GraphicsOpen(){ - struct sgttyb temp; - char init[]={0x1B,'K'}; - - lcd=open("/dev/lcd0",O_RDWR); - gtty(lcd,&temp); - temp.sg_flags=RAW | UNBUFF; - stty(lcd,&temp); - - write(lcd,init,2); -} - -void Move(int x, int y){ - unsigned char cmd[]={0x1B,'S',0,0}; - cmd[2]=(unsigned char) (x); - cmd[3]=(unsigned char) (y); - write(lcd,cmd,4); -} - -void ClearRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'C',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(lcd,cmd,4); -} - -void DrawRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'N',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(lcd,cmd,4); -} - -void FillRect(int sx, int sy){ - unsigned char cmd[]={0x1B,'R',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(lcd,cmd,4); -} - -void FillRectNC(int sx, int sy){ - unsigned char cmd[]={0x1B,'F',0,0}; - cmd[2]=(unsigned char) (sx); - cmd[3]=(unsigned char) (sy); - write(lcd,cmd,4); -} - -void Text(char *s){ - int c=strlen(s); - write(lcd,s,c); -} - -void TouchRegion(int msg, int x, int y, int sx, int sy){ - char touch[]={0x1B,'Z',0,0,0,0,0}; - touch[2]=(unsigned char) (msg); - touch[3]=(unsigned char) (x); - touch[4]=(unsigned char) (y); - touch[5]=(unsigned char) (sx); - touch[6]=(unsigned char) (sy); - write(lcd,touch,7); -#ifdef JOOST_DEBUG - printf("Touch: %x,%x,%x,%x,%x\n",msg,x,y,sx,sy); fflush(stdout); -#endif -} - -void ClearScreen(){ - Move(0,0); - ClearRect(0,0x80); - TouchRegion(0,0,0,0,0x80); -} - -void EnableScreen(unsigned char c){ - char cmd[]={0x1B,'E',0}; - cmd[2]=c; - write(lcd,cmd,3); -} - -/************************************************ - * Components * - ************************************************/ - -struct Component { - int id; - int x,y; - int sizex,sizey; - int state; - int order; - char msg; - struct Component* parent; - struct Component *next_sibling; - struct Component *first_child; - void (*handler) (struct Component*, int, int); - void (*paint) (struct Component*); - void (*add) (struct Component*, struct Component*); - char label[20]; - int sizexds; - void *xds; -}; - -struct ActionXDS { - void (*actionhandler)(struct Component*, int); - int action; - int wParam; - long lParam; -}; - -struct Component* root; - -struct Component* Component_new(int x,int y,int sx,int sy){ - struct Component* this=(struct Component*) (malloc(sizeof(struct Component))); - this->id=(++id); - this->x=x; - this->y=y; - this->sizex=sx; - this->sizey=sy; - this->state=0; - this->order=0; - this->msg=0; - this->parent=NULL; - this->next_sibling=NULL; - this->first_child=NULL; - this->handler=NULL; - this->paint=NULL; - this->add=NULL; - this->sizexds=0; - this->xds=NULL; - this->label[0]=0; - return this; -} - -void Component_setlabel(struct Component* this, char* s){ - int i=0; - while(s[i]!=0 && i<20){ - this->label[i]=s[i]; - i++; - } - this->label[i]=0; -} - -void Component_add(struct Component* this, struct Component* comp){ - struct Component* current=this->first_child; - if(this->first_child==NULL){ - this->first_child=comp; - comp->next_sibling=NULL; - } - else - { - while(current->next_sibling!=NULL){ - current=current->next_sibling; - } - current->next_sibling=comp; - comp->next_sibling=NULL; - } - comp->parent=this; -} -void Component_paint(struct Component* this){ - struct Component* current=this->first_child; - while(current!=NULL){ - current->paint(current); - current=current->next_sibling; - } -} - - -void Component_findXY(struct Component* this, int* x, int* y){ - struct Component* current=this; - do{ - *x+=current->x; - *y+=current->y; - current=current->parent; - } while(current!=NULL); -} - -struct Component* Component_find(struct Component* this, int msg){ - struct Component* current=this->first_child; -#ifdef JOOST_DEBUG - printf("Find %x in %x:\n",msg, this->id); fflush(stdout); -#endif - while(current!=NULL){ -#ifdef JOOST_DEBUG - printf("Comp_find: %x, %x\n",msg, current->msg); fflush(stdout); -#endif - if(current->msg==msg) - return current; - current=current->next_sibling; - } - return NULL; -} - -struct Component* Component_delete(struct Component* this){ - struct Component* current=this->first_child; - int id=this->id; - if(this!=NULL){ -#ifdef JOOST_DEBUG - printf("Deleting component: %d\n",id); fflush(stdout); -#endif - while(current!=NULL){ - current=Component_delete(current); - } - if(this->parent!=NULL){ - if(this==this->parent->first_child) - this->parent->first_child=this->parent->first_child->next_sibling; - else{ - current=this->parent->first_child; - while(this!=current->next_sibling && current->next_sibling!=NULL) - current=current->next_sibling; - if(current->next_sibling!=NULL) - current->next_sibling=current->next_sibling->next_sibling; - } - } - current=this->next_sibling; - if(this->sizexds>0) - free(this->xds); - free(this); -#ifdef JOOST_DEBUG - printf("Deleted component: %d\n",id); fflush(stdout); -#endif - } - return current; -} - - -/************************************************ - * Windows * - ************************************************/ - -void Window_handler (struct Component* this, int msg, int param){ - struct Component* current; - int x=0,y=0; -#ifdef JOOST_DEBUG - printf("Message in window %d, Msg: %x, Param: %x\n",this->id,msg,param); fflush(stdout); -#endif - switch(msg){ - case KEY_TYPED: - current=this->first_child; - while(current!=NULL) { - current->handler(current,msg,param); - current=current->next_sibling; - } - break; - case WND_REDRAW: - this->paint(this); - break; - case WND_CLOSE: - Component_findXY(this,&x,&y); - TouchRegion(0,x,y,this->sizex,this->sizey); - this->parent->handler(this->parent,WND_REDRAW,0); - break; - case WND_BROADCAST: - current=this->first_child; - while(current!=NULL){ - if(current!=(struct Component*) (param) && (current->state & STATE_FOCUS)!=0) - current->handler(current,CMP_BROADCAST,param); - current=current->next_sibling; - } - break; - } -} - -void Window_paint(struct Component* this){ - int x=0,y=0; - struct Component* current; - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - - Move(x,y); - ClearRect(this->sizex,this->sizey); - TouchRegion(0,x,y,this->sizex,this->sizey); - Move(x,y+FONT_HEIGHT+4); - DrawRect(this->sizex,this->sizey-FONT_HEIGHT-4); - Move(x,y); - FillRect(this->sizex, FONT_HEIGHT+5); - Move(x+2,y+2); - Text(this->label); - Component_paint(this); - } -} - -void Root_paint(struct Component* this){ - Move(0,0); - ClearRect(0,0x80); - Component_paint(this); -/* EnableScreen(0); - Window_paint(this); - EnableScreen(1);*/ -} - -void Window_add(struct Component* this, struct Component* comp){ - Component_add(this,comp); -} - -struct Component* Window_new(int x,int y,int sx,int sy){ - struct Component* this=Component_new(x,y,sx,sy); - this->handler=Window_handler; - this->paint=Window_paint; - this->add=Window_add; - return this; -} - -/************************************************ - * Buttons * - ************************************************/ - -void Button_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->parent->handler(this->parent, CMP_ACTION, param); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void Button_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - if((this->state & STATE_ENABLED)!=0){ - FillRectNC(this->sizex,this->sizey); - Move(x+(this->sizex-FONT_WIDTH*strlen(this->label))/2,y+(this->sizey-FONT_HEIGHT)/2); - Text(this->label); - TouchRegion(this->msg,x,y,this->sizex,this->sizey); - }else{ - DrawRect(this->sizex,this->sizey); - Move(x+(this->sizex-FONT_WIDTH*strlen(this->label))/2,y+(this->sizey-FONT_HEIGHT)/2); - Text(this->label); - TouchRegion(0,x,y,this->sizex,this->sizey); - } - } -} - -void Button_add(struct Component* this, struct Component* comp){ - -} - -struct Component* Button_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state=this->state | STATE_ENABLED | STATE_VISIBLE; - this->msg=msg; - this->handler=Button_handler; - this->paint=Button_paint; - this->add=Button_add; - - return this; -} - -/************************************************ - * Toggle-buttons * - ************************************************/ - -void ToggleButton_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==KEY_TYPED && this->msg==param && (this->state & (STATE_VISIBLE | STATE_ENABLED))!=0){ - this->state^=STATE_CHECKED; - this->parent->handler(this->parent, CMP_STATECHANGE, param); - this->handler(this, WND_REDRAW, 0); - if((this->state & STATE_CASTING)!=0) - this->parent->handler(this->parent, WND_BROADCAST, this->msg); - } - if(msg==CMP_ACTION) - this->parent->handler(this->parent, CMP_ACTION, param); -} - -void ToggleButton_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - Move(x,y); - ClearRect(this->sizex,this->sizey); - if((this->state & STATE_ENABLED)!=0 && (this->state & STATE_CHECKED)!=0){ - FillRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-FONT_HEIGHT)/2); - Text(this->label); - TouchRegion(this->msg,x,y,this->sizex,this->sizey); - }else{ - DrawRect(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-FONT_HEIGHT)/2); - Text(this->label); - TouchRegion((this->state & STATE_ENABLED)?this->msg:0,x,y,this->sizex,this->sizey); - } - } -} - -struct Component* ToggleButton_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Component_new(x,y,sx,sy); - this->state=this->state | STATE_ENABLED | STATE_VISIBLE | STATE_CHECKED; - this->msg=msg; - this->handler=ToggleButton_handler; - this->paint=ToggleButton_paint; - this->add=Button_add; - - return this; -} - -/************************************************ - * Dialogs * - ************************************************/ - -void Dialog_handler(struct Component* this, int msg, int param){ - Window_handler(this,msg,param); - if(msg==CMP_ACTION && param=='O'){ - this->state=this->state & (0xffff-(STATE_VISIBLE | STATE_ENABLED)); - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_OK, this->msg); - } - if(msg==CMP_ACTION && param=='C'){ - this->state=this->state & (0xffff-(STATE_VISIBLE | STATE_ENABLED)); - this->handler(this,WND_CLOSE,0); - this->parent->handler(this->parent, DLG_CANCEL, this->msg); - } -} - -struct Component* Dialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* ok; - struct Component* this=Component_new(x,y,sx,sy); - this->state=this->state | STATE_VISIBLE; - this->msg=msg; - this->handler=Dialog_handler; - this->paint=Window_paint; - this->add=Window_add; - - ok=Button_new(sx-0x30,sy-0x1c,0x28,0x14,'O'); - Component_setlabel(ok,"OK"); - this->add(this,ok); - - ok=Button_new(sx-0x30,sy-0x38,0x28,0x14,'C'); /*Cancel*/ - Component_setlabel(ok,"Cancel"); - this->add(this,ok); - - return this; -} - -/************************************************ - * Displays * - ************************************************/ -void Display_handler(struct Component* this, int msg, int param){ - Button_handler(this,msg,param); - if(msg==CMP_BROADCAST && (this->state & STATE_FOCUS)!=0){ -#ifdef JOOST_DEBUG - printf("strlen = %d->",strlen(this->label)); fflush(stdout); -#endif - if(param==0x08){ - if(strlen(this->label)!=0) - this->label[strlen(this->label)-1]=0; - }else{ - this->label[strlen(this->label)+1]=0; - this->label[strlen(this->label)]=(char) param; - } -#ifdef JOOST_DEBUG - printf("%d\n",strlen(this->label)); fflush(stdout); -#endif - this->handler(this,WND_REDRAW,0); - } -} - -void Display_paint(struct Component* this){ - int x=0, y=0; - struct Component* current; - if((this->state & STATE_VISIBLE)!=0){ - Component_findXY(this,&x,&y); - - Move(x,y); - ClearRect(this->sizex,this->sizey); - - FillRectNC(this->sizex,this->sizey); - Move(x+2,y+(this->sizey-FONT_HEIGHT)/2); - Text(this->label); - if((this->state & STATE_ENABLED)!=0) - TouchRegion(this->msg,x,y,this->sizex,this->sizey); - } -} - -struct Component* Display_new(int x, int y, int sx, int sy, int msg){ - struct Component* this=Button_new(x,y,sx,sy,msg); - this->state|=STATE_FOCUS; - Component_setlabel(this,""); - this->paint=Display_paint; - this->handler=Display_handler; - return this; -} - -/************************************************ - * Implementation * - ************************************************/ - -void ScreenDialog_handler(struct Component* this, int msg, int param){ - char cmd[]={0x1B,'V',0}; - Dialog_handler(this,msg,param); - if(msg==CMP_ACTION){ - if(param=='U') - cmd[2]=0; - else if(param=='D') - cmd[2]=1; - else - return; - write(lcd,cmd,3); - } -} - -struct Component* ScreenDialog_new(int x, int y, int sx, int sy, int msg){ - struct Component* button; - struct Component* this=Dialog_new(x,y,sx,sy,msg); - - button=Button_new(0x04,0x10,0x20,0x14,'U'); - Component_setlabel(button,"Up"); - this->add(this,button); - - button=Button_new(0x04,0x28,0x20,0x14,'D'); - Component_setlabel(button,"Down"); - this->add(this,button); - - this->handler=ScreenDialog_handler; - - return this; -} - -void rootWindow_handler(struct Component* this, int msg, int param){ - struct Component* dummy; - Window_handler(this,msg,param); - if(msg==DLG_OK && param=='!') - willquit=1; - if(msg==DLG_CANCEL && param=='!'){ - Component_delete(Component_find(this,'!')); - Component_find(this,'Q')->state|=STATE_ENABLED; - this->handler(this,WND_REDRAW,0); - } - - if((msg==DLG_CANCEL || msg==DLG_OK) && param=='#'){ - Component_delete(Component_find(this,'#')); - Component_find(this,'S')->state|=STATE_ENABLED; - this->handler(this,WND_REDRAW,0); - } - - if(msg==CMP_ACTION && param=='Q'){ - dummy=Dialog_new(0x02,0x02,0xfc,0x7c,'!'); - dummy->state=dummy->state | STATE_VISIBLE; - Component_setlabel(dummy,"Really quit?"); - this->add(root,dummy); - Component_find(this,'Q')->state&=0xffff-STATE_ENABLED; - this->handler(this,WND_REDRAW,0); - } - - if(msg==CMP_ACTION && param=='S'){ - dummy=ScreenDialog_new(0x02,0x02,0xfc,0x7c,'#'); - dummy->state=dummy->state | STATE_VISIBLE; - Component_setlabel(dummy,"Screen contrast"); - - this->add(root,dummy); - Component_find(this,'S')->state&=0xffff-STATE_ENABLED; - this->handler(this,WND_REDRAW,0); - } -} - -void Numpad(struct Component* this, int x, int y){ - int i; - char s[2]={0,0}; - struct Component* button; - for(i=0; i<9; i++){ - s[0]=0x31+(char) i; - button=Button_new(x+(i%3)*0x18,y+0x30-(i/3)*0x18,0x16,0x16,i+0x31); - Component_setlabel(button,s); - button->state|=STATE_CASTING; - this->add(this,button); - } - button=Button_new(x+0x18,y+0x48,0x16,0x16,0x30); - Component_setlabel(button,"0"); - button->state|=STATE_CASTING; - this->add(this,button); - - button=Button_new(x+0x30,y+0x48,0x16,0x16,0x08); - Component_setlabel(button,"CE"); - button->state|=STATE_CASTING; - this->add(this,button); -} - -void main(void){ - struct Component* subw; - char buf; - willquit=0; - GraphicsOpen(); - root=Window_new(0x0,0x0,0x00,0x80); - root->state=STATE_VISIBLE; - root->handler=rootWindow_handler; - root->paint=Root_paint; - Component_setlabel(root,"Test-window"); - - subw=Button_new(0xc0,0x60,0x30,0x18,'Q'); - Component_setlabel(subw,"Quit"); - root->add(root,subw); - - subw=ToggleButton_new(0xc0,0x40,0x30,0x18,'T'); - Component_setlabel(subw," Toggle!"); - root->add(root,subw); - - subw=Button_new(0xc0,0x20,0x30,0x18,'S'); - Component_setlabel(subw,"Screen"); - root->add(root,subw); - - subw=Display_new(0x10,0x02,0x46,0x18,'@'); - root->add(root,subw); - - Numpad(root,0x10,0x1f); - - root->paint(root); - - while(read(lcd,&buf,1)==1); - - while(!willquit){ - if(read(lcd,&buf,1)==1) - root->handler(root,KEY_TYPED,buf); - } - - Component_delete(root); - ClearScreen(); -} \ No newline at end of file diff --git a/src/gui/wnd.h b/src/gui/wnd.h index dcf45c3d..cf968407 100644 --- a/src/gui/wnd.h +++ b/src/gui/wnd.h @@ -40,14 +40,18 @@ #define CMP_BROADCAST 0x0203 #define DLG_OK 0x0301 #define DLG_CANCEL 0x0302 -#define APP_QUIT 0x0401 +#define BARCODE_SCAN 0x0401 +#define APP_QUIT 0x0501 struct Global_GUI { int id; + int lcda[2]; int lcd; int willquit; char *stringtabledata; char **stringtable; + char *barcode; + int barcodetty; struct Font* currentfont; struct Font* firstfont; struct Component* root; diff --git a/src/gui/wnd.ihx b/src/gui/wnd.ihx deleted file mode 100644 index be61cb6f..00000000 --- a/src/gui/wnd.ihx +++ /dev/null @@ -1,1068 +0,0 @@ -:020000040000FA -:10810000C30381ED73A6C3114AC7CDF9BFCD458125 -:10811000DD210000DD39DD6E04DD66052212C5DDDE -:108120004E02DD4603ED4310C5DD5E00DD5601ED78 -:10813000530EC5CD3AABEBD52A16C57DB4C44481E8 -:10814000D1C319C0E9214AC7110EC5CD6E8111A056 -:10815000C321A0C30132C2CD6381114AC721A0C38C -:1081600001A0C3AFED42C54D44E1C8EDB0C9AFE5D4 -:10817000ED52E1C8121318F77BF5ED3804E602283A -:10818000F9F1ED3906C93E0DCD79813E0A18EAEBC9 -:108190007CCD95817DF50F0F0F0FCD9E81F1E60F00 -:1081A000C69027CE402718D1E3F57E23B72805CD0A -:1081B000798118F6F1E3C90405C8CB2ACB1B10FA64 -:1081C000C9F5E5CD2C827B2F5F7A2F57E1F1C9F5F8 -:1081D000C5E5AFCD1082F5CD2C82F1B72803131879 -:1081E000067B2F5F7A2F57E1C1F1C9F5E5CD2C82CF -:1081F000EBE1F1C9F5E5C53E01CD1082F5CD2C824C -:10820000F1EBB72007AF935F3E009A57C1E1F1C988 -:10821000CB782809AF914F3E0098473E01CB7AC8F2 -:10822000F5AF935F3E009A57F1EE01C92100003E81 -:1082300011CB13CB123DC8CB15CB14ED4230F20954 -:1082400018EFF5C5E5784251676BED4CED6CED5CD0 -:1082500079858257E1C1F1C9C5E5F57CEE80677883 -:10826000EE8047F1A7ED42E1C1C95E2356CD4282BF -:10827000722B73C9B7C8CB28CB19CB1CCB1D3D20A3 -:10828000F5C9E3D5DDE5DD210000DD39DD5609DD89 -:108290007409DD5E08DD7508D5C5F5DD6E0462ED97 -:1082A0006CDD5605ED5C1959DD5607ED5C19DD5E98 -:1082B0000650ED5C19E5DD5E04DD56FEED5CDD6E1D -:1082C00005DD6607ED6C19DD4606ED4C09E5DD5E62 -:1082D00004DD5607ED5CDD6E05DD6606ED6CAF195D -:1082E00017F5DD5E04DD5606ED5C4A0600AF0917A2 -:1082F00055C14CE10984C1814D47EBF1D1D1DDE19C -:10830000D133333333C9EBE3F5DDE5DD210000DDA7 -:1083100039C5D5DD5609DD7409DD5E08DD7508CD8A -:10832000FA83E1C1CD5A84DDE1F1D13333C9EBE306 -:10833000F5DDE5DD210000DD39C5D5DD5609DD744B -:1083400009DD5E08DD7508AFCDB683CDFA83E1C1E6 -:10835000B7CC5A84C45284DDE1F1D13333C9EBE3A5 -:10836000F5DDE5DD210000DD39C5D5DD5609DD741B -:1083700009DD5E08DD7508CDFA83DDF9DDE1F1D1B7 -:108380003333C9EBE3F5DDE5DD210000DD39C5D58B -:10839000DD5609DD7409DD5E08DD75083E01CDB6E8 -:1083A00083CDFA83B72006CD5A84CD5284DDF9DD22 -:1083B000E1F1D13333C9CB7A2818424BDD6607DDB2 -:1083C0006E06CD5A84CD52845059DD7407DD750692 -:1083D0003E01DDCBFF7EC8F5DD46FFDD4EFEDD66EE -:1083E000FDDD6EFCCD5A84CD5284DD70FFDD71FE63 -:1083F000DD74FDDD75FCF1EE01C9F5210000010021 -:1084000000DD36F82118021937DDCBFC16DDCBFD77 -:1084100016DDCBFE16DDCBFF16DD35F8282ECB1191 -:10842000CB10CB15CB14ED5238DD201078DD96073C -:1084300038D5200879DD960638CD180479DD960602 -:108440004F78DD9E074730C12BA718BDF1E5606965 -:10845000C1C92CC024C00CC004C9F57D2F6F7C2F6E -:1084600067792F4F782F47F1C9F5AF956F3E009C84 -:10847000673E00994F3E009847F1C9C5D55E235627 -:10848000234E2346EBCD8282C39B84C5D55E235603 -:10849000234E2346EBCD0683C39B84EB702B712BBD -:1084A000722B73C9F57E83775F237E8A7757237E8D -:1084B00089774F237E8877472B2B2BF1C9E3F5D59E -:1084C0007B96235F7A9E23577B96237A9E23C3D184 -:1084D000843004EB2329195E2356EBD1F1E3C9E381 -:1084E000F5C54E2346237BEDB12002232309C30E9D -:1084F00085E3F5C54E23462378B1280D0B7B9623E3 -:1085000020F57A9620F12323230909C30E85090952 -:108510007E23666FC1F1E3C9E1C5D5DDE5DD21004C -:1085200000DD39E9E1C5D5DDE5DD210000DD395E9D -:10853000235623EB39F9EBE9DDF9DDE1D1C1C9DDE2 -:10854000F9DDE1D13333C9E9CD2485F8FF210600F7 -:1085500039EB2123C1010200EDB02A18C52323E520 -:108560000303C50150C1C5CD89C0F1F14D44E1718E -:10857000237021000039E5210000E52A18C52323D6 -:108580004E2346C5CD3BC0F1F1F1DD36FC60DD3652 -:10859000FD0021000039E5210100E52A18C523234B -:1085A0004E2346C5CD3BC0F1F1F1210200E52E0876 -:1085B000394D442A18C523235E2356CD09C1F1C382 -:1085C0003885D52A18C523235E2356CD09C0D1C9C5 -:1085D000CD2485FCFF21000039EB2125C1010400D9 -:1085E000EDB0DD4602DD70FEDD4604DD70FF2104E6 -:1085F00000E52B2BC3B0854DC3B2852A18C52323B4 -:108600005E23C3BA85CD09C1F1C33885CD2485FC6D -:10861000FF21000039EB2129C1010400EDB0DD4646 -:1086200002DD70FEDD4604DD70FF210400E52B2B2A -:10863000C3B0854DC3F8852A18C5C3B68523C300CA -:108640008623C3BA85CD09C1F1C33885CD2485FC05 -:10865000FF21000039EB212DC1010400EDB0DD4602 -:1086600002DD70FEDD4604DD70FF210400E52B2BEA -:10867000C3B0854DC3F8852A18C5C33A8623C3B84D -:108680008523C30286CD09C1F1C33885CD2485FC7D -:10869000FF21000039EB2131C1010400EDB0DD46BE -:1086A00002DD70FEDD4604DD70FF210400E52B2BAA -:1086B000C3B0854DC3F8852A18C5C33A8623C37E47 -:1086C0008623C3BA85CD09C1F1C33885CD2485FC85 -:1086D000FF21000039EB2135C1010400EDB0DD467A -:1086E00002DD70FEDD4604DD70FF210400E52B2B6A -:1086F000C3B0854DC3F8852A18C5C33A8623C37E07 -:108700008623C3C286CD09C1F1C33885C5FDE5DD29 -:10871000E5D5DDE1CD4EB6E5DDE5C12A18C523235B -:108720005E2356CD09C1F1DDE1FDE1C1C9CD24854E -:10873000F8FF21000039EB2139C1010700EDB0DD60 -:108740004602DD70FADD4604DD70FBDD4608DD70B3 -:10875000FCDD460ADD70FDDD460CDD70FE21070004 -:10876000E52E02C3B0854DC3F8852A18C5C33A86E5 -:1087700023C37E8623C3C286CD09C1F1C33885C514 -:10878000D5CD9487E56CE5E54D44EBCD2D87E1E152 -:10879000E1D1C1C90100005950CDD08501800058F8 -:1087A00050CD0C86218000C9CD2485FCFF2100001E -:1087B00039EB2140C1010300EDB0DD4602DD70FE62 -:1087C000210300E52BC3B0854DC3F8852A18C5C326 -:1087D0003A8623C37E8623C3C286CD09C1F1C3383E -:1087E00085CD2485FEFF21000039EB2143C1010224 -:1087F00000EDB0DD4602DD70FF210200E5C3B0856B -:108800004DC3F8852A18C5C33A8623C37E8623C381 -:10881000C286CD09C1F1C33885CD24850000210C65 -:1088200000ED4B18C50946236668EB7BB228166B32 -:108830006246236668DD4E02DD4603ED42280621CE -:1088400006001918E1EBC33885C5DDE5D5DDE1CDBE -:1088500019887DB4281BDDE5D1CDE187210A00ED23 -:108860004B18C509E5DDE5D1CD19884D44E17123EB -:1088700070DDE1C1C9CD2485FCFFFDE5110C00CD03 -:108880000489DD4E0271DD46032370DD6E04FD7543 -:1088900002DD6605FD7403DD6E08FD7504DD660905 -:1088A000FD7405AFFD7706FD7707DD6E0AFD7508DF -:1088B000DD660BFD7409DD6E0CFD750ADD660DFDD0 -:1088C000740B210C00ED4B18C5097E23B6210C005A -:1088D000ED4B18C5092010FDE5C1712370210A0078 -:1088E000ED4B18C509181246236668EB21060019DE -:1088F0007E23B62106001920EEFDE5C1712370FD2F -:10890000E1C33885CDE3B2E5FDE1C9FDE5DDE5C5AF -:10891000D5DD210000FD210000FDE5210200394EDA -:108920002346E1097EB72850FDE5E1095ECDDF84ED -:108930000A00212C2E3149696A6B6C726689618943 -:10894000578961896189528952895C895C895C890E -:1089500052890102001812010300180D01040018C9 -:10896000080105001803010600DD09210200394E47 -:108970002346DD09FD2318A1DDE5E1F1F1DDE1FD8F -:10898000E1C9CD18857BFE80300621070009180C4F -:10899000FECC38083EDFBB3803696023C33885CD81 -:1089A00018850100001A5FCD8289C33885CD1885EE -:1089B000010500C3A589C5D5010000CD0B89F1C112 -:1089C000C9C5D5010200CD0B89F1C1C9C5D50103C7 -:1089D00000CD0B89F1C1C9CD24850000FDE511252D -:1089E00000CD04892A18C55E235613722B73FDE54A -:1089F000E1732372DD6E02FD7502DD6603FD740313 -:108A0000FD7104FD7005DD6E08FD7506DD6609FD6E -:108A10007407DD6E0AFD7508DD660BFD7409AFFD98 -:108A2000770AFD770BFD770CFD770DFD770EFD774F -:108A30000FFD7710FD7711FD7712FD7713FD771489 -:108A4000FD7715FD7716FD7717FD7718FD7719FD72 -:108A5000771AFD771BFD771CFD7721FD7722FD77C7 -:108A600023FD7724FD771DFD771EFD771FFD772001 -:108A7000FDE5E1FDE1C33885CD24850000FDE5DDA0 -:108A80006E02DD6603E5FDE1110000DD6E04DD66CA -:108A900005197EB728210114806B6278AC67ED421E -:108AA0003015FD6E1DFD661E19E5DD6E04DD6605E3 -:108AB0001946E1701318D4FD6E1DFD661E193600AF -:108AC000FDE1C33885CD24850000FDE55950211511 -:108AD00000DD4E02DD4603097E23666FE5FDE121E0 -:108AE0001500097E23B62009211500097323721889 -:108AF00019FD7E13FDB614280BFD6E13FD6614E5FB -:108B0000FDE118EDFD7313FD721421130019772395 -:108B10007721110019DD4E0271DD46032370FDE15E -:108B2000C33885C5FDE5DDE52115001946236668D6 -:108B3000E5DDE17DB42814DDE5D1DD6E19DD661AD1 -:108B4000CD4785DD6E13DD661418E5DDE1FDE1C17D -:108B5000C9CD24850000FDE5DD6E02DD6603E5FD7F -:108B6000E1DD6E04DD66057EFD860277237EFD8EE7 -:108B70000377DD6E08DD66097EFD860477237EFDC2 -:108B80008E0577FD6E11FD6612E5FDE17DB420D105 -:108B9000FDE1C33885CD24850000211500DD4E029E -:108BA000DD46030946236668EB7BB2281B211000D3 -:108BB000194E0600DD6E04DD6605A7ED422003EBCD -:108BC00018082113001918DC6F67C33885CD248578 -:108BD000F8FFFDE5DD6E02DD6603E5FDE1FD6E15E6 -:108BE000DD75F8FD6616DD74F9FDE5E17DB4CA8634 -:108BF0008DDD7EF8DDB6F92811DD5EF8DD56F9CDA4 -:108C0000CD8BDD75F8DD74F918E7FD7E11FDB61228 -:108C1000CA9C8CFD6E11FD66120115000946236683 -:108C200068FDE5C1A7ED42FD6E11FD66120115005C -:108C3000092009E5FD6E11FD66121850462366688D -:108C4000DD75F8DD74F9211300DD4EF8DD46F90914 -:108C500046236668FDE5C1A7ED422819211300DD12 -:108C60004EF8DD46F9097E23B6280A21130009567D -:108C700023666A18CB211300DD4EF8DD46F9097E24 -:108C800023B6281821130009E5211300094623669D -:108C900068011300094E2346E1712370FD6E13DD58 -:108CA00075F8FD6614DD74F93E04FDAE21FDB622B3 -:108CB000C2528DFD6E11DD75FCFD6612DD74FDFD89 -:108CC0006E23DD75FEFD6624DD74FF5E2356CD77D1 -:108CD000AFDD6EFEDD66FF23235E2356CD77AFDD6D -:108CE0007EFCDDB6FD2820212100DD4EFCDD46FDA9 -:108CF000093E04AE23B6280F2111000956DD72FC8F -:108D00002366DD74FD18D8DD7EFCDDB6FD28432129 -:108D10002300DD4EFCDD46FD0946DD70FE2366DDE9 -:108D200074FF210600ED4B18C509E5DD6EFEDD661A -:108D3000FF5E2356E1732372210800ED4B18C5092D -:108D4000E5DD4EFEDD46FF030369604E2346E1711B -:108D50002370FD4E21FD4622210000CD58823009AE -:108D6000FD5E23FD5624CD77AFFDCB0B762011FDA4 -:108D70007E1DFDB61E2809FD5E1DFD561ECD77AF7A -:108D8000FDE5D1CD77AFDD6EF8DD66F9FDE1C338E5 -:108D900085C5FDE5DDE52115001946236668E5DD9D -:108DA000E17DB42808DDE5D1CDCD8B18F1DDE1FD05 -:108DB000E1C1C9CD24850000FDE5211500DD5E027D -:108DC000DD5603195623666AE5FDE17DB4283D2191 -:108DD0000A00FDE5C109DD7E04DD56052F5F7A2F0F -:108DE000577EA377237EA277210A00097EDDB6088D -:108DF00077237EDDB60977210A00097EDDAE0A778A -:108E0000237EDDAE0B772113000918B811DCC4CD29 -:108E100084ACFDE1C33885C5FDE5DDE5D5DDE121A7 -:108E200015001946236668E5FDE1211D001946235A -:108E300066680100903E80AC67ED42302EDD4E1D2D -:108E4000DD461E210000CD58823020DD6E1DDD661E -:108E50001E29E5210800ED4B18C5094E2346E109FE -:108E60002B2B46DD701D2366DD741EDD6E1FDD6657 -:108E7000200100903E80AC67ED42302EDD4E1FDDBC -:108E80004620210000CD58823020DD6E1FDD662097 -:108E900029E5210800ED4B18C5094E2346E1092BB1 -:108EA0002B46DD701F2366DD7420FDE5E17DB428CF -:108EB00011FDE5D1CD178EFD6E13FD6614E5FDE1C4 -:108EC00018E8DDE1FDE1C1C9CD2485D2FFFDE5AFA4 -:108ED000DD77F9DD77FADD77FBDD77FC5950CDF1F1 -:108EE000840600010002010301040105010104F3ED -:108EF000906C9002902B90798F8A8FFD8E211500B7 -:108F0000DD4E02DD46030946236668E5FDE17DB4DA -:108F10002864FDCB0A46284FDD6E08DD6609E5DDD5 -:108F20004E04DD4605CD3191E1FDCB0A6E2838FDBA -:108F30004E100600DD6E08DD6609A7ED422028FD13 -:108F40006E23DD75FDFD6624DD74FEFDE5D146234F -:108F50006668CD4785DD6EFDDD66FE23232366AFA3 -:108F6000B42004FD210000FDE5E17DB428A0FD6EE4 -:108F700013FD66141895C3F390DD5E024BDD5603B6 -:108F800042211900CD2991C3F390210A00DD4E0240 -:108F9000DD4603097EE6FC77212B0039E52B2B4DBE -:108FA00044DD5E02DD5603CD518BE1210800DD4E2C -:108FB00002DD4603095E2356D5210600095E2356CD -:108FC000D5DD6EFBDD66FCE5DD4EF9DD46FA110010 -:108FD00000CD2D87E1E1E1210000E52E11DD5E02EB -:108FE000DD5603195E2356211100DD4E02DD4603D6 -:108FF00009462366680117000946236668010301D4 -:109000001826211100DD4E02DD4603095623666A4B -:10901000E5FDE15950CDCD8B210000E5010301FDB7 -:10902000E5D1FD6E17FD6618C3EF90211500DD4EEA -:1090300002DD46030946236668E5FDE17DB4282983 -:10904000DD6E08DD6609FDE5C1ED422814FDCB0AA1 -:109050005E280EDD6E08DD6609E5010302CD319163 -:10906000E1FD6E13FD661418D0C3F390211100DDED -:109070004E02DD4603097E23B6200E210400ED4B8F -:1090800018C50936012377186A210A000923CB6E17 -:109090002025DD6E08DD6609E52111005950195EB5 -:1090A000235621110009462366680117000946234B -:1090B00066680101041838211100095623666AE523 -:1090C000FDE1110A00197EF603776A62E523E54A9D -:1090D00042FDE5D1CDB38DE1E1210000E5DD5E0289 -:1090E0004BDD5603422E170946236668010501CD64 -:1090F0004785E1FDE1C338852346211100DD5E028D -:10910000DD5603195E2356CD958BEB0178C1CD78E2 -:109110008A211100DD4E02DD4603095E235621112E -:109120000009462366680119000946236668C3479B -:1091300085FDE5D1FD6E17FD6618C34785C5DDE5E4 -:10914000F5F5D5DDE121020039AF7723772B2B2B05 -:10915000772377210A00ED4B18C5097E23666F46F9 -:10916000236668E5210E00194E2346E1A7ED42284B -:1091700003CD6092DDCB0A46CA1B9221000039E57F -:10918000CD5692E121000039CD2192E5DD6E06DD5C -:109190006607E5210400394E2346C5234E234611B8 -:1091A0000000CD2D87E1E1E1DD5E1DDD561E210AC7 -:1091B00000ED4B18C509CDAC92E5210200394E23D4 -:1091C00046E109010400094D4421020039CD4192D4 -:1091D000CDAC924D44DD6E08DD6609A7ED4201FC81 -:1091E000FF094D44CDC192210000394E234623CDC5 -:1091F000419246236668CDB092010500094D44DDD9 -:109200005E06DD5607CD8C86210000394E234603CD -:109210000323CDCA92DDE5D1CD238BE1E1DDE1C1B0 -:10922000C94E2346235E2356CDD085DD4E08DD464C -:1092300009DD5E06DD5607CD0C86DD6E08DD6609AC -:10924000C95E2356CDD085DD5E1DDD561E210A0088 -:10925000ED4B18C509C923234D44DDE5D1C3518B1E -:10926000DD5E0EDD560FC34988210A00ED4B18C59F -:109270000946236668232346236668CD47854D4407 -:10928000DD6E06DD6607A7ED42EB010200CDCF8162 -:10929000FDE5E119EBC9CD47854D44DD6E08DD667E -:1092A00009A7ED42EB010200CDCF81C97E23666F95 -:1092B0000104000946236668C34785DD4E08DD4684 -:1092C00009DD5E06DD5607C34C865E23561313CDBB -:1092D000D085DD5E1DDD561EC30C87CD1885CD946F -:1092E00087E56CE5E54D44EBCD2D87E1E1E1DD5E01 -:1092F00002DD5603CD238BC33885C5D5CDC58AE1A4 -:10930000E1C9DDE5C5D5210A00394E2346C52B2B21 -:109310002B4E2346C5210600394E2346CDD789F171 -:10932000F1E5DDE10117000936C823368EDD361977 -:109330003DDD361A91DD361BFADD361C92DDE5E1A6 -:10934000F1F1DDE1C9CD1885FDE5D5FDE1DD6E0862 -:10935000DD6609E5CDC88EE13E01DDAE04DDB60572 -:109360002054FD4E1047DD6E08DD6609ED422046B3 -:10937000FD7E0AE603283FDD6E08DD6609E5FD5E39 -:1093800011FD5612FD6E11FD66120E17CDE393E12D -:10939000FDCB0A662820FD4E100600C5FD5E11FDBE -:1093A0005612FD6E11FD66120E17094623666801FE -:1093B0000401CD4785E1210102DD4E04DD4605A70C -:1093C000ED42200BDD6E08DD6609E5CDD493E1FDAD -:1093D000E1C33885FD5E11FD5612FD6E11FD66126A -:1093E0000117000946236668010102C34785FDE5B0 -:1093F000DDE5D5DDE1C5FDE1210A0019CB76DD5EB5 -:109400001DDD561E210A00ED4B18C5097E23666F2F -:109410000104000946236668CA9E94CD4785294DFC -:1094200044DD6E08DD6609A7ED42EB010200CDCFF9 -:1094300081210600394623666819E5DD5E1DDD568B -:109440001E210A00ED4B18C5097E23666F23237E7B -:1094500023666FCD4785EBDD6E06DD6607A7ED520F -:10946000EB010200CDCF81FDE5E119EBC1CDCF923B -:10947000DD5E08DD5609010200CDCF8121060039ED -:1094800046236668194D4403C5DD5E1FDD5620CDB9 -:109490006992C1CDD085DD5E1FDD56201823CD96A3 -:1094A000922106003946236668194D4403C5DD5EE6 -:1094B0001DDD561ECD6992C1CDD085DD5E1DDD5608 -:1094C0001ECD0C87DDE1FDE1C9C5DDE5F5F5D5DD96 -:1094D000E121020039AF7723772B2B2B77237721DC -:1094E0000A00ED4B18C5097E23666F46236668E5C2 -:1094F000210E00194E2346E1A7ED422803CD6092CC -:10950000DDCB0A46285E21000039E5CD5692E121E7 -:10951000000039CD2192E5DD6E06DD6607E5210408 -:1095200000394E2346C5234E2346DDCB0A4E28077D -:10953000DD5E1016001803110000CD2D87E1E1E17A -:10954000DD7E0AE682280EDD7E0AE682EE822805AE -:10955000CD6A951803CDBB92210000394E2346C534 -:10956000CD7995E1E1E1DDE1C1C9DD4E08DD4609D6 -:10957000DD5E06DD5607C3CC86234E2346DDE5D1EE -:10958000C3EE93C5D5E1E1C9CD24850000FDE5DD3D -:109590006E0ADD660BE5DD6E08DD6609E5CDCE956C -:1095A000F1F1E5FDE1010A00097EF60377DD460CE5 -:1095B000FD7010FD361745FD361893FD3619C9FDAF -:1095C000361A94FD361B83FD361C95C3708ADD5E0A -:1095D00002DD5603C3D789CD2485FCFFFDE52104B8 -:1095E0000039EB2145C1010200EDB0AFDD77FCDDB4 -:1095F00077FD010980DD6EFCDD66FD78AC67ED422C -:10960000D28896DD7EFCC631DD77FE213100DD4E4D -:10961000FCDD46FD09E5211600E5E5010300DD5E00 -:10962000FCDD56FDCDCF810E18CD4282DD6E08DD0A -:109630006609A7ED520E3009E50E03DD5EFCDD562E -:10964000FDCDF4810E18CD4282DD6E04DD66051974 -:10965000EBC1CD8895F1F1F1E5FDE1210400394D33 -:1096600044FDE5D1CD1097FDE5DD5E024BDD5603EF -:1096700042211B000946236668C1CD4785DD34FCC5 -:109680002003DD34FDC3F295213000E52E16E5E51B -:109690002E48DD4E08DD4609094D44211800DD5EE7 -:1096A00004DD5605CD2A97F1F1F1E5FDE1015AC13E -:1096B000CD0F97FDE5DD5E024BDD560342211B0019 -:1096C000097E23666FC1CD4785210800E52E16E58A -:1096D000E52E48DD4E08DD4609094D44213000DD08 -:1096E0005E04DD5605CD2A97F1F1F1E5FDE1015C5F -:1096F000C1CD0F97FDE5DD5E024BDD560342211B18 -:10970000000946236668C1CD4785FDE1C33885EB76 -:10971000CD788AFDCB0AE6C9DD4E0ADD460B094D40 -:109720004421D0FFDD5E08DD560919EBC38895CDD5 -:109730001885FDE5D5FDE1DD6E08DD6609E5CDC8DE -:109740008EE13E01DDAE04DDB6052078FD4E10470A -:10975000DD6E08DD6609ED42206AFD7E0AE603281B -:1097600063FD7E0AEE04FD770ADD6E08DD6609E51D -:10977000FD5E11FD5612FD6E11FD66120E170946B3 -:10978000236668010202CD4785E1210000E501035F -:1097900001FDE5D1FD6E17FD6618CD4785E1FDCBD6 -:1097A0000A662820FD4E100600C5FD5E11FD56120A -:1097B000FD6E11FD66120E1709462366680104014D -:1097C000CD4785E1210102DD4E04DD4605A7ED42CE -:1097D000200BDD6E08DD6609E5CDD493E1FDE1C324 -:1097E0003885C5DDE5F5F5D5DDE121020039AF7736 -:1097F00023772B2B2B772377210A00ED4B18C509F4 -:109800007E23666F46236668E5210E00194E2346C7 -:10981000E1A7ED422803CD6092DDCB0A46CAB0989D -:1098200021000039E5CD5692E1210000394E234652 -:10983000235E2356CDD085DD4E08DD4609DD5E066C -:10984000DD5607CD0C86DDCB0A4E2825DDCB0A562A -:10985000281FCD6A95DD6E08DD6609E5DD6E06DD43 -:109860006607E5210400394E2346C5234E234618DA -:1098700023CDBB92DD6E08DD6609E5DD6E06DD6693 -:1098800007E5210400394E2346C5234E2346DDCB90 -:109890000A4E2807DD5E1016001803110000CD2DBA -:1098A00087E1E1E1210000394E2346C5CD7995E1FC -:1098B000E1E1DDE1C1C9CD24850000FDE5DD6E0AF1 -:1098C000DD660BE5DD6E08DD6609E5CDCE95F1F1CF -:1098D000E5FDE1010A00097EF60777DD460CFD7023 -:1098E00010FD36172FFD361897FD3619E2FD361A92 -:1098F00097FD361B83FD361C95C3708ACD1885FDF8 -:10990000E5D5FDE1DD6E08DD6609E5CDC88EE12116 -:109910000102DD4E04DD4605A7ED4220463EFFDD97 -:10992000AE08DDB609203CFDCB0B66E52805010538 -:10993000011803010201FDE5D1FD6E17FD6618CD8A -:109940004785E1FD4E100600C5FD5E11FD5612FD76 -:109950006E11FD66120E170946236668010103CDDC -:109960004785E1210102DD4E04DD4605A7ED4220D9 -:10997000463EFEDDAE08DDB609203CFDCB0B66E5BC -:1099800028050105011803010201FDE5D1FD6E174F -:10999000FD6618CD4785E1FD4E100600C5FD5E1140 -:1099A000FD5612FD6E11FD66120E170946236668FC -:1099B000010203CD4785E1FDE1C33885CD2485FE55 -:1099C000FFFDE5DD6E0ADD660BE5DD6E08DD66098F -:1099D000E5CDCE95F1F1E5FDE1010A0009CBC6DD4B -:1099E000460CFD7010FD3617FCFD361898FD361933 -:1099F0003DFD361A91FD361BFAFD361C9221FF0003 -:109A0000E52E14E52E28E521E4FFCD1897F1F1F1BC -:109A1000DD75FEDD74FF011D0009E5110300CDE3D6 -:109A2000B24D44E1712370015FC1CD609A21FE0007 -:109A3000E52E14E52E28E521C8FFCD1897F1F1F1A8 -:109A4000DD75FEDD74FF011D0009E5110700CDE3A2 -:109A5000B24D44E17123700162C1CD609AC3708A36 -:109A6000DD5EFEDD56FFCD788ADD4EFEDD46FFFD74 -:109A7000E5D1FD6E1BFD661CCD4785C9CD1885FD62 -:109A8000E5D5FDE1DD6E08DD6609E5CD4593E12113 -:109A90000302DD4E04DD4605A7ED422046FDCB0A5C -:109AA0005E28403E08DDAE08DDB609FD5E1DFD56B0 -:109AB0001E200FCD4EB67DB42815CDE89A2B36006A -:109AC000180DCDEE9A233600CDE89ADD46087021B8 -:109AD0000000E5010301FDE5D1FD6E17FD6618CD1F -:109AE0004785E1FDE1C33885FD5E1DFD561ECD4E67 -:109AF000B6FD4E1DFD461E09C9C5DDE5F5F5D5DDF2 -:109B0000E121020039AF7723772B2B2B77237721A5 -:109B10000A00ED4B18C5097E23666F46236668E58B -:109B2000210E00194E2346E1A7ED422803CD609295 -:109B3000DDCB0A46CAB99B21000039E5CD5692E13A -:109B400021000039CD2192E5DD6E06DD6607E521B5 -:109B50000400394E2346C5234E2346DDCB0A4E284A -:109B600007DD5E1016001803110000CD2D87E1E11E -:109B7000E1DDCB0A7EDD4E08DD4609DD5E06DD5601 -:109B8000072005CDCC861803CD4C86DD5E1DDD5645 -:109B90001E210A00ED4B18C5094623666801040022 -:109BA0000946236668CD969268603946236668192F -:109BB0004D4421020039CDCA92E1E1DDE1C1C9DDA8 -:109BC000E5C5D5210C00394E2346C52B2B2B4E2342 -:109BD00046C52B2B2B4E2346C5210800394E234664 -:109BE000CD8895F1F1F1E5DDE1010A0009CBDE0157 -:109BF00069C1DDE5D1CD788ADD3619F9DD361A9AED -:109C0000DD36177CDD36189AC33D93C5D5E1E1C931 -:109C1000C5DDE5F5F5D5DDE121020039AF77237724 -:109C20002B2B2B772377210A00ED4B18C5097E23B8 -:109C3000666F46236668E5210E00194E2346E1A7AC -:109C4000ED422803CD6092DDCB0A462815210000A5 -:109C500039E5CD5692E1210000394E2346C5CD7934 -:109C600095E1E1E1DDE1C1C9CD24850000FDE5DD3F -:109C70006E0ADD660BE5DD6E08DD6609E5CDCE9585 -:109C8000F1F1E5FDE1011D0009DD4E0C71DD460D30 -:109C90002370FD360A01FD360B00FD36170BFD362D -:109CA000189CFD361910FD361A9CFD361B83FD36B7 -:109CB0001C95C3708ACD24859EFFFDE5212300DD20 -:109CC0004E02DD46030946DD709E2366DD749F2A41 -:109CD0001AC57DB42066110800CDE3B2221AC50171 -:109CE000060009E5111600CDE3B24D44E171237081 -:109CF000210600ED4B1AC5095623666A1114001996 -:109D0000AF772377210600ED4B1AC5097E23666FD6 -:109D100072210600ED4B1AC5095623666A110E0022 -:109D200019AF772377210600ED4B1AC50946236644 -:109D3000680110000977237723772377DD6E9EDD96 -:109D4000669F23233E1023AE2BB6204B210600DD59 -:109D50004E9EDD469F096E67E52A1AC5C1712370C4 -:109D60002A1AC52323E5CD2FA2E171237021040017 -:109D7000ED4B1AC509E5210600DD5E9EDD569F19F3 -:109D80005E2356234E2346EB3E10CD43A2E1CDE5A4 -:109D9000A1CD22A2CDF890DD6E9EDD669F232346E5 -:109DA0002366680110903E80AC67ED42DAC39EDD09 -:109DB0006E9EDD669F23234E2346211210CD5882CE -:109DC000DAC39E210600ED4B1AC50946236668DDFD -:109DD00075A2DD74A3211400DD4EA2DD46A3097E29 -:109DE00023B6280A211400095623666A18E12104C3 -:109DF00000DD4E9EDD469F094E2346211100DD5EAB -:109E000002DD5603195E2356CD958BDD75A0DD74FA -:109E1000A1011D00094E2346DD5E02DD5603CD780B -:109E20008A0169C1DD5EA0DD56A1CD788ADD5EA024 -:109E30004BDD56A142211900CD2991DD6E9EDD66D4 -:109E40009F23235E2356CDBD8410100300B59E557D -:109E50009E6D9E8D9E211D00DD4E02DD4603094E46 -:109E60002346DD5EA2DD56A3CD31B61848210E0093 -:109E7000DD4EA2DD46A309E5211D00DD4E02DD46D3 -:109E800003095E2356CD18AC4D44E11825211D0071 -:109E9000DD4E02DD4603095E2356CD29AC7C079FCB -:109EA0004F41E5211000DD5EA2DD56A319D17323D9 -:109EB0007223712370DD5E024BDD560342211900CF -:109EC000CD2991DD6E9EDD669F23234623666801C2 -:109ED0001E10A7ED42C2FFA0AFDD77ACDD77ADDD90 -:109EE00077AEDD77AF210600ED4B1AC50946236634 -:109EF00068E5FDE1210100E5217EC1E5CD89C0F1E4 -:109F0000F1DD75A0DD74A121080039E5210000E52F -:109F1000DD6EA0DD66A1E5CD3BC0F1F1F1DD36A837 -:109F200060DD36A90021080039E5210100E5DD6E7C -:109F3000A0DD66A1E5CD3BC0F1F1F1FDE5E17DB429 -:109F4000CA20A0FD7E0EFDB60FCA14A03E01FDAED4 -:109F50000EFDB60F20296F67E52E64E5CD4AA2C538 -:109F6000E56F67E52E64E5CD59A2C5E5FDE5218BDA -:109F7000C1E521200039E5CD57B5210E0018682133 -:109F80000000E52E64E5FD6E0EFD660F7C079F4F19 -:109F900041C5E5CD68A2CD8383C5E5210000E52E4E -:109FA00064E5FD6E0EFD660F7C079F4F41C5E5CD54 -:109FB00068A2CD2E83C5E5210000E52E64E5CD4ADB -:109FC000A2C5E5210000E52E64E5CD59A2C5E5FD59 -:109FD0006E0EFD660FE5FDE521AEC1E5212A0039D3 -:109FE000E5CD57B521180039F921100039E5FD5E9E -:109FF0000EFD560F7A079F4F41C5D5CD68A2EBE104 -:10A00000CDA48421140039EBCD4EB6E521160039DC -:10A01000CDDAA1F1FD6E14FD6615E5FDE1C33B9FB0 -:10A020006F67E52E64E5DD4EAEDD46AFDD6EACDD7F -:10A0300066ADCD8383C5E56F67E52E64E5DD4EAE85 -:10A04000DD46AFDD6EACDD66ADCD2E83C5E52169A5 -:10A05000C1E5E521EEC1E521220039E5CD57B52165 -:10A06000100039F921140039EBCD4EB6E521160068 -:10A0700039CDDAA1F1DD5EA0DD56A1CD09C0210602 -:10A0800000ED4B1AC50946236668E5FDE17DB4285D -:10A090000EFDE5D1CD77AFFD6E14FD661518EB21F1 -:10A0A0000600ED4B1AC509E5111600CDE3B2EBE150 -:10A0B000732372210600ED4B1AC5095623666A11F7 -:10A0C000140019AF772377210600ED4B1AC5097EDE -:10A0D00023666F72210600ED4B1AC5095623666A86 -:10A0E000110E0019AF772377210600ED4B1AC50931 -:10A0F000462366680110000977237723772377DDED -:10A100006E9EDD669F232346236668011F10A7ED20 -:10A1100042C2D5A1210600ED4B1AC5094623666847 -:10A12000DD75A0DD74A1211400DD4EA0DD46A1097E -:10A130007E23B6280A211400095623666A18E121F5 -:10A140000600DD4E9EDD469F096E67E52A1AC5C1F1 -:10A150007123702A1AC52323E5CD2FA2E171237044 -:10A16000210400ED4B1AC509E5210600DD5E9EDDE8 -:10A17000569F195E2356234E2346EB3E10CD43A235 -:10A18000E1CDE5A1CD22A2CDF890211400DD4EA0B5 -:10A19000DD46A109E5111600CDE3B2EBE1732372B0 -:10A1A000211400095623666ADD75A0DD74A101142F -:10A1B0000009AF772377DD6EA0DD66A170210E0068 -:10A1C000DD4EA0DD46A10977237721100009772312 -:10A1D0007723772377FDE1C338854D44DD5EA0DD2D -:10A1E00056A1C309C17123702A1AC54E23462111F5 -:10A1F00000DD5E02DD5603195E2356CD958BEB0123 -:10A200006AC1CD788A2A1AC523234E23462111001C -:10A21000DD5E02DD5603195E2356CD958BEB017290 -:10A22000C1C9CD788A210400ED5B1AC5194EC92138 -:10A230000600DD4E9EDD469F095E2356234E2346D3 -:10A24000EB3E08CD748206004DC9FD4E12FD46134B -:10A25000FD6E10FD6611C38383FD4E12FD4613FD96 -:10A260006E10FD6611C32E83FD4E12FD4613FD6E6A -:10A2700010FD6611C38282C5D5210600394E2346E2 -:10A28000C5210400394E2346CDC88EE1E1E1C9CD98 -:10A290002485CEFFFDE5DD36D800210000E5C5CDE3 -:10A2A00089C0F1F1DD75D4DD74D5DD36F02BDD36F6 -:10A2B000F100DD36F21ADD36F300DD36F400DD7E26 -:10A2C000D8FE732018DD6ED9DD66DADD75F0DD7439 -:10A2D000F1DD6EDBDD66DCDD75F2DD74F3DD7ED88D -:10A2E000FE422807DD7ED8FE4D2037DD4EDD06001C -:10A2F000C5CDBCA5D5DD4EDBDD5EF0DD56F1CDC5AF -:10A30000A5D5CDD9A5D5CDCCA5C1CD8895F1F1F1F7 -:10A31000E5FDE1DD7ED8FE4D2004FDCB0AF6DD36FD -:10A32000F401DD7ED8FE54202CDD4EDD0600C5CDC7 -:10A33000BCA5D5DD4EDBDD5EF0DD56F1CDC5A5D586 -:10A34000CDD9A5D5CDCCA5C1CDB698F1F1F1E5FD1E -:10A35000E1DD36F401DD7ED8FE44202CDD4EDD0645 -:10A3600000C5CDBCA5D5DD4EDBDD5EF0DD56F1CD03 -:10A37000C5A5D5CDD9A5D5CDCCA5C1CDBF9BF1F176 -:10A38000F1E5FDE1DD36F401DD7ED8FE4C202F2124 -:10A390000C003901120009E5CDBCA5D5DD4EDBDD91 -:10A3A0005EF0DD56F1CDC5A5D5CDD9A5D5CDCCA5D1 -:10A3B000C1CD689CF1F1F1E5FDE1DD36F401DD7E12 -:10A3C000D8FE41204C212300DD4E02DD460309E585 -:10A3D000212B0039EBE1732372DD6EDEDD66DFDDFC -:10A3E00075F7DD74F8DD6EE0DD66E1DD75F9DD74CD -:10A3F000FA211600394E2346235E2356DD71FBDD1C -:10A4000070FCDD73FDDD72FEDD5E02DD5603CDE521 -:10A41000A5DD7ED8FE53206C210C00394D44DD5E55 -:10A42000D4DD56D5CDDAA8212300DD4E02DD46036A -:10A4300009E5110400CDE3B2EBE17323722123009F -:10A440000956DD72F52366DD74F621210009360414 -:10A450002336006ADD66F62323E5210800ED4B185C -:10A46000C5095E2356E1732372210600ED4B18C522 -:10A470000946236668E5DD6EF5DD66F6C171237079 -:10A48000DD36F400AFDDB6F4CA7DA5DD7EDEDDB6D7 -:10A49000DF2865FDCB0AEEFD36210AFD36220011CC -:10A4A0000A00CDE3B2FD7523FD7424FD6E23DD7536 -:10A4B000D0FD6624DD74D136E52336A5DD6ED0DD12 -:10A4C00066D12323DD4EDE71DD46DF2370210400DB -:10A4D000DD4ED0DD46D109DD5EE073DD56E123724D -:10A4E00021060009E5211800395E2356234E234634 -:10A4F000E173237223712370DD7EE6DDB6E7280C5D -:10A50000DD6EE6FD750ADD66E7FD740BDD6EE8FDC8 -:10A51000750EDD66E9FD740FDD6EEAFD751DDD7EED -:10A52000EBE60FFD771EFD7E1DFDB61E20161114F5 -:10A5300000CDE3B2FD751DFD741EFD6E1DFD661E92 -:10A5400036001804FDCB0BF6DD7EEB2E004DE6F059 -:10A55000472610ED423010DD6EEADD7EEBE60F6738 -:10A5600023FD751FFD7420FDE5DD5E024BDD560306 -:10A5700042211B000946236668C1CD47852114008E -:10A58000E52E0E394D44DD5ED4DD56D5CDAFC0F19C -:10A590003E14ADB4CABAA2DD5ED4DD56D5CD09C035 -:10A5A000DD5E02DD5603CD178EDD5E024BDD560308 -:10A5B00042211900CD2991FDE1C33885DD4EDCDD56 -:10A5C0005EF2DD56F3CD42821B1B1BC9DD5ED95006 -:10A5D000DD4EF0DD46F1C34282DD4EDADD5EF2DDB6 -:10A5E00056F3C34282CD2485EEFFFDE5DD6E02DD2C -:10A5F0006603E5FDE121060039EB2147C1010900B1 -:10A60000EDB0FD6E23DD75EEFD6624DD74EF2323D2 -:10A610003E01AE23B62011C5010104FDE5D1FD6E5A -:10A6200017FD6618CD4785E1DD6EEEDD66EF23236D -:10A6300046236668CB853E02ADB4C23EA76F67E590 -:10A64000E5010100FD5E11FD5612CDB38DE1E1FD86 -:10A650006E11FD6612010800094E2346C5FD6E11FC -:10A66000FD6612010600094E2346C501000059503F -:10A67000CD0293F1F1DD75F0DD74F1010A000936C8 -:10A68000032370DD6EEEDD66EF2323CB46280C69D5 -:10A6900060DD4EF0DD46F10923CBEE211700DD4EE3 -:10A6A000F0DD46F10936772336A22119000936DBA1 -:10A6B000233692210600DD5EEEDD56EF195EEBDDFE -:10A6C00075F2210600DD4EEEDD46EF095E235623CE -:10A6D0004E2346EB3E08CD7482DD75F3210600DD86 -:10A6E0004EEEDD46EF095E2356234E2346EB3E1029 -:10A6F000CD7482DD75F4210600DD4EEEDD46EF09F6 -:10A700005E2356234E2346EB3E18CD7482DD75F54D -:10A71000210600394D44DD5EF0DD56F1CD8FA2DD1E -:10A720004EF0DD46F1C5FD5E11FD5612FD6E11FDC8 -:10A730006612011B000946236668C1CD4785DD6EA0 -:10A74000EEDD66EF23233E04AE23B6C2CFA821017F -:10A7500000E5FD6E11FD66120108000946236668DA -:10A7600001F6FF09E5FD6E11FD66120106000946BE -:10A7700023666801F6FF09E50105005950CDBC9933 -:10A78000F1F1F1DD75F0DD74F1010A000936032302 -:10A790003610210E00DD4EF0DD46F109363023364D -:10A7A00000AFDD77FDDD77FE210400DD4EEEDD46F6 -:10A7B000EF095E2356060CCDB7814B42DD6EFDDD01 -:10A7C00066FECD588230043E011801AFE60FCA6222 -:10A7D000A8210400DD4EEEDD46EF0946237E68E643 -:10A7E0000F67DD4EFDDD46FE0929E5210800ED5B22 -:10A7F00018C5195E2356E1192B2B5E2356D521105F -:10A8000000E52E06DD5EF0DD56F1196E260001F042 -:10A81000FF09E5DD6EFDDD66FE29294D44290901AC -:10A820001400094D44110800CD689CF1F1F1DD756B -:10A83000FBDD74FC010E000936302370DD4EFBDDBC -:10A8400046FCC5DD5EF04BDD56F142211B0009469A -:10A85000236668C1CD4785DD34FD2003DD34FEC3AA -:10A86000A8A70111C2DD5EF0DD56F1CD788A01FFA7 -:10A8700000DD5EF0DD56F1CD958B010E000936301E -:10A8800023700EFEDD5EF0DD56F1CD958BEBCDCD68 -:10A890008BDD4EF0DD46F1C5FD5E11FD5612FD6EFD -:10A8A00011FD6612011B000946236668C1CD47856C -:10A8B000210000E5FD5E11FD5612FD6E11FD6612D0 -:10A8C0000117000946236668010301CD4785E1FDB4 -:10A8D000E5D1CDB59CFDE1C33885CD2485F8FFFDDC -:10A8E000E5030ADD77FE030ADD77FF0369604EDDCD -:10A8F00071FC2346DD70FDDD6EFE6729EBCDE3B212 -:10A90000DD75FADD74FB5950CD0489C54D44DD5E1B -:10A9100002DD5603CDAFC0F1110000AFDD77F8DDE9 -:10A9200077F9DD4EFCDD46FD6B62CD58823035CDCA -:10A93000A0A9303023DD75F8DD74F92B29DD4EFA3E -:10A94000DD46FB09E5FDE5E1194D44E1712370FDAC -:10A95000E5E1197EB728031318F56B6213FDE5C115 -:10A96000097718BECDA0A9301329DD4EFADD46FBCC -:10A9700009E5FDE5E1194D44E1712370210600ED83 -:10A980004B18C509FDE5C1712370210800ED4B1876 -:10A99000C509DD4EFA71DD46FB2370FDE1C3388544 -:10A9A000DD4EFEDD46FFDD6EF8DD66F9C35882C57B -:10A9B000D5111000CDE3B22218C5210000221AC51E -:10A9C0002A18C5AF772377210400ED4B18C5097706 -:10A9D0002377210A00ED4B18C509772377210C0056 -:10A9E000ED4B18C509772377210800ED4B18C509F1 -:10A9F000772377210600ED4B18C509772377CD48DB -:10AA000085210000E5E5219F89E501B68911300027 -:10AA1000CD7588E1E1E1210000E5E5219F89E501AF -:10AA2000C189113100CD7588E1E1E1210000E5E542 -:10AA300021AD89E501CC89113200CD7588E1E1E1D4 -:10AA4000210E00ED4B18C509E5118000D55AD54BF4 -:10AA500042CD0293F1F14D44E1712370210E00EDDE -:10AA60004B18C5095623666A110A0019360123726C -:10AA7000210E00ED4B18C5095623666A11170019FF -:10AA800036772336A2210E00ED4B18C50946236602 -:10AA9000680119000936DB233692D1C1C9C5D52119 -:10AAA0000E00ED4B18C5095E2356CDCD8BCD7F87AB -:10AAB000CDC285D1C1C9CD2485FEFF011DC2210EA5 -:10AAC00000ED5B18C5195E2356CD8FA2210100E56C -:10AAD0002339CD2DABF13E01ADB428F0210400EDBA -:10AAE0004B18C5097E23B62041210100E52339CD4D -:10AAF0002DABF13E01ADB420E3DDB6FE28DE4F06FE -:10AB000000C5210E00ED5B18C5195E2356210E000D -:10AB1000ED4B18C5094623666801170009462366F0 -:10AB200068010100CD4785E118B2C338854D442A3C -:10AB300018C523235E2356C3AFC0CDAFA9CDB6AA97 -:10AB4000C39DAACD2485FCFF2AA8C32BDD75FCDD9F -:10AB500074FD21FFFF22A8C32100002216C5DDCB12 -:10AB6000FD7E2043DD6EFCDD66FD2929011CC50943 -:10AB700046236668DD75FEDD74FFDD6EFCDD66FD77 -:10AB80002929011EC5094E2346DD5E02DD5603DD7F -:10AB90006EFEDD66FFCD4785DD6EFCDD66FD2BDDDF -:10ABA00075FCDD74FD18B7C33885CD18852AA8C398 -:10ABB000CB7C200E010A802AA8C33E80AC67ED4200 -:10ABC000380B210C002214C521FFFF183C2143AB98 -:10ABD0002216C5DD7E02DDB603282B2AA8C329294B -:10ABE000011CC509DD4E02DD46037123702AA8C38E -:10ABF0002929011EC509DD4E04DD46057123702A91 -:10AC0000A8C32322A8C3210000C33885CD1885011D -:10AC10000000CDAAABC33885CD1885210A00E50117 -:10AC20000000CD85B6F1C33885CD1885210A00E531 -:10AC3000010000CD85B6F1C33F85CD1885160021F2 -:10AC4000AAC3197EE604280EDD7E02EE206FDD7EAB -:10AC500003EE00671806DD6E02DD6603C33885CD9E -:10AC60001885160021AAC3197EE602280EDD7E0291 -:10AC7000EE206FDD7E03EE00671806DD6E02DD66F6 -:10AC800003C33885CD2485F8FFAFDD77FEDD77FF80 -:10AC9000DD7E02DDB603206411C4C4CD84AC7DB476 -:10ACA000201411DCC4CD84AC7DB4200A11F4C4CDD1 -:10ACB00084AC7DB4280621FFFFC376AE2AC2C4DD72 -:10ACC0007502DD7403DD7E02DDB6032829DD5E0238 -:10ACD000DD5603CD84AC7DB4280621FFFFC376AEDC -:10ACE000211600DD4E02DD4603095623666ADD7536 -:10ACF00002DD740318CF210000C376AE210C00DD05 -:10AD00004E02DD4603097EE680CAD1AD210600DD94 -:10AD10004E02DD4603095E23560A6F030A67A7ED5C -:10AD200052DD75FADD74FB7DB4CACFAD210600DDBE -:10AD30004E02DD46030946236668DD75F8DD74F9C9 -:10AD4000DD6EFADD66FBE5DD4EF8DD46F9210A0031 -:10AD5000DD5E02DD5603195E2356CD09C1F1DD75B6 -:10AD6000FCDD74FD4D44210000CD5882301E2100D1 -:10AD700000397EDD86FC77237EDD8EFD77210200A3 -:10AD8000397EDD96FC77237EDD9EFD77DD4EFCDD92 -:10AD900046FD210000CD588238A6DD7EFCDDA6FDF3 -:10ADA0003C20092A14C53E04ADB42894DD7EFADDAA -:10ADB000B6FB281B210C00DD4E02DD4603097EF6A2 -:10ADC0000077237EF60277DD36FEFFDD36FFFF18C3 -:10ADD00065210C00DD4E02DD4603097EE640285663 -:10ADE000DD6E02DD66034E2346DD6E02DD66032363 -:10ADF000235623666AA7ED42DD75FADD74FB4D44E8 -:10AE0000210000CD5882302E210100E5DD4EFADD13 -:10AE100046FBA7210000ED427C079F4F41C5E5217D -:10AE20000A00DD4E02DD4603095E2356CD61C0F106 -:10AE3000F1F1CB782800210C00DD4E02DD4603093C -:10AE40007EE63F77237EE6FA7769602323E52104D7 -:10AE500000DD4E02DD460309E521060009562366A2 -:10AE60006AE56960C1712370E1712370E17123703B -:10AE7000DD6EFEDD66FFC33885CD2485FEFFCDED9A -:10AE8000B5210C000946236668DD75FEDD74FF7D83 -:10AE9000E6402813DD5E04DD5605CD84AC7DB42884 -:10AEA0000621FFFFC374AFDD7EFEE6206FDD7EFF6F -:10AEB000E603673E20ADB4280621FFFFC374AF212F -:10AEC0000800DD4E04DD4605095E23560A6F030ABD -:10AED00067A7ED523813DD5E04DD5605CD84AC7DE9 -:10AEE000B4280621FFFFC374AFDD6E04DD66054E96 -:10AEF000234603702B710B6960DD460270210C0044 -:10AF0000DD4E04DD4605097EF68077237EF6007768 -:10AF10003E0ADDAE02DDB6032007DD7EFEE601203F -:10AF200007DD7EFEE6022812DD5E04DD5605CD84D7 -:10AF3000AC7DB4280521FFFF183ADD7EFEE603282C -:10AF400018210400DD4E04DD460509E5210600094F -:10AF50004E2346E17123701816210400DD4E04DDF6 -:10AF6000460509E5210800094E2346E1712370DDFD -:10AF70006E022600C33885CD2485FCFF21FCFFDD51 -:10AF80004E02DD460309DD75FEDD74FF23237E23BB -:10AF9000B6280621FFFFC354B02A48C5DD75FCDD85 -:10AFA00074FDDD4EFCDD46FDDD6EFEDD66FFA7EDCA -:10AFB000423817DD6EFCDD66FD232346236668DD1F -:10AFC0004EFEDD46FFA7ED423053DD6EFCDD66FD33 -:10AFD00023234E2346DD6EFCDD66FDA7ED423829B6 -:10AFE000DD4EFEDD46FFDD6EFCDD66FDA7ED423881 -:10AFF00016DD6EFCDD66FD23234E2346DD6EFEDD91 -:10B0000066FFA7ED4230021814DD6EFCDD66FD23FD -:10B010002346236668DD75FCDD74FD1885DD6EFE54 -:10B02000DD66FF2323E5DD4EFCDD46FD030369609D -:10B030004E2346E1712370DD6EFCDD66FD2323DDCA -:10B040004EFEDD46FF712370DD6EFCDD66FD22489D -:10B05000C5210000C33885CD2485E2FF21000039D9 -:10B060004D44DD5E02DD5603CD29C07DA43C28128F -:10B07000DD7EE6E6006FDD7EE7E6F0673E20ACB5FC -:10B0800028052100001803210100C33885CD24853F -:10B09000D6FFDD6E08DD6609DD75F8DD74F9210087 -:10B0A0000039DD75FADD74FB212C0039DD75FCDD1E -:10B0B00074FD213800397ED60A77DD4E0ADD460B55 -:10B0C000212400CD58823811010280DD6E0ADD6630 -:10B0D0000B3E80AC67ED423003C310B2DD6EFCDD89 -:10B0E00066FD23237EE60047237EE680B02831AF4D -:10B0F000DDB60C282BDD6EF8DD66F923DD75F8DD95 -:10B1000074F92B362DDD4E04DD4605DD6E02DD665D -:10B1100003CD6984DD7502DD7403DD7104DD700526 -:10B12000DD6EFCDD66FD23237E23B62002184EDD96 -:10B130006E0ADD660B7C079F4F41C5E5DD4E04DDE1 -:10B140004605DD6E02DD6603CD5E83E5DD6EFADD6C -:10B1500066FB23DD75FADD74FB2BC171212C0039F0 -:10B16000DD5E0ADD560B7A079F4F41CD8B84DD6E85 -:10B17000FCDD66FD23237E23B620B41830DD5E029D -:10B18000DD5603DD4E0ADD460BCDEB81DD6EFADDCB -:10B1900066FB23DD75FADD74FB2B73DD5E02DD5685 -:10B1A00003CDC181DD6EFCDD66FD732372DD6EFCB7 -:10B1B000DD66FD7E23B620C5210000394D44DD6EDD -:10B1C000FADD66FBA7ED42DD75FFAFDDB6FF284077 -:10B1D000DD6EFADD66FB2BDD75FADD74FB46DD7096 -:10B1E000FE78FE0A300ADD7EFEC630DD77FE1809E5 -:10B1F000DD7EFEDD860EDD77FEDD6EF8DD66F92391 -:10B20000DD75F8DD74F92BDD46FE70DD35FF18BA0B -:10B21000DD6EF8DD66F93600DD6E08DD6609C338DF -:10B2200085CD2485FEFFDD36FE41DDCB097E281667 -:10B23000DD36FE61DD4E08DD4609A7210000ED4246 -:10B24000DD7508DD7409DD6EFEE50E01C5DD6E08F5 -:10B25000DD6609E5DD6E04DD6605E53E0ADDAE0866 -:10B26000DDB609200DDD5E02DD56037A079F4F41F2 -:10B270001809DD5E02DD5603010000CD8DB0F1F14D -:10B28000F1F1C33885CD2485FEFFDD36FE41DDCBEF -:10B290000B7E2816DD36FE61DD4E0ADD460BA7214A -:10B2A0000000ED42DD750ADD740BDD6EFEE53E0A41 -:10B2B000DDAE0ADDB60B20043E011801AF4FC5DD3F -:10B2C0006E0ADD660BE5DD6E08DD6609E5DD4E0420 -:10B2D000DD4605DD5E02DD5603CD8DB0F1F1F1F105 -:10B2E000C33885CD2485FAFFDD6E02DD6603232396 -:10B2F00023CB3CCB1DCB3CCB1D23DD75FEDD74FF8A -:10B300002A48C5DD75FCDD74FD7DB42011DD36FCF9 -:10B3100044DD36FDC52144C52246C52248C5DD6E43 -:10B32000FCDD66FD232346236668DD75FADD74FBCC -:10B33000DD6EFADD66FB232346236668DD4EFADD0B -:10B3400046FBA7ED42CAD3B3DD6EFADD66FB4623AA -:10B3500066682929DD4EFADD46FB09E503036960CD -:10B360004E2346E1A7ED42206ADD6EFADD66FB233F -:10B370002346236668ED4B48C5A7ED422015DD6ED8 -:10B38000FADD66FB2323462366682323462366688B -:10B390002248C5DD6EFADD66FB23237E23666F4EF1 -:10B3A0002346DD6EFADD66FB7E8177237E8877DDBE -:10B3B0006EFADD66FB2323E5DD4EFADD46FB030373 -:10B3C00069604E2346030369604E2346E171237092 -:10B3D000C330B3DD6EFADD66FB46236668DD4EFEE4 -:10B3E000DD46FFA7ED42DA91B4DD6EFADD66FB467D -:10B3F000236668DD4EFEDD46FFA7ED42201CDD6EB4 -:10B40000FCDD66FD2323E5DD4EFADD46FB03036923 -:10B41000604E2346E17123701856DD6EFEDD66FF37 -:10B420002929DD4EFADD46FB092248C5DD6EFCDD2B -:10B4300066FD2323ED5B48C57323722A48C5232389 -:10B44000E5030369604E2346E1712370DD6EFADD8A -:10B4500066FB46236668DD4EFEDD46FFA7ED42E54E -:10B460002A48C5D1732372DD6EFADD66FB71237045 -:10B47000DD6EFCDD66FD2248C5DD6EFADD66FB2370 -:10B4800023AF772377210400DD4EFADD46FB091850 -:10B49000222A48C5DD4EFADD46FBA7ED42204511C4 -:10B4A0000004CDC9C0DD75FADD74FB7DA43C200627 -:10B4B000210000C33885DD6EFADD66FB36002336D9 -:10B4C00001DD6EFADD66FB2323AF772377210400CD -:10B4D000DD4EFADD46FB09EBCD77AF2A48C5DD75B9 -:10B4E000FADD74FBDD6EFADD66FBDD75FCDD74FDF7 -:10B4F000DD6EFADD66FB232346236668DD75FADD23 -:10B5000074FBC330B3CD2485FCFFDD6E02DD660322 -:10B51000DD75FCDD74FDDD71FEDD70FFDD6E08DDC7 -:10B5200066092BDD7508DD7409237DB42820DD6EE6 -:10B53000FEDD66FF23DD75FEDD74FF2B46DD6EFC50 -:10B54000DD66FD23DD75FCDD74FD2B7018CEDD6E30 -:10B5500002DD6603C33885CD2485FCFF210E00394A -:10B5600001020009DD75FCDD74FDDD4E08DD4609D4 -:10B57000ED43AAC4E5DD4E0ADD460B11AAC4CDC6D3 -:10B58000BAF1DD75FEDD74FF2AAAC43600DD6EFE59 -:10B59000DD66FFC33885CD2485FEFF2AC2C4DD7574 -:10B5A000FEDD74FF11DCC4CD84AC11F4C4CD84ACD9 -:10B5B000DD7EFEDDB6FF2832DD5EFEDD56FFCD848A -:10B5C000AC210A00DD4EFEDD46FF095E2356CD09A3 -:10B5D000C0210A000936FF2336FF21160009562331 -:10B5E000666ADD75FEDD74FF18C6C33885D52A0C82 -:10B5F000C57DB420021822210000220CC5110100D3 -:10B60000CD57B07DB4280C21E8C47EF60177237EA7 -:10B61000F600771196B5CD0CACD1C9CD1885D5CD36 -:10B620004EB6D119EBCD31B6DD6E02DD6603C338FF -:10B6300085CD18855950CD4EB623E5DD4E04DD4647 -:10B6400005DD5E02DD5603CD05B5F1C33885CD2499 -:10B6500085FEFFDD6E02DD6603DD75FEDD74FFDD58 -:10B660006EFEDD66FFAFB6280ADD34FE2003DD3452 -:10B67000FF18ECDD4E02DD4603DD6EFEDD66FFA742 -:10B68000ED42C33885CD2485F8FFAFDD77FCDD774B -:10B69000FDDD6E02DD6603DD75FEDD74FFDD6EFE31 -:10B6A000DD66FF4E060021AAC3097EE610280ADDEA -:10B6B00034FE2003DD34FF18E4DD6EFEDD66FF7E20 -:10B6C000FE2D2012DD34FC2003DD34FDDD34FE20B0 -:10B6D00003DD34FF1813DD6EFEDD66FF7EFE2B20DA -:10B6E00008DD34FE2003DD34FFDD6E08DD6609E58C -:10B6F000DD4E04DD4605DD5EFEDD56FFCDAEB7F165 -:10B70000DD75F8DD74F9DD71FADD70FBDD7EFCDDE1 -:10B71000B6FD2805CD6984180CDD4EFADD46FBDD4B -:10B720006EF8DD66F9C33F85CD2485FEFFDD36FE6C -:10B73000FFDD36FFFFDD5E02160021AAC3197EE69B -:10B7400008280FDD4E02060021D0FF09DD75FEDD61 -:10B7500074FFDD4E02060021AAC3097EE604280F0D -:10B76000DD4E02060021A9FF09DD75FEDD74FFDD57 -:10B770004E02060021AAC3097EE602280FDD4E0212 -:10B78000060021B0FF09DD75FEDD74FFDD4E04DD2E -:10B790004605DD6EFEDD66FFCD58823808DD36FEDB -:10B7A000FFDD36FFFFDD6EFEDD66FFC33885CD248D -:10B7B00085FAFF110280DD6E08DD66093E80AC6708 -:10B7C000ED52380EDD4E08DD4609212400CD5882A9 -:10B7D0003007AFDD7708DD7709DD6E02DD66034EE9 -:10B7E000060021AAC3097EE610280ADD34022003E0 -:10B7F000DD340318E4DD6E02DD66037EFE2B200AD5 -:10B80000DD34022003DD3403186DDD7E08DDB6096A -:10B810002065DD6E02DD66037EFE30205ADD6E029D -:10B82000DD6603237EEE20FE582017DD360810DD8E -:10B83000360900210800397EC60277237ECE0077C4 -:10B840001835DD6E02DD6603237EEE20FE422017F2 -:10B85000DD360802DD360900210800397EC6027790 -:10B86000237ECE00771810DD360808DD360900DDAE -:10B8700034022003DD3403DD7E08DDB6092008DD57 -:10B8800036080ADD360900AFDD77FADD77FBDD77B4 -:10B89000FCDD77FDDD4E08DD4609DD6E02DD660369 -:10B8A0005ECD28B7DD75FEDD74FF7DA43C282E211A -:10B8B000000039DD5E08DD56097A079F4F41CD7BD8 -:10B8C0008421000039DD5EFEDD56FF7A079F4F417F -:10B8D000CDA484DD34022003DD340318B7DD7E04FB -:10B8E000DDB6052811DD6E02DD6603E5DD6E04DDE3 -:10B8F0006605C1712370DD4EFCDD46FDDD6EFADDAF -:10B9000066FBC33F85CD2485FEFFDD36FE41DDCBE2 -:10B910000B7E2816DD36FE61DD4E0ADD460BA721C3 -:10B920000000ED42DD750ADD740BDD6EFEE50E00F4 -:10B93000C5DD6E0ADD660BE5DD6E08DD6609E5DD59 -:10B940004E04DD4605DD5E02DD5603CD8DB0F1F11E -:10B95000F1F1C33885CD2485FAFFAFDD77FBDD77C4 -:10B96000FC5950CD4EB6DD75FDDD74FEDD6E04DD97 -:10B9700066057EFE2D2014DD6E04DD660523DD7573 -:10B9800004DD74052B46DD700A180EAFDDB60A28FB -:10B9900008DD34FD2003DD34FEDD7E10DDA6113C24 -:10B9A000281DDD4EFDDD46FEDD6E10DD6611CD5835 -:10B9B00082300CDD6E10DD6611DD75FDDD74FEDD9F -:10B9C0004EFDDD46FEDD6E0EDD660FCD5882300C7D -:10B9D000DD6EFDDD66FEDD750EDD740FDD6E0EDDE8 -:10B9E000660FDD75FBDD74FC211400397EDD96FDEC -:10B9F00077237EDD9EFE77DD7E0EDDB60F2009DD2E -:10BA00007EFDDDB6FECABDBADD7E08DDB609203496 -:10BA1000DD7E0EDDB60F282CDD7EFDDDB6FE280FA7 -:10BA2000AFDDB60A2809DD7E0CFE3020021823DDCA -:10BA3000460CDD70FADD6E0EDD660F2BDD750EDD5A -:10BA4000740F184EDD7EFDDDB6FE2833AFDDB60A7D -:10BA5000280CDD460ADD70FADD360A001812DD6EAC -:10BA600004DD660523DD7504DD74052B46DD70FA03 -:10BA7000DD6EFDDD66FE2BDD75FDDD74FE1813DD6C -:10BA8000460CDD70FADD6E0EDD660F2BDD750EDD0A -:10BA9000740FDD4E02DD4603DD5EFA1600CD79AE91 -:10BAA000DD7EFAFE0A20133E01DDAE12DDB6132064 -:10BAB00009DD5E02DD5603CD84ACC3F7B9DD6EFB54 -:10BAC000DD66FCC33885CD2485A2FFAFDD77B0DD10 -:10BAD00077B1210C00DD5E02DD5603197EE6034FCF -:10BAE000237EE60047DD71FDDD70FE210C00197E2E -:10BAF000E6FC77237EE6FF77DD6E04DD6605AFB6F4 -:10BB0000CAA8BFDD6E04DD66057EFE25C265BF3EA8 -:10BB100002DDAEFDDDB6FE2009DD5E02DD5603CDA1 -:10BB200084ACAFDD77A4DD77A5DD36B300DD36B2BA -:10BB300020DD36ACFFDD36ADFFAFDD77AADD77ABBC -:10BB4000DD36A8FFDD36A9FFDD36AE0ADD36AF00F3 -:10BB5000211B0039DD75B5DD74B6DD36B400AFDD0F -:10BB600077A6DD77A7AFDD77A2DD77A3DD340420EC -:10BB700003DD3405DD6E04DD66057EFE30380BDD49 -:10BB80006E04DD66053E39BE3002186521000039BD -:10BB9000010A00CD6A82DD6E04DD66054E060021D5 -:10BBA000D0FF094D44210000397E8177237E8877BC -:10BBB000DD7EAADDB6AB280EDD6EA2DD66A3DD75E7 -:10BBC000A8DD74A91821DD7EA2DDB6A3200DDD7EDF -:10BBD000B2FE202006DD36B230188ADD6EA2DD66A8 -:10BBE000A3DD75ACDD74ADDD34042003DD34051850 -:10BBF00083DD6E04DD66055ECDDF84140000202148 -:10BC0000232A2B2D2E5862636468696C6F707375DC -:10BC10007861BF78BD80BDF4BE53BD49BDD4BCE9D9 -:10BC2000BCDFBCE9BCB1BE3FBD6EBDC9BC4BBC56A0 -:10BC3000BC6ABC63BC93BE56BC3BBCDD6E04DD6617 -:10BC4000052BDD7504DD7405C365BFDD36A401DD9C -:10BC500036A500C365BBDD6E04DD660546DD70B349 -:10BC6000C365BBDD36B401C365BB216600397EC642 -:10BC70000277237ECE00772B6E672B2B46236668D8 -:10BC8000DD75A2DD74A3DD7EAADDB6AB280EDD6E08 -:10BC9000A2DD66A3DD75A8DD74A9182ADD6EA2DD1C -:10BCA00066A3DD75ACDD74ADCB7C281ADD36A4014E -:10BCB000DD36A500DD4EA2DD46A3A7210000ED4242 -:10BCC000DD75ACDD74ADC365BBDD36AA01DD36AB19 -:10BCD00000C365BBDD36A601DD36A700C365BBAF7B -:10BCE000DD77A6DD77A7C365BB210A00E5211D002E -:10BCF00039E5DD7EA6DDB6A7281D216A00397EC69E -:10BD00000477237ECE00772B6E6701FCFF095E234C -:10BD100056234E2346181A216A00397EC60277231D -:10BD20007ECE00772B6E672B2B5E23567A079F4FB4 -:10BD300041CD85B2F1F1DD75B5DD74B6C318BFDD57 -:10BD400036AE02DD36AF001837DD36AE08DD36AF71 -:10BD500000182DAFDD77A6DD77A7DD36B230DD36F2 -:10BD6000AC05DD36AD00DD36A808DD36A900DD36D0 -:10BD7000AE10DD36AF001808DD36AEF0DD36AFFFB1 -:10BD8000DD7EA6DDB6A7281E216600397EC60477B3 -:10BD9000237ECE00772B6E6701FCFF095E235623BE -:10BDA0004E2346EB1819216600397EC60277237EA2 -:10BDB000CE00772B6E672B2B46236668010000DDD3 -:10BDC00075B9DD74BADD71BBDD70BCDD5EAEDD560C -:10BDD000AFD5211D003901040009E5DD4EBBDD466C -:10BDE000BCDD5EB9DD56BACD05B9F1F1DD75B5DD65 -:10BDF00074B6DD36B726DD36B8C2AFDDB6B4CA904C -:10BE0000BE3E02DDAEAEDDB6AF200ADD36B727DDC1 -:10BE100036B8C218493E08DDAEAEDDB6AF2018DD3B -:10BE20007EB9DDB6BADDB6BBDDB6BC2808DD36B7F7 -:10BE30002ADD36B8C218273E10DDAEAEDDB6AF2023 -:10BE40000ADD36B72CDD36B8C218133E0FDDAEAEB4 -:10BE5000DDA6AF3C2008DD36B72FDD36B8C2DD6E7B -:10BE6000B7DD66B8AFB62828DD36B200DD4EB7DDE7 -:10BE700046B8211B00395D54CD31B6DD4EB5DD46E7 -:10BE8000B6211B00395D54CD1BB6DD75B5DD74B62A -:10BE9000C318BFDD6E04DD6605234E0600DD71A20A -:10BEA000DD70A379B02808DD34042003DD340518E3 -:10BEB0001C216600397EC60277237ECE00772B6E6A -:10BEC000672B2B46236668DD75A2DD74A3DD46A2D1 -:10BED000DD6EB5DD66B670DD6EB5DD66B6233600A7 -:10BEE000AFDDB6B4280CDD6EB5DD66B646DD70B2EA -:10BEF0001822181C216600397EC60277237ECE00E8 -:10BF0000772B6E672B2B46236668DD75B5DD74B61F -:10BF1000DD36B220DD36B300DD6EFDDD66FEE5DD2B -:10BF20006EA8DD66A9E5DD6EACDD66ADE5DD6EB261 -:10BF3000E5DD6EB3E5DD6EA4DD66A5E5DD4EB5DDC0 -:10BF400046B6DD5E02DD5603CD55B9EB210C003956 -:10BF5000F9EB4D44210E00397E8177237E887718D6 -:10BF60000218021838DD4E02DD4603DD6E04DD6680 -:10BF7000055E1600CD79AEDD34B02003DD34B1DDD1 -:10BF80006E04DD66057EFE0A20133E01DDAEFDDD9A -:10BF9000B6FE2009DD5E02DD5603CD84ACDD34043F -:10BFA0002003DD3405C3F8BA210C00DD4E02DD4666 -:10BFB00003097EDDB6FD77237EDDB6FE773E02DD2A -:10BFC000AEFDDDB6FE2009DD5E02DD5603CD84AC9C -:10BFD0003E01DDAEFDDDB6FE2016210400DD4E0281 -:10BFE000DD460309E5210600094E2346E171237071 -:10BFF000DD6EB0DD66B1C33885CD1885D521020070 -:10C00000E5CDD9C0F1F1C33885CD1885D52106001D -:10C01000E5CDD9C0F1F1C33885CD1885D5210B0008 -:10C02000E5CDD9C0F1F1C33885CD1885C5D5210D31 -:10C0300000E5CDD9C0F1F1F1C33885CD1885DD6EAD -:10C040000CDD660DE5DD6E0ADD660BE5DD6E08DDF7 -:10C050006609E5210F00E5CDD9C0F1F1F1F1C33852 -:10C0600085CD1885DD6E0CDD660DE5DD6E0ADD66BD -:10C070000BE5DD6E08DD6609E5D5211900E5CDF19A -:10C08000C0F1F1F1F1F1C33F85CD1885DD6E0CDD16 -:10C09000660DE5DD6E0ADD660BE5DD6E08DD660921 -:10C0A000E5211400E5CDD9C0F1F1F1F1C33885CD1A -:10C0B0001885DD6E08DD6609E5C5D5211700E5CDDB -:10C0C000D9C0F1F1F1F1C33885CD1885D52118001B -:10C0D000E5CDD9C0F1F1C3388521020039C5D55E5F -:10C0E0002356234D44F730062214C521FFFFD1C14A -:10C0F000C921020039D55E2356234D44F73008226A -:10C1000014C521FFFF4D44D1C9CD1885DD6E08DD72 -:10C110006609E5C5D5212400E5CDD9C0F1F1F1F1DD -:10C12000C338851B4B1B5300001B4300001B4E00F4 -:10C13000001B5200001B4600001B5A0000000000BC -:10C140001B45001B000000303030302E736372003E -:10C150002F6465762F6C6364300030004345004FD8 -:10C160004B0043616E63656C0000426172636F64F3 -:10C1700065005374756B73005072696A73002F64A5 -:10C1800065762F7072696E74657200253133732085 -:10C190005665726B6F6F70617274696B656C20208D -:10C1A0007C25376C642C2530326C640D0A002531F7 -:10C1B0003373205665726B6F6F70617274696B6553 -:10C1C0006C0D0A253464782040207C2025376C646F -:10C1D0002C2530326C64202020202020202020209C -:10C1E0007C25376C642C2530326C640D0A000D0AF6 -:10C1F00025313373546F7461616C3A253130737C2F -:10C2000025376C642C2530326C640D0A0D0A0D0A3A -:10C21000004D65737361676520426F780030303080 -:10C22000302E7363720000306200300030780030CE -:10C2300058004AC74AC74AC700000000010101016F -:10C24000010101010111111111110101010101018E -:10C250000101010101010101010101011020202062 -:10C26000202020202020202020202020484848482E -:10C270004848484848482020202020202042424268 -:10C2800042424202020202020202020202020202CE -:10C290000202020202020220202020202044444404 -:10C2A000444444040404040404040404040404048E -:10C2B00004040404040404202020200100000000E1 -:10C2C000000000000000000000000000000000006E -:10C2D000000000000000000000000000000000005E -:10C2E000000000000000000000000000000000004E -:10C2F000000000000000000000000000000000003E -:10C30000000000000000000000000000000000002D -:10C31000000000000000000000000000000000001D -:10C32000000000000000000000000000000000000D -:10C3300000000000000000000000000000000000FD -:10C34000FFFF0000FFFFFFFF2000000000000000D3 -:10C350000000000000004AC54AC54AC54AC54AC691 -:10C3600000001000000000000000000000004AC6AD -:10C370004AC64AC64AC64AC701002000000000005B -:10C3800000000000000002C502C502C502C504C5C8 -:10C390000200220000000000000000000000010078 -:00000001FF diff --git a/src/gui/wnd.lst b/src/gui/wnd.lst index 17aae1ea..a9b2fd9d 100644 --- a/src/gui/wnd.lst +++ b/src/gui/wnd.lst @@ -40,29 +40,29 @@ 40 PUBLIC Label_paint 41 PUBLIC Move 42 PUBLIC Root_paint - 43 PUBLIC Text - 44 PUBLIC ToggleButton_handler - 45 PUBLIC ToggleButton_new - 46 PUBLIC ToggleButton_paint - 47 PUBLIC TouchRegion - 48 PUBLIC Window_add - 49 PUBLIC Window_handler - 50 PUBLIC Window_new - 51 PUBLIC Window_paint - 52 EXTERN _read - 53 EXTERN _write - 54 EXTERN close - 55 EXTERN fflush - 56 PUBLIC fontSearch - 57 EXTERN free - 58 PUBLIC global - 59 PUBLIC grSetFont - 60 PUBLIC gui_globals - 61 EXTERN ioctl - 62 PUBLIC loadFont - 63 EXTERN malloc - 64 EXTERN open - 65 EXTERN printf + 43 PUBLIC SetCurrentGraphicsDevice + 44 PUBLIC Text + 45 PUBLIC ToggleButton_handler + 46 PUBLIC ToggleButton_new + 47 PUBLIC ToggleButton_paint + 48 PUBLIC TouchRegion + 49 PUBLIC Window_add + 50 PUBLIC Window_handler + 51 PUBLIC Window_new + 52 PUBLIC Window_paint + 53 EXTERN _read + 54 EXTERN _write + 55 EXTERN close + 56 EXTERN fflush + 57 PUBLIC fontSearch + 58 EXTERN free + 59 PUBLIC global + 60 PUBLIC grSetFont + 61 PUBLIC gui_globals + 62 EXTERN ioctl + 63 PUBLIC loadFont + 64 EXTERN malloc + 65 EXTERN open 66 PUBLIC read_stringtable 67 PUBLIC rootWindow_handler 68 PUBLIC root_actionhandler @@ -82,5260 +82,5601 @@ 82 EXTERN ?SS_DIV_L02 83 EXTERN ?S_MUL_L02 84 EXTERN ?SS_CMP_L02 - 85 EXTERN ?SL_RSH_L03 - 86 EXTERN ?C_V_SWITCH_L06 - 87 EXTERN ?S_V_SWITCH_L06 - 88 EXTERN ?BANK_CALL_DIRECT_L08 - 89 EXTERN ?BANK_LEAVE_DIRECT_L08 - 90 EXTERN ?BANK_FAST_LEAVE_L08 - 91 EXTERN ?ENT_PARM_DIRECT_L09 - 92 EXTERN ?ENT_AUTO_DIRECT_L09 - 93 RSEG CODE - 00000000 94 GraphicsOpen: - 00000000 CD 00 00 95 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000003 F8 FF 96 DEFW 65528 - 00000005 21 06 00 97 LD HL,6 - 00000008 39 98 ADD HL,SP - 00000009 EB 99 EX DE,HL - 0000000A 21 00 00 100 LD HL,?0000 - 0000000D 01 02 00 101 LD BC,2 - 00000010 ED B0 102 LDIR - 00000012 2A 00 00 103 LD HL,(global) - 00000015 23 104 INC HL - 00000016 23 105 INC HL - 00000017 E5 106 PUSH HL - 00000018 03 107 INC BC - 00000019 03 108 INC BC - 0000001A C5 109 PUSH BC - 0000001B 01 00 00 110 LD BC,?0001 - 0000001E C5 111 PUSH BC - 0000001F 3E 00 112 LD A,BYTE3 open - 00000021 21 00 00 113 LD HL,LWRD open - 00000024 CD 00 00 114 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000027 F1 115 POP AF - 00000028 F1 116 POP AF - 00000029 4D 117 LD C,L - 0000002A 44 118 LD B,H - 0000002B E1 119 POP HL - 0000002C 71 120 LD (HL),C - 0000002D 23 121 INC HL - 0000002E 70 122 LD (HL),B - 0000002F 21 00 00 123 LD HL,0 - 00000032 39 124 ADD HL,SP - 00000033 E5 125 PUSH HL - 00000034 21 00 00 126 LD HL,0 - 00000037 E5 127 PUSH HL - 00000038 2A 00 00 128 LD HL,(global) - 0000003B 23 129 INC HL - 0000003C 23 130 INC HL - 0000003D 4E 131 LD C,(HL) - 0000003E 23 132 INC HL - 0000003F 46 133 LD B,(HL) - 00000040 C5 134 PUSH BC - 00000041 3E 00 135 LD A,BYTE3 ioctl - 00000043 21 00 00 136 LD HL,LWRD ioctl - 00000046 CD 00 00 137 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000049 F1 138 POP AF - 0000004A F1 139 POP AF - 0000004B F1 140 POP AF - 0000004C DD 36 FC 60 141 LD (IX-4),96 - 00000050 DD 36 FD 00 142 LD (IX-3),0 - 00000054 21 00 00 143 LD HL,0 - 00000057 39 144 ADD HL,SP - 00000058 E5 145 PUSH HL - 00000059 21 01 00 146 LD HL,1 - 0000005C E5 147 PUSH HL - 0000005D 2A 00 00 148 LD HL,(global) - 00000060 23 149 INC HL - 00000061 23 150 INC HL - 00000062 4E 151 LD C,(HL) - 00000063 23 152 INC HL - 00000064 46 153 LD B,(HL) - 00000065 C5 154 PUSH BC - 00000066 3E 00 155 LD A,BYTE3 ioctl - 00000068 21 00 00 156 LD HL,LWRD ioctl - 0000006B CD 00 00 157 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000006E F1 158 POP AF - 0000006F F1 159 POP AF - 00000070 F1 160 POP AF - 00000071 21 02 00 161 LD HL,2 - 00000074 E5 162 PUSH HL - 00000075 2E 08 163 LD L,8 - 00000077 164 ?0372: - 00000077 39 165 ADD HL,SP - 00000078 4D 166 LD C,L - 00000079 167 ?0427: - 00000079 44 168 LD B,H - 0000007A 2A 00 00 169 LD HL,(global) - 0000007D 170 ?0428: - 0000007D 23 171 INC HL - 0000007E 23 172 INC HL - 0000007F 173 ?0429: - 0000007F 5E 174 LD E,(HL) - 00000080 23 175 INC HL - 00000081 176 ?0430: - 00000081 56 177 LD D,(HL) - 00000082 3E 00 178 LD A,BYTE3 _write - 00000084 179 ?0431: - 00000084 21 00 00 180 LD HL,LWRD _write - 00000087 CD 00 00 181 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000008A F1 182 POP AF - 0000008B C3 00 00 183 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000008E 184 GraphicsClose: - 0000008E D5 185 PUSH DE - 0000008F 2A 00 00 186 LD HL,(global) - 00000092 23 187 INC HL - 00000093 23 188 INC HL - 00000094 5E 189 LD E,(HL) - 00000095 23 190 INC HL - 00000096 56 191 LD D,(HL) - 00000097 3E 00 192 LD A,BYTE3 close - 00000099 21 00 00 193 LD HL,LWRD close - 0000009C CD 00 00 194 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000009F D1 195 POP DE - 000000A0 C3 00 00 196 JP LWRD ?BANK_FAST_LEAVE_L08 - 000000A3 197 Move: - 000000A3 CD 00 00 198 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000000A6 FC FF 199 DEFW 65532 - 000000A8 21 00 00 200 LD HL,0 - 000000AB 39 201 ADD HL,SP - 000000AC EB 202 EX DE,HL - 000000AD 21 02 00 203 LD HL,?0002 - 000000B0 01 04 00 204 LD BC,4 - 000000B3 ED B0 205 LDIR - 000000B5 DD 46 02 206 LD B,(IX+2) - 000000B8 DD 70 FE 207 LD (IX-2),B - 000000BB DD 46 04 208 LD B,(IX+4) - 000000BE DD 70 FF 209 LD (IX-1),B - 000000C1 21 04 00 210 LD HL,4 - 000000C4 E5 211 PUSH HL - 000000C5 2B 212 DEC HL - 000000C6 2B 213 DEC HL - 000000C7 C3 77 00 214 JP LWRD ?0372 - 000000CA 4D 215 LD C,L - 000000CB 216 ?0381: - 000000CB C3 79 00 217 JP LWRD ?0427 - 000000CE 2A 00 00 218 LD HL,(global) - 000000D1 23 219 INC HL - 000000D2 23 220 INC HL - 000000D3 221 ?0432: - 000000D3 5E 222 LD E,(HL) - 000000D4 23 223 INC HL - 000000D5 224 ?0433: - 000000D5 56 225 LD D,(HL) - 000000D6 3E 00 226 LD A,BYTE3 _write - 000000D8 227 ?0434: - 000000D8 C3 84 00 228 JP LWRD ?0431 - 000000DB CD 00 00 229 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000000DE F1 230 POP AF - 000000DF C3 00 00 231 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000000E2 232 ClearRect: - 000000E2 CD 00 00 233 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000000E5 FC FF 234 DEFW 65532 - 000000E7 21 00 00 235 LD HL,0 - 000000EA 39 236 ADD HL,SP - 000000EB EB 237 EX DE,HL - 000000EC 21 06 00 238 LD HL,?0003 - 000000EF 01 04 00 239 LD BC,4 - 000000F2 ED B0 240 LDIR - 000000F4 DD 46 02 241 LD B,(IX+2) - 000000F7 DD 70 FE 242 LD (IX-2),B - 000000FA DD 46 04 243 LD B,(IX+4) - 000000FD DD 70 FF 244 LD (IX-1),B - 00000100 21 04 00 245 LD HL,4 - 00000103 E5 246 PUSH HL - 00000104 2B 247 DEC HL - 00000105 2B 248 DEC HL - 00000106 C3 77 00 249 JP LWRD ?0372 - 00000109 4D 250 LD C,L - 0000010A C3 CB 00 251 JP LWRD ?0381 - 0000010D 2A 00 00 252 LD HL,(global) - 00000110 253 ?0389: - 00000110 C3 7D 00 254 JP LWRD ?0428 - 00000113 23 255 INC HL - 00000114 C3 D3 00 256 JP LWRD ?0432 - 00000117 23 257 INC HL - 00000118 56 258 LD D,(HL) - 00000119 3E 00 259 LD A,BYTE3 _write - 0000011B 260 ?0435: - 0000011B C3 84 00 261 JP LWRD ?0431 - 0000011E CD 00 00 262 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000121 F1 263 POP AF - 00000122 C3 00 00 264 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000125 265 DrawRectNC: - 00000125 CD 00 00 266 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000128 FC FF 267 DEFW 65532 - 0000012A 21 00 00 268 LD HL,0 - 0000012D 39 269 ADD HL,SP - 0000012E EB 270 EX DE,HL - 0000012F 21 0A 00 271 LD HL,?0004 - 00000132 01 04 00 272 LD BC,4 - 00000135 ED B0 273 LDIR - 00000137 DD 46 02 274 LD B,(IX+2) - 0000013A DD 70 FE 275 LD (IX-2),B - 0000013D DD 46 04 276 LD B,(IX+4) - 00000140 DD 70 FF 277 LD (IX-1),B - 00000143 21 04 00 278 LD HL,4 - 00000146 E5 279 PUSH HL - 00000147 2B 280 DEC HL - 00000148 2B 281 DEC HL - 00000149 C3 77 00 282 JP LWRD ?0372 - 0000014C 4D 283 LD C,L - 0000014D C3 CB 00 284 JP LWRD ?0381 - 00000150 2A 00 00 285 LD HL,(global) - 00000153 C3 10 01 286 JP LWRD ?0389 - 00000156 23 287 INC HL - 00000157 288 ?0396: - 00000157 C3 7F 00 289 JP LWRD ?0429 - 0000015A 23 290 INC HL - 0000015B C3 D5 00 291 JP LWRD ?0433 - 0000015E 3E 00 292 LD A,BYTE3 _write - 00000160 C3 1B 01 293 JP LWRD ?0435 - 00000163 CD 00 00 294 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000166 F1 295 POP AF - 00000167 C3 00 00 296 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000016A 297 FillRect: - 0000016A CD 00 00 298 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000016D FC FF 299 DEFW 65532 - 0000016F 21 00 00 300 LD HL,0 - 00000172 39 301 ADD HL,SP - 00000173 EB 302 EX DE,HL - 00000174 21 0E 00 303 LD HL,?0005 - 00000177 01 04 00 304 LD BC,4 - 0000017A ED B0 305 LDIR - 0000017C DD 46 02 306 LD B,(IX+2) - 0000017F DD 70 FE 307 LD (IX-2),B - 00000182 DD 46 04 308 LD B,(IX+4) - 00000185 DD 70 FF 309 LD (IX-1),B - 00000188 21 04 00 310 LD HL,4 - 0000018B E5 311 PUSH HL - 0000018C 2B 312 DEC HL - 0000018D 2B 313 DEC HL - 0000018E C3 77 00 314 JP LWRD ?0372 - 00000191 4D 315 LD C,L - 00000192 C3 CB 00 316 JP LWRD ?0381 - 00000195 2A 00 00 317 LD HL,(global) - 00000198 C3 10 01 318 JP LWRD ?0389 - 0000019B 23 319 INC HL - 0000019C C3 57 01 320 JP LWRD ?0396 - 0000019F 23 321 INC HL - 000001A0 322 ?0402: - 000001A0 C3 81 00 323 JP LWRD ?0430 - 000001A3 3E 00 324 LD A,BYTE3 _write - 000001A5 C3 D8 00 325 JP LWRD ?0434 - 000001A8 CD 00 00 326 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001AB F1 327 POP AF - 000001AC C3 00 00 328 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000001AF 329 FillRectNC: - 000001AF CD 00 00 330 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000001B2 FC FF 331 DEFW 65532 - 000001B4 21 00 00 332 LD HL,0 - 000001B7 39 333 ADD HL,SP - 000001B8 EB 334 EX DE,HL - 000001B9 21 12 00 335 LD HL,?0006 - 000001BC 01 04 00 336 LD BC,4 - 000001BF ED B0 337 LDIR - 000001C1 DD 46 02 338 LD B,(IX+2) - 000001C4 DD 70 FE 339 LD (IX-2),B - 000001C7 DD 46 04 340 LD B,(IX+4) - 000001CA DD 70 FF 341 LD (IX-1),B - 000001CD 21 04 00 342 LD HL,4 - 000001D0 E5 343 PUSH HL - 000001D1 2B 344 DEC HL - 000001D2 2B 345 DEC HL - 000001D3 C3 77 00 346 JP LWRD ?0372 - 000001D6 4D 347 LD C,L - 000001D7 C3 CB 00 348 JP LWRD ?0381 - 000001DA 2A 00 00 349 LD HL,(global) - 000001DD C3 10 01 350 JP LWRD ?0389 - 000001E0 23 351 INC HL - 000001E1 C3 57 01 352 JP LWRD ?0396 - 000001E4 23 353 INC HL - 000001E5 C3 A0 01 354 JP LWRD ?0402 - 000001E8 3E 00 355 LD A,BYTE3 _write - 000001EA 356 ?0407: - 000001EA C3 84 00 357 JP LWRD ?0431 - 000001ED CD 00 00 358 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000001F0 F1 359 POP AF - 000001F1 C3 00 00 360 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000001F4 361 GrayRect: - 000001F4 CD 00 00 362 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000001F7 FC FF 363 DEFW 65532 - 000001F9 21 00 00 364 LD HL,0 - 000001FC 39 365 ADD HL,SP - 000001FD EB 366 EX DE,HL - 000001FE 21 16 00 367 LD HL,?0007 - 00000201 01 04 00 368 LD BC,4 - 00000204 ED B0 369 LDIR - 00000206 DD 46 02 370 LD B,(IX+2) - 00000209 DD 70 FE 371 LD (IX-2),B - 0000020C DD 46 04 372 LD B,(IX+4) - 0000020F DD 70 FF 373 LD (IX-1),B - 00000212 21 04 00 374 LD HL,4 - 00000215 E5 375 PUSH HL - 00000216 2B 376 DEC HL - 00000217 2B 377 DEC HL - 00000218 C3 77 00 378 JP LWRD ?0372 - 0000021B 4D 379 LD C,L - 0000021C C3 CB 00 380 JP LWRD ?0381 - 0000021F 2A 00 00 381 LD HL,(global) - 00000222 C3 10 01 382 JP LWRD ?0389 - 00000225 23 383 INC HL - 00000226 C3 57 01 384 JP LWRD ?0396 - 00000229 23 385 INC HL - 0000022A C3 A0 01 386 JP LWRD ?0402 - 0000022D 3E 00 387 LD A,BYTE3 _write - 0000022F C3 EA 01 388 JP LWRD ?0407 - 00000232 CD 00 00 389 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000235 F1 390 POP AF - 00000236 C3 00 00 391 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000239 392 Text: - 00000239 C5 393 PUSH BC - 0000023A FD E5 394 PUSH IY - 0000023C DD E5 395 PUSH IX - 0000023E D5 396 PUSH DE - 0000023F DD E1 397 POP IX - 00000241 3E 00 398 LD A,BYTE3 strlen - 00000243 21 00 00 399 LD HL,LWRD strlen - 00000246 CD 00 00 400 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000249 E5 401 PUSH HL - 0000024A DD E5 402 PUSH IX - 0000024C C1 403 POP BC - 0000024D 2A 00 00 404 LD HL,(global) - 00000250 23 405 INC HL - 00000251 23 406 INC HL - 00000252 5E 407 LD E,(HL) - 00000253 23 408 INC HL - 00000254 56 409 LD D,(HL) - 00000255 3E 00 410 LD A,BYTE3 _write - 00000257 21 00 00 411 LD HL,LWRD _write - 0000025A CD 00 00 412 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000025D F1 413 POP AF - 0000025E 414 ?0411: - 0000025E DD E1 415 POP IX - 00000260 FD E1 416 POP IY - 00000262 C1 417 POP BC - 00000263 C3 00 00 418 JP LWRD ?BANK_FAST_LEAVE_L08 - 00000266 419 TouchRegion: - 00000266 CD 00 00 420 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000269 F8 FF 421 DEFW 65528 - 0000026B 21 00 00 422 LD HL,0 - 0000026E 39 423 ADD HL,SP - 0000026F EB 424 EX DE,HL - 00000270 21 1A 00 425 LD HL,?0008 - 00000273 01 07 00 426 LD BC,7 - 00000276 ED B0 427 LDIR - 00000278 DD 46 02 428 LD B,(IX+2) - 0000027B DD 70 FA 429 LD (IX-6),B - 0000027E DD 46 04 430 LD B,(IX+4) - 00000281 DD 70 FB 431 LD (IX-5),B - 00000284 DD 46 0A 432 LD B,(IX+10) - 00000287 DD 70 FC 433 LD (IX-4),B - 0000028A DD 46 0C 434 LD B,(IX+12) - 0000028D DD 70 FD 435 LD (IX-3),B - 00000290 DD 46 0E 436 LD B,(IX+14) - 00000293 DD 70 FE 437 LD (IX-2),B - 00000296 21 07 00 438 LD HL,7 - 00000299 E5 439 PUSH HL - 0000029A 2E 02 440 LD L,2 - 0000029C C3 77 00 441 JP LWRD ?0372 - 0000029F 4D 442 LD C,L - 000002A0 C3 CB 00 443 JP LWRD ?0381 - 000002A3 2A 00 00 444 LD HL,(global) - 000002A6 C3 10 01 445 JP LWRD ?0389 - 000002A9 23 446 INC HL - 000002AA C3 57 01 447 JP LWRD ?0396 - 000002AD 23 448 INC HL - 000002AE C3 A0 01 449 JP LWRD ?0402 - 000002B1 3E 00 450 LD A,BYTE3 _write - 000002B3 C3 EA 01 451 JP LWRD ?0407 - 000002B6 CD 00 00 452 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000002B9 F1 453 POP AF - 000002BA C3 00 00 454 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000002BD 455 ClearScreen: - 000002BD C5 456 PUSH BC - 000002BE D5 457 PUSH DE - 000002BF CD D7 02 458 CALL LWRD ?0461 - 000002C2 CD 00 00 459 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000002C5 21 80 00 460 LD HL,128 - 000002C8 E5 461 PUSH HL - 000002C9 6C 462 LD L,H - 000002CA E5 463 PUSH HL - 000002CB E5 464 PUSH HL - 000002CC CD EF 02 465 CALL LWRD ?0470 - 000002CF E1 466 POP HL - 000002D0 E1 467 POP HL - 000002D1 E1 468 POP HL - 000002D2 D1 469 POP DE - 000002D3 C1 470 POP BC - 000002D4 C3 00 00 471 JP LWRD ?BANK_FAST_LEAVE_L08 - 000002D7 472 ?0461: - 000002D7 01 00 00 473 LD BC,0 - 000002DA 59 474 LD E,C - 000002DB 50 475 LD D,B - 000002DC 3E A3 476 LD A,BYTE3 Move - 000002DE 21 A3 00 477 LD HL,LWRD Move - 000002E1 CD 00 00 478 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000002E4 01 80 00 479 LD BC,128 - 000002E7 58 480 LD E,B - 000002E8 50 481 LD D,B - 000002E9 3E E2 482 LD A,BYTE3 ClearRect - 000002EB 21 E2 00 483 LD HL,LWRD ClearRect - 000002EE C9 484 RET - 000002EF 485 ?0470: - 000002EF 4D 486 LD C,L - 000002F0 44 487 LD B,H - 000002F1 EB 488 EX DE,HL - 000002F2 489 ?0471: - 000002F2 3E 66 490 LD A,BYTE3 TouchRegion - 000002F4 21 66 02 491 LD HL,LWRD TouchRegion - 000002F7 C3 00 00 492 JP LWRD ?BANK_CALL_DIRECT_L08 - 000002FA 493 EnableScreen: - 000002FA CD 00 00 494 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000002FD FC FF 495 DEFW 65532 - 000002FF 21 00 00 496 LD HL,0 - 00000302 39 497 ADD HL,SP - 00000303 EB 498 EX DE,HL - 00000304 21 21 00 499 LD HL,?0009 - 00000307 01 03 00 500 LD BC,3 - 0000030A ED B0 501 LDIR - 0000030C DD 46 02 502 LD B,(IX+2) - 0000030F DD 70 FE 503 LD (IX-2),B - 00000312 21 03 00 504 LD HL,3 - 00000315 E5 505 PUSH HL - 00000316 2B 506 DEC HL - 00000317 C3 77 00 507 JP LWRD ?0372 - 0000031A 4D 508 LD C,L - 0000031B C3 CB 00 509 JP LWRD ?0381 - 0000031E 2A 00 00 510 LD HL,(global) - 00000321 C3 10 01 511 JP LWRD ?0389 - 00000324 23 512 INC HL - 00000325 C3 57 01 513 JP LWRD ?0396 - 00000328 23 514 INC HL - 00000329 C3 A0 01 515 JP LWRD ?0402 - 0000032C 3E 00 516 LD A,BYTE3 _write - 0000032E C3 EA 01 517 JP LWRD ?0407 - 00000331 CD 00 00 518 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000334 F1 519 POP AF - 00000335 C3 00 00 520 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000338 521 grSetFont: - 00000338 CD 00 00 522 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000033B FE FF 523 DEFW 65534 - 0000033D 21 00 00 524 LD HL,0 - 00000340 39 525 ADD HL,SP - 00000341 EB 526 EX DE,HL - 00000342 21 24 00 527 LD HL,?0010 - 00000345 01 02 00 528 LD BC,2 - 00000348 ED B0 529 LDIR - 0000034A DD 46 02 530 LD B,(IX+2) - 0000034D DD 70 FF 531 LD (IX-1),B - 00000350 21 02 00 532 LD HL,2 - 00000353 E5 533 PUSH HL - 00000354 C3 77 00 534 JP LWRD ?0372 - 00000357 4D 535 LD C,L - 00000358 C3 CB 00 536 JP LWRD ?0381 - 0000035B 2A 00 00 537 LD HL,(global) - 0000035E C3 10 01 538 JP LWRD ?0389 - 00000361 23 539 INC HL - 00000362 C3 57 01 540 JP LWRD ?0396 - 00000365 23 541 INC HL - 00000366 C3 A0 01 542 JP LWRD ?0402 - 00000369 3E 00 543 LD A,BYTE3 _write - 0000036B C3 EA 01 544 JP LWRD ?0407 - 0000036E CD 00 00 545 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000371 F1 546 POP AF - 00000372 C3 00 00 547 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000375 548 fontSearch: - 00000375 CD 00 00 549 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000378 00 00 550 DEFW 0 - 0000037A 21 0C 00 551 LD HL,12 - 0000037D ED 4B 00 00 552 LD BC,(global) - 00000381 09 553 ADD HL,BC - 00000382 554 ?0321: - 00000382 46 555 LD B,(HL) - 00000383 23 556 INC HL - 00000384 66 557 LD H,(HL) - 00000385 68 558 LD L,B - 00000386 EB 559 EX DE,HL - 00000387 560 ?0012: - 00000387 7B 561 LD A,E - 00000388 B2 562 OR D - 00000389 28 16 563 JR Z,?0011 - 0000038B 6B 564 LD L,E - 0000038C 62 565 LD H,D - 0000038D 46 566 LD B,(HL) - 0000038E 23 567 INC HL - 0000038F 66 568 LD H,(HL) - 00000390 68 569 LD L,B - 00000391 DD 4E 02 570 LD C,(IX+2) - 00000394 DD 46 03 571 LD B,(IX+3) - 00000397 ED 42 572 SBC HL,BC - 00000399 28 06 573 JR Z,?0011 - 0000039B 574 ?0015: - 0000039B 575 ?0014: - 0000039B 576 ?0013: - 0000039B 21 08 00 577 LD HL,8 - 0000039E 19 578 ADD HL,DE - 0000039F 18 E1 579 JR ?0321 - 000003A1 580 ?0011: - 000003A1 EB 581 EX DE,HL - 000003A2 C3 00 00 582 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000003A5 583 setCurrentFont: - 000003A5 CD 00 00 584 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000003A8 3E 75 585 LD A,BYTE3 fontSearch - 000003AA 21 75 03 586 LD HL,LWRD fontSearch - 000003AD CD 22 04 587 CALL LWRD ?0448 - 000003B0 28 29 588 JR Z,?0017 - 000003B2 589 ?0016: - 000003B2 DD 5E 02 590 LD E,(IX+2) - 000003B5 DD 56 03 591 LD D,(IX+3) - 000003B8 3E 38 592 LD A,BYTE3 grSetFont - 000003BA 21 38 03 593 LD HL,LWRD grSetFont - 000003BD CD 00 00 594 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000003C0 21 0A 00 595 LD HL,10 - 000003C3 ED 4B 00 00 596 LD BC,(global) - 000003C7 09 597 ADD HL,BC - 000003C8 E5 598 PUSH HL - 000003C9 DD 5E 02 599 LD E,(IX+2) - 000003CC DD 56 03 600 LD D,(IX+3) - 000003CF 3E 75 601 LD A,BYTE3 fontSearch - 000003D1 21 75 03 602 LD HL,LWRD fontSearch - 000003D4 CD 2D 04 603 CALL LWRD ?0449 - 000003D7 E1 604 POP HL - 000003D8 71 605 LD (HL),C - 000003D9 23 606 INC HL - 000003DA 70 607 LD (HL),B - 000003DB 608 ?0017: - 000003DB C3 00 00 609 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000003DE 610 ?0443: - 000003DE ED 4B 00 00 611 LD BC,(global) - 000003E2 09 612 ADD HL,BC - 000003E3 46 613 LD B,(HL) - 000003E4 23 614 INC HL - 000003E5 66 615 LD H,(HL) - 000003E6 68 616 LD L,B - 000003E7 617 ?0442: - 000003E7 23 618 INC HL - 000003E8 23 619 INC HL - 000003E9 4E 620 LD C,(HL) - 000003EA 23 621 INC HL - 000003EB 46 622 LD B,(HL) - 000003EC 23 623 INC HL - 000003ED 7E 624 LD A,(HL) - 000003EE 69 625 LD L,C - 000003EF 60 626 LD H,B - 000003F0 CD 00 00 627 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000003F3 4D 628 LD C,L - 000003F4 44 629 LD B,H - 000003F5 FD 6E 06 630 LD L,(IY+6) - 000003F8 FD 66 07 631 LD H,(IY+7) - 000003FB A7 632 AND A - 000003FC ED 42 633 SBC HL,BC - 000003FE EB 634 EX DE,HL - 000003FF 01 02 00 635 LD BC,2 - 00000402 CD 00 00 636 CALL LWRD ?SS_DIV_L02 - 00000405 DD 6E 04 637 LD L,(IX+4) - 00000408 DD 66 05 638 LD H,(IX+5) - 0000040B 19 639 ADD HL,DE - 0000040C EB 640 EX DE,HL - 0000040D 3E A3 641 LD A,BYTE3 Move - 0000040F 21 A3 00 642 LD HL,LWRD Move - 00000412 C9 643 RET - 00000413 644 ?0444: - 00000413 CD 00 00 645 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000416 4D 646 LD C,L - 00000417 44 647 LD B,H - 00000418 FD 6E 08 648 LD L,(IY+8) - 0000041B FD 66 09 649 LD H,(IY+9) - 0000041E A7 650 AND A - 0000041F ED 42 651 SBC HL,BC - 00000421 C9 652 RET - 00000422 653 ?0448: - 00000422 CD 00 00 654 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000425 7D 655 LD A,L - 00000426 B4 656 OR H - 00000427 C9 657 RET - 00000428 658 ?0450: - 00000428 3E 00 659 LD A,BYTE3 malloc - 0000042A 21 00 00 660 LD HL,LWRD malloc - 0000042D 661 ?0449: - 0000042D CD 00 00 662 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000430 4D 663 LD C,L - 00000431 44 664 LD B,H - 00000432 C9 665 RET - 00000433 666 loadFont: - 00000433 CD 00 00 667 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000436 FC FF 668 DEFW 65532 - 00000438 FD E5 669 PUSH IY - 0000043A 11 0E 00 670 LD DE,14 - 0000043D CD CE 04 671 CALL LWRD ?0447 - 00000440 DD 4E 02 672 LD C,(IX+2) - 00000443 71 673 LD (HL),C - 00000444 DD 46 03 674 LD B,(IX+3) - 00000447 23 675 INC HL - 00000448 70 676 LD (HL),B - 00000449 DD 46 0C 677 LD B,(IX+12) - 0000044C DD 6E 0A 678 LD L,(IX+10) - 0000044F FD 75 02 679 LD (IY+2),L - 00000452 DD 66 0B 680 LD H,(IX+11) - 00000455 FD 74 03 681 LD (IY+3),H - 00000458 FD 70 04 682 LD (IY+4),B - 0000045B DD 46 10 683 LD B,(IX+16) - 0000045E DD 6E 0E 684 LD L,(IX+14) - 00000461 FD 75 05 685 LD (IY+5),L - 00000464 DD 66 0F 686 LD H,(IX+15) - 00000467 FD 74 06 687 LD (IY+6),H - 0000046A FD 70 07 688 LD (IY+7),B - 0000046D AF 689 XOR A - 0000046E FD 77 08 690 LD (IY+8),A - 00000471 FD 77 09 691 LD (IY+9),A - 00000474 DD 6E 12 692 LD L,(IX+18) - 00000477 FD 75 0A 693 LD (IY+10),L - 0000047A DD 66 13 694 LD H,(IX+19) - 0000047D FD 74 0B 695 LD (IY+11),H - 00000480 DD 6E 14 696 LD L,(IX+20) - 00000483 FD 75 0C 697 LD (IY+12),L - 00000486 DD 66 15 698 LD H,(IX+21) - 00000489 FD 74 0D 699 LD (IY+13),H - 0000048C 21 0C 00 700 LD HL,12 - 0000048F ED 4B 00 00 701 LD BC,(global) - 00000493 09 702 ADD HL,BC - 00000494 7E 703 LD A,(HL) - 00000495 23 704 INC HL - 00000496 B6 705 OR (HL) - 00000497 21 0C 00 706 LD HL,12 - 0000049A ED 4B 00 00 707 LD BC,(global) - 0000049E 09 708 ADD HL,BC - 0000049F 20 10 709 JR NZ,?0019 - 000004A1 710 ?0018: - 000004A1 FD E5 711 PUSH IY - 000004A3 C1 712 POP BC - 000004A4 71 713 LD (HL),C - 000004A5 23 714 INC HL - 000004A6 70 715 LD (HL),B - 000004A7 21 0A 00 716 LD HL,10 - 000004AA ED 4B 00 00 717 LD BC,(global) - 000004AE 09 718 ADD HL,BC - 000004AF 18 12 719 JR ?0021 - 000004B1 720 ?0019: - 000004B1 46 721 LD B,(HL) - 000004B2 23 722 INC HL - 000004B3 66 723 LD H,(HL) - 000004B4 68 724 LD L,B - 000004B5 EB 725 EX DE,HL - 000004B6 726 ?0022: - 000004B6 21 08 00 727 LD HL,8 - 000004B9 19 728 ADD HL,DE - 000004BA 7E 729 LD A,(HL) - 000004BB 23 730 INC HL - 000004BC B6 731 OR (HL) - 000004BD 21 08 00 732 LD HL,8 - 000004C0 19 733 ADD HL,DE - 000004C1 20 EE 734 JR NZ,?0019 - 000004C3 735 ?0023: - 000004C3 736 ?0021: - 000004C3 FD E5 737 PUSH IY - 000004C5 C1 738 POP BC - 000004C6 71 739 LD (HL),C - 000004C7 23 740 INC HL - 000004C8 70 741 LD (HL),B - 000004C9 742 ?0020: - 000004C9 FD E1 743 POP IY - 000004CB C3 00 00 744 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000004CE 745 ?0447: - 000004CE 3E 00 746 LD A,BYTE3 malloc - 000004D0 21 00 00 747 LD HL,LWRD malloc - 000004D3 CD 00 00 748 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000004D6 E5 749 PUSH HL - 000004D7 FD E1 750 POP IY - 000004D9 C9 751 RET - 000004DA 752 stringwidth: - 000004DA FD E5 753 PUSH IY - 000004DC DD E5 754 PUSH IX - 000004DE C5 755 PUSH BC - 000004DF D5 756 PUSH DE - 000004E0 DD 21 00 00 757 LD IX,0 - 000004E4 FD 21 00 00 758 LD IY,0 - 000004E8 759 ?0025: - 000004E8 FD E5 760 PUSH IY - 000004EA 21 02 00 761 LD HL,2 - 000004ED 39 762 ADD HL,SP - 000004EE 4E 763 LD C,(HL) - 000004EF 23 764 INC HL - 000004F0 46 765 LD B,(HL) - 000004F1 E1 766 POP HL - 000004F2 09 767 ADD HL,BC - 000004F3 7E 768 LD A,(HL) - 000004F4 B7 769 OR A - 000004F5 28 50 770 JR Z,?0024 - 000004F7 771 ?0026: - 000004F7 FD E5 772 PUSH IY - 000004F9 E1 773 POP HL - 000004FA 09 774 ADD HL,BC - 000004FB 5E 775 LD E,(HL) - 000004FC CD 00 00 776 CALL LWRD ?C_V_SWITCH_L06 - 000004FF 0A 00 777 DEFW 10 - 00000501 21 778 DEFB 33 - 00000502 2C 779 DEFB 44 - 00000503 2E 780 DEFB 46 - 00000504 31 781 DEFB 49 - 00000505 49 782 DEFB 73 - 00000506 69 783 DEFB 105 - 00000507 6A 784 DEFB 106 - 00000508 6B 785 DEFB 107 - 00000509 6C 786 DEFB 108 - 0000050A 72 787 DEFB 114 - 0000050B 35 05 788 DEFW ?0032 - 0000050D 30 05 789 DEFW ?0031 - 0000050F 26 05 790 DEFW ?0029 - 00000511 30 05 791 DEFW ?0031 - 00000513 30 05 792 DEFW ?0031 - 00000515 21 05 793 DEFW ?0028 - 00000517 21 05 794 DEFW ?0028 - 00000519 2B 05 795 DEFW ?0030 - 0000051B 2B 05 796 DEFW ?0030 - 0000051D 2B 05 797 DEFW ?0030 - 0000051F 21 05 798 DEFW ?0028 - 00000521 799 ?0028: - 00000521 01 02 00 800 LD BC,2 - 00000524 18 12 801 JR ?0331 - 00000526 802 ?0029: - 00000526 01 03 00 803 LD BC,3 - 00000529 18 0D 804 JR ?0331 - 0000052B 805 ?0030: - 0000052B 01 04 00 806 LD BC,4 - 0000052E 18 08 807 JR ?0331 - 00000530 808 ?0031: - 00000530 01 05 00 809 LD BC,5 - 00000533 18 03 810 JR ?0331 - 00000535 811 ?0032: - 00000535 01 06 00 812 LD BC,6 - 00000538 813 ?0331: - 00000538 DD 09 814 ADD IX,BC - 0000053A 815 ?0027: - 0000053A 21 02 00 816 LD HL,2 - 0000053D 39 817 ADD HL,SP - 0000053E 4E 818 LD C,(HL) - 0000053F 23 819 INC HL - 00000540 46 820 LD B,(HL) - 00000541 DD 09 821 ADD IX,BC - 00000543 FD 23 822 INC IY - 00000545 18 A1 823 JR ?0025 - 00000547 824 ?0024: - 00000547 DD E5 825 PUSH IX - 00000549 E1 826 POP HL - 0000054A F1 827 POP AF - 0000054B F1 828 POP AF - 0000054C DD E1 829 POP IX - 0000054E FD E1 830 POP IY - 00000550 C3 00 00 831 JP LWRD ?BANK_FAST_LEAVE_L08 - 00000553 832 stringheight: - 00000553 CD 00 00 833 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00000556 7B 834 LD A,E - 00000557 FE 80 835 CP 128 - 00000559 30 06 836 JR NC,?0034 - 0000055B 837 ?0033: - 0000055B 21 07 00 838 LD HL,7 - 0000055E 09 839 ADD HL,BC - 0000055F 18 0C 840 JR ?0036 - 00000561 841 ?0034: - 00000561 FE CC 842 CP 204 - 00000563 38 08 843 JR C,?0036 - 00000565 3E DF 844 LD A,223 - 00000567 BB 845 CP E - 00000568 38 03 846 JR C,?0036 - 0000056A 847 ?0038: - 0000056A 848 ?0037: - 0000056A 849 ?0035: - 0000056A 69 850 LD L,C - 0000056B 60 851 LD H,B - 0000056C 23 852 INC HL - 0000056D 853 ?0036: - 0000056D 854 ?0039: - 0000056D C3 00 00 855 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000570 856 stringheight01: - 00000570 CD 00 00 857 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00000573 01 00 00 858 LD BC,0 - 00000576 859 ?0415: - 00000576 1A 860 LD A,(DE) - 00000577 5F 861 LD E,A - 00000578 3E 53 862 LD A,BYTE3 stringheight - 0000057A 21 53 05 863 LD HL,LWRD stringheight - 0000057D CD 00 00 864 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000580 C3 00 00 865 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000583 866 stringheight2: - 00000583 CD 00 00 867 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00000586 01 05 00 868 LD BC,5 - 00000589 C3 76 05 869 JP LWRD ?0415 - 0000058C 870 stringwidth0: - 0000058C CD 00 00 871 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000058F 01 00 00 872 LD BC,0 - 00000592 873 ?0416: - 00000592 3E DA 874 LD A,BYTE3 stringwidth - 00000594 21 DA 04 875 LD HL,LWRD stringwidth - 00000597 CD 00 00 876 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000059A C3 00 00 877 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000059D 878 stringwidth1: - 0000059D CD 00 00 879 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000005A0 01 02 00 880 LD BC,2 - 000005A3 C3 92 05 881 JP LWRD ?0416 - 000005A6 882 stringwidth2: - 000005A6 CD 00 00 883 CALL LWRD ?ENT_PARM_DIRECT_L09 - 000005A9 01 03 00 884 LD BC,3 - 000005AC C3 92 05 885 JP LWRD ?0416 - 000005AF 886 Component_new: - 000005AF CD 00 00 887 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000005B2 00 00 888 DEFW 0 - 000005B4 FD E5 889 PUSH IY - 000005B6 11 28 00 890 LD DE,40 - 000005B9 CD CE 04 891 CALL LWRD ?0447 - 000005BC 2A 00 00 892 LD HL,(global) - 000005BF 5E 893 LD E,(HL) - 000005C0 23 894 INC HL - 000005C1 56 895 LD D,(HL) - 000005C2 13 896 INC DE - 000005C3 72 897 LD (HL),D - 000005C4 2B 898 DEC HL - 000005C5 73 899 LD (HL),E - 000005C6 FD E5 900 PUSH IY - 000005C8 E1 901 POP HL - 000005C9 73 902 LD (HL),E - 000005CA 23 903 INC HL - 000005CB 72 904 LD (HL),D - 000005CC DD 6E 02 905 LD L,(IX+2) - 000005CF FD 75 02 906 LD (IY+2),L - 000005D2 DD 66 03 907 LD H,(IX+3) - 000005D5 FD 74 03 908 LD (IY+3),H - 000005D8 FD 71 04 909 LD (IY+4),C - 000005DB FD 70 05 910 LD (IY+5),B - 000005DE DD 6E 0A 911 LD L,(IX+10) - 000005E1 FD 75 06 912 LD (IY+6),L - 000005E4 DD 66 0B 913 LD H,(IX+11) - 000005E7 FD 74 07 914 LD (IY+7),H - 000005EA DD 6E 0C 915 LD L,(IX+12) - 000005ED FD 75 08 916 LD (IY+8),L - 000005F0 DD 66 0D 917 LD H,(IX+13) - 000005F3 FD 74 09 918 LD (IY+9),H - 000005F6 AF 919 XOR A - 000005F7 FD 77 0A 920 LD (IY+10),A - 000005FA FD 77 0B 921 LD (IY+11),A - 000005FD FD 77 0C 922 LD (IY+12),A - 00000600 FD 77 0D 923 LD (IY+13),A - 00000603 FD 77 0E 924 LD (IY+14),A - 00000606 FD 77 0F 925 LD (IY+15),A - 00000609 FD 77 10 926 LD (IY+16),A - 0000060C FD 77 11 927 LD (IY+17),A - 0000060F FD 77 12 928 LD (IY+18),A - 00000612 FD 77 13 929 LD (IY+19),A - 00000615 FD 77 14 930 LD (IY+20),A - 00000618 FD 77 15 931 LD (IY+21),A - 0000061B FD 77 16 932 LD (IY+22),A - 0000061E FD 77 17 933 LD (IY+23),A - 00000621 FD 77 18 934 LD (IY+24),A - 00000624 FD 77 19 935 LD (IY+25),A - 00000627 FD 77 1A 936 LD (IY+26),A - 0000062A FD 77 1B 937 LD (IY+27),A - 0000062D FD 77 1C 938 LD (IY+28),A - 00000630 FD 77 1D 939 LD (IY+29),A - 00000633 FD 77 1E 940 LD (IY+30),A - 00000636 FD 77 1F 941 LD (IY+31),A - 00000639 FD 77 24 942 LD (IY+36),A - 0000063C FD 77 25 943 LD (IY+37),A - 0000063F FD 77 26 944 LD (IY+38),A - 00000642 FD 77 27 945 LD (IY+39),A - 00000645 FD 77 20 946 LD (IY+32),A - 00000648 FD 77 21 947 LD (IY+33),A - 0000064B FD 77 22 948 LD (IY+34),A - 0000064E FD 77 23 949 LD (IY+35),A - 00000651 950 ?0418: - 00000651 FD E5 951 PUSH IY - 00000653 E1 952 POP HL - 00000654 FD E1 953 POP IY - 00000656 C3 00 00 954 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000659 955 Component_setlabel: - 00000659 CD 00 00 956 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000065C 00 00 957 DEFW 0 - 0000065E FD E5 958 PUSH IY - 00000660 DD 6E 02 959 LD L,(IX+2) - 00000663 DD 66 03 960 LD H,(IX+3) - 00000666 E5 961 PUSH HL - 00000667 FD E1 962 POP IY - 00000669 11 00 00 963 LD DE,0 - 0000066C 964 ?0041: - 0000066C DD 6E 04 965 LD L,(IX+4) - 0000066F DD 66 05 966 LD H,(IX+5) - 00000672 19 967 ADD HL,DE - 00000673 7E 968 LD A,(HL) - 00000674 B7 969 OR A - 00000675 28 21 970 JR Z,?0040 - 00000677 01 14 80 971 LD BC,32788 - 0000067A 6B 972 LD L,E - 0000067B 62 973 LD H,D - 0000067C 78 974 LD A,B - 0000067D AC 975 XOR H - 0000067E 67 976 LD H,A - 0000067F ED 42 977 SBC HL,BC - 00000681 30 15 978 JR NC,?0040 - 00000683 979 ?0044: - 00000683 980 ?0043: - 00000683 981 ?0042: - 00000683 FD 6E 20 982 LD L,(IY+32) - 00000686 FD 66 21 983 LD H,(IY+33) - 00000689 19 984 ADD HL,DE - 0000068A E5 985 PUSH HL - 0000068B DD 6E 04 986 LD L,(IX+4) - 0000068E DD 66 05 987 LD H,(IX+5) - 00000691 19 988 ADD HL,DE - 00000692 46 989 LD B,(HL) - 00000693 E1 990 POP HL - 00000694 70 991 LD (HL),B - 00000695 13 992 INC DE - 00000696 18 D4 993 JR ?0041 - 00000698 994 ?0040: - 00000698 FD 6E 20 995 LD L,(IY+32) - 0000069B FD 66 21 996 LD H,(IY+33) - 0000069E 19 997 ADD HL,DE - 0000069F 36 00 998 LD (HL),0 - 000006A1 FD E1 999 POP IY - 000006A3 C3 00 00 1000 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000006A6 1001 Component_add: - 000006A6 CD 00 00 1002 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000006A9 00 00 1003 DEFW 0 - 000006AB FD E5 1004 PUSH IY - 000006AD 59 1005 LD E,C - 000006AE 50 1006 LD D,B - 000006AF 21 15 00 1007 LD HL,21 - 000006B2 DD 4E 02 1008 LD C,(IX+2) - 000006B5 DD 46 03 1009 LD B,(IX+3) - 000006B8 09 1010 ADD HL,BC - 000006B9 7E 1011 LD A,(HL) - 000006BA 23 1012 INC HL - 000006BB 66 1013 LD H,(HL) - 000006BC 6F 1014 LD L,A - 000006BD E5 1015 PUSH HL - 000006BE FD E1 1016 POP IY - 000006C0 21 15 00 1017 LD HL,21 - 000006C3 09 1018 ADD HL,BC - 000006C4 7E 1019 LD A,(HL) - 000006C5 23 1020 INC HL - 000006C6 B6 1021 OR (HL) - 000006C7 20 09 1022 JR NZ,?0046 - 000006C9 1023 ?0045: - 000006C9 21 15 00 1024 LD HL,21 - 000006CC 09 1025 ADD HL,BC - 000006CD 73 1026 LD (HL),E - 000006CE 23 1027 INC HL - 000006CF 72 1028 LD (HL),D - 000006D0 18 19 1029 JR ?0335 - 000006D2 1030 ?0046: - 000006D2 1031 ?0049: - 000006D2 FD 7E 13 1032 LD A,(IY+19) - 000006D5 FD B6 14 1033 OR (IY+20) - 000006D8 28 0B 1034 JR Z,?0048 - 000006DA 1035 ?0050: - 000006DA FD 6E 13 1036 LD L,(IY+19) - 000006DD FD 66 14 1037 LD H,(IY+20) - 000006E0 E5 1038 PUSH HL - 000006E1 FD E1 1039 POP IY - 000006E3 18 ED 1040 JR ?0046 - 000006E5 1041 ?0048: - 000006E5 FD 73 13 1042 LD (IY+19),E - 000006E8 FD 72 14 1043 LD (IY+20),D - 000006EB 1044 ?0335: - 000006EB 21 13 00 1045 LD HL,19 - 000006EE 19 1046 ADD HL,DE - 000006EF 77 1047 LD (HL),A - 000006F0 23 1048 INC HL - 000006F1 77 1049 LD (HL),A - 000006F2 1050 ?0047: - 000006F2 21 11 00 1051 LD HL,17 - 000006F5 19 1052 ADD HL,DE - 000006F6 DD 4E 02 1053 LD C,(IX+2) - 000006F9 71 1054 LD (HL),C - 000006FA DD 46 03 1055 LD B,(IX+3) - 000006FD 23 1056 INC HL - 000006FE 70 1057 LD (HL),B - 000006FF FD E1 1058 POP IY - 00000701 C3 00 00 1059 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000704 1060 Component_paint: - 00000704 C5 1061 PUSH BC - 00000705 FD E5 1062 PUSH IY - 00000707 DD E5 1063 PUSH IX - 00000709 21 15 00 1064 LD HL,21 - 0000070C 19 1065 ADD HL,DE - 0000070D 46 1066 LD B,(HL) - 0000070E 23 1067 INC HL - 0000070F 66 1068 LD H,(HL) - 00000710 68 1069 LD L,B - 00000711 E5 1070 PUSH HL - 00000712 DD E1 1071 POP IX - 00000714 CD 40 07 1072 CALL LWRD ?0477 - 00000717 1073 ?0052: - 00000717 DD E5 1074 PUSH IX - 00000719 E1 1075 POP HL - 0000071A 7D 1076 LD A,L - 0000071B B4 1077 OR H - 0000071C 28 1A 1078 JR Z,?0051 - 0000071E 1079 ?0053: - 0000071E DD E5 1080 PUSH IX - 00000720 D1 1081 POP DE - 00000721 DD 7E 1C 1082 LD A,(IX+28) - 00000724 DD 6E 1A 1083 LD L,(IX+26) - 00000727 DD 66 1B 1084 LD H,(IX+27) - 0000072A CD 00 00 1085 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000072D DD 6E 13 1086 LD L,(IX+19) - 00000730 DD 66 14 1087 LD H,(IX+20) - 00000733 E5 1088 PUSH HL - 00000734 DD E1 1089 POP IX - 00000736 18 DF 1090 JR ?0052 - 00000738 1091 ?0051: - 00000738 1E 01 1092 LD E,1 - 0000073A CD 42 07 1093 CALL LWRD ?0478 - 0000073D C3 5E 02 1094 JP LWRD ?0411 - 00000740 1095 ?0477: - 00000740 1E 00 1096 LD E,0 - 00000742 1097 ?0478: - 00000742 3E FA 1098 LD A,BYTE3 EnableScreen - 00000744 21 FA 02 1099 LD HL,LWRD EnableScreen - 00000747 C3 00 00 1100 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000074A 1101 Component_findXY: - 0000074A CD 00 00 1102 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000074D 00 00 1103 DEFW 0 - 0000074F FD E5 1104 PUSH IY - 00000751 DD 6E 02 1105 LD L,(IX+2) - 00000754 DD 66 03 1106 LD H,(IX+3) - 00000757 E5 1107 PUSH HL - 00000758 FD E1 1108 POP IY - 0000075A 1109 ?0056: - 0000075A DD 6E 04 1110 LD L,(IX+4) - 0000075D DD 66 05 1111 LD H,(IX+5) - 00000760 7E 1112 LD A,(HL) - 00000761 FD 86 02 1113 ADD A,(IY+2) - 00000764 77 1114 LD (HL),A - 00000765 23 1115 INC HL - 00000766 7E 1116 LD A,(HL) - 00000767 FD 8E 03 1117 ADC A,(IY+3) - 0000076A 77 1118 LD (HL),A - 0000076B DD 6E 0A 1119 LD L,(IX+10) - 0000076E DD 66 0B 1120 LD H,(IX+11) - 00000771 7E 1121 LD A,(HL) - 00000772 FD 86 04 1122 ADD A,(IY+4) - 00000775 77 1123 LD (HL),A - 00000776 23 1124 INC HL - 00000777 7E 1125 LD A,(HL) - 00000778 FD 8E 05 1126 ADC A,(IY+5) - 0000077B 77 1127 LD (HL),A - 0000077C FD 6E 11 1128 LD L,(IY+17) - 0000077F FD 66 12 1129 LD H,(IY+18) - 00000782 E5 1130 PUSH HL - 00000783 FD E1 1131 POP IY - 00000785 7D 1132 LD A,L - 00000786 B4 1133 OR H - 00000787 20 D1 1134 JR NZ,?0056 - 00000789 1135 ?0054: - 00000789 FD E1 1136 POP IY - 0000078B C3 00 00 1137 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000078E 1138 Component_find: - 0000078E CD 00 00 1139 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000791 00 00 1140 DEFW 0 - 00000793 21 15 00 1141 LD HL,21 - 00000796 DD 4E 02 1142 LD C,(IX+2) - 00000799 DD 46 03 1143 LD B,(IX+3) - 0000079C 09 1144 ADD HL,BC - 0000079D 1145 ?0336: - 0000079D 46 1146 LD B,(HL) - 0000079E 23 1147 INC HL - 0000079F 66 1148 LD H,(HL) - 000007A0 68 1149 LD L,B - 000007A1 EB 1150 EX DE,HL - 000007A2 1151 ?0058: - 000007A2 7B 1152 LD A,E - 000007A3 B2 1153 OR D - 000007A4 28 1B 1154 JR Z,?0057 - 000007A6 1155 ?0059: - 000007A6 21 10 00 1156 LD HL,16 - 000007A9 19 1157 ADD HL,DE - 000007AA 4E 1158 LD C,(HL) - 000007AB 06 00 1159 LD B,0 - 000007AD DD 6E 04 1160 LD L,(IX+4) - 000007B0 DD 66 05 1161 LD H,(IX+5) - 000007B3 A7 1162 AND A - 000007B4 ED 42 1163 SBC HL,BC - 000007B6 20 03 1164 JR NZ,?0061 - 000007B8 1165 ?0060: - 000007B8 EB 1166 EX DE,HL - 000007B9 18 08 1167 JR ?0062 - 000007BB 1168 ?0061: - 000007BB 21 13 00 1169 LD HL,19 - 000007BE 19 1170 ADD HL,DE - 000007BF 18 DC 1171 JR ?0336 - 000007C1 1172 ?0057: - 000007C1 6F 1173 LD L,A - 000007C2 67 1174 LD H,A - 000007C3 1175 ?0062: - 000007C3 C3 00 00 1176 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000007C6 1177 Component_delete: - 000007C6 CD 00 00 1178 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000007C9 F8 FF 1179 DEFW 65528 - 000007CB FD E5 1180 PUSH IY - 000007CD DD 6E 02 1181 LD L,(IX+2) - 000007D0 DD 66 03 1182 LD H,(IX+3) - 000007D3 E5 1183 PUSH HL - 000007D4 FD E1 1184 POP IY - 000007D6 FD 6E 15 1185 LD L,(IY+21) - 000007D9 DD 75 F8 1186 LD (IX-8),L - 000007DC FD 66 16 1187 LD H,(IY+22) - 000007DF DD 74 F9 1188 LD (IX-7),H - 000007E2 FD E5 1189 PUSH IY - 000007E4 E1 1190 POP HL - 000007E5 7D 1191 LD A,L - 000007E6 B4 1192 OR H - 000007E7 CA 79 09 1193 JP Z,?0064 - 000007EA 1194 ?0063: - 000007EA 1195 ?0066: - 000007EA DD 7E F8 1196 LD A,(IX-8) - 000007ED DD B6 F9 1197 OR (IX-7) - 000007F0 28 11 1198 JR Z,?0065 - 000007F2 1199 ?0067: - 000007F2 DD 5E F8 1200 LD E,(IX-8) - 000007F5 DD 56 F9 1201 LD D,(IX-7) - 000007F8 CD 8F 09 1202 CALL LWRD ?0453 - 000007FB DD 75 F8 1203 LD (IX-8),L - 000007FE DD 74 F9 1204 LD (IX-7),H - 00000801 18 E7 1205 JR ?0063 - 00000803 1206 ?0065: - 00000803 FD 7E 11 1207 LD A,(IY+17) - 00000806 FD B6 12 1208 OR (IY+18) - 00000809 CA 95 08 1209 JP Z,?0079 - 0000080C 1210 ?0068: - 0000080C FD 6E 11 1211 LD L,(IY+17) - 0000080F FD 66 12 1212 LD H,(IY+18) - 00000812 01 15 00 1213 LD BC,21 - 00000815 09 1214 ADD HL,BC - 00000816 46 1215 LD B,(HL) - 00000817 23 1216 INC HL - 00000818 66 1217 LD H,(HL) - 00000819 68 1218 LD L,B - 0000081A FD E5 1219 PUSH IY - 0000081C C1 1220 POP BC - 0000081D A7 1221 AND A - 0000081E ED 42 1222 SBC HL,BC - 00000820 FD 6E 11 1223 LD L,(IY+17) - 00000823 FD 66 12 1224 LD H,(IY+18) - 00000826 01 15 00 1225 LD BC,21 - 00000829 09 1226 ADD HL,BC - 0000082A 20 09 1227 JR NZ,?0071 - 0000082C 1228 ?0070: - 0000082C E5 1229 PUSH HL - 0000082D FD 6E 11 1230 LD L,(IY+17) - 00000830 FD 66 12 1231 LD H,(IY+18) - 00000833 18 50 1232 JR ?0339 - 00000835 1233 ?0071: - 00000835 46 1234 LD B,(HL) - 00000836 23 1235 INC HL - 00000837 66 1236 LD H,(HL) - 00000838 68 1237 LD L,B - 00000839 1238 ?0338: - 00000839 DD 75 F8 1239 LD (IX-8),L - 0000083C DD 74 F9 1240 LD (IX-7),H - 0000083F 1241 ?0074: - 0000083F 21 13 00 1242 LD HL,19 - 00000842 DD 4E F8 1243 LD C,(IX-8) - 00000845 DD 46 F9 1244 LD B,(IX-7) - 00000848 09 1245 ADD HL,BC - 00000849 46 1246 LD B,(HL) - 0000084A 23 1247 INC HL - 0000084B 66 1248 LD H,(HL) - 0000084C 68 1249 LD L,B - 0000084D FD E5 1250 PUSH IY - 0000084F C1 1251 POP BC - 00000850 A7 1252 AND A - 00000851 ED 42 1253 SBC HL,BC - 00000853 28 19 1254 JR Z,?0073 - 00000855 21 13 00 1255 LD HL,19 - 00000858 DD 4E F8 1256 LD C,(IX-8) - 0000085B DD 46 F9 1257 LD B,(IX-7) - 0000085E 09 1258 ADD HL,BC - 0000085F 7E 1259 LD A,(HL) - 00000860 23 1260 INC HL - 00000861 B6 1261 OR (HL) - 00000862 28 0A 1262 JR Z,?0073 - 00000864 1263 ?0077: - 00000864 1264 ?0076: - 00000864 1265 ?0075: - 00000864 21 13 00 1266 LD HL,19 - 00000867 09 1267 ADD HL,BC - 00000868 56 1268 LD D,(HL) - 00000869 23 1269 INC HL - 0000086A 66 1270 LD H,(HL) - 0000086B 6A 1271 LD L,D - 0000086C 18 CB 1272 JR ?0338 - 0000086E 1273 ?0073: - 0000086E 21 13 00 1274 LD HL,19 - 00000871 DD 4E F8 1275 LD C,(IX-8) - 00000874 DD 46 F9 1276 LD B,(IX-7) - 00000877 09 1277 ADD HL,BC - 00000878 7E 1278 LD A,(HL) - 00000879 23 1279 INC HL - 0000087A B6 1280 OR (HL) - 0000087B 28 18 1281 JR Z,?0079 - 0000087D 1282 ?0078: - 0000087D 21 13 00 1283 LD HL,19 - 00000880 09 1284 ADD HL,BC - 00000881 E5 1285 PUSH HL - 00000882 21 13 00 1286 LD HL,19 - 00000885 1287 ?0339: - 00000885 09 1288 ADD HL,BC - 00000886 46 1289 LD B,(HL) - 00000887 23 1290 INC HL - 00000888 66 1291 LD H,(HL) - 00000889 68 1292 LD L,B - 0000088A 01 13 00 1293 LD BC,19 - 0000088D 09 1294 ADD HL,BC - 0000088E 4E 1295 LD C,(HL) - 0000088F 23 1296 INC HL - 00000890 46 1297 LD B,(HL) - 00000891 E1 1298 POP HL - 00000892 71 1299 LD (HL),C - 00000893 23 1300 INC HL - 00000894 70 1301 LD (HL),B - 00000895 1302 ?0079: - 00000895 1303 ?0072: - 00000895 1304 ?0069: - 00000895 FD 6E 13 1305 LD L,(IY+19) - 00000898 DD 75 F8 1306 LD (IX-8),L - 0000089B FD 66 14 1307 LD H,(IY+20) - 0000089E DD 74 F9 1308 LD (IX-7),H - 000008A1 3E 04 1309 LD A,4 - 000008A3 FD AE 24 1310 XOR (IY+36) - 000008A6 FD B6 25 1311 OR (IY+37) - 000008A9 C2 45 09 1312 JP NZ,?0088 - 000008AC 1313 ?0080: - 000008AC FD 6E 11 1314 LD L,(IY+17) - 000008AF DD 75 FC 1315 LD (IX-4),L - 000008B2 FD 66 12 1316 LD H,(IY+18) - 000008B5 DD 74 FD 1317 LD (IX-3),H - 000008B8 FD 6E 26 1318 LD L,(IY+38) - 000008BB DD 75 FE 1319 LD (IX-2),L - 000008BE FD 66 27 1320 LD H,(IY+39) - 000008C1 DD 74 FF 1321 LD (IX-1),H - 000008C4 CD 84 09 1322 CALL LWRD ?0451 - 000008C7 DD 6E FE 1323 LD L,(IX-2) - 000008CA DD 66 FF 1324 LD H,(IX-1) - 000008CD 23 1325 INC HL - 000008CE 23 1326 INC HL - 000008CF CD 84 09 1327 CALL LWRD ?0451 - 000008D2 1328 ?0083: - 000008D2 DD 7E FC 1329 LD A,(IX-4) - 000008D5 DD B6 FD 1330 OR (IX-3) - 000008D8 28 20 1331 JR Z,?0082 - 000008DA 21 24 00 1332 LD HL,36 - 000008DD DD 4E FC 1333 LD C,(IX-4) - 000008E0 DD 46 FD 1334 LD B,(IX-3) - 000008E3 09 1335 ADD HL,BC - 000008E4 3E 04 1336 LD A,4 - 000008E6 AE 1337 XOR (HL) - 000008E7 23 1338 INC HL - 000008E8 B6 1339 OR (HL) - 000008E9 28 0F 1340 JR Z,?0082 - 000008EB 1341 ?0086: - 000008EB 1342 ?0085: - 000008EB 1343 ?0084: - 000008EB 21 11 00 1344 LD HL,17 - 000008EE 09 1345 ADD HL,BC - 000008EF 56 1346 LD D,(HL) - 000008F0 DD 72 FC 1347 LD (IX-4),D - 000008F3 23 1348 INC HL - 000008F4 66 1349 LD H,(HL) - 000008F5 DD 74 FD 1350 LD (IX-3),H - 000008F8 18 D8 1351 JR ?0083 - 000008FA 1352 ?0082: - 000008FA DD 7E FC 1353 LD A,(IX-4) - 000008FD DD B6 FD 1354 OR (IX-3) - 00000900 28 43 1355 JR Z,?0088 - 00000902 1356 ?0087: - 00000902 21 26 00 1357 LD HL,38 - 00000905 DD 4E FC 1358 LD C,(IX-4) - 00000908 DD 46 FD 1359 LD B,(IX-3) - 0000090B 09 1360 ADD HL,BC - 0000090C 46 1361 LD B,(HL) - 0000090D DD 70 FE 1362 LD (IX-2),B - 00000910 23 1363 INC HL - 00000911 66 1364 LD H,(HL) - 00000912 DD 74 FF 1365 LD (IX-1),H - 00000915 21 06 00 1366 LD HL,6 - 00000918 ED 4B 00 00 1367 LD BC,(global) - 0000091C 09 1368 ADD HL,BC - 0000091D E5 1369 PUSH HL - 0000091E DD 6E FE 1370 LD L,(IX-2) - 00000921 DD 66 FF 1371 LD H,(IX-1) - 00000924 5E 1372 LD E,(HL) - 00000925 23 1373 INC HL - 00000926 56 1374 LD D,(HL) - 00000927 E1 1375 POP HL - 00000928 73 1376 LD (HL),E - 00000929 23 1377 INC HL - 0000092A 72 1378 LD (HL),D - 0000092B 21 08 00 1379 LD HL,8 - 0000092E ED 4B 00 00 1380 LD BC,(global) - 00000932 09 1381 ADD HL,BC - 00000933 E5 1382 PUSH HL - 00000934 DD 4E FE 1383 LD C,(IX-2) - 00000937 DD 46 FF 1384 LD B,(IX-1) - 0000093A 03 1385 INC BC - 0000093B 03 1386 INC BC - 0000093C 69 1387 LD L,C - 0000093D 60 1388 LD H,B - 0000093E 4E 1389 LD C,(HL) - 0000093F 23 1390 INC HL - 00000940 46 1391 LD B,(HL) - 00000941 E1 1392 POP HL - 00000942 71 1393 LD (HL),C - 00000943 23 1394 INC HL - 00000944 70 1395 LD (HL),B - 00000945 1396 ?0088: - 00000945 1397 ?0081: - 00000945 FD 4E 24 1398 LD C,(IY+36) - 00000948 FD 46 25 1399 LD B,(IY+37) - 0000094B 21 00 00 1400 LD HL,0 - 0000094E CD 00 00 1401 CALL LWRD ?SS_CMP_L02 - 00000951 30 09 1402 JR NC,?0090 - 00000953 1403 ?0089: - 00000953 FD 5E 26 1404 LD E,(IY+38) - 00000956 FD 56 27 1405 LD D,(IY+39) - 00000959 CD 87 09 1406 CALL LWRD ?0452 - 0000095C 1407 ?0090: - 0000095C FD CB 0B 76 1408 BIT 6,(IY+11) - 00000960 20 11 1409 JR NZ,?0092 - 00000962 FD 7E 20 1410 LD A,(IY+32) - 00000965 FD B6 21 1411 OR (IY+33) - 00000968 28 09 1412 JR Z,?0092 - 0000096A 1413 ?0094: - 0000096A 1414 ?0093: - 0000096A 1415 ?0091: - 0000096A FD 5E 20 1416 LD E,(IY+32) - 0000096D FD 56 21 1417 LD D,(IY+33) - 00000970 CD 87 09 1418 CALL LWRD ?0452 - 00000973 1419 ?0092: - 00000973 FD E5 1420 PUSH IY - 00000975 D1 1421 POP DE - 00000976 CD 87 09 1422 CALL LWRD ?0452 - 00000979 1423 ?0064: - 00000979 DD 6E F8 1424 LD L,(IX-8) - 0000097C DD 66 F9 1425 LD H,(IX-7) - 0000097F FD E1 1426 POP IY - 00000981 C3 00 00 1427 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000984 1428 ?0451: - 00000984 5E 1429 LD E,(HL) - 00000985 23 1430 INC HL - 00000986 56 1431 LD D,(HL) - 00000987 1432 ?0452: - 00000987 3E 00 1433 LD A,BYTE3 free - 00000989 21 00 00 1434 LD HL,LWRD free - 0000098C C3 00 00 1435 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000098F 1436 ?0453: - 0000098F 3E C6 1437 LD A,BYTE3 Component_delete - 00000991 21 C6 07 1438 LD HL,LWRD Component_delete - 00000994 C3 00 00 1439 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000997 1440 Component_delete_children: - 00000997 C5 1441 PUSH BC - 00000998 FD E5 1442 PUSH IY - 0000099A DD E5 1443 PUSH IX - 0000099C 21 15 00 1444 LD HL,21 - 0000099F 19 1445 ADD HL,DE - 000009A0 46 1446 LD B,(HL) - 000009A1 23 1447 INC HL - 000009A2 66 1448 LD H,(HL) - 000009A3 68 1449 LD L,B - 000009A4 1450 ?0341: - 000009A4 E5 1451 PUSH HL - 000009A5 DD E1 1452 POP IX - 000009A7 1453 ?0096: - 000009A7 7D 1454 LD A,L - 000009A8 B4 1455 OR H - 000009A9 28 08 1456 JR Z,?0095 - 000009AB 1457 ?0097: - 000009AB DD E5 1458 PUSH IX - 000009AD D1 1459 POP DE - 000009AE CD 8F 09 1460 CALL LWRD ?0453 - 000009B1 18 F1 1461 JR ?0341 - 000009B3 1462 ?0095: - 000009B3 C3 5E 02 1463 JP LWRD ?0411 - 000009B6 1464 Component_changestate_children: - 000009B6 CD 00 00 1465 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000009B9 00 00 1466 DEFW 0 - 000009BB FD E5 1467 PUSH IY - 000009BD 21 15 00 1468 LD HL,21 - 000009C0 DD 5E 02 1469 LD E,(IX+2) - 000009C3 DD 56 03 1470 LD D,(IX+3) - 000009C6 19 1471 ADD HL,DE - 000009C7 1472 ?0342: - 000009C7 56 1473 LD D,(HL) - 000009C8 23 1474 INC HL - 000009C9 66 1475 LD H,(HL) - 000009CA 6A 1476 LD L,D - 000009CB E5 1477 PUSH HL - 000009CC FD E1 1478 POP IY - 000009CE 1479 ?0099: - 000009CE 7D 1480 LD A,L - 000009CF B4 1481 OR H - 000009D0 28 3D 1482 JR Z,?0098 - 000009D2 1483 ?0100: - 000009D2 21 0A 00 1484 LD HL,10 - 000009D5 FD E5 1485 PUSH IY - 000009D7 C1 1486 POP BC - 000009D8 09 1487 ADD HL,BC - 000009D9 DD 7E 04 1488 LD A,(IX+4) - 000009DC DD 56 05 1489 LD D,(IX+5) - 000009DF 2F 1490 CPL - 000009E0 5F 1491 LD E,A - 000009E1 7A 1492 LD A,D - 000009E2 2F 1493 CPL - 000009E3 57 1494 LD D,A - 000009E4 7E 1495 LD A,(HL) - 000009E5 A3 1496 AND E - 000009E6 77 1497 LD (HL),A - 000009E7 23 1498 INC HL - 000009E8 7E 1499 LD A,(HL) - 000009E9 A2 1500 AND D - 000009EA 77 1501 LD (HL),A - 000009EB 21 0A 00 1502 LD HL,10 - 000009EE 09 1503 ADD HL,BC - 000009EF 7E 1504 LD A,(HL) - 000009F0 DD B6 0A 1505 OR (IX+10) - 000009F3 77 1506 LD (HL),A - 000009F4 23 1507 INC HL - 000009F5 7E 1508 LD A,(HL) - 000009F6 DD B6 0B 1509 OR (IX+11) - 000009F9 77 1510 LD (HL),A - 000009FA 21 0A 00 1511 LD HL,10 - 000009FD 09 1512 ADD HL,BC - 000009FE 7E 1513 LD A,(HL) - 000009FF DD AE 0C 1514 XOR (IX+12) - 00000A02 77 1515 LD (HL),A - 00000A03 23 1516 INC HL - 00000A04 7E 1517 LD A,(HL) - 00000A05 DD AE 0D 1518 XOR (IX+13) - 00000A08 77 1519 LD (HL),A - 00000A09 21 13 00 1520 LD HL,19 - 00000A0C 09 1521 ADD HL,BC - 00000A0D 18 B8 1522 JR ?0342 - 00000A0F 1523 ?0098: - 00000A0F 11 00 00 1524 LD DE,stdout - 00000A12 3E 00 1525 LD A,BYTE3 fflush - 00000A14 21 00 00 1526 LD HL,LWRD fflush - 00000A17 CD 00 00 1527 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000A1A FD E1 1528 POP IY - 00000A1C C3 00 00 1529 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000A1F 1530 Component_linkstringtable: - 00000A1F C5 1531 PUSH BC - 00000A20 FD E5 1532 PUSH IY - 00000A22 DD E5 1533 PUSH IX - 00000A24 D5 1534 PUSH DE - 00000A25 DD E1 1535 POP IX - 00000A27 21 15 00 1536 LD HL,21 - 00000A2A 19 1537 ADD HL,DE - 00000A2B 46 1538 LD B,(HL) - 00000A2C 23 1539 INC HL - 00000A2D 66 1540 LD H,(HL) - 00000A2E 68 1541 LD L,B - 00000A2F E5 1542 PUSH HL - 00000A30 FD E1 1543 POP IY - 00000A32 21 20 00 1544 LD HL,32 - 00000A35 19 1545 ADD HL,DE - 00000A36 46 1546 LD B,(HL) - 00000A37 23 1547 INC HL - 00000A38 66 1548 LD H,(HL) - 00000A39 68 1549 LD L,B - 00000A3A 01 00 90 1550 LD BC,36864 - 00000A3D 3E 80 1551 LD A,128 - 00000A3F AC 1552 XOR H - 00000A40 67 1553 LD H,A - 00000A41 ED 42 1554 SBC HL,BC - 00000A43 30 2E 1555 JR NC,?0102 - 00000A45 DD 4E 20 1556 LD C,(IX+32) - 00000A48 DD 46 21 1557 LD B,(IX+33) - 00000A4B 21 00 00 1558 LD HL,0 - 00000A4E CD 00 00 1559 CALL LWRD ?SS_CMP_L02 - 00000A51 30 20 1560 JR NC,?0102 - 00000A53 1561 ?0104: - 00000A53 1562 ?0103: - 00000A53 1563 ?0101: - 00000A53 DD 6E 20 1564 LD L,(IX+32) - 00000A56 DD 66 21 1565 LD H,(IX+33) - 00000A59 29 1566 ADD HL,HL - 00000A5A E5 1567 PUSH HL - 00000A5B 21 08 00 1568 LD HL,8 - 00000A5E ED 4B 00 00 1569 LD BC,(global) - 00000A62 09 1570 ADD HL,BC - 00000A63 4E 1571 LD C,(HL) - 00000A64 23 1572 INC HL - 00000A65 46 1573 LD B,(HL) - 00000A66 E1 1574 POP HL - 00000A67 09 1575 ADD HL,BC - 00000A68 2B 1576 DEC HL - 00000A69 2B 1577 DEC HL - 00000A6A 46 1578 LD B,(HL) - 00000A6B DD 70 20 1579 LD (IX+32),B - 00000A6E 23 1580 INC HL - 00000A6F 66 1581 LD H,(HL) - 00000A70 DD 74 21 1582 LD (IX+33),H - 00000A73 1583 ?0102: - 00000A73 DD 6E 22 1584 LD L,(IX+34) - 00000A76 DD 66 23 1585 LD H,(IX+35) - 00000A79 01 00 90 1586 LD BC,36864 - 00000A7C 3E 80 1587 LD A,128 - 00000A7E AC 1588 XOR H - 00000A7F 67 1589 LD H,A - 00000A80 ED 42 1590 SBC HL,BC - 00000A82 30 2E 1591 JR NC,?0106 - 00000A84 DD 4E 22 1592 LD C,(IX+34) - 00000A87 DD 46 23 1593 LD B,(IX+35) - 00000A8A 21 00 00 1594 LD HL,0 - 00000A8D CD 00 00 1595 CALL LWRD ?SS_CMP_L02 - 00000A90 30 20 1596 JR NC,?0106 - 00000A92 1597 ?0108: - 00000A92 1598 ?0107: - 00000A92 1599 ?0105: - 00000A92 DD 6E 22 1600 LD L,(IX+34) - 00000A95 DD 66 23 1601 LD H,(IX+35) - 00000A98 29 1602 ADD HL,HL - 00000A99 E5 1603 PUSH HL - 00000A9A 21 08 00 1604 LD HL,8 - 00000A9D ED 4B 00 00 1605 LD BC,(global) - 00000AA1 09 1606 ADD HL,BC - 00000AA2 4E 1607 LD C,(HL) - 00000AA3 23 1608 INC HL - 00000AA4 46 1609 LD B,(HL) - 00000AA5 E1 1610 POP HL - 00000AA6 09 1611 ADD HL,BC - 00000AA7 2B 1612 DEC HL - 00000AA8 2B 1613 DEC HL - 00000AA9 46 1614 LD B,(HL) - 00000AAA DD 70 22 1615 LD (IX+34),B - 00000AAD 23 1616 INC HL - 00000AAE 66 1617 LD H,(HL) - 00000AAF DD 74 23 1618 LD (IX+35),H - 00000AB2 1619 ?0106: - 00000AB2 1620 ?0110: - 00000AB2 FD E5 1621 PUSH IY - 00000AB4 E1 1622 POP HL - 00000AB5 7D 1623 LD A,L - 00000AB6 B4 1624 OR H - 00000AB7 28 16 1625 JR Z,?0109 - 00000AB9 1626 ?0111: - 00000AB9 FD E5 1627 PUSH IY - 00000ABB D1 1628 POP DE - 00000ABC 3E 1F 1629 LD A,BYTE3 Component_linkstringtable - 00000ABE 21 1F 0A 1630 LD HL,LWRD Component_linkstringtable - 00000AC1 CD 00 00 1631 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000AC4 FD 6E 13 1632 LD L,(IY+19) - 00000AC7 FD 66 14 1633 LD H,(IY+20) - 00000ACA E5 1634 PUSH HL - 00000ACB FD E1 1635 POP IY - 00000ACD 18 E3 1636 JR ?0106 - 00000ACF 1637 ?0109: - 00000ACF C3 5E 02 1638 JP LWRD ?0411 - 00000AD2 1639 Window_handler: - 00000AD2 CD 00 00 1640 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000AD5 D0 FF 1641 DEFW 65488 - 00000AD7 FD E5 1642 PUSH IY - 00000AD9 AF 1643 XOR A - 00000ADA DD 77 FA 1644 LD (IX-6),A - 00000ADD DD 77 FB 1645 LD (IX-5),A - 00000AE0 DD 77 FC 1646 LD (IX-4),A - 00000AE3 DD 77 FD 1647 LD (IX-3),A - 00000AE6 59 1648 LD E,C - 00000AE7 50 1649 LD D,B - 00000AE8 CD 00 00 1650 CALL LWRD ?S_V_SWITCH_L06 - 00000AEB 08 00 1651 DEFW 8 - 00000AED 01 00 1652 DEFW 1 - 00000AEF 02 00 1653 DEFW 2 - 00000AF1 03 00 1654 DEFW 3 - 00000AF3 02 01 1655 DEFW 258 - 00000AF5 03 01 1656 DEFW 259 - 00000AF7 04 01 1657 DEFW 260 - 00000AF9 05 01 1658 DEFW 261 - 00000AFB 01 04 1659 DEFW 1025 - 00000AFD 6B 0D 1660 DEFW ?0159 - 00000AFF D9 0C 1661 DEFW ?0153 - 00000B01 6C 0C 1662 DEFW ?0144 - 00000B03 98 0C 1663 DEFW ?0145 - 00000B05 E0 0B 1664 DEFW ?0142 - 00000B07 F1 0B 1665 DEFW ?0143 - 00000B09 A5 0B 1666 DEFW ?0131 - 00000B0B 40 0B 1667 DEFW ?0119 - 00000B0D 0F 0B 1668 DEFW ?0113 - 00000B0F 1669 ?0113: - 00000B0F 21 15 00 1670 LD HL,21 - 00000B12 DD 4E 02 1671 LD C,(IX+2) - 00000B15 DD 46 03 1672 LD B,(IX+3) - 00000B18 09 1673 ADD HL,BC - 00000B19 46 1674 LD B,(HL) - 00000B1A 23 1675 INC HL - 00000B1B 66 1676 LD H,(HL) - 00000B1C 68 1677 LD L,B - 00000B1D 1678 ?0344: - 00000B1D E5 1679 PUSH HL - 00000B1E FD E1 1680 POP IY - 00000B20 1681 ?0115: - 00000B20 7D 1682 LD A,L - 00000B21 B4 1683 OR H - 00000B22 28 19 1684 JR Z,?0114 - 00000B24 1685 ?0116: - 00000B24 FD CB 0A 46 1686 BIT 0,(IY+10) - 00000B28 28 0B 1687 JR Z,?0118 - 00000B2A 1688 ?0117: - 00000B2A DD 6E 0A 1689 LD L,(IX+10) - 00000B2D DD 66 0B 1690 LD H,(IX+11) - 00000B30 E5 1691 PUSH HL - 00000B31 CD 70 0D 1692 CALL LWRD ?0462 - 00000B34 E1 1693 POP HL - 00000B35 1694 ?0118: - 00000B35 FD 6E 13 1695 LD L,(IY+19) - 00000B38 FD 66 14 1696 LD H,(IY+20) - 00000B3B 18 E0 1697 JR ?0344 - 00000B3D 1698 ?0114: - 00000B3D C3 6B 0D 1699 JP LWRD ?0159 - 00000B40 1700 ?0119: - 00000B40 21 15 00 1701 LD HL,21 - 00000B43 DD 4E 02 1702 LD C,(IX+2) - 00000B46 DD 46 03 1703 LD B,(IX+3) - 00000B49 09 1704 ADD HL,BC - 00000B4A 46 1705 LD B,(HL) - 00000B4B 23 1706 INC HL - 00000B4C 66 1707 LD H,(HL) - 00000B4D 68 1708 LD L,B - 00000B4E 1709 ?0348: - 00000B4E E5 1710 PUSH HL - 00000B4F FD E1 1711 POP IY - 00000B51 1712 ?0121: - 00000B51 7D 1713 LD A,L - 00000B52 B4 1714 OR H - 00000B53 28 4D 1715 JR Z,?0120 - 00000B55 1716 ?0122: - 00000B55 FD CB 0A 46 1717 BIT 0,(IY+10) - 00000B59 28 38 1718 JR Z,?0126 - 00000B5B 1719 ?0123: - 00000B5B DD 6E 0A 1720 LD L,(IX+10) - 00000B5E DD 66 0B 1721 LD H,(IX+11) - 00000B61 E5 1722 PUSH HL - 00000B62 CD 70 0D 1723 CALL LWRD ?0462 - 00000B65 E1 1724 POP HL - 00000B66 DD 6E 0A 1725 LD L,(IX+10) - 00000B69 DD 66 0B 1726 LD H,(IX+11) - 00000B6C E5 1727 PUSH HL - 00000B6D 01 03 00 1728 LD BC,3 - 00000B70 CD 76 0D 1729 CALL LWRD ?0463 - 00000B73 E1 1730 POP HL - 00000B74 FD 7E 0A 1731 LD A,(IY+10) - 00000B77 E6 22 1732 AND 34 - 00000B79 6F 1733 LD L,A - 00000B7A 26 00 1734 LD H,0 - 00000B7C 3E 22 1735 LD A,34 - 00000B7E AD 1736 XOR L - 00000B7F 20 12 1737 JR NZ,?0126 - 00000B81 FD 4E 10 1738 LD C,(IY+16) - 00000B84 44 1739 LD B,H - 00000B85 DD 6E 0A 1740 LD L,(IX+10) - 00000B88 DD 66 0B 1741 LD H,(IX+11) - 00000B8B ED 42 1742 SBC HL,BC - 00000B8D 20 04 1743 JR NZ,?0126 - 00000B8F 1744 ?0128: - 00000B8F 1745 ?0127: - 00000B8F 1746 ?0125: - 00000B8F FD 21 00 00 1747 LD IY,0 - 00000B93 1748 ?0126: - 00000B93 1749 ?0124: - 00000B93 FD E5 1750 PUSH IY - 00000B95 E1 1751 POP HL - 00000B96 7D 1752 LD A,L - 00000B97 B4 1753 OR H - 00000B98 28 B7 1754 JR Z,?0121 - 00000B9A 1755 ?0129: - 00000B9A FD 6E 13 1756 LD L,(IY+19) - 00000B9D FD 66 14 1757 LD H,(IY+20) - 00000BA0 18 AC 1758 JR ?0348 - 00000BA2 1759 ?0130: - 00000BA2 1760 ?0120: - 00000BA2 C3 6B 0D 1761 JP LWRD ?0159 - 00000BA5 1762 ?0131: - 00000BA5 DD 6E 02 1763 LD L,(IX+2) - 00000BA8 DD 66 03 1764 LD H,(IX+3) - 00000BAB E5 1765 PUSH HL - 00000BAC FD E1 1766 POP IY - 00000BAE 21 0A 00 1767 LD HL,10 - 00000BB1 DD 4E 02 1768 LD C,(IX+2) - 00000BB4 DD 46 03 1769 LD B,(IX+3) - 00000BB7 09 1770 ADD HL,BC - 00000BB8 CB 46 1771 BIT 0,(HL) - 00000BBA 28 21 1772 JR Z,?0139 - 00000BBC 1773 ?0132: - 00000BBC FD CB 0A 6E 1774 BIT 5,(IY+10) - 00000BC0 28 1B 1775 JR Z,?0139 - 00000BC2 FD 4E 10 1776 LD C,(IY+16) - 00000BC5 47 1777 LD B,A - 00000BC6 DD 6E 0A 1778 LD L,(IX+10) - 00000BC9 DD 66 0B 1779 LD H,(IX+11) - 00000BCC A7 1780 AND A - 00000BCD ED 42 1781 SBC HL,BC - 00000BCF 20 0C 1782 JR NZ,?0139 - 00000BD1 1783 ?0137: - 00000BD1 1784 ?0136: - 00000BD1 1785 ?0134: - 00000BD1 FD 6E 26 1786 LD L,(IY+38) - 00000BD4 FD 66 27 1787 LD H,(IY+39) - 00000BD7 FD E5 1788 PUSH IY - 00000BD9 D1 1789 POP DE - 00000BDA CD 95 0D 1790 CALL LWRD ?0474 - 00000BDD 1791 ?0138: - 00000BDD 1792 ?0139: - 00000BDD 1793 ?0135: - 00000BDD 1794 ?0133: - 00000BDD 1795 ?0140: - 00000BDD 1796 ?0141: - 00000BDD C3 6B 0D 1797 JP LWRD ?0159 - 00000BE0 1798 ?0142: - 00000BE0 DD 5E 02 1799 LD E,(IX+2) - 00000BE3 4B 1800 LD C,E - 00000BE4 DD 56 03 1801 LD D,(IX+3) - 00000BE7 42 1802 LD B,D - 00000BE8 21 1A 00 1803 LD HL,26 - 00000BEB CD 94 0D 1804 CALL LWRD ?0475 - 00000BEE C3 6B 0D 1805 JP LWRD ?0159 - 00000BF1 1806 ?0143: - 00000BF1 21 0A 00 1807 LD HL,10 - 00000BF4 DD 4E 02 1808 LD C,(IX+2) - 00000BF7 DD 46 03 1809 LD B,(IX+3) - 00000BFA 09 1810 ADD HL,BC - 00000BFB 7E 1811 LD A,(HL) - 00000BFC E6 FC 1812 AND 252 - 00000BFE 77 1813 LD (HL),A - 00000BFF 21 2E 00 1814 LD HL,46 - 00000C02 39 1815 ADD HL,SP - 00000C03 E5 1816 PUSH HL - 00000C04 2B 1817 DEC HL - 00000C05 2B 1818 DEC HL - 00000C06 4D 1819 LD C,L - 00000C07 44 1820 LD B,H - 00000C08 DD 5E 02 1821 LD E,(IX+2) - 00000C0B DD 56 03 1822 LD D,(IX+3) - 00000C0E CD 8C 0D 1823 CALL LWRD ?0466 - 00000C11 E1 1824 POP HL - 00000C12 21 08 00 1825 LD HL,8 - 00000C15 DD 4E 02 1826 LD C,(IX+2) - 00000C18 DD 46 03 1827 LD B,(IX+3) - 00000C1B 09 1828 ADD HL,BC - 00000C1C 5E 1829 LD E,(HL) - 00000C1D 23 1830 INC HL - 00000C1E 56 1831 LD D,(HL) - 00000C1F D5 1832 PUSH DE - 00000C20 21 06 00 1833 LD HL,6 - 00000C23 09 1834 ADD HL,BC - 00000C24 5E 1835 LD E,(HL) - 00000C25 23 1836 INC HL - 00000C26 56 1837 LD D,(HL) - 00000C27 D5 1838 PUSH DE - 00000C28 DD 6E FC 1839 LD L,(IX-4) - 00000C2B DD 66 FD 1840 LD H,(IX-3) - 00000C2E E5 1841 PUSH HL - 00000C2F DD 4E FA 1842 LD C,(IX-6) - 00000C32 DD 46 FB 1843 LD B,(IX-5) - 00000C35 11 00 00 1844 LD DE,0 - 00000C38 CD F2 02 1845 CALL LWRD ?0471 - 00000C3B E1 1846 POP HL - 00000C3C E1 1847 POP HL - 00000C3D E1 1848 POP HL - 00000C3E 21 00 00 1849 LD HL,0 - 00000C41 E5 1850 PUSH HL - 00000C42 2E 11 1851 LD L,17 - 00000C44 DD 5E 02 1852 LD E,(IX+2) - 00000C47 DD 56 03 1853 LD D,(IX+3) - 00000C4A 19 1854 ADD HL,DE - 00000C4B 5E 1855 LD E,(HL) - 00000C4C 23 1856 INC HL - 00000C4D 56 1857 LD D,(HL) - 00000C4E 21 11 00 1858 LD HL,17 - 00000C51 DD 4E 02 1859 LD C,(IX+2) - 00000C54 DD 46 03 1860 LD B,(IX+3) - 00000C57 09 1861 ADD HL,BC - 00000C58 46 1862 LD B,(HL) - 00000C59 23 1863 INC HL - 00000C5A 66 1864 LD H,(HL) - 00000C5B 68 1865 LD L,B - 00000C5C 01 17 00 1866 LD BC,23 - 00000C5F 09 1867 ADD HL,BC - 00000C60 4E 1868 LD C,(HL) - 00000C61 23 1869 INC HL - 00000C62 46 1870 LD B,(HL) - 00000C63 23 1871 INC HL - 00000C64 7E 1872 LD A,(HL) - 00000C65 69 1873 LD L,C - 00000C66 60 1874 LD H,B - 00000C67 01 03 01 1875 LD BC,259 - 00000C6A 18 29 1876 JR ?0347 - 00000C6C 1877 ?0144: - 00000C6C 21 11 00 1878 LD HL,17 - 00000C6F DD 4E 02 1879 LD C,(IX+2) - 00000C72 DD 46 03 1880 LD B,(IX+3) - 00000C75 09 1881 ADD HL,BC - 00000C76 56 1882 LD D,(HL) - 00000C77 23 1883 INC HL - 00000C78 66 1884 LD H,(HL) - 00000C79 6A 1885 LD L,D - 00000C7A E5 1886 PUSH HL - 00000C7B FD E1 1887 POP IY - 00000C7D 59 1888 LD E,C - 00000C7E 50 1889 LD D,B - 00000C7F CD 8F 09 1890 CALL LWRD ?0453 - 00000C82 21 00 00 1891 LD HL,0 - 00000C85 E5 1892 PUSH HL - 00000C86 01 03 01 1893 LD BC,259 - 00000C89 FD E5 1894 PUSH IY - 00000C8B D1 1895 POP DE - 00000C8C FD 7E 19 1896 LD A,(IY+25) - 00000C8F FD 6E 17 1897 LD L,(IY+23) - 00000C92 FD 66 18 1898 LD H,(IY+24) - 00000C95 1899 ?0347: - 00000C95 C3 67 0D 1900 JP LWRD ?0346 - 00000C98 1901 ?0145: - 00000C98 21 15 00 1902 LD HL,21 - 00000C9B DD 4E 02 1903 LD C,(IX+2) - 00000C9E DD 46 03 1904 LD B,(IX+3) - 00000CA1 09 1905 ADD HL,BC - 00000CA2 46 1906 LD B,(HL) - 00000CA3 23 1907 INC HL - 00000CA4 66 1908 LD H,(HL) - 00000CA5 68 1909 LD L,B - 00000CA6 1910 ?0345: - 00000CA6 E5 1911 PUSH HL - 00000CA7 FD E1 1912 POP IY - 00000CA9 1913 ?0147: - 00000CA9 7D 1914 LD A,L - 00000CAA B4 1915 OR H - 00000CAB 28 29 1916 JR Z,?0146 - 00000CAD 1917 ?0148: - 00000CAD DD 6E 0A 1918 LD L,(IX+10) - 00000CB0 DD 66 0B 1919 LD H,(IX+11) - 00000CB3 FD E5 1920 PUSH IY - 00000CB5 C1 1921 POP BC - 00000CB6 ED 42 1922 SBC HL,BC - 00000CB8 28 14 1923 JR Z,?0150 - 00000CBA FD CB 0A 5E 1924 BIT 3,(IY+10) - 00000CBE 28 0E 1925 JR Z,?0150 - 00000CC0 1926 ?0152: - 00000CC0 1927 ?0151: - 00000CC0 1928 ?0149: - 00000CC0 DD 6E 0A 1929 LD L,(IX+10) - 00000CC3 DD 66 0B 1930 LD H,(IX+11) - 00000CC6 E5 1931 PUSH HL - 00000CC7 01 03 02 1932 LD BC,515 - 00000CCA CD 76 0D 1933 CALL LWRD ?0463 - 00000CCD E1 1934 POP HL - 00000CCE 1935 ?0150: - 00000CCE FD 6E 13 1936 LD L,(IY+19) - 00000CD1 FD 66 14 1937 LD H,(IY+20) - 00000CD4 18 D0 1938 JR ?0345 - 00000CD6 1939 ?0146: - 00000CD6 C3 6B 0D 1940 JP LWRD ?0159 - 00000CD9 1941 ?0153: - 00000CD9 21 11 00 1942 LD HL,17 - 00000CDC DD 4E 02 1943 LD C,(IX+2) - 00000CDF DD 46 03 1944 LD B,(IX+3) - 00000CE2 09 1945 ADD HL,BC - 00000CE3 7E 1946 LD A,(HL) - 00000CE4 23 1947 INC HL - 00000CE5 B6 1948 OR (HL) - 00000CE6 20 0E 1949 JR NZ,?0155 - 00000CE8 1950 ?0154: - 00000CE8 21 04 00 1951 LD HL,4 - 00000CEB ED 4B 00 00 1952 LD BC,(global) - 00000CEF 09 1953 ADD HL,BC - 00000CF0 36 01 1954 LD (HL),1 - 00000CF2 23 1955 INC HL - 00000CF3 77 1956 LD (HL),A - 00000CF4 18 75 1957 JR ?0159 - 00000CF6 1958 ?0155: - 00000CF6 21 0A 00 1959 LD HL,10 - 00000CF9 09 1960 ADD HL,BC - 00000CFA 23 1961 INC HL - 00000CFB CB 6E 1962 BIT 5,(HL) - 00000CFD 20 28 1963 JR NZ,?0158 - 00000CFF 1964 ?0157: - 00000CFF DD 6E 0A 1965 LD L,(IX+10) - 00000D02 DD 66 0B 1966 LD H,(IX+11) - 00000D05 E5 1967 PUSH HL - 00000D06 21 11 00 1968 LD HL,17 - 00000D09 59 1969 LD E,C - 00000D0A 50 1970 LD D,B - 00000D0B 19 1971 ADD HL,DE - 00000D0C 5E 1972 LD E,(HL) - 00000D0D 23 1973 INC HL - 00000D0E 56 1974 LD D,(HL) - 00000D0F 21 11 00 1975 LD HL,17 - 00000D12 09 1976 ADD HL,BC - 00000D13 46 1977 LD B,(HL) - 00000D14 23 1978 INC HL - 00000D15 66 1979 LD H,(HL) - 00000D16 68 1980 LD L,B - 00000D17 01 17 00 1981 LD BC,23 - 00000D1A 09 1982 ADD HL,BC - 00000D1B 4E 1983 LD C,(HL) - 00000D1C 23 1984 INC HL - 00000D1D 46 1985 LD B,(HL) - 00000D1E 23 1986 INC HL - 00000D1F 7E 1987 LD A,(HL) - 00000D20 69 1988 LD L,C - 00000D21 60 1989 LD H,B - 00000D22 01 01 04 1990 LD BC,1025 - 00000D25 18 40 1991 JR ?0346 - 00000D27 1992 ?0158: - 00000D27 21 11 00 1993 LD HL,17 - 00000D2A 09 1994 ADD HL,BC - 00000D2B 56 1995 LD D,(HL) - 00000D2C 23 1996 INC HL - 00000D2D 66 1997 LD H,(HL) - 00000D2E 6A 1998 LD L,D - 00000D2F E5 1999 PUSH HL - 00000D30 FD E1 2000 POP IY - 00000D32 11 0A 00 2001 LD DE,10 - 00000D35 19 2002 ADD HL,DE - 00000D36 7E 2003 LD A,(HL) - 00000D37 F6 03 2004 OR 3 - 00000D39 77 2005 LD (HL),A - 00000D3A 6A 2006 LD L,D - 00000D3B 62 2007 LD H,D - 00000D3C E5 2008 PUSH HL - 00000D3D 23 2009 INC HL - 00000D3E E5 2010 PUSH HL - 00000D3F 4A 2011 LD C,D - 00000D40 42 2012 LD B,D - 00000D41 FD E5 2013 PUSH IY - 00000D43 D1 2014 POP DE - 00000D44 3E B6 2015 LD A,BYTE3 Component_changestate_children - 00000D46 21 B6 09 2016 LD HL,LWRD Component_changestate_children - 00000D49 CD 00 00 2017 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000D4C E1 2018 POP HL - 00000D4D E1 2019 POP HL - 00000D4E 21 00 00 2020 LD HL,0 - 00000D51 E5 2021 PUSH HL - 00000D52 DD 5E 02 2022 LD E,(IX+2) - 00000D55 4B 2023 LD C,E - 00000D56 DD 56 03 2024 LD D,(IX+3) - 00000D59 42 2025 LD B,D - 00000D5A 2E 17 2026 LD L,23 - 00000D5C 09 2027 ADD HL,BC - 00000D5D 4E 2028 LD C,(HL) - 00000D5E 23 2029 INC HL - 00000D5F 46 2030 LD B,(HL) - 00000D60 23 2031 INC HL - 00000D61 7E 2032 LD A,(HL) - 00000D62 69 2033 LD L,C - 00000D63 60 2034 LD H,B - 00000D64 01 05 01 2035 LD BC,261 - 00000D67 2036 ?0346: - 00000D67 CD 00 00 2037 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000D6A E1 2038 POP HL - 00000D6B 2039 ?0159: - 00000D6B 2040 ?0156: - 00000D6B 2041 ?0112: - 00000D6B FD E1 2042 POP IY - 00000D6D C3 00 00 2043 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000D70 2044 ?0462: - 00000D70 DD 4E 04 2045 LD C,(IX+4) - 00000D73 DD 46 05 2046 LD B,(IX+5) - 00000D76 2047 ?0463: - 00000D76 FD E5 2048 PUSH IY - 00000D78 D1 2049 POP DE - 00000D79 FD 7E 19 2050 LD A,(IY+25) - 00000D7C FD 6E 17 2051 LD L,(IY+23) - 00000D7F FD 66 18 2052 LD H,(IY+24) - 00000D82 C3 00 00 2053 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000D85 2054 ?0467: - 00000D85 23 2055 INC HL - 00000D86 23 2056 INC HL - 00000D87 2057 ?0468: - 00000D87 4D 2058 LD C,L - 00000D88 44 2059 LD B,H - 00000D89 DD E5 2060 PUSH IX - 00000D8B D1 2061 POP DE - 00000D8C 2062 ?0466: - 00000D8C 3E 4A 2063 LD A,BYTE3 Component_findXY - 00000D8E 21 4A 07 2064 LD HL,LWRD Component_findXY - 00000D91 C3 00 00 2065 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000D94 2066 ?0475: - 00000D94 09 2067 ADD HL,BC - 00000D95 2068 ?0474: - 00000D95 4E 2069 LD C,(HL) - 00000D96 23 2070 INC HL - 00000D97 46 2071 LD B,(HL) - 00000D98 23 2072 INC HL - 00000D99 7E 2073 LD A,(HL) - 00000D9A 69 2074 LD L,C - 00000D9B 60 2075 LD H,B - 00000D9C C3 00 00 2076 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000D9F 2077 Window_paint: - 00000D9F CD 00 00 2078 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000DA2 FC FF 2079 DEFW -4 - 00000DA4 FD E5 2080 PUSH IY - 00000DA6 DD 6E 02 2081 LD L,(IX+2) - 00000DA9 DD 66 03 2082 LD H,(IX+3) - 00000DAC E5 2083 PUSH HL - 00000DAD FD E1 2084 POP IY - 00000DAF AF 2085 XOR A - 00000DB0 DD 77 FE 2086 LD (IX-2),A - 00000DB3 DD 77 FF 2087 LD (IX-1),A - 00000DB6 DD 77 FC 2088 LD (IX-4),A - 00000DB9 DD 77 FD 2089 LD (IX-3),A - 00000DBC 21 0A 00 2090 LD HL,10 - 00000DBF ED 4B 00 00 2091 LD BC,(global) - 00000DC3 09 2092 ADD HL,BC - 00000DC4 7E 2093 LD A,(HL) - 00000DC5 23 2094 INC HL - 00000DC6 66 2095 LD H,(HL) - 00000DC7 6F 2096 LD L,A - 00000DC8 46 2097 LD B,(HL) - 00000DC9 23 2098 INC HL - 00000DCA 66 2099 LD H,(HL) - 00000DCB 68 2100 LD L,B - 00000DCC FD 4E 0E 2101 LD C,(IY+14) - 00000DCF FD 46 0F 2102 LD B,(IY+15) - 00000DD2 A7 2103 AND A - 00000DD3 ED 42 2104 SBC HL,BC - 00000DD5 28 09 2105 JR Z,?0161 - 00000DD7 2106 ?0160: - 00000DD7 FD 5E 0E 2107 LD E,(IY+14) - 00000DDA FD 56 0F 2108 LD D,(IY+15) - 00000DDD CD 24 0F 2109 CALL LWRD ?0472 - 00000DE0 2110 ?0161: - 00000DE0 FD CB 0A 46 2111 BIT 0,(IY+10) - 00000DE4 CA DC 0E 2112 JP Z,?0163 - 00000DE7 2113 ?0162: - 00000DE7 21 02 00 2114 LD HL,2 - 00000DEA 39 2115 ADD HL,SP - 00000DEB E5 2116 PUSH HL - 00000DEC 23 2117 INC HL - 00000DED 23 2118 INC HL - 00000DEE 4D 2119 LD C,L - 00000DEF 44 2120 LD B,H - 00000DF0 FD E5 2121 PUSH IY - 00000DF2 D1 2122 POP DE - 00000DF3 CD 8C 0D 2123 CALL LWRD ?0466 - 00000DF6 E1 2124 POP HL - 00000DF7 CD 40 07 2125 CALL LWRD ?0477 - 00000DFA DD 4E FC 2126 LD C,(IX-4) - 00000DFD DD 46 FD 2127 LD B,(IX-3) - 00000E00 DD 5E FE 2128 LD E,(IX-2) - 00000E03 DD 56 FF 2129 LD D,(IX-1) - 00000E06 3E A3 2130 LD A,BYTE3 Move - 00000E08 21 A3 00 2131 LD HL,LWRD Move - 00000E0B CD 00 00 2132 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000E0E FD 4E 08 2133 LD C,(IY+8) - 00000E11 FD 46 09 2134 LD B,(IY+9) - 00000E14 FD 5E 06 2135 LD E,(IY+6) - 00000E17 FD 56 07 2136 LD D,(IY+7) - 00000E1A 3E E2 2137 LD A,BYTE3 ClearRect - 00000E1C 21 E2 00 2138 LD HL,LWRD ClearRect - 00000E1F CD 00 00 2139 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000E22 FD 6E 08 2140 LD L,(IY+8) - 00000E25 FD 66 09 2141 LD H,(IY+9) - 00000E28 E5 2142 PUSH HL - 00000E29 FD 6E 06 2143 LD L,(IY+6) - 00000E2C FD 66 07 2144 LD H,(IY+7) - 00000E2F E5 2145 PUSH HL - 00000E30 DD 6E FC 2146 LD L,(IX-4) - 00000E33 DD 66 FD 2147 LD H,(IX-3) - 00000E36 E5 2148 PUSH HL - 00000E37 DD 4E FE 2149 LD C,(IX-2) - 00000E3A DD 46 FF 2150 LD B,(IX-1) - 00000E3D 11 00 00 2151 LD DE,0 - 00000E40 CD F2 02 2152 CALL LWRD ?0471 - 00000E43 E1 2153 POP HL - 00000E44 E1 2154 POP HL - 00000E45 E1 2155 POP HL - 00000E46 FD 5E 20 2156 LD E,(IY+32) - 00000E49 FD 56 21 2157 LD D,(IY+33) - 00000E4C 21 0A 00 2158 LD HL,10 - 00000E4F ED 4B 00 00 2159 LD BC,(global) - 00000E53 09 2160 ADD HL,BC - 00000E54 7E 2161 LD A,(HL) - 00000E55 23 2162 INC HL - 00000E56 66 2163 LD H,(HL) - 00000E57 6F 2164 LD L,A - 00000E58 CD E1 0E 2165 CALL LWRD ?0455 - 00000E5B DD 4E FC 2166 LD C,(IX-4) - 00000E5E DD 46 FD 2167 LD B,(IX-3) - 00000E61 09 2168 ADD HL,BC - 00000E62 11 04 00 2169 LD DE,4 - 00000E65 19 2170 ADD HL,DE - 00000E66 4D 2171 LD C,L - 00000E67 44 2172 LD B,H - 00000E68 CD EF 0E 2173 CALL LWRD ?0459 - 00000E6B 7E 2174 LD A,(HL) - 00000E6C 23 2175 INC HL - 00000E6D 66 2176 LD H,(HL) - 00000E6E 6F 2177 LD L,A - 00000E6F 01 05 00 2178 LD BC,5 - 00000E72 09 2179 ADD HL,BC - 00000E73 4E 2180 LD C,(HL) - 00000E74 23 2181 INC HL - 00000E75 46 2182 LD B,(HL) - 00000E76 23 2183 INC HL - 00000E77 7E 2184 LD A,(HL) - 00000E78 69 2185 LD L,C - 00000E79 60 2186 LD H,B - 00000E7A CD 13 04 2187 CALL LWRD ?0444 - 00000E7D 01 FC FF 2188 LD BC,65532 - 00000E80 09 2189 ADD HL,BC - 00000E81 4D 2190 LD C,L - 00000E82 44 2191 LD B,H - 00000E83 FD 5E 06 2192 LD E,(IY+6) - 00000E86 FD 56 07 2193 LD D,(IY+7) - 00000E89 3E 25 2194 LD A,BYTE3 DrawRectNC - 00000E8B 21 25 01 2195 LD HL,LWRD DrawRectNC - 00000E8E CD 00 00 2196 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000E91 DD 4E FC 2197 LD C,(IX-4) - 00000E94 DD 46 FD 2198 LD B,(IX-3) - 00000E97 CD EF 0E 2199 CALL LWRD ?0459 - 00000E9A 46 2200 LD B,(HL) - 00000E9B 23 2201 INC HL - 00000E9C 66 2202 LD H,(HL) - 00000E9D 68 2203 LD L,B - 00000E9E CD E1 0E 2204 CALL LWRD ?0455 - 00000EA1 01 05 00 2205 LD BC,5 - 00000EA4 09 2206 ADD HL,BC - 00000EA5 4D 2207 LD C,L - 00000EA6 44 2208 LD B,H - 00000EA7 FD 5E 06 2209 LD E,(IY+6) - 00000EAA FD 56 07 2210 LD D,(IY+7) - 00000EAD 3E 6A 2211 LD A,BYTE3 FillRect - 00000EAF 21 6A 01 2212 LD HL,LWRD FillRect - 00000EB2 CD 00 00 2213 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000EB5 21 0E 00 2214 LD HL,14 - 00000EB8 DD 4E FC 2215 LD C,(IX-4) - 00000EBB DD 46 FD 2216 LD B,(IX-3) - 00000EBE 09 2217 ADD HL,BC - 00000EBF 4D 2218 LD C,L - 00000EC0 44 2219 LD B,H - 00000EC1 DD 5E FE 2220 LD E,(IX-2) - 00000EC4 DD 56 FF 2221 LD D,(IX-1) - 00000EC7 13 2222 INC DE - 00000EC8 13 2223 INC DE - 00000EC9 3E A3 2224 LD A,BYTE3 Move - 00000ECB 21 A3 00 2225 LD HL,LWRD Move - 00000ECE CD 0C 0F 2226 CALL LWRD ?0460 - 00000ED1 FD E5 2227 PUSH IY - 00000ED3 D1 2228 POP DE - 00000ED4 3E 04 2229 LD A,BYTE3 Component_paint - 00000ED6 21 04 07 2230 LD HL,LWRD Component_paint - 00000ED9 CD 00 00 2231 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000EDC 2232 ?0163: - 00000EDC FD E1 2233 POP IY - 00000EDE C3 00 00 2234 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000EE1 2235 ?0455: - 00000EE1 01 05 00 2236 LD BC,5 - 00000EE4 09 2237 ADD HL,BC - 00000EE5 4E 2238 LD C,(HL) - 00000EE6 23 2239 INC HL - 00000EE7 46 2240 LD B,(HL) - 00000EE8 23 2241 INC HL - 00000EE9 7E 2242 LD A,(HL) - 00000EEA 69 2243 LD L,C - 00000EEB 60 2244 LD H,B - 00000EEC C3 00 00 2245 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000EEF 2246 ?0459: - 00000EEF DD 5E FE 2247 LD E,(IX-2) - 00000EF2 DD 56 FF 2248 LD D,(IX-1) - 00000EF5 3E A3 2249 LD A,BYTE3 Move - 00000EF7 21 A3 00 2250 LD HL,LWRD Move - 00000EFA CD 00 00 2251 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000EFD FD 5E 20 2252 LD E,(IY+32) - 00000F00 FD 56 21 2253 LD D,(IY+33) - 00000F03 21 0A 00 2254 LD HL,10 - 00000F06 ED 4B 00 00 2255 LD BC,(global) - 00000F0A 09 2256 ADD HL,BC - 00000F0B C9 2257 RET - 00000F0C 2258 ?0460: - 00000F0C CD 00 00 2259 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000F0F FD 5E 20 2260 LD E,(IY+32) - 00000F12 FD 56 21 2261 LD D,(IY+33) - 00000F15 3E 39 2262 LD A,BYTE3 Text - 00000F17 21 39 02 2263 LD HL,LWRD Text - 00000F1A CD 00 00 2264 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000F1D C9 2265 RET - 00000F1E 2266 ?0473: - 00000F1E DD 5E 0E 2267 LD E,(IX+14) - 00000F21 DD 56 0F 2268 LD D,(IX+15) - 00000F24 2269 ?0472: - 00000F24 3E A5 2270 LD A,BYTE3 setCurrentFont - 00000F26 21 A5 03 2271 LD HL,LWRD setCurrentFont - 00000F29 C3 00 00 2272 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000F2C 2273 Root_paint: - 00000F2C CD 00 00 2274 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00000F2F CD 40 07 2275 CALL LWRD ?0477 - 00000F32 CD D7 02 2276 CALL LWRD ?0461 - 00000F35 CD 00 00 2277 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000F38 01 80 00 2278 LD BC,128 - 00000F3B 58 2279 LD E,B - 00000F3C 50 2280 LD D,B - 00000F3D 3E F4 2281 LD A,BYTE3 GrayRect - 00000F3F 21 F4 01 2282 LD HL,LWRD GrayRect - 00000F42 CD 00 00 2283 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000F45 21 80 00 2284 LD HL,128 - 00000F48 E5 2285 PUSH HL - 00000F49 6C 2286 LD L,H - 00000F4A E5 2287 PUSH HL - 00000F4B E5 2288 PUSH HL - 00000F4C CD EF 02 2289 CALL LWRD ?0470 - 00000F4F E1 2290 POP HL - 00000F50 E1 2291 POP HL - 00000F51 E1 2292 POP HL - 00000F52 DD 5E 02 2293 LD E,(IX+2) - 00000F55 DD 56 03 2294 LD D,(IX+3) - 00000F58 3E 04 2295 LD A,BYTE3 Component_paint - 00000F5A 21 04 07 2296 LD HL,LWRD Component_paint - 00000F5D CD 00 00 2297 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000F60 C3 00 00 2298 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000F63 2299 Window_add: - 00000F63 CD 00 00 2300 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00000F66 3E A6 2301 LD A,BYTE3 Component_add - 00000F68 21 A6 06 2302 LD HL,LWRD Component_add - 00000F6B CD 00 00 2303 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000F6E C3 00 00 2304 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00000F71 2305 Window_new: - 00000F71 CD 00 00 2306 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00000F74 00 00 2307 DEFW 0 - 00000F76 FD E5 2308 PUSH IY - 00000F78 DD 6E 0C 2309 LD L,(IX+12) - 00000F7B DD 66 0D 2310 LD H,(IX+13) - 00000F7E E5 2311 PUSH HL - 00000F7F DD 6E 0A 2312 LD L,(IX+10) - 00000F82 DD 66 0B 2313 LD H,(IX+11) - 00000F85 E5 2314 PUSH HL - 00000F86 CD B5 0F 2315 CALL LWRD ?0438 - 00000F89 F1 2316 POP AF - 00000F8A F1 2317 POP AF - 00000F8B E5 2318 PUSH HL - 00000F8C FD E1 2319 POP IY - 00000F8E 01 17 00 2320 LD BC,23 - 00000F91 09 2321 ADD HL,BC - 00000F92 36 D2 2322 LD (HL),LOW(Window_handler) - 00000F94 23 2323 INC HL - 00000F95 36 0A 2324 LD (HL),HIGH(Window_handler) - 00000F97 23 2325 INC HL - 00000F98 36 D2 2326 LD (HL),BYTE3 Window_handler - 00000F9A FD 36 1A 9F 2327 LD (IY+26),LOW(Window_paint) - 00000F9E FD 36 1B 0D 2328 LD (IY+27),HIGH(Window_paint) - 00000FA2 FD 36 1C 9F 2329 LD (IY+28),BYTE3 Window_paint - 00000FA6 FD 36 1D 63 2330 LD (IY+29),LOW(Window_add) - 00000FAA FD 36 1E 0F 2331 LD (IY+30),HIGH(Window_add) - 00000FAE FD 36 1F 63 2332 LD (IY+31),BYTE3 Window_add - 00000FB2 C3 51 06 2333 JP LWRD ?0418 - 00000FB5 2334 ?0438: - 00000FB5 DD 5E 02 2335 LD E,(IX+2) - 00000FB8 DD 56 03 2336 LD D,(IX+3) - 00000FBB 3E AF 2337 LD A,BYTE3 Component_new - 00000FBD 21 AF 05 2338 LD HL,LWRD Component_new - 00000FC0 C3 00 00 2339 JP LWRD ?BANK_CALL_DIRECT_L08 - 00000FC3 2340 Button_handler: - 00000FC3 CD 00 00 2341 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00000FC6 FD E5 2342 PUSH IY - 00000FC8 D5 2343 PUSH DE - 00000FC9 FD E1 2344 POP IY - 00000FCB DD 6E 0A 2345 LD L,(IX+10) - 00000FCE DD 66 0B 2346 LD H,(IX+11) - 00000FD1 E5 2347 PUSH HL - 00000FD2 3E D2 2348 LD A,BYTE3 Window_handler - 00000FD4 21 D2 0A 2349 LD HL,LWRD Window_handler - 00000FD7 CD 00 00 2350 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00000FDA E1 2351 POP HL - 00000FDB 3E 03 2352 LD A,3 - 00000FDD DD AE 04 2353 XOR (IX+4) - 00000FE0 DD B6 05 2354 OR (IX+5) - 00000FE3 20 3E 2355 JR NZ,?0169 - 00000FE5 FD 4E 10 2356 LD C,(IY+16) - 00000FE8 47 2357 LD B,A - 00000FE9 DD 6E 0A 2358 LD L,(IX+10) - 00000FEC DD 66 0B 2359 LD H,(IX+11) - 00000FEF ED 42 2360 SBC HL,BC - 00000FF1 20 30 2361 JR NZ,?0169 - 00000FF3 FD 7E 0A 2362 LD A,(IY+10) - 00000FF6 E6 03 2363 AND 3 - 00000FF8 28 29 2364 JR Z,?0169 - 00000FFA 2365 ?0167: - 00000FFA 2366 ?0166: - 00000FFA 2367 ?0164: - 00000FFA DD 6E 0A 2368 LD L,(IX+10) - 00000FFD DD 66 0B 2369 LD H,(IX+11) - 00001000 E5 2370 PUSH HL - 00001001 FD 5E 11 2371 LD E,(IY+17) - 00001004 FD 56 12 2372 LD D,(IY+18) - 00001007 FD 6E 11 2373 LD L,(IY+17) - 0000100A FD 66 12 2374 LD H,(IY+18) - 0000100D 0E 17 2375 LD C,23 - 0000100F CD 50 10 2376 CALL LWRD ?0464 - 00001012 E1 2377 POP HL - 00001013 FD CB 0A 66 2378 BIT 4,(IY+10) - 00001017 28 0A 2379 JR Z,?0169 - 00001019 2380 ?0168: - 00001019 FD 4E 10 2381 LD C,(IY+16) - 0000101C 06 00 2382 LD B,0 - 0000101E C5 2383 PUSH BC - 0000101F CD 5E 10 2384 CALL LWRD ?0469 - 00001022 E1 2385 POP HL - 00001023 2386 ?0169: - 00001023 2387 ?0165: - 00001023 21 01 02 2388 LD HL,513 - 00001026 DD 4E 04 2389 LD C,(IX+4) - 00001029 DD 46 05 2390 LD B,(IX+5) - 0000102C A7 2391 AND A - 0000102D ED 42 2392 SBC HL,BC - 0000102F 20 0B 2393 JR NZ,?0171 - 00001031 2394 ?0170: - 00001031 DD 6E 0A 2395 LD L,(IX+10) - 00001034 DD 66 0B 2396 LD H,(IX+11) - 00001037 E5 2397 PUSH HL - 00001038 CD 41 10 2398 CALL LWRD ?0465 - 0000103B E1 2399 POP HL - 0000103C 2400 ?0171: - 0000103C FD E1 2401 POP IY - 0000103E C3 00 00 2402 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00001041 2403 ?0465: - 00001041 FD 5E 11 2404 LD E,(IY+17) - 00001044 FD 56 12 2405 LD D,(IY+18) - 00001047 FD 6E 11 2406 LD L,(IY+17) - 0000104A FD 66 12 2407 LD H,(IY+18) - 0000104D 01 17 00 2408 LD BC,23 - 00001050 2409 ?0464: - 00001050 09 2410 ADD HL,BC - 00001051 4E 2411 LD C,(HL) - 00001052 23 2412 INC HL - 00001053 46 2413 LD B,(HL) - 00001054 23 2414 INC HL - 00001055 7E 2415 LD A,(HL) - 00001056 69 2416 LD L,C - 00001057 60 2417 LD H,B - 00001058 01 01 02 2418 LD BC,513 - 0000105B C3 00 00 2419 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000105E 2420 ?0469: - 0000105E FD 5E 11 2421 LD E,(IY+17) - 00001061 FD 56 12 2422 LD D,(IY+18) - 00001064 FD 6E 11 2423 LD L,(IY+17) - 00001067 FD 66 12 2424 LD H,(IY+18) - 0000106A 0E 17 2425 LD C,23 - 0000106C 09 2426 ADD HL,BC - 0000106D 4E 2427 LD C,(HL) - 0000106E 23 2428 INC HL - 0000106F 46 2429 LD B,(HL) - 00001070 23 2430 INC HL - 00001071 7E 2431 LD A,(HL) - 00001072 69 2432 LD L,C - 00001073 60 2433 LD H,B - 00001074 01 04 01 2434 LD BC,260 - 00001077 C3 00 00 2435 JP LWRD ?BANK_CALL_DIRECT_L08 - 0000107A 2436 Button_drawtext: - 0000107A CD 00 00 2437 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000107D FD E5 2438 PUSH IY - 0000107F D5 2439 PUSH DE - 00001080 FD E1 2440 POP IY - 00001082 21 0A 00 2441 LD HL,10 - 00001085 19 2442 ADD HL,DE - 00001086 CB 76 2443 BIT 6,(HL) - 00001088 FD 5E 20 2444 LD E,(IY+32) - 0000108B FD 56 21 2445 LD D,(IY+33) - 0000108E 21 0A 00 2446 LD HL,10 - 00001091 ED 4B 00 00 2447 LD BC,(global) - 00001095 09 2448 ADD HL,BC - 00001096 7E 2449 LD A,(HL) - 00001097 23 2450 INC HL - 00001098 66 2451 LD H,(HL) - 00001099 6F 2452 LD L,A - 0000109A 01 05 00 2453 LD BC,5 - 0000109D 09 2454 ADD HL,BC - 0000109E 4E 2455 LD C,(HL) - 0000109F 23 2456 INC HL - 000010A0 46 2457 LD B,(HL) - 000010A1 23 2458 INC HL - 000010A2 7E 2459 LD A,(HL) - 000010A3 69 2460 LD L,C - 000010A4 60 2461 LD H,B - 000010A5 28 53 2462 JR Z,?0173 - 000010A7 2463 ?0172: - 000010A7 CD 00 00 2464 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000010AA 29 2465 ADD HL,HL - 000010AB 4D 2466 LD C,L - 000010AC 44 2467 LD B,H - 000010AD FD 6E 08 2468 LD L,(IY+8) - 000010B0 FD 66 09 2469 LD H,(IY+9) - 000010B3 A7 2470 AND A - 000010B4 ED 42 2471 SBC HL,BC - 000010B6 CD 27 11 2472 CALL LWRD ?0480 - 000010B9 0E 0C 2473 LD C,12 - 000010BB 09 2474 ADD HL,BC - 000010BC E5 2475 PUSH HL - 000010BD FD 5E 20 2476 LD E,(IY+32) - 000010C0 FD 56 21 2477 LD D,(IY+33) - 000010C3 21 0A 00 2478 LD HL,10 - 000010C6 ED 4B 00 00 2479 LD BC,(global) - 000010CA 09 2480 ADD HL,BC - 000010CB 7E 2481 LD A,(HL) - 000010CC 23 2482 INC HL - 000010CD 66 2483 LD H,(HL) - 000010CE 6F 2484 LD L,A - 000010CF CD E7 03 2485 CALL LWRD ?0442 - 000010D2 C1 2486 POP BC - 000010D3 CD 0C 0F 2487 CALL LWRD ?0460 - 000010D6 FD 5E 08 2488 LD E,(IY+8) - 000010D9 FD 56 09 2489 LD D,(IY+9) - 000010DC CD 28 11 2490 CALL LWRD ?0481 - 000010DF 0E 0A 2491 LD C,10 - 000010E1 09 2492 ADD HL,BC - 000010E2 E5 2493 PUSH HL - 000010E3 FD 5E 22 2494 LD E,(IY+34) - 000010E6 FD 56 23 2495 LD D,(IY+35) - 000010E9 69 2496 LD L,C - 000010EA 60 2497 LD H,B - 000010EB CD DE 03 2498 CALL LWRD ?0443 - 000010EE C1 2499 POP BC - 000010EF CD 00 00 2500 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000010F2 FD 5E 22 2501 LD E,(IY+34) - 000010F5 FD 56 23 2502 LD D,(IY+35) - 000010F8 18 20 2503 JR ?0350 - 000010FA 2504 ?0173: - 000010FA CD 13 04 2505 CALL LWRD ?0444 - 000010FD CD 27 11 2506 CALL LWRD ?0480 - 00001100 0E 0D 2507 LD C,13 - 00001102 09 2508 ADD HL,BC - 00001103 E5 2509 PUSH HL - 00001104 FD 5E 20 2510 LD E,(IY+32) - 00001107 FD 56 21 2511 LD D,(IY+33) - 0000110A 21 0A 00 2512 LD HL,10 - 0000110D CD DE 03 2513 CALL LWRD ?0443 - 00001110 C1 2514 POP BC - 00001111 CD 00 00 2515 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001114 FD 5E 20 2516 LD E,(IY+32) - 00001117 FD 56 21 2517 LD D,(IY+33) - 0000111A 2518 ?0350: - 0000111A 3E 39 2519 LD A,BYTE3 Text - 0000111C 21 39 02 2520 LD HL,LWRD Text - 0000111F 2521 ?0424: - 0000111F CD 00 00 2522 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001122 2523 ?0174: - 00001122 FD E1 2524 POP IY - 00001124 C3 00 00 2525 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00001127 2526 ?0480: - 00001127 EB 2527 EX DE,HL - 00001128 2528 ?0481: - 00001128 01 02 00 2529 LD BC,2 - 0000112B CD 00 00 2530 CALL LWRD ?SS_DIV_L02 - 0000112E DD 6E 0A 2531 LD L,(IX+10) - 00001131 DD 66 0B 2532 LD H,(IX+11) - 00001134 19 2533 ADD HL,DE - 00001135 C9 2534 RET - 00001136 2535 Button_paint: - 00001136 C5 2536 PUSH BC - 00001137 DD E5 2537 PUSH IX - 00001139 F5 2538 PUSH AF - 0000113A F5 2539 PUSH AF - 0000113B D5 2540 PUSH DE - 0000113C DD E1 2541 POP IX - 0000113E 21 02 00 2542 LD HL,2 - 00001141 39 2543 ADD HL,SP - 00001142 AF 2544 XOR A - 00001143 77 2545 LD (HL),A - 00001144 23 2546 INC HL - 00001145 77 2547 LD (HL),A - 00001146 2B 2548 DEC HL - 00001147 2B 2549 DEC HL - 00001148 2B 2550 DEC HL - 00001149 77 2551 LD (HL),A - 0000114A 23 2552 INC HL - 0000114B 77 2553 LD (HL),A - 0000114C 21 0A 00 2554 LD HL,10 - 0000114F ED 4B 00 00 2555 LD BC,(global) - 00001153 09 2556 ADD HL,BC - 00001154 7E 2557 LD A,(HL) - 00001155 23 2558 INC HL - 00001156 66 2559 LD H,(HL) - 00001157 6F 2560 LD L,A - 00001158 46 2561 LD B,(HL) - 00001159 23 2562 INC HL - 0000115A 66 2563 LD H,(HL) - 0000115B 68 2564 LD L,B - 0000115C E5 2565 PUSH HL - 0000115D 21 0E 00 2566 LD HL,14 - 00001160 19 2567 ADD HL,DE - 00001161 4E 2568 LD C,(HL) - 00001162 23 2569 INC HL - 00001163 46 2570 LD B,(HL) - 00001164 E1 2571 POP HL - 00001165 A7 2572 AND A - 00001166 ED 42 2573 SBC HL,BC - 00001168 28 03 2574 JR Z,?0176 - 0000116A 2575 ?0175: - 0000116A CD 1E 0F 2576 CALL LWRD ?0473 - 0000116D 2577 ?0176: - 0000116D DD CB 0A 46 2578 BIT 0,(IX+10) - 00001171 CA 06 12 2579 JP Z,?0178 - 00001174 2580 ?0177: - 00001174 21 00 00 2581 LD HL,0 - 00001177 39 2582 ADD HL,SP - 00001178 E5 2583 PUSH HL - 00001179 CD 85 0D 2584 CALL LWRD ?0467 - 0000117C E1 2585 POP HL - 0000117D 21 00 00 2586 LD HL,0 - 00001180 39 2587 ADD HL,SP - 00001181 CD 0E 12 2588 CALL LWRD ?0457 - 00001184 CD 00 00 2589 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001187 DD 6E 08 2590 LD L,(IX+8) - 0000118A DD 66 09 2591 LD H,(IX+9) - 0000118D E5 2592 PUSH HL - 0000118E DD 6E 06 2593 LD L,(IX+6) - 00001191 DD 66 07 2594 LD H,(IX+7) - 00001194 E5 2595 PUSH HL - 00001195 21 04 00 2596 LD HL,4 - 00001198 39 2597 ADD HL,SP - 00001199 4E 2598 LD C,(HL) - 0000119A 23 2599 INC HL - 0000119B 46 2600 LD B,(HL) - 0000119C C5 2601 PUSH BC - 0000119D 23 2602 INC HL - 0000119E 4E 2603 LD C,(HL) - 0000119F 23 2604 INC HL - 000011A0 46 2605 LD B,(HL) - 000011A1 DD CB 0A 4E 2606 BIT 1,(IX+10) - 000011A5 28 07 2607 JR Z,?0180 - 000011A7 DD 5E 10 2608 LD E,(IX+16) - 000011AA 16 00 2609 LD D,0 - 000011AC 18 03 2610 JR ?0181 - 000011AE 2611 ?0180: - 000011AE 11 00 00 2612 LD DE,0 - 000011B1 2613 ?0181: - 000011B1 CD F2 02 2614 CALL LWRD ?0471 - 000011B4 E1 2615 POP HL - 000011B5 E1 2616 POP HL - 000011B6 E1 2617 POP HL - 000011B7 DD 7E 0A 2618 LD A,(IX+10) - 000011BA E6 82 2619 AND 130 - 000011BC 28 1C 2620 JR Z,?0183 - 000011BE DD 7E 0A 2621 LD A,(IX+10) - 000011C1 E6 82 2622 AND 130 - 000011C3 EE 82 2623 XOR 130 - 000011C5 28 13 2624 JR Z,?0183 - 000011C7 2625 ?0185: - 000011C7 2626 ?0184: - 000011C7 2627 ?0182: - 000011C7 DD 4E 08 2628 LD C,(IX+8) - 000011CA DD 46 09 2629 LD B,(IX+9) - 000011CD DD 5E 06 2630 LD E,(IX+6) - 000011D0 DD 56 07 2631 LD D,(IX+7) - 000011D3 3E AF 2632 LD A,BYTE3 FillRectNC - 000011D5 21 AF 01 2633 LD HL,LWRD FillRectNC - 000011D8 18 11 2634 JR ?0353 - 000011DA 2635 ?0183: - 000011DA DD 4E 08 2636 LD C,(IX+8) - 000011DD DD 46 09 2637 LD B,(IX+9) - 000011E0 DD 5E 06 2638 LD E,(IX+6) - 000011E3 DD 56 07 2639 LD D,(IX+7) - 000011E6 3E 25 2640 LD A,BYTE3 DrawRectNC - 000011E8 21 25 01 2641 LD HL,LWRD DrawRectNC - 000011EB 2642 ?0353: - 000011EB CD 00 00 2643 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000011EE 2644 ?0186: - 000011EE 21 00 00 2645 LD HL,0 - 000011F1 39 2646 ADD HL,SP - 000011F2 4E 2647 LD C,(HL) - 000011F3 23 2648 INC HL - 000011F4 46 2649 LD B,(HL) - 000011F5 C5 2650 PUSH BC - 000011F6 23 2651 INC HL - 000011F7 4E 2652 LD C,(HL) - 000011F8 23 2653 INC HL - 000011F9 46 2654 LD B,(HL) - 000011FA DD E5 2655 PUSH IX - 000011FC D1 2656 POP DE - 000011FD 3E 7A 2657 LD A,BYTE3 Button_drawtext - 000011FF 21 7A 10 2658 LD HL,LWRD Button_drawtext - 00001202 CD 00 00 2659 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001205 E1 2660 POP HL - 00001206 2661 ?0178: - 00001206 E1 2662 POP HL - 00001207 E1 2663 POP HL - 00001208 DD E1 2664 POP IX - 0000120A C1 2665 POP BC - 0000120B C3 00 00 2666 JP LWRD ?BANK_FAST_LEAVE_L08 - 0000120E 2667 ?0457: - 0000120E 4E 2668 LD C,(HL) - 0000120F 23 2669 INC HL - 00001210 46 2670 LD B,(HL) - 00001211 23 2671 INC HL - 00001212 2672 ?0458: - 00001212 5E 2673 LD E,(HL) - 00001213 23 2674 INC HL - 00001214 56 2675 LD D,(HL) - 00001215 3E A3 2676 LD A,BYTE3 Move - 00001217 21 A3 00 2677 LD HL,LWRD Move - 0000121A CD 00 00 2678 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000121D DD 4E 08 2679 LD C,(IX+8) - 00001220 DD 46 09 2680 LD B,(IX+9) - 00001223 DD 5E 06 2681 LD E,(IX+6) - 00001226 DD 56 07 2682 LD D,(IX+7) - 00001229 3E E2 2683 LD A,BYTE3 ClearRect - 0000122B 21 E2 00 2684 LD HL,LWRD ClearRect - 0000122E C9 2685 RET - 0000122F 2686 Button_add: - 0000122F CD 00 00 2687 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00001232 C3 00 00 2688 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00001235 2689 Button_new: - 00001235 CD 00 00 2690 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00001238 00 00 2691 DEFW 0 - 0000123A FD E5 2692 PUSH IY - 0000123C DD 6E 0C 2693 LD L,(IX+12) - 0000123F DD 66 0D 2694 LD H,(IX+13) - 00001242 E5 2695 PUSH HL - 00001243 DD 6E 0A 2696 LD L,(IX+10) - 00001246 DD 66 0B 2697 LD H,(IX+11) - 00001249 E5 2698 PUSH HL - 0000124A CD B5 0F 2699 CALL LWRD ?0438 - 0000124D F1 2700 POP AF - 0000124E F1 2701 POP AF - 0000124F E5 2702 PUSH HL - 00001250 FD E1 2703 POP IY - 00001252 01 0A 00 2704 LD BC,10 - 00001255 09 2705 ADD HL,BC - 00001256 7E 2706 LD A,(HL) - 00001257 F6 03 2707 OR 3 - 00001259 77 2708 LD (HL),A - 0000125A DD 46 0E 2709 LD B,(IX+14) - 0000125D FD 70 10 2710 LD (IY+16),B - 00001260 FD 36 17 C3 2711 LD (IY+23),LOW(Button_handler) - 00001264 FD 36 18 0F 2712 LD (IY+24),HIGH(Button_handler) - 00001268 FD 36 19 C3 2713 LD (IY+25),BYTE3 Button_handler - 0000126C FD 36 1A 36 2714 LD (IY+26),LOW(Button_paint) - 00001270 FD 36 1B 11 2715 LD (IY+27),HIGH(Button_paint) - 00001274 FD 36 1C 36 2716 LD (IY+28),BYTE3 Button_paint - 00001278 FD 36 1D 2F 2717 LD (IY+29),LOW(Button_add) - 0000127C FD 36 1E 12 2718 LD (IY+30),HIGH(Button_add) - 00001280 FD 36 1F 2F 2719 LD (IY+31),BYTE3 Button_add - 00001284 C3 51 06 2720 JP LWRD ?0418 - 00001287 2721 ToggleButton_handler: - 00001287 CD 00 00 2722 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000128A FD E5 2723 PUSH IY - 0000128C D5 2724 PUSH DE - 0000128D FD E1 2725 POP IY - 0000128F DD 6E 0A 2726 LD L,(IX+10) - 00001292 DD 66 0B 2727 LD H,(IX+11) - 00001295 E5 2728 PUSH HL - 00001296 3E D2 2729 LD A,BYTE3 Window_handler - 00001298 21 D2 0A 2730 LD HL,LWRD Window_handler - 0000129B CD 00 00 2731 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000129E E1 2732 POP HL - 0000129F 3E 03 2733 LD A,3 - 000012A1 DD AE 04 2734 XOR (IX+4) - 000012A4 DD B6 05 2735 OR (IX+5) - 000012A7 20 5C 2736 JR NZ,?0192 - 000012A9 FD 4E 10 2737 LD C,(IY+16) - 000012AC 47 2738 LD B,A - 000012AD DD 6E 0A 2739 LD L,(IX+10) - 000012B0 DD 66 0B 2740 LD H,(IX+11) - 000012B3 ED 42 2741 SBC HL,BC - 000012B5 20 4E 2742 JR NZ,?0192 - 000012B7 FD 7E 0A 2743 LD A,(IY+10) - 000012BA E6 03 2744 AND 3 - 000012BC 28 47 2745 JR Z,?0192 - 000012BE 2746 ?0190: - 000012BE 2747 ?0189: - 000012BE 2748 ?0187: - 000012BE FD 7E 0A 2749 LD A,(IY+10) - 000012C1 EE 04 2750 XOR 4 - 000012C3 FD 77 0A 2751 LD (IY+10),A - 000012C6 DD 6E 0A 2752 LD L,(IX+10) - 000012C9 DD 66 0B 2753 LD H,(IX+11) - 000012CC E5 2754 PUSH HL - 000012CD FD 5E 11 2755 LD E,(IY+17) - 000012D0 FD 56 12 2756 LD D,(IY+18) - 000012D3 FD 6E 11 2757 LD L,(IY+17) - 000012D6 FD 66 12 2758 LD H,(IY+18) - 000012D9 0E 17 2759 LD C,23 - 000012DB 09 2760 ADD HL,BC - 000012DC 4E 2761 LD C,(HL) - 000012DD 23 2762 INC HL - 000012DE 46 2763 LD B,(HL) - 000012DF 23 2764 INC HL - 000012E0 7E 2765 LD A,(HL) - 000012E1 69 2766 LD L,C - 000012E2 60 2767 LD H,B - 000012E3 01 02 02 2768 LD BC,514 - 000012E6 CD 00 00 2769 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000012E9 E1 2770 POP HL - 000012EA 21 00 00 2771 LD HL,0 - 000012ED E5 2772 PUSH HL - 000012EE 01 03 01 2773 LD BC,259 - 000012F1 CD 76 0D 2774 CALL LWRD ?0463 - 000012F4 E1 2775 POP HL - 000012F5 FD CB 0A 66 2776 BIT 4,(IY+10) - 000012F9 28 0A 2777 JR Z,?0192 - 000012FB 2778 ?0191: - 000012FB FD 4E 10 2779 LD C,(IY+16) - 000012FE 06 00 2780 LD B,0 - 00001300 C5 2781 PUSH BC - 00001301 CD 5E 10 2782 CALL LWRD ?0469 - 00001304 E1 2783 POP HL - 00001305 2784 ?0192: - 00001305 2785 ?0188: - 00001305 21 01 02 2786 LD HL,513 - 00001308 DD 4E 04 2787 LD C,(IX+4) - 0000130B DD 46 05 2788 LD B,(IX+5) - 0000130E A7 2789 AND A - 0000130F ED 42 2790 SBC HL,BC - 00001311 20 0B 2791 JR NZ,?0194 - 00001313 2792 ?0193: - 00001313 DD 6E 0A 2793 LD L,(IX+10) - 00001316 DD 66 0B 2794 LD H,(IX+11) - 00001319 E5 2795 PUSH HL - 0000131A CD 41 10 2796 CALL LWRD ?0465 - 0000131D E1 2797 POP HL - 0000131E 2798 ?0194: - 0000131E FD E1 2799 POP IY - 00001320 C3 00 00 2800 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00001323 2801 ToggleButton_paint: - 00001323 C5 2802 PUSH BC - 00001324 DD E5 2803 PUSH IX - 00001326 F5 2804 PUSH AF - 00001327 F5 2805 PUSH AF - 00001328 D5 2806 PUSH DE - 00001329 DD E1 2807 POP IX - 0000132B 21 02 00 2808 LD HL,2 - 0000132E 39 2809 ADD HL,SP - 0000132F AF 2810 XOR A - 00001330 77 2811 LD (HL),A - 00001331 23 2812 INC HL - 00001332 77 2813 LD (HL),A - 00001333 2B 2814 DEC HL - 00001334 2B 2815 DEC HL - 00001335 2B 2816 DEC HL - 00001336 77 2817 LD (HL),A - 00001337 23 2818 INC HL - 00001338 77 2819 LD (HL),A - 00001339 21 0A 00 2820 LD HL,10 - 0000133C ED 4B 00 00 2821 LD BC,(global) - 00001340 09 2822 ADD HL,BC - 00001341 7E 2823 LD A,(HL) - 00001342 23 2824 INC HL - 00001343 66 2825 LD H,(HL) - 00001344 6F 2826 LD L,A - 00001345 46 2827 LD B,(HL) - 00001346 23 2828 INC HL - 00001347 66 2829 LD H,(HL) - 00001348 68 2830 LD L,B - 00001349 E5 2831 PUSH HL - 0000134A 21 0E 00 2832 LD HL,14 - 0000134D 19 2833 ADD HL,DE - 0000134E 4E 2834 LD C,(HL) - 0000134F 23 2835 INC HL - 00001350 46 2836 LD B,(HL) - 00001351 E1 2837 POP HL - 00001352 A7 2838 AND A - 00001353 ED 42 2839 SBC HL,BC - 00001355 28 03 2840 JR Z,?0196 - 00001357 2841 ?0195: - 00001357 CD 1E 0F 2842 CALL LWRD ?0473 - 0000135A 2843 ?0196: - 0000135A DD CB 0A 46 2844 BIT 0,(IX+10) - 0000135E CA 0C 14 2845 JP Z,?0198 - 00001361 2846 ?0197: - 00001361 21 00 00 2847 LD HL,0 - 00001364 39 2848 ADD HL,SP - 00001365 E5 2849 PUSH HL - 00001366 CD 85 0D 2850 CALL LWRD ?0467 - 00001369 E1 2851 POP HL - 0000136A 21 00 00 2852 LD HL,0 - 0000136D 39 2853 ADD HL,SP - 0000136E CD 0E 12 2854 CALL LWRD ?0457 - 00001371 CD 00 00 2855 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001374 DD CB 0A 4E 2856 BIT 1,(IX+10) - 00001378 28 36 2857 JR Z,?0200 - 0000137A DD CB 0A 56 2858 BIT 2,(IX+10) - 0000137E 28 30 2859 JR Z,?0200 - 00001380 2860 ?0202: - 00001380 2861 ?0201: - 00001380 2862 ?0199: - 00001380 DD 4E 08 2863 LD C,(IX+8) - 00001383 DD 46 09 2864 LD B,(IX+9) - 00001386 DD 5E 06 2865 LD E,(IX+6) - 00001389 DD 56 07 2866 LD D,(IX+7) - 0000138C 3E AF 2867 LD A,BYTE3 FillRectNC - 0000138E 21 AF 01 2868 LD HL,LWRD FillRectNC - 00001391 CD 00 00 2869 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001394 DD 6E 08 2870 LD L,(IX+8) - 00001397 DD 66 09 2871 LD H,(IX+9) - 0000139A E5 2872 PUSH HL - 0000139B DD 6E 06 2873 LD L,(IX+6) - 0000139E DD 66 07 2874 LD H,(IX+7) - 000013A1 E5 2875 PUSH HL - 000013A2 21 04 00 2876 LD HL,4 - 000013A5 39 2877 ADD HL,SP - 000013A6 4E 2878 LD C,(HL) - 000013A7 23 2879 INC HL - 000013A8 46 2880 LD B,(HL) - 000013A9 C5 2881 PUSH BC - 000013AA 23 2882 INC HL - 000013AB 4E 2883 LD C,(HL) - 000013AC 23 2884 INC HL - 000013AD 46 2885 LD B,(HL) - 000013AE 18 34 2886 JR ?0357 - 000013B0 2887 ?0200: - 000013B0 DD 4E 08 2888 LD C,(IX+8) - 000013B3 DD 46 09 2889 LD B,(IX+9) - 000013B6 DD 5E 06 2890 LD E,(IX+6) - 000013B9 DD 56 07 2891 LD D,(IX+7) - 000013BC 3E 25 2892 LD A,BYTE3 DrawRectNC - 000013BE 21 25 01 2893 LD HL,LWRD DrawRectNC - 000013C1 CD 00 00 2894 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000013C4 DD 6E 08 2895 LD L,(IX+8) - 000013C7 DD 66 09 2896 LD H,(IX+9) - 000013CA E5 2897 PUSH HL - 000013CB DD 6E 06 2898 LD L,(IX+6) - 000013CE DD 66 07 2899 LD H,(IX+7) - 000013D1 E5 2900 PUSH HL - 000013D2 21 04 00 2901 LD HL,4 - 000013D5 39 2902 ADD HL,SP - 000013D6 4E 2903 LD C,(HL) - 000013D7 23 2904 INC HL - 000013D8 46 2905 LD B,(HL) - 000013D9 C5 2906 PUSH BC - 000013DA 23 2907 INC HL - 000013DB 4E 2908 LD C,(HL) - 000013DC 23 2909 INC HL - 000013DD 46 2910 LD B,(HL) - 000013DE DD CB 0A 4E 2911 BIT 1,(IX+10) - 000013E2 28 07 2912 JR Z,?0205 - 000013E4 2913 ?0357: - 000013E4 DD 5E 10 2914 LD E,(IX+16) - 000013E7 16 00 2915 LD D,0 - 000013E9 18 03 2916 JR ?0206 - 000013EB 2917 ?0205: - 000013EB 11 00 00 2918 LD DE,0 - 000013EE 2919 ?0206: - 000013EE CD F2 02 2920 CALL LWRD ?0471 - 000013F1 E1 2921 POP HL - 000013F2 E1 2922 POP HL - 000013F3 E1 2923 POP HL - 000013F4 2924 ?0203: - 000013F4 21 00 00 2925 LD HL,0 - 000013F7 39 2926 ADD HL,SP - 000013F8 4E 2927 LD C,(HL) - 000013F9 23 2928 INC HL - 000013FA 46 2929 LD B,(HL) - 000013FB C5 2930 PUSH BC - 000013FC 23 2931 INC HL - 000013FD 4E 2932 LD C,(HL) - 000013FE 23 2933 INC HL - 000013FF 46 2934 LD B,(HL) - 00001400 DD E5 2935 PUSH IX - 00001402 D1 2936 POP DE - 00001403 3E 7A 2937 LD A,BYTE3 Button_drawtext - 00001405 21 7A 10 2938 LD HL,LWRD Button_drawtext - 00001408 CD 00 00 2939 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000140B E1 2940 POP HL - 0000140C 2941 ?0198: - 0000140C C3 06 12 2942 JP LWRD ?0178 - 0000140F 2943 ToggleButton_new: - 0000140F CD 00 00 2944 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00001412 00 00 2945 DEFW 0 - 00001414 FD E5 2946 PUSH IY - 00001416 DD 6E 0C 2947 LD L,(IX+12) - 00001419 DD 66 0D 2948 LD H,(IX+13) - 0000141C E5 2949 PUSH HL - 0000141D DD 6E 0A 2950 LD L,(IX+10) - 00001420 DD 66 0B 2951 LD H,(IX+11) - 00001423 E5 2952 PUSH HL - 00001424 CD B5 0F 2953 CALL LWRD ?0438 - 00001427 F1 2954 POP AF - 00001428 F1 2955 POP AF - 00001429 E5 2956 PUSH HL - 0000142A FD E1 2957 POP IY - 0000142C 01 0A 00 2958 LD BC,10 - 0000142F 09 2959 ADD HL,BC - 00001430 7E 2960 LD A,(HL) - 00001431 F6 07 2961 OR 7 - 00001433 77 2962 LD (HL),A - 00001434 DD 46 0E 2963 LD B,(IX+14) - 00001437 FD 70 10 2964 LD (IY+16),B - 0000143A FD 36 17 87 2965 LD (IY+23),LOW(ToggleButton_handler) - 0000143E FD 36 18 12 2966 LD (IY+24),HIGH(ToggleButton_handler) - 00001442 FD 36 19 87 2967 LD (IY+25),BYTE3 ToggleButton_handler - 00001446 FD 36 1A 23 2968 LD (IY+26),LOW(ToggleButton_paint) - 0000144A FD 36 1B 13 2969 LD (IY+27),HIGH(ToggleButton_paint) - 0000144E FD 36 1C 23 2970 LD (IY+28),BYTE3 ToggleButton_paint - 00001452 FD 36 1D 2F 2971 LD (IY+29),LOW(Button_add) - 00001456 FD 36 1E 12 2972 LD (IY+30),HIGH(Button_add) - 0000145A FD 36 1F 2F 2973 LD (IY+31),BYTE3 Button_add - 0000145E C3 51 06 2974 JP LWRD ?0418 - 00001461 2975 Dialog_handler: - 00001461 CD 00 00 2976 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00001464 FD E5 2977 PUSH IY - 00001466 D5 2978 PUSH DE - 00001467 FD E1 2979 POP IY - 00001469 DD 6E 0A 2980 LD L,(IX+10) - 0000146C DD 66 0B 2981 LD H,(IX+11) - 0000146F E5 2982 PUSH HL - 00001470 3E D2 2983 LD A,BYTE3 Window_handler - 00001472 21 D2 0A 2984 LD HL,LWRD Window_handler - 00001475 CD 00 00 2985 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001478 E1 2986 POP HL - 00001479 21 01 02 2987 LD HL,513 - 0000147C DD 4E 04 2988 LD C,(IX+4) - 0000147F DD 46 05 2989 LD B,(IX+5) - 00001482 A7 2990 AND A - 00001483 ED 42 2991 SBC HL,BC - 00001485 20 40 2992 JR NZ,?0208 - 00001487 3E FF 2993 LD A,255 - 00001489 DD AE 0A 2994 XOR (IX+10) - 0000148C DD B6 0B 2995 OR (IX+11) - 0000148F 20 36 2996 JR NZ,?0208 - 00001491 2997 ?0210: - 00001491 2998 ?0209: - 00001491 2999 ?0207: - 00001491 FD CB 0B 66 3000 BIT 4,(IY+11) - 00001495 E5 3001 PUSH HL - 00001496 28 05 3002 JR Z,?0212 - 00001498 3003 ?0211: - 00001498 01 05 01 3004 LD BC,261 - 0000149B 18 03 3005 JR ?0358 - 0000149D 3006 ?0212: - 0000149D 01 02 01 3007 LD BC,258 - 000014A0 3008 ?0358: - 000014A0 CD 76 0D 3009 CALL LWRD ?0463 - 000014A3 E1 3010 POP HL - 000014A4 3011 ?0213: - 000014A4 FD 4E 10 3012 LD C,(IY+16) - 000014A7 06 00 3013 LD B,0 - 000014A9 C5 3014 PUSH BC - 000014AA FD 5E 11 3015 LD E,(IY+17) - 000014AD FD 56 12 3016 LD D,(IY+18) - 000014B0 FD 6E 11 3017 LD L,(IY+17) - 000014B3 FD 66 12 3018 LD H,(IY+18) - 000014B6 0E 17 3019 LD C,23 - 000014B8 09 3020 ADD HL,BC - 000014B9 4E 3021 LD C,(HL) - 000014BA 23 3022 INC HL - 000014BB 46 3023 LD B,(HL) - 000014BC 23 3024 INC HL - 000014BD 7E 3025 LD A,(HL) - 000014BE 69 3026 LD L,C - 000014BF 60 3027 LD H,B - 000014C0 01 01 03 3028 LD BC,769 - 000014C3 CD 00 00 3029 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000014C6 E1 3030 POP HL - 000014C7 3031 ?0208: - 000014C7 21 01 02 3032 LD HL,513 - 000014CA DD 4E 04 3033 LD C,(IX+4) - 000014CD DD 46 05 3034 LD B,(IX+5) - 000014D0 A7 3035 AND A - 000014D1 ED 42 3036 SBC HL,BC - 000014D3 20 40 3037 JR NZ,?0215 - 000014D5 3E FE 3038 LD A,254 - 000014D7 DD AE 0A 3039 XOR (IX+10) - 000014DA DD B6 0B 3040 OR (IX+11) - 000014DD 20 36 3041 JR NZ,?0215 - 000014DF 3042 ?0217: - 000014DF 3043 ?0216: - 000014DF 3044 ?0214: - 000014DF FD CB 0B 66 3045 BIT 4,(IY+11) - 000014E3 E5 3046 PUSH HL - 000014E4 28 05 3047 JR Z,?0219 - 000014E6 3048 ?0218: - 000014E6 01 05 01 3049 LD BC,261 - 000014E9 18 03 3050 JR ?0359 - 000014EB 3051 ?0219: - 000014EB 01 02 01 3052 LD BC,258 - 000014EE 3053 ?0359: - 000014EE CD 76 0D 3054 CALL LWRD ?0463 - 000014F1 E1 3055 POP HL - 000014F2 3056 ?0220: - 000014F2 FD 4E 10 3057 LD C,(IY+16) - 000014F5 06 00 3058 LD B,0 - 000014F7 C5 3059 PUSH BC - 000014F8 FD 5E 11 3060 LD E,(IY+17) - 000014FB FD 56 12 3061 LD D,(IY+18) - 000014FE FD 6E 11 3062 LD L,(IY+17) - 00001501 FD 66 12 3063 LD H,(IY+18) - 00001504 0E 17 3064 LD C,23 - 00001506 09 3065 ADD HL,BC - 00001507 4E 3066 LD C,(HL) - 00001508 23 3067 INC HL - 00001509 46 3068 LD B,(HL) - 0000150A 23 3069 INC HL - 0000150B 7E 3070 LD A,(HL) - 0000150C 69 3071 LD L,C - 0000150D 60 3072 LD H,B - 0000150E 01 02 03 3073 LD BC,770 - 00001511 CD 00 00 3074 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001514 E1 3075 POP HL - 00001515 3076 ?0215: - 00001515 FD E1 3077 POP IY - 00001517 C3 00 00 3078 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000151A 3079 Dialog_new: - 0000151A CD 00 00 3080 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000151D FE FF 3081 DEFW -2 - 0000151F FD E5 3082 PUSH IY - 00001521 DD 6E 0C 3083 LD L,(IX+12) - 00001524 DD 66 0D 3084 LD H,(IX+13) - 00001527 E5 3085 PUSH HL - 00001528 DD 6E 0A 3086 LD L,(IX+10) - 0000152B DD 66 0B 3087 LD H,(IX+11) - 0000152E E5 3088 PUSH HL - 0000152F CD B5 0F 3089 CALL LWRD ?0438 - 00001532 F1 3090 POP AF - 00001533 F1 3091 POP AF - 00001534 E5 3092 PUSH HL - 00001535 FD E1 3093 POP IY - 00001537 01 0A 00 3094 LD BC,10 - 0000153A 09 3095 ADD HL,BC - 0000153B CB C6 3096 SET 0,(HL) - 0000153D DD 46 0E 3097 LD B,(IX+14) - 00001540 FD 70 10 3098 LD (IY+16),B - 00001543 FD 36 17 61 3099 LD (IY+23),LOW(Dialog_handler) - 00001547 FD 36 18 14 3100 LD (IY+24),HIGH(Dialog_handler) - 0000154B FD 36 19 61 3101 LD (IY+25),BYTE3 Dialog_handler - 0000154F FD 36 1A 9F 3102 LD (IY+26),LOW(Window_paint) - 00001553 FD 36 1B 0D 3103 LD (IY+27),HIGH(Window_paint) - 00001557 FD 36 1C 9F 3104 LD (IY+28),BYTE3 Window_paint - 0000155B FD 36 1D 63 3105 LD (IY+29),LOW(Window_add) - 0000155F FD 36 1E 0F 3106 LD (IY+30),HIGH(Window_add) - 00001563 FD 36 1F 63 3107 LD (IY+31),BYTE3 Window_add - 00001567 21 FF 00 3108 LD HL,255 - 0000156A E5 3109 PUSH HL - 0000156B 2E 14 3110 LD L,20 - 0000156D E5 3111 PUSH HL - 0000156E 2E 28 3112 LD L,40 - 00001570 E5 3113 PUSH HL - 00001571 21 E4 FF 3114 LD HL,65508 - 00001574 CD CC 15 3115 CALL LWRD ?0439 - 00001577 F1 3116 POP AF - 00001578 F1 3117 POP AF - 00001579 F1 3118 POP AF - 0000157A DD 75 FE 3119 LD (IX-2),L - 0000157D DD 74 FF 3120 LD (IX-1),H - 00001580 01 20 00 3121 LD BC,32 - 00001583 09 3122 ADD HL,BC - 00001584 E5 3123 PUSH HL - 00001585 11 03 00 3124 LD DE,3 - 00001588 CD 28 04 3125 CALL LWRD ?0450 - 0000158B E1 3126 POP HL - 0000158C 71 3127 LD (HL),C - 0000158D 23 3128 INC HL - 0000158E 70 3129 LD (HL),B - 0000158F 01 0A 00 3130 LD BC,?0221 - 00001592 CD E8 15 3131 CALL LWRD ?0456 - 00001595 CD 00 00 3132 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001598 21 FE 00 3133 LD HL,254 - 0000159B E5 3134 PUSH HL - 0000159C 2E 14 3135 LD L,20 - 0000159E E5 3136 PUSH HL - 0000159F 2E 28 3137 LD L,40 - 000015A1 E5 3138 PUSH HL - 000015A2 21 C8 FF 3139 LD HL,65480 - 000015A5 CD CC 15 3140 CALL LWRD ?0439 - 000015A8 F1 3141 POP AF - 000015A9 F1 3142 POP AF - 000015AA F1 3143 POP AF - 000015AB DD 75 FE 3144 LD (IX-2),L - 000015AE DD 74 FF 3145 LD (IX-1),H - 000015B1 01 20 00 3146 LD BC,32 - 000015B4 09 3147 ADD HL,BC - 000015B5 E5 3148 PUSH HL - 000015B6 11 07 00 3149 LD DE,7 - 000015B9 CD 28 04 3150 CALL LWRD ?0450 - 000015BC E1 3151 POP HL - 000015BD 71 3152 LD (HL),C - 000015BE 23 3153 INC HL - 000015BF 70 3154 LD (HL),B - 000015C0 01 0D 00 3155 LD BC,?0222 - 000015C3 CD E8 15 3156 CALL LWRD ?0456 - 000015C6 CD 00 00 3157 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000015C9 C3 51 06 3158 JP LWRD ?0418 - 000015CC 3159 ?0439: - 000015CC DD 4E 0C 3160 LD C,(IX+12) - 000015CF DD 46 0D 3161 LD B,(IX+13) - 000015D2 09 3162 ADD HL,BC - 000015D3 4D 3163 LD C,L - 000015D4 44 3164 LD B,H - 000015D5 21 D0 FF 3165 LD HL,65488 - 000015D8 DD 5E 0A 3166 LD E,(IX+10) - 000015DB DD 56 0B 3167 LD D,(IX+11) - 000015DE 19 3168 ADD HL,DE - 000015DF EB 3169 EX DE,HL - 000015E0 3170 ?0440: - 000015E0 3E 35 3171 LD A,BYTE3 Button_new - 000015E2 21 35 12 3172 LD HL,LWRD Button_new - 000015E5 C3 00 00 3173 JP LWRD ?BANK_CALL_DIRECT_L08 - 000015E8 3174 ?0456: - 000015E8 DD 5E FE 3175 LD E,(IX-2) - 000015EB DD 56 FF 3176 LD D,(IX-1) - 000015EE 3E 59 3177 LD A,BYTE3 Component_setlabel - 000015F0 21 59 06 3178 LD HL,LWRD Component_setlabel - 000015F3 CD 00 00 3179 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000015F6 DD 4E FE 3180 LD C,(IX-2) - 000015F9 DD 46 FF 3181 LD B,(IX-1) - 000015FC FD E5 3182 PUSH IY - 000015FE D1 3183 POP DE - 000015FF FD 7E 1F 3184 LD A,(IY+31) - 00001602 FD 6E 1D 3185 LD L,(IY+29) - 00001605 FD 66 1E 3186 LD H,(IY+30) - 00001608 C9 3187 RET - 00001609 3188 Display_handler: - 00001609 CD 00 00 3189 CALL LWRD ?ENT_PARM_DIRECT_L09 - 0000160C FD E5 3190 PUSH IY - 0000160E D5 3191 PUSH DE - 0000160F FD E1 3192 POP IY - 00001611 DD 6E 0A 3193 LD L,(IX+10) - 00001614 DD 66 0B 3194 LD H,(IX+11) - 00001617 E5 3195 PUSH HL - 00001618 3E C3 3196 LD A,BYTE3 Button_handler - 0000161A 21 C3 0F 3197 LD HL,LWRD Button_handler - 0000161D CD 00 00 3198 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001620 E1 3199 POP HL - 00001621 21 03 02 3200 LD HL,515 - 00001624 DD 4E 04 3201 LD C,(IX+4) - 00001627 DD 46 05 3202 LD B,(IX+5) - 0000162A A7 3203 AND A - 0000162B ED 42 3204 SBC HL,BC - 0000162D 20 40 3205 JR NZ,?0224 - 0000162F FD CB 0A 5E 3206 BIT 3,(IY+10) - 00001633 28 3A 3207 JR Z,?0224 - 00001635 3208 ?0226: - 00001635 3209 ?0225: - 00001635 3210 ?0223: - 00001635 3E 08 3211 LD A,8 - 00001637 DD AE 0A 3212 XOR (IX+10) - 0000163A DD B6 0B 3213 OR (IX+11) - 0000163D FD 5E 20 3214 LD E,(IY+32) - 00001640 FD 56 21 3215 LD D,(IY+33) - 00001643 3E 00 3216 LD A,BYTE3 strlen - 00001645 21 00 00 3217 LD HL,LWRD strlen - 00001648 20 0D 3218 JR NZ,?0228 - 0000164A 3219 ?0227: - 0000164A CD 22 04 3220 CALL LWRD ?0448 - 0000164D 28 15 3221 JR Z,?0231 - 0000164F 3222 ?0229: - 0000164F CD 74 16 3223 CALL LWRD ?0445 - 00001652 2B 3224 DEC HL - 00001653 36 00 3225 LD (HL),0 - 00001655 3226 ?0230: - 00001655 18 0D 3227 JR ?0231 - 00001657 3228 ?0228: - 00001657 CD 7F 16 3229 CALL LWRD ?0446 - 0000165A 23 3230 INC HL - 0000165B 36 00 3231 LD (HL),0 - 0000165D CD 74 16 3232 CALL LWRD ?0445 - 00001660 DD 46 0A 3233 LD B,(IX+10) - 00001663 70 3234 LD (HL),B - 00001664 3235 ?0231: - 00001664 21 00 00 3236 LD HL,0 - 00001667 E5 3237 PUSH HL - 00001668 01 03 01 3238 LD BC,259 - 0000166B CD 76 0D 3239 CALL LWRD ?0463 - 0000166E E1 3240 POP HL - 0000166F 3241 ?0224: - 0000166F FD E1 3242 POP IY - 00001671 C3 00 00 3243 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00001674 3244 ?0445: - 00001674 FD 5E 20 3245 LD E,(IY+32) - 00001677 FD 56 21 3246 LD D,(IY+33) - 0000167A 3E 00 3247 LD A,BYTE3 strlen - 0000167C 21 00 00 3248 LD HL,LWRD strlen - 0000167F 3249 ?0446: - 0000167F CD 00 00 3250 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001682 FD 4E 20 3251 LD C,(IY+32) - 00001685 FD 46 21 3252 LD B,(IY+33) - 00001688 09 3253 ADD HL,BC - 00001689 C9 3254 RET - 0000168A 3255 Display_paint: - 0000168A C5 3256 PUSH BC - 0000168B FD E5 3257 PUSH IY - 0000168D DD E5 3258 PUSH IX - 0000168F 21 B8 FF 3259 LD HL,65464 - 00001692 39 3260 ADD HL,SP - 00001693 F9 3261 LD SP,HL - 00001694 D5 3262 PUSH DE - 00001695 DD E1 3263 POP IX - 00001697 AF 3264 XOR A - 00001698 77 3265 LD (HL),A - 00001699 23 3266 INC HL - 0000169A 77 3267 LD (HL),A - 0000169B 23 3268 INC HL - 0000169C 77 3269 LD (HL),A - 0000169D 23 3270 INC HL - 0000169E 77 3271 LD (HL),A - 0000169F 21 0A 00 3272 LD HL,10 - 000016A2 ED 4B 00 00 3273 LD BC,(global) - 000016A6 09 3274 ADD HL,BC - 000016A7 7E 3275 LD A,(HL) - 000016A8 23 3276 INC HL - 000016A9 66 3277 LD H,(HL) - 000016AA 6F 3278 LD L,A - 000016AB 46 3279 LD B,(HL) - 000016AC 23 3280 INC HL - 000016AD 66 3281 LD H,(HL) - 000016AE 68 3282 LD L,B - 000016AF E5 3283 PUSH HL - 000016B0 21 0E 00 3284 LD HL,14 - 000016B3 19 3285 ADD HL,DE - 000016B4 4E 3286 LD C,(HL) - 000016B5 23 3287 INC HL - 000016B6 46 3288 LD B,(HL) - 000016B7 E1 3289 POP HL - 000016B8 A7 3290 AND A - 000016B9 ED 42 3291 SBC HL,BC - 000016BB 28 03 3292 JR Z,?0233 - 000016BD 3293 ?0232: - 000016BD CD 1E 0F 3294 CALL LWRD ?0473 - 000016C0 3295 ?0233: - 000016C0 DD CB 0A 46 3296 BIT 0,(IX+10) - 000016C4 CA CE 17 3297 JP Z,?0248 - 000016C7 3298 ?0234: - 000016C7 21 02 00 3299 LD HL,2 - 000016CA 39 3300 ADD HL,SP - 000016CB E5 3301 PUSH HL - 000016CC 2B 3302 DEC HL - 000016CD 2B 3303 DEC HL - 000016CE CD 87 0D 3304 CALL LWRD ?0468 - 000016D1 E1 3305 POP HL - 000016D2 21 02 00 3306 LD HL,2 - 000016D5 39 3307 ADD HL,SP - 000016D6 4E 3308 LD C,(HL) - 000016D7 23 3309 INC HL - 000016D8 46 3310 LD B,(HL) - 000016D9 2B 3311 DEC HL - 000016DA 2B 3312 DEC HL - 000016DB 2B 3313 DEC HL - 000016DC CD 12 12 3314 CALL LWRD ?0458 - 000016DF CD 00 00 3315 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000016E2 DD 6E 08 3316 LD L,(IX+8) - 000016E5 DD 66 09 3317 LD H,(IX+9) - 000016E8 E5 3318 PUSH HL - 000016E9 DD 6E 06 3319 LD L,(IX+6) - 000016EC DD 66 07 3320 LD H,(IX+7) - 000016EF E5 3321 PUSH HL - 000016F0 21 06 00 3322 LD HL,6 - 000016F3 39 3323 ADD HL,SP - 000016F4 4E 3324 LD C,(HL) - 000016F5 23 3325 INC HL - 000016F6 46 3326 LD B,(HL) - 000016F7 C5 3327 PUSH BC - 000016F8 2B 3328 DEC HL - 000016F9 2B 3329 DEC HL - 000016FA 2B 3330 DEC HL - 000016FB 4E 3331 LD C,(HL) - 000016FC 23 3332 INC HL - 000016FD 46 3333 LD B,(HL) - 000016FE DD CB 0A 4E 3334 BIT 1,(IX+10) - 00001702 28 07 3335 JR Z,?0237 - 00001704 DD 5E 10 3336 LD E,(IX+16) - 00001707 16 00 3337 LD D,0 - 00001709 18 03 3338 JR ?0238 - 0000170B 3339 ?0237: - 0000170B 11 00 00 3340 LD DE,0 - 0000170E 3341 ?0238: - 0000170E CD F2 02 3342 CALL LWRD ?0471 - 00001711 E1 3343 POP HL - 00001712 E1 3344 POP HL - 00001713 E1 3345 POP HL - 00001714 DD CB 0A 7E 3346 BIT 7,(IX+10) - 00001718 DD 4E 08 3347 LD C,(IX+8) - 0000171B DD 46 09 3348 LD B,(IX+9) - 0000171E DD 5E 06 3349 LD E,(IX+6) - 00001721 DD 56 07 3350 LD D,(IX+7) - 00001724 20 07 3351 JR NZ,?0240 - 00001726 3352 ?0239: - 00001726 3E AF 3353 LD A,BYTE3 FillRectNC - 00001728 21 AF 01 3354 LD HL,LWRD FillRectNC - 0000172B 18 05 3355 JR ?0364 - 0000172D 3356 ?0240: - 0000172D 3E 25 3357 LD A,BYTE3 DrawRectNC - 0000172F 21 25 01 3358 LD HL,LWRD DrawRectNC - 00001732 3359 ?0364: - 00001732 CD 00 00 3360 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001735 3361 ?0241: - 00001735 DD 5E 20 3362 LD E,(IX+32) - 00001738 DD 56 21 3363 LD D,(IX+33) - 0000173B 21 0A 00 3364 LD HL,10 - 0000173E ED 4B 00 00 3365 LD BC,(global) - 00001742 09 3366 ADD HL,BC - 00001743 46 3367 LD B,(HL) - 00001744 23 3368 INC HL - 00001745 66 3369 LD H,(HL) - 00001746 68 3370 LD L,B - 00001747 01 05 00 3371 LD BC,5 - 0000174A 09 3372 ADD HL,BC - 0000174B 4E 3373 LD C,(HL) - 0000174C 23 3374 INC HL - 0000174D 46 3375 LD B,(HL) - 0000174E 23 3376 INC HL - 0000174F 7E 3377 LD A,(HL) - 00001750 69 3378 LD L,C - 00001751 60 3379 LD H,B - 00001752 CD 2D 04 3380 CALL LWRD ?0449 - 00001755 DD 6E 08 3381 LD L,(IX+8) - 00001758 DD 66 09 3382 LD H,(IX+9) - 0000175B A7 3383 AND A - 0000175C ED 42 3384 SBC HL,BC - 0000175E EB 3385 EX DE,HL - 0000175F 01 02 00 3386 LD BC,2 - 00001762 CD 00 00 3387 CALL LWRD ?SS_DIV_L02 - 00001765 69 3388 LD L,C - 00001766 60 3389 LD H,B - 00001767 39 3390 ADD HL,SP - 00001768 46 3391 LD B,(HL) - 00001769 23 3392 INC HL - 0000176A 66 3393 LD H,(HL) - 0000176B 68 3394 LD L,B - 0000176C 19 3395 ADD HL,DE - 0000176D 01 07 00 3396 LD BC,7 - 00001770 09 3397 ADD HL,BC - 00001771 4D 3398 LD C,L - 00001772 44 3399 LD B,H - 00001773 21 00 00 3400 LD HL,0 - 00001776 39 3401 ADD HL,SP - 00001777 5E 3402 LD E,(HL) - 00001778 23 3403 INC HL - 00001779 56 3404 LD D,(HL) - 0000177A 13 3405 INC DE - 0000177B 13 3406 INC DE - 0000177C 3E A3 3407 LD A,BYTE3 Move - 0000177E 21 A3 00 3408 LD HL,LWRD Move - 00001781 CD 00 00 3409 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001784 DD CB 0B 46 3410 BIT 0,(IX+11) - 00001788 28 36 3411 JR Z,?0243 - 0000178A 3412 ?0242: - 0000178A FD 21 00 00 3413 LD IY,0 - 0000178E 3414 ?0245: - 0000178E DD 5E 20 3415 LD E,(IX+32) - 00001791 DD 56 21 3416 LD D,(IX+33) - 00001794 3E 00 3417 LD A,BYTE3 strlen - 00001796 21 00 00 3418 LD HL,LWRD strlen - 00001799 CD 2D 04 3419 CALL LWRD ?0449 - 0000179C FD E5 3420 PUSH IY - 0000179E E1 3421 POP HL - 0000179F A7 3422 AND A - 000017A0 ED 42 3423 SBC HL,BC - 000017A2 21 06 00 3424 LD HL,6 - 000017A5 30 0B 3425 JR NC,?0244 - 000017A7 3426 ?0246: - 000017A7 39 3427 ADD HL,SP - 000017A8 FD E5 3428 PUSH IY - 000017AA C1 3429 POP BC - 000017AB 09 3430 ADD HL,BC - 000017AC 36 2A 3431 LD (HL),42 - 000017AE FD 23 3432 INC IY - 000017B0 18 DC 3433 JR ?0245 - 000017B2 3434 ?0244: - 000017B2 39 3435 ADD HL,SP - 000017B3 FD E5 3436 PUSH IY - 000017B5 C1 3437 POP BC - 000017B6 09 3438 ADD HL,BC - 000017B7 36 00 3439 LD (HL),0 - 000017B9 21 06 00 3440 LD HL,6 - 000017BC 39 3441 ADD HL,SP - 000017BD EB 3442 EX DE,HL - 000017BE 18 06 3443 JR ?0365 - 000017C0 3444 ?0243: - 000017C0 DD 5E 20 3445 LD E,(IX+32) - 000017C3 DD 56 21 3446 LD D,(IX+33) - 000017C6 3447 ?0365: - 000017C6 3E 39 3448 LD A,BYTE3 Text - 000017C8 21 39 02 3449 LD HL,LWRD Text - 000017CB CD 00 00 3450 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000017CE 3451 ?0248: - 000017CE 3452 ?0235: - 000017CE 21 48 00 3453 LD HL,72 - 000017D1 39 3454 ADD HL,SP - 000017D2 F9 3455 LD SP,HL - 000017D3 C3 5E 02 3456 JP LWRD ?0411 - 000017D6 3457 Display_new: - 000017D6 CD 00 00 3458 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000017D9 00 00 3459 DEFW 0 - 000017DB FD E5 3460 PUSH IY - 000017DD DD 6E 0E 3461 LD L,(IX+14) - 000017E0 DD 66 0F 3462 LD H,(IX+15) - 000017E3 E5 3463 PUSH HL - 000017E4 DD 6E 0C 3464 LD L,(IX+12) - 000017E7 DD 66 0D 3465 LD H,(IX+13) - 000017EA E5 3466 PUSH HL - 000017EB DD 6E 0A 3467 LD L,(IX+10) - 000017EE DD 66 0B 3468 LD H,(IX+11) - 000017F1 E5 3469 PUSH HL - 000017F2 DD 5E 02 3470 LD E,(IX+2) - 000017F5 DD 56 03 3471 LD D,(IX+3) - 000017F8 CD E0 15 3472 CALL LWRD ?0440 - 000017FB F1 3473 POP AF - 000017FC F1 3474 POP AF - 000017FD F1 3475 POP AF - 000017FE E5 3476 PUSH HL - 000017FF FD E1 3477 POP IY - 00001801 01 0A 00 3478 LD BC,10 - 00001804 09 3479 ADD HL,BC - 00001805 CB DE 3480 SET 3,(HL) - 00001807 01 14 00 3481 LD BC,?0249 - 0000180A FD E5 3482 PUSH IY - 0000180C D1 3483 POP DE - 0000180D 3E 59 3484 LD A,BYTE3 Component_setlabel - 0000180F 21 59 06 3485 LD HL,LWRD Component_setlabel - 00001812 CD 00 00 3486 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001815 FD 36 1A 8A 3487 LD (IY+26),LOW(Display_paint) - 00001819 FD 36 1B 16 3488 LD (IY+27),HIGH(Display_paint) - 0000181D FD 36 1C 8A 3489 LD (IY+28),BYTE3 Display_paint - 00001821 FD 36 17 09 3490 LD (IY+23),LOW(Display_handler) - 00001825 FD 36 18 16 3491 LD (IY+24),HIGH(Display_handler) - 00001829 FD 36 19 09 3492 LD (IY+25),BYTE3 Display_handler - 0000182D C3 51 06 3493 JP LWRD ?0418 - 00001830 3494 Label_handler: - 00001830 CD 00 00 3495 CALL LWRD ?ENT_PARM_DIRECT_L09 - 00001833 C3 00 00 3496 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00001836 3497 Label_paint: - 00001836 C5 3498 PUSH BC - 00001837 DD E5 3499 PUSH IX - 00001839 F5 3500 PUSH AF - 0000183A F5 3501 PUSH AF - 0000183B D5 3502 PUSH DE - 0000183C DD E1 3503 POP IX - 0000183E 21 02 00 3504 LD HL,2 - 00001841 39 3505 ADD HL,SP - 00001842 AF 3506 XOR A - 00001843 77 3507 LD (HL),A - 00001844 23 3508 INC HL - 00001845 77 3509 LD (HL),A - 00001846 2B 3510 DEC HL - 00001847 2B 3511 DEC HL - 00001848 2B 3512 DEC HL - 00001849 77 3513 LD (HL),A - 0000184A 23 3514 INC HL - 0000184B 77 3515 LD (HL),A - 0000184C 21 0A 00 3516 LD HL,10 - 0000184F ED 4B 00 00 3517 LD BC,(global) - 00001853 09 3518 ADD HL,BC - 00001854 7E 3519 LD A,(HL) - 00001855 23 3520 INC HL - 00001856 66 3521 LD H,(HL) - 00001857 6F 3522 LD L,A - 00001858 46 3523 LD B,(HL) - 00001859 23 3524 INC HL - 0000185A 66 3525 LD H,(HL) - 0000185B 68 3526 LD L,B - 0000185C E5 3527 PUSH HL - 0000185D 21 0E 00 3528 LD HL,14 - 00001860 19 3529 ADD HL,DE - 00001861 4E 3530 LD C,(HL) - 00001862 23 3531 INC HL - 00001863 46 3532 LD B,(HL) - 00001864 E1 3533 POP HL - 00001865 A7 3534 AND A - 00001866 ED 42 3535 SBC HL,BC - 00001868 28 03 3536 JR Z,?0251 - 0000186A 3537 ?0250: - 0000186A CD 1E 0F 3538 CALL LWRD ?0473 - 0000186D 3539 ?0251: - 0000186D DD CB 0A 46 3540 BIT 0,(IX+10) - 00001871 28 21 3541 JR Z,?0253 - 00001873 3542 ?0252: - 00001873 21 00 00 3543 LD HL,0 - 00001876 39 3544 ADD HL,SP - 00001877 E5 3545 PUSH HL - 00001878 CD 85 0D 3546 CALL LWRD ?0467 - 0000187B E1 3547 POP HL - 0000187C 21 00 00 3548 LD HL,0 - 0000187F 39 3549 ADD HL,SP - 00001880 4E 3550 LD C,(HL) - 00001881 23 3551 INC HL - 00001882 46 3552 LD B,(HL) - 00001883 C5 3553 PUSH BC - 00001884 23 3554 INC HL - 00001885 4E 3555 LD C,(HL) - 00001886 23 3556 INC HL - 00001887 46 3557 LD B,(HL) - 00001888 DD E5 3558 PUSH IX - 0000188A D1 3559 POP DE - 0000188B 3E 7A 3560 LD A,BYTE3 Button_drawtext - 0000188D 21 7A 10 3561 LD HL,LWRD Button_drawtext - 00001890 CD 00 00 3562 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001893 E1 3563 POP HL - 00001894 3564 ?0253: - 00001894 C3 06 12 3565 JP LWRD ?0178 - 00001897 3566 Label_new: - 00001897 CD 00 00 3567 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 0000189A 00 00 3568 DEFW 0 - 0000189C FD E5 3569 PUSH IY - 0000189E DD 6E 0C 3570 LD L,(IX+12) - 000018A1 DD 66 0D 3571 LD H,(IX+13) - 000018A4 E5 3572 PUSH HL - 000018A5 DD 6E 0A 3573 LD L,(IX+10) - 000018A8 DD 66 0B 3574 LD H,(IX+11) - 000018AB E5 3575 PUSH HL - 000018AC CD B5 0F 3576 CALL LWRD ?0438 - 000018AF F1 3577 POP AF - 000018B0 F1 3578 POP AF - 000018B1 E5 3579 PUSH HL - 000018B2 FD E1 3580 POP IY - 000018B4 01 20 00 3581 LD BC,32 - 000018B7 09 3582 ADD HL,BC - 000018B8 DD 4E 0E 3583 LD C,(IX+14) - 000018BB 71 3584 LD (HL),C - 000018BC DD 46 0F 3585 LD B,(IX+15) - 000018BF 23 3586 INC HL - 000018C0 70 3587 LD (HL),B - 000018C1 FD 36 0A 01 3588 LD (IY+10),1 - 000018C5 FD 36 0B 00 3589 LD (IY+11),0 - 000018C9 FD 36 17 30 3590 LD (IY+23),LOW(Label_handler) - 000018CD FD 36 18 18 3591 LD (IY+24),HIGH(Label_handler) - 000018D1 FD 36 19 30 3592 LD (IY+25),BYTE3 Label_handler - 000018D5 FD 36 1A 36 3593 LD (IY+26),LOW(Label_paint) - 000018D9 FD 36 1B 18 3594 LD (IY+27),HIGH(Label_paint) - 000018DD FD 36 1C 36 3595 LD (IY+28),BYTE3 Label_paint - 000018E1 FD 36 1D 2F 3596 LD (IY+29),LOW(Button_add) - 000018E5 FD 36 1E 12 3597 LD (IY+30),HIGH(Button_add) - 000018E9 FD 36 1F 2F 3598 LD (IY+31),BYTE3 Button_add - 000018ED C3 51 06 3599 JP LWRD ?0418 - 000018F0 3600 rootWindow_handler: - 000018F0 CD 00 00 3601 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 000018F3 00 00 3602 DEFW 0 - 000018F5 DD 6E 0A 3603 LD L,(IX+10) - 000018F8 DD 66 0B 3604 LD H,(IX+11) - 000018FB E5 3605 PUSH HL - 000018FC DD 5E 02 3606 LD E,(IX+2) - 000018FF DD 56 03 3607 LD D,(IX+3) - 00001902 3E D2 3608 LD A,BYTE3 Window_handler - 00001904 21 D2 0A 3609 LD HL,LWRD Window_handler - 00001907 CD 00 00 3610 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000190A E1 3611 POP HL - 0000190B C3 00 00 3612 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 0000190E 3613 screenbuilder: - 0000190E CD 00 00 3614 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00001911 CE FF 3615 DEFW 65486 - 00001913 FD E5 3616 PUSH IY - 00001915 DD 36 D8 00 3617 LD (IX-40),0 - 00001919 21 00 00 3618 LD HL,0 - 0000191C E5 3619 PUSH HL - 0000191D C5 3620 PUSH BC - 0000191E 3E 00 3621 LD A,BYTE3 open - 00001920 21 00 00 3622 LD HL,LWRD open - 00001923 CD 00 00 3623 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001926 F1 3624 POP AF - 00001927 F1 3625 POP AF - 00001928 DD 75 D4 3626 LD (IX-44),L - 0000192B DD 74 D5 3627 LD (IX-43),H - 0000192E DD 36 F0 2B 3628 LD (IX-16),43 - 00001932 DD 36 F1 00 3629 LD (IX-15),0 - 00001936 DD 36 F2 1A 3630 LD (IX-14),26 - 0000193A DD 36 F3 00 3631 LD (IX-13),0 - 0000193E 3632 ?0256: - 0000193E DD 36 F4 00 3633 LD (IX-12),0 - 00001942 DD 7E D8 3634 LD A,(IX-40) - 00001945 FE 73 3635 CP 115 - 00001947 20 18 3636 JR NZ,?0258 - 00001949 3637 ?0257: - 00001949 DD 6E D9 3638 LD L,(IX-39) - 0000194C DD 66 DA 3639 LD H,(IX-38) - 0000194F DD 75 F0 3640 LD (IX-16),L - 00001952 DD 74 F1 3641 LD (IX-15),H - 00001955 DD 6E DB 3642 LD L,(IX-37) - 00001958 DD 66 DC 3643 LD H,(IX-36) - 0000195B DD 75 F2 3644 LD (IX-14),L - 0000195E DD 74 F3 3645 LD (IX-13),H - 00001961 3646 ?0258: - 00001961 DD 7E D8 3647 LD A,(IX-40) - 00001964 FE 42 3648 CP 66 - 00001966 28 07 3649 JR Z,?0261 - 00001968 DD 7E D8 3650 LD A,(IX-40) - 0000196B FE 4D 3651 CP 77 - 0000196D 20 4F 3652 JR NZ,?0260 - 0000196F 3653 ?0261: - 0000196F 3654 ?0262: - 0000196F 3655 ?0259: - 0000196F DD 4E DD 3656 LD C,(IX-35) - 00001972 06 00 3657 LD B,0 - 00001974 C5 3658 PUSH BC - 00001975 CD CE 1C 3659 CALL LWRD ?0482 - 00001978 D5 3660 PUSH DE - 00001979 DD 4E DB 3661 LD C,(IX-37) - 0000197C DD 5E F0 3662 LD E,(IX-16) - 0000197F DD 56 F1 3663 LD D,(IX-15) - 00001982 CD D7 1C 3664 CALL LWRD ?0483 - 00001985 D5 3665 PUSH DE - 00001986 DD 4E DA 3666 LD C,(IX-38) - 00001989 DD 5E F2 3667 LD E,(IX-14) - 0000198C DD 56 F3 3668 LD D,(IX-13) - 0000198F CD 00 00 3669 CALL LWRD ?S_MUL_L02 - 00001992 D5 3670 PUSH DE - 00001993 DD 5E D9 3671 LD E,(IX-39) - 00001996 50 3672 LD D,B - 00001997 DD 4E F0 3673 LD C,(IX-16) - 0000199A DD 46 F1 3674 LD B,(IX-15) - 0000199D CD 00 00 3675 CALL LWRD ?S_MUL_L02 - 000019A0 3E 35 3676 LD A,BYTE3 Button_new - 000019A2 21 35 12 3677 LD HL,LWRD Button_new - 000019A5 C1 3678 POP BC - 000019A6 CD 00 00 3679 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000019A9 F1 3680 POP AF - 000019AA F1 3681 POP AF - 000019AB F1 3682 POP AF - 000019AC E5 3683 PUSH HL - 000019AD FD E1 3684 POP IY - 000019AF DD 7E D8 3685 LD A,(IX-40) - 000019B2 FE 4D 3686 CP 77 - 000019B4 20 04 3687 JR NZ,?0264 - 000019B6 3688 ?0263: - 000019B6 FD CB 0A F6 3689 SET 6,(IY+10) - 000019BA 3690 ?0264: - 000019BA DD 36 F4 01 3691 LD (IX-12),1 - 000019BE 3692 ?0260: - 000019BE DD 7E D8 3693 LD A,(IX-40) - 000019C1 FE 54 3694 CP 84 - 000019C3 20 44 3695 JR NZ,?0266 - 000019C5 3696 ?0265: - 000019C5 DD 4E DD 3697 LD C,(IX-35) - 000019C8 06 00 3698 LD B,0 - 000019CA C5 3699 PUSH BC - 000019CB CD CE 1C 3700 CALL LWRD ?0482 - 000019CE D5 3701 PUSH DE - 000019CF DD 4E DB 3702 LD C,(IX-37) - 000019D2 DD 5E F0 3703 LD E,(IX-16) - 000019D5 DD 56 F1 3704 LD D,(IX-15) - 000019D8 CD D7 1C 3705 CALL LWRD ?0483 - 000019DB D5 3706 PUSH DE - 000019DC DD 4E DA 3707 LD C,(IX-38) - 000019DF DD 5E F2 3708 LD E,(IX-14) - 000019E2 DD 56 F3 3709 LD D,(IX-13) - 000019E5 CD 00 00 3710 CALL LWRD ?S_MUL_L02 - 000019E8 D5 3711 PUSH DE - 000019E9 DD 5E D9 3712 LD E,(IX-39) - 000019EC 50 3713 LD D,B - 000019ED DD 4E F0 3714 LD C,(IX-16) - 000019F0 DD 46 F1 3715 LD B,(IX-15) - 000019F3 CD 00 00 3716 CALL LWRD ?S_MUL_L02 - 000019F6 3E 0F 3717 LD A,BYTE3 ToggleButton_new - 000019F8 21 0F 14 3718 LD HL,LWRD ToggleButton_new - 000019FB C1 3719 POP BC - 000019FC CD 00 00 3720 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000019FF F1 3721 POP AF - 00001A00 F1 3722 POP AF - 00001A01 F1 3723 POP AF - 00001A02 E5 3724 PUSH HL - 00001A03 FD E1 3725 POP IY - 00001A05 DD 36 F4 01 3726 LD (IX-12),1 - 00001A09 3727 ?0266: - 00001A09 DD 7E D8 3728 LD A,(IX-40) - 00001A0C FE 44 3729 CP 68 - 00001A0E 20 44 3730 JR NZ,?0268 - 00001A10 3731 ?0267: - 00001A10 DD 4E DD 3732 LD C,(IX-35) - 00001A13 06 00 3733 LD B,0 - 00001A15 C5 3734 PUSH BC - 00001A16 CD CE 1C 3735 CALL LWRD ?0482 - 00001A19 D5 3736 PUSH DE - 00001A1A DD 4E DB 3737 LD C,(IX-37) - 00001A1D DD 5E F0 3738 LD E,(IX-16) - 00001A20 DD 56 F1 3739 LD D,(IX-15) - 00001A23 CD D7 1C 3740 CALL LWRD ?0483 - 00001A26 D5 3741 PUSH DE - 00001A27 DD 4E DA 3742 LD C,(IX-38) - 00001A2A DD 5E F2 3743 LD E,(IX-14) - 00001A2D DD 56 F3 3744 LD D,(IX-13) - 00001A30 CD 00 00 3745 CALL LWRD ?S_MUL_L02 - 00001A33 D5 3746 PUSH DE - 00001A34 DD 5E D9 3747 LD E,(IX-39) - 00001A37 50 3748 LD D,B - 00001A38 DD 4E F0 3749 LD C,(IX-16) - 00001A3B DD 46 F1 3750 LD B,(IX-15) - 00001A3E CD 00 00 3751 CALL LWRD ?S_MUL_L02 - 00001A41 3E D6 3752 LD A,BYTE3 Display_new - 00001A43 21 D6 17 3753 LD HL,LWRD Display_new - 00001A46 C1 3754 POP BC - 00001A47 CD 00 00 3755 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001A4A F1 3756 POP AF - 00001A4B F1 3757 POP AF - 00001A4C F1 3758 POP AF - 00001A4D E5 3759 PUSH HL - 00001A4E FD E1 3760 POP IY - 00001A50 DD 36 F4 01 3761 LD (IX-12),1 - 00001A54 3762 ?0268: - 00001A54 DD 7E D8 3763 LD A,(IX-40) - 00001A57 FE 4C 3764 CP 76 - 00001A59 20 47 3765 JR NZ,?0270 - 00001A5B 3766 ?0269: - 00001A5B 21 0C 00 3767 LD HL,12 - 00001A5E 39 3768 ADD HL,SP - 00001A5F 01 12 00 3769 LD BC,18 - 00001A62 09 3770 ADD HL,BC - 00001A63 E5 3771 PUSH HL - 00001A64 CD CE 1C 3772 CALL LWRD ?0482 - 00001A67 D5 3773 PUSH DE - 00001A68 DD 4E DB 3774 LD C,(IX-37) - 00001A6B DD 5E F0 3775 LD E,(IX-16) - 00001A6E DD 56 F1 3776 LD D,(IX-15) - 00001A71 CD D7 1C 3777 CALL LWRD ?0483 - 00001A74 D5 3778 PUSH DE - 00001A75 DD 4E DA 3779 LD C,(IX-38) - 00001A78 DD 5E F2 3780 LD E,(IX-14) - 00001A7B DD 56 F3 3781 LD D,(IX-13) - 00001A7E CD 00 00 3782 CALL LWRD ?S_MUL_L02 - 00001A81 D5 3783 PUSH DE - 00001A82 DD 5E D9 3784 LD E,(IX-39) - 00001A85 50 3785 LD D,B - 00001A86 DD 4E F0 3786 LD C,(IX-16) - 00001A89 DD 46 F1 3787 LD B,(IX-15) - 00001A8C CD 00 00 3788 CALL LWRD ?S_MUL_L02 - 00001A8F 3E 97 3789 LD A,BYTE3 Label_new - 00001A91 21 97 18 3790 LD HL,LWRD Label_new - 00001A94 C1 3791 POP BC - 00001A95 CD 00 00 3792 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001A98 F1 3793 POP AF - 00001A99 F1 3794 POP AF - 00001A9A F1 3795 POP AF - 00001A9B E5 3796 PUSH HL - 00001A9C FD E1 3797 POP IY - 00001A9E DD 36 F4 01 3798 LD (IX-12),1 - 00001AA2 3799 ?0270: - 00001AA2 DD 7E D8 3800 LD A,(IX-40) - 00001AA5 FE 41 3801 CP 65 - 00001AA7 20 51 3802 JR NZ,?0272 - 00001AA9 3803 ?0271: - 00001AA9 21 26 00 3804 LD HL,38 - 00001AAC DD 4E 02 3805 LD C,(IX+2) - 00001AAF DD 46 03 3806 LD B,(IX+3) - 00001AB2 09 3807 ADD HL,BC - 00001AB3 E5 3808 PUSH HL - 00001AB4 21 2B 00 3809 LD HL,43 - 00001AB7 39 3810 ADD HL,SP - 00001AB8 EB 3811 EX DE,HL - 00001AB9 E1 3812 POP HL - 00001ABA 73 3813 LD (HL),E - 00001ABB 23 3814 INC HL - 00001ABC 72 3815 LD (HL),D - 00001ABD DD 6E DE 3816 LD L,(IX-34) - 00001AC0 DD 66 DF 3817 LD H,(IX-33) - 00001AC3 DD 75 F8 3818 LD (IX-8),L - 00001AC6 DD 74 F9 3819 LD (IX-7),H - 00001AC9 DD 6E E0 3820 LD L,(IX-32) - 00001ACC DD 66 E1 3821 LD H,(IX-31) - 00001ACF DD 75 FA 3822 LD (IX-6),L - 00001AD2 DD 74 FB 3823 LD (IX-5),H - 00001AD5 21 16 00 3824 LD HL,22 - 00001AD8 39 3825 ADD HL,SP - 00001AD9 4E 3826 LD C,(HL) - 00001ADA 23 3827 INC HL - 00001ADB 46 3828 LD B,(HL) - 00001ADC 23 3829 INC HL - 00001ADD 5E 3830 LD E,(HL) - 00001ADE 23 3831 INC HL - 00001ADF 56 3832 LD D,(HL) - 00001AE0 DD 71 FC 3833 LD (IX-4),C - 00001AE3 DD 70 FD 3834 LD (IX-3),B - 00001AE6 DD 73 FE 3835 LD (IX-2),E - 00001AE9 DD 72 FF 3836 LD (IX-1),D - 00001AEC DD 5E 02 3837 LD E,(IX+2) - 00001AEF DD 56 03 3838 LD D,(IX+3) - 00001AF2 3E DE 3839 LD A,BYTE3 root_actionhandler - 00001AF4 21 DE 1C 3840 LD HL,LWRD root_actionhandler - 00001AF7 CD 00 00 3841 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001AFA 3842 ?0272: - 00001AFA DD 7E D8 3843 LD A,(IX-40) - 00001AFD FE 53 3844 CP 83 - 00001AFF 20 71 3845 JR NZ,?0274 - 00001B01 3846 ?0273: - 00001B01 21 0C 00 3847 LD HL,12 - 00001B04 39 3848 ADD HL,SP - 00001B05 4D 3849 LD C,L - 00001B06 44 3850 LD B,H - 00001B07 DD 5E D4 3851 LD E,(IX-44) - 00001B0A DD 56 D5 3852 LD D,(IX-43) - 00001B0D 3E 16 3853 LD A,BYTE3 read_stringtable - 00001B0F 21 16 20 3854 LD HL,LWRD read_stringtable - 00001B12 CD 00 00 3855 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001B15 21 26 00 3856 LD HL,38 - 00001B18 DD 4E 02 3857 LD C,(IX+2) - 00001B1B DD 46 03 3858 LD B,(IX+3) - 00001B1E 09 3859 ADD HL,BC - 00001B1F E5 3860 PUSH HL - 00001B20 11 04 00 3861 LD DE,4 - 00001B23 CD C6 1C 3862 CALL LWRD ?0454 - 00001B26 EB 3863 EX DE,HL - 00001B27 E1 3864 POP HL - 00001B28 73 3865 LD (HL),E - 00001B29 23 3866 INC HL - 00001B2A 72 3867 LD (HL),D - 00001B2B 21 26 00 3868 LD HL,38 - 00001B2E 09 3869 ADD HL,BC - 00001B2F 56 3870 LD D,(HL) - 00001B30 DD 72 F5 3871 LD (IX-11),D - 00001B33 23 3872 INC HL - 00001B34 66 3873 LD H,(HL) - 00001B35 DD 74 F6 3874 LD (IX-10),H - 00001B38 21 24 00 3875 LD HL,36 - 00001B3B 09 3876 ADD HL,BC - 00001B3C 36 04 3877 LD (HL),4 - 00001B3E 23 3878 INC HL - 00001B3F 36 00 3879 LD (HL),0 - 00001B41 6A 3880 LD L,D - 00001B42 DD 66 F6 3881 LD H,(IX-10) - 00001B45 23 3882 INC HL - 00001B46 23 3883 INC HL - 00001B47 E5 3884 PUSH HL - 00001B48 21 08 00 3885 LD HL,8 - 00001B4B ED 4B 00 00 3886 LD BC,(global) - 00001B4F 09 3887 ADD HL,BC - 00001B50 5E 3888 LD E,(HL) - 00001B51 23 3889 INC HL - 00001B52 56 3890 LD D,(HL) - 00001B53 E1 3891 POP HL - 00001B54 73 3892 LD (HL),E - 00001B55 23 3893 INC HL - 00001B56 72 3894 LD (HL),D - 00001B57 21 06 00 3895 LD HL,6 - 00001B5A ED 4B 00 00 3896 LD BC,(global) - 00001B5E 09 3897 ADD HL,BC - 00001B5F 46 3898 LD B,(HL) - 00001B60 23 3899 INC HL - 00001B61 66 3900 LD H,(HL) - 00001B62 68 3901 LD L,B - 00001B63 E5 3902 PUSH HL - 00001B64 DD 6E F5 3903 LD L,(IX-11) - 00001B67 DD 66 F6 3904 LD H,(IX-10) - 00001B6A C1 3905 POP BC - 00001B6B 71 3906 LD (HL),C - 00001B6C 23 3907 INC HL - 00001B6D 70 3908 LD (HL),B - 00001B6E DD 36 F4 00 3909 LD (IX-12),0 - 00001B72 3910 ?0274: - 00001B72 AF 3911 XOR A - 00001B73 DD B6 F4 3912 OR (IX-12) - 00001B76 CA 72 1C 3913 JP Z,?0276 - 00001B79 3914 ?0275: - 00001B79 DD 7E DE 3915 LD A,(IX-34) - 00001B7C DD B6 DF 3916 OR (IX-33) - 00001B7F 28 69 3917 JR Z,?0278 - 00001B81 3918 ?0277: - 00001B81 FD CB 0A EE 3919 SET 5,(IY+10) - 00001B85 FD 36 24 0B 3920 LD (IY+36),11 - 00001B89 FD 36 25 00 3921 LD (IY+37),0 - 00001B8D 11 0B 00 3922 LD DE,11 - 00001B90 CD C6 1C 3923 CALL LWRD ?0454 - 00001B93 FD 75 26 3924 LD (IY+38),L - 00001B96 FD 74 27 3925 LD (IY+39),H - 00001B99 FD 6E 26 3926 LD L,(IY+38) - 00001B9C DD 75 D0 3927 LD (IX-48),L - 00001B9F FD 66 27 3928 LD H,(IY+39) - 00001BA2 DD 74 D1 3929 LD (IX-47),H - 00001BA5 36 DE 3930 LD (HL),LOW(root_actionhandler) - 00001BA7 23 3931 INC HL - 00001BA8 36 1C 3932 LD (HL),HIGH(root_actionhandler) - 00001BAA 23 3933 INC HL - 00001BAB 36 DE 3934 LD (HL),BYTE3 root_actionhandler - 00001BAD DD 6E D0 3935 LD L,(IX-48) - 00001BB0 DD 66 D1 3936 LD H,(IX-47) - 00001BB3 23 3937 INC HL - 00001BB4 23 3938 INC HL - 00001BB5 23 3939 INC HL - 00001BB6 DD 4E DE 3940 LD C,(IX-34) - 00001BB9 71 3941 LD (HL),C - 00001BBA DD 46 DF 3942 LD B,(IX-33) - 00001BBD 23 3943 INC HL - 00001BBE 70 3944 LD (HL),B - 00001BBF 21 05 00 3945 LD HL,5 - 00001BC2 DD 4E D0 3946 LD C,(IX-48) - 00001BC5 DD 46 D1 3947 LD B,(IX-47) - 00001BC8 09 3948 ADD HL,BC - 00001BC9 DD 5E E0 3949 LD E,(IX-32) - 00001BCC 73 3950 LD (HL),E - 00001BCD DD 56 E1 3951 LD D,(IX-31) - 00001BD0 23 3952 INC HL - 00001BD1 72 3953 LD (HL),D - 00001BD2 21 07 00 3954 LD HL,7 - 00001BD5 09 3955 ADD HL,BC - 00001BD6 E5 3956 PUSH HL - 00001BD7 21 18 00 3957 LD HL,24 - 00001BDA 39 3958 ADD HL,SP - 00001BDB 5E 3959 LD E,(HL) - 00001BDC 23 3960 INC HL - 00001BDD 56 3961 LD D,(HL) - 00001BDE 23 3962 INC HL - 00001BDF 4E 3963 LD C,(HL) - 00001BE0 23 3964 INC HL - 00001BE1 46 3965 LD B,(HL) - 00001BE2 E1 3966 POP HL - 00001BE3 73 3967 LD (HL),E - 00001BE4 23 3968 INC HL - 00001BE5 72 3969 LD (HL),D - 00001BE6 23 3970 INC HL - 00001BE7 71 3971 LD (HL),C - 00001BE8 23 3972 INC HL - 00001BE9 70 3973 LD (HL),B - 00001BEA 3974 ?0278: - 00001BEA DD 7E E6 3975 LD A,(IX-26) - 00001BED DD B6 E7 3976 OR (IX-25) - 00001BF0 28 0C 3977 JR Z,?0280 - 00001BF2 3978 ?0279: - 00001BF2 DD 6E E6 3979 LD L,(IX-26) - 00001BF5 FD 75 0A 3980 LD (IY+10),L - 00001BF8 DD 66 E7 3981 LD H,(IX-25) - 00001BFB FD 74 0B 3982 LD (IY+11),H - 00001BFE 3983 ?0280: - 00001BFE DD 6E E8 3984 LD L,(IX-24) - 00001C01 FD 75 0E 3985 LD (IY+14),L - 00001C04 DD 66 E9 3986 LD H,(IX-23) - 00001C07 FD 74 0F 3987 LD (IY+15),H - 00001C0A DD 6E EA 3988 LD L,(IX-22) - 00001C0D FD 75 20 3989 LD (IY+32),L - 00001C10 DD 7E EB 3990 LD A,(IX-21) - 00001C13 E6 0F 3991 AND 15 - 00001C15 FD 77 21 3992 LD (IY+33),A - 00001C18 FD 7E 20 3993 LD A,(IY+32) - 00001C1B FD B6 21 3994 OR (IY+33) - 00001C1E 20 16 3995 JR NZ,?0282 - 00001C20 3996 ?0281: - 00001C20 11 14 00 3997 LD DE,20 - 00001C23 CD C6 1C 3998 CALL LWRD ?0454 - 00001C26 FD 75 20 3999 LD (IY+32),L - 00001C29 FD 74 21 4000 LD (IY+33),H - 00001C2C FD 6E 20 4001 LD L,(IY+32) - 00001C2F FD 66 21 4002 LD H,(IY+33) - 00001C32 36 00 4003 LD (HL),0 - 00001C34 18 04 4004 JR ?0283 - 00001C36 4005 ?0282: - 00001C36 FD CB 0B F6 4006 SET 6,(IY+11) - 00001C3A 4007 ?0283: - 00001C3A DD 7E EB 4008 LD A,(IX-21) - 00001C3D 2E 00 4009 LD L,0 - 00001C3F 4D 4010 LD C,L - 00001C40 E6 F0 4011 AND 240 - 00001C42 47 4012 LD B,A - 00001C43 26 10 4013 LD H,16 - 00001C45 ED 42 4014 SBC HL,BC - 00001C47 30 10 4015 JR NC,?0285 - 00001C49 4016 ?0284: - 00001C49 DD 6E EA 4017 LD L,(IX-22) - 00001C4C DD 7E EB 4018 LD A,(IX-21) - 00001C4F E6 0F 4019 AND 15 - 00001C51 67 4020 LD H,A - 00001C52 23 4021 INC HL - 00001C53 FD 75 22 4022 LD (IY+34),L - 00001C56 FD 74 23 4023 LD (IY+35),H - 00001C59 4024 ?0285: - 00001C59 FD E5 4025 PUSH IY - 00001C5B DD 5E 02 4026 LD E,(IX+2) - 00001C5E 4B 4027 LD C,E - 00001C5F DD 56 03 4028 LD D,(IX+3) - 00001C62 42 4029 LD B,D - 00001C63 21 1D 00 4030 LD HL,29 - 00001C66 09 4031 ADD HL,BC - 00001C67 4E 4032 LD C,(HL) - 00001C68 23 4033 INC HL - 00001C69 46 4034 LD B,(HL) - 00001C6A 23 4035 INC HL - 00001C6B 7E 4036 LD A,(HL) - 00001C6C 69 4037 LD L,C - 00001C6D 60 4038 LD H,B - 00001C6E C1 4039 POP BC - 00001C6F CD 00 00 4040 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001C72 4041 ?0276: - 00001C72 21 14 00 4042 LD HL,20 - 00001C75 E5 4043 PUSH HL - 00001C76 2E 0E 4044 LD L,14 - 00001C78 39 4045 ADD HL,SP - 00001C79 4D 4046 LD C,L - 00001C7A 44 4047 LD B,H - 00001C7B DD 5E D4 4048 LD E,(IX-44) - 00001C7E DD 56 D5 4049 LD D,(IX-43) - 00001C81 CD BE 1C 4050 CALL LWRD ?0441 - 00001C84 F1 4051 POP AF - 00001C85 3E 14 4052 LD A,20 - 00001C87 AD 4053 XOR L - 00001C88 B4 4054 OR H - 00001C89 CA 3E 19 4055 JP Z,?0256 - 00001C8C 4056 ?0254: - 00001C8C DD 5E D4 4057 LD E,(IX-44) - 00001C8F DD 56 D5 4058 LD D,(IX-43) - 00001C92 3E 00 4059 LD A,BYTE3 close - 00001C94 21 00 00 4060 LD HL,LWRD close - 00001C97 CD 00 00 4061 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001C9A DD 5E 02 4062 LD E,(IX+2) - 00001C9D DD 56 03 4063 LD D,(IX+3) - 00001CA0 3E 1F 4064 LD A,BYTE3 Component_linkstringtable - 00001CA2 21 1F 0A 4065 LD HL,LWRD Component_linkstringtable - 00001CA5 CD 00 00 4066 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001CA8 DD 5E 02 4067 LD E,(IX+2) - 00001CAB 4B 4068 LD C,E - 00001CAC DD 56 03 4069 LD D,(IX+3) - 00001CAF 42 4070 LD B,D - 00001CB0 21 1A 00 4071 LD HL,26 - 00001CB3 09 4072 ADD HL,BC - 00001CB4 4E 4073 LD C,(HL) - 00001CB5 23 4074 INC HL - 00001CB6 46 4075 LD B,(HL) - 00001CB7 23 4076 INC HL - 00001CB8 7E 4077 LD A,(HL) - 00001CB9 69 4078 LD L,C - 00001CBA 60 4079 LD H,B - 00001CBB C3 1F 11 4080 JP LWRD ?0424 - 00001CBE 4081 ?0441: - 00001CBE 3E 00 4082 LD A,BYTE3 _read - 00001CC0 21 00 00 4083 LD HL,LWRD _read - 00001CC3 C3 00 00 4084 JP LWRD ?BANK_CALL_DIRECT_L08 - 00001CC6 4085 ?0454: - 00001CC6 3E 00 4086 LD A,BYTE3 malloc - 00001CC8 21 00 00 4087 LD HL,LWRD malloc - 00001CCB C3 00 00 4088 JP LWRD ?BANK_CALL_DIRECT_L08 - 00001CCE 4089 ?0482: - 00001CCE DD 4E DC 4090 LD C,(IX-36) - 00001CD1 DD 5E F2 4091 LD E,(IX-14) - 00001CD4 DD 56 F3 4092 LD D,(IX-13) - 00001CD7 4093 ?0483: - 00001CD7 CD 00 00 4094 CALL LWRD ?S_MUL_L02 - 00001CDA 1B 4095 DEC DE - 00001CDB 1B 4096 DEC DE - 00001CDC 1B 4097 DEC DE - 00001CDD C9 4098 RET - 00001CDE 4099 root_actionhandler: - 00001CDE CD 00 00 4100 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00001CE1 EA FF 4101 DEFW 65514 - 00001CE3 FD E5 4102 PUSH IY - 00001CE5 DD 6E 02 4103 LD L,(IX+2) - 00001CE8 DD 66 03 4104 LD H,(IX+3) - 00001CEB E5 4105 PUSH HL - 00001CEC FD E1 4106 POP IY - 00001CEE 21 06 00 4107 LD HL,6 - 00001CF1 39 4108 ADD HL,SP - 00001CF2 EB 4109 EX DE,HL - 00001CF3 21 26 00 4110 LD HL,?0286 - 00001CF6 01 0E 00 4111 LD BC,14 - 00001CF9 ED B0 4112 LDIR - 00001CFB FD 6E 26 4113 LD L,(IY+38) - 00001CFE DD 75 EA 4114 LD (IX-22),L - 00001D01 FD 66 27 4115 LD H,(IY+39) - 00001D04 DD 74 EB 4116 LD (IX-21),H - 00001D07 23 4117 INC HL - 00001D08 23 4118 INC HL - 00001D09 23 4119 INC HL - 00001D0A 3E 01 4120 LD A,1 - 00001D0C AE 4121 XOR (HL) - 00001D0D 23 4122 INC HL - 00001D0E B6 4123 OR (HL) - 00001D0F 20 08 4124 JR NZ,?0288 - 00001D11 4125 ?0287: - 00001D11 C5 4126 PUSH BC - 00001D12 01 01 04 4127 LD BC,1025 - 00001D15 CD 76 0D 4128 CALL LWRD ?0463 - 00001D18 E1 4129 POP HL - 00001D19 4130 ?0288: - 00001D19 DD 6E EA 4131 LD L,(IX-22) - 00001D1C DD 66 EB 4132 LD H,(IX-21) - 00001D1F 23 4133 INC HL - 00001D20 23 4134 INC HL - 00001D21 23 4135 INC HL - 00001D22 46 4136 LD B,(HL) - 00001D23 23 4137 INC HL - 00001D24 66 4138 LD H,(HL) - 00001D25 68 4139 LD L,B - 00001D26 CB 85 4140 RES 0,L - 00001D28 3E 02 4141 LD A,2 - 00001D2A AD 4142 XOR L - 00001D2B B4 4143 OR H - 00001D2C C2 49 1E 4144 JP NZ,?0290 - 00001D2F 4145 ?0289: - 00001D2F 6F 4146 LD L,A - 00001D30 67 4147 LD H,A - 00001D31 E5 4148 PUSH HL - 00001D32 E5 4149 PUSH HL - 00001D33 01 01 00 4150 LD BC,1 - 00001D36 FD 5E 11 4151 LD E,(IY+17) - 00001D39 FD 56 12 4152 LD D,(IY+18) - 00001D3C 3E B6 4153 LD A,BYTE3 Component_changestate_children - 00001D3E 21 B6 09 4154 LD HL,LWRD Component_changestate_children - 00001D41 CD 00 00 4155 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001D44 E1 4156 POP HL - 00001D45 E1 4157 POP HL - 00001D46 FD 6E 11 4158 LD L,(IY+17) - 00001D49 FD 66 12 4159 LD H,(IY+18) - 00001D4C 01 08 00 4160 LD BC,8 - 00001D4F 09 4161 ADD HL,BC - 00001D50 4E 4162 LD C,(HL) - 00001D51 23 4163 INC HL - 00001D52 46 4164 LD B,(HL) - 00001D53 C5 4165 PUSH BC - 00001D54 FD 6E 11 4166 LD L,(IY+17) - 00001D57 FD 66 12 4167 LD H,(IY+18) - 00001D5A 01 06 00 4168 LD BC,6 - 00001D5D 09 4169 ADD HL,BC - 00001D5E 4E 4170 LD C,(HL) - 00001D5F 23 4171 INC HL - 00001D60 46 4172 LD B,(HL) - 00001D61 C5 4173 PUSH BC - 00001D62 01 00 00 4174 LD BC,0 - 00001D65 59 4175 LD E,C - 00001D66 50 4176 LD D,B - 00001D67 3E 71 4177 LD A,BYTE3 Window_new - 00001D69 21 71 0F 4178 LD HL,LWRD Window_new - 00001D6C CD 00 00 4179 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001D6F F1 4180 POP AF - 00001D70 F1 4181 POP AF - 00001D71 DD 75 EC 4182 LD (IX-20),L - 00001D74 DD 74 ED 4183 LD (IX-19),H - 00001D77 01 0A 00 4184 LD BC,10 - 00001D7A 09 4185 ADD HL,BC - 00001D7B 36 03 4186 LD (HL),3 - 00001D7D 23 4187 INC HL - 00001D7E 70 4188 LD (HL),B - 00001D7F DD 6E EA 4189 LD L,(IX-22) - 00001D82 DD 66 EB 4190 LD H,(IX-21) - 00001D85 23 4191 INC HL - 00001D86 23 4192 INC HL - 00001D87 23 4193 INC HL - 00001D88 CB 46 4194 BIT 0,(HL) - 00001D8A 28 0C 4195 JR Z,?0292 - 00001D8C 4196 ?0291: - 00001D8C 69 4197 LD L,C - 00001D8D 60 4198 LD H,B - 00001D8E DD 4E EC 4199 LD C,(IX-20) - 00001D91 DD 46 ED 4200 LD B,(IX-19) - 00001D94 09 4201 ADD HL,BC - 00001D95 23 4202 INC HL - 00001D96 CB EE 4203 SET 5,(HL) - 00001D98 4204 ?0292: - 00001D98 21 17 00 4205 LD HL,23 - 00001D9B DD 4E EC 4206 LD C,(IX-20) - 00001D9E DD 46 ED 4207 LD B,(IX-19) - 00001DA1 09 4208 ADD HL,BC - 00001DA2 36 F0 4209 LD (HL),LOW(rootWindow_handler) - 00001DA4 23 4210 INC HL - 00001DA5 36 18 4211 LD (HL),HIGH(rootWindow_handler) - 00001DA7 23 4212 INC HL - 00001DA8 36 F0 4213 LD (HL),BYTE3 rootWindow_handler - 00001DAA 21 1A 00 4214 LD HL,26 - 00001DAD 09 4215 ADD HL,BC - 00001DAE 36 2C 4216 LD (HL),LOW(Root_paint) - 00001DB0 23 4217 INC HL - 00001DB1 36 0F 4218 LD (HL),HIGH(Root_paint) - 00001DB3 23 4219 INC HL - 00001DB4 36 2C 4220 LD (HL),BYTE3 Root_paint - 00001DB6 21 07 00 4221 LD HL,7 - 00001DB9 DD 5E EA 4222 LD E,(IX-22) - 00001DBC DD 56 EB 4223 LD D,(IX-21) - 00001DBF 19 4224 ADD HL,DE - 00001DC0 5E 4225 LD E,(HL) - 00001DC1 EB 4226 EX DE,HL - 00001DC2 DD 75 F3 4227 LD (IX-13),L - 00001DC5 21 07 00 4228 LD HL,7 - 00001DC8 DD 4E EA 4229 LD C,(IX-22) - 00001DCB DD 46 EB 4230 LD B,(IX-21) - 00001DCE 09 4231 ADD HL,BC - 00001DCF 5E 4232 LD E,(HL) - 00001DD0 23 4233 INC HL - 00001DD1 56 4234 LD D,(HL) - 00001DD2 23 4235 INC HL - 00001DD3 4E 4236 LD C,(HL) - 00001DD4 23 4237 INC HL - 00001DD5 46 4238 LD B,(HL) - 00001DD6 EB 4239 EX DE,HL - 00001DD7 3E 08 4240 LD A,8 - 00001DD9 CD 00 00 4241 CALL LWRD ?SL_RSH_L03 - 00001DDC DD 75 F4 4242 LD (IX-12),L - 00001DDF 21 07 00 4243 LD HL,7 - 00001DE2 DD 4E EA 4244 LD C,(IX-22) - 00001DE5 DD 46 EB 4245 LD B,(IX-21) - 00001DE8 09 4246 ADD HL,BC - 00001DE9 5E 4247 LD E,(HL) - 00001DEA 23 4248 INC HL - 00001DEB 56 4249 LD D,(HL) - 00001DEC 23 4250 INC HL - 00001DED 4E 4251 LD C,(HL) - 00001DEE 23 4252 INC HL - 00001DEF 46 4253 LD B,(HL) - 00001DF0 EB 4254 EX DE,HL - 00001DF1 3E 10 4255 LD A,16 - 00001DF3 CD 00 00 4256 CALL LWRD ?SL_RSH_L03 - 00001DF6 DD 75 F5 4257 LD (IX-11),L - 00001DF9 21 07 00 4258 LD HL,7 - 00001DFC DD 4E EA 4259 LD C,(IX-22) - 00001DFF DD 46 EB 4260 LD B,(IX-21) - 00001E02 09 4261 ADD HL,BC - 00001E03 5E 4262 LD E,(HL) - 00001E04 23 4263 INC HL - 00001E05 56 4264 LD D,(HL) - 00001E06 23 4265 INC HL - 00001E07 4E 4266 LD C,(HL) - 00001E08 23 4267 INC HL - 00001E09 46 4268 LD B,(HL) - 00001E0A EB 4269 EX DE,HL - 00001E0B 3E 18 4270 LD A,24 - 00001E0D CD 00 00 4271 CALL LWRD ?SL_RSH_L03 - 00001E10 DD 75 F6 4272 LD (IX-10),L - 00001E13 21 06 00 4273 LD HL,6 - 00001E16 39 4274 ADD HL,SP - 00001E17 4D 4275 LD C,L - 00001E18 44 4276 LD B,H - 00001E19 DD 5E EC 4277 LD E,(IX-20) - 00001E1C DD 56 ED 4278 LD D,(IX-19) - 00001E1F 3E 0E 4279 LD A,BYTE3 screenbuilder - 00001E21 21 0E 19 4280 LD HL,LWRD screenbuilder - 00001E24 CD 00 00 4281 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001E27 DD 4E EC 4282 LD C,(IX-20) - 00001E2A DD 46 ED 4283 LD B,(IX-19) - 00001E2D C5 4284 PUSH BC - 00001E2E FD 5E 11 4285 LD E,(IY+17) - 00001E31 FD 56 12 4286 LD D,(IY+18) - 00001E34 FD 6E 11 4287 LD L,(IY+17) - 00001E37 FD 66 12 4288 LD H,(IY+18) - 00001E3A 01 1D 00 4289 LD BC,29 - 00001E3D 09 4290 ADD HL,BC - 00001E3E 4E 4291 LD C,(HL) - 00001E3F 23 4292 INC HL - 00001E40 46 4293 LD B,(HL) - 00001E41 23 4294 INC HL - 00001E42 7E 4295 LD A,(HL) - 00001E43 69 4296 LD L,C - 00001E44 60 4297 LD H,B - 00001E45 C1 4298 POP BC - 00001E46 CD 00 00 4299 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001E49 4300 ?0290: - 00001E49 DD 6E EA 4301 LD L,(IX-22) - 00001E4C DD 66 EB 4302 LD H,(IX-21) - 00001E4F 23 4303 INC HL - 00001E50 23 4304 INC HL - 00001E51 23 4305 INC HL - 00001E52 3E 04 4306 LD A,4 - 00001E54 AE 4307 XOR (HL) - 00001E55 23 4308 INC HL - 00001E56 B6 4309 OR (HL) - 00001E57 C2 E7 1F 4310 JP NZ,?0294 - 00001E5A 4311 ?0293: - 00001E5A 21 01 00 4312 LD HL,1 - 00001E5D E5 4313 PUSH HL - 00001E5E FD 6E 11 4314 LD L,(IY+17) - 00001E61 FD 66 12 4315 LD H,(IY+18) - 00001E64 01 08 00 4316 LD BC,8 - 00001E67 09 4317 ADD HL,BC - 00001E68 46 4318 LD B,(HL) - 00001E69 23 4319 INC HL - 00001E6A 66 4320 LD H,(HL) - 00001E6B 68 4321 LD L,B - 00001E6C 01 F6 FF 4322 LD BC,65526 - 00001E6F 09 4323 ADD HL,BC - 00001E70 E5 4324 PUSH HL - 00001E71 FD 6E 11 4325 LD L,(IY+17) - 00001E74 FD 66 12 4326 LD H,(IY+18) - 00001E77 01 06 00 4327 LD BC,6 - 00001E7A 09 4328 ADD HL,BC - 00001E7B 46 4329 LD B,(HL) - 00001E7C 23 4330 INC HL - 00001E7D 66 4331 LD H,(HL) - 00001E7E 68 4332 LD L,B - 00001E7F 01 F6 FF 4333 LD BC,65526 - 00001E82 09 4334 ADD HL,BC - 00001E83 E5 4335 PUSH HL - 00001E84 01 05 00 4336 LD BC,5 - 00001E87 59 4337 LD E,C - 00001E88 50 4338 LD D,B - 00001E89 3E 1A 4339 LD A,BYTE3 Dialog_new - 00001E8B 21 1A 15 4340 LD HL,LWRD Dialog_new - 00001E8E CD 00 00 4341 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001E91 F1 4342 POP AF - 00001E92 F1 4343 POP AF - 00001E93 F1 4344 POP AF - 00001E94 DD 75 EC 4345 LD (IX-20),L - 00001E97 DD 74 ED 4346 LD (IX-19),H - 00001E9A 01 0A 00 4347 LD BC,10 - 00001E9D 09 4348 ADD HL,BC - 00001E9E 36 03 4349 LD (HL),3 - 00001EA0 23 4350 INC HL - 00001EA1 36 10 4351 LD (HL),16 - 00001EA3 21 0E 00 4352 LD HL,14 - 00001EA6 DD 4E EC 4353 LD C,(IX-20) - 00001EA9 DD 46 ED 4354 LD B,(IX-19) - 00001EAC 09 4355 ADD HL,BC - 00001EAD 36 30 4356 LD (HL),48 - 00001EAF 23 4357 INC HL - 00001EB0 36 00 4358 LD (HL),0 - 00001EB2 AF 4359 XOR A - 00001EB3 DD 77 FE 4360 LD (IX-2),A - 00001EB6 DD 77 FF 4361 LD (IX-1),A - 00001EB9 4362 ?0296: - 00001EB9 21 05 00 4363 LD HL,5 - 00001EBC DD 4E EA 4364 LD C,(IX-22) - 00001EBF DD 46 EB 4365 LD B,(IX-21) - 00001EC2 09 4366 ADD HL,BC - 00001EC3 5E 4367 LD E,(HL) - 00001EC4 23 4368 INC HL - 00001EC5 56 4369 LD D,(HL) - 00001EC6 06 0C 4370 LD B,12 - 00001EC8 CD 00 00 4371 CALL LWRD ?SS_RSH_L02 - 00001ECB 4B 4372 LD C,E - 00001ECC 42 4373 LD B,D - 00001ECD DD 6E FE 4374 LD L,(IX-2) - 00001ED0 DD 66 FF 4375 LD H,(IX-1) - 00001ED3 CD 00 00 4376 CALL LWRD ?SS_CMP_L02 - 00001ED6 30 04 4377 JR NC,?0367 - 00001ED8 3E 01 4378 LD A,1 - 00001EDA 18 01 4379 JR ?0368 - 00001EDC 4380 ?0367: - 00001EDC AF 4381 XOR A - 00001EDD 4382 ?0368: - 00001EDD E6 0F 4383 AND 15 - 00001EDF CA 7B 1F 4384 JP Z,?0295 - 00001EE2 4385 ?0297: - 00001EE2 21 05 00 4386 LD HL,5 - 00001EE5 DD 4E EA 4387 LD C,(IX-22) - 00001EE8 DD 46 EB 4388 LD B,(IX-21) - 00001EEB 09 4389 ADD HL,BC - 00001EEC 46 4390 LD B,(HL) - 00001EED 23 4391 INC HL - 00001EEE 7E 4392 LD A,(HL) - 00001EEF 68 4393 LD L,B - 00001EF0 E6 0F 4394 AND 15 - 00001EF2 67 4395 LD H,A - 00001EF3 DD 4E FE 4396 LD C,(IX-2) - 00001EF6 DD 46 FF 4397 LD B,(IX-1) - 00001EF9 09 4398 ADD HL,BC - 00001EFA 29 4399 ADD HL,HL - 00001EFB E5 4400 PUSH HL - 00001EFC 21 08 00 4401 LD HL,8 - 00001EFF ED 5B 00 00 4402 LD DE,(global) - 00001F03 19 4403 ADD HL,DE - 00001F04 5E 4404 LD E,(HL) - 00001F05 23 4405 INC HL - 00001F06 56 4406 LD D,(HL) - 00001F07 E1 4407 POP HL - 00001F08 19 4408 ADD HL,DE - 00001F09 2B 4409 DEC HL - 00001F0A 2B 4410 DEC HL - 00001F0B 5E 4411 LD E,(HL) - 00001F0C 23 4412 INC HL - 00001F0D 56 4413 LD D,(HL) - 00001F0E D5 4414 PUSH DE - 00001F0F 21 10 00 4415 LD HL,16 - 00001F12 E5 4416 PUSH HL - 00001F13 2E 06 4417 LD L,6 - 00001F15 DD 5E EC 4418 LD E,(IX-20) - 00001F18 DD 56 ED 4419 LD D,(IX-19) - 00001F1B 19 4420 ADD HL,DE - 00001F1C 6E 4421 LD L,(HL) - 00001F1D 26 00 4422 LD H,0 - 00001F1F 01 F0 FF 4423 LD BC,65520 - 00001F22 09 4424 ADD HL,BC - 00001F23 E5 4425 PUSH HL - 00001F24 DD 6E FE 4426 LD L,(IX-2) - 00001F27 DD 66 FF 4427 LD H,(IX-1) - 00001F2A 29 4428 ADD HL,HL - 00001F2B 29 4429 ADD HL,HL - 00001F2C 4D 4430 LD C,L - 00001F2D 44 4431 LD B,H - 00001F2E 29 4432 ADD HL,HL - 00001F2F 09 4433 ADD HL,BC - 00001F30 01 14 00 4434 LD BC,20 - 00001F33 09 4435 ADD HL,BC - 00001F34 4D 4436 LD C,L - 00001F35 44 4437 LD B,H - 00001F36 11 08 00 4438 LD DE,8 - 00001F39 3E 97 4439 LD A,BYTE3 Label_new - 00001F3B 21 97 18 4440 LD HL,LWRD Label_new - 00001F3E CD 00 00 4441 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001F41 F1 4442 POP AF - 00001F42 F1 4443 POP AF - 00001F43 F1 4444 POP AF - 00001F44 DD 75 FC 4445 LD (IX-4),L - 00001F47 DD 74 FD 4446 LD (IX-3),H - 00001F4A 01 0E 00 4447 LD BC,14 - 00001F4D 09 4448 ADD HL,BC - 00001F4E 36 30 4449 LD (HL),48 - 00001F50 23 4450 INC HL - 00001F51 70 4451 LD (HL),B - 00001F52 DD 4E FC 4452 LD C,(IX-4) - 00001F55 DD 46 FD 4453 LD B,(IX-3) - 00001F58 C5 4454 PUSH BC - 00001F59 DD 5E EC 4455 LD E,(IX-20) - 00001F5C 4B 4456 LD C,E - 00001F5D DD 56 ED 4457 LD D,(IX-19) - 00001F60 42 4458 LD B,D - 00001F61 21 1D 00 4459 LD HL,29 - 00001F64 09 4460 ADD HL,BC - 00001F65 4E 4461 LD C,(HL) - 00001F66 23 4462 INC HL - 00001F67 46 4463 LD B,(HL) - 00001F68 23 4464 INC HL - 00001F69 7E 4465 LD A,(HL) - 00001F6A 69 4466 LD L,C - 00001F6B 60 4467 LD H,B - 00001F6C C1 4468 POP BC - 00001F6D CD 00 00 4469 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001F70 DD 34 FE 4470 INC (IX-2) - 00001F73 20 03 4471 JR NZ,?0369 - 00001F75 DD 34 FF 4472 INC (IX-1) - 00001F78 4473 ?0369: - 00001F78 C3 B9 1E 4474 JP LWRD ?0296 - 00001F7B 4475 ?0295: - 00001F7B 01 15 00 4476 LD BC,?0299 - 00001F7E DD 5E EC 4477 LD E,(IX-20) - 00001F81 DD 56 ED 4478 LD D,(IX-19) - 00001F84 3E 59 4479 LD A,BYTE3 Component_setlabel - 00001F86 21 59 06 4480 LD HL,LWRD Component_setlabel - 00001F89 CD 00 00 4481 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001F8C 01 FF 00 4482 LD BC,255 - 00001F8F CD 08 20 4483 CALL LWRD ?0476 - 00001F92 01 0E 00 4484 LD BC,14 - 00001F95 09 4485 ADD HL,BC - 00001F96 36 30 4486 LD (HL),48 - 00001F98 23 4487 INC HL - 00001F99 70 4488 LD (HL),B - 00001F9A 0E FE 4489 LD C,254 - 00001F9C CD 08 20 4490 CALL LWRD ?0476 - 00001F9F EB 4491 EX DE,HL - 00001FA0 CD 8F 09 4492 CALL LWRD ?0453 - 00001FA3 DD 4E EC 4493 LD C,(IX-20) - 00001FA6 DD 46 ED 4494 LD B,(IX-19) - 00001FA9 C5 4495 PUSH BC - 00001FAA FD 5E 11 4496 LD E,(IY+17) - 00001FAD FD 56 12 4497 LD D,(IY+18) - 00001FB0 FD 6E 11 4498 LD L,(IY+17) - 00001FB3 FD 66 12 4499 LD H,(IY+18) - 00001FB6 01 1D 00 4500 LD BC,29 - 00001FB9 09 4501 ADD HL,BC - 00001FBA 4E 4502 LD C,(HL) - 00001FBB 23 4503 INC HL - 00001FBC 46 4504 LD B,(HL) - 00001FBD 23 4505 INC HL - 00001FBE 7E 4506 LD A,(HL) - 00001FBF 69 4507 LD L,C - 00001FC0 60 4508 LD H,B - 00001FC1 C1 4509 POP BC - 00001FC2 CD 00 00 4510 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001FC5 21 00 00 4511 LD HL,0 - 00001FC8 E5 4512 PUSH HL - 00001FC9 FD 5E 11 4513 LD E,(IY+17) - 00001FCC FD 56 12 4514 LD D,(IY+18) - 00001FCF FD 6E 11 4515 LD L,(IY+17) - 00001FD2 FD 66 12 4516 LD H,(IY+18) - 00001FD5 01 17 00 4517 LD BC,23 - 00001FD8 09 4518 ADD HL,BC - 00001FD9 4E 4519 LD C,(HL) - 00001FDA 23 4520 INC HL - 00001FDB 46 4521 LD B,(HL) - 00001FDC 23 4522 INC HL - 00001FDD 7E 4523 LD A,(HL) - 00001FDE 69 4524 LD L,C - 00001FDF 60 4525 LD H,B - 00001FE0 01 03 01 4526 LD BC,259 - 00001FE3 CD 00 00 4527 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00001FE6 E1 4528 POP HL - 00001FE7 4529 ?0294: - 00001FE7 21 10 00 4530 LD HL,16 - 00001FEA ED 4B 00 00 4531 LD BC,(global) - 00001FEE 09 4532 ADD HL,BC - 00001FEF 7E 4533 LD A,(HL) - 00001FF0 23 4534 INC HL - 00001FF1 B6 4535 OR (HL) - 00001FF2 23 4536 INC HL - 00001FF3 B6 4537 OR (HL) - 00001FF4 28 0D 4538 JR Z,?0301 - 00001FF6 4539 ?0300: - 00001FF6 FD E5 4540 PUSH IY - 00001FF8 D1 4541 POP DE - 00001FF9 21 10 00 4542 LD HL,16 - 00001FFC ED 4B 00 00 4543 LD BC,(global) - 00002000 CD 94 0D 4544 CALL LWRD ?0475 - 00002003 4545 ?0301: - 00002003 FD E1 4546 POP IY - 00002005 C3 00 00 4547 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 00002008 4548 ?0476: - 00002008 DD 5E EC 4549 LD E,(IX-20) - 0000200B DD 56 ED 4550 LD D,(IX-19) - 0000200E 3E 8E 4551 LD A,BYTE3 Component_find - 00002010 21 8E 07 4552 LD HL,LWRD Component_find - 00002013 C3 00 00 4553 JP LWRD ?BANK_CALL_DIRECT_L08 - 00002016 4554 read_stringtable: - 00002016 CD 00 00 4555 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00002019 F8 FF 4556 DEFW -8 - 0000201B FD E5 4557 PUSH IY - 0000201D 03 4558 INC BC - 0000201E 0A 4559 LD A,(BC) - 0000201F DD 77 FE 4560 LD (IX-2),A - 00002022 03 4561 INC BC - 00002023 0A 4562 LD A,(BC) - 00002024 DD 77 FF 4563 LD (IX-1),A - 00002027 03 4564 INC BC - 00002028 69 4565 LD L,C - 00002029 60 4566 LD H,B - 0000202A 4E 4567 LD C,(HL) - 0000202B DD 71 FC 4568 LD (IX-4),C - 0000202E 23 4569 INC HL - 0000202F 46 4570 LD B,(HL) - 00002030 DD 70 FD 4571 LD (IX-3),B - 00002033 DD 6E FE 4572 LD L,(IX-2) - 00002036 67 4573 LD H,A - 00002037 29 4574 ADD HL,HL - 00002038 EB 4575 EX DE,HL - 00002039 CD C6 1C 4576 CALL LWRD ?0454 - 0000203C DD 75 FA 4577 LD (IX-6),L - 0000203F DD 74 FB 4578 LD (IX-5),H - 00002042 59 4579 LD E,C - 00002043 50 4580 LD D,B - 00002044 CD CE 04 4581 CALL LWRD ?0447 - 00002047 C5 4582 PUSH BC - 00002048 4D 4583 LD C,L - 00002049 44 4584 LD B,H - 0000204A DD 5E 02 4585 LD E,(IX+2) - 0000204D DD 56 03 4586 LD D,(IX+3) - 00002050 CD BE 1C 4587 CALL LWRD ?0441 - 00002053 F1 4588 POP AF - 00002054 11 00 00 4589 LD DE,0 - 00002057 AF 4590 XOR A - 00002058 DD 77 F8 4591 LD (IX-8),A - 0000205B DD 77 F9 4592 LD (IX-7),A - 0000205E 4593 ?0303: - 0000205E DD 4E FC 4594 LD C,(IX-4) - 00002061 DD 46 FD 4595 LD B,(IX-3) - 00002064 6B 4596 LD L,E - 00002065 62 4597 LD H,D - 00002066 CD 00 00 4598 CALL LWRD ?SS_CMP_L02 - 00002069 30 35 4599 JR NC,?0302 - 0000206B CD DC 20 4600 CALL LWRD ?0479 - 0000206E 30 30 4601 JR NC,?0302 - 00002070 4602 ?0306: - 00002070 4603 ?0305: - 00002070 4604 ?0304: - 00002070 23 4605 INC HL - 00002071 DD 75 F8 4606 LD (IX-8),L - 00002074 DD 74 F9 4607 LD (IX-7),H - 00002077 2B 4608 DEC HL - 00002078 29 4609 ADD HL,HL - 00002079 DD 4E FA 4610 LD C,(IX-6) - 0000207C DD 46 FB 4611 LD B,(IX-5) - 0000207F 09 4612 ADD HL,BC - 00002080 E5 4613 PUSH HL - 00002081 FD E5 4614 PUSH IY - 00002083 E1 4615 POP HL - 00002084 19 4616 ADD HL,DE - 00002085 4D 4617 LD C,L - 00002086 44 4618 LD B,H - 00002087 E1 4619 POP HL - 00002088 71 4620 LD (HL),C - 00002089 23 4621 INC HL - 0000208A 70 4622 LD (HL),B - 0000208B 4623 ?0308: - 0000208B FD E5 4624 PUSH IY - 0000208D E1 4625 POP HL - 0000208E 19 4626 ADD HL,DE - 0000208F 7E 4627 LD A,(HL) - 00002090 B7 4628 OR A - 00002091 28 03 4629 JR Z,?0307 - 00002093 4630 ?0309: - 00002093 13 4631 INC DE - 00002094 18 F5 4632 JR ?0308 - 00002096 4633 ?0307: - 00002096 6B 4634 LD L,E - 00002097 62 4635 LD H,D - 00002098 13 4636 INC DE - 00002099 FD E5 4637 PUSH IY - 0000209B C1 4638 POP BC - 0000209C 09 4639 ADD HL,BC - 0000209D 77 4640 LD (HL),A - 0000209E 18 BE 4641 JR ?0303 - 000020A0 4642 ?0302: - 000020A0 CD DC 20 4643 CALL LWRD ?0479 - 000020A3 30 13 4644 JR NC,?0311 - 000020A5 4645 ?0310: - 000020A5 29 4646 ADD HL,HL - 000020A6 DD 4E FA 4647 LD C,(IX-6) - 000020A9 DD 46 FB 4648 LD B,(IX-5) - 000020AC 09 4649 ADD HL,BC - 000020AD E5 4650 PUSH HL - 000020AE FD E5 4651 PUSH IY - 000020B0 E1 4652 POP HL - 000020B1 19 4653 ADD HL,DE - 000020B2 4D 4654 LD C,L - 000020B3 44 4655 LD B,H - 000020B4 E1 4656 POP HL - 000020B5 71 4657 LD (HL),C - 000020B6 23 4658 INC HL - 000020B7 70 4659 LD (HL),B - 000020B8 4660 ?0311: - 000020B8 21 06 00 4661 LD HL,6 - 000020BB ED 4B 00 00 4662 LD BC,(global) - 000020BF 09 4663 ADD HL,BC - 000020C0 FD E5 4664 PUSH IY - 000020C2 C1 4665 POP BC - 000020C3 71 4666 LD (HL),C - 000020C4 23 4667 INC HL - 000020C5 70 4668 LD (HL),B - 000020C6 21 08 00 4669 LD HL,8 - 000020C9 ED 4B 00 00 4670 LD BC,(global) - 000020CD 09 4671 ADD HL,BC - 000020CE DD 4E FA 4672 LD C,(IX-6) - 000020D1 71 4673 LD (HL),C - 000020D2 DD 46 FB 4674 LD B,(IX-5) - 000020D5 23 4675 INC HL - 000020D6 70 4676 LD (HL),B - 000020D7 FD E1 4677 POP IY - 000020D9 C3 00 00 4678 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 000020DC 4679 ?0479: - 000020DC DD 4E FE 4680 LD C,(IX-2) - 000020DF DD 46 FF 4681 LD B,(IX-1) - 000020E2 DD 6E F8 4682 LD L,(IX-8) - 000020E5 DD 66 F9 4683 LD H,(IX-7) - 000020E8 C3 00 00 4684 JP LWRD ?SS_CMP_L02 - 000020EB 4685 gui_globals: - 000020EB 2A 00 00 4686 LD HL,(global) - 000020EE C3 00 00 4687 JP LWRD ?BANK_FAST_LEAVE_L08 - 000020F1 4688 GUIinit: - 000020F1 C5 4689 PUSH BC - 000020F2 D5 4690 PUSH DE - 000020F3 11 13 00 4691 LD DE,19 - 000020F6 CD C6 1C 4692 CALL LWRD ?0454 - 000020F9 22 00 00 4693 LD (global),HL - 000020FC AF 4694 XOR A - 000020FD 77 4695 LD (HL),A - 000020FE 23 4696 INC HL - 000020FF 77 4697 LD (HL),A - 00002100 21 04 00 4698 LD HL,4 - 00002103 ED 4B 00 00 4699 LD BC,(global) - 00002107 09 4700 ADD HL,BC - 00002108 77 4701 LD (HL),A - 00002109 23 4702 INC HL - 0000210A 77 4703 LD (HL),A - 0000210B 21 0A 00 4704 LD HL,10 - 0000210E ED 4B 00 00 4705 LD BC,(global) - 00002112 09 4706 ADD HL,BC - 00002113 77 4707 LD (HL),A - 00002114 23 4708 INC HL - 00002115 77 4709 LD (HL),A - 00002116 21 0C 00 4710 LD HL,12 - 00002119 ED 4B 00 00 4711 LD BC,(global) - 0000211D 09 4712 ADD HL,BC - 0000211E 77 4713 LD (HL),A - 0000211F 23 4714 INC HL - 00002120 77 4715 LD (HL),A - 00002121 21 08 00 4716 LD HL,8 - 00002124 ED 4B 00 00 4717 LD BC,(global) - 00002128 09 4718 ADD HL,BC - 00002129 77 4719 LD (HL),A - 0000212A 23 4720 INC HL - 0000212B 77 4721 LD (HL),A - 0000212C 21 06 00 4722 LD HL,6 - 0000212F ED 4B 00 00 4723 LD BC,(global) - 00002133 09 4724 ADD HL,BC - 00002134 77 4725 LD (HL),A - 00002135 23 4726 INC HL - 00002136 77 4727 LD (HL),A - 00002137 21 10 00 4728 LD HL,16 - 0000213A ED 4B 00 00 4729 LD BC,(global) - 0000213E 09 4730 ADD HL,BC - 0000213F 77 4731 LD (HL),A - 00002140 23 4732 INC HL - 00002141 77 4733 LD (HL),A - 00002142 23 4734 INC HL - 00002143 77 4735 LD (HL),A - 00002144 3E 00 4736 LD A,BYTE3 GraphicsOpen - 00002146 21 00 00 4737 LD HL,LWRD GraphicsOpen - 00002149 CD 00 00 4738 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000214C 21 00 00 4739 LD HL,0 - 0000214F E5 4740 PUSH HL - 00002150 E5 4741 PUSH HL - 00002151 0E 70 4742 LD C,BYTE3 stringheight01 - 00002153 C5 4743 PUSH BC - 00002154 21 70 05 4744 LD HL,LWRD stringheight01 - 00002157 E5 4745 PUSH HL - 00002158 0E 8C 4746 LD C,BYTE3 stringwidth0 - 0000215A C5 4747 PUSH BC - 0000215B 21 8C 05 4748 LD HL,LWRD stringwidth0 - 0000215E E5 4749 PUSH HL - 0000215F 11 30 00 4750 LD DE,48 - 00002162 CD 10 22 4751 CALL LWRD ?0484 - 00002165 21 0C 00 4752 LD HL,12 - 00002168 39 4753 ADD HL,SP - 00002169 F9 4754 LD SP,HL - 0000216A 21 00 00 4755 LD HL,0 - 0000216D E5 4756 PUSH HL - 0000216E E5 4757 PUSH HL - 0000216F 0E 70 4758 LD C,BYTE3 stringheight01 - 00002171 C5 4759 PUSH BC - 00002172 21 70 05 4760 LD HL,LWRD stringheight01 - 00002175 E5 4761 PUSH HL - 00002176 0E 9D 4762 LD C,BYTE3 stringwidth1 - 00002178 C5 4763 PUSH BC - 00002179 21 9D 05 4764 LD HL,LWRD stringwidth1 - 0000217C E5 4765 PUSH HL - 0000217D 11 31 00 4766 LD DE,49 - 00002180 CD 10 22 4767 CALL LWRD ?0484 - 00002183 21 0C 00 4768 LD HL,12 - 00002186 39 4769 ADD HL,SP - 00002187 F9 4770 LD SP,HL - 00002188 21 00 00 4771 LD HL,0 - 0000218B E5 4772 PUSH HL - 0000218C E5 4773 PUSH HL - 0000218D 0E 83 4774 LD C,BYTE3 stringheight2 - 0000218F C5 4775 PUSH BC - 00002190 21 83 05 4776 LD HL,LWRD stringheight2 - 00002193 E5 4777 PUSH HL - 00002194 0E A6 4778 LD C,BYTE3 stringwidth2 - 00002196 C5 4779 PUSH BC - 00002197 21 A6 05 4780 LD HL,LWRD stringwidth2 - 0000219A E5 4781 PUSH HL - 0000219B 11 32 00 4782 LD DE,50 - 0000219E CD 10 22 4783 CALL LWRD ?0484 - 000021A1 21 0C 00 4784 LD HL,12 - 000021A4 39 4785 ADD HL,SP - 000021A5 F9 4786 LD SP,HL - 000021A6 21 0E 00 4787 LD HL,14 - 000021A9 ED 4B 00 00 4788 LD BC,(global) - 000021AD 09 4789 ADD HL,BC - 000021AE E5 4790 PUSH HL - 000021AF 11 80 00 4791 LD DE,128 - 000021B2 D5 4792 PUSH DE - 000021B3 5A 4793 LD E,D - 000021B4 D5 4794 PUSH DE - 000021B5 4B 4795 LD C,E - 000021B6 42 4796 LD B,D - 000021B7 3E 71 4797 LD A,BYTE3 Window_new - 000021B9 21 71 0F 4798 LD HL,LWRD Window_new - 000021BC CD 00 00 4799 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000021BF F1 4800 POP AF - 000021C0 F1 4801 POP AF - 000021C1 4D 4802 LD C,L - 000021C2 44 4803 LD B,H - 000021C3 E1 4804 POP HL - 000021C4 71 4805 LD (HL),C - 000021C5 23 4806 INC HL - 000021C6 70 4807 LD (HL),B - 000021C7 21 0E 00 4808 LD HL,14 - 000021CA ED 4B 00 00 4809 LD BC,(global) - 000021CE 09 4810 ADD HL,BC - 000021CF 56 4811 LD D,(HL) - 000021D0 23 4812 INC HL - 000021D1 66 4813 LD H,(HL) - 000021D2 6A 4814 LD L,D - 000021D3 11 0A 00 4815 LD DE,10 - 000021D6 19 4816 ADD HL,DE - 000021D7 36 01 4817 LD (HL),1 - 000021D9 23 4818 INC HL - 000021DA 72 4819 LD (HL),D - 000021DB 21 0E 00 4820 LD HL,14 - 000021DE ED 4B 00 00 4821 LD BC,(global) - 000021E2 09 4822 ADD HL,BC - 000021E3 56 4823 LD D,(HL) - 000021E4 23 4824 INC HL - 000021E5 66 4825 LD H,(HL) - 000021E6 6A 4826 LD L,D - 000021E7 11 17 00 4827 LD DE,23 - 000021EA 19 4828 ADD HL,DE - 000021EB 36 F0 4829 LD (HL),LOW(rootWindow_handler) - 000021ED 23 4830 INC HL - 000021EE 36 18 4831 LD (HL),HIGH(rootWindow_handler) - 000021F0 23 4832 INC HL - 000021F1 36 F0 4833 LD (HL),BYTE3 rootWindow_handler - 000021F3 21 0E 00 4834 LD HL,14 - 000021F6 ED 4B 00 00 4835 LD BC,(global) - 000021FA 09 4836 ADD HL,BC - 000021FB 46 4837 LD B,(HL) - 000021FC 23 4838 INC HL - 000021FD 66 4839 LD H,(HL) - 000021FE 68 4840 LD L,B - 000021FF 01 1A 00 4841 LD BC,26 - 00002202 09 4842 ADD HL,BC - 00002203 36 2C 4843 LD (HL),LOW(Root_paint) - 00002205 23 4844 INC HL - 00002206 36 0F 4845 LD (HL),HIGH(Root_paint) - 00002208 23 4846 INC HL - 00002209 36 2C 4847 LD (HL),BYTE3 Root_paint - 0000220B D1 4848 POP DE - 0000220C C1 4849 POP BC - 0000220D C3 00 00 4850 JP LWRD ?BANK_FAST_LEAVE_L08 - 00002210 4851 ?0484: - 00002210 3E 33 4852 LD A,BYTE3 loadFont - 00002212 21 33 04 4853 LD HL,LWRD loadFont - 00002215 C3 00 00 4854 JP LWRD ?BANK_CALL_DIRECT_L08 - 00002218 4855 GUIunit: - 00002218 C5 4856 PUSH BC - 00002219 D5 4857 PUSH DE - 0000221A 21 0E 00 4858 LD HL,14 - 0000221D ED 4B 00 00 4859 LD BC,(global) - 00002221 09 4860 ADD HL,BC - 00002222 5E 4861 LD E,(HL) - 00002223 23 4862 INC HL - 00002224 56 4863 LD D,(HL) - 00002225 CD 8F 09 4864 CALL LWRD ?0453 - 00002228 3E BD 4865 LD A,BYTE3 ClearScreen - 0000222A 21 BD 02 4866 LD HL,LWRD ClearScreen - 0000222D CD 00 00 4867 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00002230 3E 8E 4868 LD A,BYTE3 GraphicsClose - 00002232 21 8E 00 4869 LD HL,LWRD GraphicsClose - 00002235 CD 00 00 4870 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00002238 D1 4871 POP DE - 00002239 C1 4872 POP BC - 0000223A C3 00 00 4873 JP LWRD ?BANK_FAST_LEAVE_L08 - 0000223D 4874 GUIgo: - 0000223D CD 00 00 4875 CALL LWRD ?ENT_AUTO_DIRECT_L09 - 00002240 FE FF 4876 DEFW 65534 - 00002242 DD 4E 02 4877 LD C,(IX+2) - 00002245 DD 46 03 4878 LD B,(IX+3) - 00002248 21 0E 00 4879 LD HL,14 - 0000224B ED 5B 00 00 4880 LD DE,(global) - 0000224F 19 4881 ADD HL,DE - 00002250 5E 4882 LD E,(HL) - 00002251 23 4883 INC HL - 00002252 56 4884 LD D,(HL) - 00002253 3E 0E 4885 LD A,BYTE3 screenbuilder - 00002255 21 0E 19 4886 LD HL,LWRD screenbuilder - 00002258 CD 00 00 4887 CALL LWRD ?BANK_CALL_DIRECT_L08 - 0000225B 4888 ?0313: - 0000225B 21 04 00 4889 LD HL,4 - 0000225E ED 4B 00 00 4890 LD BC,(global) - 00002262 09 4891 ADD HL,BC - 00002263 7E 4892 LD A,(HL) - 00002264 23 4893 INC HL - 00002265 B6 4894 OR (HL) - 00002266 C2 FB 22 4895 JP NZ,?0312 - 00002269 4896 ?0314: - 00002269 21 01 00 4897 LD HL,1 - 0000226C E5 4898 PUSH HL - 0000226D 23 4899 INC HL - 0000226E 39 4900 ADD HL,SP - 0000226F 4D 4901 LD C,L - 00002270 44 4902 LD B,H - 00002271 2A 00 00 4903 LD HL,(global) - 00002274 23 4904 INC HL - 00002275 23 4905 INC HL - 00002276 5E 4906 LD E,(HL) - 00002277 23 4907 INC HL - 00002278 56 4908 LD D,(HL) - 00002279 CD BE 1C 4909 CALL LWRD ?0441 - 0000227C F1 4910 POP AF - 0000227D 3E 01 4911 LD A,1 - 0000227F AD 4912 XOR L - 00002280 B4 4913 OR H - 00002281 20 D8 4914 JR NZ,?0313 - 00002283 4915 ?0315: - 00002283 DD 4E FE 4916 LD C,(IX-2) - 00002286 47 4917 LD B,A - 00002287 C5 4918 PUSH BC - 00002288 21 21 00 4919 LD HL,?0317 - 0000228B E5 4920 PUSH HL - 0000228C 3E 00 4921 LD A,BYTE3 printf - 0000228E 21 00 00 4922 LD HL,LWRD printf - 00002291 CD 00 00 4923 CALL LWRD ?BANK_CALL_DIRECT_L08 - 00002294 F1 4924 POP AF - 00002295 F1 4925 POP AF - 00002296 AF 4926 XOR A - 00002297 DD B6 FE 4927 OR (IX-2) - 0000229A 28 29 4928 JR Z,?0319 - 0000229C 4929 ?0318: - 0000229C 4F 4930 LD C,A - 0000229D C5 4931 PUSH BC - 0000229E 21 0E 00 4932 LD HL,14 - 000022A1 ED 5B 00 00 4933 LD DE,(global) - 000022A5 19 4934 ADD HL,DE - 000022A6 5E 4935 LD E,(HL) - 000022A7 23 4936 INC HL - 000022A8 56 4937 LD D,(HL) - 000022A9 21 0E 00 4938 LD HL,14 - 000022AC ED 4B 00 00 4939 LD BC,(global) - 000022B0 09 4940 ADD HL,BC - 000022B1 46 4941 LD B,(HL) - 000022B2 23 4942 INC HL - 000022B3 66 4943 LD H,(HL) - 000022B4 68 4944 LD L,B - 000022B5 01 17 00 4945 LD BC,23 - 000022B8 09 4946 ADD HL,BC - 000022B9 4E 4947 LD C,(HL) - 000022BA 23 4948 INC HL - 000022BB 46 4949 LD B,(HL) - 000022BC 23 4950 INC HL - 000022BD 7E 4951 LD A,(HL) - 000022BE 69 4952 LD L,C - 000022BF 60 4953 LD H,B - 000022C0 01 01 00 4954 LD BC,1 - 000022C3 18 29 4955 JR ?0370 - 000022C5 4956 ?0319: - 000022C5 DD 4E FF 4957 LD C,(IX-1) - 000022C8 C5 4958 PUSH BC - 000022C9 21 0E 00 4959 LD HL,14 - 000022CC ED 5B 00 00 4960 LD DE,(global) - 000022D0 19 4961 ADD HL,DE - 000022D1 5E 4962 LD E,(HL) - 000022D2 23 4963 INC HL - 000022D3 56 4964 LD D,(HL) - 000022D4 21 0E 00 4965 LD HL,14 - 000022D7 ED 4B 00 00 4966 LD BC,(global) - 000022DB 09 4967 ADD HL,BC - 000022DC 46 4968 LD B,(HL) - 000022DD 23 4969 INC HL - 000022DE 66 4970 LD H,(HL) - 000022DF 68 4971 LD L,B - 000022E0 01 17 00 4972 LD BC,23 - 000022E3 09 4973 ADD HL,BC - 000022E4 4E 4974 LD C,(HL) - 000022E5 23 4975 INC HL - 000022E6 46 4976 LD B,(HL) - 000022E7 23 4977 INC HL - 000022E8 7E 4978 LD A,(HL) - 000022E9 69 4979 LD L,C - 000022EA 60 4980 LD H,B - 000022EB 01 02 00 4981 LD BC,2 - 000022EE 4982 ?0370: - 000022EE CD 00 00 4983 CALL LWRD ?BANK_CALL_DIRECT_L08 - 000022F1 E1 4984 POP HL - 000022F2 4985 ?0320: - 000022F2 DD 46 FE 4986 LD B,(IX-2) - 000022F5 DD 70 FF 4987 LD (IX-1),B - 000022F8 4988 ?0316: - 000022F8 C3 5B 22 4989 JP LWRD ?0313 - 000022FB 4990 ?0312: - 000022FB C3 00 00 4991 JP LWRD ?BANK_LEAVE_DIRECT_L08 - 4992 RSEG CSTR - 00000000 4993 ?0001: - 00000000 2F 64 65 76 2F 6C 63 4994 DEFB '/dev/lcd0' + 85 EXTERN ?C_V_SWITCH_L06 + 86 EXTERN ?S_V_SWITCH_L06 + 87 EXTERN ?BANK_CALL_DIRECT_L08 + 88 EXTERN ?BANK_LEAVE_DIRECT_L08 + 89 EXTERN ?BANK_FAST_LEAVE_L08 + 90 EXTERN ?ENT_PARM_DIRECT_L09 + 91 EXTERN ?ENT_AUTO_DIRECT_L09 + 92 RSEG CODE + 00000000 93 SetCurrentGraphicsDevice: + 00000000 CD 00 00 94 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000003 21 06 00 95 LD HL,6 + 00000006 ED 4B 00 00 96 LD BC,(global) + 0000000A 09 97 ADD HL,BC + 0000000B E5 98 PUSH HL + 0000000C EB 99 EX DE,HL + 0000000D 29 100 ADD HL,HL + 0000000E 09 101 ADD HL,BC + 0000000F 23 102 INC HL + 00000010 23 103 INC HL + 00000011 4E 104 LD C,(HL) + 00000012 23 105 INC HL + 00000013 46 106 LD B,(HL) + 00000014 E1 107 POP HL + 00000015 71 108 LD (HL),C + 00000016 23 109 INC HL + 00000017 70 110 LD (HL),B + 00000018 C3 00 00 111 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000001B 112 GraphicsOpen: + 0000001B CD 00 00 113 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000001E F8 FF 114 DEFW 65528 + 00000020 21 06 00 115 LD HL,6 + 00000023 39 116 ADD HL,SP + 00000024 EB 117 EX DE,HL + 00000025 21 00 00 118 LD HL,?0000 + 00000028 01 02 00 119 LD BC,2 + 0000002B ED B0 120 LDIR + 0000002D 2A 00 00 121 LD HL,(global) + 00000030 23 122 INC HL + 00000031 23 123 INC HL + 00000032 E5 124 PUSH HL + 00000033 03 125 INC BC + 00000034 03 126 INC BC + 00000035 C5 127 PUSH BC + 00000036 01 00 00 128 LD BC,?0001 + 00000039 C5 129 PUSH BC + 0000003A CD 14 01 130 CALL LWRD ?0444 + 0000003D F1 131 POP AF + 0000003E F1 132 POP AF + 0000003F 4D 133 LD C,L + 00000040 44 134 LD B,H + 00000041 E1 135 POP HL + 00000042 71 136 LD (HL),C + 00000043 23 137 INC HL + 00000044 70 138 LD (HL),B + 00000045 21 00 00 139 LD HL,0 + 00000048 39 140 ADD HL,SP + 00000049 E5 141 PUSH HL + 0000004A 21 00 00 142 LD HL,0 + 0000004D E5 143 PUSH HL + 0000004E 2A 00 00 144 LD HL,(global) + 00000051 23 145 INC HL + 00000052 23 146 INC HL + 00000053 4E 147 LD C,(HL) + 00000054 23 148 INC HL + 00000055 46 149 LD B,(HL) + 00000056 C5 150 PUSH BC + 00000057 CD 0C 01 151 CALL LWRD ?0443 + 0000005A F1 152 POP AF + 0000005B F1 153 POP AF + 0000005C F1 154 POP AF + 0000005D DD 36 FC 60 155 LD (IX-4),96 + 00000061 DD 36 FD 00 156 LD (IX-3),0 + 00000065 21 00 00 157 LD HL,0 + 00000068 39 158 ADD HL,SP + 00000069 E5 159 PUSH HL + 0000006A 21 01 00 160 LD HL,1 + 0000006D E5 161 PUSH HL + 0000006E 2A 00 00 162 LD HL,(global) + 00000071 23 163 INC HL + 00000072 23 164 INC HL + 00000073 4E 165 LD C,(HL) + 00000074 23 166 INC HL + 00000075 46 167 LD B,(HL) + 00000076 C5 168 PUSH BC + 00000077 CD 0C 01 169 CALL LWRD ?0443 + 0000007A F1 170 POP AF + 0000007B F1 171 POP AF + 0000007C F1 172 POP AF + 0000007D 21 02 00 173 LD HL,2 + 00000080 E5 174 PUSH HL + 00000081 2E 08 175 LD L,8 + 00000083 39 176 ADD HL,SP + 00000084 4D 177 LD C,L + 00000085 44 178 LD B,H + 00000086 2A 00 00 179 LD HL,(global) + 00000089 23 180 INC HL + 0000008A 23 181 INC HL + 0000008B CD 26 01 182 CALL LWRD ?0445 + 0000008E F1 183 POP AF + 0000008F 21 04 00 184 LD HL,4 + 00000092 ED 4B 00 00 185 LD BC,(global) + 00000096 09 186 ADD HL,BC + 00000097 E5 187 PUSH HL + 00000098 11 02 00 188 LD DE,2 + 0000009B D5 189 PUSH DE + 0000009C 11 0A 00 190 LD DE,?0002 + 0000009F D5 191 PUSH DE + 000000A0 CD 14 01 192 CALL LWRD ?0444 + 000000A3 F1 193 POP AF + 000000A4 F1 194 POP AF + 000000A5 EB 195 EX DE,HL + 000000A6 E1 196 POP HL + 000000A7 73 197 LD (HL),E + 000000A8 23 198 INC HL + 000000A9 72 199 LD (HL),D + 000000AA 21 00 00 200 LD HL,0 + 000000AD 39 201 ADD HL,SP + 000000AE E5 202 PUSH HL + 000000AF 21 00 00 203 LD HL,0 + 000000B2 E5 204 PUSH HL + 000000B3 2E 04 205 LD L,4 + 000000B5 ED 4B 00 00 206 LD BC,(global) + 000000B9 09 207 ADD HL,BC + 000000BA 5E 208 LD E,(HL) + 000000BB 23 209 INC HL + 000000BC 56 210 LD D,(HL) + 000000BD D5 211 PUSH DE + 000000BE CD 0C 01 212 CALL LWRD ?0443 + 000000C1 F1 213 POP AF + 000000C2 F1 214 POP AF + 000000C3 F1 215 POP AF + 000000C4 DD 36 FC 60 216 LD (IX-4),96 + 000000C8 DD 36 FD 00 217 LD (IX-3),0 + 000000CC 21 00 00 218 LD HL,0 + 000000CF 39 219 ADD HL,SP + 000000D0 E5 220 PUSH HL + 000000D1 21 01 00 221 LD HL,1 + 000000D4 E5 222 PUSH HL + 000000D5 2E 04 223 LD L,4 + 000000D7 09 224 ADD HL,BC + 000000D8 5E 225 LD E,(HL) + 000000D9 23 226 INC HL + 000000DA 56 227 LD D,(HL) + 000000DB D5 228 PUSH DE + 000000DC CD 0C 01 229 CALL LWRD ?0443 + 000000DF F1 230 POP AF + 000000E0 F1 231 POP AF + 000000E1 F1 232 POP AF + 000000E2 21 02 00 233 LD HL,2 + 000000E5 E5 234 PUSH HL + 000000E6 2E 08 235 LD L,8 + 000000E8 39 236 ADD HL,SP + 000000E9 CD 1C 01 237 CALL LWRD ?0446 + 000000EC F1 238 POP AF + 000000ED 11 01 00 239 LD DE,1 + 000000F0 3E 00 240 LD A,BYTE3 SetCurrentGraphicsDevice + 000000F2 21 00 00 241 LD HL,LWRD SetCurrentGraphicsDevice + 000000F5 CD 00 00 242 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000000F8 11 14 00 243 LD DE,?0003 + 000000FB CD 31 01 244 CALL LWRD ?0452 + 000000FE 11 00 00 245 LD DE,0 + 00000101 3E 00 246 LD A,BYTE3 SetCurrentGraphicsDevice + 00000103 21 00 00 247 LD HL,LWRD SetCurrentGraphicsDevice + 00000106 CD 00 00 248 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000109 C3 00 00 249 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000010C 250 ?0443: + 0000010C 3E 00 251 LD A,BYTE3 ioctl + 0000010E 21 00 00 252 LD HL,LWRD ioctl + 00000111 C3 00 00 253 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000114 254 ?0444: + 00000114 3E 00 255 LD A,BYTE3 open + 00000116 21 00 00 256 LD HL,LWRD open + 00000119 C3 00 00 257 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000011C 258 ?0446: + 0000011C 4D 259 LD C,L + 0000011D 44 260 LD B,H + 0000011E 21 04 00 261 LD HL,4 + 00000121 262 ?0448: + 00000121 ED 5B 00 00 263 LD DE,(global) + 00000125 19 264 ADD HL,DE + 00000126 265 ?0445: + 00000126 5E 266 LD E,(HL) + 00000127 23 267 INC HL + 00000128 56 268 LD D,(HL) + 00000129 3E 00 269 LD A,BYTE3 _write + 0000012B 270 ?0447: + 0000012B 21 00 00 271 LD HL,LWRD _write + 0000012E C3 00 00 272 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000131 273 ?0452: + 00000131 3E DE 274 LD A,BYTE3 Text + 00000133 21 DE 02 275 LD HL,LWRD Text + 00000136 C3 00 00 276 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000139 277 GraphicsClose: + 00000139 C5 278 PUSH BC + 0000013A D5 279 PUSH DE + 0000013B 2A 00 00 280 LD HL,(global) + 0000013E 23 281 INC HL + 0000013F 23 282 INC HL + 00000140 CD 53 01 283 CALL LWRD ?0468 + 00000143 21 04 00 284 LD HL,4 + 00000146 ED 4B 00 00 285 LD BC,(global) + 0000014A 09 286 ADD HL,BC + 0000014B CD 53 01 287 CALL LWRD ?0468 + 0000014E D1 288 POP DE + 0000014F C1 289 POP BC + 00000150 C3 00 00 290 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000153 291 ?0468: + 00000153 5E 292 LD E,(HL) + 00000154 23 293 INC HL + 00000155 56 294 LD D,(HL) + 00000156 295 ?0469: + 00000156 3E 00 296 LD A,BYTE3 close + 00000158 21 00 00 297 LD HL,LWRD close + 0000015B C3 00 00 298 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000015E 299 Move: + 0000015E CD 00 00 300 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000161 FC FF 301 DEFW 65532 + 00000163 21 00 00 302 LD HL,0 + 00000166 39 303 ADD HL,SP + 00000167 EB 304 EX DE,HL + 00000168 21 02 00 305 LD HL,?0004 + 0000016B 01 04 00 306 LD BC,4 + 0000016E ED B0 307 LDIR + 00000170 308 ?0382: + 00000170 DD 46 02 309 LD B,(IX+2) + 00000173 DD 70 FE 310 LD (IX-2),B + 00000176 DD 46 04 311 LD B,(IX+4) + 00000179 DD 70 FF 312 LD (IX-1),B + 0000017C 21 04 00 313 LD HL,4 + 0000017F E5 314 PUSH HL + 00000180 2B 315 DEC HL + 00000181 2B 316 DEC HL + 00000182 317 ?0387: + 00000182 39 318 ADD HL,SP + 00000183 4D 319 LD C,L + 00000184 320 ?0432: + 00000184 44 321 LD B,H + 00000185 21 06 00 322 LD HL,6 + 00000188 323 ?0433: + 00000188 ED 5B 00 00 324 LD DE,(global) + 0000018C 19 325 ADD HL,DE + 0000018D 326 ?0434: + 0000018D 5E 327 LD E,(HL) + 0000018E 23 328 INC HL + 0000018F 329 ?0435: + 0000018F 56 330 LD D,(HL) + 00000190 3E 00 331 LD A,BYTE3 _write + 00000192 332 ?0436: + 00000192 CD 2B 01 333 CALL LWRD ?0447 + 00000195 F1 334 POP AF + 00000196 C3 00 00 335 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000199 336 ClearRect: + 00000199 CD 00 00 337 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000019C FC FF 338 DEFW 65532 + 0000019E 21 00 00 339 LD HL,0 + 000001A1 39 340 ADD HL,SP + 000001A2 EB 341 EX DE,HL + 000001A3 21 06 00 342 LD HL,?0005 + 000001A6 01 04 00 343 LD BC,4 + 000001A9 ED B0 344 LDIR + 000001AB C3 70 01 345 JP LWRD ?0382 + 000001AE DD 70 FE 346 LD (IX-2),B + 000001B1 347 ?0390: + 000001B1 DD 46 04 348 LD B,(IX+4) + 000001B4 DD 70 FF 349 LD (IX-1),B + 000001B7 21 04 00 350 LD HL,4 + 000001BA E5 351 PUSH HL + 000001BB 2B 352 DEC HL + 000001BC 2B 353 DEC HL + 000001BD 39 354 ADD HL,SP + 000001BE 4D 355 LD C,L + 000001BF 356 ?0394: + 000001BF C3 84 01 357 JP LWRD ?0432 + 000001C2 21 06 00 358 LD HL,6 + 000001C5 ED 5B 00 00 359 LD DE,(global) + 000001C9 19 360 ADD HL,DE + 000001CA 361 ?0437: + 000001CA 5E 362 LD E,(HL) + 000001CB 23 363 INC HL + 000001CC 364 ?0438: + 000001CC 56 365 LD D,(HL) + 000001CD 3E 00 366 LD A,BYTE3 _write + 000001CF 367 ?0439: + 000001CF C3 92 01 368 JP LWRD ?0436 + 000001D2 CD 00 00 369 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000001D5 F1 370 POP AF + 000001D6 C3 00 00 371 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000001D9 372 DrawRectNC: + 000001D9 CD 00 00 373 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000001DC FC FF 374 DEFW 65532 + 000001DE 21 00 00 375 LD HL,0 + 000001E1 39 376 ADD HL,SP + 000001E2 EB 377 EX DE,HL + 000001E3 21 0A 00 378 LD HL,?0006 + 000001E6 01 04 00 379 LD BC,4 + 000001E9 ED B0 380 LDIR + 000001EB C3 70 01 381 JP LWRD ?0382 + 000001EE DD 70 FE 382 LD (IX-2),B + 000001F1 C3 B1 01 383 JP LWRD ?0390 + 000001F4 DD 70 FF 384 LD (IX-1),B + 000001F7 385 ?0397: + 000001F7 21 04 00 386 LD HL,4 + 000001FA E5 387 PUSH HL + 000001FB 2B 388 DEC HL + 000001FC 2B 389 DEC HL + 000001FD 39 390 ADD HL,SP + 000001FE 4D 391 LD C,L + 000001FF 44 392 LD B,H + 00000200 21 06 00 393 LD HL,6 + 00000203 394 ?0400: + 00000203 C3 88 01 395 JP LWRD ?0433 + 00000206 19 396 ADD HL,DE + 00000207 C3 CA 01 397 JP LWRD ?0437 + 0000020A 23 398 INC HL + 0000020B 56 399 LD D,(HL) + 0000020C 3E 00 400 LD A,BYTE3 _write + 0000020E 401 ?0440: + 0000020E C3 92 01 402 JP LWRD ?0436 + 00000211 CD 00 00 403 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000214 F1 404 POP AF + 00000215 C3 00 00 405 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000218 406 FillRect: + 00000218 CD 00 00 407 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000021B FC FF 408 DEFW 65532 + 0000021D 21 00 00 409 LD HL,0 + 00000220 39 410 ADD HL,SP + 00000221 EB 411 EX DE,HL + 00000222 21 0E 00 412 LD HL,?0007 + 00000225 01 04 00 413 LD BC,4 + 00000228 ED B0 414 LDIR + 0000022A C3 70 01 415 JP LWRD ?0382 + 0000022D DD 70 FE 416 LD (IX-2),B + 00000230 C3 B1 01 417 JP LWRD ?0390 + 00000233 DD 70 FF 418 LD (IX-1),B + 00000236 C3 F7 01 419 JP LWRD ?0397 + 00000239 E5 420 PUSH HL + 0000023A 421 ?0403: + 0000023A 2B 422 DEC HL + 0000023B 2B 423 DEC HL + 0000023C 39 424 ADD HL,SP + 0000023D 4D 425 LD C,L + 0000023E 44 426 LD B,H + 0000023F 21 06 00 427 LD HL,6 + 00000242 ED 5B 00 00 428 LD DE,(global) + 00000246 19 429 ADD HL,DE + 00000247 430 ?0405: + 00000247 C3 8D 01 431 JP LWRD ?0434 + 0000024A 23 432 INC HL + 0000024B C3 CC 01 433 JP LWRD ?0438 + 0000024E 3E 00 434 LD A,BYTE3 _write + 00000250 C3 0E 02 435 JP LWRD ?0440 + 00000253 CD 00 00 436 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000256 F1 437 POP AF + 00000257 C3 00 00 438 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000025A 439 FillRectNC: + 0000025A CD 00 00 440 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000025D FC FF 441 DEFW 65532 + 0000025F 21 00 00 442 LD HL,0 + 00000262 39 443 ADD HL,SP + 00000263 EB 444 EX DE,HL + 00000264 21 12 00 445 LD HL,?0008 + 00000267 01 04 00 446 LD BC,4 + 0000026A ED B0 447 LDIR + 0000026C C3 70 01 448 JP LWRD ?0382 + 0000026F DD 70 FE 449 LD (IX-2),B + 00000272 C3 B1 01 450 JP LWRD ?0390 + 00000275 DD 70 FF 451 LD (IX-1),B + 00000278 C3 F7 01 452 JP LWRD ?0397 + 0000027B E5 453 PUSH HL + 0000027C C3 3A 02 454 JP LWRD ?0403 + 0000027F 2B 455 DEC HL + 00000280 456 ?0408: + 00000280 39 457 ADD HL,SP + 00000281 4D 458 LD C,L + 00000282 44 459 LD B,H + 00000283 21 06 00 460 LD HL,6 + 00000286 ED 5B 00 00 461 LD DE,(global) + 0000028A 19 462 ADD HL,DE + 0000028B 5E 463 LD E,(HL) + 0000028C 23 464 INC HL + 0000028D 465 ?0409: + 0000028D C3 8F 01 466 JP LWRD ?0435 + 00000290 3E 00 467 LD A,BYTE3 _write + 00000292 C3 CF 01 468 JP LWRD ?0439 + 00000295 CD 00 00 469 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000298 F1 470 POP AF + 00000299 C3 00 00 471 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000029C 472 GrayRect: + 0000029C CD 00 00 473 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000029F FC FF 474 DEFW 65532 + 000002A1 21 00 00 475 LD HL,0 + 000002A4 39 476 ADD HL,SP + 000002A5 EB 477 EX DE,HL + 000002A6 21 16 00 478 LD HL,?0009 + 000002A9 01 04 00 479 LD BC,4 + 000002AC ED B0 480 LDIR + 000002AE C3 70 01 481 JP LWRD ?0382 + 000002B1 DD 70 FE 482 LD (IX-2),B + 000002B4 C3 B1 01 483 JP LWRD ?0390 + 000002B7 DD 70 FF 484 LD (IX-1),B + 000002BA C3 F7 01 485 JP LWRD ?0397 + 000002BD E5 486 PUSH HL + 000002BE C3 3A 02 487 JP LWRD ?0403 + 000002C1 2B 488 DEC HL + 000002C2 C3 80 02 489 JP LWRD ?0408 + 000002C5 4D 490 LD C,L + 000002C6 44 491 LD B,H + 000002C7 21 06 00 492 LD HL,6 + 000002CA ED 5B 00 00 493 LD DE,(global) + 000002CE 19 494 ADD HL,DE + 000002CF 5E 495 LD E,(HL) + 000002D0 23 496 INC HL + 000002D1 56 497 LD D,(HL) + 000002D2 3E 00 498 LD A,BYTE3 _write + 000002D4 499 ?0412: + 000002D4 C3 92 01 500 JP LWRD ?0436 + 000002D7 CD 00 00 501 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000002DA F1 502 POP AF + 000002DB C3 00 00 503 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000002DE 504 Text: + 000002DE C5 505 PUSH BC + 000002DF FD E5 506 PUSH IY + 000002E1 DD E5 507 PUSH IX + 000002E3 D5 508 PUSH DE + 000002E4 DD E1 509 POP IX + 000002E6 3E 00 510 LD A,BYTE3 strlen + 000002E8 21 00 00 511 LD HL,LWRD strlen + 000002EB CD 00 00 512 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000002EE E5 513 PUSH HL + 000002EF DD E5 514 PUSH IX + 000002F1 C1 515 POP BC + 000002F2 21 06 00 516 LD HL,6 + 000002F5 CD 21 01 517 CALL LWRD ?0448 + 000002F8 F1 518 POP AF + 000002F9 519 ?0415: + 000002F9 DD E1 520 POP IX + 000002FB FD E1 521 POP IY + 000002FD C1 522 POP BC + 000002FE C3 00 00 523 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000301 524 TouchRegion: + 00000301 CD 00 00 525 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000304 F8 FF 526 DEFW 65528 + 00000306 21 00 00 527 LD HL,0 + 00000309 39 528 ADD HL,SP + 0000030A EB 529 EX DE,HL + 0000030B 21 1A 00 530 LD HL,?0010 + 0000030E 01 07 00 531 LD BC,7 + 00000311 ED B0 532 LDIR + 00000313 DD 46 02 533 LD B,(IX+2) + 00000316 DD 70 FA 534 LD (IX-6),B + 00000319 DD 46 04 535 LD B,(IX+4) + 0000031C DD 70 FB 536 LD (IX-5),B + 0000031F DD 46 0A 537 LD B,(IX+10) + 00000322 DD 70 FC 538 LD (IX-4),B + 00000325 DD 46 0C 539 LD B,(IX+12) + 00000328 DD 70 FD 540 LD (IX-3),B + 0000032B DD 46 0E 541 LD B,(IX+14) + 0000032E DD 70 FE 542 LD (IX-2),B + 00000331 21 07 00 543 LD HL,7 + 00000334 E5 544 PUSH HL + 00000335 2E 02 545 LD L,2 + 00000337 C3 82 01 546 JP LWRD ?0387 + 0000033A 4D 547 LD C,L + 0000033B C3 BF 01 548 JP LWRD ?0394 + 0000033E 21 06 00 549 LD HL,6 + 00000341 C3 03 02 550 JP LWRD ?0400 + 00000344 19 551 ADD HL,DE + 00000345 C3 47 02 552 JP LWRD ?0405 + 00000348 23 553 INC HL + 00000349 C3 8D 02 554 JP LWRD ?0409 + 0000034C 3E 00 555 LD A,BYTE3 _write + 0000034E C3 D4 02 556 JP LWRD ?0412 + 00000351 CD 00 00 557 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000354 F1 558 POP AF + 00000355 C3 00 00 559 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000358 560 ClearScreen: + 00000358 C5 561 PUSH BC + 00000359 D5 562 PUSH DE + 0000035A CD 72 03 563 CALL LWRD ?0474 + 0000035D CD 00 00 564 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000360 21 80 00 565 LD HL,128 + 00000363 E5 566 PUSH HL + 00000364 6C 567 LD L,H + 00000365 E5 568 PUSH HL + 00000366 E5 569 PUSH HL + 00000367 CD 8A 03 570 CALL LWRD ?0483 + 0000036A E1 571 POP HL + 0000036B E1 572 POP HL + 0000036C E1 573 POP HL + 0000036D D1 574 POP DE + 0000036E C1 575 POP BC + 0000036F C3 00 00 576 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000372 577 ?0474: + 00000372 01 00 00 578 LD BC,0 + 00000375 59 579 LD E,C + 00000376 50 580 LD D,B + 00000377 3E 5E 581 LD A,BYTE3 Move + 00000379 21 5E 01 582 LD HL,LWRD Move + 0000037C CD 00 00 583 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000037F 01 80 00 584 LD BC,128 + 00000382 58 585 LD E,B + 00000383 50 586 LD D,B + 00000384 3E 99 587 LD A,BYTE3 ClearRect + 00000386 21 99 01 588 LD HL,LWRD ClearRect + 00000389 C9 589 RET + 0000038A 590 ?0483: + 0000038A 4D 591 LD C,L + 0000038B 44 592 LD B,H + 0000038C EB 593 EX DE,HL + 0000038D 594 ?0484: + 0000038D 3E 01 595 LD A,BYTE3 TouchRegion + 0000038F 21 01 03 596 LD HL,LWRD TouchRegion + 00000392 C3 00 00 597 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000395 598 EnableScreen: + 00000395 CD 00 00 599 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000398 FC FF 600 DEFW 65532 + 0000039A 21 00 00 601 LD HL,0 + 0000039D 39 602 ADD HL,SP + 0000039E EB 603 EX DE,HL + 0000039F 21 21 00 604 LD HL,?0011 + 000003A2 01 03 00 605 LD BC,3 + 000003A5 ED B0 606 LDIR + 000003A7 DD 46 02 607 LD B,(IX+2) + 000003AA DD 70 FE 608 LD (IX-2),B + 000003AD 21 03 00 609 LD HL,3 + 000003B0 E5 610 PUSH HL + 000003B1 2B 611 DEC HL + 000003B2 C3 82 01 612 JP LWRD ?0387 + 000003B5 4D 613 LD C,L + 000003B6 C3 BF 01 614 JP LWRD ?0394 + 000003B9 21 06 00 615 LD HL,6 + 000003BC C3 03 02 616 JP LWRD ?0400 + 000003BF 19 617 ADD HL,DE + 000003C0 C3 47 02 618 JP LWRD ?0405 + 000003C3 23 619 INC HL + 000003C4 C3 8D 02 620 JP LWRD ?0409 + 000003C7 3E 00 621 LD A,BYTE3 _write + 000003C9 C3 D4 02 622 JP LWRD ?0412 + 000003CC CD 00 00 623 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000003CF F1 624 POP AF + 000003D0 C3 00 00 625 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000003D3 626 grSetFont: + 000003D3 CD 00 00 627 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000003D6 FE FF 628 DEFW 65534 + 000003D8 21 00 00 629 LD HL,0 + 000003DB 39 630 ADD HL,SP + 000003DC EB 631 EX DE,HL + 000003DD 21 24 00 632 LD HL,?0012 + 000003E0 01 02 00 633 LD BC,2 + 000003E3 ED B0 634 LDIR + 000003E5 DD 46 02 635 LD B,(IX+2) + 000003E8 DD 70 FF 636 LD (IX-1),B + 000003EB 21 02 00 637 LD HL,2 + 000003EE E5 638 PUSH HL + 000003EF C3 82 01 639 JP LWRD ?0387 + 000003F2 4D 640 LD C,L + 000003F3 C3 BF 01 641 JP LWRD ?0394 + 000003F6 21 06 00 642 LD HL,6 + 000003F9 C3 03 02 643 JP LWRD ?0400 + 000003FC 19 644 ADD HL,DE + 000003FD C3 47 02 645 JP LWRD ?0405 + 00000400 23 646 INC HL + 00000401 C3 8D 02 647 JP LWRD ?0409 + 00000404 3E 00 648 LD A,BYTE3 _write + 00000406 C3 D4 02 649 JP LWRD ?0412 + 00000409 CD 00 00 650 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000040C F1 651 POP AF + 0000040D C3 00 00 652 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000410 653 fontSearch: + 00000410 CD 00 00 654 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000413 00 00 655 DEFW 0 + 00000415 21 14 00 656 LD HL,20 + 00000418 ED 4B 00 00 657 LD BC,(global) + 0000041C 09 658 ADD HL,BC + 0000041D 659 ?0331: + 0000041D 46 660 LD B,(HL) + 0000041E 23 661 INC HL + 0000041F 66 662 LD H,(HL) + 00000420 68 663 LD L,B + 00000421 EB 664 EX DE,HL + 00000422 665 ?0014: + 00000422 7B 666 LD A,E + 00000423 B2 667 OR D + 00000424 28 16 668 JR Z,?0013 + 00000426 6B 669 LD L,E + 00000427 62 670 LD H,D + 00000428 46 671 LD B,(HL) + 00000429 23 672 INC HL + 0000042A 66 673 LD H,(HL) + 0000042B 68 674 LD L,B + 0000042C DD 4E 02 675 LD C,(IX+2) + 0000042F DD 46 03 676 LD B,(IX+3) + 00000432 ED 42 677 SBC HL,BC + 00000434 28 06 678 JR Z,?0013 + 00000436 679 ?0017: + 00000436 680 ?0016: + 00000436 681 ?0015: + 00000436 21 08 00 682 LD HL,8 + 00000439 19 683 ADD HL,DE + 0000043A 18 E1 684 JR ?0331 + 0000043C 685 ?0013: + 0000043C EB 686 EX DE,HL + 0000043D C3 00 00 687 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000440 688 setCurrentFont: + 00000440 CD 00 00 689 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000443 3E 10 690 LD A,BYTE3 fontSearch + 00000445 21 10 04 691 LD HL,LWRD fontSearch + 00000448 CD B1 04 692 CALL LWRD ?0458 + 0000044B 28 29 693 JR Z,?0019 + 0000044D 694 ?0018: + 0000044D DD 5E 02 695 LD E,(IX+2) + 00000450 DD 56 03 696 LD D,(IX+3) + 00000453 3E D3 697 LD A,BYTE3 grSetFont + 00000455 21 D3 03 698 LD HL,LWRD grSetFont + 00000458 CD 00 00 699 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000045B 21 12 00 700 LD HL,18 + 0000045E ED 4B 00 00 701 LD BC,(global) + 00000462 09 702 ADD HL,BC + 00000463 E5 703 PUSH HL + 00000464 DD 5E 02 704 LD E,(IX+2) + 00000467 DD 56 03 705 LD D,(IX+3) + 0000046A 3E 10 706 LD A,BYTE3 fontSearch + 0000046C 21 10 04 707 LD HL,LWRD fontSearch + 0000046F CD BC 04 708 CALL LWRD ?0459 + 00000472 E1 709 POP HL + 00000473 71 710 LD (HL),C + 00000474 23 711 INC HL + 00000475 70 712 LD (HL),B + 00000476 713 ?0019: + 00000476 C3 00 00 714 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000479 715 ?0454: + 00000479 21 12 00 716 LD HL,18 + 0000047C ED 4B 00 00 717 LD BC,(global) + 00000480 09 718 ADD HL,BC + 00000481 46 719 LD B,(HL) + 00000482 23 720 INC HL + 00000483 66 721 LD H,(HL) + 00000484 68 722 LD L,B + 00000485 723 ?0453: + 00000485 23 724 INC HL + 00000486 23 725 INC HL + 00000487 4E 726 LD C,(HL) + 00000488 23 727 INC HL + 00000489 46 728 LD B,(HL) + 0000048A 23 729 INC HL + 0000048B 7E 730 LD A,(HL) + 0000048C 69 731 LD L,C + 0000048D 60 732 LD H,B + 0000048E CD 00 00 733 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000491 4D 734 LD C,L + 00000492 44 735 LD B,H + 00000493 FD 6E 06 736 LD L,(IY+6) + 00000496 FD 66 07 737 LD H,(IY+7) + 00000499 A7 738 AND A + 0000049A ED 42 739 SBC HL,BC + 0000049C EB 740 EX DE,HL + 0000049D 01 02 00 741 LD BC,2 + 000004A0 CD 00 00 742 CALL LWRD ?SS_DIV_L02 + 000004A3 DD 6E 04 743 LD L,(IX+4) + 000004A6 DD 66 05 744 LD H,(IX+5) + 000004A9 19 745 ADD HL,DE + 000004AA EB 746 EX DE,HL + 000004AB 3E 5E 747 LD A,BYTE3 Move + 000004AD 21 5E 01 748 LD HL,LWRD Move + 000004B0 C9 749 RET + 000004B1 750 ?0458: + 000004B1 CD 00 00 751 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000004B4 7D 752 LD A,L + 000004B5 B4 753 OR H + 000004B6 C9 754 RET + 000004B7 755 ?0460: + 000004B7 3E 00 756 LD A,BYTE3 malloc + 000004B9 21 00 00 757 LD HL,LWRD malloc + 000004BC 758 ?0459: + 000004BC CD 00 00 759 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000004BF 4D 760 LD C,L + 000004C0 44 761 LD B,H + 000004C1 C9 762 RET + 000004C2 763 loadFont: + 000004C2 CD 00 00 764 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000004C5 FC FF 765 DEFW 65532 + 000004C7 FD E5 766 PUSH IY + 000004C9 11 0E 00 767 LD DE,14 + 000004CC CD 5D 05 768 CALL LWRD ?0457 + 000004CF DD 4E 02 769 LD C,(IX+2) + 000004D2 71 770 LD (HL),C + 000004D3 DD 46 03 771 LD B,(IX+3) + 000004D6 23 772 INC HL + 000004D7 70 773 LD (HL),B + 000004D8 DD 46 0C 774 LD B,(IX+12) + 000004DB DD 6E 0A 775 LD L,(IX+10) + 000004DE FD 75 02 776 LD (IY+2),L + 000004E1 DD 66 0B 777 LD H,(IX+11) + 000004E4 FD 74 03 778 LD (IY+3),H + 000004E7 FD 70 04 779 LD (IY+4),B + 000004EA DD 46 10 780 LD B,(IX+16) + 000004ED DD 6E 0E 781 LD L,(IX+14) + 000004F0 FD 75 05 782 LD (IY+5),L + 000004F3 DD 66 0F 783 LD H,(IX+15) + 000004F6 FD 74 06 784 LD (IY+6),H + 000004F9 FD 70 07 785 LD (IY+7),B + 000004FC AF 786 XOR A + 000004FD FD 77 08 787 LD (IY+8),A + 00000500 FD 77 09 788 LD (IY+9),A + 00000503 DD 6E 12 789 LD L,(IX+18) + 00000506 FD 75 0A 790 LD (IY+10),L + 00000509 DD 66 13 791 LD H,(IX+19) + 0000050C FD 74 0B 792 LD (IY+11),H + 0000050F DD 6E 14 793 LD L,(IX+20) + 00000512 FD 75 0C 794 LD (IY+12),L + 00000515 DD 66 15 795 LD H,(IX+21) + 00000518 FD 74 0D 796 LD (IY+13),H + 0000051B 21 14 00 797 LD HL,20 + 0000051E ED 4B 00 00 798 LD BC,(global) + 00000522 09 799 ADD HL,BC + 00000523 7E 800 LD A,(HL) + 00000524 23 801 INC HL + 00000525 B6 802 OR (HL) + 00000526 21 14 00 803 LD HL,20 + 00000529 ED 4B 00 00 804 LD BC,(global) + 0000052D 09 805 ADD HL,BC + 0000052E 20 10 806 JR NZ,?0021 + 00000530 807 ?0020: + 00000530 FD E5 808 PUSH IY + 00000532 C1 809 POP BC + 00000533 71 810 LD (HL),C + 00000534 23 811 INC HL + 00000535 70 812 LD (HL),B + 00000536 21 12 00 813 LD HL,18 + 00000539 ED 4B 00 00 814 LD BC,(global) + 0000053D 09 815 ADD HL,BC + 0000053E 18 12 816 JR ?0023 + 00000540 817 ?0021: + 00000540 46 818 LD B,(HL) + 00000541 23 819 INC HL + 00000542 66 820 LD H,(HL) + 00000543 68 821 LD L,B + 00000544 EB 822 EX DE,HL + 00000545 823 ?0024: + 00000545 21 08 00 824 LD HL,8 + 00000548 19 825 ADD HL,DE + 00000549 7E 826 LD A,(HL) + 0000054A 23 827 INC HL + 0000054B B6 828 OR (HL) + 0000054C 21 08 00 829 LD HL,8 + 0000054F 19 830 ADD HL,DE + 00000550 20 EE 831 JR NZ,?0021 + 00000552 832 ?0025: + 00000552 833 ?0023: + 00000552 FD E5 834 PUSH IY + 00000554 C1 835 POP BC + 00000555 71 836 LD (HL),C + 00000556 23 837 INC HL + 00000557 70 838 LD (HL),B + 00000558 839 ?0022: + 00000558 FD E1 840 POP IY + 0000055A C3 00 00 841 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000055D 842 ?0457: + 0000055D 3E 00 843 LD A,BYTE3 malloc + 0000055F 21 00 00 844 LD HL,LWRD malloc + 00000562 CD 00 00 845 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000565 E5 846 PUSH HL + 00000566 FD E1 847 POP IY + 00000568 C9 848 RET + 00000569 849 stringwidth: + 00000569 FD E5 850 PUSH IY + 0000056B DD E5 851 PUSH IX + 0000056D C5 852 PUSH BC + 0000056E D5 853 PUSH DE + 0000056F DD 21 00 00 854 LD IX,0 + 00000573 FD 21 00 00 855 LD IY,0 + 00000577 856 ?0027: + 00000577 FD E5 857 PUSH IY + 00000579 21 02 00 858 LD HL,2 + 0000057C 39 859 ADD HL,SP + 0000057D 4E 860 LD C,(HL) + 0000057E 23 861 INC HL + 0000057F 46 862 LD B,(HL) + 00000580 E1 863 POP HL + 00000581 09 864 ADD HL,BC + 00000582 7E 865 LD A,(HL) + 00000583 B7 866 OR A + 00000584 28 50 867 JR Z,?0026 + 00000586 868 ?0028: + 00000586 FD E5 869 PUSH IY + 00000588 E1 870 POP HL + 00000589 09 871 ADD HL,BC + 0000058A 5E 872 LD E,(HL) + 0000058B CD 00 00 873 CALL LWRD ?C_V_SWITCH_L06 + 0000058E 0A 00 874 DEFW 10 + 00000590 21 875 DEFB 33 + 00000591 2C 876 DEFB 44 + 00000592 2E 877 DEFB 46 + 00000593 31 878 DEFB 49 + 00000594 49 879 DEFB 73 + 00000595 69 880 DEFB 105 + 00000596 6A 881 DEFB 106 + 00000597 6B 882 DEFB 107 + 00000598 6C 883 DEFB 108 + 00000599 72 884 DEFB 114 + 0000059A C4 05 885 DEFW ?0034 + 0000059C BF 05 886 DEFW ?0033 + 0000059E B5 05 887 DEFW ?0031 + 000005A0 BF 05 888 DEFW ?0033 + 000005A2 BF 05 889 DEFW ?0033 + 000005A4 B0 05 890 DEFW ?0030 + 000005A6 B0 05 891 DEFW ?0030 + 000005A8 BA 05 892 DEFW ?0032 + 000005AA BA 05 893 DEFW ?0032 + 000005AC BA 05 894 DEFW ?0032 + 000005AE B0 05 895 DEFW ?0030 + 000005B0 896 ?0030: + 000005B0 01 02 00 897 LD BC,2 + 000005B3 18 12 898 JR ?0341 + 000005B5 899 ?0031: + 000005B5 01 03 00 900 LD BC,3 + 000005B8 18 0D 901 JR ?0341 + 000005BA 902 ?0032: + 000005BA 01 04 00 903 LD BC,4 + 000005BD 18 08 904 JR ?0341 + 000005BF 905 ?0033: + 000005BF 01 05 00 906 LD BC,5 + 000005C2 18 03 907 JR ?0341 + 000005C4 908 ?0034: + 000005C4 01 06 00 909 LD BC,6 + 000005C7 910 ?0341: + 000005C7 DD 09 911 ADD IX,BC + 000005C9 912 ?0029: + 000005C9 21 02 00 913 LD HL,2 + 000005CC 39 914 ADD HL,SP + 000005CD 4E 915 LD C,(HL) + 000005CE 23 916 INC HL + 000005CF 46 917 LD B,(HL) + 000005D0 DD 09 918 ADD IX,BC + 000005D2 FD 23 919 INC IY + 000005D4 18 A1 920 JR ?0027 + 000005D6 921 ?0026: + 000005D6 DD E5 922 PUSH IX + 000005D8 E1 923 POP HL + 000005D9 F1 924 POP AF + 000005DA F1 925 POP AF + 000005DB DD E1 926 POP IX + 000005DD FD E1 927 POP IY + 000005DF C3 00 00 928 JP LWRD ?BANK_FAST_LEAVE_L08 + 000005E2 929 stringheight: + 000005E2 CD 00 00 930 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000005E5 7B 931 LD A,E + 000005E6 FE 80 932 CP 128 + 000005E8 30 06 933 JR NC,?0036 + 000005EA 934 ?0035: + 000005EA 21 07 00 935 LD HL,7 + 000005ED 09 936 ADD HL,BC + 000005EE 18 0C 937 JR ?0038 + 000005F0 938 ?0036: + 000005F0 FE CC 939 CP 204 + 000005F2 38 08 940 JR C,?0038 + 000005F4 3E DF 941 LD A,223 + 000005F6 BB 942 CP E + 000005F7 38 03 943 JR C,?0038 + 000005F9 944 ?0040: + 000005F9 945 ?0039: + 000005F9 946 ?0037: + 000005F9 69 947 LD L,C + 000005FA 60 948 LD H,B + 000005FB 23 949 INC HL + 000005FC 950 ?0038: + 000005FC 951 ?0041: + 000005FC C3 00 00 952 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000005FF 953 stringheight01: + 000005FF CD 00 00 954 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000602 01 00 00 955 LD BC,0 + 00000605 956 ?0419: + 00000605 1A 957 LD A,(DE) + 00000606 5F 958 LD E,A + 00000607 3E E2 959 LD A,BYTE3 stringheight + 00000609 21 E2 05 960 LD HL,LWRD stringheight + 0000060C CD 00 00 961 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000060F C3 00 00 962 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000612 963 stringheight2: + 00000612 CD 00 00 964 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000615 01 05 00 965 LD BC,5 + 00000618 C3 05 06 966 JP LWRD ?0419 + 0000061B 967 stringwidth0: + 0000061B CD 00 00 968 CALL LWRD ?ENT_PARM_DIRECT_L09 + 0000061E 01 00 00 969 LD BC,0 + 00000621 970 ?0420: + 00000621 3E 69 971 LD A,BYTE3 stringwidth + 00000623 21 69 05 972 LD HL,LWRD stringwidth + 00000626 CD 00 00 973 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000629 C3 00 00 974 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000062C 975 stringwidth1: + 0000062C CD 00 00 976 CALL LWRD ?ENT_PARM_DIRECT_L09 + 0000062F 01 02 00 977 LD BC,2 + 00000632 C3 21 06 978 JP LWRD ?0420 + 00000635 979 stringwidth2: + 00000635 CD 00 00 980 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000638 01 03 00 981 LD BC,3 + 0000063B C3 21 06 982 JP LWRD ?0420 + 0000063E 983 Component_new: + 0000063E CD 00 00 984 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000641 00 00 985 DEFW 0 + 00000643 FD E5 986 PUSH IY + 00000645 11 28 00 987 LD DE,40 + 00000648 CD 5D 05 988 CALL LWRD ?0457 + 0000064B 2A 00 00 989 LD HL,(global) + 0000064E 5E 990 LD E,(HL) + 0000064F 23 991 INC HL + 00000650 56 992 LD D,(HL) + 00000651 13 993 INC DE + 00000652 72 994 LD (HL),D + 00000653 2B 995 DEC HL + 00000654 73 996 LD (HL),E + 00000655 FD E5 997 PUSH IY + 00000657 E1 998 POP HL + 00000658 73 999 LD (HL),E + 00000659 23 1000 INC HL + 0000065A 72 1001 LD (HL),D + 0000065B DD 6E 02 1002 LD L,(IX+2) + 0000065E FD 75 02 1003 LD (IY+2),L + 00000661 DD 66 03 1004 LD H,(IX+3) + 00000664 FD 74 03 1005 LD (IY+3),H + 00000667 FD 71 04 1006 LD (IY+4),C + 0000066A FD 70 05 1007 LD (IY+5),B + 0000066D DD 6E 0A 1008 LD L,(IX+10) + 00000670 FD 75 06 1009 LD (IY+6),L + 00000673 DD 66 0B 1010 LD H,(IX+11) + 00000676 FD 74 07 1011 LD (IY+7),H + 00000679 DD 6E 0C 1012 LD L,(IX+12) + 0000067C FD 75 08 1013 LD (IY+8),L + 0000067F DD 66 0D 1014 LD H,(IX+13) + 00000682 FD 74 09 1015 LD (IY+9),H + 00000685 AF 1016 XOR A + 00000686 FD 77 0A 1017 LD (IY+10),A + 00000689 FD 77 0B 1018 LD (IY+11),A + 0000068C FD 77 0C 1019 LD (IY+12),A + 0000068F FD 77 0D 1020 LD (IY+13),A + 00000692 FD 77 0E 1021 LD (IY+14),A + 00000695 FD 77 0F 1022 LD (IY+15),A + 00000698 FD 77 10 1023 LD (IY+16),A + 0000069B FD 77 11 1024 LD (IY+17),A + 0000069E FD 77 12 1025 LD (IY+18),A + 000006A1 FD 77 13 1026 LD (IY+19),A + 000006A4 FD 77 14 1027 LD (IY+20),A + 000006A7 FD 77 15 1028 LD (IY+21),A + 000006AA FD 77 16 1029 LD (IY+22),A + 000006AD FD 77 17 1030 LD (IY+23),A + 000006B0 FD 77 18 1031 LD (IY+24),A + 000006B3 FD 77 19 1032 LD (IY+25),A + 000006B6 FD 77 1A 1033 LD (IY+26),A + 000006B9 FD 77 1B 1034 LD (IY+27),A + 000006BC FD 77 1C 1035 LD (IY+28),A + 000006BF FD 77 1D 1036 LD (IY+29),A + 000006C2 FD 77 1E 1037 LD (IY+30),A + 000006C5 FD 77 1F 1038 LD (IY+31),A + 000006C8 FD 77 24 1039 LD (IY+36),A + 000006CB FD 77 25 1040 LD (IY+37),A + 000006CE FD 77 26 1041 LD (IY+38),A + 000006D1 FD 77 27 1042 LD (IY+39),A + 000006D4 FD 77 20 1043 LD (IY+32),A + 000006D7 FD 77 21 1044 LD (IY+33),A + 000006DA FD 77 22 1045 LD (IY+34),A + 000006DD FD 77 23 1046 LD (IY+35),A + 000006E0 1047 ?0422: + 000006E0 FD E5 1048 PUSH IY + 000006E2 E1 1049 POP HL + 000006E3 FD E1 1050 POP IY + 000006E5 C3 00 00 1051 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000006E8 1052 Component_setlabel: + 000006E8 CD 00 00 1053 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000006EB 00 00 1054 DEFW 0 + 000006ED FD E5 1055 PUSH IY + 000006EF DD 6E 02 1056 LD L,(IX+2) + 000006F2 DD 66 03 1057 LD H,(IX+3) + 000006F5 E5 1058 PUSH HL + 000006F6 FD E1 1059 POP IY + 000006F8 11 00 00 1060 LD DE,0 + 000006FB 1061 ?0043: + 000006FB DD 6E 04 1062 LD L,(IX+4) + 000006FE DD 66 05 1063 LD H,(IX+5) + 00000701 19 1064 ADD HL,DE + 00000702 7E 1065 LD A,(HL) + 00000703 B7 1066 OR A + 00000704 28 21 1067 JR Z,?0042 + 00000706 01 14 80 1068 LD BC,32788 + 00000709 6B 1069 LD L,E + 0000070A 62 1070 LD H,D + 0000070B 78 1071 LD A,B + 0000070C AC 1072 XOR H + 0000070D 67 1073 LD H,A + 0000070E ED 42 1074 SBC HL,BC + 00000710 30 15 1075 JR NC,?0042 + 00000712 1076 ?0046: + 00000712 1077 ?0045: + 00000712 1078 ?0044: + 00000712 FD 6E 20 1079 LD L,(IY+32) + 00000715 FD 66 21 1080 LD H,(IY+33) + 00000718 19 1081 ADD HL,DE + 00000719 E5 1082 PUSH HL + 0000071A DD 6E 04 1083 LD L,(IX+4) + 0000071D DD 66 05 1084 LD H,(IX+5) + 00000720 19 1085 ADD HL,DE + 00000721 46 1086 LD B,(HL) + 00000722 E1 1087 POP HL + 00000723 70 1088 LD (HL),B + 00000724 13 1089 INC DE + 00000725 18 D4 1090 JR ?0043 + 00000727 1091 ?0042: + 00000727 FD 6E 20 1092 LD L,(IY+32) + 0000072A FD 66 21 1093 LD H,(IY+33) + 0000072D 19 1094 ADD HL,DE + 0000072E 36 00 1095 LD (HL),0 + 00000730 FD E1 1096 POP IY + 00000732 C3 00 00 1097 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000735 1098 Component_add: + 00000735 CD 00 00 1099 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000738 00 00 1100 DEFW 0 + 0000073A FD E5 1101 PUSH IY + 0000073C 59 1102 LD E,C + 0000073D 50 1103 LD D,B + 0000073E 21 15 00 1104 LD HL,21 + 00000741 DD 4E 02 1105 LD C,(IX+2) + 00000744 DD 46 03 1106 LD B,(IX+3) + 00000747 09 1107 ADD HL,BC + 00000748 7E 1108 LD A,(HL) + 00000749 23 1109 INC HL + 0000074A 66 1110 LD H,(HL) + 0000074B 6F 1111 LD L,A + 0000074C E5 1112 PUSH HL + 0000074D FD E1 1113 POP IY + 0000074F 21 15 00 1114 LD HL,21 + 00000752 09 1115 ADD HL,BC + 00000753 7E 1116 LD A,(HL) + 00000754 23 1117 INC HL + 00000755 B6 1118 OR (HL) + 00000756 20 09 1119 JR NZ,?0048 + 00000758 1120 ?0047: + 00000758 21 15 00 1121 LD HL,21 + 0000075B 09 1122 ADD HL,BC + 0000075C 73 1123 LD (HL),E + 0000075D 23 1124 INC HL + 0000075E 72 1125 LD (HL),D + 0000075F 18 19 1126 JR ?0345 + 00000761 1127 ?0048: + 00000761 1128 ?0051: + 00000761 FD 7E 13 1129 LD A,(IY+19) + 00000764 FD B6 14 1130 OR (IY+20) + 00000767 28 0B 1131 JR Z,?0050 + 00000769 1132 ?0052: + 00000769 FD 6E 13 1133 LD L,(IY+19) + 0000076C FD 66 14 1134 LD H,(IY+20) + 0000076F E5 1135 PUSH HL + 00000770 FD E1 1136 POP IY + 00000772 18 ED 1137 JR ?0048 + 00000774 1138 ?0050: + 00000774 FD 73 13 1139 LD (IY+19),E + 00000777 FD 72 14 1140 LD (IY+20),D + 0000077A 1141 ?0345: + 0000077A 21 13 00 1142 LD HL,19 + 0000077D 19 1143 ADD HL,DE + 0000077E 77 1144 LD (HL),A + 0000077F 23 1145 INC HL + 00000780 77 1146 LD (HL),A + 00000781 1147 ?0049: + 00000781 21 11 00 1148 LD HL,17 + 00000784 19 1149 ADD HL,DE + 00000785 DD 4E 02 1150 LD C,(IX+2) + 00000788 71 1151 LD (HL),C + 00000789 DD 46 03 1152 LD B,(IX+3) + 0000078C 23 1153 INC HL + 0000078D 70 1154 LD (HL),B + 0000078E FD E1 1155 POP IY + 00000790 C3 00 00 1156 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000793 1157 Component_paint: + 00000793 C5 1158 PUSH BC + 00000794 FD E5 1159 PUSH IY + 00000796 DD E5 1160 PUSH IX + 00000798 21 15 00 1161 LD HL,21 + 0000079B 19 1162 ADD HL,DE + 0000079C 46 1163 LD B,(HL) + 0000079D 23 1164 INC HL + 0000079E 66 1165 LD H,(HL) + 0000079F 68 1166 LD L,B + 000007A0 E5 1167 PUSH HL + 000007A1 DD E1 1168 POP IX + 000007A3 CD CF 07 1169 CALL LWRD ?0486 + 000007A6 1170 ?0054: + 000007A6 DD E5 1171 PUSH IX + 000007A8 E1 1172 POP HL + 000007A9 7D 1173 LD A,L + 000007AA B4 1174 OR H + 000007AB 28 1A 1175 JR Z,?0053 + 000007AD 1176 ?0055: + 000007AD DD E5 1177 PUSH IX + 000007AF D1 1178 POP DE + 000007B0 DD 7E 1C 1179 LD A,(IX+28) + 000007B3 DD 6E 1A 1180 LD L,(IX+26) + 000007B6 DD 66 1B 1181 LD H,(IX+27) + 000007B9 CD 00 00 1182 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000007BC DD 6E 13 1183 LD L,(IX+19) + 000007BF DD 66 14 1184 LD H,(IX+20) + 000007C2 E5 1185 PUSH HL + 000007C3 DD E1 1186 POP IX + 000007C5 18 DF 1187 JR ?0054 + 000007C7 1188 ?0053: + 000007C7 1E 01 1189 LD E,1 + 000007C9 CD D1 07 1190 CALL LWRD ?0487 + 000007CC C3 F9 02 1191 JP LWRD ?0415 + 000007CF 1192 ?0486: + 000007CF 1E 00 1193 LD E,0 + 000007D1 1194 ?0487: + 000007D1 3E 95 1195 LD A,BYTE3 EnableScreen + 000007D3 21 95 03 1196 LD HL,LWRD EnableScreen + 000007D6 C3 00 00 1197 JP LWRD ?BANK_CALL_DIRECT_L08 + 000007D9 1198 Component_findXY: + 000007D9 CD 00 00 1199 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000007DC 00 00 1200 DEFW 0 + 000007DE FD E5 1201 PUSH IY + 000007E0 DD 6E 02 1202 LD L,(IX+2) + 000007E3 DD 66 03 1203 LD H,(IX+3) + 000007E6 E5 1204 PUSH HL + 000007E7 FD E1 1205 POP IY + 000007E9 1206 ?0058: + 000007E9 DD 6E 04 1207 LD L,(IX+4) + 000007EC DD 66 05 1208 LD H,(IX+5) + 000007EF 7E 1209 LD A,(HL) + 000007F0 FD 86 02 1210 ADD A,(IY+2) + 000007F3 77 1211 LD (HL),A + 000007F4 23 1212 INC HL + 000007F5 7E 1213 LD A,(HL) + 000007F6 FD 8E 03 1214 ADC A,(IY+3) + 000007F9 77 1215 LD (HL),A + 000007FA DD 6E 0A 1216 LD L,(IX+10) + 000007FD DD 66 0B 1217 LD H,(IX+11) + 00000800 7E 1218 LD A,(HL) + 00000801 FD 86 04 1219 ADD A,(IY+4) + 00000804 77 1220 LD (HL),A + 00000805 23 1221 INC HL + 00000806 7E 1222 LD A,(HL) + 00000807 FD 8E 05 1223 ADC A,(IY+5) + 0000080A 77 1224 LD (HL),A + 0000080B FD 6E 11 1225 LD L,(IY+17) + 0000080E FD 66 12 1226 LD H,(IY+18) + 00000811 E5 1227 PUSH HL + 00000812 FD E1 1228 POP IY + 00000814 7D 1229 LD A,L + 00000815 B4 1230 OR H + 00000816 20 D1 1231 JR NZ,?0058 + 00000818 1232 ?0056: + 00000818 FD E1 1233 POP IY + 0000081A C3 00 00 1234 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000081D 1235 Component_find: + 0000081D CD 00 00 1236 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000820 00 00 1237 DEFW 0 + 00000822 21 15 00 1238 LD HL,21 + 00000825 DD 4E 02 1239 LD C,(IX+2) + 00000828 DD 46 03 1240 LD B,(IX+3) + 0000082B 09 1241 ADD HL,BC + 0000082C 1242 ?0346: + 0000082C 46 1243 LD B,(HL) + 0000082D 23 1244 INC HL + 0000082E 66 1245 LD H,(HL) + 0000082F 68 1246 LD L,B + 00000830 EB 1247 EX DE,HL + 00000831 1248 ?0060: + 00000831 7B 1249 LD A,E + 00000832 B2 1250 OR D + 00000833 28 1B 1251 JR Z,?0059 + 00000835 1252 ?0061: + 00000835 21 10 00 1253 LD HL,16 + 00000838 19 1254 ADD HL,DE + 00000839 4E 1255 LD C,(HL) + 0000083A 06 00 1256 LD B,0 + 0000083C DD 6E 04 1257 LD L,(IX+4) + 0000083F DD 66 05 1258 LD H,(IX+5) + 00000842 A7 1259 AND A + 00000843 ED 42 1260 SBC HL,BC + 00000845 20 03 1261 JR NZ,?0063 + 00000847 1262 ?0062: + 00000847 EB 1263 EX DE,HL + 00000848 18 08 1264 JR ?0064 + 0000084A 1265 ?0063: + 0000084A 21 13 00 1266 LD HL,19 + 0000084D 19 1267 ADD HL,DE + 0000084E 18 DC 1268 JR ?0346 + 00000850 1269 ?0059: + 00000850 6F 1270 LD L,A + 00000851 67 1271 LD H,A + 00000852 1272 ?0064: + 00000852 C3 00 00 1273 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000855 1274 Component_delete: + 00000855 CD 00 00 1275 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000858 F8 FF 1276 DEFW 65528 + 0000085A FD E5 1277 PUSH IY + 0000085C DD 6E 02 1278 LD L,(IX+2) + 0000085F DD 66 03 1279 LD H,(IX+3) + 00000862 E5 1280 PUSH HL + 00000863 FD E1 1281 POP IY + 00000865 FD 6E 15 1282 LD L,(IY+21) + 00000868 DD 75 F8 1283 LD (IX-8),L + 0000086B FD 66 16 1284 LD H,(IY+22) + 0000086E DD 74 F9 1285 LD (IX-7),H + 00000871 FD E5 1286 PUSH IY + 00000873 E1 1287 POP HL + 00000874 7D 1288 LD A,L + 00000875 B4 1289 OR H + 00000876 CA 08 0A 1290 JP Z,?0066 + 00000879 1291 ?0065: + 00000879 1292 ?0068: + 00000879 DD 7E F8 1293 LD A,(IX-8) + 0000087C DD B6 F9 1294 OR (IX-7) + 0000087F 28 11 1295 JR Z,?0067 + 00000881 1296 ?0069: + 00000881 DD 5E F8 1297 LD E,(IX-8) + 00000884 DD 56 F9 1298 LD D,(IX-7) + 00000887 CD 1E 0A 1299 CALL LWRD ?0467 + 0000088A DD 75 F8 1300 LD (IX-8),L + 0000088D DD 74 F9 1301 LD (IX-7),H + 00000890 18 E7 1302 JR ?0065 + 00000892 1303 ?0067: + 00000892 FD 7E 11 1304 LD A,(IY+17) + 00000895 FD B6 12 1305 OR (IY+18) + 00000898 CA 24 09 1306 JP Z,?0081 + 0000089B 1307 ?0070: + 0000089B FD 6E 11 1308 LD L,(IY+17) + 0000089E FD 66 12 1309 LD H,(IY+18) + 000008A1 01 15 00 1310 LD BC,21 + 000008A4 09 1311 ADD HL,BC + 000008A5 46 1312 LD B,(HL) + 000008A6 23 1313 INC HL + 000008A7 66 1314 LD H,(HL) + 000008A8 68 1315 LD L,B + 000008A9 FD E5 1316 PUSH IY + 000008AB C1 1317 POP BC + 000008AC A7 1318 AND A + 000008AD ED 42 1319 SBC HL,BC + 000008AF FD 6E 11 1320 LD L,(IY+17) + 000008B2 FD 66 12 1321 LD H,(IY+18) + 000008B5 01 15 00 1322 LD BC,21 + 000008B8 09 1323 ADD HL,BC + 000008B9 20 09 1324 JR NZ,?0073 + 000008BB 1325 ?0072: + 000008BB E5 1326 PUSH HL + 000008BC FD 6E 11 1327 LD L,(IY+17) + 000008BF FD 66 12 1328 LD H,(IY+18) + 000008C2 18 50 1329 JR ?0349 + 000008C4 1330 ?0073: + 000008C4 46 1331 LD B,(HL) + 000008C5 23 1332 INC HL + 000008C6 66 1333 LD H,(HL) + 000008C7 68 1334 LD L,B + 000008C8 1335 ?0348: + 000008C8 DD 75 F8 1336 LD (IX-8),L + 000008CB DD 74 F9 1337 LD (IX-7),H + 000008CE 1338 ?0076: + 000008CE 21 13 00 1339 LD HL,19 + 000008D1 DD 4E F8 1340 LD C,(IX-8) + 000008D4 DD 46 F9 1341 LD B,(IX-7) + 000008D7 09 1342 ADD HL,BC + 000008D8 46 1343 LD B,(HL) + 000008D9 23 1344 INC HL + 000008DA 66 1345 LD H,(HL) + 000008DB 68 1346 LD L,B + 000008DC FD E5 1347 PUSH IY + 000008DE C1 1348 POP BC + 000008DF A7 1349 AND A + 000008E0 ED 42 1350 SBC HL,BC + 000008E2 28 19 1351 JR Z,?0075 + 000008E4 21 13 00 1352 LD HL,19 + 000008E7 DD 4E F8 1353 LD C,(IX-8) + 000008EA DD 46 F9 1354 LD B,(IX-7) + 000008ED 09 1355 ADD HL,BC + 000008EE 7E 1356 LD A,(HL) + 000008EF 23 1357 INC HL + 000008F0 B6 1358 OR (HL) + 000008F1 28 0A 1359 JR Z,?0075 + 000008F3 1360 ?0079: + 000008F3 1361 ?0078: + 000008F3 1362 ?0077: + 000008F3 21 13 00 1363 LD HL,19 + 000008F6 09 1364 ADD HL,BC + 000008F7 56 1365 LD D,(HL) + 000008F8 23 1366 INC HL + 000008F9 66 1367 LD H,(HL) + 000008FA 6A 1368 LD L,D + 000008FB 18 CB 1369 JR ?0348 + 000008FD 1370 ?0075: + 000008FD 21 13 00 1371 LD HL,19 + 00000900 DD 4E F8 1372 LD C,(IX-8) + 00000903 DD 46 F9 1373 LD B,(IX-7) + 00000906 09 1374 ADD HL,BC + 00000907 7E 1375 LD A,(HL) + 00000908 23 1376 INC HL + 00000909 B6 1377 OR (HL) + 0000090A 28 18 1378 JR Z,?0081 + 0000090C 1379 ?0080: + 0000090C 21 13 00 1380 LD HL,19 + 0000090F 09 1381 ADD HL,BC + 00000910 E5 1382 PUSH HL + 00000911 21 13 00 1383 LD HL,19 + 00000914 1384 ?0349: + 00000914 09 1385 ADD HL,BC + 00000915 46 1386 LD B,(HL) + 00000916 23 1387 INC HL + 00000917 66 1388 LD H,(HL) + 00000918 68 1389 LD L,B + 00000919 01 13 00 1390 LD BC,19 + 0000091C 09 1391 ADD HL,BC + 0000091D 4E 1392 LD C,(HL) + 0000091E 23 1393 INC HL + 0000091F 46 1394 LD B,(HL) + 00000920 E1 1395 POP HL + 00000921 71 1396 LD (HL),C + 00000922 23 1397 INC HL + 00000923 70 1398 LD (HL),B + 00000924 1399 ?0081: + 00000924 1400 ?0074: + 00000924 1401 ?0071: + 00000924 FD 6E 13 1402 LD L,(IY+19) + 00000927 DD 75 F8 1403 LD (IX-8),L + 0000092A FD 66 14 1404 LD H,(IY+20) + 0000092D DD 74 F9 1405 LD (IX-7),H + 00000930 3E 04 1406 LD A,4 + 00000932 FD AE 24 1407 XOR (IY+36) + 00000935 FD B6 25 1408 OR (IY+37) + 00000938 C2 D4 09 1409 JP NZ,?0090 + 0000093B 1410 ?0082: + 0000093B FD 6E 11 1411 LD L,(IY+17) + 0000093E DD 75 FC 1412 LD (IX-4),L + 00000941 FD 66 12 1413 LD H,(IY+18) + 00000944 DD 74 FD 1414 LD (IX-3),H + 00000947 FD 6E 26 1415 LD L,(IY+38) + 0000094A DD 75 FE 1416 LD (IX-2),L + 0000094D FD 66 27 1417 LD H,(IY+39) + 00000950 DD 74 FF 1418 LD (IX-1),H + 00000953 CD 13 0A 1419 CALL LWRD ?0464 + 00000956 DD 6E FE 1420 LD L,(IX-2) + 00000959 DD 66 FF 1421 LD H,(IX-1) + 0000095C 23 1422 INC HL + 0000095D 23 1423 INC HL + 0000095E CD 13 0A 1424 CALL LWRD ?0464 + 00000961 1425 ?0085: + 00000961 DD 7E FC 1426 LD A,(IX-4) + 00000964 DD B6 FD 1427 OR (IX-3) + 00000967 28 20 1428 JR Z,?0084 + 00000969 21 24 00 1429 LD HL,36 + 0000096C DD 4E FC 1430 LD C,(IX-4) + 0000096F DD 46 FD 1431 LD B,(IX-3) + 00000972 09 1432 ADD HL,BC + 00000973 3E 04 1433 LD A,4 + 00000975 AE 1434 XOR (HL) + 00000976 23 1435 INC HL + 00000977 B6 1436 OR (HL) + 00000978 28 0F 1437 JR Z,?0084 + 0000097A 1438 ?0088: + 0000097A 1439 ?0087: + 0000097A 1440 ?0086: + 0000097A 21 11 00 1441 LD HL,17 + 0000097D 09 1442 ADD HL,BC + 0000097E 56 1443 LD D,(HL) + 0000097F DD 72 FC 1444 LD (IX-4),D + 00000982 23 1445 INC HL + 00000983 66 1446 LD H,(HL) + 00000984 DD 74 FD 1447 LD (IX-3),H + 00000987 18 D8 1448 JR ?0085 + 00000989 1449 ?0084: + 00000989 DD 7E FC 1450 LD A,(IX-4) + 0000098C DD B6 FD 1451 OR (IX-3) + 0000098F 28 43 1452 JR Z,?0090 + 00000991 1453 ?0089: + 00000991 21 26 00 1454 LD HL,38 + 00000994 DD 4E FC 1455 LD C,(IX-4) + 00000997 DD 46 FD 1456 LD B,(IX-3) + 0000099A 09 1457 ADD HL,BC + 0000099B 46 1458 LD B,(HL) + 0000099C DD 70 FE 1459 LD (IX-2),B + 0000099F 23 1460 INC HL + 000009A0 66 1461 LD H,(HL) + 000009A1 DD 74 FF 1462 LD (IX-1),H + 000009A4 21 0A 00 1463 LD HL,10 + 000009A7 ED 4B 00 00 1464 LD BC,(global) + 000009AB 09 1465 ADD HL,BC + 000009AC E5 1466 PUSH HL + 000009AD DD 6E FE 1467 LD L,(IX-2) + 000009B0 DD 66 FF 1468 LD H,(IX-1) + 000009B3 5E 1469 LD E,(HL) + 000009B4 23 1470 INC HL + 000009B5 56 1471 LD D,(HL) + 000009B6 E1 1472 POP HL + 000009B7 73 1473 LD (HL),E + 000009B8 23 1474 INC HL + 000009B9 72 1475 LD (HL),D + 000009BA 21 0C 00 1476 LD HL,12 + 000009BD ED 4B 00 00 1477 LD BC,(global) + 000009C1 09 1478 ADD HL,BC + 000009C2 E5 1479 PUSH HL + 000009C3 DD 4E FE 1480 LD C,(IX-2) + 000009C6 DD 46 FF 1481 LD B,(IX-1) + 000009C9 03 1482 INC BC + 000009CA 03 1483 INC BC + 000009CB 69 1484 LD L,C + 000009CC 60 1485 LD H,B + 000009CD 4E 1486 LD C,(HL) + 000009CE 23 1487 INC HL + 000009CF 46 1488 LD B,(HL) + 000009D0 E1 1489 POP HL + 000009D1 71 1490 LD (HL),C + 000009D2 23 1491 INC HL + 000009D3 70 1492 LD (HL),B + 000009D4 1493 ?0090: + 000009D4 1494 ?0083: + 000009D4 FD 4E 24 1495 LD C,(IY+36) + 000009D7 FD 46 25 1496 LD B,(IY+37) + 000009DA 21 00 00 1497 LD HL,0 + 000009DD CD 00 00 1498 CALL LWRD ?SS_CMP_L02 + 000009E0 30 09 1499 JR NC,?0092 + 000009E2 1500 ?0091: + 000009E2 FD 5E 26 1501 LD E,(IY+38) + 000009E5 FD 56 27 1502 LD D,(IY+39) + 000009E8 CD 16 0A 1503 CALL LWRD ?0465 + 000009EB 1504 ?0092: + 000009EB FD CB 0B 76 1505 BIT 6,(IY+11) + 000009EF 20 11 1506 JR NZ,?0094 + 000009F1 FD 7E 20 1507 LD A,(IY+32) + 000009F4 FD B6 21 1508 OR (IY+33) + 000009F7 28 09 1509 JR Z,?0094 + 000009F9 1510 ?0096: + 000009F9 1511 ?0095: + 000009F9 1512 ?0093: + 000009F9 FD 5E 20 1513 LD E,(IY+32) + 000009FC FD 56 21 1514 LD D,(IY+33) + 000009FF CD 16 0A 1515 CALL LWRD ?0465 + 00000A02 1516 ?0094: + 00000A02 FD E5 1517 PUSH IY + 00000A04 D1 1518 POP DE + 00000A05 CD 16 0A 1519 CALL LWRD ?0465 + 00000A08 1520 ?0066: + 00000A08 DD 6E F8 1521 LD L,(IX-8) + 00000A0B DD 66 F9 1522 LD H,(IX-7) + 00000A0E FD E1 1523 POP IY + 00000A10 C3 00 00 1524 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000A13 1525 ?0464: + 00000A13 5E 1526 LD E,(HL) + 00000A14 23 1527 INC HL + 00000A15 56 1528 LD D,(HL) + 00000A16 1529 ?0465: + 00000A16 3E 00 1530 LD A,BYTE3 free + 00000A18 21 00 00 1531 LD HL,LWRD free + 00000A1B C3 00 00 1532 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000A1E 1533 ?0467: + 00000A1E 3E 55 1534 LD A,BYTE3 Component_delete + 00000A20 21 55 08 1535 LD HL,LWRD Component_delete + 00000A23 C3 00 00 1536 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000A26 1537 Component_delete_children: + 00000A26 C5 1538 PUSH BC + 00000A27 FD E5 1539 PUSH IY + 00000A29 DD E5 1540 PUSH IX + 00000A2B 21 15 00 1541 LD HL,21 + 00000A2E 19 1542 ADD HL,DE + 00000A2F 46 1543 LD B,(HL) + 00000A30 23 1544 INC HL + 00000A31 66 1545 LD H,(HL) + 00000A32 68 1546 LD L,B + 00000A33 1547 ?0351: + 00000A33 E5 1548 PUSH HL + 00000A34 DD E1 1549 POP IX + 00000A36 1550 ?0098: + 00000A36 7D 1551 LD A,L + 00000A37 B4 1552 OR H + 00000A38 28 08 1553 JR Z,?0097 + 00000A3A 1554 ?0099: + 00000A3A DD E5 1555 PUSH IX + 00000A3C D1 1556 POP DE + 00000A3D CD 1E 0A 1557 CALL LWRD ?0467 + 00000A40 18 F1 1558 JR ?0351 + 00000A42 1559 ?0097: + 00000A42 C3 F9 02 1560 JP LWRD ?0415 + 00000A45 1561 Component_changestate_children: + 00000A45 CD 00 00 1562 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000A48 00 00 1563 DEFW 0 + 00000A4A FD E5 1564 PUSH IY + 00000A4C 21 15 00 1565 LD HL,21 + 00000A4F DD 5E 02 1566 LD E,(IX+2) + 00000A52 DD 56 03 1567 LD D,(IX+3) + 00000A55 19 1568 ADD HL,DE + 00000A56 1569 ?0352: + 00000A56 56 1570 LD D,(HL) + 00000A57 23 1571 INC HL + 00000A58 66 1572 LD H,(HL) + 00000A59 6A 1573 LD L,D + 00000A5A E5 1574 PUSH HL + 00000A5B FD E1 1575 POP IY + 00000A5D 1576 ?0101: + 00000A5D 7D 1577 LD A,L + 00000A5E B4 1578 OR H + 00000A5F 28 3D 1579 JR Z,?0100 + 00000A61 1580 ?0102: + 00000A61 21 0A 00 1581 LD HL,10 + 00000A64 FD E5 1582 PUSH IY + 00000A66 C1 1583 POP BC + 00000A67 09 1584 ADD HL,BC + 00000A68 DD 7E 04 1585 LD A,(IX+4) + 00000A6B DD 56 05 1586 LD D,(IX+5) + 00000A6E 2F 1587 CPL + 00000A6F 5F 1588 LD E,A + 00000A70 7A 1589 LD A,D + 00000A71 2F 1590 CPL + 00000A72 57 1591 LD D,A + 00000A73 7E 1592 LD A,(HL) + 00000A74 A3 1593 AND E + 00000A75 77 1594 LD (HL),A + 00000A76 23 1595 INC HL + 00000A77 7E 1596 LD A,(HL) + 00000A78 A2 1597 AND D + 00000A79 77 1598 LD (HL),A + 00000A7A 21 0A 00 1599 LD HL,10 + 00000A7D 09 1600 ADD HL,BC + 00000A7E 7E 1601 LD A,(HL) + 00000A7F DD B6 0A 1602 OR (IX+10) + 00000A82 77 1603 LD (HL),A + 00000A83 23 1604 INC HL + 00000A84 7E 1605 LD A,(HL) + 00000A85 DD B6 0B 1606 OR (IX+11) + 00000A88 77 1607 LD (HL),A + 00000A89 21 0A 00 1608 LD HL,10 + 00000A8C 09 1609 ADD HL,BC + 00000A8D 7E 1610 LD A,(HL) + 00000A8E DD AE 0C 1611 XOR (IX+12) + 00000A91 77 1612 LD (HL),A + 00000A92 23 1613 INC HL + 00000A93 7E 1614 LD A,(HL) + 00000A94 DD AE 0D 1615 XOR (IX+13) + 00000A97 77 1616 LD (HL),A + 00000A98 21 13 00 1617 LD HL,19 + 00000A9B 09 1618 ADD HL,BC + 00000A9C 18 B8 1619 JR ?0352 + 00000A9E 1620 ?0100: + 00000A9E 11 00 00 1621 LD DE,stdout + 00000AA1 3E 00 1622 LD A,BYTE3 fflush + 00000AA3 21 00 00 1623 LD HL,LWRD fflush + 00000AA6 CD 00 00 1624 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000AA9 FD E1 1625 POP IY + 00000AAB C3 00 00 1626 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000AAE 1627 Component_linkstringtable: + 00000AAE C5 1628 PUSH BC + 00000AAF FD E5 1629 PUSH IY + 00000AB1 DD E5 1630 PUSH IX + 00000AB3 D5 1631 PUSH DE + 00000AB4 DD E1 1632 POP IX + 00000AB6 21 15 00 1633 LD HL,21 + 00000AB9 19 1634 ADD HL,DE + 00000ABA 46 1635 LD B,(HL) + 00000ABB 23 1636 INC HL + 00000ABC 66 1637 LD H,(HL) + 00000ABD 68 1638 LD L,B + 00000ABE E5 1639 PUSH HL + 00000ABF FD E1 1640 POP IY + 00000AC1 21 20 00 1641 LD HL,32 + 00000AC4 19 1642 ADD HL,DE + 00000AC5 46 1643 LD B,(HL) + 00000AC6 23 1644 INC HL + 00000AC7 66 1645 LD H,(HL) + 00000AC8 68 1646 LD L,B + 00000AC9 01 00 90 1647 LD BC,36864 + 00000ACC 3E 80 1648 LD A,128 + 00000ACE AC 1649 XOR H + 00000ACF 67 1650 LD H,A + 00000AD0 ED 42 1651 SBC HL,BC + 00000AD2 30 2E 1652 JR NC,?0104 + 00000AD4 DD 4E 20 1653 LD C,(IX+32) + 00000AD7 DD 46 21 1654 LD B,(IX+33) + 00000ADA 21 00 00 1655 LD HL,0 + 00000ADD CD 00 00 1656 CALL LWRD ?SS_CMP_L02 + 00000AE0 30 20 1657 JR NC,?0104 + 00000AE2 1658 ?0106: + 00000AE2 1659 ?0105: + 00000AE2 1660 ?0103: + 00000AE2 DD 6E 20 1661 LD L,(IX+32) + 00000AE5 DD 66 21 1662 LD H,(IX+33) + 00000AE8 29 1663 ADD HL,HL + 00000AE9 E5 1664 PUSH HL + 00000AEA 21 0C 00 1665 LD HL,12 + 00000AED ED 4B 00 00 1666 LD BC,(global) + 00000AF1 09 1667 ADD HL,BC + 00000AF2 4E 1668 LD C,(HL) + 00000AF3 23 1669 INC HL + 00000AF4 46 1670 LD B,(HL) + 00000AF5 E1 1671 POP HL + 00000AF6 09 1672 ADD HL,BC + 00000AF7 2B 1673 DEC HL + 00000AF8 2B 1674 DEC HL + 00000AF9 46 1675 LD B,(HL) + 00000AFA DD 70 20 1676 LD (IX+32),B + 00000AFD 23 1677 INC HL + 00000AFE 66 1678 LD H,(HL) + 00000AFF DD 74 21 1679 LD (IX+33),H + 00000B02 1680 ?0104: + 00000B02 DD 6E 22 1681 LD L,(IX+34) + 00000B05 DD 66 23 1682 LD H,(IX+35) + 00000B08 01 00 90 1683 LD BC,36864 + 00000B0B 3E 80 1684 LD A,128 + 00000B0D AC 1685 XOR H + 00000B0E 67 1686 LD H,A + 00000B0F ED 42 1687 SBC HL,BC + 00000B11 30 2E 1688 JR NC,?0108 + 00000B13 DD 4E 22 1689 LD C,(IX+34) + 00000B16 DD 46 23 1690 LD B,(IX+35) + 00000B19 21 00 00 1691 LD HL,0 + 00000B1C CD 00 00 1692 CALL LWRD ?SS_CMP_L02 + 00000B1F 30 20 1693 JR NC,?0108 + 00000B21 1694 ?0110: + 00000B21 1695 ?0109: + 00000B21 1696 ?0107: + 00000B21 DD 6E 22 1697 LD L,(IX+34) + 00000B24 DD 66 23 1698 LD H,(IX+35) + 00000B27 29 1699 ADD HL,HL + 00000B28 E5 1700 PUSH HL + 00000B29 21 0C 00 1701 LD HL,12 + 00000B2C ED 4B 00 00 1702 LD BC,(global) + 00000B30 09 1703 ADD HL,BC + 00000B31 4E 1704 LD C,(HL) + 00000B32 23 1705 INC HL + 00000B33 46 1706 LD B,(HL) + 00000B34 E1 1707 POP HL + 00000B35 09 1708 ADD HL,BC + 00000B36 2B 1709 DEC HL + 00000B37 2B 1710 DEC HL + 00000B38 46 1711 LD B,(HL) + 00000B39 DD 70 22 1712 LD (IX+34),B + 00000B3C 23 1713 INC HL + 00000B3D 66 1714 LD H,(HL) + 00000B3E DD 74 23 1715 LD (IX+35),H + 00000B41 1716 ?0108: + 00000B41 1717 ?0112: + 00000B41 FD E5 1718 PUSH IY + 00000B43 E1 1719 POP HL + 00000B44 7D 1720 LD A,L + 00000B45 B4 1721 OR H + 00000B46 28 16 1722 JR Z,?0111 + 00000B48 1723 ?0113: + 00000B48 FD E5 1724 PUSH IY + 00000B4A D1 1725 POP DE + 00000B4B 3E AE 1726 LD A,BYTE3 Component_linkstringtable + 00000B4D 21 AE 0A 1727 LD HL,LWRD Component_linkstringtable + 00000B50 CD 00 00 1728 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000B53 FD 6E 13 1729 LD L,(IY+19) + 00000B56 FD 66 14 1730 LD H,(IY+20) + 00000B59 E5 1731 PUSH HL + 00000B5A FD E1 1732 POP IY + 00000B5C 18 E3 1733 JR ?0108 + 00000B5E 1734 ?0111: + 00000B5E C3 F9 02 1735 JP LWRD ?0415 + 00000B61 1736 Window_handler: + 00000B61 CD 00 00 1737 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00000B64 D0 FF 1738 DEFW 65488 + 00000B66 FD E5 1739 PUSH IY + 00000B68 AF 1740 XOR A + 00000B69 DD 77 FA 1741 LD (IX-6),A + 00000B6C DD 77 FB 1742 LD (IX-5),A + 00000B6F DD 77 FC 1743 LD (IX-4),A + 00000B72 DD 77 FD 1744 LD (IX-3),A + 00000B75 59 1745 LD E,C + 00000B76 50 1746 LD D,B + 00000B77 CD 00 00 1747 CALL LWRD ?S_V_SWITCH_L06 + 00000B7A 08 00 1748 DEFW 8 + 00000B7C 01 00 1749 DEFW 1 + 00000B7E 02 00 1750 DEFW 2 + 00000B80 03 00 1751 DEFW 3 + 00000B82 02 01 1752 DEFW 258 + 00000B84 03 01 1753 DEFW 259 + 00000B86 04 01 1754 DEFW 260 + 00000B88 05 01 1755 DEFW 261 + 00000B8A 01 05 1756 DEFW 1281 + 00000B8C FA 0D 1757 DEFW ?0161 + 00000B8E 68 0D 1758 DEFW ?0155 + 00000B90 FB 0C 1759 DEFW ?0146 + 00000B92 27 0D 1760 DEFW ?0147 + 00000B94 6F 0C 1761 DEFW ?0144 + 00000B96 80 0C 1762 DEFW ?0145 + 00000B98 34 0C 1763 DEFW ?0133 + 00000B9A CF 0B 1764 DEFW ?0121 + 00000B9C 9E 0B 1765 DEFW ?0115 + 00000B9E 1766 ?0115: + 00000B9E 21 15 00 1767 LD HL,21 + 00000BA1 DD 4E 02 1768 LD C,(IX+2) + 00000BA4 DD 46 03 1769 LD B,(IX+3) + 00000BA7 09 1770 ADD HL,BC + 00000BA8 46 1771 LD B,(HL) + 00000BA9 23 1772 INC HL + 00000BAA 66 1773 LD H,(HL) + 00000BAB 68 1774 LD L,B + 00000BAC 1775 ?0354: + 00000BAC E5 1776 PUSH HL + 00000BAD FD E1 1777 POP IY + 00000BAF 1778 ?0117: + 00000BAF 7D 1779 LD A,L + 00000BB0 B4 1780 OR H + 00000BB1 28 19 1781 JR Z,?0116 + 00000BB3 1782 ?0118: + 00000BB3 FD CB 0A 46 1783 BIT 0,(IY+10) + 00000BB7 28 0B 1784 JR Z,?0120 + 00000BB9 1785 ?0119: + 00000BB9 DD 6E 0A 1786 LD L,(IX+10) + 00000BBC DD 66 0B 1787 LD H,(IX+11) + 00000BBF E5 1788 PUSH HL + 00000BC0 CD 0A 0E 1789 CALL LWRD ?0475 + 00000BC3 E1 1790 POP HL + 00000BC4 1791 ?0120: + 00000BC4 FD 6E 13 1792 LD L,(IY+19) + 00000BC7 FD 66 14 1793 LD H,(IY+20) + 00000BCA 18 E0 1794 JR ?0354 + 00000BCC 1795 ?0116: + 00000BCC C3 FA 0D 1796 JP LWRD ?0161 + 00000BCF 1797 ?0121: + 00000BCF 21 15 00 1798 LD HL,21 + 00000BD2 DD 4E 02 1799 LD C,(IX+2) + 00000BD5 DD 46 03 1800 LD B,(IX+3) + 00000BD8 09 1801 ADD HL,BC + 00000BD9 46 1802 LD B,(HL) + 00000BDA 23 1803 INC HL + 00000BDB 66 1804 LD H,(HL) + 00000BDC 68 1805 LD L,B + 00000BDD 1806 ?0358: + 00000BDD E5 1807 PUSH HL + 00000BDE FD E1 1808 POP IY + 00000BE0 1809 ?0123: + 00000BE0 7D 1810 LD A,L + 00000BE1 B4 1811 OR H + 00000BE2 28 4D 1812 JR Z,?0122 + 00000BE4 1813 ?0124: + 00000BE4 FD CB 0A 46 1814 BIT 0,(IY+10) + 00000BE8 28 38 1815 JR Z,?0128 + 00000BEA 1816 ?0125: + 00000BEA DD 6E 0A 1817 LD L,(IX+10) + 00000BED DD 66 0B 1818 LD H,(IX+11) + 00000BF0 E5 1819 PUSH HL + 00000BF1 CD 0A 0E 1820 CALL LWRD ?0475 + 00000BF4 E1 1821 POP HL + 00000BF5 DD 6E 0A 1822 LD L,(IX+10) + 00000BF8 DD 66 0B 1823 LD H,(IX+11) + 00000BFB E5 1824 PUSH HL + 00000BFC 01 03 00 1825 LD BC,3 + 00000BFF CD 10 0E 1826 CALL LWRD ?0476 + 00000C02 E1 1827 POP HL + 00000C03 FD 7E 0A 1828 LD A,(IY+10) + 00000C06 E6 22 1829 AND 34 + 00000C08 6F 1830 LD L,A + 00000C09 26 00 1831 LD H,0 + 00000C0B 3E 22 1832 LD A,34 + 00000C0D AD 1833 XOR L + 00000C0E 20 12 1834 JR NZ,?0128 + 00000C10 FD 4E 10 1835 LD C,(IY+16) + 00000C13 44 1836 LD B,H + 00000C14 DD 6E 0A 1837 LD L,(IX+10) + 00000C17 DD 66 0B 1838 LD H,(IX+11) + 00000C1A ED 42 1839 SBC HL,BC + 00000C1C 20 04 1840 JR NZ,?0128 + 00000C1E 1841 ?0130: + 00000C1E 1842 ?0129: + 00000C1E 1843 ?0127: + 00000C1E FD 21 00 00 1844 LD IY,0 + 00000C22 1845 ?0128: + 00000C22 1846 ?0126: + 00000C22 FD E5 1847 PUSH IY + 00000C24 E1 1848 POP HL + 00000C25 7D 1849 LD A,L + 00000C26 B4 1850 OR H + 00000C27 28 B7 1851 JR Z,?0123 + 00000C29 1852 ?0131: + 00000C29 FD 6E 13 1853 LD L,(IY+19) + 00000C2C FD 66 14 1854 LD H,(IY+20) + 00000C2F 18 AC 1855 JR ?0358 + 00000C31 1856 ?0132: + 00000C31 1857 ?0122: + 00000C31 C3 FA 0D 1858 JP LWRD ?0161 + 00000C34 1859 ?0133: + 00000C34 DD 6E 02 1860 LD L,(IX+2) + 00000C37 DD 66 03 1861 LD H,(IX+3) + 00000C3A E5 1862 PUSH HL + 00000C3B FD E1 1863 POP IY + 00000C3D 21 0A 00 1864 LD HL,10 + 00000C40 DD 4E 02 1865 LD C,(IX+2) + 00000C43 DD 46 03 1866 LD B,(IX+3) + 00000C46 09 1867 ADD HL,BC + 00000C47 CB 46 1868 BIT 0,(HL) + 00000C49 28 21 1869 JR Z,?0141 + 00000C4B 1870 ?0134: + 00000C4B FD CB 0A 6E 1871 BIT 5,(IY+10) + 00000C4F 28 1B 1872 JR Z,?0141 + 00000C51 FD 4E 10 1873 LD C,(IY+16) + 00000C54 47 1874 LD B,A + 00000C55 DD 6E 0A 1875 LD L,(IX+10) + 00000C58 DD 66 0B 1876 LD H,(IX+11) + 00000C5B A7 1877 AND A + 00000C5C ED 42 1878 SBC HL,BC + 00000C5E 20 0C 1879 JR NZ,?0141 + 00000C60 1880 ?0139: + 00000C60 1881 ?0138: + 00000C60 1882 ?0136: + 00000C60 FD 6E 26 1883 LD L,(IY+38) + 00000C63 FD 66 27 1884 LD H,(IY+39) + 00000C66 FD E5 1885 PUSH IY + 00000C68 D1 1886 POP DE + 00000C69 CD 00 0E 1887 CALL LWRD ?0450 + 00000C6C 1888 ?0140: + 00000C6C 1889 ?0141: + 00000C6C 1890 ?0137: + 00000C6C 1891 ?0135: + 00000C6C 1892 ?0142: + 00000C6C 1893 ?0143: + 00000C6C C3 FA 0D 1894 JP LWRD ?0161 + 00000C6F 1895 ?0144: + 00000C6F DD 5E 02 1896 LD E,(IX+2) + 00000C72 4B 1897 LD C,E + 00000C73 DD 56 03 1898 LD D,(IX+3) + 00000C76 42 1899 LD B,D + 00000C77 21 1A 00 1900 LD HL,26 + 00000C7A CD FF 0D 1901 CALL LWRD ?0451 + 00000C7D C3 FA 0D 1902 JP LWRD ?0161 + 00000C80 1903 ?0145: + 00000C80 21 0A 00 1904 LD HL,10 + 00000C83 DD 4E 02 1905 LD C,(IX+2) + 00000C86 DD 46 03 1906 LD B,(IX+3) + 00000C89 09 1907 ADD HL,BC + 00000C8A 7E 1908 LD A,(HL) + 00000C8B E6 FC 1909 AND 252 + 00000C8D 77 1910 LD (HL),A + 00000C8E 21 2E 00 1911 LD HL,46 + 00000C91 39 1912 ADD HL,SP + 00000C92 E5 1913 PUSH HL + 00000C93 2B 1914 DEC HL + 00000C94 2B 1915 DEC HL + 00000C95 4D 1916 LD C,L + 00000C96 44 1917 LD B,H + 00000C97 DD 5E 02 1918 LD E,(IX+2) + 00000C9A DD 56 03 1919 LD D,(IX+3) + 00000C9D CD 26 0E 1920 CALL LWRD ?0477 + 00000CA0 E1 1921 POP HL + 00000CA1 21 08 00 1922 LD HL,8 + 00000CA4 DD 4E 02 1923 LD C,(IX+2) + 00000CA7 DD 46 03 1924 LD B,(IX+3) + 00000CAA 09 1925 ADD HL,BC + 00000CAB 5E 1926 LD E,(HL) + 00000CAC 23 1927 INC HL + 00000CAD 56 1928 LD D,(HL) + 00000CAE D5 1929 PUSH DE + 00000CAF 21 06 00 1930 LD HL,6 + 00000CB2 09 1931 ADD HL,BC + 00000CB3 5E 1932 LD E,(HL) + 00000CB4 23 1933 INC HL + 00000CB5 56 1934 LD D,(HL) + 00000CB6 D5 1935 PUSH DE + 00000CB7 DD 6E FC 1936 LD L,(IX-4) + 00000CBA DD 66 FD 1937 LD H,(IX-3) + 00000CBD E5 1938 PUSH HL + 00000CBE DD 4E FA 1939 LD C,(IX-6) + 00000CC1 DD 46 FB 1940 LD B,(IX-5) + 00000CC4 11 00 00 1941 LD DE,0 + 00000CC7 CD 8D 03 1942 CALL LWRD ?0484 + 00000CCA E1 1943 POP HL + 00000CCB E1 1944 POP HL + 00000CCC E1 1945 POP HL + 00000CCD 21 00 00 1946 LD HL,0 + 00000CD0 E5 1947 PUSH HL + 00000CD1 2E 11 1948 LD L,17 + 00000CD3 DD 5E 02 1949 LD E,(IX+2) + 00000CD6 DD 56 03 1950 LD D,(IX+3) + 00000CD9 19 1951 ADD HL,DE + 00000CDA 5E 1952 LD E,(HL) + 00000CDB 23 1953 INC HL + 00000CDC 56 1954 LD D,(HL) + 00000CDD 21 11 00 1955 LD HL,17 + 00000CE0 DD 4E 02 1956 LD C,(IX+2) + 00000CE3 DD 46 03 1957 LD B,(IX+3) + 00000CE6 09 1958 ADD HL,BC + 00000CE7 46 1959 LD B,(HL) + 00000CE8 23 1960 INC HL + 00000CE9 66 1961 LD H,(HL) + 00000CEA 68 1962 LD L,B + 00000CEB 01 17 00 1963 LD BC,23 + 00000CEE 09 1964 ADD HL,BC + 00000CEF 4E 1965 LD C,(HL) + 00000CF0 23 1966 INC HL + 00000CF1 46 1967 LD B,(HL) + 00000CF2 23 1968 INC HL + 00000CF3 7E 1969 LD A,(HL) + 00000CF4 69 1970 LD L,C + 00000CF5 60 1971 LD H,B + 00000CF6 01 03 01 1972 LD BC,259 + 00000CF9 18 29 1973 JR ?0357 + 00000CFB 1974 ?0146: + 00000CFB 21 11 00 1975 LD HL,17 + 00000CFE DD 4E 02 1976 LD C,(IX+2) + 00000D01 DD 46 03 1977 LD B,(IX+3) + 00000D04 09 1978 ADD HL,BC + 00000D05 56 1979 LD D,(HL) + 00000D06 23 1980 INC HL + 00000D07 66 1981 LD H,(HL) + 00000D08 6A 1982 LD L,D + 00000D09 E5 1983 PUSH HL + 00000D0A FD E1 1984 POP IY + 00000D0C 59 1985 LD E,C + 00000D0D 50 1986 LD D,B + 00000D0E CD 1E 0A 1987 CALL LWRD ?0467 + 00000D11 21 00 00 1988 LD HL,0 + 00000D14 E5 1989 PUSH HL + 00000D15 01 03 01 1990 LD BC,259 + 00000D18 FD E5 1991 PUSH IY + 00000D1A D1 1992 POP DE + 00000D1B FD 7E 19 1993 LD A,(IY+25) + 00000D1E FD 6E 17 1994 LD L,(IY+23) + 00000D21 FD 66 18 1995 LD H,(IY+24) + 00000D24 1996 ?0357: + 00000D24 C3 F6 0D 1997 JP LWRD ?0356 + 00000D27 1998 ?0147: + 00000D27 21 15 00 1999 LD HL,21 + 00000D2A DD 4E 02 2000 LD C,(IX+2) + 00000D2D DD 46 03 2001 LD B,(IX+3) + 00000D30 09 2002 ADD HL,BC + 00000D31 46 2003 LD B,(HL) + 00000D32 23 2004 INC HL + 00000D33 66 2005 LD H,(HL) + 00000D34 68 2006 LD L,B + 00000D35 2007 ?0355: + 00000D35 E5 2008 PUSH HL + 00000D36 FD E1 2009 POP IY + 00000D38 2010 ?0149: + 00000D38 7D 2011 LD A,L + 00000D39 B4 2012 OR H + 00000D3A 28 29 2013 JR Z,?0148 + 00000D3C 2014 ?0150: + 00000D3C DD 6E 0A 2015 LD L,(IX+10) + 00000D3F DD 66 0B 2016 LD H,(IX+11) + 00000D42 FD E5 2017 PUSH IY + 00000D44 C1 2018 POP BC + 00000D45 ED 42 2019 SBC HL,BC + 00000D47 28 14 2020 JR Z,?0152 + 00000D49 FD CB 0A 5E 2021 BIT 3,(IY+10) + 00000D4D 28 0E 2022 JR Z,?0152 + 00000D4F 2023 ?0154: + 00000D4F 2024 ?0153: + 00000D4F 2025 ?0151: + 00000D4F DD 6E 0A 2026 LD L,(IX+10) + 00000D52 DD 66 0B 2027 LD H,(IX+11) + 00000D55 E5 2028 PUSH HL + 00000D56 01 03 02 2029 LD BC,515 + 00000D59 CD 10 0E 2030 CALL LWRD ?0476 + 00000D5C E1 2031 POP HL + 00000D5D 2032 ?0152: + 00000D5D FD 6E 13 2033 LD L,(IY+19) + 00000D60 FD 66 14 2034 LD H,(IY+20) + 00000D63 18 D0 2035 JR ?0355 + 00000D65 2036 ?0148: + 00000D65 C3 FA 0D 2037 JP LWRD ?0161 + 00000D68 2038 ?0155: + 00000D68 21 11 00 2039 LD HL,17 + 00000D6B DD 4E 02 2040 LD C,(IX+2) + 00000D6E DD 46 03 2041 LD B,(IX+3) + 00000D71 09 2042 ADD HL,BC + 00000D72 7E 2043 LD A,(HL) + 00000D73 23 2044 INC HL + 00000D74 B6 2045 OR (HL) + 00000D75 20 0E 2046 JR NZ,?0157 + 00000D77 2047 ?0156: + 00000D77 21 08 00 2048 LD HL,8 + 00000D7A ED 4B 00 00 2049 LD BC,(global) + 00000D7E 09 2050 ADD HL,BC + 00000D7F 36 01 2051 LD (HL),1 + 00000D81 23 2052 INC HL + 00000D82 77 2053 LD (HL),A + 00000D83 18 75 2054 JR ?0161 + 00000D85 2055 ?0157: + 00000D85 21 0A 00 2056 LD HL,10 + 00000D88 09 2057 ADD HL,BC + 00000D89 23 2058 INC HL + 00000D8A CB 6E 2059 BIT 5,(HL) + 00000D8C 20 28 2060 JR NZ,?0160 + 00000D8E 2061 ?0159: + 00000D8E DD 6E 0A 2062 LD L,(IX+10) + 00000D91 DD 66 0B 2063 LD H,(IX+11) + 00000D94 E5 2064 PUSH HL + 00000D95 21 11 00 2065 LD HL,17 + 00000D98 59 2066 LD E,C + 00000D99 50 2067 LD D,B + 00000D9A 19 2068 ADD HL,DE + 00000D9B 5E 2069 LD E,(HL) + 00000D9C 23 2070 INC HL + 00000D9D 56 2071 LD D,(HL) + 00000D9E 21 11 00 2072 LD HL,17 + 00000DA1 09 2073 ADD HL,BC + 00000DA2 46 2074 LD B,(HL) + 00000DA3 23 2075 INC HL + 00000DA4 66 2076 LD H,(HL) + 00000DA5 68 2077 LD L,B + 00000DA6 01 17 00 2078 LD BC,23 + 00000DA9 09 2079 ADD HL,BC + 00000DAA 4E 2080 LD C,(HL) + 00000DAB 23 2081 INC HL + 00000DAC 46 2082 LD B,(HL) + 00000DAD 23 2083 INC HL + 00000DAE 7E 2084 LD A,(HL) + 00000DAF 69 2085 LD L,C + 00000DB0 60 2086 LD H,B + 00000DB1 01 01 05 2087 LD BC,1281 + 00000DB4 18 40 2088 JR ?0356 + 00000DB6 2089 ?0160: + 00000DB6 21 11 00 2090 LD HL,17 + 00000DB9 09 2091 ADD HL,BC + 00000DBA 56 2092 LD D,(HL) + 00000DBB 23 2093 INC HL + 00000DBC 66 2094 LD H,(HL) + 00000DBD 6A 2095 LD L,D + 00000DBE E5 2096 PUSH HL + 00000DBF FD E1 2097 POP IY + 00000DC1 11 0A 00 2098 LD DE,10 + 00000DC4 19 2099 ADD HL,DE + 00000DC5 7E 2100 LD A,(HL) + 00000DC6 F6 03 2101 OR 3 + 00000DC8 77 2102 LD (HL),A + 00000DC9 6A 2103 LD L,D + 00000DCA 62 2104 LD H,D + 00000DCB E5 2105 PUSH HL + 00000DCC 23 2106 INC HL + 00000DCD E5 2107 PUSH HL + 00000DCE 4A 2108 LD C,D + 00000DCF 42 2109 LD B,D + 00000DD0 FD E5 2110 PUSH IY + 00000DD2 D1 2111 POP DE + 00000DD3 3E 45 2112 LD A,BYTE3 Component_changestate_children + 00000DD5 21 45 0A 2113 LD HL,LWRD Component_changestate_children + 00000DD8 CD 00 00 2114 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000DDB E1 2115 POP HL + 00000DDC E1 2116 POP HL + 00000DDD 21 00 00 2117 LD HL,0 + 00000DE0 E5 2118 PUSH HL + 00000DE1 DD 5E 02 2119 LD E,(IX+2) + 00000DE4 4B 2120 LD C,E + 00000DE5 DD 56 03 2121 LD D,(IX+3) + 00000DE8 42 2122 LD B,D + 00000DE9 2E 17 2123 LD L,23 + 00000DEB 09 2124 ADD HL,BC + 00000DEC 4E 2125 LD C,(HL) + 00000DED 23 2126 INC HL + 00000DEE 46 2127 LD B,(HL) + 00000DEF 23 2128 INC HL + 00000DF0 7E 2129 LD A,(HL) + 00000DF1 69 2130 LD L,C + 00000DF2 60 2131 LD H,B + 00000DF3 01 05 01 2132 LD BC,261 + 00000DF6 2133 ?0356: + 00000DF6 CD 00 00 2134 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000DF9 E1 2135 POP HL + 00000DFA 2136 ?0161: + 00000DFA 2137 ?0158: + 00000DFA 2138 ?0114: + 00000DFA FD E1 2139 POP IY + 00000DFC C3 00 00 2140 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00000DFF 2141 ?0451: + 00000DFF 09 2142 ADD HL,BC + 00000E00 2143 ?0450: + 00000E00 4E 2144 LD C,(HL) + 00000E01 23 2145 INC HL + 00000E02 46 2146 LD B,(HL) + 00000E03 23 2147 INC HL + 00000E04 7E 2148 LD A,(HL) + 00000E05 69 2149 LD L,C + 00000E06 60 2150 LD H,B + 00000E07 C3 00 00 2151 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000E0A 2152 ?0475: + 00000E0A DD 4E 04 2153 LD C,(IX+4) + 00000E0D DD 46 05 2154 LD B,(IX+5) + 00000E10 2155 ?0476: + 00000E10 FD E5 2156 PUSH IY + 00000E12 D1 2157 POP DE + 00000E13 FD 7E 19 2158 LD A,(IY+25) + 00000E16 FD 6E 17 2159 LD L,(IY+23) + 00000E19 FD 66 18 2160 LD H,(IY+24) + 00000E1C C3 00 00 2161 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000E1F 2162 ?0478: + 00000E1F 23 2163 INC HL + 00000E20 23 2164 INC HL + 00000E21 2165 ?0479: + 00000E21 4D 2166 LD C,L + 00000E22 44 2167 LD B,H + 00000E23 DD E5 2168 PUSH IX + 00000E25 D1 2169 POP DE + 00000E26 2170 ?0477: + 00000E26 3E D9 2171 LD A,BYTE3 Component_findXY + 00000E28 21 D9 07 2172 LD HL,LWRD Component_findXY + 00000E2B C3 00 00 2173 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000E2E 2174 Window_paint: + 00000E2E C5 2175 PUSH BC + 00000E2F DD E5 2176 PUSH IX + 00000E31 F5 2177 PUSH AF + 00000E32 F5 2178 PUSH AF + 00000E33 D5 2179 PUSH DE + 00000E34 DD E1 2180 POP IX + 00000E36 21 02 00 2181 LD HL,2 + 00000E39 39 2182 ADD HL,SP + 00000E3A AF 2183 XOR A + 00000E3B 77 2184 LD (HL),A + 00000E3C 23 2185 INC HL + 00000E3D 77 2186 LD (HL),A + 00000E3E 2B 2187 DEC HL + 00000E3F 2B 2188 DEC HL + 00000E40 2B 2189 DEC HL + 00000E41 77 2190 LD (HL),A + 00000E42 23 2191 INC HL + 00000E43 77 2192 LD (HL),A + 00000E44 21 12 00 2193 LD HL,18 + 00000E47 ED 4B 00 00 2194 LD BC,(global) + 00000E4B 09 2195 ADD HL,BC + 00000E4C 7E 2196 LD A,(HL) + 00000E4D 23 2197 INC HL + 00000E4E 66 2198 LD H,(HL) + 00000E4F 6F 2199 LD L,A + 00000E50 46 2200 LD B,(HL) + 00000E51 23 2201 INC HL + 00000E52 66 2202 LD H,(HL) + 00000E53 68 2203 LD L,B + 00000E54 E5 2204 PUSH HL + 00000E55 21 0E 00 2205 LD HL,14 + 00000E58 19 2206 ADD HL,DE + 00000E59 4E 2207 LD C,(HL) + 00000E5A 23 2208 INC HL + 00000E5B 46 2209 LD B,(HL) + 00000E5C E1 2210 POP HL + 00000E5D A7 2211 AND A + 00000E5E ED 42 2212 SBC HL,BC + 00000E60 28 03 2213 JR Z,?0163 + 00000E62 2214 ?0162: + 00000E62 CD 67 0F 2215 CALL LWRD ?0449 + 00000E65 2216 ?0163: + 00000E65 DD CB 0A 46 2217 BIT 0,(IX+10) + 00000E69 CA 5F 0F 2218 JP Z,?0165 + 00000E6C 2219 ?0164: + 00000E6C 21 00 00 2220 LD HL,0 + 00000E6F 39 2221 ADD HL,SP + 00000E70 E5 2222 PUSH HL + 00000E71 CD 1F 0E 2223 CALL LWRD ?0478 + 00000E74 E1 2224 POP HL + 00000E75 CD CF 07 2225 CALL LWRD ?0486 + 00000E78 21 00 00 2226 LD HL,0 + 00000E7B 39 2227 ADD HL,SP + 00000E7C CD AB 0F 2228 CALL LWRD ?0472 + 00000E7F CD 00 00 2229 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000E82 DD 6E 08 2230 LD L,(IX+8) + 00000E85 DD 66 09 2231 LD H,(IX+9) + 00000E88 E5 2232 PUSH HL + 00000E89 DD 6E 06 2233 LD L,(IX+6) + 00000E8C DD 66 07 2234 LD H,(IX+7) + 00000E8F E5 2235 PUSH HL + 00000E90 21 04 00 2236 LD HL,4 + 00000E93 39 2237 ADD HL,SP + 00000E94 4E 2238 LD C,(HL) + 00000E95 23 2239 INC HL + 00000E96 46 2240 LD B,(HL) + 00000E97 C5 2241 PUSH BC + 00000E98 23 2242 INC HL + 00000E99 4E 2243 LD C,(HL) + 00000E9A 23 2244 INC HL + 00000E9B 46 2245 LD B,(HL) + 00000E9C 11 00 00 2246 LD DE,0 + 00000E9F CD 8D 03 2247 CALL LWRD ?0484 + 00000EA2 E1 2248 POP HL + 00000EA3 E1 2249 POP HL + 00000EA4 E1 2250 POP HL + 00000EA5 DD 5E 20 2251 LD E,(IX+32) + 00000EA8 DD 56 21 2252 LD D,(IX+33) + 00000EAB CD 7B 0F 2253 CALL LWRD ?0461 + 00000EAE E5 2254 PUSH HL + 00000EAF 21 02 00 2255 LD HL,2 + 00000EB2 39 2256 ADD HL,SP + 00000EB3 4E 2257 LD C,(HL) + 00000EB4 23 2258 INC HL + 00000EB5 46 2259 LD B,(HL) + 00000EB6 E1 2260 POP HL + 00000EB7 09 2261 ADD HL,BC + 00000EB8 01 04 00 2262 LD BC,4 + 00000EBB 09 2263 ADD HL,BC + 00000EBC 4D 2264 LD C,L + 00000EBD 44 2265 LD B,H + 00000EBE 21 02 00 2266 LD HL,2 + 00000EC1 39 2267 ADD HL,SP + 00000EC2 5E 2268 LD E,(HL) + 00000EC3 23 2269 INC HL + 00000EC4 56 2270 LD D,(HL) + 00000EC5 3E 5E 2271 LD A,BYTE3 Move + 00000EC7 21 5E 01 2272 LD HL,LWRD Move + 00000ECA CD 00 00 2273 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000ECD DD 5E 20 2274 LD E,(IX+32) + 00000ED0 DD 56 21 2275 LD D,(IX+33) + 00000ED3 21 12 00 2276 LD HL,18 + 00000ED6 ED 4B 00 00 2277 LD BC,(global) + 00000EDA 09 2278 ADD HL,BC + 00000EDB 7E 2279 LD A,(HL) + 00000EDC 23 2280 INC HL + 00000EDD 66 2281 LD H,(HL) + 00000EDE 6F 2282 LD L,A + 00000EDF 01 05 00 2283 LD BC,5 + 00000EE2 09 2284 ADD HL,BC + 00000EE3 4E 2285 LD C,(HL) + 00000EE4 23 2286 INC HL + 00000EE5 46 2287 LD B,(HL) + 00000EE6 23 2288 INC HL + 00000EE7 7E 2289 LD A,(HL) + 00000EE8 69 2290 LD L,C + 00000EE9 60 2291 LD H,B + 00000EEA CD BC 04 2292 CALL LWRD ?0459 + 00000EED DD 6E 08 2293 LD L,(IX+8) + 00000EF0 DD 66 09 2294 LD H,(IX+9) + 00000EF3 A7 2295 AND A + 00000EF4 ED 42 2296 SBC HL,BC + 00000EF6 01 FC FF 2297 LD BC,65532 + 00000EF9 09 2298 ADD HL,BC + 00000EFA 4D 2299 LD C,L + 00000EFB 44 2300 LD B,H + 00000EFC DD 5E 06 2301 LD E,(IX+6) + 00000EFF DD 56 07 2302 LD D,(IX+7) + 00000F02 3E D9 2303 LD A,BYTE3 DrawRectNC + 00000F04 21 D9 01 2304 LD HL,LWRD DrawRectNC + 00000F07 CD 00 00 2305 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F0A 21 00 00 2306 LD HL,0 + 00000F0D 39 2307 ADD HL,SP + 00000F0E 4E 2308 LD C,(HL) + 00000F0F 23 2309 INC HL + 00000F10 46 2310 LD B,(HL) + 00000F11 23 2311 INC HL + 00000F12 5E 2312 LD E,(HL) + 00000F13 23 2313 INC HL + 00000F14 56 2314 LD D,(HL) + 00000F15 3E 5E 2315 LD A,BYTE3 Move + 00000F17 21 5E 01 2316 LD HL,LWRD Move + 00000F1A CD 95 0F 2317 CALL LWRD ?0470 + 00000F1D CD 87 0F 2318 CALL LWRD ?0462 + 00000F20 01 05 00 2319 LD BC,5 + 00000F23 09 2320 ADD HL,BC + 00000F24 4D 2321 LD C,L + 00000F25 44 2322 LD B,H + 00000F26 DD 5E 06 2323 LD E,(IX+6) + 00000F29 DD 56 07 2324 LD D,(IX+7) + 00000F2C 3E 18 2325 LD A,BYTE3 FillRect + 00000F2E 21 18 02 2326 LD HL,LWRD FillRect + 00000F31 CD 00 00 2327 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F34 21 00 00 2328 LD HL,0 + 00000F37 39 2329 ADD HL,SP + 00000F38 4E 2330 LD C,(HL) + 00000F39 23 2331 INC HL + 00000F3A 46 2332 LD B,(HL) + 00000F3B 03 2333 INC BC + 00000F3C 03 2334 INC BC + 00000F3D 23 2335 INC HL + 00000F3E 5E 2336 LD E,(HL) + 00000F3F 23 2337 INC HL + 00000F40 56 2338 LD D,(HL) + 00000F41 13 2339 INC DE + 00000F42 13 2340 INC DE + 00000F43 3E 5E 2341 LD A,BYTE3 Move + 00000F45 21 5E 01 2342 LD HL,LWRD Move + 00000F48 CD 00 00 2343 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F4B DD 5E 20 2344 LD E,(IX+32) + 00000F4E DD 56 21 2345 LD D,(IX+33) + 00000F51 CD 31 01 2346 CALL LWRD ?0452 + 00000F54 DD E5 2347 PUSH IX + 00000F56 D1 2348 POP DE + 00000F57 3E 93 2349 LD A,BYTE3 Component_paint + 00000F59 21 93 07 2350 LD HL,LWRD Component_paint + 00000F5C CD 00 00 2351 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F5F 2352 ?0165: + 00000F5F E1 2353 POP HL + 00000F60 E1 2354 POP HL + 00000F61 DD E1 2355 POP IX + 00000F63 C1 2356 POP BC + 00000F64 C3 00 00 2357 JP LWRD ?BANK_FAST_LEAVE_L08 + 00000F67 2358 ?0449: + 00000F67 DD 5E 0E 2359 LD E,(IX+14) + 00000F6A DD 56 0F 2360 LD D,(IX+15) + 00000F6D 3E 40 2361 LD A,BYTE3 setCurrentFont + 00000F6F 21 40 04 2362 LD HL,LWRD setCurrentFont + 00000F72 C3 00 00 2363 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000F75 2364 ?0463: + 00000F75 FD 5E 20 2365 LD E,(IY+32) + 00000F78 FD 56 21 2366 LD D,(IY+33) + 00000F7B 2367 ?0461: + 00000F7B 21 12 00 2368 LD HL,18 + 00000F7E ED 4B 00 00 2369 LD BC,(global) + 00000F82 09 2370 ADD HL,BC + 00000F83 7E 2371 LD A,(HL) + 00000F84 23 2372 INC HL + 00000F85 66 2373 LD H,(HL) + 00000F86 6F 2374 LD L,A + 00000F87 2375 ?0462: + 00000F87 01 05 00 2376 LD BC,5 + 00000F8A 09 2377 ADD HL,BC + 00000F8B 4E 2378 LD C,(HL) + 00000F8C 23 2379 INC HL + 00000F8D 46 2380 LD B,(HL) + 00000F8E 23 2381 INC HL + 00000F8F 7E 2382 LD A,(HL) + 00000F90 69 2383 LD L,C + 00000F91 60 2384 LD H,B + 00000F92 C3 00 00 2385 JP LWRD ?BANK_CALL_DIRECT_L08 + 00000F95 2386 ?0470: + 00000F95 CD 00 00 2387 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000F98 DD 5E 20 2388 LD E,(IX+32) + 00000F9B DD 56 21 2389 LD D,(IX+33) + 00000F9E 21 12 00 2390 LD HL,18 + 00000FA1 ED 4B 00 00 2391 LD BC,(global) + 00000FA5 09 2392 ADD HL,BC + 00000FA6 46 2393 LD B,(HL) + 00000FA7 23 2394 INC HL + 00000FA8 66 2395 LD H,(HL) + 00000FA9 68 2396 LD L,B + 00000FAA C9 2397 RET + 00000FAB 2398 ?0472: + 00000FAB 4E 2399 LD C,(HL) + 00000FAC 23 2400 INC HL + 00000FAD 46 2401 LD B,(HL) + 00000FAE 23 2402 INC HL + 00000FAF 2403 ?0473: + 00000FAF 5E 2404 LD E,(HL) + 00000FB0 23 2405 INC HL + 00000FB1 56 2406 LD D,(HL) + 00000FB2 3E 5E 2407 LD A,BYTE3 Move + 00000FB4 21 5E 01 2408 LD HL,LWRD Move + 00000FB7 CD 00 00 2409 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000FBA DD 4E 08 2410 LD C,(IX+8) + 00000FBD DD 46 09 2411 LD B,(IX+9) + 00000FC0 DD 5E 06 2412 LD E,(IX+6) + 00000FC3 DD 56 07 2413 LD D,(IX+7) + 00000FC6 3E 99 2414 LD A,BYTE3 ClearRect + 00000FC8 21 99 01 2415 LD HL,LWRD ClearRect + 00000FCB C9 2416 RET + 00000FCC 2417 Root_paint: + 00000FCC CD 00 00 2418 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00000FCF CD CF 07 2419 CALL LWRD ?0486 + 00000FD2 CD 72 03 2420 CALL LWRD ?0474 + 00000FD5 CD 00 00 2421 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000FD8 01 80 00 2422 LD BC,128 + 00000FDB 58 2423 LD E,B + 00000FDC 50 2424 LD D,B + 00000FDD 3E 9C 2425 LD A,BYTE3 GrayRect + 00000FDF 21 9C 02 2426 LD HL,LWRD GrayRect + 00000FE2 CD 00 00 2427 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00000FE5 21 80 00 2428 LD HL,128 + 00000FE8 E5 2429 PUSH HL + 00000FE9 6C 2430 LD L,H + 00000FEA E5 2431 PUSH HL + 00000FEB E5 2432 PUSH HL + 00000FEC CD 8A 03 2433 CALL LWRD ?0483 + 00000FEF E1 2434 POP HL + 00000FF0 E1 2435 POP HL + 00000FF1 E1 2436 POP HL + 00000FF2 DD 5E 02 2437 LD E,(IX+2) + 00000FF5 DD 56 03 2438 LD D,(IX+3) + 00000FF8 3E 93 2439 LD A,BYTE3 Component_paint + 00000FFA 21 93 07 2440 LD HL,LWRD Component_paint + 00000FFD CD 00 00 2441 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001000 C3 00 00 2442 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00001003 2443 Window_add: + 00001003 CD 00 00 2444 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00001006 3E 35 2445 LD A,BYTE3 Component_add + 00001008 21 35 07 2446 LD HL,LWRD Component_add + 0000100B CD 00 00 2447 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000100E C3 00 00 2448 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00001011 2449 Window_new: + 00001011 CD 00 00 2450 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00001014 00 00 2451 DEFW 0 + 00001016 FD E5 2452 PUSH IY + 00001018 DD 6E 0C 2453 LD L,(IX+12) + 0000101B DD 66 0D 2454 LD H,(IX+13) + 0000101E E5 2455 PUSH HL + 0000101F DD 6E 0A 2456 LD L,(IX+10) + 00001022 DD 66 0B 2457 LD H,(IX+11) + 00001025 E5 2458 PUSH HL + 00001026 DD 5E 02 2459 LD E,(IX+2) + 00001029 DD 56 03 2460 LD D,(IX+3) + 0000102C 3E 3E 2461 LD A,BYTE3 Component_new + 0000102E 21 3E 06 2462 LD HL,LWRD Component_new + 00001031 CD 00 00 2463 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001034 F1 2464 POP AF + 00001035 F1 2465 POP AF + 00001036 E5 2466 PUSH HL + 00001037 FD E1 2467 POP IY + 00001039 01 17 00 2468 LD BC,23 + 0000103C 09 2469 ADD HL,BC + 0000103D 36 61 2470 LD (HL),LOW(Window_handler) + 0000103F 23 2471 INC HL + 00001040 36 0B 2472 LD (HL),HIGH(Window_handler) + 00001042 23 2473 INC HL + 00001043 36 61 2474 LD (HL),BYTE3 Window_handler + 00001045 FD 36 1A 2E 2475 LD (IY+26),LOW(Window_paint) + 00001049 FD 36 1B 0E 2476 LD (IY+27),HIGH(Window_paint) + 0000104D FD 36 1C 2E 2477 LD (IY+28),BYTE3 Window_paint + 00001051 FD 36 1D 03 2478 LD (IY+29),LOW(Window_add) + 00001055 FD 36 1E 10 2479 LD (IY+30),HIGH(Window_add) + 00001059 FD 36 1F 03 2480 LD (IY+31),BYTE3 Window_add + 0000105D C3 E0 06 2481 JP LWRD ?0422 + 00001060 2482 Button_handler: + 00001060 CD 00 00 2483 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00001063 FD E5 2484 PUSH IY + 00001065 D5 2485 PUSH DE + 00001066 FD E1 2486 POP IY + 00001068 DD 6E 0A 2487 LD L,(IX+10) + 0000106B DD 66 0B 2488 LD H,(IX+11) + 0000106E E5 2489 PUSH HL + 0000106F 3E 61 2490 LD A,BYTE3 Window_handler + 00001071 21 61 0B 2491 LD HL,LWRD Window_handler + 00001074 CD 00 00 2492 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001077 E1 2493 POP HL + 00001078 3E 03 2494 LD A,3 + 0000107A DD AE 04 2495 XOR (IX+4) + 0000107D DD B6 05 2496 OR (IX+5) + 00001080 20 3E 2497 JR NZ,?0171 + 00001082 FD 4E 10 2498 LD C,(IY+16) + 00001085 47 2499 LD B,A + 00001086 DD 6E 0A 2500 LD L,(IX+10) + 00001089 DD 66 0B 2501 LD H,(IX+11) + 0000108C ED 42 2502 SBC HL,BC + 0000108E 20 30 2503 JR NZ,?0171 + 00001090 FD 7E 0A 2504 LD A,(IY+10) + 00001093 E6 03 2505 AND 3 + 00001095 28 29 2506 JR Z,?0171 + 00001097 2507 ?0169: + 00001097 2508 ?0168: + 00001097 2509 ?0166: + 00001097 DD 6E 0A 2510 LD L,(IX+10) + 0000109A DD 66 0B 2511 LD H,(IX+11) + 0000109D E5 2512 PUSH HL + 0000109E FD 5E 11 2513 LD E,(IY+17) + 000010A1 FD 56 12 2514 LD D,(IY+18) + 000010A4 FD 6E 11 2515 LD L,(IY+17) + 000010A7 FD 66 12 2516 LD H,(IY+18) + 000010AA 0E 17 2517 LD C,23 + 000010AC CD ED 10 2518 CALL LWRD ?0480 + 000010AF E1 2519 POP HL + 000010B0 FD CB 0A 66 2520 BIT 4,(IY+10) + 000010B4 28 0A 2521 JR Z,?0171 + 000010B6 2522 ?0170: + 000010B6 FD 4E 10 2523 LD C,(IY+16) + 000010B9 06 00 2524 LD B,0 + 000010BB C5 2525 PUSH BC + 000010BC CD FB 10 2526 CALL LWRD ?0482 + 000010BF E1 2527 POP HL + 000010C0 2528 ?0171: + 000010C0 2529 ?0167: + 000010C0 21 01 02 2530 LD HL,513 + 000010C3 DD 4E 04 2531 LD C,(IX+4) + 000010C6 DD 46 05 2532 LD B,(IX+5) + 000010C9 A7 2533 AND A + 000010CA ED 42 2534 SBC HL,BC + 000010CC 20 0B 2535 JR NZ,?0173 + 000010CE 2536 ?0172: + 000010CE DD 6E 0A 2537 LD L,(IX+10) + 000010D1 DD 66 0B 2538 LD H,(IX+11) + 000010D4 E5 2539 PUSH HL + 000010D5 CD DE 10 2540 CALL LWRD ?0481 + 000010D8 E1 2541 POP HL + 000010D9 2542 ?0173: + 000010D9 FD E1 2543 POP IY + 000010DB C3 00 00 2544 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000010DE 2545 ?0481: + 000010DE FD 5E 11 2546 LD E,(IY+17) + 000010E1 FD 56 12 2547 LD D,(IY+18) + 000010E4 FD 6E 11 2548 LD L,(IY+17) + 000010E7 FD 66 12 2549 LD H,(IY+18) + 000010EA 01 17 00 2550 LD BC,23 + 000010ED 2551 ?0480: + 000010ED 09 2552 ADD HL,BC + 000010EE 4E 2553 LD C,(HL) + 000010EF 23 2554 INC HL + 000010F0 46 2555 LD B,(HL) + 000010F1 23 2556 INC HL + 000010F2 7E 2557 LD A,(HL) + 000010F3 69 2558 LD L,C + 000010F4 60 2559 LD H,B + 000010F5 01 01 02 2560 LD BC,513 + 000010F8 C3 00 00 2561 JP LWRD ?BANK_CALL_DIRECT_L08 + 000010FB 2562 ?0482: + 000010FB FD 5E 11 2563 LD E,(IY+17) + 000010FE FD 56 12 2564 LD D,(IY+18) + 00001101 FD 6E 11 2565 LD L,(IY+17) + 00001104 FD 66 12 2566 LD H,(IY+18) + 00001107 0E 17 2567 LD C,23 + 00001109 09 2568 ADD HL,BC + 0000110A 4E 2569 LD C,(HL) + 0000110B 23 2570 INC HL + 0000110C 46 2571 LD B,(HL) + 0000110D 23 2572 INC HL + 0000110E 7E 2573 LD A,(HL) + 0000110F 69 2574 LD L,C + 00001110 60 2575 LD H,B + 00001111 01 04 01 2576 LD BC,260 + 00001114 C3 00 00 2577 JP LWRD ?BANK_CALL_DIRECT_L08 + 00001117 2578 Button_drawtext: + 00001117 CD 00 00 2579 CALL LWRD ?ENT_PARM_DIRECT_L09 + 0000111A FD E5 2580 PUSH IY + 0000111C D5 2581 PUSH DE + 0000111D FD E1 2582 POP IY + 0000111F 21 0A 00 2583 LD HL,10 + 00001122 19 2584 ADD HL,DE + 00001123 CB 76 2585 BIT 6,(HL) + 00001125 28 53 2586 JR Z,?0175 + 00001127 2587 ?0174: + 00001127 FD 5E 08 2588 LD E,(IY+8) + 0000112A FD 56 09 2589 LD D,(IY+9) + 0000112D 01 02 00 2590 LD BC,2 + 00001130 CD 00 00 2591 CALL LWRD ?SS_DIV_L02 + 00001133 DD 6E 0A 2592 LD L,(IX+10) + 00001136 DD 66 0B 2593 LD H,(IX+11) + 00001139 19 2594 ADD HL,DE + 0000113A E5 2595 PUSH HL + 0000113B FD 5E 20 2596 LD E,(IY+32) + 0000113E FD 56 21 2597 LD D,(IY+33) + 00001141 21 12 00 2598 LD HL,18 + 00001144 ED 4B 00 00 2599 LD BC,(global) + 00001148 09 2600 ADD HL,BC + 00001149 7E 2601 LD A,(HL) + 0000114A 23 2602 INC HL + 0000114B 66 2603 LD H,(HL) + 0000114C 6F 2604 LD L,A + 0000114D CD 85 04 2605 CALL LWRD ?0453 + 00001150 C1 2606 POP BC + 00001151 CD 00 00 2607 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001154 FD 5E 20 2608 LD E,(IY+32) + 00001157 FD 56 21 2609 LD D,(IY+33) + 0000115A CD 31 01 2610 CALL LWRD ?0452 + 0000115D CD 75 0F 2611 CALL LWRD ?0463 + 00001160 29 2612 ADD HL,HL + 00001161 CD A1 11 2613 CALL LWRD ?0489 + 00001164 C5 2614 PUSH BC + 00001165 FD 5E 22 2615 LD E,(IY+34) + 00001168 FD 56 23 2616 LD D,(IY+35) + 0000116B CD 79 04 2617 CALL LWRD ?0454 + 0000116E C1 2618 POP BC + 0000116F CD 00 00 2619 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001172 FD 5E 22 2620 LD E,(IY+34) + 00001175 FD 56 23 2621 LD D,(IY+35) + 00001178 18 1A 2622 JR ?0360 + 0000117A 2623 ?0175: + 0000117A CD 75 0F 2624 CALL LWRD ?0463 + 0000117D CD A1 11 2625 CALL LWRD ?0489 + 00001180 C5 2626 PUSH BC + 00001181 FD 5E 20 2627 LD E,(IY+32) + 00001184 FD 56 21 2628 LD D,(IY+33) + 00001187 CD 79 04 2629 CALL LWRD ?0454 + 0000118A C1 2630 POP BC + 0000118B CD 00 00 2631 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000118E FD 5E 20 2632 LD E,(IY+32) + 00001191 FD 56 21 2633 LD D,(IY+33) + 00001194 2634 ?0360: + 00001194 3E DE 2635 LD A,BYTE3 Text + 00001196 21 DE 02 2636 LD HL,LWRD Text + 00001199 2637 ?0431: + 00001199 CD 00 00 2638 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000119C 2639 ?0176: + 0000119C FD E1 2640 POP IY + 0000119E C3 00 00 2641 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000011A1 2642 ?0489: + 000011A1 FD 4E 08 2643 LD C,(IY+8) + 000011A4 FD 46 09 2644 LD B,(IY+9) + 000011A7 09 2645 ADD HL,BC + 000011A8 EB 2646 EX DE,HL + 000011A9 01 02 00 2647 LD BC,2 + 000011AC CD 00 00 2648 CALL LWRD ?SS_DIV_L02 + 000011AF DD 6E 0A 2649 LD L,(IX+10) + 000011B2 DD 66 0B 2650 LD H,(IX+11) + 000011B5 19 2651 ADD HL,DE + 000011B6 4D 2652 LD C,L + 000011B7 44 2653 LD B,H + 000011B8 03 2654 INC BC + 000011B9 C9 2655 RET + 000011BA 2656 Button_paint: + 000011BA C5 2657 PUSH BC + 000011BB DD E5 2658 PUSH IX + 000011BD F5 2659 PUSH AF + 000011BE F5 2660 PUSH AF + 000011BF D5 2661 PUSH DE + 000011C0 DD E1 2662 POP IX + 000011C2 21 02 00 2663 LD HL,2 + 000011C5 39 2664 ADD HL,SP + 000011C6 AF 2665 XOR A + 000011C7 77 2666 LD (HL),A + 000011C8 23 2667 INC HL + 000011C9 77 2668 LD (HL),A + 000011CA 2B 2669 DEC HL + 000011CB 2B 2670 DEC HL + 000011CC 2B 2671 DEC HL + 000011CD 77 2672 LD (HL),A + 000011CE 23 2673 INC HL + 000011CF 77 2674 LD (HL),A + 000011D0 21 12 00 2675 LD HL,18 + 000011D3 ED 4B 00 00 2676 LD BC,(global) + 000011D7 09 2677 ADD HL,BC + 000011D8 7E 2678 LD A,(HL) + 000011D9 23 2679 INC HL + 000011DA 66 2680 LD H,(HL) + 000011DB 6F 2681 LD L,A + 000011DC 46 2682 LD B,(HL) + 000011DD 23 2683 INC HL + 000011DE 66 2684 LD H,(HL) + 000011DF 68 2685 LD L,B + 000011E0 E5 2686 PUSH HL + 000011E1 21 0E 00 2687 LD HL,14 + 000011E4 19 2688 ADD HL,DE + 000011E5 4E 2689 LD C,(HL) + 000011E6 23 2690 INC HL + 000011E7 46 2691 LD B,(HL) + 000011E8 E1 2692 POP HL + 000011E9 A7 2693 AND A + 000011EA ED 42 2694 SBC HL,BC + 000011EC 28 03 2695 JR Z,?0178 + 000011EE 2696 ?0177: + 000011EE CD 67 0F 2697 CALL LWRD ?0449 + 000011F1 2698 ?0178: + 000011F1 DD CB 0A 46 2699 BIT 0,(IX+10) + 000011F5 CA 8A 12 2700 JP Z,?0180 + 000011F8 2701 ?0179: + 000011F8 21 00 00 2702 LD HL,0 + 000011FB 39 2703 ADD HL,SP + 000011FC E5 2704 PUSH HL + 000011FD CD 1F 0E 2705 CALL LWRD ?0478 + 00001200 E1 2706 POP HL + 00001201 21 00 00 2707 LD HL,0 + 00001204 39 2708 ADD HL,SP + 00001205 CD AB 0F 2709 CALL LWRD ?0472 + 00001208 CD 00 00 2710 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000120B DD 6E 08 2711 LD L,(IX+8) + 0000120E DD 66 09 2712 LD H,(IX+9) + 00001211 E5 2713 PUSH HL + 00001212 DD 6E 06 2714 LD L,(IX+6) + 00001215 DD 66 07 2715 LD H,(IX+7) + 00001218 E5 2716 PUSH HL + 00001219 21 04 00 2717 LD HL,4 + 0000121C 39 2718 ADD HL,SP + 0000121D 4E 2719 LD C,(HL) + 0000121E 23 2720 INC HL + 0000121F 46 2721 LD B,(HL) + 00001220 C5 2722 PUSH BC + 00001221 23 2723 INC HL + 00001222 4E 2724 LD C,(HL) + 00001223 23 2725 INC HL + 00001224 46 2726 LD B,(HL) + 00001225 DD CB 0A 4E 2727 BIT 1,(IX+10) + 00001229 28 07 2728 JR Z,?0182 + 0000122B DD 5E 10 2729 LD E,(IX+16) + 0000122E 16 00 2730 LD D,0 + 00001230 18 03 2731 JR ?0183 + 00001232 2732 ?0182: + 00001232 11 00 00 2733 LD DE,0 + 00001235 2734 ?0183: + 00001235 CD 8D 03 2735 CALL LWRD ?0484 + 00001238 E1 2736 POP HL + 00001239 E1 2737 POP HL + 0000123A E1 2738 POP HL + 0000123B DD 7E 0A 2739 LD A,(IX+10) + 0000123E E6 82 2740 AND 130 + 00001240 28 1C 2741 JR Z,?0185 + 00001242 DD 7E 0A 2742 LD A,(IX+10) + 00001245 E6 82 2743 AND 130 + 00001247 EE 82 2744 XOR 130 + 00001249 28 13 2745 JR Z,?0185 + 0000124B 2746 ?0187: + 0000124B 2747 ?0186: + 0000124B 2748 ?0184: + 0000124B DD 4E 08 2749 LD C,(IX+8) + 0000124E DD 46 09 2750 LD B,(IX+9) + 00001251 DD 5E 06 2751 LD E,(IX+6) + 00001254 DD 56 07 2752 LD D,(IX+7) + 00001257 3E 5A 2753 LD A,BYTE3 FillRectNC + 00001259 21 5A 02 2754 LD HL,LWRD FillRectNC + 0000125C 18 11 2755 JR ?0363 + 0000125E 2756 ?0185: + 0000125E DD 4E 08 2757 LD C,(IX+8) + 00001261 DD 46 09 2758 LD B,(IX+9) + 00001264 DD 5E 06 2759 LD E,(IX+6) + 00001267 DD 56 07 2760 LD D,(IX+7) + 0000126A 3E D9 2761 LD A,BYTE3 DrawRectNC + 0000126C 21 D9 01 2762 LD HL,LWRD DrawRectNC + 0000126F 2763 ?0363: + 0000126F CD 00 00 2764 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001272 2765 ?0188: + 00001272 21 00 00 2766 LD HL,0 + 00001275 39 2767 ADD HL,SP + 00001276 4E 2768 LD C,(HL) + 00001277 23 2769 INC HL + 00001278 46 2770 LD B,(HL) + 00001279 C5 2771 PUSH BC + 0000127A 23 2772 INC HL + 0000127B 4E 2773 LD C,(HL) + 0000127C 23 2774 INC HL + 0000127D 46 2775 LD B,(HL) + 0000127E DD E5 2776 PUSH IX + 00001280 D1 2777 POP DE + 00001281 3E 17 2778 LD A,BYTE3 Button_drawtext + 00001283 21 17 11 2779 LD HL,LWRD Button_drawtext + 00001286 CD 00 00 2780 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001289 E1 2781 POP HL + 0000128A 2782 ?0180: + 0000128A C3 5F 0F 2783 JP LWRD ?0165 + 0000128D 2784 Button_add: + 0000128D CD 00 00 2785 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00001290 C3 00 00 2786 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00001293 2787 Button_new: + 00001293 CD 00 00 2788 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00001296 00 00 2789 DEFW 0 + 00001298 FD E5 2790 PUSH IY + 0000129A DD 6E 0C 2791 LD L,(IX+12) + 0000129D DD 66 0D 2792 LD H,(IX+13) + 000012A0 E5 2793 PUSH HL + 000012A1 DD 6E 0A 2794 LD L,(IX+10) + 000012A4 DD 66 0B 2795 LD H,(IX+11) + 000012A7 E5 2796 PUSH HL + 000012A8 DD 5E 02 2797 LD E,(IX+2) + 000012AB DD 56 03 2798 LD D,(IX+3) + 000012AE 3E 3E 2799 LD A,BYTE3 Component_new + 000012B0 21 3E 06 2800 LD HL,LWRD Component_new + 000012B3 CD 00 00 2801 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000012B6 F1 2802 POP AF + 000012B7 F1 2803 POP AF + 000012B8 E5 2804 PUSH HL + 000012B9 FD E1 2805 POP IY + 000012BB 01 0A 00 2806 LD BC,10 + 000012BE 09 2807 ADD HL,BC + 000012BF 7E 2808 LD A,(HL) + 000012C0 F6 03 2809 OR 3 + 000012C2 77 2810 LD (HL),A + 000012C3 DD 46 0E 2811 LD B,(IX+14) + 000012C6 FD 70 10 2812 LD (IY+16),B + 000012C9 FD 36 17 60 2813 LD (IY+23),LOW(Button_handler) + 000012CD FD 36 18 10 2814 LD (IY+24),HIGH(Button_handler) + 000012D1 FD 36 19 60 2815 LD (IY+25),BYTE3 Button_handler + 000012D5 FD 36 1A BA 2816 LD (IY+26),LOW(Button_paint) + 000012D9 FD 36 1B 11 2817 LD (IY+27),HIGH(Button_paint) + 000012DD FD 36 1C BA 2818 LD (IY+28),BYTE3 Button_paint + 000012E1 FD 36 1D 8D 2819 LD (IY+29),LOW(Button_add) + 000012E5 FD 36 1E 12 2820 LD (IY+30),HIGH(Button_add) + 000012E9 FD 36 1F 8D 2821 LD (IY+31),BYTE3 Button_add + 000012ED C3 E0 06 2822 JP LWRD ?0422 + 000012F0 2823 ToggleButton_handler: + 000012F0 CD 00 00 2824 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000012F3 FD E5 2825 PUSH IY + 000012F5 D5 2826 PUSH DE + 000012F6 FD E1 2827 POP IY + 000012F8 DD 6E 0A 2828 LD L,(IX+10) + 000012FB DD 66 0B 2829 LD H,(IX+11) + 000012FE E5 2830 PUSH HL + 000012FF 3E 61 2831 LD A,BYTE3 Window_handler + 00001301 21 61 0B 2832 LD HL,LWRD Window_handler + 00001304 CD 00 00 2833 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001307 E1 2834 POP HL + 00001308 3E 03 2835 LD A,3 + 0000130A DD AE 04 2836 XOR (IX+4) + 0000130D DD B6 05 2837 OR (IX+5) + 00001310 20 5C 2838 JR NZ,?0194 + 00001312 FD 4E 10 2839 LD C,(IY+16) + 00001315 47 2840 LD B,A + 00001316 DD 6E 0A 2841 LD L,(IX+10) + 00001319 DD 66 0B 2842 LD H,(IX+11) + 0000131C ED 42 2843 SBC HL,BC + 0000131E 20 4E 2844 JR NZ,?0194 + 00001320 FD 7E 0A 2845 LD A,(IY+10) + 00001323 E6 03 2846 AND 3 + 00001325 28 47 2847 JR Z,?0194 + 00001327 2848 ?0192: + 00001327 2849 ?0191: + 00001327 2850 ?0189: + 00001327 FD 7E 0A 2851 LD A,(IY+10) + 0000132A EE 04 2852 XOR 4 + 0000132C FD 77 0A 2853 LD (IY+10),A + 0000132F DD 6E 0A 2854 LD L,(IX+10) + 00001332 DD 66 0B 2855 LD H,(IX+11) + 00001335 E5 2856 PUSH HL + 00001336 FD 5E 11 2857 LD E,(IY+17) + 00001339 FD 56 12 2858 LD D,(IY+18) + 0000133C FD 6E 11 2859 LD L,(IY+17) + 0000133F FD 66 12 2860 LD H,(IY+18) + 00001342 0E 17 2861 LD C,23 + 00001344 09 2862 ADD HL,BC + 00001345 4E 2863 LD C,(HL) + 00001346 23 2864 INC HL + 00001347 46 2865 LD B,(HL) + 00001348 23 2866 INC HL + 00001349 7E 2867 LD A,(HL) + 0000134A 69 2868 LD L,C + 0000134B 60 2869 LD H,B + 0000134C 01 02 02 2870 LD BC,514 + 0000134F CD 00 00 2871 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001352 E1 2872 POP HL + 00001353 21 00 00 2873 LD HL,0 + 00001356 E5 2874 PUSH HL + 00001357 01 03 01 2875 LD BC,259 + 0000135A CD 10 0E 2876 CALL LWRD ?0476 + 0000135D E1 2877 POP HL + 0000135E FD CB 0A 66 2878 BIT 4,(IY+10) + 00001362 28 0A 2879 JR Z,?0194 + 00001364 2880 ?0193: + 00001364 FD 4E 10 2881 LD C,(IY+16) + 00001367 06 00 2882 LD B,0 + 00001369 C5 2883 PUSH BC + 0000136A CD FB 10 2884 CALL LWRD ?0482 + 0000136D E1 2885 POP HL + 0000136E 2886 ?0194: + 0000136E 2887 ?0190: + 0000136E 21 01 02 2888 LD HL,513 + 00001371 DD 4E 04 2889 LD C,(IX+4) + 00001374 DD 46 05 2890 LD B,(IX+5) + 00001377 A7 2891 AND A + 00001378 ED 42 2892 SBC HL,BC + 0000137A 20 0B 2893 JR NZ,?0196 + 0000137C 2894 ?0195: + 0000137C DD 6E 0A 2895 LD L,(IX+10) + 0000137F DD 66 0B 2896 LD H,(IX+11) + 00001382 E5 2897 PUSH HL + 00001383 CD DE 10 2898 CALL LWRD ?0481 + 00001386 E1 2899 POP HL + 00001387 2900 ?0196: + 00001387 FD E1 2901 POP IY + 00001389 C3 00 00 2902 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000138C 2903 ToggleButton_paint: + 0000138C C5 2904 PUSH BC + 0000138D DD E5 2905 PUSH IX + 0000138F F5 2906 PUSH AF + 00001390 F5 2907 PUSH AF + 00001391 D5 2908 PUSH DE + 00001392 DD E1 2909 POP IX + 00001394 21 02 00 2910 LD HL,2 + 00001397 39 2911 ADD HL,SP + 00001398 AF 2912 XOR A + 00001399 77 2913 LD (HL),A + 0000139A 23 2914 INC HL + 0000139B 77 2915 LD (HL),A + 0000139C 2B 2916 DEC HL + 0000139D 2B 2917 DEC HL + 0000139E 2B 2918 DEC HL + 0000139F 77 2919 LD (HL),A + 000013A0 23 2920 INC HL + 000013A1 77 2921 LD (HL),A + 000013A2 21 12 00 2922 LD HL,18 + 000013A5 ED 4B 00 00 2923 LD BC,(global) + 000013A9 09 2924 ADD HL,BC + 000013AA 7E 2925 LD A,(HL) + 000013AB 23 2926 INC HL + 000013AC 66 2927 LD H,(HL) + 000013AD 6F 2928 LD L,A + 000013AE 46 2929 LD B,(HL) + 000013AF 23 2930 INC HL + 000013B0 66 2931 LD H,(HL) + 000013B1 68 2932 LD L,B + 000013B2 E5 2933 PUSH HL + 000013B3 21 0E 00 2934 LD HL,14 + 000013B6 19 2935 ADD HL,DE + 000013B7 4E 2936 LD C,(HL) + 000013B8 23 2937 INC HL + 000013B9 46 2938 LD B,(HL) + 000013BA E1 2939 POP HL + 000013BB A7 2940 AND A + 000013BC ED 42 2941 SBC HL,BC + 000013BE 28 03 2942 JR Z,?0198 + 000013C0 2943 ?0197: + 000013C0 CD 67 0F 2944 CALL LWRD ?0449 + 000013C3 2945 ?0198: + 000013C3 DD CB 0A 46 2946 BIT 0,(IX+10) + 000013C7 CA 75 14 2947 JP Z,?0200 + 000013CA 2948 ?0199: + 000013CA 21 00 00 2949 LD HL,0 + 000013CD 39 2950 ADD HL,SP + 000013CE E5 2951 PUSH HL + 000013CF CD 1F 0E 2952 CALL LWRD ?0478 + 000013D2 E1 2953 POP HL + 000013D3 21 00 00 2954 LD HL,0 + 000013D6 39 2955 ADD HL,SP + 000013D7 CD AB 0F 2956 CALL LWRD ?0472 + 000013DA CD 00 00 2957 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000013DD DD CB 0A 4E 2958 BIT 1,(IX+10) + 000013E1 28 36 2959 JR Z,?0202 + 000013E3 DD CB 0A 56 2960 BIT 2,(IX+10) + 000013E7 28 30 2961 JR Z,?0202 + 000013E9 2962 ?0204: + 000013E9 2963 ?0203: + 000013E9 2964 ?0201: + 000013E9 DD 4E 08 2965 LD C,(IX+8) + 000013EC DD 46 09 2966 LD B,(IX+9) + 000013EF DD 5E 06 2967 LD E,(IX+6) + 000013F2 DD 56 07 2968 LD D,(IX+7) + 000013F5 3E 5A 2969 LD A,BYTE3 FillRectNC + 000013F7 21 5A 02 2970 LD HL,LWRD FillRectNC + 000013FA CD 00 00 2971 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000013FD DD 6E 08 2972 LD L,(IX+8) + 00001400 DD 66 09 2973 LD H,(IX+9) + 00001403 E5 2974 PUSH HL + 00001404 DD 6E 06 2975 LD L,(IX+6) + 00001407 DD 66 07 2976 LD H,(IX+7) + 0000140A E5 2977 PUSH HL + 0000140B 21 04 00 2978 LD HL,4 + 0000140E 39 2979 ADD HL,SP + 0000140F 4E 2980 LD C,(HL) + 00001410 23 2981 INC HL + 00001411 46 2982 LD B,(HL) + 00001412 C5 2983 PUSH BC + 00001413 23 2984 INC HL + 00001414 4E 2985 LD C,(HL) + 00001415 23 2986 INC HL + 00001416 46 2987 LD B,(HL) + 00001417 18 34 2988 JR ?0367 + 00001419 2989 ?0202: + 00001419 DD 4E 08 2990 LD C,(IX+8) + 0000141C DD 46 09 2991 LD B,(IX+9) + 0000141F DD 5E 06 2992 LD E,(IX+6) + 00001422 DD 56 07 2993 LD D,(IX+7) + 00001425 3E D9 2994 LD A,BYTE3 DrawRectNC + 00001427 21 D9 01 2995 LD HL,LWRD DrawRectNC + 0000142A CD 00 00 2996 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000142D DD 6E 08 2997 LD L,(IX+8) + 00001430 DD 66 09 2998 LD H,(IX+9) + 00001433 E5 2999 PUSH HL + 00001434 DD 6E 06 3000 LD L,(IX+6) + 00001437 DD 66 07 3001 LD H,(IX+7) + 0000143A E5 3002 PUSH HL + 0000143B 21 04 00 3003 LD HL,4 + 0000143E 39 3004 ADD HL,SP + 0000143F 4E 3005 LD C,(HL) + 00001440 23 3006 INC HL + 00001441 46 3007 LD B,(HL) + 00001442 C5 3008 PUSH BC + 00001443 23 3009 INC HL + 00001444 4E 3010 LD C,(HL) + 00001445 23 3011 INC HL + 00001446 46 3012 LD B,(HL) + 00001447 DD CB 0A 4E 3013 BIT 1,(IX+10) + 0000144B 28 07 3014 JR Z,?0207 + 0000144D 3015 ?0367: + 0000144D DD 5E 10 3016 LD E,(IX+16) + 00001450 16 00 3017 LD D,0 + 00001452 18 03 3018 JR ?0208 + 00001454 3019 ?0207: + 00001454 11 00 00 3020 LD DE,0 + 00001457 3021 ?0208: + 00001457 CD 8D 03 3022 CALL LWRD ?0484 + 0000145A E1 3023 POP HL + 0000145B E1 3024 POP HL + 0000145C E1 3025 POP HL + 0000145D 3026 ?0205: + 0000145D 21 00 00 3027 LD HL,0 + 00001460 39 3028 ADD HL,SP + 00001461 4E 3029 LD C,(HL) + 00001462 23 3030 INC HL + 00001463 46 3031 LD B,(HL) + 00001464 C5 3032 PUSH BC + 00001465 23 3033 INC HL + 00001466 4E 3034 LD C,(HL) + 00001467 23 3035 INC HL + 00001468 46 3036 LD B,(HL) + 00001469 DD E5 3037 PUSH IX + 0000146B D1 3038 POP DE + 0000146C 3E 17 3039 LD A,BYTE3 Button_drawtext + 0000146E 21 17 11 3040 LD HL,LWRD Button_drawtext + 00001471 CD 00 00 3041 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001474 E1 3042 POP HL + 00001475 3043 ?0200: + 00001475 C3 5F 0F 3044 JP LWRD ?0165 + 00001478 3045 ToggleButton_new: + 00001478 CD 00 00 3046 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000147B 00 00 3047 DEFW 0 + 0000147D FD E5 3048 PUSH IY + 0000147F DD 6E 0C 3049 LD L,(IX+12) + 00001482 DD 66 0D 3050 LD H,(IX+13) + 00001485 E5 3051 PUSH HL + 00001486 DD 6E 0A 3052 LD L,(IX+10) + 00001489 DD 66 0B 3053 LD H,(IX+11) + 0000148C E5 3054 PUSH HL + 0000148D DD 5E 02 3055 LD E,(IX+2) + 00001490 DD 56 03 3056 LD D,(IX+3) + 00001493 3E 3E 3057 LD A,BYTE3 Component_new + 00001495 21 3E 06 3058 LD HL,LWRD Component_new + 00001498 CD 00 00 3059 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000149B F1 3060 POP AF + 0000149C F1 3061 POP AF + 0000149D E5 3062 PUSH HL + 0000149E FD E1 3063 POP IY + 000014A0 01 0A 00 3064 LD BC,10 + 000014A3 09 3065 ADD HL,BC + 000014A4 7E 3066 LD A,(HL) + 000014A5 F6 07 3067 OR 7 + 000014A7 77 3068 LD (HL),A + 000014A8 DD 46 0E 3069 LD B,(IX+14) + 000014AB FD 70 10 3070 LD (IY+16),B + 000014AE FD 36 17 F0 3071 LD (IY+23),LOW(ToggleButton_handler) + 000014B2 FD 36 18 12 3072 LD (IY+24),HIGH(ToggleButton_handler) + 000014B6 FD 36 19 F0 3073 LD (IY+25),BYTE3 ToggleButton_handler + 000014BA FD 36 1A 8C 3074 LD (IY+26),LOW(ToggleButton_paint) + 000014BE FD 36 1B 13 3075 LD (IY+27),HIGH(ToggleButton_paint) + 000014C2 FD 36 1C 8C 3076 LD (IY+28),BYTE3 ToggleButton_paint + 000014C6 FD 36 1D 8D 3077 LD (IY+29),LOW(Button_add) + 000014CA FD 36 1E 12 3078 LD (IY+30),HIGH(Button_add) + 000014CE FD 36 1F 8D 3079 LD (IY+31),BYTE3 Button_add + 000014D2 C3 E0 06 3080 JP LWRD ?0422 + 000014D5 3081 Dialog_handler: + 000014D5 CD 00 00 3082 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000014D8 FD E5 3083 PUSH IY + 000014DA D5 3084 PUSH DE + 000014DB FD E1 3085 POP IY + 000014DD DD 6E 0A 3086 LD L,(IX+10) + 000014E0 DD 66 0B 3087 LD H,(IX+11) + 000014E3 E5 3088 PUSH HL + 000014E4 3E 61 3089 LD A,BYTE3 Window_handler + 000014E6 21 61 0B 3090 LD HL,LWRD Window_handler + 000014E9 CD 00 00 3091 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000014EC E1 3092 POP HL + 000014ED 21 01 02 3093 LD HL,513 + 000014F0 DD 4E 04 3094 LD C,(IX+4) + 000014F3 DD 46 05 3095 LD B,(IX+5) + 000014F6 A7 3096 AND A + 000014F7 ED 42 3097 SBC HL,BC + 000014F9 20 40 3098 JR NZ,?0210 + 000014FB 3E FF 3099 LD A,255 + 000014FD DD AE 0A 3100 XOR (IX+10) + 00001500 DD B6 0B 3101 OR (IX+11) + 00001503 20 36 3102 JR NZ,?0210 + 00001505 3103 ?0212: + 00001505 3104 ?0211: + 00001505 3105 ?0209: + 00001505 FD CB 0B 66 3106 BIT 4,(IY+11) + 00001509 E5 3107 PUSH HL + 0000150A 28 05 3108 JR Z,?0214 + 0000150C 3109 ?0213: + 0000150C 01 05 01 3110 LD BC,261 + 0000150F 18 03 3111 JR ?0368 + 00001511 3112 ?0214: + 00001511 01 02 01 3113 LD BC,258 + 00001514 3114 ?0368: + 00001514 CD 10 0E 3115 CALL LWRD ?0476 + 00001517 E1 3116 POP HL + 00001518 3117 ?0215: + 00001518 FD 4E 10 3118 LD C,(IY+16) + 0000151B 06 00 3119 LD B,0 + 0000151D C5 3120 PUSH BC + 0000151E FD 5E 11 3121 LD E,(IY+17) + 00001521 FD 56 12 3122 LD D,(IY+18) + 00001524 FD 6E 11 3123 LD L,(IY+17) + 00001527 FD 66 12 3124 LD H,(IY+18) + 0000152A 0E 17 3125 LD C,23 + 0000152C 09 3126 ADD HL,BC + 0000152D 4E 3127 LD C,(HL) + 0000152E 23 3128 INC HL + 0000152F 46 3129 LD B,(HL) + 00001530 23 3130 INC HL + 00001531 7E 3131 LD A,(HL) + 00001532 69 3132 LD L,C + 00001533 60 3133 LD H,B + 00001534 01 01 03 3134 LD BC,769 + 00001537 CD 00 00 3135 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000153A E1 3136 POP HL + 0000153B 3137 ?0210: + 0000153B 21 01 02 3138 LD HL,513 + 0000153E DD 4E 04 3139 LD C,(IX+4) + 00001541 DD 46 05 3140 LD B,(IX+5) + 00001544 A7 3141 AND A + 00001545 ED 42 3142 SBC HL,BC + 00001547 20 40 3143 JR NZ,?0217 + 00001549 3E FE 3144 LD A,254 + 0000154B DD AE 0A 3145 XOR (IX+10) + 0000154E DD B6 0B 3146 OR (IX+11) + 00001551 20 36 3147 JR NZ,?0217 + 00001553 3148 ?0219: + 00001553 3149 ?0218: + 00001553 3150 ?0216: + 00001553 FD CB 0B 66 3151 BIT 4,(IY+11) + 00001557 E5 3152 PUSH HL + 00001558 28 05 3153 JR Z,?0221 + 0000155A 3154 ?0220: + 0000155A 01 05 01 3155 LD BC,261 + 0000155D 18 03 3156 JR ?0369 + 0000155F 3157 ?0221: + 0000155F 01 02 01 3158 LD BC,258 + 00001562 3159 ?0369: + 00001562 CD 10 0E 3160 CALL LWRD ?0476 + 00001565 E1 3161 POP HL + 00001566 3162 ?0222: + 00001566 FD 4E 10 3163 LD C,(IY+16) + 00001569 06 00 3164 LD B,0 + 0000156B C5 3165 PUSH BC + 0000156C FD 5E 11 3166 LD E,(IY+17) + 0000156F FD 56 12 3167 LD D,(IY+18) + 00001572 FD 6E 11 3168 LD L,(IY+17) + 00001575 FD 66 12 3169 LD H,(IY+18) + 00001578 0E 17 3170 LD C,23 + 0000157A 09 3171 ADD HL,BC + 0000157B 4E 3172 LD C,(HL) + 0000157C 23 3173 INC HL + 0000157D 46 3174 LD B,(HL) + 0000157E 23 3175 INC HL + 0000157F 7E 3176 LD A,(HL) + 00001580 69 3177 LD L,C + 00001581 60 3178 LD H,B + 00001582 01 02 03 3179 LD BC,770 + 00001585 CD 00 00 3180 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001588 E1 3181 POP HL + 00001589 3182 ?0217: + 00001589 FD E1 3183 POP IY + 0000158B C3 00 00 3184 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000158E 3185 Dialog_new: + 0000158E CD 00 00 3186 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00001591 FE FF 3187 DEFW -2 + 00001593 FD E5 3188 PUSH IY + 00001595 DD 6E 0C 3189 LD L,(IX+12) + 00001598 DD 66 0D 3190 LD H,(IX+13) + 0000159B E5 3191 PUSH HL + 0000159C DD 6E 0A 3192 LD L,(IX+10) + 0000159F DD 66 0B 3193 LD H,(IX+11) + 000015A2 E5 3194 PUSH HL + 000015A3 DD 5E 02 3195 LD E,(IX+2) + 000015A6 DD 56 03 3196 LD D,(IX+3) + 000015A9 3E 3E 3197 LD A,BYTE3 Component_new + 000015AB 21 3E 06 3198 LD HL,LWRD Component_new + 000015AE CD 00 00 3199 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000015B1 F1 3200 POP AF + 000015B2 F1 3201 POP AF + 000015B3 E5 3202 PUSH HL + 000015B4 FD E1 3203 POP IY + 000015B6 01 0A 00 3204 LD BC,10 + 000015B9 09 3205 ADD HL,BC + 000015BA CB C6 3206 SET 0,(HL) + 000015BC DD 46 0E 3207 LD B,(IX+14) + 000015BF FD 70 10 3208 LD (IY+16),B + 000015C2 FD 36 17 D5 3209 LD (IY+23),LOW(Dialog_handler) + 000015C6 FD 36 18 14 3210 LD (IY+24),HIGH(Dialog_handler) + 000015CA FD 36 19 D5 3211 LD (IY+25),BYTE3 Dialog_handler + 000015CE FD 36 1A 2E 3212 LD (IY+26),LOW(Window_paint) + 000015D2 FD 36 1B 0E 3213 LD (IY+27),HIGH(Window_paint) + 000015D6 FD 36 1C 2E 3214 LD (IY+28),BYTE3 Window_paint + 000015DA FD 36 1D 03 3215 LD (IY+29),LOW(Window_add) + 000015DE FD 36 1E 10 3216 LD (IY+30),HIGH(Window_add) + 000015E2 FD 36 1F 03 3217 LD (IY+31),BYTE3 Window_add + 000015E6 21 FF 00 3218 LD HL,255 + 000015E9 E5 3219 PUSH HL + 000015EA 2E 14 3220 LD L,20 + 000015EC E5 3221 PUSH HL + 000015ED 2E 28 3222 LD L,40 + 000015EF E5 3223 PUSH HL + 000015F0 21 E4 FF 3224 LD HL,65508 + 000015F3 DD 4E 0C 3225 LD C,(IX+12) + 000015F6 DD 46 0D 3226 LD B,(IX+13) + 000015F9 09 3227 ADD HL,BC + 000015FA 4D 3228 LD C,L + 000015FB 44 3229 LD B,H + 000015FC 21 D0 FF 3230 LD HL,65488 + 000015FF DD 5E 0A 3231 LD E,(IX+10) + 00001602 DD 56 0B 3232 LD D,(IX+11) + 00001605 19 3233 ADD HL,DE + 00001606 EB 3234 EX DE,HL + 00001607 3E 93 3235 LD A,BYTE3 Button_new + 00001609 21 93 12 3236 LD HL,LWRD Button_new + 0000160C CD 00 00 3237 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000160F F1 3238 POP AF + 00001610 F1 3239 POP AF + 00001611 F1 3240 POP AF + 00001612 DD 75 FE 3241 LD (IX-2),L + 00001615 DD 74 FF 3242 LD (IX-1),H + 00001618 01 20 00 3243 LD BC,32 + 0000161B 09 3244 ADD HL,BC + 0000161C E5 3245 PUSH HL + 0000161D 11 03 00 3246 LD DE,3 + 00001620 CD B7 04 3247 CALL LWRD ?0460 + 00001623 E1 3248 POP HL + 00001624 71 3249 LD (HL),C + 00001625 23 3250 INC HL + 00001626 70 3251 LD (HL),B + 00001627 01 20 00 3252 LD BC,?0223 + 0000162A CD 7D 16 3253 CALL LWRD ?0471 + 0000162D CD 00 00 3254 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001630 21 FE 00 3255 LD HL,254 + 00001633 E5 3256 PUSH HL + 00001634 2E 14 3257 LD L,20 + 00001636 E5 3258 PUSH HL + 00001637 2E 28 3259 LD L,40 + 00001639 E5 3260 PUSH HL + 0000163A 21 C8 FF 3261 LD HL,65480 + 0000163D DD 4E 0C 3262 LD C,(IX+12) + 00001640 DD 46 0D 3263 LD B,(IX+13) + 00001643 09 3264 ADD HL,BC + 00001644 4D 3265 LD C,L + 00001645 44 3266 LD B,H + 00001646 21 D0 FF 3267 LD HL,65488 + 00001649 DD 5E 0A 3268 LD E,(IX+10) + 0000164C DD 56 0B 3269 LD D,(IX+11) + 0000164F 19 3270 ADD HL,DE + 00001650 EB 3271 EX DE,HL + 00001651 3E 93 3272 LD A,BYTE3 Button_new + 00001653 21 93 12 3273 LD HL,LWRD Button_new + 00001656 CD 00 00 3274 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001659 F1 3275 POP AF + 0000165A F1 3276 POP AF + 0000165B F1 3277 POP AF + 0000165C DD 75 FE 3278 LD (IX-2),L + 0000165F DD 74 FF 3279 LD (IX-1),H + 00001662 01 20 00 3280 LD BC,32 + 00001665 09 3281 ADD HL,BC + 00001666 E5 3282 PUSH HL + 00001667 11 07 00 3283 LD DE,7 + 0000166A CD B7 04 3284 CALL LWRD ?0460 + 0000166D E1 3285 POP HL + 0000166E 71 3286 LD (HL),C + 0000166F 23 3287 INC HL + 00001670 70 3288 LD (HL),B + 00001671 01 23 00 3289 LD BC,?0224 + 00001674 CD 7D 16 3290 CALL LWRD ?0471 + 00001677 CD 00 00 3291 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000167A C3 E0 06 3292 JP LWRD ?0422 + 0000167D 3293 ?0471: + 0000167D DD 5E FE 3294 LD E,(IX-2) + 00001680 DD 56 FF 3295 LD D,(IX-1) + 00001683 3E E8 3296 LD A,BYTE3 Component_setlabel + 00001685 21 E8 06 3297 LD HL,LWRD Component_setlabel + 00001688 CD 00 00 3298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000168B DD 4E FE 3299 LD C,(IX-2) + 0000168E DD 46 FF 3300 LD B,(IX-1) + 00001691 FD E5 3301 PUSH IY + 00001693 D1 3302 POP DE + 00001694 FD 7E 1F 3303 LD A,(IY+31) + 00001697 FD 6E 1D 3304 LD L,(IY+29) + 0000169A FD 66 1E 3305 LD H,(IY+30) + 0000169D C9 3306 RET + 0000169E 3307 Display_handler: + 0000169E CD 00 00 3308 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000016A1 FD E5 3309 PUSH IY + 000016A3 D5 3310 PUSH DE + 000016A4 FD E1 3311 POP IY + 000016A6 DD 6E 0A 3312 LD L,(IX+10) + 000016A9 DD 66 0B 3313 LD H,(IX+11) + 000016AC E5 3314 PUSH HL + 000016AD 3E 60 3315 LD A,BYTE3 Button_handler + 000016AF 21 60 10 3316 LD HL,LWRD Button_handler + 000016B2 CD 00 00 3317 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000016B5 E1 3318 POP HL + 000016B6 21 03 02 3319 LD HL,515 + 000016B9 DD 4E 04 3320 LD C,(IX+4) + 000016BC DD 46 05 3321 LD B,(IX+5) + 000016BF A7 3322 AND A + 000016C0 ED 42 3323 SBC HL,BC + 000016C2 20 40 3324 JR NZ,?0226 + 000016C4 FD CB 0A 5E 3325 BIT 3,(IY+10) + 000016C8 28 3A 3326 JR Z,?0226 + 000016CA 3327 ?0228: + 000016CA 3328 ?0227: + 000016CA 3329 ?0225: + 000016CA 3E 08 3330 LD A,8 + 000016CC DD AE 0A 3331 XOR (IX+10) + 000016CF DD B6 0B 3332 OR (IX+11) + 000016D2 FD 5E 20 3333 LD E,(IY+32) + 000016D5 FD 56 21 3334 LD D,(IY+33) + 000016D8 3E 00 3335 LD A,BYTE3 strlen + 000016DA 21 00 00 3336 LD HL,LWRD strlen + 000016DD 20 0D 3337 JR NZ,?0230 + 000016DF 3338 ?0229: + 000016DF CD B1 04 3339 CALL LWRD ?0458 + 000016E2 28 15 3340 JR Z,?0233 + 000016E4 3341 ?0231: + 000016E4 CD 09 17 3342 CALL LWRD ?0455 + 000016E7 2B 3343 DEC HL + 000016E8 36 00 3344 LD (HL),0 + 000016EA 3345 ?0232: + 000016EA 18 0D 3346 JR ?0233 + 000016EC 3347 ?0230: + 000016EC CD 14 17 3348 CALL LWRD ?0456 + 000016EF 23 3349 INC HL + 000016F0 36 00 3350 LD (HL),0 + 000016F2 CD 09 17 3351 CALL LWRD ?0455 + 000016F5 DD 46 0A 3352 LD B,(IX+10) + 000016F8 70 3353 LD (HL),B + 000016F9 3354 ?0233: + 000016F9 21 00 00 3355 LD HL,0 + 000016FC E5 3356 PUSH HL + 000016FD 01 03 01 3357 LD BC,259 + 00001700 CD 10 0E 3358 CALL LWRD ?0476 + 00001703 E1 3359 POP HL + 00001704 3360 ?0226: + 00001704 FD E1 3361 POP IY + 00001706 C3 00 00 3362 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00001709 3363 ?0455: + 00001709 FD 5E 20 3364 LD E,(IY+32) + 0000170C FD 56 21 3365 LD D,(IY+33) + 0000170F 3E 00 3366 LD A,BYTE3 strlen + 00001711 21 00 00 3367 LD HL,LWRD strlen + 00001714 3368 ?0456: + 00001714 CD 00 00 3369 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001717 FD 4E 20 3370 LD C,(IY+32) + 0000171A FD 46 21 3371 LD B,(IY+33) + 0000171D 09 3372 ADD HL,BC + 0000171E C9 3373 RET + 0000171F 3374 Display_paint: + 0000171F C5 3375 PUSH BC + 00001720 FD E5 3376 PUSH IY + 00001722 DD E5 3377 PUSH IX + 00001724 21 B8 FF 3378 LD HL,65464 + 00001727 39 3379 ADD HL,SP + 00001728 F9 3380 LD SP,HL + 00001729 D5 3381 PUSH DE + 0000172A DD E1 3382 POP IX + 0000172C AF 3383 XOR A + 0000172D 77 3384 LD (HL),A + 0000172E 23 3385 INC HL + 0000172F 77 3386 LD (HL),A + 00001730 23 3387 INC HL + 00001731 77 3388 LD (HL),A + 00001732 23 3389 INC HL + 00001733 77 3390 LD (HL),A + 00001734 21 12 00 3391 LD HL,18 + 00001737 ED 4B 00 00 3392 LD BC,(global) + 0000173B 09 3393 ADD HL,BC + 0000173C 7E 3394 LD A,(HL) + 0000173D 23 3395 INC HL + 0000173E 66 3396 LD H,(HL) + 0000173F 6F 3397 LD L,A + 00001740 46 3398 LD B,(HL) + 00001741 23 3399 INC HL + 00001742 66 3400 LD H,(HL) + 00001743 68 3401 LD L,B + 00001744 E5 3402 PUSH HL + 00001745 21 0E 00 3403 LD HL,14 + 00001748 19 3404 ADD HL,DE + 00001749 4E 3405 LD C,(HL) + 0000174A 23 3406 INC HL + 0000174B 46 3407 LD B,(HL) + 0000174C E1 3408 POP HL + 0000174D A7 3409 AND A + 0000174E ED 42 3410 SBC HL,BC + 00001750 28 03 3411 JR Z,?0235 + 00001752 3412 ?0234: + 00001752 CD 67 0F 3413 CALL LWRD ?0449 + 00001755 3414 ?0235: + 00001755 DD CB 0A 46 3415 BIT 0,(IX+10) + 00001759 CA 3B 18 3416 JP Z,?0250 + 0000175C 3417 ?0236: + 0000175C 21 02 00 3418 LD HL,2 + 0000175F 39 3419 ADD HL,SP + 00001760 E5 3420 PUSH HL + 00001761 2B 3421 DEC HL + 00001762 2B 3422 DEC HL + 00001763 CD 21 0E 3423 CALL LWRD ?0479 + 00001766 E1 3424 POP HL + 00001767 21 02 00 3425 LD HL,2 + 0000176A 39 3426 ADD HL,SP + 0000176B 4E 3427 LD C,(HL) + 0000176C 23 3428 INC HL + 0000176D 46 3429 LD B,(HL) + 0000176E 2B 3430 DEC HL + 0000176F 2B 3431 DEC HL + 00001770 2B 3432 DEC HL + 00001771 CD AF 0F 3433 CALL LWRD ?0473 + 00001774 CD 00 00 3434 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001777 DD 6E 08 3435 LD L,(IX+8) + 0000177A DD 66 09 3436 LD H,(IX+9) + 0000177D E5 3437 PUSH HL + 0000177E DD 6E 06 3438 LD L,(IX+6) + 00001781 DD 66 07 3439 LD H,(IX+7) + 00001784 E5 3440 PUSH HL + 00001785 21 06 00 3441 LD HL,6 + 00001788 39 3442 ADD HL,SP + 00001789 4E 3443 LD C,(HL) + 0000178A 23 3444 INC HL + 0000178B 46 3445 LD B,(HL) + 0000178C C5 3446 PUSH BC + 0000178D 2B 3447 DEC HL + 0000178E 2B 3448 DEC HL + 0000178F 2B 3449 DEC HL + 00001790 4E 3450 LD C,(HL) + 00001791 23 3451 INC HL + 00001792 46 3452 LD B,(HL) + 00001793 DD CB 0A 4E 3453 BIT 1,(IX+10) + 00001797 28 07 3454 JR Z,?0239 + 00001799 DD 5E 10 3455 LD E,(IX+16) + 0000179C 16 00 3456 LD D,0 + 0000179E 18 03 3457 JR ?0240 + 000017A0 3458 ?0239: + 000017A0 11 00 00 3459 LD DE,0 + 000017A3 3460 ?0240: + 000017A3 CD 8D 03 3461 CALL LWRD ?0484 + 000017A6 E1 3462 POP HL + 000017A7 E1 3463 POP HL + 000017A8 E1 3464 POP HL + 000017A9 DD CB 0A 7E 3465 BIT 7,(IX+10) + 000017AD DD 4E 08 3466 LD C,(IX+8) + 000017B0 DD 46 09 3467 LD B,(IX+9) + 000017B3 DD 5E 06 3468 LD E,(IX+6) + 000017B6 DD 56 07 3469 LD D,(IX+7) + 000017B9 20 07 3470 JR NZ,?0242 + 000017BB 3471 ?0241: + 000017BB 3E 5A 3472 LD A,BYTE3 FillRectNC + 000017BD 21 5A 02 3473 LD HL,LWRD FillRectNC + 000017C0 18 05 3474 JR ?0374 + 000017C2 3475 ?0242: + 000017C2 3E D9 3476 LD A,BYTE3 DrawRectNC + 000017C4 21 D9 01 3477 LD HL,LWRD DrawRectNC + 000017C7 3478 ?0374: + 000017C7 CD 95 0F 3479 CALL LWRD ?0470 + 000017CA 3480 ?0243: + 000017CA CD 87 0F 3481 CALL LWRD ?0462 + 000017CD DD 4E 08 3482 LD C,(IX+8) + 000017D0 DD 46 09 3483 LD B,(IX+9) + 000017D3 09 3484 ADD HL,BC + 000017D4 EB 3485 EX DE,HL + 000017D5 01 02 00 3486 LD BC,2 + 000017D8 CD 00 00 3487 CALL LWRD ?SS_DIV_L02 + 000017DB 69 3488 LD L,C + 000017DC 60 3489 LD H,B + 000017DD 39 3490 ADD HL,SP + 000017DE 46 3491 LD B,(HL) + 000017DF 23 3492 INC HL + 000017E0 66 3493 LD H,(HL) + 000017E1 68 3494 LD L,B + 000017E2 19 3495 ADD HL,DE + 000017E3 4D 3496 LD C,L + 000017E4 44 3497 LD B,H + 000017E5 21 00 00 3498 LD HL,0 + 000017E8 39 3499 ADD HL,SP + 000017E9 5E 3500 LD E,(HL) + 000017EA 23 3501 INC HL + 000017EB 56 3502 LD D,(HL) + 000017EC 13 3503 INC DE + 000017ED 13 3504 INC DE + 000017EE 3E 5E 3505 LD A,BYTE3 Move + 000017F0 21 5E 01 3506 LD HL,LWRD Move + 000017F3 CD 00 00 3507 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000017F6 DD CB 0B 46 3508 BIT 0,(IX+11) + 000017FA 28 36 3509 JR Z,?0245 + 000017FC 3510 ?0244: + 000017FC FD 21 00 00 3511 LD IY,0 + 00001800 3512 ?0247: + 00001800 DD 5E 20 3513 LD E,(IX+32) + 00001803 DD 56 21 3514 LD D,(IX+33) + 00001806 3E 00 3515 LD A,BYTE3 strlen + 00001808 21 00 00 3516 LD HL,LWRD strlen + 0000180B CD BC 04 3517 CALL LWRD ?0459 + 0000180E FD E5 3518 PUSH IY + 00001810 E1 3519 POP HL + 00001811 A7 3520 AND A + 00001812 ED 42 3521 SBC HL,BC + 00001814 21 06 00 3522 LD HL,6 + 00001817 30 0B 3523 JR NC,?0246 + 00001819 3524 ?0248: + 00001819 39 3525 ADD HL,SP + 0000181A FD E5 3526 PUSH IY + 0000181C C1 3527 POP BC + 0000181D 09 3528 ADD HL,BC + 0000181E 36 2A 3529 LD (HL),42 + 00001820 FD 23 3530 INC IY + 00001822 18 DC 3531 JR ?0247 + 00001824 3532 ?0246: + 00001824 39 3533 ADD HL,SP + 00001825 FD E5 3534 PUSH IY + 00001827 C1 3535 POP BC + 00001828 09 3536 ADD HL,BC + 00001829 36 00 3537 LD (HL),0 + 0000182B 21 06 00 3538 LD HL,6 + 0000182E 39 3539 ADD HL,SP + 0000182F EB 3540 EX DE,HL + 00001830 18 06 3541 JR ?0375 + 00001832 3542 ?0245: + 00001832 DD 5E 20 3543 LD E,(IX+32) + 00001835 DD 56 21 3544 LD D,(IX+33) + 00001838 3545 ?0375: + 00001838 CD 31 01 3546 CALL LWRD ?0452 + 0000183B 3547 ?0250: + 0000183B 3548 ?0237: + 0000183B 21 48 00 3549 LD HL,72 + 0000183E 39 3550 ADD HL,SP + 0000183F F9 3551 LD SP,HL + 00001840 C3 F9 02 3552 JP LWRD ?0415 + 00001843 3553 Display_new: + 00001843 CD 00 00 3554 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00001846 00 00 3555 DEFW 0 + 00001848 FD E5 3556 PUSH IY + 0000184A DD 6E 0E 3557 LD L,(IX+14) + 0000184D DD 66 0F 3558 LD H,(IX+15) + 00001850 E5 3559 PUSH HL + 00001851 DD 6E 0C 3560 LD L,(IX+12) + 00001854 DD 66 0D 3561 LD H,(IX+13) + 00001857 E5 3562 PUSH HL + 00001858 DD 6E 0A 3563 LD L,(IX+10) + 0000185B DD 66 0B 3564 LD H,(IX+11) + 0000185E E5 3565 PUSH HL + 0000185F DD 5E 02 3566 LD E,(IX+2) + 00001862 DD 56 03 3567 LD D,(IX+3) + 00001865 3E 93 3568 LD A,BYTE3 Button_new + 00001867 21 93 12 3569 LD HL,LWRD Button_new + 0000186A CD 00 00 3570 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000186D F1 3571 POP AF + 0000186E F1 3572 POP AF + 0000186F F1 3573 POP AF + 00001870 E5 3574 PUSH HL + 00001871 FD E1 3575 POP IY + 00001873 01 0A 00 3576 LD BC,10 + 00001876 09 3577 ADD HL,BC + 00001877 CB DE 3578 SET 3,(HL) + 00001879 01 2A 00 3579 LD BC,?0251 + 0000187C FD E5 3580 PUSH IY + 0000187E D1 3581 POP DE + 0000187F 3E E8 3582 LD A,BYTE3 Component_setlabel + 00001881 21 E8 06 3583 LD HL,LWRD Component_setlabel + 00001884 CD 00 00 3584 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001887 FD 36 1A 1F 3585 LD (IY+26),LOW(Display_paint) + 0000188B FD 36 1B 17 3586 LD (IY+27),HIGH(Display_paint) + 0000188F FD 36 1C 1F 3587 LD (IY+28),BYTE3 Display_paint + 00001893 FD 36 17 9E 3588 LD (IY+23),LOW(Display_handler) + 00001897 FD 36 18 16 3589 LD (IY+24),HIGH(Display_handler) + 0000189B FD 36 19 9E 3590 LD (IY+25),BYTE3 Display_handler + 0000189F C3 E0 06 3591 JP LWRD ?0422 + 000018A2 3592 Label_handler: + 000018A2 CD 00 00 3593 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000018A5 C3 00 00 3594 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000018A8 3595 Label_paint: + 000018A8 C5 3596 PUSH BC + 000018A9 DD E5 3597 PUSH IX + 000018AB F5 3598 PUSH AF + 000018AC F5 3599 PUSH AF + 000018AD D5 3600 PUSH DE + 000018AE DD E1 3601 POP IX + 000018B0 21 02 00 3602 LD HL,2 + 000018B3 39 3603 ADD HL,SP + 000018B4 AF 3604 XOR A + 000018B5 77 3605 LD (HL),A + 000018B6 23 3606 INC HL + 000018B7 77 3607 LD (HL),A + 000018B8 2B 3608 DEC HL + 000018B9 2B 3609 DEC HL + 000018BA 2B 3610 DEC HL + 000018BB 77 3611 LD (HL),A + 000018BC 23 3612 INC HL + 000018BD 77 3613 LD (HL),A + 000018BE 21 12 00 3614 LD HL,18 + 000018C1 ED 4B 00 00 3615 LD BC,(global) + 000018C5 09 3616 ADD HL,BC + 000018C6 7E 3617 LD A,(HL) + 000018C7 23 3618 INC HL + 000018C8 66 3619 LD H,(HL) + 000018C9 6F 3620 LD L,A + 000018CA 46 3621 LD B,(HL) + 000018CB 23 3622 INC HL + 000018CC 66 3623 LD H,(HL) + 000018CD 68 3624 LD L,B + 000018CE E5 3625 PUSH HL + 000018CF 21 0E 00 3626 LD HL,14 + 000018D2 19 3627 ADD HL,DE + 000018D3 4E 3628 LD C,(HL) + 000018D4 23 3629 INC HL + 000018D5 46 3630 LD B,(HL) + 000018D6 E1 3631 POP HL + 000018D7 A7 3632 AND A + 000018D8 ED 42 3633 SBC HL,BC + 000018DA 28 03 3634 JR Z,?0253 + 000018DC 3635 ?0252: + 000018DC CD 67 0F 3636 CALL LWRD ?0449 + 000018DF 3637 ?0253: + 000018DF DD CB 0A 46 3638 BIT 0,(IX+10) + 000018E3 28 21 3639 JR Z,?0255 + 000018E5 3640 ?0254: + 000018E5 21 00 00 3641 LD HL,0 + 000018E8 39 3642 ADD HL,SP + 000018E9 E5 3643 PUSH HL + 000018EA CD 1F 0E 3644 CALL LWRD ?0478 + 000018ED E1 3645 POP HL + 000018EE 21 00 00 3646 LD HL,0 + 000018F1 39 3647 ADD HL,SP + 000018F2 4E 3648 LD C,(HL) + 000018F3 23 3649 INC HL + 000018F4 46 3650 LD B,(HL) + 000018F5 C5 3651 PUSH BC + 000018F6 23 3652 INC HL + 000018F7 4E 3653 LD C,(HL) + 000018F8 23 3654 INC HL + 000018F9 46 3655 LD B,(HL) + 000018FA DD E5 3656 PUSH IX + 000018FC D1 3657 POP DE + 000018FD 3E 17 3658 LD A,BYTE3 Button_drawtext + 000018FF 21 17 11 3659 LD HL,LWRD Button_drawtext + 00001902 CD 00 00 3660 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001905 E1 3661 POP HL + 00001906 3662 ?0255: + 00001906 C3 5F 0F 3663 JP LWRD ?0165 + 00001909 3664 Label_new: + 00001909 CD 00 00 3665 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000190C 00 00 3666 DEFW 0 + 0000190E FD E5 3667 PUSH IY + 00001910 DD 6E 0C 3668 LD L,(IX+12) + 00001913 DD 66 0D 3669 LD H,(IX+13) + 00001916 E5 3670 PUSH HL + 00001917 DD 6E 0A 3671 LD L,(IX+10) + 0000191A DD 66 0B 3672 LD H,(IX+11) + 0000191D E5 3673 PUSH HL + 0000191E DD 5E 02 3674 LD E,(IX+2) + 00001921 DD 56 03 3675 LD D,(IX+3) + 00001924 3E 3E 3676 LD A,BYTE3 Component_new + 00001926 21 3E 06 3677 LD HL,LWRD Component_new + 00001929 CD 00 00 3678 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000192C F1 3679 POP AF + 0000192D F1 3680 POP AF + 0000192E E5 3681 PUSH HL + 0000192F FD E1 3682 POP IY + 00001931 01 20 00 3683 LD BC,32 + 00001934 09 3684 ADD HL,BC + 00001935 DD 4E 0E 3685 LD C,(IX+14) + 00001938 71 3686 LD (HL),C + 00001939 DD 46 0F 3687 LD B,(IX+15) + 0000193C 23 3688 INC HL + 0000193D 70 3689 LD (HL),B + 0000193E FD 36 0A 01 3690 LD (IY+10),1 + 00001942 FD 36 0B 00 3691 LD (IY+11),0 + 00001946 FD 36 17 A2 3692 LD (IY+23),LOW(Label_handler) + 0000194A FD 36 18 18 3693 LD (IY+24),HIGH(Label_handler) + 0000194E FD 36 19 A2 3694 LD (IY+25),BYTE3 Label_handler + 00001952 FD 36 1A A8 3695 LD (IY+26),LOW(Label_paint) + 00001956 FD 36 1B 18 3696 LD (IY+27),HIGH(Label_paint) + 0000195A FD 36 1C A8 3697 LD (IY+28),BYTE3 Label_paint + 0000195E FD 36 1D 8D 3698 LD (IY+29),LOW(Button_add) + 00001962 FD 36 1E 12 3699 LD (IY+30),HIGH(Button_add) + 00001966 FD 36 1F 8D 3700 LD (IY+31),BYTE3 Button_add + 0000196A C3 E0 06 3701 JP LWRD ?0422 + 0000196D 3702 rootWindow_handler: + 0000196D CD 00 00 3703 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00001970 00 00 3704 DEFW 0 + 00001972 DD 6E 0A 3705 LD L,(IX+10) + 00001975 DD 66 0B 3706 LD H,(IX+11) + 00001978 E5 3707 PUSH HL + 00001979 DD 5E 02 3708 LD E,(IX+2) + 0000197C DD 56 03 3709 LD D,(IX+3) + 0000197F 3E 61 3710 LD A,BYTE3 Window_handler + 00001981 21 61 0B 3711 LD HL,LWRD Window_handler + 00001984 CD 00 00 3712 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001987 E1 3713 POP HL + 00001988 C3 00 00 3714 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000198B 3715 screenbuilder: + 0000198B CD 00 00 3716 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000198E CE FF 3717 DEFW 65486 + 00001990 FD E5 3718 PUSH IY + 00001992 DD 36 D8 00 3719 LD (IX-40),0 + 00001996 21 00 00 3720 LD HL,0 + 00001999 E5 3721 PUSH HL + 0000199A C5 3722 PUSH BC + 0000199B CD 14 01 3723 CALL LWRD ?0444 + 0000199E F1 3724 POP AF + 0000199F F1 3725 POP AF + 000019A0 DD 75 D4 3726 LD (IX-44),L + 000019A3 DD 74 D5 3727 LD (IX-43),H + 000019A6 DD 36 F0 06 3728 LD (IX-16),6 + 000019AA DD 36 F1 00 3729 LD (IX-15),0 + 000019AE DD 36 F2 05 3730 LD (IX-14),5 + 000019B2 DD 36 F3 00 3731 LD (IX-13),0 + 000019B6 3732 ?0258: + 000019B6 DD 36 F4 00 3733 LD (IX-12),0 + 000019BA DD 7E D8 3734 LD A,(IX-40) + 000019BD FE 73 3735 CP 115 + 000019BF 20 18 3736 JR NZ,?0260 + 000019C1 3737 ?0259: + 000019C1 DD 6E D9 3738 LD L,(IX-39) + 000019C4 DD 66 DA 3739 LD H,(IX-38) + 000019C7 DD 75 F0 3740 LD (IX-16),L + 000019CA DD 74 F1 3741 LD (IX-15),H + 000019CD DD 6E DB 3742 LD L,(IX-37) + 000019D0 DD 66 DC 3743 LD H,(IX-36) + 000019D3 DD 75 F2 3744 LD (IX-14),L + 000019D6 DD 74 F3 3745 LD (IX-13),H + 000019D9 3746 ?0260: + 000019D9 DD 7E D8 3747 LD A,(IX-40) + 000019DC FE 42 3748 CP 66 + 000019DE 28 07 3749 JR Z,?0263 + 000019E0 DD 7E D8 3750 LD A,(IX-40) + 000019E3 FE 4D 3751 CP 77 + 000019E5 20 4E 3752 JR NZ,?0262 + 000019E7 3753 ?0263: + 000019E7 3754 ?0264: + 000019E7 3755 ?0261: + 000019E7 DD 4E DD 3756 LD C,(IX-35) + 000019EA 06 00 3757 LD B,0 + 000019EC C5 3758 PUSH BC + 000019ED CD 3A 1D 3759 CALL LWRD ?0490 + 000019F0 D5 3760 PUSH DE + 000019F1 CD 50 1D 3761 CALL LWRD ?0491 + 000019F4 D5 3762 PUSH DE + 000019F5 DD 6E DB 3763 LD L,(IX-37) + 000019F8 26 00 3764 LD H,0 + 000019FA 44 3765 LD B,H + 000019FB DD 4E D9 3766 LD C,(IX-39) + 000019FE 09 3767 ADD HL,BC + 000019FF 4D 3768 LD C,L + 00001A00 44 3769 LD B,H + 00001A01 11 03 01 3770 LD DE,259 + 00001A04 CD 58 1D 3771 CALL LWRD ?0492 + 00001A07 EB 3772 EX DE,HL + 00001A08 D1 3773 POP DE + 00001A09 A7 3774 AND A + 00001A0A ED 52 3775 SBC HL,DE + 00001A0C 2B 3776 DEC HL + 00001A0D 2B 3777 DEC HL + 00001A0E 2B 3778 DEC HL + 00001A0F E5 3779 PUSH HL + 00001A10 CD 64 1D 3780 CALL LWRD ?0493 + 00001A13 D5 3781 PUSH DE + 00001A14 CD 50 1D 3782 CALL LWRD ?0491 + 00001A17 3E 93 3783 LD A,BYTE3 Button_new + 00001A19 21 93 12 3784 LD HL,LWRD Button_new + 00001A1C C1 3785 POP BC + 00001A1D CD 00 00 3786 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001A20 F1 3787 POP AF + 00001A21 F1 3788 POP AF + 00001A22 F1 3789 POP AF + 00001A23 E5 3790 PUSH HL + 00001A24 FD E1 3791 POP IY + 00001A26 DD 7E D8 3792 LD A,(IX-40) + 00001A29 FE 4D 3793 CP 77 + 00001A2B 20 04 3794 JR NZ,?0266 + 00001A2D 3795 ?0265: + 00001A2D FD CB 0A F6 3796 SET 6,(IY+10) + 00001A31 3797 ?0266: + 00001A31 DD 36 F4 01 3798 LD (IX-12),1 + 00001A35 3799 ?0262: + 00001A35 DD 7E D8 3800 LD A,(IX-40) + 00001A38 FE 54 3801 CP 84 + 00001A3A 20 43 3802 JR NZ,?0268 + 00001A3C 3803 ?0267: + 00001A3C DD 4E DD 3804 LD C,(IX-35) + 00001A3F 06 00 3805 LD B,0 + 00001A41 C5 3806 PUSH BC + 00001A42 CD 3A 1D 3807 CALL LWRD ?0490 + 00001A45 D5 3808 PUSH DE + 00001A46 CD 50 1D 3809 CALL LWRD ?0491 + 00001A49 D5 3810 PUSH DE + 00001A4A DD 6E DB 3811 LD L,(IX-37) + 00001A4D 26 00 3812 LD H,0 + 00001A4F 44 3813 LD B,H + 00001A50 DD 4E D9 3814 LD C,(IX-39) + 00001A53 09 3815 ADD HL,BC + 00001A54 4D 3816 LD C,L + 00001A55 44 3817 LD B,H + 00001A56 11 03 01 3818 LD DE,259 + 00001A59 CD 58 1D 3819 CALL LWRD ?0492 + 00001A5C EB 3820 EX DE,HL + 00001A5D D1 3821 POP DE + 00001A5E A7 3822 AND A + 00001A5F ED 52 3823 SBC HL,DE + 00001A61 2B 3824 DEC HL + 00001A62 2B 3825 DEC HL + 00001A63 2B 3826 DEC HL + 00001A64 E5 3827 PUSH HL + 00001A65 CD 64 1D 3828 CALL LWRD ?0493 + 00001A68 D5 3829 PUSH DE + 00001A69 CD 50 1D 3830 CALL LWRD ?0491 + 00001A6C 3E 78 3831 LD A,BYTE3 ToggleButton_new + 00001A6E 21 78 14 3832 LD HL,LWRD ToggleButton_new + 00001A71 C1 3833 POP BC + 00001A72 CD 00 00 3834 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001A75 F1 3835 POP AF + 00001A76 F1 3836 POP AF + 00001A77 F1 3837 POP AF + 00001A78 E5 3838 PUSH HL + 00001A79 FD E1 3839 POP IY + 00001A7B DD 36 F4 01 3840 LD (IX-12),1 + 00001A7F 3841 ?0268: + 00001A7F DD 7E D8 3842 LD A,(IX-40) + 00001A82 FE 44 3843 CP 68 + 00001A84 20 43 3844 JR NZ,?0270 + 00001A86 3845 ?0269: + 00001A86 DD 4E DD 3846 LD C,(IX-35) + 00001A89 06 00 3847 LD B,0 + 00001A8B C5 3848 PUSH BC + 00001A8C CD 3A 1D 3849 CALL LWRD ?0490 + 00001A8F D5 3850 PUSH DE + 00001A90 CD 50 1D 3851 CALL LWRD ?0491 + 00001A93 D5 3852 PUSH DE + 00001A94 DD 6E DB 3853 LD L,(IX-37) + 00001A97 26 00 3854 LD H,0 + 00001A99 44 3855 LD B,H + 00001A9A DD 4E D9 3856 LD C,(IX-39) + 00001A9D 09 3857 ADD HL,BC + 00001A9E 4D 3858 LD C,L + 00001A9F 44 3859 LD B,H + 00001AA0 11 03 01 3860 LD DE,259 + 00001AA3 CD 58 1D 3861 CALL LWRD ?0492 + 00001AA6 EB 3862 EX DE,HL + 00001AA7 D1 3863 POP DE + 00001AA8 A7 3864 AND A + 00001AA9 ED 52 3865 SBC HL,DE + 00001AAB 2B 3866 DEC HL + 00001AAC 2B 3867 DEC HL + 00001AAD 2B 3868 DEC HL + 00001AAE E5 3869 PUSH HL + 00001AAF CD 64 1D 3870 CALL LWRD ?0493 + 00001AB2 D5 3871 PUSH DE + 00001AB3 CD 50 1D 3872 CALL LWRD ?0491 + 00001AB6 3E 43 3873 LD A,BYTE3 Display_new + 00001AB8 21 43 18 3874 LD HL,LWRD Display_new + 00001ABB C1 3875 POP BC + 00001ABC CD 00 00 3876 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001ABF F1 3877 POP AF + 00001AC0 F1 3878 POP AF + 00001AC1 F1 3879 POP AF + 00001AC2 E5 3880 PUSH HL + 00001AC3 FD E1 3881 POP IY + 00001AC5 DD 36 F4 01 3882 LD (IX-12),1 + 00001AC9 3883 ?0270: + 00001AC9 DD 7E D8 3884 LD A,(IX-40) + 00001ACC FE 4C 3885 CP 76 + 00001ACE 20 46 3886 JR NZ,?0272 + 00001AD0 3887 ?0271: + 00001AD0 21 0C 00 3888 LD HL,12 + 00001AD3 39 3889 ADD HL,SP + 00001AD4 01 12 00 3890 LD BC,18 + 00001AD7 09 3891 ADD HL,BC + 00001AD8 E5 3892 PUSH HL + 00001AD9 CD 3A 1D 3893 CALL LWRD ?0490 + 00001ADC D5 3894 PUSH DE + 00001ADD CD 50 1D 3895 CALL LWRD ?0491 + 00001AE0 D5 3896 PUSH DE + 00001AE1 DD 6E DB 3897 LD L,(IX-37) + 00001AE4 26 00 3898 LD H,0 + 00001AE6 44 3899 LD B,H + 00001AE7 DD 4E D9 3900 LD C,(IX-39) + 00001AEA 09 3901 ADD HL,BC + 00001AEB 4D 3902 LD C,L + 00001AEC 44 3903 LD B,H + 00001AED 11 03 01 3904 LD DE,259 + 00001AF0 CD 58 1D 3905 CALL LWRD ?0492 + 00001AF3 EB 3906 EX DE,HL + 00001AF4 D1 3907 POP DE + 00001AF5 A7 3908 AND A + 00001AF6 ED 52 3909 SBC HL,DE + 00001AF8 2B 3910 DEC HL + 00001AF9 2B 3911 DEC HL + 00001AFA 2B 3912 DEC HL + 00001AFB E5 3913 PUSH HL + 00001AFC CD 64 1D 3914 CALL LWRD ?0493 + 00001AFF D5 3915 PUSH DE + 00001B00 CD 50 1D 3916 CALL LWRD ?0491 + 00001B03 3E 09 3917 LD A,BYTE3 Label_new + 00001B05 21 09 19 3918 LD HL,LWRD Label_new + 00001B08 C1 3919 POP BC + 00001B09 CD 00 00 3920 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001B0C F1 3921 POP AF + 00001B0D F1 3922 POP AF + 00001B0E F1 3923 POP AF + 00001B0F E5 3924 PUSH HL + 00001B10 FD E1 3925 POP IY + 00001B12 DD 36 F4 01 3926 LD (IX-12),1 + 00001B16 3927 ?0272: + 00001B16 DD 7E D8 3928 LD A,(IX-40) + 00001B19 FE 41 3929 CP 65 + 00001B1B 20 51 3930 JR NZ,?0274 + 00001B1D 3931 ?0273: + 00001B1D 21 26 00 3932 LD HL,38 + 00001B20 DD 4E 02 3933 LD C,(IX+2) + 00001B23 DD 46 03 3934 LD B,(IX+3) + 00001B26 09 3935 ADD HL,BC + 00001B27 E5 3936 PUSH HL + 00001B28 21 2B 00 3937 LD HL,43 + 00001B2B 39 3938 ADD HL,SP + 00001B2C EB 3939 EX DE,HL + 00001B2D E1 3940 POP HL + 00001B2E 73 3941 LD (HL),E + 00001B2F 23 3942 INC HL + 00001B30 72 3943 LD (HL),D + 00001B31 DD 6E DE 3944 LD L,(IX-34) + 00001B34 DD 66 DF 3945 LD H,(IX-33) + 00001B37 DD 75 F8 3946 LD (IX-8),L + 00001B3A DD 74 F9 3947 LD (IX-7),H + 00001B3D DD 6E E0 3948 LD L,(IX-32) + 00001B40 DD 66 E1 3949 LD H,(IX-31) + 00001B43 DD 75 FA 3950 LD (IX-6),L + 00001B46 DD 74 FB 3951 LD (IX-5),H + 00001B49 21 16 00 3952 LD HL,22 + 00001B4C 39 3953 ADD HL,SP + 00001B4D 4E 3954 LD C,(HL) + 00001B4E 23 3955 INC HL + 00001B4F 46 3956 LD B,(HL) + 00001B50 23 3957 INC HL + 00001B51 5E 3958 LD E,(HL) + 00001B52 23 3959 INC HL + 00001B53 56 3960 LD D,(HL) + 00001B54 DD 71 FC 3961 LD (IX-4),C + 00001B57 DD 70 FD 3962 LD (IX-3),B + 00001B5A DD 73 FE 3963 LD (IX-2),E + 00001B5D DD 72 FF 3964 LD (IX-1),D + 00001B60 DD 5E 02 3965 LD E,(IX+2) + 00001B63 DD 56 03 3966 LD D,(IX+3) + 00001B66 3E 78 3967 LD A,BYTE3 root_actionhandler + 00001B68 21 78 1D 3968 LD HL,LWRD root_actionhandler + 00001B6B CD 00 00 3969 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001B6E 3970 ?0274: + 00001B6E DD 7E D8 3971 LD A,(IX-40) + 00001B71 FE 53 3972 CP 83 + 00001B73 20 71 3973 JR NZ,?0276 + 00001B75 3974 ?0275: + 00001B75 21 0C 00 3975 LD HL,12 + 00001B78 39 3976 ADD HL,SP + 00001B79 4D 3977 LD C,L + 00001B7A 44 3978 LD B,H + 00001B7B DD 5E D4 3979 LD E,(IX-44) + 00001B7E DD 56 D5 3980 LD D,(IX-43) + 00001B81 3E C7 3981 LD A,BYTE3 read_stringtable + 00001B83 21 C7 20 3982 LD HL,LWRD read_stringtable + 00001B86 CD 00 00 3983 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001B89 21 26 00 3984 LD HL,38 + 00001B8C DD 4E 02 3985 LD C,(IX+2) + 00001B8F DD 46 03 3986 LD B,(IX+3) + 00001B92 09 3987 ADD HL,BC + 00001B93 E5 3988 PUSH HL + 00001B94 11 04 00 3989 LD DE,4 + 00001B97 CD 32 1D 3990 CALL LWRD ?0466 + 00001B9A EB 3991 EX DE,HL + 00001B9B E1 3992 POP HL + 00001B9C 73 3993 LD (HL),E + 00001B9D 23 3994 INC HL + 00001B9E 72 3995 LD (HL),D + 00001B9F 21 26 00 3996 LD HL,38 + 00001BA2 09 3997 ADD HL,BC + 00001BA3 56 3998 LD D,(HL) + 00001BA4 DD 72 F5 3999 LD (IX-11),D + 00001BA7 23 4000 INC HL + 00001BA8 66 4001 LD H,(HL) + 00001BA9 DD 74 F6 4002 LD (IX-10),H + 00001BAC 21 24 00 4003 LD HL,36 + 00001BAF 09 4004 ADD HL,BC + 00001BB0 36 04 4005 LD (HL),4 + 00001BB2 23 4006 INC HL + 00001BB3 36 00 4007 LD (HL),0 + 00001BB5 6A 4008 LD L,D + 00001BB6 DD 66 F6 4009 LD H,(IX-10) + 00001BB9 23 4010 INC HL + 00001BBA 23 4011 INC HL + 00001BBB E5 4012 PUSH HL + 00001BBC 21 0C 00 4013 LD HL,12 + 00001BBF ED 4B 00 00 4014 LD BC,(global) + 00001BC3 09 4015 ADD HL,BC + 00001BC4 5E 4016 LD E,(HL) + 00001BC5 23 4017 INC HL + 00001BC6 56 4018 LD D,(HL) + 00001BC7 E1 4019 POP HL + 00001BC8 73 4020 LD (HL),E + 00001BC9 23 4021 INC HL + 00001BCA 72 4022 LD (HL),D + 00001BCB 21 0A 00 4023 LD HL,10 + 00001BCE ED 4B 00 00 4024 LD BC,(global) + 00001BD2 09 4025 ADD HL,BC + 00001BD3 46 4026 LD B,(HL) + 00001BD4 23 4027 INC HL + 00001BD5 66 4028 LD H,(HL) + 00001BD6 68 4029 LD L,B + 00001BD7 E5 4030 PUSH HL + 00001BD8 DD 6E F5 4031 LD L,(IX-11) + 00001BDB DD 66 F6 4032 LD H,(IX-10) + 00001BDE C1 4033 POP BC + 00001BDF 71 4034 LD (HL),C + 00001BE0 23 4035 INC HL + 00001BE1 70 4036 LD (HL),B + 00001BE2 DD 36 F4 00 4037 LD (IX-12),0 + 00001BE6 4038 ?0276: + 00001BE6 AF 4039 XOR A + 00001BE7 DD B6 F4 4040 OR (IX-12) + 00001BEA CA E6 1C 4041 JP Z,?0278 + 00001BED 4042 ?0277: + 00001BED DD 7E DE 4043 LD A,(IX-34) + 00001BF0 DD B6 DF 4044 OR (IX-33) + 00001BF3 28 69 4045 JR Z,?0280 + 00001BF5 4046 ?0279: + 00001BF5 FD CB 0A EE 4047 SET 5,(IY+10) + 00001BF9 FD 36 24 0B 4048 LD (IY+36),11 + 00001BFD FD 36 25 00 4049 LD (IY+37),0 + 00001C01 11 0B 00 4050 LD DE,11 + 00001C04 CD 32 1D 4051 CALL LWRD ?0466 + 00001C07 FD 75 26 4052 LD (IY+38),L + 00001C0A FD 74 27 4053 LD (IY+39),H + 00001C0D FD 6E 26 4054 LD L,(IY+38) + 00001C10 DD 75 D0 4055 LD (IX-48),L + 00001C13 FD 66 27 4056 LD H,(IY+39) + 00001C16 DD 74 D1 4057 LD (IX-47),H + 00001C19 36 78 4058 LD (HL),LOW(root_actionhandler) + 00001C1B 23 4059 INC HL + 00001C1C 36 1D 4060 LD (HL),HIGH(root_actionhandler) + 00001C1E 23 4061 INC HL + 00001C1F 36 78 4062 LD (HL),BYTE3 root_actionhandler + 00001C21 DD 6E D0 4063 LD L,(IX-48) + 00001C24 DD 66 D1 4064 LD H,(IX-47) + 00001C27 23 4065 INC HL + 00001C28 23 4066 INC HL + 00001C29 23 4067 INC HL + 00001C2A DD 4E DE 4068 LD C,(IX-34) + 00001C2D 71 4069 LD (HL),C + 00001C2E DD 46 DF 4070 LD B,(IX-33) + 00001C31 23 4071 INC HL + 00001C32 70 4072 LD (HL),B + 00001C33 21 05 00 4073 LD HL,5 + 00001C36 DD 4E D0 4074 LD C,(IX-48) + 00001C39 DD 46 D1 4075 LD B,(IX-47) + 00001C3C 09 4076 ADD HL,BC + 00001C3D DD 5E E0 4077 LD E,(IX-32) + 00001C40 73 4078 LD (HL),E + 00001C41 DD 56 E1 4079 LD D,(IX-31) + 00001C44 23 4080 INC HL + 00001C45 72 4081 LD (HL),D + 00001C46 21 07 00 4082 LD HL,7 + 00001C49 09 4083 ADD HL,BC + 00001C4A E5 4084 PUSH HL + 00001C4B 21 18 00 4085 LD HL,24 + 00001C4E 39 4086 ADD HL,SP + 00001C4F 5E 4087 LD E,(HL) + 00001C50 23 4088 INC HL + 00001C51 56 4089 LD D,(HL) + 00001C52 23 4090 INC HL + 00001C53 4E 4091 LD C,(HL) + 00001C54 23 4092 INC HL + 00001C55 46 4093 LD B,(HL) + 00001C56 E1 4094 POP HL + 00001C57 73 4095 LD (HL),E + 00001C58 23 4096 INC HL + 00001C59 72 4097 LD (HL),D + 00001C5A 23 4098 INC HL + 00001C5B 71 4099 LD (HL),C + 00001C5C 23 4100 INC HL + 00001C5D 70 4101 LD (HL),B + 00001C5E 4102 ?0280: + 00001C5E DD 7E E6 4103 LD A,(IX-26) + 00001C61 DD B6 E7 4104 OR (IX-25) + 00001C64 28 0C 4105 JR Z,?0282 + 00001C66 4106 ?0281: + 00001C66 DD 6E E6 4107 LD L,(IX-26) + 00001C69 FD 75 0A 4108 LD (IY+10),L + 00001C6C DD 66 E7 4109 LD H,(IX-25) + 00001C6F FD 74 0B 4110 LD (IY+11),H + 00001C72 4111 ?0282: + 00001C72 DD 6E E8 4112 LD L,(IX-24) + 00001C75 FD 75 0E 4113 LD (IY+14),L + 00001C78 DD 66 E9 4114 LD H,(IX-23) + 00001C7B FD 74 0F 4115 LD (IY+15),H + 00001C7E DD 6E EA 4116 LD L,(IX-22) + 00001C81 FD 75 20 4117 LD (IY+32),L + 00001C84 DD 7E EB 4118 LD A,(IX-21) + 00001C87 E6 0F 4119 AND 15 + 00001C89 FD 77 21 4120 LD (IY+33),A + 00001C8C FD 7E 20 4121 LD A,(IY+32) + 00001C8F FD B6 21 4122 OR (IY+33) + 00001C92 20 16 4123 JR NZ,?0284 + 00001C94 4124 ?0283: + 00001C94 11 14 00 4125 LD DE,20 + 00001C97 CD 32 1D 4126 CALL LWRD ?0466 + 00001C9A FD 75 20 4127 LD (IY+32),L + 00001C9D FD 74 21 4128 LD (IY+33),H + 00001CA0 FD 6E 20 4129 LD L,(IY+32) + 00001CA3 FD 66 21 4130 LD H,(IY+33) + 00001CA6 36 00 4131 LD (HL),0 + 00001CA8 18 04 4132 JR ?0285 + 00001CAA 4133 ?0284: + 00001CAA FD CB 0B F6 4134 SET 6,(IY+11) + 00001CAE 4135 ?0285: + 00001CAE DD 7E EB 4136 LD A,(IX-21) + 00001CB1 2E 00 4137 LD L,0 + 00001CB3 4D 4138 LD C,L + 00001CB4 E6 F0 4139 AND 240 + 00001CB6 47 4140 LD B,A + 00001CB7 26 10 4141 LD H,16 + 00001CB9 ED 42 4142 SBC HL,BC + 00001CBB 30 10 4143 JR NC,?0287 + 00001CBD 4144 ?0286: + 00001CBD DD 6E EA 4145 LD L,(IX-22) + 00001CC0 DD 7E EB 4146 LD A,(IX-21) + 00001CC3 E6 0F 4147 AND 15 + 00001CC5 67 4148 LD H,A + 00001CC6 23 4149 INC HL + 00001CC7 FD 75 22 4150 LD (IY+34),L + 00001CCA FD 74 23 4151 LD (IY+35),H + 00001CCD 4152 ?0287: + 00001CCD FD E5 4153 PUSH IY + 00001CCF DD 5E 02 4154 LD E,(IX+2) + 00001CD2 4B 4155 LD C,E + 00001CD3 DD 56 03 4156 LD D,(IX+3) + 00001CD6 42 4157 LD B,D + 00001CD7 21 1D 00 4158 LD HL,29 + 00001CDA 09 4159 ADD HL,BC + 00001CDB 4E 4160 LD C,(HL) + 00001CDC 23 4161 INC HL + 00001CDD 46 4162 LD B,(HL) + 00001CDE 23 4163 INC HL + 00001CDF 7E 4164 LD A,(HL) + 00001CE0 69 4165 LD L,C + 00001CE1 60 4166 LD H,B + 00001CE2 C1 4167 POP BC + 00001CE3 CD 00 00 4168 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001CE6 4169 ?0278: + 00001CE6 21 14 00 4170 LD HL,20 + 00001CE9 E5 4171 PUSH HL + 00001CEA 2E 0E 4172 LD L,14 + 00001CEC 39 4173 ADD HL,SP + 00001CED 4D 4174 LD C,L + 00001CEE 44 4175 LD B,H + 00001CEF DD 5E D4 4176 LD E,(IX-44) + 00001CF2 DD 56 D5 4177 LD D,(IX-43) + 00001CF5 3E 00 4178 LD A,BYTE3 _read + 00001CF7 21 00 00 4179 LD HL,LWRD _read + 00001CFA CD 00 00 4180 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001CFD F1 4181 POP AF + 00001CFE 3E 14 4182 LD A,20 + 00001D00 AD 4183 XOR L + 00001D01 B4 4184 OR H + 00001D02 CA B6 19 4185 JP Z,?0258 + 00001D05 4186 ?0256: + 00001D05 DD 5E D4 4187 LD E,(IX-44) + 00001D08 DD 56 D5 4188 LD D,(IX-43) + 00001D0B CD 56 01 4189 CALL LWRD ?0469 + 00001D0E DD 5E 02 4190 LD E,(IX+2) + 00001D11 DD 56 03 4191 LD D,(IX+3) + 00001D14 3E AE 4192 LD A,BYTE3 Component_linkstringtable + 00001D16 21 AE 0A 4193 LD HL,LWRD Component_linkstringtable + 00001D19 CD 00 00 4194 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001D1C DD 5E 02 4195 LD E,(IX+2) + 00001D1F 4B 4196 LD C,E + 00001D20 DD 56 03 4197 LD D,(IX+3) + 00001D23 42 4198 LD B,D + 00001D24 21 1A 00 4199 LD HL,26 + 00001D27 09 4200 ADD HL,BC + 00001D28 4E 4201 LD C,(HL) + 00001D29 23 4202 INC HL + 00001D2A 46 4203 LD B,(HL) + 00001D2B 23 4204 INC HL + 00001D2C 7E 4205 LD A,(HL) + 00001D2D 69 4206 LD L,C + 00001D2E 60 4207 LD H,B + 00001D2F C3 99 11 4208 JP LWRD ?0431 + 00001D32 4209 ?0466: + 00001D32 3E 00 4210 LD A,BYTE3 malloc + 00001D34 21 00 00 4211 LD HL,LWRD malloc + 00001D37 C3 00 00 4212 JP LWRD ?BANK_CALL_DIRECT_L08 + 00001D3A 4213 ?0490: + 00001D3A DD 4E DC 4214 LD C,(IX-36) + 00001D3D 11 83 00 4215 LD DE,131 + 00001D40 CD 00 00 4216 CALL LWRD ?S_MUL_L02 + 00001D43 DD 4E F2 4217 LD C,(IX-14) + 00001D46 DD 46 F3 4218 LD B,(IX-13) + 00001D49 CD 00 00 4219 CALL LWRD ?SS_DIV_L02 + 00001D4C 1B 4220 DEC DE + 00001D4D 1B 4221 DEC DE + 00001D4E 1B 4222 DEC DE + 00001D4F C9 4223 RET + 00001D50 4224 ?0491: + 00001D50 DD 5E D9 4225 LD E,(IX-39) + 00001D53 16 00 4226 LD D,0 + 00001D55 01 03 01 4227 LD BC,259 + 00001D58 4228 ?0492: + 00001D58 CD 00 00 4229 CALL LWRD ?S_MUL_L02 + 00001D5B DD 4E F0 4230 LD C,(IX-16) + 00001D5E DD 46 F1 4231 LD B,(IX-15) + 00001D61 C3 00 00 4232 JP LWRD ?SS_DIV_L02 + 00001D64 4233 ?0493: + 00001D64 DD 5E DA 4234 LD E,(IX-38) + 00001D67 16 00 4235 LD D,0 + 00001D69 01 83 00 4236 LD BC,131 + 00001D6C CD 00 00 4237 CALL LWRD ?S_MUL_L02 + 00001D6F DD 4E F2 4238 LD C,(IX-14) + 00001D72 DD 46 F3 4239 LD B,(IX-13) + 00001D75 C3 00 00 4240 JP LWRD ?SS_DIV_L02 + 00001D78 4241 root_actionhandler: + 00001D78 CD 00 00 4242 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00001D7B F8 FF 4243 DEFW 65528 + 00001D7D FD E5 4244 PUSH IY + 00001D7F DD 6E 02 4245 LD L,(IX+2) + 00001D82 DD 66 03 4246 LD H,(IX+3) + 00001D85 E5 4247 PUSH HL + 00001D86 FD E1 4248 POP IY + 00001D88 FD 6E 26 4249 LD L,(IY+38) + 00001D8B DD 75 F8 4250 LD (IX-8),L + 00001D8E FD 66 27 4251 LD H,(IY+39) + 00001D91 DD 74 F9 4252 LD (IX-7),H + 00001D94 23 4253 INC HL + 00001D95 23 4254 INC HL + 00001D96 23 4255 INC HL + 00001D97 3E 01 4256 LD A,1 + 00001D99 AE 4257 XOR (HL) + 00001D9A 23 4258 INC HL + 00001D9B B6 4259 OR (HL) + 00001D9C 20 0A 4260 JR NZ,?0289 + 00001D9E 4261 ?0288: + 00001D9E 6F 4262 LD L,A + 00001D9F 67 4263 LD H,A + 00001DA0 E5 4264 PUSH HL + 00001DA1 01 01 05 4265 LD BC,1281 + 00001DA4 CD 10 0E 4266 CALL LWRD ?0476 + 00001DA7 E1 4267 POP HL + 00001DA8 4268 ?0289: + 00001DA8 DD 6E F8 4269 LD L,(IX-8) + 00001DAB DD 66 F9 4270 LD H,(IX-7) + 00001DAE 23 4271 INC HL + 00001DAF 23 4272 INC HL + 00001DB0 23 4273 INC HL + 00001DB1 46 4274 LD B,(HL) + 00001DB2 23 4275 INC HL + 00001DB3 66 4276 LD H,(HL) + 00001DB4 68 4277 LD L,B + 00001DB5 CB 85 4278 RES 0,L + 00001DB7 3E 02 4279 LD A,2 + 00001DB9 AD 4280 XOR L + 00001DBA B4 4281 OR H + 00001DBB C2 A7 1E 4282 JP NZ,?0291 + 00001DBE 4283 ?0290: + 00001DBE 21 05 00 4284 LD HL,5 + 00001DC1 DD 4E F8 4285 LD C,(IX-8) + 00001DC4 DD 46 F9 4286 LD B,(IX-7) + 00001DC7 09 4287 ADD HL,BC + 00001DC8 56 4288 LD D,(HL) + 00001DC9 23 4289 INC HL + 00001DCA 7E 4290 LD A,(HL) + 00001DCB 6A 4291 LD L,D + 00001DCC E6 0F 4292 AND 15 + 00001DCE 67 4293 LD H,A + 00001DCF 29 4294 ADD HL,HL + 00001DD0 E5 4295 PUSH HL + 00001DD1 21 0C 00 4296 LD HL,12 + 00001DD4 ED 5B 00 00 4297 LD DE,(global) + 00001DD8 19 4298 ADD HL,DE + 00001DD9 5E 4299 LD E,(HL) + 00001DDA 23 4300 INC HL + 00001DDB 56 4301 LD D,(HL) + 00001DDC E1 4302 POP HL + 00001DDD 19 4303 ADD HL,DE + 00001DDE 2B 4304 DEC HL + 00001DDF 2B 4305 DEC HL + 00001DE0 56 4306 LD D,(HL) + 00001DE1 DD 72 FC 4307 LD (IX-4),D + 00001DE4 23 4308 INC HL + 00001DE5 66 4309 LD H,(HL) + 00001DE6 DD 74 FD 4310 LD (IX-3),H + 00001DE9 21 00 00 4311 LD HL,0 + 00001DEC E5 4312 PUSH HL + 00001DED E5 4313 PUSH HL + 00001DEE 01 01 00 4314 LD BC,1 + 00001DF1 FD 5E 11 4315 LD E,(IY+17) + 00001DF4 FD 56 12 4316 LD D,(IY+18) + 00001DF7 3E 45 4317 LD A,BYTE3 Component_changestate_children + 00001DF9 21 45 0A 4318 LD HL,LWRD Component_changestate_children + 00001DFC CD 00 00 4319 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001DFF E1 4320 POP HL + 00001E00 E1 4321 POP HL + 00001E01 FD 6E 11 4322 LD L,(IY+17) + 00001E04 FD 66 12 4323 LD H,(IY+18) + 00001E07 01 08 00 4324 LD BC,8 + 00001E0A 09 4325 ADD HL,BC + 00001E0B 4E 4326 LD C,(HL) + 00001E0C 23 4327 INC HL + 00001E0D 46 4328 LD B,(HL) + 00001E0E C5 4329 PUSH BC + 00001E0F FD 6E 11 4330 LD L,(IY+17) + 00001E12 FD 66 12 4331 LD H,(IY+18) + 00001E15 01 06 00 4332 LD BC,6 + 00001E18 09 4333 ADD HL,BC + 00001E19 4E 4334 LD C,(HL) + 00001E1A 23 4335 INC HL + 00001E1B 46 4336 LD B,(HL) + 00001E1C C5 4337 PUSH BC + 00001E1D 01 00 00 4338 LD BC,0 + 00001E20 59 4339 LD E,C + 00001E21 50 4340 LD D,B + 00001E22 3E 11 4341 LD A,BYTE3 Window_new + 00001E24 21 11 10 4342 LD HL,LWRD Window_new + 00001E27 CD 00 00 4343 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001E2A F1 4344 POP AF + 00001E2B F1 4345 POP AF + 00001E2C DD 75 FA 4346 LD (IX-6),L + 00001E2F DD 74 FB 4347 LD (IX-5),H + 00001E32 01 0A 00 4348 LD BC,10 + 00001E35 09 4349 ADD HL,BC + 00001E36 36 03 4350 LD (HL),3 + 00001E38 23 4351 INC HL + 00001E39 70 4352 LD (HL),B + 00001E3A DD 6E F8 4353 LD L,(IX-8) + 00001E3D DD 66 F9 4354 LD H,(IX-7) + 00001E40 23 4355 INC HL + 00001E41 23 4356 INC HL + 00001E42 23 4357 INC HL + 00001E43 CB 46 4358 BIT 0,(HL) + 00001E45 28 0C 4359 JR Z,?0293 + 00001E47 4360 ?0292: + 00001E47 69 4361 LD L,C + 00001E48 60 4362 LD H,B + 00001E49 DD 4E FA 4363 LD C,(IX-6) + 00001E4C DD 46 FB 4364 LD B,(IX-5) + 00001E4F 09 4365 ADD HL,BC + 00001E50 23 4366 INC HL + 00001E51 CB EE 4367 SET 5,(HL) + 00001E53 4368 ?0293: + 00001E53 21 17 00 4369 LD HL,23 + 00001E56 DD 4E FA 4370 LD C,(IX-6) + 00001E59 DD 46 FB 4371 LD B,(IX-5) + 00001E5C 09 4372 ADD HL,BC + 00001E5D 36 6D 4373 LD (HL),LOW(rootWindow_handler) + 00001E5F 23 4374 INC HL + 00001E60 36 19 4375 LD (HL),HIGH(rootWindow_handler) + 00001E62 23 4376 INC HL + 00001E63 36 6D 4377 LD (HL),BYTE3 rootWindow_handler + 00001E65 21 1A 00 4378 LD HL,26 + 00001E68 09 4379 ADD HL,BC + 00001E69 36 CC 4380 LD (HL),LOW(Root_paint) + 00001E6B 23 4381 INC HL + 00001E6C 36 0F 4382 LD (HL),HIGH(Root_paint) + 00001E6E 23 4383 INC HL + 00001E6F 36 CC 4384 LD (HL),BYTE3 Root_paint + 00001E71 DD 4E FC 4385 LD C,(IX-4) + 00001E74 DD 46 FD 4386 LD B,(IX-3) + 00001E77 DD 5E FA 4387 LD E,(IX-6) + 00001E7A DD 56 FB 4388 LD D,(IX-5) + 00001E7D 3E 8B 4389 LD A,BYTE3 screenbuilder + 00001E7F 21 8B 19 4390 LD HL,LWRD screenbuilder + 00001E82 CD 00 00 4391 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001E85 DD 4E FA 4392 LD C,(IX-6) + 00001E88 DD 46 FB 4393 LD B,(IX-5) + 00001E8B C5 4394 PUSH BC + 00001E8C FD 5E 11 4395 LD E,(IY+17) + 00001E8F FD 56 12 4396 LD D,(IY+18) + 00001E92 FD 6E 11 4397 LD L,(IY+17) + 00001E95 FD 66 12 4398 LD H,(IY+18) + 00001E98 01 1D 00 4399 LD BC,29 + 00001E9B 09 4400 ADD HL,BC + 00001E9C 4E 4401 LD C,(HL) + 00001E9D 23 4402 INC HL + 00001E9E 46 4403 LD B,(HL) + 00001E9F 23 4404 INC HL + 00001EA0 7E 4405 LD A,(HL) + 00001EA1 69 4406 LD L,C + 00001EA2 60 4407 LD H,B + 00001EA3 C1 4408 POP BC + 00001EA4 CD 00 00 4409 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001EA7 4410 ?0291: + 00001EA7 DD 6E F8 4411 LD L,(IX-8) + 00001EAA DD 66 F9 4412 LD H,(IX-7) + 00001EAD 23 4413 INC HL + 00001EAE 23 4414 INC HL + 00001EAF 23 4415 INC HL + 00001EB0 3E 04 4416 LD A,4 + 00001EB2 AE 4417 XOR (HL) + 00001EB3 23 4418 INC HL + 00001EB4 B6 4419 OR (HL) + 00001EB5 C2 45 20 4420 JP NZ,?0295 + 00001EB8 4421 ?0294: + 00001EB8 21 01 00 4422 LD HL,1 + 00001EBB E5 4423 PUSH HL + 00001EBC FD 6E 11 4424 LD L,(IY+17) + 00001EBF FD 66 12 4425 LD H,(IY+18) + 00001EC2 01 08 00 4426 LD BC,8 + 00001EC5 09 4427 ADD HL,BC + 00001EC6 46 4428 LD B,(HL) + 00001EC7 23 4429 INC HL + 00001EC8 66 4430 LD H,(HL) + 00001EC9 68 4431 LD L,B + 00001ECA 01 F6 FF 4432 LD BC,65526 + 00001ECD 09 4433 ADD HL,BC + 00001ECE E5 4434 PUSH HL + 00001ECF FD 6E 11 4435 LD L,(IY+17) + 00001ED2 FD 66 12 4436 LD H,(IY+18) + 00001ED5 01 06 00 4437 LD BC,6 + 00001ED8 09 4438 ADD HL,BC + 00001ED9 46 4439 LD B,(HL) + 00001EDA 23 4440 INC HL + 00001EDB 66 4441 LD H,(HL) + 00001EDC 68 4442 LD L,B + 00001EDD 01 F6 FF 4443 LD BC,65526 + 00001EE0 09 4444 ADD HL,BC + 00001EE1 E5 4445 PUSH HL + 00001EE2 01 05 00 4446 LD BC,5 + 00001EE5 59 4447 LD E,C + 00001EE6 50 4448 LD D,B + 00001EE7 3E 8E 4449 LD A,BYTE3 Dialog_new + 00001EE9 21 8E 15 4450 LD HL,LWRD Dialog_new + 00001EEC CD 00 00 4451 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001EEF F1 4452 POP AF + 00001EF0 F1 4453 POP AF + 00001EF1 F1 4454 POP AF + 00001EF2 DD 75 FA 4455 LD (IX-6),L + 00001EF5 DD 74 FB 4456 LD (IX-5),H + 00001EF8 01 0A 00 4457 LD BC,10 + 00001EFB 09 4458 ADD HL,BC + 00001EFC 36 03 4459 LD (HL),3 + 00001EFE 23 4460 INC HL + 00001EFF 36 10 4461 LD (HL),16 + 00001F01 21 0E 00 4462 LD HL,14 + 00001F04 DD 4E FA 4463 LD C,(IX-6) + 00001F07 DD 46 FB 4464 LD B,(IX-5) + 00001F0A 09 4465 ADD HL,BC + 00001F0B 36 30 4466 LD (HL),48 + 00001F0D 23 4467 INC HL + 00001F0E 36 00 4468 LD (HL),0 + 00001F10 AF 4469 XOR A + 00001F11 DD 77 FE 4470 LD (IX-2),A + 00001F14 DD 77 FF 4471 LD (IX-1),A + 00001F17 4472 ?0297: + 00001F17 21 05 00 4473 LD HL,5 + 00001F1A DD 4E F8 4474 LD C,(IX-8) + 00001F1D DD 46 F9 4475 LD B,(IX-7) + 00001F20 09 4476 ADD HL,BC + 00001F21 5E 4477 LD E,(HL) + 00001F22 23 4478 INC HL + 00001F23 56 4479 LD D,(HL) + 00001F24 06 0C 4480 LD B,12 + 00001F26 CD 00 00 4481 CALL LWRD ?SS_RSH_L02 + 00001F29 4B 4482 LD C,E + 00001F2A 42 4483 LD B,D + 00001F2B DD 6E FE 4484 LD L,(IX-2) + 00001F2E DD 66 FF 4485 LD H,(IX-1) + 00001F31 CD 00 00 4486 CALL LWRD ?SS_CMP_L02 + 00001F34 30 04 4487 JR NC,?0377 + 00001F36 3E 01 4488 LD A,1 + 00001F38 18 01 4489 JR ?0378 + 00001F3A 4490 ?0377: + 00001F3A AF 4491 XOR A + 00001F3B 4492 ?0378: + 00001F3B E6 0F 4493 AND 15 + 00001F3D CA D9 1F 4494 JP Z,?0296 + 00001F40 4495 ?0298: + 00001F40 21 05 00 4496 LD HL,5 + 00001F43 DD 4E F8 4497 LD C,(IX-8) + 00001F46 DD 46 F9 4498 LD B,(IX-7) + 00001F49 09 4499 ADD HL,BC + 00001F4A 46 4500 LD B,(HL) + 00001F4B 23 4501 INC HL + 00001F4C 7E 4502 LD A,(HL) + 00001F4D 68 4503 LD L,B + 00001F4E E6 0F 4504 AND 15 + 00001F50 67 4505 LD H,A + 00001F51 DD 4E FE 4506 LD C,(IX-2) + 00001F54 DD 46 FF 4507 LD B,(IX-1) + 00001F57 09 4508 ADD HL,BC + 00001F58 29 4509 ADD HL,HL + 00001F59 E5 4510 PUSH HL + 00001F5A 21 0C 00 4511 LD HL,12 + 00001F5D ED 5B 00 00 4512 LD DE,(global) + 00001F61 19 4513 ADD HL,DE + 00001F62 5E 4514 LD E,(HL) + 00001F63 23 4515 INC HL + 00001F64 56 4516 LD D,(HL) + 00001F65 E1 4517 POP HL + 00001F66 19 4518 ADD HL,DE + 00001F67 2B 4519 DEC HL + 00001F68 2B 4520 DEC HL + 00001F69 5E 4521 LD E,(HL) + 00001F6A 23 4522 INC HL + 00001F6B 56 4523 LD D,(HL) + 00001F6C D5 4524 PUSH DE + 00001F6D 21 10 00 4525 LD HL,16 + 00001F70 E5 4526 PUSH HL + 00001F71 2E 06 4527 LD L,6 + 00001F73 DD 5E FA 4528 LD E,(IX-6) + 00001F76 DD 56 FB 4529 LD D,(IX-5) + 00001F79 19 4530 ADD HL,DE + 00001F7A 6E 4531 LD L,(HL) + 00001F7B 26 00 4532 LD H,0 + 00001F7D 01 F0 FF 4533 LD BC,65520 + 00001F80 09 4534 ADD HL,BC + 00001F81 E5 4535 PUSH HL + 00001F82 DD 6E FE 4536 LD L,(IX-2) + 00001F85 DD 66 FF 4537 LD H,(IX-1) + 00001F88 29 4538 ADD HL,HL + 00001F89 29 4539 ADD HL,HL + 00001F8A 4D 4540 LD C,L + 00001F8B 44 4541 LD B,H + 00001F8C 29 4542 ADD HL,HL + 00001F8D 09 4543 ADD HL,BC + 00001F8E 01 14 00 4544 LD BC,20 + 00001F91 09 4545 ADD HL,BC + 00001F92 4D 4546 LD C,L + 00001F93 44 4547 LD B,H + 00001F94 11 08 00 4548 LD DE,8 + 00001F97 3E 09 4549 LD A,BYTE3 Label_new + 00001F99 21 09 19 4550 LD HL,LWRD Label_new + 00001F9C CD 00 00 4551 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001F9F F1 4552 POP AF + 00001FA0 F1 4553 POP AF + 00001FA1 F1 4554 POP AF + 00001FA2 DD 75 FC 4555 LD (IX-4),L + 00001FA5 DD 74 FD 4556 LD (IX-3),H + 00001FA8 01 0E 00 4557 LD BC,14 + 00001FAB 09 4558 ADD HL,BC + 00001FAC 36 30 4559 LD (HL),48 + 00001FAE 23 4560 INC HL + 00001FAF 70 4561 LD (HL),B + 00001FB0 DD 4E FC 4562 LD C,(IX-4) + 00001FB3 DD 46 FD 4563 LD B,(IX-3) + 00001FB6 C5 4564 PUSH BC + 00001FB7 DD 5E FA 4565 LD E,(IX-6) + 00001FBA 4B 4566 LD C,E + 00001FBB DD 56 FB 4567 LD D,(IX-5) + 00001FBE 42 4568 LD B,D + 00001FBF 21 1D 00 4569 LD HL,29 + 00001FC2 09 4570 ADD HL,BC + 00001FC3 4E 4571 LD C,(HL) + 00001FC4 23 4572 INC HL + 00001FC5 46 4573 LD B,(HL) + 00001FC6 23 4574 INC HL + 00001FC7 7E 4575 LD A,(HL) + 00001FC8 69 4576 LD L,C + 00001FC9 60 4577 LD H,B + 00001FCA C1 4578 POP BC + 00001FCB CD 00 00 4579 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001FCE DD 34 FE 4580 INC (IX-2) + 00001FD1 20 03 4581 JR NZ,?0379 + 00001FD3 DD 34 FF 4582 INC (IX-1) + 00001FD6 4583 ?0379: + 00001FD6 C3 17 1F 4584 JP LWRD ?0297 + 00001FD9 4585 ?0296: + 00001FD9 01 2B 00 4586 LD BC,?0300 + 00001FDC DD 5E FA 4587 LD E,(IX-6) + 00001FDF DD 56 FB 4588 LD D,(IX-5) + 00001FE2 3E E8 4589 LD A,BYTE3 Component_setlabel + 00001FE4 21 E8 06 4590 LD HL,LWRD Component_setlabel + 00001FE7 CD 00 00 4591 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00001FEA 01 FF 00 4592 LD BC,255 + 00001FED CD B9 20 4593 CALL LWRD ?0485 + 00001FF0 01 0E 00 4594 LD BC,14 + 00001FF3 09 4595 ADD HL,BC + 00001FF4 36 30 4596 LD (HL),48 + 00001FF6 23 4597 INC HL + 00001FF7 70 4598 LD (HL),B + 00001FF8 0E FE 4599 LD C,254 + 00001FFA CD B9 20 4600 CALL LWRD ?0485 + 00001FFD EB 4601 EX DE,HL + 00001FFE CD 1E 0A 4602 CALL LWRD ?0467 + 00002001 DD 4E FA 4603 LD C,(IX-6) + 00002004 DD 46 FB 4604 LD B,(IX-5) + 00002007 C5 4605 PUSH BC + 00002008 FD 5E 11 4606 LD E,(IY+17) + 0000200B FD 56 12 4607 LD D,(IY+18) + 0000200E FD 6E 11 4608 LD L,(IY+17) + 00002011 FD 66 12 4609 LD H,(IY+18) + 00002014 01 1D 00 4610 LD BC,29 + 00002017 09 4611 ADD HL,BC + 00002018 4E 4612 LD C,(HL) + 00002019 23 4613 INC HL + 0000201A 46 4614 LD B,(HL) + 0000201B 23 4615 INC HL + 0000201C 7E 4616 LD A,(HL) + 0000201D 69 4617 LD L,C + 0000201E 60 4618 LD H,B + 0000201F C1 4619 POP BC + 00002020 CD 00 00 4620 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002023 21 00 00 4621 LD HL,0 + 00002026 E5 4622 PUSH HL + 00002027 FD 5E 11 4623 LD E,(IY+17) + 0000202A FD 56 12 4624 LD D,(IY+18) + 0000202D FD 6E 11 4625 LD L,(IY+17) + 00002030 FD 66 12 4626 LD H,(IY+18) + 00002033 01 17 00 4627 LD BC,23 + 00002036 09 4628 ADD HL,BC + 00002037 4E 4629 LD C,(HL) + 00002038 23 4630 INC HL + 00002039 46 4631 LD B,(HL) + 0000203A 23 4632 INC HL + 0000203B 7E 4633 LD A,(HL) + 0000203C 69 4634 LD L,C + 0000203D 60 4635 LD H,B + 0000203E 01 03 01 4636 LD BC,259 + 00002041 CD 00 00 4637 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002044 E1 4638 POP HL + 00002045 4639 ?0295: + 00002045 DD 6E F8 4640 LD L,(IX-8) + 00002048 DD 66 F9 4641 LD H,(IX-7) + 0000204B 23 4642 INC HL + 0000204C 23 4643 INC HL + 0000204D 23 4644 INC HL + 0000204E 3E 05 4645 LD A,5 + 00002050 AE 4646 XOR (HL) + 00002051 23 4647 INC HL + 00002052 B6 4648 OR (HL) + 00002053 20 1D 4649 JR NZ,?0302 + 00002055 4650 ?0301: + 00002055 21 05 00 4651 LD HL,5 + 00002058 DD 4E F8 4652 LD C,(IX-8) + 0000205B DD 46 F9 4653 LD B,(IX-7) + 0000205E 09 4654 ADD HL,BC + 0000205F 5E 4655 LD E,(HL) + 00002060 23 4656 INC HL + 00002061 56 4657 LD D,(HL) + 00002062 D5 4658 PUSH DE + 00002063 21 07 00 4659 LD HL,7 + 00002066 09 4660 ADD HL,BC + 00002067 4D 4661 LD C,L + 00002068 44 4662 LD B,H + 00002069 2A 00 00 4663 LD HL,(global) + 0000206C 23 4664 INC HL + 0000206D 23 4665 INC HL + 0000206E CD 26 01 4666 CALL LWRD ?0445 + 00002071 F1 4667 POP AF + 00002072 4668 ?0302: + 00002072 DD 6E F8 4669 LD L,(IX-8) + 00002075 DD 66 F9 4670 LD H,(IX-7) + 00002078 23 4671 INC HL + 00002079 23 4672 INC HL + 0000207A 23 4673 INC HL + 0000207B 3E 06 4674 LD A,6 + 0000207D AE 4675 XOR (HL) + 0000207E 23 4676 INC HL + 0000207F B6 4677 OR (HL) + 00002080 20 16 4678 JR NZ,?0304 + 00002082 4679 ?0303: + 00002082 21 05 00 4680 LD HL,5 + 00002085 DD 4E F8 4681 LD C,(IX-8) + 00002088 DD 46 F9 4682 LD B,(IX-7) + 0000208B 09 4683 ADD HL,BC + 0000208C 5E 4684 LD E,(HL) + 0000208D 23 4685 INC HL + 0000208E 56 4686 LD D,(HL) + 0000208F D5 4687 PUSH DE + 00002090 21 07 00 4688 LD HL,7 + 00002093 09 4689 ADD HL,BC + 00002094 CD 1C 01 4690 CALL LWRD ?0446 + 00002097 F1 4691 POP AF + 00002098 4692 ?0304: + 00002098 21 18 00 4693 LD HL,24 + 0000209B ED 4B 00 00 4694 LD BC,(global) + 0000209F 09 4695 ADD HL,BC + 000020A0 7E 4696 LD A,(HL) + 000020A1 23 4697 INC HL + 000020A2 B6 4698 OR (HL) + 000020A3 23 4699 INC HL + 000020A4 B6 4700 OR (HL) + 000020A5 28 0D 4701 JR Z,?0306 + 000020A7 4702 ?0305: + 000020A7 FD E5 4703 PUSH IY + 000020A9 D1 4704 POP DE + 000020AA 21 18 00 4705 LD HL,24 + 000020AD ED 4B 00 00 4706 LD BC,(global) + 000020B1 CD FF 0D 4707 CALL LWRD ?0451 + 000020B4 4708 ?0306: + 000020B4 FD E1 4709 POP IY + 000020B6 C3 00 00 4710 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000020B9 4711 ?0485: + 000020B9 DD 5E FA 4712 LD E,(IX-6) + 000020BC DD 56 FB 4713 LD D,(IX-5) + 000020BF 3E 1D 4714 LD A,BYTE3 Component_find + 000020C1 21 1D 08 4715 LD HL,LWRD Component_find + 000020C4 C3 00 00 4716 JP LWRD ?BANK_CALL_DIRECT_L08 + 000020C7 4717 read_stringtable: + 000020C7 CD 00 00 4718 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000020CA F8 FF 4719 DEFW -8 + 000020CC FD E5 4720 PUSH IY + 000020CE 03 4721 INC BC + 000020CF 0A 4722 LD A,(BC) + 000020D0 DD 77 FE 4723 LD (IX-2),A + 000020D3 03 4724 INC BC + 000020D4 0A 4725 LD A,(BC) + 000020D5 DD 77 FF 4726 LD (IX-1),A + 000020D8 03 4727 INC BC + 000020D9 69 4728 LD L,C + 000020DA 60 4729 LD H,B + 000020DB 4E 4730 LD C,(HL) + 000020DC DD 71 FC 4731 LD (IX-4),C + 000020DF 23 4732 INC HL + 000020E0 46 4733 LD B,(HL) + 000020E1 DD 70 FD 4734 LD (IX-3),B + 000020E4 DD 6E FE 4735 LD L,(IX-2) + 000020E7 67 4736 LD H,A + 000020E8 29 4737 ADD HL,HL + 000020E9 EB 4738 EX DE,HL + 000020EA CD 32 1D 4739 CALL LWRD ?0466 + 000020ED DD 75 FA 4740 LD (IX-6),L + 000020F0 DD 74 FB 4741 LD (IX-5),H + 000020F3 59 4742 LD E,C + 000020F4 50 4743 LD D,B + 000020F5 CD 5D 05 4744 CALL LWRD ?0457 + 000020F8 C5 4745 PUSH BC + 000020F9 4D 4746 LD C,L + 000020FA 44 4747 LD B,H + 000020FB DD 5E 02 4748 LD E,(IX+2) + 000020FE DD 56 03 4749 LD D,(IX+3) + 00002101 3E 00 4750 LD A,BYTE3 _read + 00002103 21 00 00 4751 LD HL,LWRD _read + 00002106 CD 00 00 4752 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002109 F1 4753 POP AF + 0000210A 11 00 00 4754 LD DE,0 + 0000210D AF 4755 XOR A + 0000210E DD 77 F8 4756 LD (IX-8),A + 00002111 DD 77 F9 4757 LD (IX-7),A + 00002114 4758 ?0308: + 00002114 DD 4E FC 4759 LD C,(IX-4) + 00002117 DD 46 FD 4760 LD B,(IX-3) + 0000211A 6B 4761 LD L,E + 0000211B 62 4762 LD H,D + 0000211C CD 00 00 4763 CALL LWRD ?SS_CMP_L02 + 0000211F 30 35 4764 JR NC,?0307 + 00002121 CD 92 21 4765 CALL LWRD ?0488 + 00002124 30 30 4766 JR NC,?0307 + 00002126 4767 ?0311: + 00002126 4768 ?0310: + 00002126 4769 ?0309: + 00002126 23 4770 INC HL + 00002127 DD 75 F8 4771 LD (IX-8),L + 0000212A DD 74 F9 4772 LD (IX-7),H + 0000212D 2B 4773 DEC HL + 0000212E 29 4774 ADD HL,HL + 0000212F DD 4E FA 4775 LD C,(IX-6) + 00002132 DD 46 FB 4776 LD B,(IX-5) + 00002135 09 4777 ADD HL,BC + 00002136 E5 4778 PUSH HL + 00002137 FD E5 4779 PUSH IY + 00002139 E1 4780 POP HL + 0000213A 19 4781 ADD HL,DE + 0000213B 4D 4782 LD C,L + 0000213C 44 4783 LD B,H + 0000213D E1 4784 POP HL + 0000213E 71 4785 LD (HL),C + 0000213F 23 4786 INC HL + 00002140 70 4787 LD (HL),B + 00002141 4788 ?0313: + 00002141 FD E5 4789 PUSH IY + 00002143 E1 4790 POP HL + 00002144 19 4791 ADD HL,DE + 00002145 7E 4792 LD A,(HL) + 00002146 B7 4793 OR A + 00002147 28 03 4794 JR Z,?0312 + 00002149 4795 ?0314: + 00002149 13 4796 INC DE + 0000214A 18 F5 4797 JR ?0313 + 0000214C 4798 ?0312: + 0000214C 6B 4799 LD L,E + 0000214D 62 4800 LD H,D + 0000214E 13 4801 INC DE + 0000214F FD E5 4802 PUSH IY + 00002151 C1 4803 POP BC + 00002152 09 4804 ADD HL,BC + 00002153 77 4805 LD (HL),A + 00002154 18 BE 4806 JR ?0308 + 00002156 4807 ?0307: + 00002156 CD 92 21 4808 CALL LWRD ?0488 + 00002159 30 13 4809 JR NC,?0316 + 0000215B 4810 ?0315: + 0000215B 29 4811 ADD HL,HL + 0000215C DD 4E FA 4812 LD C,(IX-6) + 0000215F DD 46 FB 4813 LD B,(IX-5) + 00002162 09 4814 ADD HL,BC + 00002163 E5 4815 PUSH HL + 00002164 FD E5 4816 PUSH IY + 00002166 E1 4817 POP HL + 00002167 19 4818 ADD HL,DE + 00002168 4D 4819 LD C,L + 00002169 44 4820 LD B,H + 0000216A E1 4821 POP HL + 0000216B 71 4822 LD (HL),C + 0000216C 23 4823 INC HL + 0000216D 70 4824 LD (HL),B + 0000216E 4825 ?0316: + 0000216E 21 0A 00 4826 LD HL,10 + 00002171 ED 4B 00 00 4827 LD BC,(global) + 00002175 09 4828 ADD HL,BC + 00002176 FD E5 4829 PUSH IY + 00002178 C1 4830 POP BC + 00002179 71 4831 LD (HL),C + 0000217A 23 4832 INC HL + 0000217B 70 4833 LD (HL),B + 0000217C 21 0C 00 4834 LD HL,12 + 0000217F ED 4B 00 00 4835 LD BC,(global) + 00002183 09 4836 ADD HL,BC + 00002184 DD 4E FA 4837 LD C,(IX-6) + 00002187 71 4838 LD (HL),C + 00002188 DD 46 FB 4839 LD B,(IX-5) + 0000218B 23 4840 INC HL + 0000218C 70 4841 LD (HL),B + 0000218D FD E1 4842 POP IY + 0000218F C3 00 00 4843 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00002192 4844 ?0488: + 00002192 DD 4E FE 4845 LD C,(IX-2) + 00002195 DD 46 FF 4846 LD B,(IX-1) + 00002198 DD 6E F8 4847 LD L,(IX-8) + 0000219B DD 66 F9 4848 LD H,(IX-7) + 0000219E C3 00 00 4849 JP LWRD ?SS_CMP_L02 + 000021A1 4850 gui_globals: + 000021A1 2A 00 00 4851 LD HL,(global) + 000021A4 C3 00 00 4852 JP LWRD ?BANK_FAST_LEAVE_L08 + 000021A7 4853 GUIinit: + 000021A7 C5 4854 PUSH BC + 000021A8 D5 4855 PUSH DE + 000021A9 11 1B 00 4856 LD DE,27 + 000021AC CD 32 1D 4857 CALL LWRD ?0466 + 000021AF 22 00 00 4858 LD (global),HL + 000021B2 AF 4859 XOR A + 000021B3 77 4860 LD (HL),A + 000021B4 23 4861 INC HL + 000021B5 77 4862 LD (HL),A + 000021B6 21 08 00 4863 LD HL,8 + 000021B9 ED 4B 00 00 4864 LD BC,(global) + 000021BD 09 4865 ADD HL,BC + 000021BE 77 4866 LD (HL),A + 000021BF 23 4867 INC HL + 000021C0 77 4868 LD (HL),A + 000021C1 21 12 00 4869 LD HL,18 + 000021C4 ED 4B 00 00 4870 LD BC,(global) + 000021C8 09 4871 ADD HL,BC + 000021C9 77 4872 LD (HL),A + 000021CA 23 4873 INC HL + 000021CB 77 4874 LD (HL),A + 000021CC 21 14 00 4875 LD HL,20 + 000021CF ED 4B 00 00 4876 LD BC,(global) + 000021D3 09 4877 ADD HL,BC + 000021D4 77 4878 LD (HL),A + 000021D5 23 4879 INC HL + 000021D6 77 4880 LD (HL),A + 000021D7 21 0C 00 4881 LD HL,12 + 000021DA ED 4B 00 00 4882 LD BC,(global) + 000021DE 09 4883 ADD HL,BC + 000021DF 77 4884 LD (HL),A + 000021E0 23 4885 INC HL + 000021E1 77 4886 LD (HL),A + 000021E2 21 0A 00 4887 LD HL,10 + 000021E5 ED 4B 00 00 4888 LD BC,(global) + 000021E9 09 4889 ADD HL,BC + 000021EA 77 4890 LD (HL),A + 000021EB 23 4891 INC HL + 000021EC 77 4892 LD (HL),A + 000021ED 21 18 00 4893 LD HL,24 + 000021F0 ED 4B 00 00 4894 LD BC,(global) + 000021F4 09 4895 ADD HL,BC + 000021F5 77 4896 LD (HL),A + 000021F6 23 4897 INC HL + 000021F7 77 4898 LD (HL),A + 000021F8 23 4899 INC HL + 000021F9 77 4900 LD (HL),A + 000021FA 3E 1B 4901 LD A,BYTE3 GraphicsOpen + 000021FC 21 1B 00 4902 LD HL,LWRD GraphicsOpen + 000021FF CD 00 00 4903 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002202 21 00 00 4904 LD HL,0 + 00002205 E5 4905 PUSH HL + 00002206 E5 4906 PUSH HL + 00002207 0E FF 4907 LD C,BYTE3 stringheight01 + 00002209 C5 4908 PUSH BC + 0000220A 21 FF 05 4909 LD HL,LWRD stringheight01 + 0000220D E5 4910 PUSH HL + 0000220E 0E 1B 4911 LD C,BYTE3 stringwidth0 + 00002210 C5 4912 PUSH BC + 00002211 21 1B 06 4913 LD HL,LWRD stringwidth0 + 00002214 E5 4914 PUSH HL + 00002215 11 30 00 4915 LD DE,48 + 00002218 CD C6 22 4916 CALL LWRD ?0494 + 0000221B 21 0C 00 4917 LD HL,12 + 0000221E 39 4918 ADD HL,SP + 0000221F F9 4919 LD SP,HL + 00002220 21 00 00 4920 LD HL,0 + 00002223 E5 4921 PUSH HL + 00002224 E5 4922 PUSH HL + 00002225 0E FF 4923 LD C,BYTE3 stringheight01 + 00002227 C5 4924 PUSH BC + 00002228 21 FF 05 4925 LD HL,LWRD stringheight01 + 0000222B E5 4926 PUSH HL + 0000222C 0E 2C 4927 LD C,BYTE3 stringwidth1 + 0000222E C5 4928 PUSH BC + 0000222F 21 2C 06 4929 LD HL,LWRD stringwidth1 + 00002232 E5 4930 PUSH HL + 00002233 11 31 00 4931 LD DE,49 + 00002236 CD C6 22 4932 CALL LWRD ?0494 + 00002239 21 0C 00 4933 LD HL,12 + 0000223C 39 4934 ADD HL,SP + 0000223D F9 4935 LD SP,HL + 0000223E 21 00 00 4936 LD HL,0 + 00002241 E5 4937 PUSH HL + 00002242 E5 4938 PUSH HL + 00002243 0E 12 4939 LD C,BYTE3 stringheight2 + 00002245 C5 4940 PUSH BC + 00002246 21 12 06 4941 LD HL,LWRD stringheight2 + 00002249 E5 4942 PUSH HL + 0000224A 0E 35 4943 LD C,BYTE3 stringwidth2 + 0000224C C5 4944 PUSH BC + 0000224D 21 35 06 4945 LD HL,LWRD stringwidth2 + 00002250 E5 4946 PUSH HL + 00002251 11 32 00 4947 LD DE,50 + 00002254 CD C6 22 4948 CALL LWRD ?0494 + 00002257 21 0C 00 4949 LD HL,12 + 0000225A 39 4950 ADD HL,SP + 0000225B F9 4951 LD SP,HL + 0000225C 21 16 00 4952 LD HL,22 + 0000225F ED 4B 00 00 4953 LD BC,(global) + 00002263 09 4954 ADD HL,BC + 00002264 E5 4955 PUSH HL + 00002265 11 80 00 4956 LD DE,128 + 00002268 D5 4957 PUSH DE + 00002269 5A 4958 LD E,D + 0000226A D5 4959 PUSH DE + 0000226B 4B 4960 LD C,E + 0000226C 42 4961 LD B,D + 0000226D 3E 11 4962 LD A,BYTE3 Window_new + 0000226F 21 11 10 4963 LD HL,LWRD Window_new + 00002272 CD 00 00 4964 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002275 F1 4965 POP AF + 00002276 F1 4966 POP AF + 00002277 4D 4967 LD C,L + 00002278 44 4968 LD B,H + 00002279 E1 4969 POP HL + 0000227A 71 4970 LD (HL),C + 0000227B 23 4971 INC HL + 0000227C 70 4972 LD (HL),B + 0000227D 21 16 00 4973 LD HL,22 + 00002280 ED 4B 00 00 4974 LD BC,(global) + 00002284 09 4975 ADD HL,BC + 00002285 56 4976 LD D,(HL) + 00002286 23 4977 INC HL + 00002287 66 4978 LD H,(HL) + 00002288 6A 4979 LD L,D + 00002289 11 0A 00 4980 LD DE,10 + 0000228C 19 4981 ADD HL,DE + 0000228D 36 01 4982 LD (HL),1 + 0000228F 23 4983 INC HL + 00002290 72 4984 LD (HL),D + 00002291 21 16 00 4985 LD HL,22 + 00002294 ED 4B 00 00 4986 LD BC,(global) + 00002298 09 4987 ADD HL,BC + 00002299 56 4988 LD D,(HL) + 0000229A 23 4989 INC HL + 0000229B 66 4990 LD H,(HL) + 0000229C 6A 4991 LD L,D + 0000229D 11 17 00 4992 LD DE,23 + 000022A0 19 4993 ADD HL,DE + 000022A1 36 6D 4994 LD (HL),LOW(rootWindow_handler) + 000022A3 23 4995 INC HL + 000022A4 36 19 4996 LD (HL),HIGH(rootWindow_handler) + 000022A6 23 4997 INC HL + 000022A7 36 6D 4998 LD (HL),BYTE3 rootWindow_handler + 000022A9 21 16 00 4999 LD HL,22 + 000022AC ED 4B 00 00 5000 LD BC,(global) + 000022B0 09 5001 ADD HL,BC + 000022B1 46 5002 LD B,(HL) + 000022B2 23 5003 INC HL + 000022B3 66 5004 LD H,(HL) + 000022B4 68 5005 LD L,B + 000022B5 01 1A 00 5006 LD BC,26 + 000022B8 09 5007 ADD HL,BC + 000022B9 36 CC 5008 LD (HL),LOW(Root_paint) + 000022BB 23 5009 INC HL + 000022BC 36 0F 5010 LD (HL),HIGH(Root_paint) + 000022BE 23 5011 INC HL + 000022BF 36 CC 5012 LD (HL),BYTE3 Root_paint + 000022C1 D1 5013 POP DE + 000022C2 C1 5014 POP BC + 000022C3 C3 00 00 5015 JP LWRD ?BANK_FAST_LEAVE_L08 + 000022C6 5016 ?0494: + 000022C6 3E C2 5017 LD A,BYTE3 loadFont + 000022C8 21 C2 04 5018 LD HL,LWRD loadFont + 000022CB C3 00 00 5019 JP LWRD ?BANK_CALL_DIRECT_L08 + 000022CE 5020 GUIunit: + 000022CE C5 5021 PUSH BC + 000022CF D5 5022 PUSH DE + 000022D0 21 16 00 5023 LD HL,22 + 000022D3 ED 4B 00 00 5024 LD BC,(global) + 000022D7 09 5025 ADD HL,BC + 000022D8 5E 5026 LD E,(HL) + 000022D9 23 5027 INC HL + 000022DA 56 5028 LD D,(HL) + 000022DB CD 1E 0A 5029 CALL LWRD ?0467 + 000022DE 3E 58 5030 LD A,BYTE3 ClearScreen + 000022E0 21 58 03 5031 LD HL,LWRD ClearScreen + 000022E3 CD 00 00 5032 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000022E6 3E 39 5033 LD A,BYTE3 GraphicsClose + 000022E8 21 39 01 5034 LD HL,LWRD GraphicsClose + 000022EB CD 00 00 5035 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000022EE D1 5036 POP DE + 000022EF C1 5037 POP BC + 000022F0 C3 00 00 5038 JP LWRD ?BANK_FAST_LEAVE_L08 + 000022F3 5039 GUIgo: + 000022F3 C5 5040 PUSH BC + 000022F4 DD E5 5041 PUSH IX + 000022F6 D5 5042 PUSH DE + 000022F7 F5 5043 PUSH AF + 000022F8 F5 5044 PUSH AF + 000022F9 F5 5045 PUSH AF + 000022FA F5 5046 PUSH AF + 000022FB 4B 5047 LD C,E + 000022FC 42 5048 LD B,D + 000022FD 21 16 00 5049 LD HL,22 + 00002300 ED 5B 00 00 5050 LD DE,(global) + 00002304 19 5051 ADD HL,DE + 00002305 5E 5052 LD E,(HL) + 00002306 23 5053 INC HL + 00002307 56 5054 LD D,(HL) + 00002308 3E 8B 5055 LD A,BYTE3 screenbuilder + 0000230A 21 8B 19 5056 LD HL,LWRD screenbuilder + 0000230D CD 00 00 5057 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002310 21 0E 00 5058 LD HL,14 + 00002313 ED 4B 00 00 5059 LD BC,(global) + 00002317 09 5060 ADD HL,BC + 00002318 E5 5061 PUSH HL + 00002319 11 10 00 5062 LD DE,16 + 0000231C CD 32 1D 5063 CALL LWRD ?0466 + 0000231F EB 5064 EX DE,HL + 00002320 E1 5065 POP HL + 00002321 73 5066 LD (HL),E + 00002322 23 5067 INC HL + 00002323 72 5068 LD (HL),D + 00002324 21 0E 00 5069 LD HL,14 + 00002327 ED 4B 00 00 5070 LD BC,(global) + 0000232B 09 5071 ADD HL,BC + 0000232C 7E 5072 LD A,(HL) + 0000232D 23 5073 INC HL + 0000232E 66 5074 LD H,(HL) + 0000232F 6F 5075 LD L,A + 00002330 36 00 5076 LD (HL),0 + 00002332 21 10 00 5077 LD HL,16 + 00002335 ED 4B 00 00 5078 LD BC,(global) + 00002339 09 5079 ADD HL,BC + 0000233A E5 5080 PUSH HL + 0000233B 11 00 00 5081 LD DE,0 + 0000233E D5 5082 PUSH DE + 0000233F 11 37 00 5083 LD DE,?0317 + 00002342 D5 5084 PUSH DE + 00002343 CD 14 01 5085 CALL LWRD ?0444 + 00002346 F1 5086 POP AF + 00002347 F1 5087 POP AF + 00002348 EB 5088 EX DE,HL + 00002349 E1 5089 POP HL + 0000234A 73 5090 LD (HL),E + 0000234B 23 5091 INC HL + 0000234C 72 5092 LD (HL),D + 0000234D 21 02 00 5093 LD HL,2 + 00002350 39 5094 ADD HL,SP + 00002351 E5 5095 PUSH HL + 00002352 21 00 00 5096 LD HL,0 + 00002355 E5 5097 PUSH HL + 00002356 2E 10 5098 LD L,16 + 00002358 ED 4B 00 00 5099 LD BC,(global) + 0000235C 09 5100 ADD HL,BC + 0000235D 5E 5101 LD E,(HL) + 0000235E 23 5102 INC HL + 0000235F 56 5103 LD D,(HL) + 00002360 D5 5104 PUSH DE + 00002361 CD 0C 01 5105 CALL LWRD ?0443 + 00002364 F1 5106 POP AF + 00002365 F1 5107 POP AF + 00002366 F1 5108 POP AF + 00002367 21 06 00 5109 LD HL,6 + 0000236A 39 5110 ADD HL,SP + 0000236B 36 60 5111 LD (HL),96 + 0000236D 23 5112 INC HL + 0000236E 36 00 5113 LD (HL),0 + 00002370 21 02 00 5114 LD HL,2 + 00002373 39 5115 ADD HL,SP + 00002374 E5 5116 PUSH HL + 00002375 21 01 00 5117 LD HL,1 + 00002378 E5 5118 PUSH HL + 00002379 2E 10 5119 LD L,16 + 0000237B 09 5120 ADD HL,BC + 0000237C 4E 5121 LD C,(HL) + 0000237D 23 5122 INC HL + 0000237E 46 5123 LD B,(HL) + 0000237F C5 5124 PUSH BC + 00002380 CD 0C 01 5125 CALL LWRD ?0443 + 00002383 F1 5126 POP AF + 00002384 F1 5127 POP AF + 00002385 F1 5128 POP AF + 00002386 DD 21 00 00 5129 LD IX,0 + 0000238A 5130 ?0319: + 0000238A 21 08 00 5131 LD HL,8 + 0000238D ED 4B 00 00 5132 LD BC,(global) + 00002391 09 5133 ADD HL,BC + 00002392 7E 5134 LD A,(HL) + 00002393 23 5135 INC HL + 00002394 B6 5136 OR (HL) + 00002395 C2 AB 24 5137 JP NZ,?0318 + 00002398 5138 ?0320: + 00002398 21 01 00 5139 LD HL,1 + 0000239B E5 5140 PUSH HL + 0000239C 23 5141 INC HL + 0000239D 39 5142 ADD HL,SP + 0000239E 4D 5143 LD C,L + 0000239F 44 5144 LD B,H + 000023A0 21 06 00 5145 LD HL,6 + 000023A3 ED 5B 00 00 5146 LD DE,(global) + 000023A7 19 5147 ADD HL,DE + 000023A8 5E 5148 LD E,(HL) + 000023A9 23 5149 INC HL + 000023AA 56 5150 LD D,(HL) + 000023AB 3E 00 5151 LD A,BYTE3 _read + 000023AD 21 00 00 5152 LD HL,LWRD _read + 000023B0 CD 00 00 5153 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000023B3 F1 5154 POP AF + 000023B4 3E 01 5155 LD A,1 + 000023B6 AD 5156 XOR L + 000023B7 B4 5157 OR H + 000023B8 20 67 5158 JR NZ,?0322 + 000023BA 5159 ?0321: + 000023BA 6F 5160 LD L,A + 000023BB 67 5161 LD H,A + 000023BC 39 5162 ADD HL,SP + 000023BD B6 5163 OR (HL) + 000023BE 28 2B 5164 JR Z,?0324 + 000023C0 5165 ?0323: + 000023C0 4F 5166 LD C,A + 000023C1 06 00 5167 LD B,0 + 000023C3 C5 5168 PUSH BC + 000023C4 21 16 00 5169 LD HL,22 + 000023C7 ED 5B 00 00 5170 LD DE,(global) + 000023CB 19 5171 ADD HL,DE + 000023CC 5E 5172 LD E,(HL) + 000023CD 23 5173 INC HL + 000023CE 56 5174 LD D,(HL) + 000023CF 21 16 00 5175 LD HL,22 + 000023D2 ED 4B 00 00 5176 LD BC,(global) + 000023D6 09 5177 ADD HL,BC + 000023D7 46 5178 LD B,(HL) + 000023D8 23 5179 INC HL + 000023D9 66 5180 LD H,(HL) + 000023DA 68 5181 LD L,B + 000023DB 01 17 00 5182 LD BC,23 + 000023DE 09 5183 ADD HL,BC + 000023DF 4E 5184 LD C,(HL) + 000023E0 23 5185 INC HL + 000023E1 46 5186 LD B,(HL) + 000023E2 23 5187 INC HL + 000023E3 7E 5188 LD A,(HL) + 000023E4 69 5189 LD L,C + 000023E5 60 5190 LD H,B + 000023E6 01 01 00 5191 LD BC,1 + 000023E9 18 29 5192 JR ?0381 + 000023EB 5193 ?0324: + 000023EB 23 5194 INC HL + 000023EC 4E 5195 LD C,(HL) + 000023ED 47 5196 LD B,A + 000023EE C5 5197 PUSH BC + 000023EF 21 16 00 5198 LD HL,22 + 000023F2 ED 5B 00 00 5199 LD DE,(global) + 000023F6 19 5200 ADD HL,DE + 000023F7 5E 5201 LD E,(HL) + 000023F8 23 5202 INC HL + 000023F9 56 5203 LD D,(HL) + 000023FA 21 16 00 5204 LD HL,22 + 000023FD ED 4B 00 00 5205 LD BC,(global) + 00002401 09 5206 ADD HL,BC + 00002402 46 5207 LD B,(HL) + 00002403 23 5208 INC HL + 00002404 66 5209 LD H,(HL) + 00002405 68 5210 LD L,B + 00002406 01 17 00 5211 LD BC,23 + 00002409 09 5212 ADD HL,BC + 0000240A 4E 5213 LD C,(HL) + 0000240B 23 5214 INC HL + 0000240C 46 5215 LD B,(HL) + 0000240D 23 5216 INC HL + 0000240E 7E 5217 LD A,(HL) + 0000240F 69 5218 LD L,C + 00002410 60 5219 LD H,B + 00002411 01 02 00 5220 LD BC,2 + 00002414 5221 ?0381: + 00002414 CD 00 00 5222 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00002417 E1 5223 POP HL + 00002418 5224 ?0325: + 00002418 21 01 00 5225 LD HL,1 + 0000241B 39 5226 ADD HL,SP + 0000241C E5 5227 PUSH HL + 0000241D 2B 5228 DEC HL + 0000241E 46 5229 LD B,(HL) + 0000241F E1 5230 POP HL + 00002420 70 5231 LD (HL),B + 00002421 5232 ?0322: + 00002421 21 01 00 5233 LD HL,1 + 00002424 E5 5234 PUSH HL + 00002425 23 5235 INC HL + 00002426 39 5236 ADD HL,SP + 00002427 4D 5237 LD C,L + 00002428 44 5238 LD B,H + 00002429 21 10 00 5239 LD HL,16 + 0000242C ED 5B 00 00 5240 LD DE,(global) + 00002430 19 5241 ADD HL,DE + 00002431 5E 5242 LD E,(HL) + 00002432 23 5243 INC HL + 00002433 56 5244 LD D,(HL) + 00002434 3E 00 5245 LD A,BYTE3 _read + 00002436 21 00 00 5246 LD HL,LWRD _read + 00002439 CD 00 00 5247 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000243C F1 5248 POP AF + 0000243D 3E 01 5249 LD A,1 + 0000243F AD 5250 XOR L + 00002440 B4 5251 OR H + 00002441 20 65 5252 JR NZ,?0330 + 00002443 5253 ?0326: + 00002443 6F 5254 LD L,A + 00002444 67 5255 LD H,A + 00002445 39 5256 ADD HL,SP + 00002446 3E 10 5257 LD A,16 + 00002448 BE 5258 CP (HL) + 00002449 21 0E 00 5259 LD HL,14 + 0000244C ED 4B 00 00 5260 LD BC,(global) + 00002450 30 15 5261 JR NC,?0329 + 00002452 5262 ?0328: + 00002452 09 5263 ADD HL,BC + 00002453 46 5264 LD B,(HL) + 00002454 23 5265 INC HL + 00002455 66 5266 LD H,(HL) + 00002456 68 5267 LD L,B + 00002457 DD E5 5268 PUSH IX + 00002459 C1 5269 POP BC + 0000245A 09 5270 ADD HL,BC + 0000245B E5 5271 PUSH HL + 0000245C 21 02 00 5272 LD HL,2 + 0000245F 39 5273 ADD HL,SP + 00002460 46 5274 LD B,(HL) + 00002461 E1 5275 POP HL + 00002462 70 5276 LD (HL),B + 00002463 DD 23 5277 INC IX + 00002465 18 41 5278 JR ?0330 + 00002467 5279 ?0329: + 00002467 09 5280 ADD HL,BC + 00002468 56 5281 LD D,(HL) + 00002469 23 5282 INC HL + 0000246A 66 5283 LD H,(HL) + 0000246B 6A 5284 LD L,D + 0000246C DD E5 5285 PUSH IX + 0000246E D1 5286 POP DE + 0000246F 19 5287 ADD HL,DE + 00002470 36 00 5288 LD (HL),0 + 00002472 21 0E 00 5289 LD HL,14 + 00002475 ED 4B 00 00 5290 LD BC,(global) + 00002479 09 5291 ADD HL,BC + 0000247A E5 5292 PUSH HL + 0000247B 21 16 00 5293 LD HL,22 + 0000247E ED 5B 00 00 5294 LD DE,(global) + 00002482 19 5295 ADD HL,DE + 00002483 5E 5296 LD E,(HL) + 00002484 23 5297 INC HL + 00002485 56 5298 LD D,(HL) + 00002486 21 16 00 5299 LD HL,22 + 00002489 ED 4B 00 00 5300 LD BC,(global) + 0000248D 09 5301 ADD HL,BC + 0000248E 46 5302 LD B,(HL) + 0000248F 23 5303 INC HL + 00002490 66 5304 LD H,(HL) + 00002491 68 5305 LD L,B + 00002492 01 17 00 5306 LD BC,23 + 00002495 09 5307 ADD HL,BC + 00002496 4E 5308 LD C,(HL) + 00002497 23 5309 INC HL + 00002498 46 5310 LD B,(HL) + 00002499 23 5311 INC HL + 0000249A 7E 5312 LD A,(HL) + 0000249B 69 5313 LD L,C + 0000249C 60 5314 LD H,B + 0000249D 01 01 04 5315 LD BC,1025 + 000024A0 CD 00 00 5316 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000024A3 E1 5317 POP HL + 000024A4 DD 21 00 00 5318 LD IX,0 + 000024A8 5319 ?0330: + 000024A8 5320 ?0327: + 000024A8 C3 8A 23 5321 JP LWRD ?0319 + 000024AB 5322 ?0318: + 000024AB 21 0A 00 5323 LD HL,10 + 000024AE 39 5324 ADD HL,SP + 000024AF F9 5325 LD SP,HL + 000024B0 DD E1 5326 POP IX + 000024B2 C1 5327 POP BC + 000024B3 C3 00 00 5328 JP LWRD ?BANK_FAST_LEAVE_L08 + 5329 RSEG CSTR + 00000000 5330 ?0001: + 00000000 2F 64 65 76 2F 6C 63 5331 DEFB '/dev/lcd0' 64 30 - 00000009 00 4995 DEFB 0 - 0000000A 4996 ?0221: - 0000000A 4F 4B 4997 DEFB 'OK' - 0000000C 00 4998 DEFB 0 - 0000000D 4999 ?0222: - 0000000D 43 61 6E 63 65 6C 5000 DEFB 'Cancel' - 00000013 00 5001 DEFB 0 - 00000014 5002 ?0249: - 00000014 00 5003 DEFB 0 - 00000015 5004 ?0299: - 00000015 4D 65 73 73 61 67 65 5005 DEFB 'Message Box' + 00000009 00 5332 DEFB 0 + 0000000A 5333 ?0002: + 0000000A 2F 64 65 76 2F 6C 63 5334 DEFB '/dev/lcd1' + 64 31 + 00000013 00 5335 DEFB 0 + 00000014 5336 ?0003: + 00000014 48 59 54 45 43 48 20 5337 DEFB 'HYTECH 1000' + 31 30 30 30 + 0000001F 00 5338 DEFB 0 + 00000020 5339 ?0223: + 00000020 4F 4B 5340 DEFB 'OK' + 00000022 00 5341 DEFB 0 + 00000023 5342 ?0224: + 00000023 43 61 6E 63 65 6C 5343 DEFB 'Cancel' + 00000029 00 5344 DEFB 0 + 0000002A 5345 ?0251: + 0000002A 00 5346 DEFB 0 + 0000002B 5347 ?0300: + 0000002B 4D 65 73 73 61 67 65 5348 DEFB 'Message Box' 20 42 6F 78 - 00000020 00 5006 DEFB 0 - 00000021 5007 ?0317: - 00000021 30 78 25 30 32 78 5008 DEFB '0x%02x' - 00000027 0A 00 5009 DEFB 10,0 - 5010 RSEG CONST - 00000000 5011 ?0000: - 00000000 1B 5012 DEFB 27 - 00000001 4B 5013 DEFB 'K' - 00000002 5014 ?0002: - 00000002 1B 5015 DEFB 27 - 00000003 53 5016 DEFB 'S' - 00000004 00 5017 DEFB 0 - 00000005 00 5018 DEFB 0 - 00000006 5019 ?0003: - 00000006 1B 5020 DEFB 27 - 00000007 43 5021 DEFB 'C' - 00000008 00 5022 DEFB 0 - 00000009 00 5023 DEFB 0 - 0000000A 5024 ?0004: - 0000000A 1B 5025 DEFB 27 - 0000000B 4E 5026 DEFB 'N' - 0000000C 00 5027 DEFB 0 - 0000000D 00 5028 DEFB 0 - 0000000E 5029 ?0005: - 0000000E 1B 5030 DEFB 27 - 0000000F 52 5031 DEFB 'R' - 00000010 00 5032 DEFB 0 - 00000011 00 5033 DEFB 0 - 00000012 5034 ?0006: - 00000012 1B 5035 DEFB 27 - 00000013 46 5036 DEFB 'F' - 00000014 00 5037 DEFB 0 - 00000015 00 5038 DEFB 0 - 00000016 5039 ?0007: - 00000016 1B 5040 DEFB 27 - 00000017 68 5041 DEFB 'h' - 00000018 00 5042 DEFB 0 - 00000019 00 5043 DEFB 0 - 0000001A 5044 ?0008: - 0000001A 1B 5045 DEFB 27 - 0000001B 5A 5046 DEFB 'Z' - 0000001C 00 5047 DEFB 0 - 0000001D 00 5048 DEFB 0 - 0000001E 00 5049 DEFB 0 - 0000001F 00 5050 DEFB 0 - 00000020 00 5051 DEFB 0 - 00000021 5052 ?0009: - 00000021 1B 5053 DEFB 27 - 00000022 45 5054 DEFB 'E' - 00000023 00 5055 DEFB 0 - 00000024 5056 ?0010: - 00000024 1B 5057 DEFB 27 - 00000025 00 5058 DEFB 0 - 00000026 5059 ?0286: - 00000026 2F 5060 DEFB '/' - 00000027 77 5061 DEFB 'w' - 00000028 6E 5062 DEFB 'n' - 00000029 64 5063 DEFB 'd' - 0000002A 2F 5064 DEFB '/' - 0000002B 30 5065 DEFB '0' - 0000002C 30 5066 DEFB '0' - 0000002D 30 5067 DEFB '0' - 0000002E 30 5068 DEFB '0' - 0000002F 2E 5069 DEFB '.' - 00000030 73 5070 DEFB 's' - 00000031 63 5071 DEFB 'c' - 00000032 72 5072 DEFB 'r' - 00000033 00 5073 DEFB 0 - 5074 RSEG UDATA0 - 00000000 5075 global: - 00000000 5076 DEFS 2 - 00000002 5077 END + 00000036 00 5349 DEFB 0 + 00000037 5350 ?0317: + 00000037 2F 64 65 76 2F 62 61 5351 DEFB '/dev/barcode' + 72 63 6F 64 65 + 00000043 00 5352 DEFB 0 + 5353 RSEG CONST + 00000000 5354 ?0000: + 00000000 1B 5355 DEFB 27 + 00000001 4B 5356 DEFB 'K' + 00000002 5357 ?0004: + 00000002 1B 5358 DEFB 27 + 00000003 53 5359 DEFB 'S' + 00000004 00 5360 DEFB 0 + 00000005 00 5361 DEFB 0 + 00000006 5362 ?0005: + 00000006 1B 5363 DEFB 27 + 00000007 43 5364 DEFB 'C' + 00000008 00 5365 DEFB 0 + 00000009 00 5366 DEFB 0 + 0000000A 5367 ?0006: + 0000000A 1B 5368 DEFB 27 + 0000000B 4E 5369 DEFB 'N' + 0000000C 00 5370 DEFB 0 + 0000000D 00 5371 DEFB 0 + 0000000E 5372 ?0007: + 0000000E 1B 5373 DEFB 27 + 0000000F 52 5374 DEFB 'R' + 00000010 00 5375 DEFB 0 + 00000011 00 5376 DEFB 0 + 00000012 5377 ?0008: + 00000012 1B 5378 DEFB 27 + 00000013 46 5379 DEFB 'F' + 00000014 00 5380 DEFB 0 + 00000015 00 5381 DEFB 0 + 00000016 5382 ?0009: + 00000016 1B 5383 DEFB 27 + 00000017 68 5384 DEFB 'h' + 00000018 00 5385 DEFB 0 + 00000019 00 5386 DEFB 0 + 0000001A 5387 ?0010: + 0000001A 1B 5388 DEFB 27 + 0000001B 5A 5389 DEFB 'Z' + 0000001C 00 5390 DEFB 0 + 0000001D 00 5391 DEFB 0 + 0000001E 00 5392 DEFB 0 + 0000001F 00 5393 DEFB 0 + 00000020 00 5394 DEFB 0 + 00000021 5395 ?0011: + 00000021 1B 5396 DEFB 27 + 00000022 45 5397 DEFB 'E' + 00000023 00 5398 DEFB 0 + 00000024 5399 ?0012: + 00000024 1B 5400 DEFB 27 + 00000025 00 5401 DEFB 0 + 5402 RSEG UDATA0 + 00000000 5403 global: + 00000000 5404 DEFS 2 + 00000002 5405 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] Symbol Table .__.ABS. = 00000000 G | 3 ?0000 00000000 R - 2 ?0001 00000000 R | 3 ?0002 00000002 R - 3 ?0003 00000006 R | 3 ?0004 0000000A R - 3 ?0005 0000000E R | 3 ?0006 00000012 R - 3 ?0007 00000016 R | 3 ?0008 0000001A R - 3 ?0009 00000021 R | 3 ?0010 00000024 R - 1 ?0011 000003A1 R | 1 ?0012 00000387 R - 1 ?0013 0000039B R | 1 ?0014 0000039B R - 1 ?0015 0000039B R | 1 ?0016 000003B2 R - 1 ?0017 000003DB R | 1 ?0018 000004A1 R - 1 ?0019 000004B1 R | 1 ?0020 000004C9 R - 1 ?0021 000004C3 R | 1 ?0022 000004B6 R - 1 ?0023 000004C3 R | 1 ?0024 00000547 R - 1 ?0025 000004E8 R | 1 ?0026 000004F7 R - 1 ?0027 0000053A R | 1 ?0028 00000521 R - 1 ?0029 00000526 R | 1 ?0030 0000052B R - 1 ?0031 00000530 R | 1 ?0032 00000535 R - 1 ?0033 0000055B R | 1 ?0034 00000561 R - 1 ?0035 0000056A R | 1 ?0036 0000056D R - 1 ?0037 0000056A R | 1 ?0038 0000056A R - 1 ?0039 0000056D R | 1 ?0040 00000698 R - 1 ?0041 0000066C R | 1 ?0042 00000683 R - 1 ?0043 00000683 R | 1 ?0044 00000683 R - 1 ?0045 000006C9 R | 1 ?0046 000006D2 R - 1 ?0047 000006F2 R | 1 ?0048 000006E5 R - 1 ?0049 000006D2 R | 1 ?0050 000006DA R - 1 ?0051 00000738 R | 1 ?0052 00000717 R - 1 ?0053 0000071E R | 1 ?0054 00000789 R - 1 ?0056 0000075A R | 1 ?0057 000007C1 R - 1 ?0058 000007A2 R | 1 ?0059 000007A6 R - 1 ?0060 000007B8 R | 1 ?0061 000007BB R - 1 ?0062 000007C3 R | 1 ?0063 000007EA R - 1 ?0064 00000979 R | 1 ?0065 00000803 R - 1 ?0066 000007EA R | 1 ?0067 000007F2 R - 1 ?0068 0000080C R | 1 ?0069 00000895 R - 1 ?0070 0000082C R | 1 ?0071 00000835 R - 1 ?0072 00000895 R | 1 ?0073 0000086E R - 1 ?0074 0000083F R | 1 ?0075 00000864 R - 1 ?0076 00000864 R | 1 ?0077 00000864 R - 1 ?0078 0000087D R | 1 ?0079 00000895 R - 1 ?0080 000008AC R | 1 ?0081 00000945 R - 1 ?0082 000008FA R | 1 ?0083 000008D2 R - 1 ?0084 000008EB R | 1 ?0085 000008EB R - 1 ?0086 000008EB R | 1 ?0087 00000902 R - 1 ?0088 00000945 R | 1 ?0089 00000953 R - 1 ?0090 0000095C R | 1 ?0091 0000096A R - 1 ?0092 00000973 R | 1 ?0093 0000096A R - 1 ?0094 0000096A R | 1 ?0095 000009B3 R - 1 ?0096 000009A7 R | 1 ?0097 000009AB R - 1 ?0098 00000A0F R | 1 ?0099 000009CE R - 1 ?0100 000009D2 R | 1 ?0101 00000A53 R - 1 ?0102 00000A73 R | 1 ?0103 00000A53 R - 1 ?0104 00000A53 R | 1 ?0105 00000A92 R - 1 ?0106 00000AB2 R | 1 ?0107 00000A92 R - 1 ?0108 00000A92 R | 1 ?0109 00000ACF R - 1 ?0110 00000AB2 R | 1 ?0111 00000AB9 R - 1 ?0112 00000D6B R | 1 ?0113 00000B0F R - 1 ?0114 00000B3D R | 1 ?0115 00000B20 R - 1 ?0116 00000B24 R | 1 ?0117 00000B2A R - 1 ?0118 00000B35 R | 1 ?0119 00000B40 R - 1 ?0120 00000BA2 R | 1 ?0121 00000B51 R - 1 ?0122 00000B55 R | 1 ?0123 00000B5B R - 1 ?0124 00000B93 R | 1 ?0125 00000B8F R - 1 ?0126 00000B93 R | 1 ?0127 00000B8F R - 1 ?0128 00000B8F R | 1 ?0129 00000B9A R - 1 ?0130 00000BA2 R | 1 ?0131 00000BA5 R - 1 ?0132 00000BBC R | 1 ?0133 00000BDD R - 1 ?0134 00000BD1 R | 1 ?0135 00000BDD R - 1 ?0136 00000BD1 R | 1 ?0137 00000BD1 R - 1 ?0138 00000BDD R | 1 ?0139 00000BDD R - 1 ?0140 00000BDD R | 1 ?0141 00000BDD R - 1 ?0142 00000BE0 R | 1 ?0143 00000BF1 R - 1 ?0144 00000C6C R | 1 ?0145 00000C98 R - 1 ?0146 00000CD6 R | 1 ?0147 00000CA9 R - 1 ?0148 00000CAD R | 1 ?0149 00000CC0 R - 1 ?0150 00000CCE R | 1 ?0151 00000CC0 R - 1 ?0152 00000CC0 R | 1 ?0153 00000CD9 R - 1 ?0154 00000CE8 R | 1 ?0155 00000CF6 R - 1 ?0156 00000D6B R | 1 ?0157 00000CFF R - 1 ?0158 00000D27 R | 1 ?0159 00000D6B R - 1 ?0160 00000DD7 R | 1 ?0161 00000DE0 R - 1 ?0162 00000DE7 R | 1 ?0163 00000EDC R - 1 ?0164 00000FFA R | 1 ?0165 00001023 R - 1 ?0166 00000FFA R | 1 ?0167 00000FFA R - 1 ?0168 00001019 R | 1 ?0169 00001023 R - 1 ?0170 00001031 R | 1 ?0171 0000103C R - 1 ?0172 000010A7 R | 1 ?0173 000010FA R - 1 ?0174 00001122 R | 1 ?0175 0000116A R - 1 ?0176 0000116D R | 1 ?0177 00001174 R - 1 ?0178 00001206 R | 1 ?0180 000011AE R - 1 ?0181 000011B1 R | 1 ?0182 000011C7 R - 1 ?0183 000011DA R | 1 ?0184 000011C7 R - 1 ?0185 000011C7 R | 1 ?0186 000011EE R - 1 ?0187 000012BE R | 1 ?0188 00001305 R - 1 ?0189 000012BE R | 1 ?0190 000012BE R - 1 ?0191 000012FB R | 1 ?0192 00001305 R - 1 ?0193 00001313 R | 1 ?0194 0000131E R - 1 ?0195 00001357 R | 1 ?0196 0000135A R - 1 ?0197 00001361 R | 1 ?0198 0000140C R - 1 ?0199 00001380 R | 1 ?0200 000013B0 R - 1 ?0201 00001380 R | 1 ?0202 00001380 R - 1 ?0203 000013F4 R | 1 ?0205 000013EB R - 1 ?0206 000013EE R | 1 ?0207 00001491 R - 1 ?0208 000014C7 R | 1 ?0209 00001491 R - 1 ?0210 00001491 R | 1 ?0211 00001498 R - 1 ?0212 0000149D R | 1 ?0213 000014A4 R - 1 ?0214 000014DF R | 1 ?0215 00001515 R - 1 ?0216 000014DF R | 1 ?0217 000014DF R - 1 ?0218 000014E6 R | 1 ?0219 000014EB R - 1 ?0220 000014F2 R | 2 ?0221 0000000A R - 2 ?0222 0000000D R | 1 ?0223 00001635 R - 1 ?0224 0000166F R | 1 ?0225 00001635 R - 1 ?0226 00001635 R | 1 ?0227 0000164A R - 1 ?0228 00001657 R | 1 ?0229 0000164F R - 1 ?0230 00001655 R | 1 ?0231 00001664 R - 1 ?0232 000016BD R | 1 ?0233 000016C0 R - 1 ?0234 000016C7 R | 1 ?0235 000017CE R - 1 ?0237 0000170B R | 1 ?0238 0000170E R - 1 ?0239 00001726 R | 1 ?0240 0000172D R - 1 ?0241 00001735 R | 1 ?0242 0000178A R - 1 ?0243 000017C0 R | 1 ?0244 000017B2 R - 1 ?0245 0000178E R | 1 ?0246 000017A7 R - 1 ?0248 000017CE R | 2 ?0249 00000014 R - 1 ?0250 0000186A R | 1 ?0251 0000186D R - 1 ?0252 00001873 R | 1 ?0253 00001894 R - 1 ?0254 00001C8C R | 1 ?0256 0000193E R - 1 ?0257 00001949 R | 1 ?0258 00001961 R - 1 ?0259 0000196F R | 1 ?0260 000019BE R - 1 ?0261 0000196F R | 1 ?0262 0000196F R - 1 ?0263 000019B6 R | 1 ?0264 000019BA R - 1 ?0265 000019C5 R | 1 ?0266 00001A09 R - 1 ?0267 00001A10 R | 1 ?0268 00001A54 R - 1 ?0269 00001A5B R | 1 ?0270 00001AA2 R - 1 ?0271 00001AA9 R | 1 ?0272 00001AFA R - 1 ?0273 00001B01 R | 1 ?0274 00001B72 R - 1 ?0275 00001B79 R | 1 ?0276 00001C72 R - 1 ?0277 00001B81 R | 1 ?0278 00001BEA R - 1 ?0279 00001BF2 R | 1 ?0280 00001BFE R - 1 ?0281 00001C20 R | 1 ?0282 00001C36 R - 1 ?0283 00001C3A R | 1 ?0284 00001C49 R - 1 ?0285 00001C59 R | 3 ?0286 00000026 R - 1 ?0287 00001D11 R | 1 ?0288 00001D19 R - 1 ?0289 00001D2F R | 1 ?0290 00001E49 R - 1 ?0291 00001D8C R | 1 ?0292 00001D98 R - 1 ?0293 00001E5A R | 1 ?0294 00001FE7 R - 1 ?0295 00001F7B R | 1 ?0296 00001EB9 R - 1 ?0297 00001EE2 R | 2 ?0299 00000015 R - 1 ?0300 00001FF6 R | 1 ?0301 00002003 R - 1 ?0302 000020A0 R | 1 ?0303 0000205E R - 1 ?0304 00002070 R | 1 ?0305 00002070 R - 1 ?0306 00002070 R | 1 ?0307 00002096 R - 1 ?0308 0000208B R | 1 ?0309 00002093 R - 1 ?0310 000020A5 R | 1 ?0311 000020B8 R - 1 ?0312 000022FB R | 1 ?0313 0000225B R - 1 ?0314 00002269 R | 1 ?0315 00002283 R - 1 ?0316 000022F8 R | 2 ?0317 00000021 R - 1 ?0318 0000229C R | 1 ?0319 000022C5 R - 1 ?0320 000022F2 R | 1 ?0321 00000382 R - 1 ?0331 00000538 R | 1 ?0335 000006EB R - 1 ?0336 0000079D R | 1 ?0338 00000839 R - 1 ?0339 00000885 R | 1 ?0341 000009A4 R - 1 ?0342 000009C7 R | 1 ?0344 00000B1D R - 1 ?0345 00000CA6 R | 1 ?0346 00000D67 R - 1 ?0347 00000C95 R | 1 ?0348 00000B4E R - 1 ?0350 0000111A R | 1 ?0353 000011EB R - 1 ?0357 000013E4 R | 1 ?0358 000014A0 R - 1 ?0359 000014EE R | 1 ?0364 00001732 R - 1 ?0365 000017C6 R | 1 ?0367 00001EDC R - 1 ?0368 00001EDD R | 1 ?0369 00001F78 R - 1 ?0370 000022EE R | 1 ?0372 00000077 R - 1 ?0381 000000CB R | 1 ?0389 00000110 R - 1 ?0396 00000157 R | 1 ?0402 000001A0 R - 1 ?0407 000001EA R | 1 ?0411 0000025E R - 1 ?0415 00000576 R | 1 ?0416 00000592 R - 1 ?0418 00000651 R | 1 ?0424 0000111F R - 1 ?0427 00000079 R | 1 ?0428 0000007D R - 1 ?0429 0000007F R | 1 ?0430 00000081 R - 1 ?0431 00000084 R | 1 ?0432 000000D3 R - 1 ?0433 000000D5 R | 1 ?0434 000000D8 R - 1 ?0435 0000011B R | 1 ?0438 00000FB5 R - 1 ?0439 000015CC R | 1 ?0440 000015E0 R - 1 ?0441 00001CBE R | 1 ?0442 000003E7 R - 1 ?0443 000003DE R | 1 ?0444 00000413 R - 1 ?0445 00001674 R | 1 ?0446 0000167F R - 1 ?0447 000004CE R | 1 ?0448 00000422 R - 1 ?0449 0000042D R | 1 ?0450 00000428 R - 1 ?0451 00000984 R | 1 ?0452 00000987 R - 1 ?0453 0000098F R | 1 ?0454 00001CC6 R - 1 ?0455 00000EE1 R | 1 ?0456 000015E8 R - 1 ?0457 0000120E R | 1 ?0458 00001212 R - 1 ?0459 00000EEF R | 1 ?0460 00000F0C R - 1 ?0461 000002D7 R | 1 ?0462 00000D70 R - 1 ?0463 00000D76 R | 1 ?0464 00001050 R - 1 ?0465 00001041 R | 1 ?0466 00000D8C R - 1 ?0467 00000D85 R | 1 ?0468 00000D87 R - 1 ?0469 0000105E R | 1 ?0470 000002EF R - 1 ?0471 000002F2 R | 1 ?0472 00000F24 R - 1 ?0473 00000F1E R | 1 ?0474 00000D95 R - 1 ?0475 00000D94 R | 1 ?0476 00002008 R - 1 ?0477 00000740 R | 1 ?0478 00000742 R - 1 ?0479 000020DC R | 1 ?0480 00001127 R - 1 ?0481 00001128 R | 1 ?0482 00001CCE R - 1 ?0483 00001CD7 R | 1 ?0484 00002210 R + 2 ?0001 00000000 R | 2 ?0002 0000000A R + 2 ?0003 00000014 R | 3 ?0004 00000002 R + 3 ?0005 00000006 R | 3 ?0006 0000000A R + 3 ?0007 0000000E R | 3 ?0008 00000012 R + 3 ?0009 00000016 R | 3 ?0010 0000001A R + 3 ?0011 00000021 R | 3 ?0012 00000024 R + 1 ?0013 0000043C R | 1 ?0014 00000422 R + 1 ?0015 00000436 R | 1 ?0016 00000436 R + 1 ?0017 00000436 R | 1 ?0018 0000044D R + 1 ?0019 00000476 R | 1 ?0020 00000530 R + 1 ?0021 00000540 R | 1 ?0022 00000558 R + 1 ?0023 00000552 R | 1 ?0024 00000545 R + 1 ?0025 00000552 R | 1 ?0026 000005D6 R + 1 ?0027 00000577 R | 1 ?0028 00000586 R + 1 ?0029 000005C9 R | 1 ?0030 000005B0 R + 1 ?0031 000005B5 R | 1 ?0032 000005BA R + 1 ?0033 000005BF R | 1 ?0034 000005C4 R + 1 ?0035 000005EA R | 1 ?0036 000005F0 R + 1 ?0037 000005F9 R | 1 ?0038 000005FC R + 1 ?0039 000005F9 R | 1 ?0040 000005F9 R + 1 ?0041 000005FC R | 1 ?0042 00000727 R + 1 ?0043 000006FB R | 1 ?0044 00000712 R + 1 ?0045 00000712 R | 1 ?0046 00000712 R + 1 ?0047 00000758 R | 1 ?0048 00000761 R + 1 ?0049 00000781 R | 1 ?0050 00000774 R + 1 ?0051 00000761 R | 1 ?0052 00000769 R + 1 ?0053 000007C7 R | 1 ?0054 000007A6 R + 1 ?0055 000007AD R | 1 ?0056 00000818 R + 1 ?0058 000007E9 R | 1 ?0059 00000850 R + 1 ?0060 00000831 R | 1 ?0061 00000835 R + 1 ?0062 00000847 R | 1 ?0063 0000084A R + 1 ?0064 00000852 R | 1 ?0065 00000879 R + 1 ?0066 00000A08 R | 1 ?0067 00000892 R + 1 ?0068 00000879 R | 1 ?0069 00000881 R + 1 ?0070 0000089B R | 1 ?0071 00000924 R + 1 ?0072 000008BB R | 1 ?0073 000008C4 R + 1 ?0074 00000924 R | 1 ?0075 000008FD R + 1 ?0076 000008CE R | 1 ?0077 000008F3 R + 1 ?0078 000008F3 R | 1 ?0079 000008F3 R + 1 ?0080 0000090C R | 1 ?0081 00000924 R + 1 ?0082 0000093B R | 1 ?0083 000009D4 R + 1 ?0084 00000989 R | 1 ?0085 00000961 R + 1 ?0086 0000097A R | 1 ?0087 0000097A R + 1 ?0088 0000097A R | 1 ?0089 00000991 R + 1 ?0090 000009D4 R | 1 ?0091 000009E2 R + 1 ?0092 000009EB R | 1 ?0093 000009F9 R + 1 ?0094 00000A02 R | 1 ?0095 000009F9 R + 1 ?0096 000009F9 R | 1 ?0097 00000A42 R + 1 ?0098 00000A36 R | 1 ?0099 00000A3A R + 1 ?0100 00000A9E R | 1 ?0101 00000A5D R + 1 ?0102 00000A61 R | 1 ?0103 00000AE2 R + 1 ?0104 00000B02 R | 1 ?0105 00000AE2 R + 1 ?0106 00000AE2 R | 1 ?0107 00000B21 R + 1 ?0108 00000B41 R | 1 ?0109 00000B21 R + 1 ?0110 00000B21 R | 1 ?0111 00000B5E R + 1 ?0112 00000B41 R | 1 ?0113 00000B48 R + 1 ?0114 00000DFA R | 1 ?0115 00000B9E R + 1 ?0116 00000BCC R | 1 ?0117 00000BAF R + 1 ?0118 00000BB3 R | 1 ?0119 00000BB9 R + 1 ?0120 00000BC4 R | 1 ?0121 00000BCF R + 1 ?0122 00000C31 R | 1 ?0123 00000BE0 R + 1 ?0124 00000BE4 R | 1 ?0125 00000BEA R + 1 ?0126 00000C22 R | 1 ?0127 00000C1E R + 1 ?0128 00000C22 R | 1 ?0129 00000C1E R + 1 ?0130 00000C1E R | 1 ?0131 00000C29 R + 1 ?0132 00000C31 R | 1 ?0133 00000C34 R + 1 ?0134 00000C4B R | 1 ?0135 00000C6C R + 1 ?0136 00000C60 R | 1 ?0137 00000C6C R + 1 ?0138 00000C60 R | 1 ?0139 00000C60 R + 1 ?0140 00000C6C R | 1 ?0141 00000C6C R + 1 ?0142 00000C6C R | 1 ?0143 00000C6C R + 1 ?0144 00000C6F R | 1 ?0145 00000C80 R + 1 ?0146 00000CFB R | 1 ?0147 00000D27 R + 1 ?0148 00000D65 R | 1 ?0149 00000D38 R + 1 ?0150 00000D3C R | 1 ?0151 00000D4F R + 1 ?0152 00000D5D R | 1 ?0153 00000D4F R + 1 ?0154 00000D4F R | 1 ?0155 00000D68 R + 1 ?0156 00000D77 R | 1 ?0157 00000D85 R + 1 ?0158 00000DFA R | 1 ?0159 00000D8E R + 1 ?0160 00000DB6 R | 1 ?0161 00000DFA R + 1 ?0162 00000E62 R | 1 ?0163 00000E65 R + 1 ?0164 00000E6C R | 1 ?0165 00000F5F R + 1 ?0166 00001097 R | 1 ?0167 000010C0 R + 1 ?0168 00001097 R | 1 ?0169 00001097 R + 1 ?0170 000010B6 R | 1 ?0171 000010C0 R + 1 ?0172 000010CE R | 1 ?0173 000010D9 R + 1 ?0174 00001127 R | 1 ?0175 0000117A R + 1 ?0176 0000119C R | 1 ?0177 000011EE R + 1 ?0178 000011F1 R | 1 ?0179 000011F8 R + 1 ?0180 0000128A R | 1 ?0182 00001232 R + 1 ?0183 00001235 R | 1 ?0184 0000124B R + 1 ?0185 0000125E R | 1 ?0186 0000124B R + 1 ?0187 0000124B R | 1 ?0188 00001272 R + 1 ?0189 00001327 R | 1 ?0190 0000136E R + 1 ?0191 00001327 R | 1 ?0192 00001327 R + 1 ?0193 00001364 R | 1 ?0194 0000136E R + 1 ?0195 0000137C R | 1 ?0196 00001387 R + 1 ?0197 000013C0 R | 1 ?0198 000013C3 R + 1 ?0199 000013CA R | 1 ?0200 00001475 R + 1 ?0201 000013E9 R | 1 ?0202 00001419 R + 1 ?0203 000013E9 R | 1 ?0204 000013E9 R + 1 ?0205 0000145D R | 1 ?0207 00001454 R + 1 ?0208 00001457 R | 1 ?0209 00001505 R + 1 ?0210 0000153B R | 1 ?0211 00001505 R + 1 ?0212 00001505 R | 1 ?0213 0000150C R + 1 ?0214 00001511 R | 1 ?0215 00001518 R + 1 ?0216 00001553 R | 1 ?0217 00001589 R + 1 ?0218 00001553 R | 1 ?0219 00001553 R + 1 ?0220 0000155A R | 1 ?0221 0000155F R + 1 ?0222 00001566 R | 2 ?0223 00000020 R + 2 ?0224 00000023 R | 1 ?0225 000016CA R + 1 ?0226 00001704 R | 1 ?0227 000016CA R + 1 ?0228 000016CA R | 1 ?0229 000016DF R + 1 ?0230 000016EC R | 1 ?0231 000016E4 R + 1 ?0232 000016EA R | 1 ?0233 000016F9 R + 1 ?0234 00001752 R | 1 ?0235 00001755 R + 1 ?0236 0000175C R | 1 ?0237 0000183B R + 1 ?0239 000017A0 R | 1 ?0240 000017A3 R + 1 ?0241 000017BB R | 1 ?0242 000017C2 R + 1 ?0243 000017CA R | 1 ?0244 000017FC R + 1 ?0245 00001832 R | 1 ?0246 00001824 R + 1 ?0247 00001800 R | 1 ?0248 00001819 R + 1 ?0250 0000183B R | 2 ?0251 0000002A R + 1 ?0252 000018DC R | 1 ?0253 000018DF R + 1 ?0254 000018E5 R | 1 ?0255 00001906 R + 1 ?0256 00001D05 R | 1 ?0258 000019B6 R + 1 ?0259 000019C1 R | 1 ?0260 000019D9 R + 1 ?0261 000019E7 R | 1 ?0262 00001A35 R + 1 ?0263 000019E7 R | 1 ?0264 000019E7 R + 1 ?0265 00001A2D R | 1 ?0266 00001A31 R + 1 ?0267 00001A3C R | 1 ?0268 00001A7F R + 1 ?0269 00001A86 R | 1 ?0270 00001AC9 R + 1 ?0271 00001AD0 R | 1 ?0272 00001B16 R + 1 ?0273 00001B1D R | 1 ?0274 00001B6E R + 1 ?0275 00001B75 R | 1 ?0276 00001BE6 R + 1 ?0277 00001BED R | 1 ?0278 00001CE6 R + 1 ?0279 00001BF5 R | 1 ?0280 00001C5E R + 1 ?0281 00001C66 R | 1 ?0282 00001C72 R + 1 ?0283 00001C94 R | 1 ?0284 00001CAA R + 1 ?0285 00001CAE R | 1 ?0286 00001CBD R + 1 ?0287 00001CCD R | 1 ?0288 00001D9E R + 1 ?0289 00001DA8 R | 1 ?0290 00001DBE R + 1 ?0291 00001EA7 R | 1 ?0292 00001E47 R + 1 ?0293 00001E53 R | 1 ?0294 00001EB8 R + 1 ?0295 00002045 R | 1 ?0296 00001FD9 R + 1 ?0297 00001F17 R | 1 ?0298 00001F40 R + 2 ?0300 0000002B R | 1 ?0301 00002055 R + 1 ?0302 00002072 R | 1 ?0303 00002082 R + 1 ?0304 00002098 R | 1 ?0305 000020A7 R + 1 ?0306 000020B4 R | 1 ?0307 00002156 R + 1 ?0308 00002114 R | 1 ?0309 00002126 R + 1 ?0310 00002126 R | 1 ?0311 00002126 R + 1 ?0312 0000214C R | 1 ?0313 00002141 R + 1 ?0314 00002149 R | 1 ?0315 0000215B R + 1 ?0316 0000216E R | 2 ?0317 00000037 R + 1 ?0318 000024AB R | 1 ?0319 0000238A R + 1 ?0320 00002398 R | 1 ?0321 000023BA R + 1 ?0322 00002421 R | 1 ?0323 000023C0 R + 1 ?0324 000023EB R | 1 ?0325 00002418 R + 1 ?0326 00002443 R | 1 ?0327 000024A8 R + 1 ?0328 00002452 R | 1 ?0329 00002467 R + 1 ?0330 000024A8 R | 1 ?0331 0000041D R + 1 ?0341 000005C7 R | 1 ?0345 0000077A R + 1 ?0346 0000082C R | 1 ?0348 000008C8 R + 1 ?0349 00000914 R | 1 ?0351 00000A33 R + 1 ?0352 00000A56 R | 1 ?0354 00000BAC R + 1 ?0355 00000D35 R | 1 ?0356 00000DF6 R + 1 ?0357 00000D24 R | 1 ?0358 00000BDD R + 1 ?0360 00001194 R | 1 ?0363 0000126F R + 1 ?0367 0000144D R | 1 ?0368 00001514 R + 1 ?0369 00001562 R | 1 ?0374 000017C7 R + 1 ?0375 00001838 R | 1 ?0377 00001F3A R + 1 ?0378 00001F3B R | 1 ?0379 00001FD6 R + 1 ?0381 00002414 R | 1 ?0382 00000170 R + 1 ?0387 00000182 R | 1 ?0390 000001B1 R + 1 ?0394 000001BF R | 1 ?0397 000001F7 R + 1 ?0400 00000203 R | 1 ?0403 0000023A R + 1 ?0405 00000247 R | 1 ?0408 00000280 R + 1 ?0409 0000028D R | 1 ?0412 000002D4 R + 1 ?0415 000002F9 R | 1 ?0419 00000605 R + 1 ?0420 00000621 R | 1 ?0422 000006E0 R + 1 ?0431 00001199 R | 1 ?0432 00000184 R + 1 ?0433 00000188 R | 1 ?0434 0000018D R + 1 ?0435 0000018F R | 1 ?0436 00000192 R + 1 ?0437 000001CA R | 1 ?0438 000001CC R + 1 ?0439 000001CF R | 1 ?0440 0000020E R + 1 ?0443 0000010C R | 1 ?0444 00000114 R + 1 ?0445 00000126 R | 1 ?0446 0000011C R + 1 ?0447 0000012B R | 1 ?0448 00000121 R + 1 ?0449 00000F67 R | 1 ?0450 00000E00 R + 1 ?0451 00000DFF R | 1 ?0452 00000131 R + 1 ?0453 00000485 R | 1 ?0454 00000479 R + 1 ?0455 00001709 R | 1 ?0456 00001714 R + 1 ?0457 0000055D R | 1 ?0458 000004B1 R + 1 ?0459 000004BC R | 1 ?0460 000004B7 R + 1 ?0461 00000F7B R | 1 ?0462 00000F87 R + 1 ?0463 00000F75 R | 1 ?0464 00000A13 R + 1 ?0465 00000A16 R | 1 ?0466 00001D32 R + 1 ?0467 00000A1E R | 1 ?0468 00000153 R + 1 ?0469 00000156 R | 1 ?0470 00000F95 R + 1 ?0471 0000167D R | 1 ?0472 00000FAB R + 1 ?0473 00000FAF R | 1 ?0474 00000372 R + 1 ?0475 00000E0A R | 1 ?0476 00000E10 R + 1 ?0477 00000E26 R | 1 ?0478 00000E1F R + 1 ?0479 00000E21 R | 1 ?0480 000010ED R + 1 ?0481 000010DE R | 1 ?0482 000010FB R + 1 ?0483 0000038A R | 1 ?0484 0000038D R + 1 ?0485 000020B9 R | 1 ?0486 000007CF R + 1 ?0487 000007D1 R | 1 ?0488 00002192 R + 1 ?0489 000011A1 R | 1 ?0490 00001D3A R + 1 ?0491 00001D50 R | 1 ?0492 00001D58 R + 1 ?0493 00001D64 R | 1 ?0494 000022C6 R ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX ?BANK_LEAVE_DI ******** GX | ?CL64180B_4_06 ******** GX ?C_V_SWITCH_L0 ******** GX | ?ENT_AUTO_DIRE ******** GX - ?ENT_PARM_DIRE ******** GX | ?SL_RSH_L03 ******** GX - ?SS_CMP_L02 ******** GX | ?SS_DIV_L02 ******** GX - ?SS_RSH_L02 ******** GX | ?S_MUL_L02 ******** GX - ?S_V_SWITCH_L0 ******** GX | 1 Button_add 0000122F GR - 1 Button_drawtex 0000107A GR | 1 Button_handler 00000FC3 GR - 1 Button_new 00001235 GR | 1 Button_paint 00001136 GR - 1 ClearRect 000000E2 GR | 1 ClearScreen 000002BD GR - 1 Component_add 000006A6 GR | 1 Component_chan 000009B6 GR - 1 Component_dele 000007C6 GR | 1 Component_dele 00000997 GR - 1 Component_find 0000078E GR | 1 Component_find 0000074A GR - 1 Component_link 00000A1F GR | 1 Component_new 000005AF GR - 1 Component_pain 00000704 GR | 1 Component_setl 00000659 GR - 1 Dialog_handler 00001461 GR | 1 Dialog_new 0000151A GR - 1 Display_handle 00001609 GR | 1 Display_new 000017D6 GR - 1 Display_paint 0000168A GR | 1 DrawRectNC 00000125 GR - 1 EnableScreen 000002FA GR | 1 FillRect 0000016A GR - 1 FillRectNC 000001AF GR | 1 GUIgo 0000223D GR - 1 GUIinit 000020F1 GR | 1 GUIunit 00002218 GR - 1 GraphicsClose 0000008E GR | 1 GraphicsOpen 00000000 GR - 1 GrayRect 000001F4 GR | 1 Label_handler 00001830 GR - 1 Label_new 00001897 GR | 1 Label_paint 00001836 GR - 1 Move 000000A3 GR | 1 Root_paint 00000F2C GR - 1 Text 00000239 GR | 1 ToggleButton_h 00001287 GR - 1 ToggleButton_n 0000140F GR | 1 ToggleButton_p 00001323 GR - 1 TouchRegion 00000266 GR | 1 Window_add 00000F63 GR - 1 Window_handler 00000AD2 GR | 1 Window_new 00000F71 GR - 1 Window_paint 00000D9F GR | _read ******** GX + ?ENT_PARM_DIRE ******** GX | ?SS_CMP_L02 ******** GX + ?SS_DIV_L02 ******** GX | ?SS_RSH_L02 ******** GX + ?S_MUL_L02 ******** GX | ?S_V_SWITCH_L0 ******** GX + 1 Button_add 0000128D GR | 1 Button_drawtex 00001117 GR + 1 Button_handler 00001060 GR | 1 Button_new 00001293 GR + 1 Button_paint 000011BA GR | 1 ClearRect 00000199 GR + 1 ClearScreen 00000358 GR | 1 Component_add 00000735 GR + 1 Component_chan 00000A45 GR | 1 Component_dele 00000855 GR + 1 Component_dele 00000A26 GR | 1 Component_find 0000081D GR + 1 Component_find 000007D9 GR | 1 Component_link 00000AAE GR + 1 Component_new 0000063E GR | 1 Component_pain 00000793 GR + 1 Component_setl 000006E8 GR | 1 Dialog_handler 000014D5 GR + 1 Dialog_new 0000158E GR | 1 Display_handle 0000169E GR + 1 Display_new 00001843 GR | 1 Display_paint 0000171F GR + 1 DrawRectNC 000001D9 GR | 1 EnableScreen 00000395 GR + 1 FillRect 00000218 GR | 1 FillRectNC 0000025A GR + 1 GUIgo 000022F3 GR | 1 GUIinit 000021A7 GR + 1 GUIunit 000022CE GR | 1 GraphicsClose 00000139 GR + 1 GraphicsOpen 0000001B GR | 1 GrayRect 0000029C GR + 1 Label_handler 000018A2 GR | 1 Label_new 00001909 GR + 1 Label_paint 000018A8 GR | 1 Move 0000015E GR + 1 Root_paint 00000FCC GR | 1 SetCurrentGrap 00000000 GR + 1 Text 000002DE GR | 1 ToggleButton_h 000012F0 GR + 1 ToggleButton_n 00001478 GR | 1 ToggleButton_p 0000138C GR + 1 TouchRegion 00000301 GR | 1 Window_add 00001003 GR + 1 Window_handler 00000B61 GR | 1 Window_new 00001011 GR + 1 Window_paint 00000E2E GR | _read ******** GX _write ******** GX | close ******** GX - fflush ******** GX | 1 fontSearch 00000375 GR + fflush ******** GX | 1 fontSearch 00000410 GR free ******** GX | 4 global 00000000 GR - 1 grSetFont 00000338 GR | 1 gui_globals 000020EB GR - ioctl ******** GX | 1 loadFont 00000433 GR + 1 grSetFont 000003D3 GR | 1 gui_globals 000021A1 GR + ioctl ******** GX | 1 loadFont 000004C2 GR malloc ******** GX | open ******** GX - printf ******** GX | 1 read_stringtab 00002016 GR - 1 rootWindow_han 000018F0 GR | 1 root_actionhan 00001CDE GR - 1 screenbuilder 0000190E GR | 1 setCurrentFont 000003A5 GR - stdout ******** GX | 1 stringheight 00000553 GR - 1 stringheight01 00000570 GR | 1 stringheight2 00000583 GR - 1 stringwidth 000004DA GR | 1 stringwidth0 0000058C GR - 1 stringwidth1 0000059D GR | 1 stringwidth2 000005A6 GR - strlen ******** GX + 1 read_stringtab 000020C7 GR | 1 rootWindow_han 0000196D GR + 1 root_actionhan 00001D78 GR | 1 screenbuilder 0000198B GR + 1 setCurrentFont 00000440 GR | stdout ******** GX + 1 stringheight 000005E2 GR | 1 stringheight01 000005FF GR + 1 stringheight2 00000612 GR | 1 stringwidth 00000569 GR + 1 stringwidth0 0000061B GR | 1 stringwidth1 0000062C GR + 1 stringwidth2 00000635 GR | strlen ******** 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 22FE flags 0 - 2 CSTR size 29 flags 0 - 3 CONST size 34 flags 0 + 1 CODE size 24B6 flags 0 + 2 CSTR size 44 flags 0 + 3 CONST size 26 flags 0 4 UDATA0 size 2 flags 0 diff --git a/src/gui/wnd.rel b/src/gui/wnd.rel index f02171e1..c5cf62b4 100644 --- a/src/gui/wnd.rel +++ b/src/gui/wnd.rel @@ -1,11 +1,10 @@ XL4 -H 5 areas 58 global symbols +H 5 areas 57 global symbols M wnd S ?BANK_FAST_LEAVE_L08 Ref00000000 S fflush Ref00000000 S _write Ref00000000 S ?S_MUL_L02 Ref00000000 -S printf Ref00000000 S ?BANK_LEAVE_DIRECT_L08 Ref00000000 S close Ref00000000 S strlen Ref00000000 @@ -21,3366 +20,3546 @@ S ?SS_CMP_L02 Ref00000000 S open Ref00000000 S ?SS_DIV_L02 Ref00000000 S ?CL64180B_4_06_L00 Ref00000000 -S ?SL_RSH_L03 Ref00000000 S malloc Ref00000000 S _read Ref00000000 S ?SS_RSH_L02 Ref00000000 S .__.ABS. Def00000000 A _DEFAULT size 0 flags 0 -A CODE size 22FE flags 0 -S Window_new Def00000F71 -S stringheight2 Def00000583 -S GraphicsOpen Def00000000 -S Component_findXY Def0000074A -S Text Def00000239 -S GUIunit Def00002218 -S Button_new Def00001235 -S setCurrentFont Def000003A5 -S ToggleButton_new Def0000140F -S ClearScreen Def000002BD -S gui_globals Def000020EB -S Component_delete_children Def00000997 -S Component_paint Def00000704 -S stringheight Def00000553 -S Window_paint Def00000D9F -S Component_find Def0000078E -S Window_handler Def00000AD2 -S FillRect Def0000016A -S loadFont Def00000433 -S Button_paint Def00001136 -S rootWindow_handler Def000018F0 -S ToggleButton_paint Def00001323 -S Dialog_new Def0000151A -S Button_handler Def00000FC3 -S read_stringtable Def00002016 -S ToggleButton_handler Def00001287 -S GUIgo Def0000223D -S Component_add Def000006A6 -S grSetFont Def00000338 -S Display_new Def000017D6 -S Window_add Def00000F63 -S GrayRect Def000001F4 -S Component_changestate_children Def000009B6 -S Button_add Def0000122F -S Component_delete Def000007C6 -S FillRectNC Def000001AF -S stringwidth0 Def0000058C -S screenbuilder Def0000190E -S TouchRegion Def00000266 -S GraphicsClose Def0000008E -S EnableScreen Def000002FA -S stringwidth1 Def0000059D -S stringwidth2 Def000005A6 -S Label_new Def00001897 -S fontSearch Def00000375 -S DrawRectNC Def00000125 -S Dialog_handler Def00001461 -S Button_drawtext Def0000107A -S stringheight01 Def00000570 -S Display_paint Def0000168A -S Display_handler Def00001609 -S ClearRect Def000000E2 -S stringwidth Def000004DA -S Move Def000000A3 -S GUIinit Def000020F1 -S Label_paint Def00001836 -S Component_new Def000005AF -S Label_handler Def00001830 -S Component_setlabel Def00000659 -S root_actionhandler Def00001CDE -S Root_paint Def00000F2C -S Component_linkstringtable Def00000A1F -A CSTR size 29 flags 0 -A CONST size 34 flags 0 +A CODE size 24B6 flags 0 +S Window_new Def00001011 +S stringheight2 Def00000612 +S GraphicsOpen Def0000001B +S Component_findXY Def000007D9 +S Text Def000002DE +S GUIunit Def000022CE +S Button_new Def00001293 +S setCurrentFont Def00000440 +S ToggleButton_new Def00001478 +S ClearScreen Def00000358 +S gui_globals Def000021A1 +S Component_delete_children Def00000A26 +S Component_paint Def00000793 +S stringheight Def000005E2 +S SetCurrentGraphicsDevice Def00000000 +S Window_paint Def00000E2E +S Component_find Def0000081D +S Window_handler Def00000B61 +S FillRect Def00000218 +S loadFont Def000004C2 +S Button_paint Def000011BA +S rootWindow_handler Def0000196D +S ToggleButton_paint Def0000138C +S Dialog_new Def0000158E +S Button_handler Def00001060 +S read_stringtable Def000020C7 +S ToggleButton_handler Def000012F0 +S GUIgo Def000022F3 +S Component_add Def00000735 +S grSetFont Def000003D3 +S Display_new Def00001843 +S Window_add Def00001003 +S GrayRect Def0000029C +S Component_changestate_children Def00000A45 +S Button_add Def0000128D +S Component_delete Def00000855 +S FillRectNC Def0000025A +S stringwidth0 Def0000061B +S screenbuilder Def0000198B +S TouchRegion Def00000301 +S GraphicsClose Def00000139 +S EnableScreen Def00000395 +S stringwidth1 Def0000062C +S stringwidth2 Def00000635 +S Label_new Def00001909 +S fontSearch Def00000410 +S DrawRectNC Def000001D9 +S Dialog_handler Def000014D5 +S Button_drawtext Def00001117 +S stringheight01 Def000005FF +S Display_paint Def0000171F +S Display_handler Def0000169E +S ClearRect Def00000199 +S stringwidth Def00000569 +S Move Def0000015E +S GUIinit Def000021A7 +S Label_paint Def000018A8 +S Component_new Def0000063E +S Label_handler Def000018A2 +S Component_setlabel Def000006E8 +S root_actionhandler Def00001D78 +S Root_paint Def00000FCC +S Component_linkstringtable Def00000AAE +A CSTR size 44 flags 0 +A CONST size 26 flags 0 A UDATA0 size 2 flags 0 S global Def00000000 T 00 00 00 00 R 00 00 01 00 -T 00 00 00 00 CD 00 00 00 00 F8 FF 21 06 00 39 -R 00 00 01 00 02 05 0F 00 -T 09 00 00 00 EB 21 00 00 00 00 01 02 00 ED B0 +T 00 00 00 00 CD 00 00 00 00 21 06 00 ED 4B +R 00 00 01 00 02 05 0A 00 +T 08 00 00 00 00 00 00 00 09 E5 EB 29 09 23 23 +R 00 00 01 00 00 04 04 00 +T 11 00 00 00 4E 23 46 E1 71 23 70 C3 +R 00 00 01 00 +T 19 00 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 1B 00 00 00 +R 00 00 01 00 +T 1B 00 00 00 CD 00 00 00 00 F8 FF 21 06 00 39 +R 00 00 01 00 02 05 0E 00 +T 24 00 00 00 EB 21 00 00 00 00 01 02 00 ED B0 R 00 00 01 00 00 06 03 00 -T 12 00 00 00 2A 00 00 00 00 23 23 E5 03 03 C5 +T 2D 00 00 00 2A 00 00 00 00 23 23 E5 03 03 C5 R 00 00 01 00 00 05 04 00 -T 1B 00 00 00 01 00 00 00 00 C5 3E 00 00 00 00 -R 00 00 01 00 00 05 02 00 2B 0B 11 00 -T 21 00 00 00 21 00 00 00 00 CD 00 00 00 00 F1 -R 00 00 01 00 02 05 11 00 02 0A 0C 00 -T 28 00 00 00 F1 4D 44 E1 71 23 70 21 00 00 39 +T 36 00 00 00 01 00 00 00 00 C5 CD 14 01 00 00 +R 00 00 01 00 00 05 02 00 00 0B 01 00 +T 3D 00 00 00 F1 F1 4D 44 E1 71 23 70 21 00 00 +R 00 00 01 00 +T 48 00 00 00 39 E5 21 00 00 E5 2A 00 00 00 00 +R 00 00 01 00 00 0B 04 00 +T 51 00 00 00 23 23 4E 23 46 C5 CD 0C 01 00 00 +R 00 00 01 00 00 0B 01 00 +T 5A 00 00 00 F1 F1 F1 DD 36 FC 60 DD 36 FD 00 +R 00 00 01 00 +T 65 00 00 00 21 00 00 39 E5 21 01 00 E5 2A R 00 00 01 00 -T 33 00 00 00 E5 21 00 00 E5 2A 00 00 00 00 23 +T 6F 00 00 00 00 00 00 00 23 23 4E 23 46 C5 CD +R 00 00 01 00 00 04 04 00 +T 78 00 00 00 0C 01 00 00 F1 F1 F1 21 02 00 E5 +R 00 00 01 00 00 04 01 00 +T 81 00 00 00 2E 08 39 4D 44 2A 00 00 00 00 23 R 00 00 01 00 00 0A 04 00 -T 3C 00 00 00 23 4E 23 46 C5 3E 00 00 00 00 21 -R 00 00 01 00 2B 0A 09 00 -T 44 00 00 00 00 00 00 00 CD 00 00 00 00 F1 F1 -R 00 00 01 00 02 04 09 00 02 09 0C 00 -T 4B 00 00 00 F1 DD 36 FC 60 DD 36 FD 00 21 +T 8A 00 00 00 23 CD 26 01 00 00 F1 21 04 00 ED +R 00 00 01 00 00 06 01 00 +T 93 00 00 00 4B 00 00 00 00 09 E5 11 02 00 D5 +R 00 00 01 00 00 05 04 00 +T 9C 00 00 00 11 0A 00 00 00 D5 CD 14 01 00 00 +R 00 00 01 00 00 05 02 00 00 0B 01 00 +T A3 00 00 00 F1 F1 EB E1 73 23 72 21 00 00 39 R 00 00 01 00 -T 55 00 00 00 00 00 39 E5 21 01 00 E5 2A +T AE 00 00 00 E5 21 00 00 E5 2E 04 ED 4B R 00 00 01 00 -T 5E 00 00 00 00 00 00 00 23 23 4E 23 46 C5 3E +T B7 00 00 00 00 00 00 00 09 5E 23 56 D5 CD R 00 00 01 00 00 04 04 00 -T 67 00 00 00 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 04 09 00 02 09 09 00 -T 6C 00 00 00 00 00 00 00 F1 F1 F1 21 02 00 E5 -R 00 00 01 00 02 04 0C 00 -T 75 00 00 00 2E 08 +T BF 00 00 00 0C 01 00 00 F1 F1 F1 DD 36 FC 60 +R 00 00 01 00 00 04 01 00 +T C8 00 00 00 DD 36 FD 00 21 00 00 39 E5 21 R 00 00 01 00 -T 77 00 00 00 +T D2 00 00 00 01 00 E5 2E 04 09 5E 23 56 D5 CD R 00 00 01 00 -T 77 00 00 00 39 4D +T DD 00 00 00 0C 01 00 00 F1 F1 F1 21 02 00 E5 +R 00 00 01 00 00 04 01 00 +T E6 00 00 00 2E 08 39 CD 1C 01 00 00 F1 11 +R 00 00 01 00 00 08 01 00 +T EE 00 00 00 01 00 3E 00 00 00 00 21 +R 00 00 01 00 29 07 01 00 +T F3 00 00 00 00 00 00 00 CD 00 00 00 00 11 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T F9 00 00 00 14 00 00 00 CD 31 01 00 00 11 +R 00 00 01 00 00 04 02 00 00 09 01 00 +T FF 00 00 00 00 00 3E 00 00 00 00 21 +R 00 00 01 00 29 07 01 00 +T 04 01 00 00 00 00 00 00 CD 00 00 00 00 C3 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 0A 01 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 0C 01 00 00 +R 00 00 01 00 +T 0C 01 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 08 00 02 0A 08 00 +T 12 01 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 14 01 00 00 +R 00 00 01 00 +T 14 01 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 10 00 02 0A 10 00 +T 1A 01 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 1C 01 00 00 R 00 00 01 00 -T 79 00 00 00 +T 1C 01 00 00 4D 44 21 04 00 R 00 00 01 00 -T 79 00 00 00 44 2A 00 00 00 00 +T 21 01 00 00 +R 00 00 01 00 +T 21 01 00 00 ED 5B 00 00 00 00 19 R 00 00 01 00 00 06 04 00 -T 7D 00 00 00 +T 26 01 00 00 R 00 00 01 00 -T 7D 00 00 00 23 23 +T 26 01 00 00 5E 23 56 3E 00 00 00 00 +R 00 00 01 00 2B 08 02 00 +T 2B 01 00 00 R 00 00 01 00 -T 7F 00 00 00 +T 2B 01 00 00 21 00 00 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 02 00 02 0A 0B 00 +T 31 01 00 00 R 00 00 01 00 -T 7F 00 00 00 5E 23 +T 31 01 00 00 3E DE 02 00 00 21 DE 02 00 00 C3 +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 37 01 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 39 01 00 00 R 00 00 01 00 -T 81 00 00 00 +T 39 01 00 00 C5 D5 2A 00 00 00 00 23 23 CD +R 00 00 01 00 00 07 04 00 +T 41 01 00 00 53 01 00 00 21 04 00 ED 4B +R 00 00 01 00 00 04 01 00 +T 48 01 00 00 00 00 00 00 09 CD 53 01 00 00 D1 +R 00 00 01 00 00 04 04 00 00 0A 01 00 +T 4F 01 00 00 C1 C3 00 00 00 00 +R 00 00 01 00 02 06 00 00 +T 53 01 00 00 R 00 00 01 00 -T 81 00 00 00 56 3E 00 00 00 00 -R 00 00 01 00 2B 06 02 00 -T 84 00 00 00 +T 53 01 00 00 5E 23 56 R 00 00 01 00 -T 84 00 00 00 21 00 00 00 00 CD 00 00 00 00 F1 -R 00 00 01 00 02 05 02 00 02 0A 0C 00 -T 8B 00 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T 8E 00 00 00 +T 56 01 00 00 R 00 00 01 00 -T 8E 00 00 00 D5 2A 00 00 00 00 23 23 5E 23 56 -R 00 00 01 00 00 06 04 00 -T 97 00 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 06 00 02 0A 06 00 -T 9D 00 00 00 00 00 00 00 D1 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 0A 00 00 -T A3 00 00 00 -R 00 00 01 00 -T A3 00 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T AC 00 00 00 EB 21 02 00 00 00 01 04 00 ED B0 +T 56 01 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 05 00 02 0A 05 00 +T 5C 01 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 5E 01 00 00 +R 00 00 01 00 +T 5E 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T 67 01 00 00 EB 21 02 00 00 00 01 04 00 ED B0 R 00 00 01 00 00 06 03 00 -T B5 00 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 +T 70 01 00 00 R 00 00 01 00 -T C0 00 00 00 FF 21 04 00 E5 2B 2B C3 +T 70 01 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 R 00 00 01 00 -T C8 00 00 00 77 00 00 00 4D -R 00 00 01 00 00 04 01 00 -T CB 00 00 00 +T 7B 01 00 00 FF 21 04 00 E5 2B 2B +R 00 00 01 00 +T 82 01 00 00 +R 00 00 01 00 +T 82 01 00 00 39 4D R 00 00 01 00 -T CB 00 00 00 C3 79 00 00 00 2A 00 00 00 00 23 -R 00 00 01 00 00 05 01 00 00 0A 04 00 -T D2 00 00 00 23 +T 84 01 00 00 R 00 00 01 00 -T D3 00 00 00 +T 84 01 00 00 44 21 06 00 +R 00 00 01 00 +T 88 01 00 00 +R 00 00 01 00 +T 88 01 00 00 ED 5B 00 00 00 00 19 +R 00 00 01 00 00 06 04 00 +T 8D 01 00 00 R 00 00 01 00 -T D3 00 00 00 5E 23 +T 8D 01 00 00 5E 23 R 00 00 01 00 -T D5 00 00 00 +T 8F 01 00 00 R 00 00 01 00 -T D5 00 00 00 56 3E 00 00 00 00 +T 8F 01 00 00 56 3E 00 00 00 00 R 00 00 01 00 2B 06 02 00 -T D8 00 00 00 +T 92 01 00 00 R 00 00 01 00 -T D8 00 00 00 C3 84 00 00 00 CD 00 00 00 00 F1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T DF 00 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T E2 00 00 00 +T 92 01 00 00 CD 2B 01 00 00 F1 C3 00 00 00 00 +R 00 00 01 00 00 05 01 00 02 0B 04 00 +T 99 01 00 00 R 00 00 01 00 -T E2 00 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T EB 00 00 00 EB 21 06 00 00 00 01 04 00 ED B0 +T 99 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T A2 01 00 00 EB 21 06 00 00 00 01 04 00 ED B0 R 00 00 01 00 00 06 03 00 -T F4 00 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 +T AB 01 00 00 C3 70 01 00 00 DD 70 FE +R 00 00 01 00 00 05 01 00 +T B1 01 00 00 R 00 00 01 00 -T FF 00 00 00 FF 21 04 00 E5 2B 2B C3 +T B1 01 00 00 DD 46 04 DD 70 FF 21 04 00 E5 2B R 00 00 01 00 -T 07 01 00 00 77 00 00 00 4D C3 CB 00 00 00 2A -R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 0E 01 00 00 00 00 00 00 +T BC 01 00 00 2B 39 4D +R 00 00 01 00 +T BF 01 00 00 +R 00 00 01 00 +T BF 01 00 00 C3 84 01 00 00 21 06 00 ED 5B +R 00 00 01 00 00 05 01 00 +T C7 01 00 00 00 00 00 00 19 R 00 00 01 00 00 04 04 00 -T 10 01 00 00 +T CA 01 00 00 +R 00 00 01 00 +T CA 01 00 00 5E 23 R 00 00 01 00 -T 10 01 00 00 C3 7D 00 00 00 23 C3 D3 00 00 00 +T CC 01 00 00 +R 00 00 01 00 +T CC 01 00 00 56 3E 00 00 00 00 +R 00 00 01 00 2B 06 02 00 +T CF 01 00 00 +R 00 00 01 00 +T CF 01 00 00 C3 92 01 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T D6 01 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T D9 01 00 00 +R 00 00 01 00 +T D9 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T E2 01 00 00 EB 21 0A 00 00 00 01 04 00 ED B0 +R 00 00 01 00 00 06 03 00 +T EB 01 00 00 C3 70 01 00 00 DD 70 FE C3 +R 00 00 01 00 00 05 01 00 +T F2 01 00 00 B1 01 00 00 DD 70 FF +R 00 00 01 00 00 04 01 00 +T F7 01 00 00 +R 00 00 01 00 +T F7 01 00 00 21 04 00 E5 2B 2B 39 4D 44 21 +R 00 00 01 00 +T 01 02 00 00 06 00 +R 00 00 01 00 +T 03 02 00 00 +R 00 00 01 00 +T 03 02 00 00 C3 88 01 00 00 19 C3 CA 01 00 00 R 00 00 01 00 00 05 01 00 00 0B 01 00 -T 17 01 00 00 23 56 3E 00 00 00 00 +T 0A 02 00 00 23 56 3E 00 00 00 00 R 00 00 01 00 2B 07 02 00 -T 1B 01 00 00 +T 0E 02 00 00 R 00 00 01 00 -T 1B 01 00 00 C3 84 00 00 00 CD 00 00 00 00 F1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T 22 01 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T 25 01 00 00 +T 0E 02 00 00 C3 92 01 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 15 02 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T 18 02 00 00 R 00 00 01 00 -T 25 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T 2E 01 00 00 EB 21 0A 00 00 00 01 04 00 ED B0 +T 18 02 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T 21 02 00 00 EB 21 0E 00 00 00 01 04 00 ED B0 R 00 00 01 00 00 06 03 00 -T 37 01 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 +T 2A 02 00 00 C3 70 01 00 00 DD 70 FE C3 +R 00 00 01 00 00 05 01 00 +T 31 02 00 00 B1 01 00 00 DD 70 FF C3 +R 00 00 01 00 00 04 01 00 +T 37 02 00 00 F7 01 00 00 E5 +R 00 00 01 00 00 04 01 00 +T 3A 02 00 00 R 00 00 01 00 -T 42 01 00 00 FF 21 04 00 E5 2B 2B C3 +T 3A 02 00 00 2B 2B 39 4D 44 21 06 00 ED 5B R 00 00 01 00 -T 4A 01 00 00 77 00 00 00 4D C3 CB 00 00 00 2A -R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 51 01 00 00 00 00 00 00 C3 10 01 00 00 23 -R 00 00 01 00 00 04 04 00 00 09 01 00 -T 57 01 00 00 +T 44 02 00 00 00 00 00 00 19 +R 00 00 01 00 00 04 04 00 +T 47 02 00 00 R 00 00 01 00 -T 57 01 00 00 C3 7F 00 00 00 23 C3 D5 00 00 00 +T 47 02 00 00 C3 8D 01 00 00 23 C3 CC 01 00 00 R 00 00 01 00 00 05 01 00 00 0B 01 00 -T 5E 01 00 00 3E 00 00 00 00 C3 1B 01 00 00 CD +T 4E 02 00 00 3E 00 00 00 00 C3 0E 02 00 00 CD R 00 00 01 00 2B 05 02 00 00 0A 01 00 -T 64 01 00 00 00 00 00 00 F1 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 0A 05 00 -T 6A 01 00 00 +T 54 02 00 00 00 00 00 00 F1 C3 00 00 00 00 +R 00 00 01 00 02 04 0B 00 02 0A 04 00 +T 5A 02 00 00 R 00 00 01 00 -T 6A 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T 73 01 00 00 EB 21 0E 00 00 00 01 04 00 ED B0 +T 5A 02 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T 63 02 00 00 EB 21 12 00 00 00 01 04 00 ED B0 R 00 00 01 00 00 06 03 00 -T 7C 01 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 +T 6C 02 00 00 C3 70 01 00 00 DD 70 FE C3 +R 00 00 01 00 00 05 01 00 +T 73 02 00 00 B1 01 00 00 DD 70 FF C3 +R 00 00 01 00 00 04 01 00 +T 79 02 00 00 F7 01 00 00 E5 C3 3A 02 00 00 2B +R 00 00 01 00 00 04 01 00 00 0A 01 00 +T 80 02 00 00 R 00 00 01 00 -T 87 01 00 00 FF 21 04 00 E5 2B 2B C3 +T 80 02 00 00 39 4D 44 21 06 00 ED 5B R 00 00 01 00 -T 8F 01 00 00 77 00 00 00 4D C3 CB 00 00 00 2A -R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 96 01 00 00 00 00 00 00 C3 10 01 00 00 23 C3 -R 00 00 01 00 00 04 04 00 00 09 01 00 -T 9D 01 00 00 57 01 00 00 23 -R 00 00 01 00 00 04 01 00 -T A0 01 00 00 +T 88 02 00 00 00 00 00 00 19 5E 23 +R 00 00 01 00 00 04 04 00 +T 8D 02 00 00 R 00 00 01 00 -T A0 01 00 00 C3 81 00 00 00 3E 00 00 00 00 C3 +T 8D 02 00 00 C3 8F 01 00 00 3E 00 00 00 00 C3 R 00 00 01 00 00 05 01 00 2B 0A 02 00 -T A6 01 00 00 D8 00 00 00 CD 00 00 00 00 F1 C3 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T AD 01 00 00 00 00 00 00 -R 00 00 01 00 02 04 05 00 -T AF 01 00 00 -R 00 00 01 00 -T AF 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T B8 01 00 00 EB 21 12 00 00 00 01 04 00 ED B0 +T 93 02 00 00 CF 01 00 00 CD 00 00 00 00 F1 C3 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 9A 02 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 9C 02 00 00 +R 00 00 01 00 +T 9C 02 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T A5 02 00 00 EB 21 16 00 00 00 01 04 00 ED B0 R 00 00 01 00 00 06 03 00 -T C1 01 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 -R 00 00 01 00 -T CC 01 00 00 FF 21 04 00 E5 2B 2B C3 -R 00 00 01 00 -T D4 01 00 00 77 00 00 00 4D C3 CB 00 00 00 2A -R 00 00 01 00 00 04 01 00 00 0A 01 00 -T DB 01 00 00 00 00 00 00 C3 10 01 00 00 23 C3 -R 00 00 01 00 00 04 04 00 00 09 01 00 -T E2 01 00 00 57 01 00 00 23 C3 A0 01 00 00 3E +T AE 02 00 00 C3 70 01 00 00 DD 70 FE C3 +R 00 00 01 00 00 05 01 00 +T B5 02 00 00 B1 01 00 00 DD 70 FF C3 +R 00 00 01 00 00 04 01 00 +T BB 02 00 00 F7 01 00 00 E5 C3 3A 02 00 00 2B R 00 00 01 00 00 04 01 00 00 0A 01 00 -T E9 01 00 00 00 00 00 00 +T C2 02 00 00 C3 80 02 00 00 4D 44 21 06 00 ED +R 00 00 01 00 00 05 01 00 +T CB 02 00 00 5B 00 00 00 00 19 5E 23 56 3E +R 00 00 01 00 00 05 04 00 +T D3 02 00 00 00 00 00 00 R 00 00 01 00 2B 04 02 00 -T EA 01 00 00 -R 00 00 01 00 -T EA 01 00 00 C3 84 00 00 00 CD 00 00 00 00 F1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T F1 01 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T F4 01 00 00 +T D4 02 00 00 R 00 00 01 00 -T F4 01 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T FD 01 00 00 EB 21 16 00 00 00 01 04 00 ED B0 -R 00 00 01 00 00 06 03 00 -T 06 02 00 00 DD 46 02 DD 70 FE DD 46 04 DD 70 +T D4 02 00 00 C3 92 01 00 00 CD 00 00 00 00 F1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T DB 02 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T DE 02 00 00 R 00 00 01 00 -T 11 02 00 00 FF 21 04 00 E5 2B 2B C3 +T DE 02 00 00 C5 FD E5 DD E5 D5 DD E1 3E R 00 00 01 00 -T 19 02 00 00 77 00 00 00 4D C3 CB 00 00 00 2A -R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 20 02 00 00 00 00 00 00 C3 10 01 00 00 23 C3 -R 00 00 01 00 00 04 04 00 00 09 01 00 -T 27 02 00 00 57 01 00 00 23 C3 A0 01 00 00 3E -R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 2E 02 00 00 00 00 00 00 C3 EA 01 00 00 CD -R 00 00 01 00 2B 04 02 00 00 09 01 00 -T 33 02 00 00 00 00 00 00 F1 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 0A 05 00 -T 39 02 00 00 -R 00 00 01 00 -T 39 02 00 00 C5 FD E5 DD E5 D5 DD E1 3E -R 00 00 01 00 -T 42 02 00 00 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 04 07 00 02 09 07 00 -T 47 02 00 00 00 00 00 00 E5 DD E5 C1 2A -R 00 00 01 00 02 04 0C 00 -T 4E 02 00 00 00 00 00 00 23 23 5E 23 56 3E -R 00 00 01 00 00 04 04 00 -T 56 02 00 00 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 04 02 00 02 09 02 00 -T 5B 02 00 00 00 00 00 00 F1 -R 00 00 01 00 02 04 0C 00 -T 5E 02 00 00 +T E7 02 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 06 00 02 09 06 00 +T EC 02 00 00 00 00 00 00 E5 DD E5 C1 21 06 00 +R 00 00 01 00 02 04 0B 00 +T F5 02 00 00 CD 21 01 00 00 F1 +R 00 00 01 00 00 05 01 00 +T F9 02 00 00 R 00 00 01 00 -T 5E 02 00 00 DD E1 FD E1 C1 C3 00 00 00 00 +T F9 02 00 00 DD E1 FD E1 C1 C3 00 00 00 00 R 00 00 01 00 02 0A 00 00 -T 66 02 00 00 +T 01 03 00 00 R 00 00 01 00 -T 66 02 00 00 CD 00 00 00 00 F8 FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T 6F 02 00 00 EB 21 1A 00 00 00 01 07 00 ED B0 +T 01 03 00 00 CD 00 00 00 00 F8 FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T 0A 03 00 00 EB 21 1A 00 00 00 01 07 00 ED B0 R 00 00 01 00 00 06 03 00 -T 78 02 00 00 DD 46 02 DD 70 FA DD 46 04 DD 70 +T 13 03 00 00 DD 46 02 DD 70 FA DD 46 04 DD 70 R 00 00 01 00 -T 83 02 00 00 FB DD 46 0A DD 70 FC DD 46 0C DD +T 1E 03 00 00 FB DD 46 0A DD 70 FC DD 46 0C DD R 00 00 01 00 -T 8E 02 00 00 70 FD DD 46 0E DD 70 FE 21 07 00 +T 29 03 00 00 70 FD DD 46 0E DD 70 FE 21 07 00 R 00 00 01 00 -T 99 02 00 00 E5 2E 02 C3 77 00 00 00 4D C3 +T 34 03 00 00 E5 2E 02 C3 82 01 00 00 4D C3 R 00 00 01 00 00 08 01 00 -T A1 02 00 00 CB 00 00 00 2A 00 00 00 00 C3 -R 00 00 01 00 00 04 01 00 00 09 04 00 -T A7 02 00 00 10 01 00 00 23 C3 57 01 00 00 23 +T 3C 03 00 00 BF 01 00 00 21 06 00 C3 +R 00 00 01 00 00 04 01 00 +T 42 03 00 00 03 02 00 00 19 C3 47 02 00 00 23 R 00 00 01 00 00 04 01 00 00 0A 01 00 -T AE 02 00 00 C3 A0 01 00 00 3E 00 00 00 00 C3 +T 49 03 00 00 C3 8D 02 00 00 3E 00 00 00 00 C3 R 00 00 01 00 00 05 01 00 2B 0A 02 00 -T B4 02 00 00 EA 01 00 00 CD 00 00 00 00 F1 C3 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T BB 02 00 00 00 00 00 00 -R 00 00 01 00 02 04 05 00 -T BD 02 00 00 +T 4F 03 00 00 D4 02 00 00 CD 00 00 00 00 F1 C3 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 56 03 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 58 03 00 00 R 00 00 01 00 -T BD 02 00 00 C5 D5 CD D7 02 00 00 CD +T 58 03 00 00 C5 D5 CD 72 03 00 00 CD R 00 00 01 00 00 07 01 00 -T C3 02 00 00 00 00 00 00 21 80 00 E5 6C E5 E5 -R 00 00 01 00 02 04 0C 00 -T CC 02 00 00 CD EF 02 00 00 E1 E1 E1 D1 C1 C3 +T 5E 03 00 00 00 00 00 00 21 80 00 E5 6C E5 E5 +R 00 00 01 00 02 04 0B 00 +T 67 03 00 00 CD 8A 03 00 00 E1 E1 E1 D1 C1 C3 R 00 00 01 00 00 05 01 00 -T D5 02 00 00 00 00 00 00 +T 70 03 00 00 00 00 00 00 R 00 00 01 00 02 04 00 00 -T D7 02 00 00 +T 72 03 00 00 R 00 00 01 00 -T D7 02 00 00 01 00 00 59 50 3E A3 00 00 00 21 +T 72 03 00 00 01 00 00 59 50 3E 5E 01 00 00 21 R 00 00 01 00 29 0A 01 00 -T DF 02 00 00 A3 00 00 00 CD 00 00 00 00 01 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T E5 02 00 00 80 00 58 50 3E E2 00 00 00 21 +T 7A 03 00 00 5E 01 00 00 CD 00 00 00 00 01 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 80 03 00 00 80 00 58 50 3E 99 01 00 00 21 R 00 00 01 00 29 09 01 00 -T EC 02 00 00 E2 00 00 00 C9 +T 87 03 00 00 99 01 00 00 C9 R 00 00 01 00 00 04 01 00 -T EF 02 00 00 +T 8A 03 00 00 R 00 00 01 00 -T EF 02 00 00 4D 44 EB +T 8A 03 00 00 4D 44 EB R 00 00 01 00 -T F2 02 00 00 +T 8D 03 00 00 R 00 00 01 00 -T F2 02 00 00 3E 66 02 00 00 21 66 02 00 00 C3 +T 8D 03 00 00 3E 01 03 00 00 21 01 03 00 00 C3 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T F8 02 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T FA 02 00 00 +T 93 03 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 95 03 00 00 R 00 00 01 00 -T FA 02 00 00 CD 00 00 00 00 FC FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T 03 03 00 00 EB 21 21 00 00 00 01 03 00 ED B0 +T 95 03 00 00 CD 00 00 00 00 FC FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T 9E 03 00 00 EB 21 21 00 00 00 01 03 00 ED B0 R 00 00 01 00 00 06 03 00 -T 0C 03 00 00 DD 46 02 DD 70 FE 21 03 00 E5 2B +T A7 03 00 00 DD 46 02 DD 70 FE 21 03 00 E5 2B R 00 00 01 00 -T 17 03 00 00 C3 77 00 00 00 4D C3 CB 00 00 00 +T B2 03 00 00 C3 82 01 00 00 4D C3 BF 01 00 00 R 00 00 01 00 00 05 01 00 00 0B 01 00 -T 1E 03 00 00 2A 00 00 00 00 C3 10 01 00 00 23 -R 00 00 01 00 00 05 04 00 00 0A 01 00 -T 25 03 00 00 C3 57 01 00 00 23 C3 A0 01 00 00 -R 00 00 01 00 00 05 01 00 00 0B 01 00 -T 2C 03 00 00 3E 00 00 00 00 C3 EA 01 00 00 CD -R 00 00 01 00 2B 05 02 00 00 0A 01 00 -T 32 03 00 00 00 00 00 00 F1 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 0A 05 00 -T 38 03 00 00 +T B9 03 00 00 21 06 00 C3 03 02 00 00 19 C3 +R 00 00 01 00 00 08 01 00 +T C1 03 00 00 47 02 00 00 23 C3 8D 02 00 00 3E +R 00 00 01 00 00 04 01 00 00 0A 01 00 +T C8 03 00 00 00 00 00 00 C3 D4 02 00 00 CD +R 00 00 01 00 2B 04 02 00 00 09 01 00 +T CD 03 00 00 00 00 00 00 F1 C3 00 00 00 00 +R 00 00 01 00 02 04 0B 00 02 0A 04 00 +T D3 03 00 00 R 00 00 01 00 -T 38 03 00 00 CD 00 00 00 00 FE FF 21 00 00 39 -R 00 00 01 00 02 05 0F 00 -T 41 03 00 00 EB 21 24 00 00 00 01 02 00 ED B0 +T D3 03 00 00 CD 00 00 00 00 FE FF 21 00 00 39 +R 00 00 01 00 02 05 0E 00 +T DC 03 00 00 EB 21 24 00 00 00 01 02 00 ED B0 R 00 00 01 00 00 06 03 00 -T 4A 03 00 00 DD 46 02 DD 70 FF 21 02 00 E5 C3 +T E5 03 00 00 DD 46 02 DD 70 FF 21 02 00 E5 C3 R 00 00 01 00 -T 55 03 00 00 77 00 00 00 4D C3 CB 00 00 00 2A +T F0 03 00 00 82 01 00 00 4D C3 BF 01 00 00 21 R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 5C 03 00 00 00 00 00 00 C3 10 01 00 00 23 C3 -R 00 00 01 00 00 04 04 00 00 09 01 00 -T 63 03 00 00 57 01 00 00 23 C3 A0 01 00 00 3E +T F7 03 00 00 06 00 C3 03 02 00 00 19 C3 +R 00 00 01 00 00 07 01 00 +T FE 03 00 00 47 02 00 00 23 C3 8D 02 00 00 3E R 00 00 01 00 00 04 01 00 00 0A 01 00 -T 6A 03 00 00 00 00 00 00 C3 EA 01 00 00 CD +T 05 04 00 00 00 00 00 00 C3 D4 02 00 00 CD R 00 00 01 00 2B 04 02 00 00 09 01 00 -T 6F 03 00 00 00 00 00 00 F1 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 0A 05 00 -T 75 03 00 00 +T 0A 04 00 00 00 00 00 00 F1 C3 00 00 00 00 +R 00 00 01 00 02 04 0B 00 02 0A 04 00 +T 10 04 00 00 R 00 00 01 00 -T 75 03 00 00 CD 00 00 00 00 00 00 21 0C 00 ED -R 00 00 01 00 02 05 0F 00 -T 7E 03 00 00 4B 00 00 00 00 09 +T 10 04 00 00 CD 00 00 00 00 00 00 21 14 00 ED +R 00 00 01 00 02 05 0E 00 +T 19 04 00 00 4B 00 00 00 00 09 R 00 00 01 00 00 05 04 00 -T 82 03 00 00 +T 1D 04 00 00 R 00 00 01 00 -T 82 03 00 00 46 23 66 68 EB +T 1D 04 00 00 46 23 66 68 EB R 00 00 01 00 -T 87 03 00 00 +T 22 04 00 00 R 00 00 01 00 -T 87 03 00 00 7B B2 28 16 6B 62 46 23 66 68 DD +T 22 04 00 00 7B B2 28 16 6B 62 46 23 66 68 DD R 00 00 01 00 -T 92 03 00 00 4E 02 DD 46 03 ED 42 28 06 +T 2D 04 00 00 4E 02 DD 46 03 ED 42 28 06 R 00 00 01 00 -T 9B 03 00 00 +T 36 04 00 00 R 00 00 01 00 -T 9B 03 00 00 +T 36 04 00 00 R 00 00 01 00 -T 9B 03 00 00 +T 36 04 00 00 R 00 00 01 00 -T 9B 03 00 00 21 08 00 19 18 E1 +T 36 04 00 00 21 08 00 19 18 E1 R 00 00 01 00 -T A1 03 00 00 +T 3C 04 00 00 R 00 00 01 00 -T A1 03 00 00 EB C3 00 00 00 00 -R 00 00 01 00 02 06 05 00 -T A5 03 00 00 +T 3C 04 00 00 EB C3 00 00 00 00 +R 00 00 01 00 02 06 04 00 +T 40 04 00 00 R 00 00 01 00 -T A5 03 00 00 CD 00 00 00 00 3E 75 03 00 00 21 -R 00 00 01 00 02 05 0B 00 29 0A 01 00 -T AB 03 00 00 75 03 00 00 CD 22 04 00 00 28 29 +T 40 04 00 00 CD 00 00 00 00 3E 10 04 00 00 21 +R 00 00 01 00 02 05 0A 00 29 0A 01 00 +T 46 04 00 00 10 04 00 00 CD B1 04 00 00 28 29 R 00 00 01 00 00 04 01 00 00 09 01 00 -T B2 03 00 00 +T 4D 04 00 00 R 00 00 01 00 -T B2 03 00 00 DD 5E 02 DD 56 03 3E 38 03 00 00 +T 4D 04 00 00 DD 5E 02 DD 56 03 3E D3 03 00 00 R 00 00 01 00 29 0B 01 00 -T BA 03 00 00 21 38 03 00 00 CD 00 00 00 00 21 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T C1 03 00 00 0A 00 ED 4B 00 00 00 00 09 E5 DD +T 55 04 00 00 21 D3 03 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 5C 04 00 00 12 00 ED 4B 00 00 00 00 09 E5 DD R 00 00 01 00 00 08 04 00 -T CA 03 00 00 5E 02 DD 56 03 3E 75 03 00 00 21 +T 65 04 00 00 5E 02 DD 56 03 3E 10 04 00 00 21 R 00 00 01 00 29 0A 01 00 -T D2 03 00 00 75 03 00 00 CD 2D 04 00 00 E1 71 +T 6D 04 00 00 10 04 00 00 CD BC 04 00 00 E1 71 R 00 00 01 00 00 04 01 00 00 09 01 00 -T D9 03 00 00 23 70 -R 00 00 01 00 -T DB 03 00 00 +T 74 04 00 00 23 70 R 00 00 01 00 -T DB 03 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T DE 03 00 00 +T 76 04 00 00 R 00 00 01 00 -T DE 03 00 00 ED 4B 00 00 00 00 09 46 23 66 68 -R 00 00 01 00 00 06 04 00 -T E7 03 00 00 +T 76 04 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T 79 04 00 00 R 00 00 01 00 -T E7 03 00 00 23 23 4E 23 46 23 7E 69 60 CD +T 79 04 00 00 21 12 00 ED 4B 00 00 00 00 09 46 +R 00 00 01 00 00 09 04 00 +T 82 04 00 00 23 66 68 R 00 00 01 00 -T F1 03 00 00 00 00 00 00 4D 44 FD 6E 06 FD 66 -R 00 00 01 00 02 04 0C 00 -T FA 03 00 00 07 A7 ED 42 EB 01 02 00 CD +T 85 04 00 00 R 00 00 01 00 -T 03 04 00 00 00 00 00 00 DD 6E 04 DD 66 05 19 -R 00 00 01 00 02 04 12 00 -T 0C 04 00 00 EB 3E A3 00 00 00 21 A3 00 00 00 -R 00 00 01 00 29 06 01 00 00 0B 01 00 -T 12 04 00 00 C9 +T 85 04 00 00 23 23 4E 23 46 23 7E 69 60 CD R 00 00 01 00 -T 13 04 00 00 +T 8F 04 00 00 00 00 00 00 4D 44 FD 6E 06 FD 66 +R 00 00 01 00 02 04 0B 00 +T 98 04 00 00 07 A7 ED 42 EB 01 02 00 CD R 00 00 01 00 -T 13 04 00 00 CD 00 00 00 00 4D 44 FD 6E 08 FD -R 00 00 01 00 02 05 0C 00 -T 1C 04 00 00 66 09 A7 ED 42 C9 +T A1 04 00 00 00 00 00 00 DD 6E 04 DD 66 05 19 +R 00 00 01 00 02 04 11 00 +T AA 04 00 00 EB 3E 5E 01 00 00 21 5E 01 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T B0 04 00 00 C9 R 00 00 01 00 -T 22 04 00 00 +T B1 04 00 00 R 00 00 01 00 -T 22 04 00 00 CD 00 00 00 00 7D B4 C9 -R 00 00 01 00 02 05 0C 00 -T 28 04 00 00 +T B1 04 00 00 CD 00 00 00 00 7D B4 C9 +R 00 00 01 00 02 05 0B 00 +T B7 04 00 00 R 00 00 01 00 -T 28 04 00 00 3E 00 00 00 00 21 00 00 00 00 -R 00 00 01 00 2B 05 15 00 02 0A 15 00 -T 2D 04 00 00 +T B7 04 00 00 3E 00 00 00 00 21 00 00 00 00 +R 00 00 01 00 2B 05 13 00 02 0A 13 00 +T BC 04 00 00 R 00 00 01 00 -T 2D 04 00 00 CD 00 00 00 00 4D 44 C9 -R 00 00 01 00 02 05 0C 00 -T 33 04 00 00 +T BC 04 00 00 CD 00 00 00 00 4D 44 C9 +R 00 00 01 00 02 05 0B 00 +T C2 04 00 00 R 00 00 01 00 -T 33 04 00 00 CD 00 00 00 00 FC FF FD E5 11 -R 00 00 01 00 02 05 0F 00 -T 3B 04 00 00 0E 00 CD CE 04 00 00 DD 4E 02 71 +T C2 04 00 00 CD 00 00 00 00 FC FF FD E5 11 +R 00 00 01 00 02 05 0E 00 +T CA 04 00 00 0E 00 CD 5D 05 00 00 DD 4E 02 71 R 00 00 01 00 00 07 01 00 -T 44 04 00 00 DD 46 03 23 70 DD 46 0C DD 6E 0A +T D3 04 00 00 DD 46 03 23 70 DD 46 0C DD 6E 0A R 00 00 01 00 -T 4F 04 00 00 FD 75 02 DD 66 0B FD 74 03 FD 70 +T DE 04 00 00 FD 75 02 DD 66 0B FD 74 03 FD 70 R 00 00 01 00 -T 5A 04 00 00 04 DD 46 10 DD 6E 0E FD 75 05 DD +T E9 04 00 00 04 DD 46 10 DD 6E 0E FD 75 05 DD R 00 00 01 00 -T 65 04 00 00 66 0F FD 74 06 FD 70 07 AF FD 77 +T F4 04 00 00 66 0F FD 74 06 FD 70 07 AF FD 77 R 00 00 01 00 -T 70 04 00 00 08 FD 77 09 DD 6E 12 FD 75 0A DD +T FF 04 00 00 08 FD 77 09 DD 6E 12 FD 75 0A DD R 00 00 01 00 -T 7B 04 00 00 66 13 FD 74 0B DD 6E 14 FD 75 0C +T 0A 05 00 00 66 13 FD 74 0B DD 6E 14 FD 75 0C R 00 00 01 00 -T 86 04 00 00 DD 66 15 FD 74 0D 21 0C 00 ED 4B +T 15 05 00 00 DD 66 15 FD 74 0D 21 14 00 ED 4B R 00 00 01 00 -T 91 04 00 00 00 00 00 00 09 7E 23 B6 21 0C 00 +T 20 05 00 00 00 00 00 00 09 7E 23 B6 21 14 00 R 00 00 01 00 00 04 04 00 -T 9A 04 00 00 ED 4B 00 00 00 00 09 20 10 +T 29 05 00 00 ED 4B 00 00 00 00 09 20 10 R 00 00 01 00 00 06 04 00 -T A1 04 00 00 +T 30 05 00 00 R 00 00 01 00 -T A1 04 00 00 FD E5 C1 71 23 70 21 0A 00 ED 4B +T 30 05 00 00 FD E5 C1 71 23 70 21 12 00 ED 4B R 00 00 01 00 -T AC 04 00 00 00 00 00 00 09 18 12 +T 3B 05 00 00 00 00 00 00 09 18 12 R 00 00 01 00 00 04 04 00 -T B1 04 00 00 +T 40 05 00 00 R 00 00 01 00 -T B1 04 00 00 46 23 66 68 EB +T 40 05 00 00 46 23 66 68 EB R 00 00 01 00 -T B6 04 00 00 +T 45 05 00 00 R 00 00 01 00 -T B6 04 00 00 21 08 00 19 7E 23 B6 21 08 00 19 +T 45 05 00 00 21 08 00 19 7E 23 B6 21 08 00 19 R 00 00 01 00 -T C1 04 00 00 20 EE +T 50 05 00 00 20 EE R 00 00 01 00 -T C3 04 00 00 +T 52 05 00 00 R 00 00 01 00 -T C3 04 00 00 +T 52 05 00 00 R 00 00 01 00 -T C3 04 00 00 FD E5 C1 71 23 70 +T 52 05 00 00 FD E5 C1 71 23 70 R 00 00 01 00 -T C9 04 00 00 +T 58 05 00 00 R 00 00 01 00 -T C9 04 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T CE 04 00 00 +T 58 05 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T 5D 05 00 00 R 00 00 01 00 -T CE 04 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 15 00 02 0A 15 00 -T D4 04 00 00 00 00 00 00 E5 FD E1 C9 -R 00 00 01 00 02 04 0C 00 -T DA 04 00 00 +T 5D 05 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 63 05 00 00 00 00 00 00 E5 FD E1 C9 +R 00 00 01 00 02 04 0B 00 +T 69 05 00 00 R 00 00 01 00 -T DA 04 00 00 FD E5 DD E5 C5 D5 DD 21 00 00 FD +T 69 05 00 00 FD E5 DD E5 C5 D5 DD 21 00 00 FD R 00 00 01 00 -T E5 04 00 00 21 00 00 +T 74 05 00 00 21 00 00 R 00 00 01 00 -T E8 04 00 00 +T 77 05 00 00 R 00 00 01 00 -T E8 04 00 00 FD E5 21 02 00 39 4E 23 46 E1 09 +T 77 05 00 00 FD E5 21 02 00 39 4E 23 46 E1 09 R 00 00 01 00 -T F3 04 00 00 7E B7 28 50 +T 82 05 00 00 7E B7 28 50 R 00 00 01 00 -T F7 04 00 00 +T 86 05 00 00 R 00 00 01 00 -T F7 04 00 00 FD E5 E1 09 5E CD 00 00 00 00 -R 00 00 01 00 02 0A 08 00 -T FF 04 00 00 0A 00 21 2C 2E 31 49 69 6A 6B 6C +T 86 05 00 00 FD E5 E1 09 5E CD 00 00 00 00 +R 00 00 01 00 02 0A 07 00 +T 8E 05 00 00 0A 00 21 2C 2E 31 49 69 6A 6B 6C R 00 00 01 00 -T 0A 05 00 00 72 35 05 00 00 30 05 00 00 +T 99 05 00 00 72 C4 05 00 00 BF 05 00 00 R 00 00 01 00 00 05 01 00 00 09 01 00 -T 0F 05 00 00 26 05 00 00 30 05 00 00 +T 9E 05 00 00 B5 05 00 00 BF 05 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 13 05 00 00 30 05 00 00 21 05 00 00 +T A2 05 00 00 BF 05 00 00 B0 05 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 17 05 00 00 21 05 00 00 2B 05 00 00 +T A6 05 00 00 B0 05 00 00 BA 05 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 1B 05 00 00 2B 05 00 00 2B 05 00 00 +T AA 05 00 00 BA 05 00 00 BA 05 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 1F 05 00 00 21 05 00 00 +T AE 05 00 00 B0 05 00 00 R 00 00 01 00 00 04 01 00 -T 21 05 00 00 +T B0 05 00 00 R 00 00 01 00 -T 21 05 00 00 01 02 00 18 12 +T B0 05 00 00 01 02 00 18 12 R 00 00 01 00 -T 26 05 00 00 +T B5 05 00 00 R 00 00 01 00 -T 26 05 00 00 01 03 00 18 0D +T B5 05 00 00 01 03 00 18 0D R 00 00 01 00 -T 2B 05 00 00 +T BA 05 00 00 R 00 00 01 00 -T 2B 05 00 00 01 04 00 18 08 +T BA 05 00 00 01 04 00 18 08 R 00 00 01 00 -T 30 05 00 00 +T BF 05 00 00 R 00 00 01 00 -T 30 05 00 00 01 05 00 18 03 +T BF 05 00 00 01 05 00 18 03 R 00 00 01 00 -T 35 05 00 00 +T C4 05 00 00 R 00 00 01 00 -T 35 05 00 00 01 06 00 +T C4 05 00 00 01 06 00 R 00 00 01 00 -T 38 05 00 00 +T C7 05 00 00 R 00 00 01 00 -T 38 05 00 00 DD 09 +T C7 05 00 00 DD 09 R 00 00 01 00 -T 3A 05 00 00 +T C9 05 00 00 R 00 00 01 00 -T 3A 05 00 00 21 02 00 39 4E 23 46 DD 09 FD 23 +T C9 05 00 00 21 02 00 39 4E 23 46 DD 09 FD 23 R 00 00 01 00 -T 45 05 00 00 18 A1 +T D4 05 00 00 18 A1 R 00 00 01 00 -T 47 05 00 00 +T D6 05 00 00 R 00 00 01 00 -T 47 05 00 00 DD E5 E1 F1 F1 DD E1 FD E1 C3 +T D6 05 00 00 DD E5 E1 F1 F1 DD E1 FD E1 C3 R 00 00 01 00 -T 51 05 00 00 00 00 00 00 +T E0 05 00 00 00 00 00 00 R 00 00 01 00 02 04 00 00 -T 53 05 00 00 +T E2 05 00 00 R 00 00 01 00 -T 53 05 00 00 CD 00 00 00 00 7B FE 80 30 06 -R 00 00 01 00 02 05 0B 00 -T 5B 05 00 00 +T E2 05 00 00 CD 00 00 00 00 7B FE 80 30 06 +R 00 00 01 00 02 05 0A 00 +T EA 05 00 00 R 00 00 01 00 -T 5B 05 00 00 21 07 00 09 18 0C +T EA 05 00 00 21 07 00 09 18 0C R 00 00 01 00 -T 61 05 00 00 +T F0 05 00 00 R 00 00 01 00 -T 61 05 00 00 FE CC 38 08 3E DF BB 38 03 +T F0 05 00 00 FE CC 38 08 3E DF BB 38 03 R 00 00 01 00 -T 6A 05 00 00 +T F9 05 00 00 R 00 00 01 00 -T 6A 05 00 00 +T F9 05 00 00 R 00 00 01 00 -T 6A 05 00 00 +T F9 05 00 00 R 00 00 01 00 -T 6A 05 00 00 69 60 23 +T F9 05 00 00 69 60 23 R 00 00 01 00 -T 6D 05 00 00 +T FC 05 00 00 R 00 00 01 00 -T 6D 05 00 00 +T FC 05 00 00 R 00 00 01 00 -T 6D 05 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T 70 05 00 00 +T FC 05 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T FF 05 00 00 R 00 00 01 00 -T 70 05 00 00 CD 00 00 00 00 01 00 00 -R 00 00 01 00 02 05 0B 00 -T 76 05 00 00 +T FF 05 00 00 CD 00 00 00 00 01 00 00 +R 00 00 01 00 02 05 0A 00 +T 05 06 00 00 R 00 00 01 00 -T 76 05 00 00 1A 5F 3E 53 05 00 00 21 +T 05 06 00 00 1A 5F 3E E2 05 00 00 21 R 00 00 01 00 29 07 01 00 -T 7B 05 00 00 53 05 00 00 CD 00 00 00 00 C3 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 81 05 00 00 00 00 00 00 -R 00 00 01 00 02 04 05 00 -T 83 05 00 00 -R 00 00 01 00 -T 83 05 00 00 CD 00 00 00 00 01 05 00 C3 -R 00 00 01 00 02 05 0B 00 -T 8A 05 00 00 76 05 00 00 +T 0A 06 00 00 E2 05 00 00 CD 00 00 00 00 C3 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 10 06 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 12 06 00 00 +R 00 00 01 00 +T 12 06 00 00 CD 00 00 00 00 01 05 00 C3 +R 00 00 01 00 02 05 0A 00 +T 19 06 00 00 05 06 00 00 R 00 00 01 00 00 04 01 00 -T 8C 05 00 00 +T 1B 06 00 00 R 00 00 01 00 -T 8C 05 00 00 CD 00 00 00 00 01 00 00 -R 00 00 01 00 02 05 0B 00 -T 92 05 00 00 +T 1B 06 00 00 CD 00 00 00 00 01 00 00 +R 00 00 01 00 02 05 0A 00 +T 21 06 00 00 R 00 00 01 00 -T 92 05 00 00 3E DA 04 00 00 21 DA 04 00 00 CD +T 21 06 00 00 3E 69 05 00 00 21 69 05 00 00 CD R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 98 05 00 00 00 00 00 00 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 09 05 00 -T 9D 05 00 00 +T 27 06 00 00 00 00 00 00 C3 00 00 00 00 +R 00 00 01 00 02 04 0B 00 02 09 04 00 +T 2C 06 00 00 R 00 00 01 00 -T 9D 05 00 00 CD 00 00 00 00 01 02 00 C3 -R 00 00 01 00 02 05 0B 00 -T A4 05 00 00 92 05 00 00 +T 2C 06 00 00 CD 00 00 00 00 01 02 00 C3 +R 00 00 01 00 02 05 0A 00 +T 33 06 00 00 21 06 00 00 R 00 00 01 00 00 04 01 00 -T A6 05 00 00 +T 35 06 00 00 R 00 00 01 00 -T A6 05 00 00 CD 00 00 00 00 01 03 00 C3 -R 00 00 01 00 02 05 0B 00 -T AD 05 00 00 92 05 00 00 +T 35 06 00 00 CD 00 00 00 00 01 03 00 C3 +R 00 00 01 00 02 05 0A 00 +T 3C 06 00 00 21 06 00 00 R 00 00 01 00 00 04 01 00 -T AF 05 00 00 +T 3E 06 00 00 R 00 00 01 00 -T AF 05 00 00 CD 00 00 00 00 00 00 FD E5 11 -R 00 00 01 00 02 05 0F 00 -T B7 05 00 00 28 00 CD CE 04 00 00 2A +T 3E 06 00 00 CD 00 00 00 00 00 00 FD E5 11 +R 00 00 01 00 02 05 0E 00 +T 46 06 00 00 28 00 CD 5D 05 00 00 2A R 00 00 01 00 00 07 01 00 -T BD 05 00 00 00 00 00 00 5E 23 56 13 72 2B 73 +T 4C 06 00 00 00 00 00 00 5E 23 56 13 72 2B 73 R 00 00 01 00 00 04 04 00 -T C6 05 00 00 FD E5 E1 73 23 72 DD 6E 02 FD 75 +T 55 06 00 00 FD E5 E1 73 23 72 DD 6E 02 FD 75 R 00 00 01 00 -T D1 05 00 00 02 DD 66 03 FD 74 03 FD 71 04 FD +T 60 06 00 00 02 DD 66 03 FD 74 03 FD 71 04 FD R 00 00 01 00 -T DC 05 00 00 70 05 DD 6E 0A FD 75 06 DD 66 0B +T 6B 06 00 00 70 05 DD 6E 0A FD 75 06 DD 66 0B R 00 00 01 00 -T E7 05 00 00 FD 74 07 DD 6E 0C FD 75 08 DD 66 +T 76 06 00 00 FD 74 07 DD 6E 0C FD 75 08 DD 66 R 00 00 01 00 -T F2 05 00 00 0D FD 74 09 AF FD 77 0A FD 77 0B +T 81 06 00 00 0D FD 74 09 AF FD 77 0A FD 77 0B R 00 00 01 00 -T FD 05 00 00 FD 77 0C FD 77 0D FD 77 0E FD 77 +T 8C 06 00 00 FD 77 0C FD 77 0D FD 77 0E FD 77 R 00 00 01 00 -T 08 06 00 00 0F FD 77 10 FD 77 11 FD 77 12 FD +T 97 06 00 00 0F FD 77 10 FD 77 11 FD 77 12 FD R 00 00 01 00 -T 13 06 00 00 77 13 FD 77 14 FD 77 15 FD 77 16 +T A2 06 00 00 77 13 FD 77 14 FD 77 15 FD 77 16 R 00 00 01 00 -T 1E 06 00 00 FD 77 17 FD 77 18 FD 77 19 FD 77 +T AD 06 00 00 FD 77 17 FD 77 18 FD 77 19 FD 77 R 00 00 01 00 -T 29 06 00 00 1A FD 77 1B FD 77 1C FD 77 1D FD +T B8 06 00 00 1A FD 77 1B FD 77 1C FD 77 1D FD R 00 00 01 00 -T 34 06 00 00 77 1E FD 77 1F FD 77 24 FD 77 25 +T C3 06 00 00 77 1E FD 77 1F FD 77 24 FD 77 25 R 00 00 01 00 -T 3F 06 00 00 FD 77 26 FD 77 27 FD 77 20 FD 77 +T CE 06 00 00 FD 77 26 FD 77 27 FD 77 20 FD 77 R 00 00 01 00 -T 4A 06 00 00 21 FD 77 22 FD 77 23 +T D9 06 00 00 21 FD 77 22 FD 77 23 R 00 00 01 00 -T 51 06 00 00 +T E0 06 00 00 R 00 00 01 00 -T 51 06 00 00 FD E5 E1 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 0A 05 00 -T 59 06 00 00 +T E0 06 00 00 FD E5 E1 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 0A 04 00 +T E8 06 00 00 R 00 00 01 00 -T 59 06 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T 62 06 00 00 02 DD 66 03 E5 FD E1 11 00 00 +T E8 06 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T F1 06 00 00 02 DD 66 03 E5 FD E1 11 00 00 R 00 00 01 00 -T 6C 06 00 00 +T FB 06 00 00 R 00 00 01 00 -T 6C 06 00 00 DD 6E 04 DD 66 05 19 7E B7 28 21 +T FB 06 00 00 DD 6E 04 DD 66 05 19 7E B7 28 21 R 00 00 01 00 -T 77 06 00 00 01 14 80 6B 62 78 AC 67 ED 42 30 +T 06 07 00 00 01 14 80 6B 62 78 AC 67 ED 42 30 R 00 00 01 00 -T 82 06 00 00 15 +T 11 07 00 00 15 R 00 00 01 00 -T 83 06 00 00 +T 12 07 00 00 R 00 00 01 00 -T 83 06 00 00 +T 12 07 00 00 R 00 00 01 00 -T 83 06 00 00 +T 12 07 00 00 R 00 00 01 00 -T 83 06 00 00 FD 6E 20 FD 66 21 19 E5 DD 6E 04 +T 12 07 00 00 FD 6E 20 FD 66 21 19 E5 DD 6E 04 R 00 00 01 00 -T 8E 06 00 00 DD 66 05 19 46 E1 70 13 18 D4 +T 1D 07 00 00 DD 66 05 19 46 E1 70 13 18 D4 R 00 00 01 00 -T 98 06 00 00 +T 27 07 00 00 R 00 00 01 00 -T 98 06 00 00 FD 6E 20 FD 66 21 19 36 00 FD E1 +T 27 07 00 00 FD 6E 20 FD 66 21 19 36 00 FD E1 R 00 00 01 00 -T A3 06 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T A6 06 00 00 +T 32 07 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T 35 07 00 00 R 00 00 01 00 -T A6 06 00 00 CD 00 00 00 00 00 00 FD E5 59 50 -R 00 00 01 00 02 05 0F 00 -T AF 06 00 00 21 15 00 DD 4E 02 DD 46 03 09 7E +T 35 07 00 00 CD 00 00 00 00 00 00 FD E5 59 50 +R 00 00 01 00 02 05 0E 00 +T 3E 07 00 00 21 15 00 DD 4E 02 DD 46 03 09 7E R 00 00 01 00 -T BA 06 00 00 23 66 6F E5 FD E1 21 15 00 09 7E +T 49 07 00 00 23 66 6F E5 FD E1 21 15 00 09 7E R 00 00 01 00 -T C5 06 00 00 23 B6 20 09 +T 54 07 00 00 23 B6 20 09 R 00 00 01 00 -T C9 06 00 00 +T 58 07 00 00 R 00 00 01 00 -T C9 06 00 00 21 15 00 09 73 23 72 18 19 +T 58 07 00 00 21 15 00 09 73 23 72 18 19 R 00 00 01 00 -T D2 06 00 00 +T 61 07 00 00 R 00 00 01 00 -T D2 06 00 00 +T 61 07 00 00 R 00 00 01 00 -T D2 06 00 00 FD 7E 13 FD B6 14 28 0B +T 61 07 00 00 FD 7E 13 FD B6 14 28 0B R 00 00 01 00 -T DA 06 00 00 +T 69 07 00 00 R 00 00 01 00 -T DA 06 00 00 FD 6E 13 FD 66 14 E5 FD E1 18 ED +T 69 07 00 00 FD 6E 13 FD 66 14 E5 FD E1 18 ED R 00 00 01 00 -T E5 06 00 00 +T 74 07 00 00 R 00 00 01 00 -T E5 06 00 00 FD 73 13 FD 72 14 +T 74 07 00 00 FD 73 13 FD 72 14 R 00 00 01 00 -T EB 06 00 00 +T 7A 07 00 00 R 00 00 01 00 -T EB 06 00 00 21 13 00 19 77 23 77 +T 7A 07 00 00 21 13 00 19 77 23 77 R 00 00 01 00 -T F2 06 00 00 +T 81 07 00 00 R 00 00 01 00 -T F2 06 00 00 21 11 00 19 DD 4E 02 71 DD 46 03 +T 81 07 00 00 21 11 00 19 DD 4E 02 71 DD 46 03 R 00 00 01 00 -T FD 06 00 00 23 70 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 09 05 00 -T 04 07 00 00 +T 8C 07 00 00 23 70 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 09 04 00 +T 93 07 00 00 R 00 00 01 00 -T 04 07 00 00 C5 FD E5 DD E5 21 15 00 19 46 23 +T 93 07 00 00 C5 FD E5 DD E5 21 15 00 19 46 23 R 00 00 01 00 -T 0F 07 00 00 66 68 E5 DD E1 CD 40 07 00 00 +T 9E 07 00 00 66 68 E5 DD E1 CD CF 07 00 00 R 00 00 01 00 00 0A 01 00 -T 17 07 00 00 +T A6 07 00 00 R 00 00 01 00 -T 17 07 00 00 DD E5 E1 7D B4 28 1A +T A6 07 00 00 DD E5 E1 7D B4 28 1A R 00 00 01 00 -T 1E 07 00 00 +T AD 07 00 00 R 00 00 01 00 -T 1E 07 00 00 DD E5 D1 DD 7E 1C DD 6E 1A DD 66 +T AD 07 00 00 DD E5 D1 DD 7E 1C DD 6E 1A DD 66 R 00 00 01 00 -T 29 07 00 00 1B CD 00 00 00 00 DD 6E 13 DD 66 -R 00 00 01 00 02 06 0C 00 -T 32 07 00 00 14 E5 DD E1 18 DF +T B8 07 00 00 1B CD 00 00 00 00 DD 6E 13 DD 66 +R 00 00 01 00 02 06 0B 00 +T C1 07 00 00 14 E5 DD E1 18 DF R 00 00 01 00 -T 38 07 00 00 +T C7 07 00 00 R 00 00 01 00 -T 38 07 00 00 1E 01 CD 42 07 00 00 C3 +T C7 07 00 00 1E 01 CD D1 07 00 00 C3 R 00 00 01 00 00 07 01 00 -T 3E 07 00 00 5E 02 00 00 +T CD 07 00 00 F9 02 00 00 R 00 00 01 00 00 04 01 00 -T 40 07 00 00 +T CF 07 00 00 R 00 00 01 00 -T 40 07 00 00 1E 00 +T CF 07 00 00 1E 00 R 00 00 01 00 -T 42 07 00 00 +T D1 07 00 00 R 00 00 01 00 -T 42 07 00 00 3E FA 02 00 00 21 FA 02 00 00 C3 +T D1 07 00 00 3E 95 03 00 00 21 95 03 00 00 C3 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 48 07 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 4A 07 00 00 +T D7 07 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T D9 07 00 00 R 00 00 01 00 -T 4A 07 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T 53 07 00 00 02 DD 66 03 E5 FD E1 +T D9 07 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T E2 07 00 00 02 DD 66 03 E5 FD E1 R 00 00 01 00 -T 5A 07 00 00 +T E9 07 00 00 R 00 00 01 00 -T 5A 07 00 00 DD 6E 04 DD 66 05 7E FD 86 02 77 +T E9 07 00 00 DD 6E 04 DD 66 05 7E FD 86 02 77 R 00 00 01 00 -T 65 07 00 00 23 7E FD 8E 03 77 DD 6E 0A DD 66 +T F4 07 00 00 23 7E FD 8E 03 77 DD 6E 0A DD 66 R 00 00 01 00 -T 70 07 00 00 0B 7E FD 86 04 77 23 7E FD 8E 05 +T FF 07 00 00 0B 7E FD 86 04 77 23 7E FD 8E 05 R 00 00 01 00 -T 7B 07 00 00 77 FD 6E 11 FD 66 12 E5 FD E1 7D +T 0A 08 00 00 77 FD 6E 11 FD 66 12 E5 FD E1 7D R 00 00 01 00 -T 86 07 00 00 B4 20 D1 +T 15 08 00 00 B4 20 D1 R 00 00 01 00 -T 89 07 00 00 +T 18 08 00 00 R 00 00 01 00 -T 89 07 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 8E 07 00 00 +T 18 08 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T 1D 08 00 00 R 00 00 01 00 -T 8E 07 00 00 CD 00 00 00 00 00 00 21 15 00 DD -R 00 00 01 00 02 05 0F 00 -T 97 07 00 00 4E 02 DD 46 03 09 +T 1D 08 00 00 CD 00 00 00 00 00 00 21 15 00 DD +R 00 00 01 00 02 05 0E 00 +T 26 08 00 00 4E 02 DD 46 03 09 R 00 00 01 00 -T 9D 07 00 00 +T 2C 08 00 00 R 00 00 01 00 -T 9D 07 00 00 46 23 66 68 EB +T 2C 08 00 00 46 23 66 68 EB R 00 00 01 00 -T A2 07 00 00 +T 31 08 00 00 R 00 00 01 00 -T A2 07 00 00 7B B2 28 1B +T 31 08 00 00 7B B2 28 1B R 00 00 01 00 -T A6 07 00 00 +T 35 08 00 00 R 00 00 01 00 -T A6 07 00 00 21 10 00 19 4E 06 00 DD 6E 04 DD +T 35 08 00 00 21 10 00 19 4E 06 00 DD 6E 04 DD R 00 00 01 00 -T B1 07 00 00 66 05 A7 ED 42 20 03 +T 40 08 00 00 66 05 A7 ED 42 20 03 R 00 00 01 00 -T B8 07 00 00 +T 47 08 00 00 R 00 00 01 00 -T B8 07 00 00 EB 18 08 +T 47 08 00 00 EB 18 08 R 00 00 01 00 -T BB 07 00 00 +T 4A 08 00 00 R 00 00 01 00 -T BB 07 00 00 21 13 00 19 18 DC +T 4A 08 00 00 21 13 00 19 18 DC R 00 00 01 00 -T C1 07 00 00 +T 50 08 00 00 R 00 00 01 00 -T C1 07 00 00 6F 67 +T 50 08 00 00 6F 67 R 00 00 01 00 -T C3 07 00 00 +T 52 08 00 00 R 00 00 01 00 -T C3 07 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T C6 07 00 00 +T 52 08 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T 55 08 00 00 R 00 00 01 00 -T C6 07 00 00 CD 00 00 00 00 F8 FF FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T CF 07 00 00 02 DD 66 03 E5 FD E1 FD 6E 15 DD +T 55 08 00 00 CD 00 00 00 00 F8 FF FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 5E 08 00 00 02 DD 66 03 E5 FD E1 FD 6E 15 DD R 00 00 01 00 -T DA 07 00 00 75 F8 FD 66 16 DD 74 F9 FD E5 E1 +T 69 08 00 00 75 F8 FD 66 16 DD 74 F9 FD E5 E1 R 00 00 01 00 -T E5 07 00 00 7D B4 CA 79 09 00 00 +T 74 08 00 00 7D B4 CA 08 0A 00 00 R 00 00 01 00 00 07 01 00 -T EA 07 00 00 +T 79 08 00 00 R 00 00 01 00 -T EA 07 00 00 +T 79 08 00 00 R 00 00 01 00 -T EA 07 00 00 DD 7E F8 DD B6 F9 28 11 +T 79 08 00 00 DD 7E F8 DD B6 F9 28 11 R 00 00 01 00 -T F2 07 00 00 +T 81 08 00 00 R 00 00 01 00 -T F2 07 00 00 DD 5E F8 DD 56 F9 CD 8F 09 00 00 +T 81 08 00 00 DD 5E F8 DD 56 F9 CD 1E 0A 00 00 R 00 00 01 00 00 0B 01 00 -T FB 07 00 00 DD 75 F8 DD 74 F9 18 E7 +T 8A 08 00 00 DD 75 F8 DD 74 F9 18 E7 R 00 00 01 00 -T 03 08 00 00 +T 92 08 00 00 R 00 00 01 00 -T 03 08 00 00 FD 7E 11 FD B6 12 CA 95 08 00 00 +T 92 08 00 00 FD 7E 11 FD B6 12 CA 24 09 00 00 R 00 00 01 00 00 0B 01 00 -T 0C 08 00 00 +T 9B 08 00 00 R 00 00 01 00 -T 0C 08 00 00 FD 6E 11 FD 66 12 01 15 00 09 46 +T 9B 08 00 00 FD 6E 11 FD 66 12 01 15 00 09 46 R 00 00 01 00 -T 17 08 00 00 23 66 68 FD E5 C1 A7 ED 42 FD 6E +T A6 08 00 00 23 66 68 FD E5 C1 A7 ED 42 FD 6E R 00 00 01 00 -T 22 08 00 00 11 FD 66 12 01 15 00 09 20 09 +T B1 08 00 00 11 FD 66 12 01 15 00 09 20 09 R 00 00 01 00 -T 2C 08 00 00 +T BB 08 00 00 R 00 00 01 00 -T 2C 08 00 00 E5 FD 6E 11 FD 66 12 18 50 +T BB 08 00 00 E5 FD 6E 11 FD 66 12 18 50 R 00 00 01 00 -T 35 08 00 00 +T C4 08 00 00 R 00 00 01 00 -T 35 08 00 00 46 23 66 68 +T C4 08 00 00 46 23 66 68 R 00 00 01 00 -T 39 08 00 00 +T C8 08 00 00 R 00 00 01 00 -T 39 08 00 00 DD 75 F8 DD 74 F9 +T C8 08 00 00 DD 75 F8 DD 74 F9 R 00 00 01 00 -T 3F 08 00 00 +T CE 08 00 00 R 00 00 01 00 -T 3F 08 00 00 21 13 00 DD 4E F8 DD 46 F9 09 46 +T CE 08 00 00 21 13 00 DD 4E F8 DD 46 F9 09 46 R 00 00 01 00 -T 4A 08 00 00 23 66 68 FD E5 C1 A7 ED 42 28 19 +T D9 08 00 00 23 66 68 FD E5 C1 A7 ED 42 28 19 R 00 00 01 00 -T 55 08 00 00 21 13 00 DD 4E F8 DD 46 F9 09 7E +T E4 08 00 00 21 13 00 DD 4E F8 DD 46 F9 09 7E R 00 00 01 00 -T 60 08 00 00 23 B6 28 0A +T EF 08 00 00 23 B6 28 0A R 00 00 01 00 -T 64 08 00 00 +T F3 08 00 00 R 00 00 01 00 -T 64 08 00 00 +T F3 08 00 00 R 00 00 01 00 -T 64 08 00 00 +T F3 08 00 00 R 00 00 01 00 -T 64 08 00 00 21 13 00 09 56 23 66 6A 18 CB +T F3 08 00 00 21 13 00 09 56 23 66 6A 18 CB R 00 00 01 00 -T 6E 08 00 00 +T FD 08 00 00 R 00 00 01 00 -T 6E 08 00 00 21 13 00 DD 4E F8 DD 46 F9 09 7E +T FD 08 00 00 21 13 00 DD 4E F8 DD 46 F9 09 7E R 00 00 01 00 -T 79 08 00 00 23 B6 28 18 +T 08 09 00 00 23 B6 28 18 R 00 00 01 00 -T 7D 08 00 00 +T 0C 09 00 00 R 00 00 01 00 -T 7D 08 00 00 21 13 00 09 E5 21 13 00 +T 0C 09 00 00 21 13 00 09 E5 21 13 00 R 00 00 01 00 -T 85 08 00 00 +T 14 09 00 00 R 00 00 01 00 -T 85 08 00 00 09 46 23 66 68 01 13 00 09 4E 23 +T 14 09 00 00 09 46 23 66 68 01 13 00 09 4E 23 R 00 00 01 00 -T 90 08 00 00 46 E1 71 23 70 +T 1F 09 00 00 46 E1 71 23 70 R 00 00 01 00 -T 95 08 00 00 +T 24 09 00 00 R 00 00 01 00 -T 95 08 00 00 +T 24 09 00 00 R 00 00 01 00 -T 95 08 00 00 +T 24 09 00 00 R 00 00 01 00 -T 95 08 00 00 FD 6E 13 DD 75 F8 FD 66 14 DD 74 +T 24 09 00 00 FD 6E 13 DD 75 F8 FD 66 14 DD 74 R 00 00 01 00 -T A0 08 00 00 F9 3E 04 FD AE 24 FD B6 25 C2 +T 2F 09 00 00 F9 3E 04 FD AE 24 FD B6 25 C2 R 00 00 01 00 -T AA 08 00 00 45 09 00 00 +T 39 09 00 00 D4 09 00 00 R 00 00 01 00 00 04 01 00 -T AC 08 00 00 +T 3B 09 00 00 R 00 00 01 00 -T AC 08 00 00 FD 6E 11 DD 75 FC FD 66 12 DD 74 +T 3B 09 00 00 FD 6E 11 DD 75 FC FD 66 12 DD 74 R 00 00 01 00 -T B7 08 00 00 FD FD 6E 26 DD 75 FE FD 66 27 DD +T 46 09 00 00 FD FD 6E 26 DD 75 FE FD 66 27 DD R 00 00 01 00 -T C2 08 00 00 74 FF CD 84 09 00 00 DD 6E FE DD +T 51 09 00 00 74 FF CD 13 0A 00 00 DD 6E FE DD R 00 00 01 00 00 07 01 00 -T CB 08 00 00 66 FF 23 23 CD 84 09 00 00 +T 5A 09 00 00 66 FF 23 23 CD 13 0A 00 00 R 00 00 01 00 00 09 01 00 -T D2 08 00 00 +T 61 09 00 00 R 00 00 01 00 -T D2 08 00 00 DD 7E FC DD B6 FD 28 20 21 24 00 +T 61 09 00 00 DD 7E FC DD B6 FD 28 20 21 24 00 R 00 00 01 00 -T DD 08 00 00 DD 4E FC DD 46 FD 09 3E 04 AE 23 +T 6C 09 00 00 DD 4E FC DD 46 FD 09 3E 04 AE 23 R 00 00 01 00 -T E8 08 00 00 B6 28 0F +T 77 09 00 00 B6 28 0F R 00 00 01 00 -T EB 08 00 00 +T 7A 09 00 00 R 00 00 01 00 -T EB 08 00 00 +T 7A 09 00 00 R 00 00 01 00 -T EB 08 00 00 +T 7A 09 00 00 R 00 00 01 00 -T EB 08 00 00 21 11 00 09 56 DD 72 FC 23 66 DD +T 7A 09 00 00 21 11 00 09 56 DD 72 FC 23 66 DD R 00 00 01 00 -T F6 08 00 00 74 FD 18 D8 +T 85 09 00 00 74 FD 18 D8 R 00 00 01 00 -T FA 08 00 00 +T 89 09 00 00 R 00 00 01 00 -T FA 08 00 00 DD 7E FC DD B6 FD 28 43 +T 89 09 00 00 DD 7E FC DD B6 FD 28 43 R 00 00 01 00 -T 02 09 00 00 +T 91 09 00 00 R 00 00 01 00 -T 02 09 00 00 21 26 00 DD 4E FC DD 46 FD 09 46 +T 91 09 00 00 21 26 00 DD 4E FC DD 46 FD 09 46 R 00 00 01 00 -T 0D 09 00 00 DD 70 FE 23 66 DD 74 FF 21 06 00 +T 9C 09 00 00 DD 70 FE 23 66 DD 74 FF 21 0A 00 R 00 00 01 00 -T 18 09 00 00 ED 4B 00 00 00 00 09 E5 DD 6E FE +T A7 09 00 00 ED 4B 00 00 00 00 09 E5 DD 6E FE R 00 00 01 00 00 06 04 00 -T 21 09 00 00 DD 66 FF 5E 23 56 E1 73 23 72 21 +T B0 09 00 00 DD 66 FF 5E 23 56 E1 73 23 72 21 R 00 00 01 00 -T 2C 09 00 00 08 00 ED 4B 00 00 00 00 09 E5 DD +T BB 09 00 00 0C 00 ED 4B 00 00 00 00 09 E5 DD R 00 00 01 00 00 08 04 00 -T 35 09 00 00 4E FE DD 46 FF 03 03 69 60 4E 23 +T C4 09 00 00 4E FE DD 46 FF 03 03 69 60 4E 23 R 00 00 01 00 -T 40 09 00 00 46 E1 71 23 70 +T CF 09 00 00 46 E1 71 23 70 R 00 00 01 00 -T 45 09 00 00 +T D4 09 00 00 R 00 00 01 00 -T 45 09 00 00 +T D4 09 00 00 R 00 00 01 00 -T 45 09 00 00 FD 4E 24 FD 46 25 21 00 00 CD +T D4 09 00 00 FD 4E 24 FD 46 25 21 00 00 CD R 00 00 01 00 -T 4F 09 00 00 00 00 00 00 30 09 -R 00 00 01 00 02 04 10 00 -T 53 09 00 00 +T DE 09 00 00 00 00 00 00 30 09 +R 00 00 01 00 02 04 0F 00 +T E2 09 00 00 R 00 00 01 00 -T 53 09 00 00 FD 5E 26 FD 56 27 CD 87 09 00 00 +T E2 09 00 00 FD 5E 26 FD 56 27 CD 16 0A 00 00 R 00 00 01 00 00 0B 01 00 -T 5C 09 00 00 +T EB 09 00 00 R 00 00 01 00 -T 5C 09 00 00 FD CB 0B 76 20 11 FD 7E 20 FD B6 +T EB 09 00 00 FD CB 0B 76 20 11 FD 7E 20 FD B6 R 00 00 01 00 -T 67 09 00 00 21 28 09 +T F6 09 00 00 21 28 09 R 00 00 01 00 -T 6A 09 00 00 +T F9 09 00 00 R 00 00 01 00 -T 6A 09 00 00 +T F9 09 00 00 R 00 00 01 00 -T 6A 09 00 00 +T F9 09 00 00 R 00 00 01 00 -T 6A 09 00 00 FD 5E 20 FD 56 21 CD 87 09 00 00 +T F9 09 00 00 FD 5E 20 FD 56 21 CD 16 0A 00 00 R 00 00 01 00 00 0B 01 00 -T 73 09 00 00 +T 02 0A 00 00 R 00 00 01 00 -T 73 09 00 00 FD E5 D1 CD 87 09 00 00 +T 02 0A 00 00 FD E5 D1 CD 16 0A 00 00 R 00 00 01 00 00 08 01 00 -T 79 09 00 00 +T 08 0A 00 00 R 00 00 01 00 -T 79 09 00 00 DD 6E F8 DD 66 F9 FD E1 C3 +T 08 0A 00 00 DD 6E F8 DD 66 F9 FD E1 C3 R 00 00 01 00 -T 82 09 00 00 00 00 00 00 -R 00 00 01 00 02 04 05 00 -T 84 09 00 00 +T 11 0A 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 13 0A 00 00 R 00 00 01 00 -T 84 09 00 00 5E 23 56 +T 13 0A 00 00 5E 23 56 R 00 00 01 00 -T 87 09 00 00 +T 16 0A 00 00 R 00 00 01 00 -T 87 09 00 00 3E 00 00 00 00 21 00 00 00 00 C3 -R 00 00 01 00 2B 05 0A 00 02 0A 0A 00 -T 8D 09 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 8F 09 00 00 +T 16 0A 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 09 00 02 0A 09 00 +T 1C 0A 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 1E 0A 00 00 R 00 00 01 00 -T 8F 09 00 00 3E C6 07 00 00 21 C6 07 00 00 C3 +T 1E 0A 00 00 3E 55 08 00 00 21 55 08 00 00 C3 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 95 09 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 97 09 00 00 +T 24 0A 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 26 0A 00 00 R 00 00 01 00 -T 97 09 00 00 C5 FD E5 DD E5 21 15 00 19 46 23 +T 26 0A 00 00 C5 FD E5 DD E5 21 15 00 19 46 23 R 00 00 01 00 -T A2 09 00 00 66 68 +T 31 0A 00 00 66 68 R 00 00 01 00 -T A4 09 00 00 +T 33 0A 00 00 R 00 00 01 00 -T A4 09 00 00 E5 DD E1 +T 33 0A 00 00 E5 DD E1 R 00 00 01 00 -T A7 09 00 00 +T 36 0A 00 00 R 00 00 01 00 -T A7 09 00 00 7D B4 28 08 +T 36 0A 00 00 7D B4 28 08 R 00 00 01 00 -T AB 09 00 00 +T 3A 0A 00 00 R 00 00 01 00 -T AB 09 00 00 DD E5 D1 CD 8F 09 00 00 18 F1 +T 3A 0A 00 00 DD E5 D1 CD 1E 0A 00 00 18 F1 R 00 00 01 00 00 08 01 00 -T B3 09 00 00 +T 42 0A 00 00 R 00 00 01 00 -T B3 09 00 00 C3 5E 02 00 00 +T 42 0A 00 00 C3 F9 02 00 00 R 00 00 01 00 00 05 01 00 -T B6 09 00 00 +T 45 0A 00 00 R 00 00 01 00 -T B6 09 00 00 CD 00 00 00 00 00 00 FD E5 21 -R 00 00 01 00 02 05 0F 00 -T BE 09 00 00 15 00 DD 5E 02 DD 56 03 19 +T 45 0A 00 00 CD 00 00 00 00 00 00 FD E5 21 +R 00 00 01 00 02 05 0E 00 +T 4D 0A 00 00 15 00 DD 5E 02 DD 56 03 19 R 00 00 01 00 -T C7 09 00 00 +T 56 0A 00 00 R 00 00 01 00 -T C7 09 00 00 56 23 66 6A E5 FD E1 +T 56 0A 00 00 56 23 66 6A E5 FD E1 R 00 00 01 00 -T CE 09 00 00 +T 5D 0A 00 00 R 00 00 01 00 -T CE 09 00 00 7D B4 28 3D +T 5D 0A 00 00 7D B4 28 3D R 00 00 01 00 -T D2 09 00 00 +T 61 0A 00 00 R 00 00 01 00 -T D2 09 00 00 21 0A 00 FD E5 C1 09 DD 7E 04 DD +T 61 0A 00 00 21 0A 00 FD E5 C1 09 DD 7E 04 DD R 00 00 01 00 -T DD 09 00 00 56 05 2F 5F 7A 2F 57 7E A3 77 23 +T 6C 0A 00 00 56 05 2F 5F 7A 2F 57 7E A3 77 23 R 00 00 01 00 -T E8 09 00 00 7E A2 77 21 0A 00 09 7E DD B6 0A +T 77 0A 00 00 7E A2 77 21 0A 00 09 7E DD B6 0A R 00 00 01 00 -T F3 09 00 00 77 23 7E DD B6 0B 77 21 0A 00 09 +T 82 0A 00 00 77 23 7E DD B6 0B 77 21 0A 00 09 R 00 00 01 00 -T FE 09 00 00 7E DD AE 0C 77 23 7E DD AE 0D 77 +T 8D 0A 00 00 7E DD AE 0C 77 23 7E DD AE 0D 77 R 00 00 01 00 -T 09 0A 00 00 21 13 00 09 18 B8 +T 98 0A 00 00 21 13 00 09 18 B8 R 00 00 01 00 -T 0F 0A 00 00 +T 9E 0A 00 00 R 00 00 01 00 -T 0F 0A 00 00 11 00 00 00 00 3E 00 00 00 00 21 -R 00 00 01 00 02 05 0D 00 2B 0A 01 00 -T 15 0A 00 00 00 00 00 00 CD 00 00 00 00 FD E1 -R 00 00 01 00 02 04 01 00 02 09 0C 00 -T 1C 0A 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 -T 1F 0A 00 00 +T 9E 0A 00 00 11 00 00 00 00 3E 00 00 00 00 21 +R 00 00 01 00 02 05 0C 00 2B 0A 01 00 +T A4 0A 00 00 00 00 00 00 CD 00 00 00 00 FD E1 +R 00 00 01 00 02 04 01 00 02 09 0B 00 +T AB 0A 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 04 00 +T AE 0A 00 00 R 00 00 01 00 -T 1F 0A 00 00 C5 FD E5 DD E5 D5 DD E1 21 15 00 +T AE 0A 00 00 C5 FD E5 DD E5 D5 DD E1 21 15 00 R 00 00 01 00 -T 2A 0A 00 00 19 46 23 66 68 E5 FD E1 21 20 00 +T B9 0A 00 00 19 46 23 66 68 E5 FD E1 21 20 00 R 00 00 01 00 -T 35 0A 00 00 19 46 23 66 68 01 00 90 3E 80 AC +T C4 0A 00 00 19 46 23 66 68 01 00 90 3E 80 AC R 00 00 01 00 -T 40 0A 00 00 67 ED 42 30 2E DD 4E 20 DD 46 21 +T CF 0A 00 00 67 ED 42 30 2E DD 4E 20 DD 46 21 R 00 00 01 00 -T 4B 0A 00 00 21 00 00 CD 00 00 00 00 30 20 -R 00 00 01 00 02 08 10 00 -T 53 0A 00 00 +T DA 0A 00 00 21 00 00 CD 00 00 00 00 30 20 +R 00 00 01 00 02 08 0F 00 +T E2 0A 00 00 R 00 00 01 00 -T 53 0A 00 00 +T E2 0A 00 00 R 00 00 01 00 -T 53 0A 00 00 +T E2 0A 00 00 R 00 00 01 00 -T 53 0A 00 00 DD 6E 20 DD 66 21 29 E5 21 08 00 +T E2 0A 00 00 DD 6E 20 DD 66 21 29 E5 21 0C 00 R 00 00 01 00 -T 5E 0A 00 00 ED 4B 00 00 00 00 09 4E 23 46 E1 +T ED 0A 00 00 ED 4B 00 00 00 00 09 4E 23 46 E1 R 00 00 01 00 00 06 04 00 -T 67 0A 00 00 09 2B 2B 46 DD 70 20 23 66 DD 74 +T F6 0A 00 00 09 2B 2B 46 DD 70 20 23 66 DD 74 R 00 00 01 00 -T 72 0A 00 00 21 +T 01 0B 00 00 21 R 00 00 01 00 -T 73 0A 00 00 +T 02 0B 00 00 R 00 00 01 00 -T 73 0A 00 00 DD 6E 22 DD 66 23 01 00 90 3E 80 +T 02 0B 00 00 DD 6E 22 DD 66 23 01 00 90 3E 80 R 00 00 01 00 -T 7E 0A 00 00 AC 67 ED 42 30 2E DD 4E 22 DD 46 +T 0D 0B 00 00 AC 67 ED 42 30 2E DD 4E 22 DD 46 R 00 00 01 00 -T 89 0A 00 00 23 21 00 00 CD 00 00 00 00 30 20 -R 00 00 01 00 02 09 10 00 -T 92 0A 00 00 +T 18 0B 00 00 23 21 00 00 CD 00 00 00 00 30 20 +R 00 00 01 00 02 09 0F 00 +T 21 0B 00 00 R 00 00 01 00 -T 92 0A 00 00 +T 21 0B 00 00 R 00 00 01 00 -T 92 0A 00 00 +T 21 0B 00 00 R 00 00 01 00 -T 92 0A 00 00 DD 6E 22 DD 66 23 29 E5 21 08 00 +T 21 0B 00 00 DD 6E 22 DD 66 23 29 E5 21 0C 00 R 00 00 01 00 -T 9D 0A 00 00 ED 4B 00 00 00 00 09 4E 23 46 E1 +T 2C 0B 00 00 ED 4B 00 00 00 00 09 4E 23 46 E1 R 00 00 01 00 00 06 04 00 -T A6 0A 00 00 09 2B 2B 46 DD 70 22 23 66 DD 74 +T 35 0B 00 00 09 2B 2B 46 DD 70 22 23 66 DD 74 R 00 00 01 00 -T B1 0A 00 00 23 +T 40 0B 00 00 23 R 00 00 01 00 -T B2 0A 00 00 +T 41 0B 00 00 R 00 00 01 00 -T B2 0A 00 00 +T 41 0B 00 00 R 00 00 01 00 -T B2 0A 00 00 FD E5 E1 7D B4 28 16 +T 41 0B 00 00 FD E5 E1 7D B4 28 16 R 00 00 01 00 -T B9 0A 00 00 +T 48 0B 00 00 R 00 00 01 00 -T B9 0A 00 00 FD E5 D1 3E 1F 0A 00 00 21 +T 48 0B 00 00 FD E5 D1 3E AE 0A 00 00 21 R 00 00 01 00 29 08 01 00 -T BF 0A 00 00 1F 0A 00 00 CD 00 00 00 00 FD 6E -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T C6 0A 00 00 13 FD 66 14 E5 FD E1 18 E3 +T 4E 0B 00 00 AE 0A 00 00 CD 00 00 00 00 FD 6E +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 55 0B 00 00 13 FD 66 14 E5 FD E1 18 E3 R 00 00 01 00 -T CF 0A 00 00 +T 5E 0B 00 00 R 00 00 01 00 -T CF 0A 00 00 C3 5E 02 00 00 +T 5E 0B 00 00 C3 F9 02 00 00 R 00 00 01 00 00 05 01 00 -T D2 0A 00 00 +T 61 0B 00 00 R 00 00 01 00 -T D2 0A 00 00 CD 00 00 00 00 D0 FF FD E5 AF DD -R 00 00 01 00 02 05 0F 00 -T DB 0A 00 00 77 FA DD 77 FB DD 77 FC DD 77 FD +T 61 0B 00 00 CD 00 00 00 00 D0 FF FD E5 AF DD +R 00 00 01 00 02 05 0E 00 +T 6A 0B 00 00 77 FA DD 77 FB DD 77 FC DD 77 FD R 00 00 01 00 -T E6 0A 00 00 59 50 CD 00 00 00 00 08 00 01 00 -R 00 00 01 00 02 07 0E 00 -T EF 0A 00 00 02 00 03 00 02 01 03 01 04 01 +T 75 0B 00 00 59 50 CD 00 00 00 00 08 00 01 00 +R 00 00 01 00 02 07 0D 00 +T 7E 0B 00 00 02 00 03 00 02 01 03 01 04 01 R 00 00 01 00 -T F9 0A 00 00 05 01 01 04 6B 0D 00 00 +T 88 0B 00 00 05 01 01 05 FA 0D 00 00 R 00 00 01 00 00 08 01 00 -T FF 0A 00 00 D9 0C 00 00 6C 0C 00 00 +T 8E 0B 00 00 68 0D 00 00 FB 0C 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 03 0B 00 00 98 0C 00 00 E0 0B 00 00 +T 92 0B 00 00 27 0D 00 00 6F 0C 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 07 0B 00 00 F1 0B 00 00 A5 0B 00 00 +T 96 0B 00 00 80 0C 00 00 34 0C 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 0B 0B 00 00 40 0B 00 00 0F 0B 00 00 +T 9A 0B 00 00 CF 0B 00 00 9E 0B 00 00 R 00 00 01 00 00 04 01 00 00 08 01 00 -T 0F 0B 00 00 +T 9E 0B 00 00 R 00 00 01 00 -T 0F 0B 00 00 21 15 00 DD 4E 02 DD 46 03 09 46 +T 9E 0B 00 00 21 15 00 DD 4E 02 DD 46 03 09 46 R 00 00 01 00 -T 1A 0B 00 00 23 66 68 +T A9 0B 00 00 23 66 68 R 00 00 01 00 -T 1D 0B 00 00 +T AC 0B 00 00 R 00 00 01 00 -T 1D 0B 00 00 E5 FD E1 +T AC 0B 00 00 E5 FD E1 R 00 00 01 00 -T 20 0B 00 00 +T AF 0B 00 00 R 00 00 01 00 -T 20 0B 00 00 7D B4 28 19 +T AF 0B 00 00 7D B4 28 19 R 00 00 01 00 -T 24 0B 00 00 +T B3 0B 00 00 R 00 00 01 00 -T 24 0B 00 00 FD CB 0A 46 28 0B +T B3 0B 00 00 FD CB 0A 46 28 0B R 00 00 01 00 -T 2A 0B 00 00 +T B9 0B 00 00 R 00 00 01 00 -T 2A 0B 00 00 DD 6E 0A DD 66 0B E5 CD +T B9 0B 00 00 DD 6E 0A DD 66 0B E5 CD R 00 00 01 00 -T 32 0B 00 00 70 0D 00 00 E1 +T C1 0B 00 00 0A 0E 00 00 E1 R 00 00 01 00 00 04 01 00 -T 35 0B 00 00 +T C4 0B 00 00 R 00 00 01 00 -T 35 0B 00 00 FD 6E 13 FD 66 14 18 E0 +T C4 0B 00 00 FD 6E 13 FD 66 14 18 E0 R 00 00 01 00 -T 3D 0B 00 00 +T CC 0B 00 00 R 00 00 01 00 -T 3D 0B 00 00 C3 6B 0D 00 00 +T CC 0B 00 00 C3 FA 0D 00 00 R 00 00 01 00 00 05 01 00 -T 40 0B 00 00 +T CF 0B 00 00 R 00 00 01 00 -T 40 0B 00 00 21 15 00 DD 4E 02 DD 46 03 09 46 +T CF 0B 00 00 21 15 00 DD 4E 02 DD 46 03 09 46 R 00 00 01 00 -T 4B 0B 00 00 23 66 68 +T DA 0B 00 00 23 66 68 R 00 00 01 00 -T 4E 0B 00 00 +T DD 0B 00 00 R 00 00 01 00 -T 4E 0B 00 00 E5 FD E1 +T DD 0B 00 00 E5 FD E1 R 00 00 01 00 -T 51 0B 00 00 +T E0 0B 00 00 R 00 00 01 00 -T 51 0B 00 00 7D B4 28 4D +T E0 0B 00 00 7D B4 28 4D R 00 00 01 00 -T 55 0B 00 00 +T E4 0B 00 00 R 00 00 01 00 -T 55 0B 00 00 FD CB 0A 46 28 38 +T E4 0B 00 00 FD CB 0A 46 28 38 R 00 00 01 00 -T 5B 0B 00 00 +T EA 0B 00 00 R 00 00 01 00 -T 5B 0B 00 00 DD 6E 0A DD 66 0B E5 CD +T EA 0B 00 00 DD 6E 0A DD 66 0B E5 CD R 00 00 01 00 -T 63 0B 00 00 70 0D 00 00 E1 DD 6E 0A DD 66 0B +T F2 0B 00 00 0A 0E 00 00 E1 DD 6E 0A DD 66 0B R 00 00 01 00 00 04 01 00 -T 6C 0B 00 00 E5 01 03 00 CD 76 0D 00 00 E1 FD +T FB 0B 00 00 E5 01 03 00 CD 10 0E 00 00 E1 FD R 00 00 01 00 00 09 01 00 -T 75 0B 00 00 7E 0A E6 22 6F 26 00 3E 22 AD 20 +T 04 0C 00 00 7E 0A E6 22 6F 26 00 3E 22 AD 20 R 00 00 01 00 -T 80 0B 00 00 12 FD 4E 10 44 DD 6E 0A DD 66 0B +T 0F 0C 00 00 12 FD 4E 10 44 DD 6E 0A DD 66 0B R 00 00 01 00 -T 8B 0B 00 00 ED 42 20 04 +T 1A 0C 00 00 ED 42 20 04 R 00 00 01 00 -T 8F 0B 00 00 +T 1E 0C 00 00 R 00 00 01 00 -T 8F 0B 00 00 +T 1E 0C 00 00 R 00 00 01 00 -T 8F 0B 00 00 +T 1E 0C 00 00 R 00 00 01 00 -T 8F 0B 00 00 FD 21 00 00 +T 1E 0C 00 00 FD 21 00 00 R 00 00 01 00 -T 93 0B 00 00 +T 22 0C 00 00 R 00 00 01 00 -T 93 0B 00 00 +T 22 0C 00 00 R 00 00 01 00 -T 93 0B 00 00 FD E5 E1 7D B4 28 B7 +T 22 0C 00 00 FD E5 E1 7D B4 28 B7 R 00 00 01 00 -T 9A 0B 00 00 +T 29 0C 00 00 R 00 00 01 00 -T 9A 0B 00 00 FD 6E 13 FD 66 14 18 AC +T 29 0C 00 00 FD 6E 13 FD 66 14 18 AC R 00 00 01 00 -T A2 0B 00 00 +T 31 0C 00 00 R 00 00 01 00 -T A2 0B 00 00 +T 31 0C 00 00 R 00 00 01 00 -T A2 0B 00 00 C3 6B 0D 00 00 +T 31 0C 00 00 C3 FA 0D 00 00 R 00 00 01 00 00 05 01 00 -T A5 0B 00 00 +T 34 0C 00 00 R 00 00 01 00 -T A5 0B 00 00 DD 6E 02 DD 66 03 E5 FD E1 21 +T 34 0C 00 00 DD 6E 02 DD 66 03 E5 FD E1 21 R 00 00 01 00 -T AF 0B 00 00 0A 00 DD 4E 02 DD 46 03 09 CB 46 +T 3E 0C 00 00 0A 00 DD 4E 02 DD 46 03 09 CB 46 R 00 00 01 00 -T BA 0B 00 00 28 21 +T 49 0C 00 00 28 21 R 00 00 01 00 -T BC 0B 00 00 +T 4B 0C 00 00 R 00 00 01 00 -T BC 0B 00 00 FD CB 0A 6E 28 1B FD 4E 10 47 DD +T 4B 0C 00 00 FD CB 0A 6E 28 1B FD 4E 10 47 DD R 00 00 01 00 -T C7 0B 00 00 6E 0A DD 66 0B A7 ED 42 20 0C +T 56 0C 00 00 6E 0A DD 66 0B A7 ED 42 20 0C R 00 00 01 00 -T D1 0B 00 00 +T 60 0C 00 00 R 00 00 01 00 -T D1 0B 00 00 +T 60 0C 00 00 R 00 00 01 00 -T D1 0B 00 00 +T 60 0C 00 00 R 00 00 01 00 -T D1 0B 00 00 FD 6E 26 FD 66 27 FD E5 D1 CD +T 60 0C 00 00 FD 6E 26 FD 66 27 FD E5 D1 CD R 00 00 01 00 -T DB 0B 00 00 95 0D 00 00 +T 6A 0C 00 00 00 0E 00 00 R 00 00 01 00 00 04 01 00 -T DD 0B 00 00 +T 6C 0C 00 00 R 00 00 01 00 -T DD 0B 00 00 +T 6C 0C 00 00 R 00 00 01 00 -T DD 0B 00 00 +T 6C 0C 00 00 R 00 00 01 00 -T DD 0B 00 00 +T 6C 0C 00 00 R 00 00 01 00 -T DD 0B 00 00 +T 6C 0C 00 00 R 00 00 01 00 -T DD 0B 00 00 +T 6C 0C 00 00 R 00 00 01 00 -T DD 0B 00 00 C3 6B 0D 00 00 +T 6C 0C 00 00 C3 FA 0D 00 00 R 00 00 01 00 00 05 01 00 -T E0 0B 00 00 +T 6F 0C 00 00 R 00 00 01 00 -T E0 0B 00 00 DD 5E 02 4B DD 56 03 42 21 1A 00 +T 6F 0C 00 00 DD 5E 02 4B DD 56 03 42 21 1A 00 R 00 00 01 00 -T EB 0B 00 00 CD 94 0D 00 00 C3 6B 0D 00 00 +T 7A 0C 00 00 CD FF 0D 00 00 C3 FA 0D 00 00 R 00 00 01 00 00 05 01 00 00 0A 01 00 -T F1 0B 00 00 +T 80 0C 00 00 R 00 00 01 00 -T F1 0B 00 00 21 0A 00 DD 4E 02 DD 46 03 09 7E +T 80 0C 00 00 21 0A 00 DD 4E 02 DD 46 03 09 7E R 00 00 01 00 -T FC 0B 00 00 E6 FC 77 21 2E 00 39 E5 2B 2B 4D +T 8B 0C 00 00 E6 FC 77 21 2E 00 39 E5 2B 2B 4D R 00 00 01 00 -T 07 0C 00 00 44 DD 5E 02 DD 56 03 CD +T 96 0C 00 00 44 DD 5E 02 DD 56 03 CD R 00 00 01 00 -T 0F 0C 00 00 8C 0D 00 00 E1 21 08 00 DD 4E 02 +T 9E 0C 00 00 26 0E 00 00 E1 21 08 00 DD 4E 02 R 00 00 01 00 00 04 01 00 -T 18 0C 00 00 DD 46 03 09 5E 23 56 D5 21 06 00 +T A7 0C 00 00 DD 46 03 09 5E 23 56 D5 21 06 00 R 00 00 01 00 -T 23 0C 00 00 09 5E 23 56 D5 DD 6E FC DD 66 FD +T B2 0C 00 00 09 5E 23 56 D5 DD 6E FC DD 66 FD R 00 00 01 00 -T 2E 0C 00 00 E5 DD 4E FA DD 46 FB 11 00 00 CD +T BD 0C 00 00 E5 DD 4E FA DD 46 FB 11 00 00 CD R 00 00 01 00 -T 39 0C 00 00 F2 02 00 00 E1 E1 E1 21 00 00 E5 +T C8 0C 00 00 8D 03 00 00 E1 E1 E1 21 00 00 E5 R 00 00 01 00 00 04 01 00 -T 42 0C 00 00 2E 11 DD 5E 02 DD 56 03 19 5E 23 +T D1 0C 00 00 2E 11 DD 5E 02 DD 56 03 19 5E 23 R 00 00 01 00 -T 4D 0C 00 00 56 21 11 00 DD 4E 02 DD 46 03 09 +T DC 0C 00 00 56 21 11 00 DD 4E 02 DD 46 03 09 R 00 00 01 00 -T 58 0C 00 00 46 23 66 68 01 17 00 09 4E 23 46 +T E7 0C 00 00 46 23 66 68 01 17 00 09 4E 23 46 R 00 00 01 00 -T 63 0C 00 00 23 7E 69 60 01 03 01 18 29 +T F2 0C 00 00 23 7E 69 60 01 03 01 18 29 R 00 00 01 00 -T 6C 0C 00 00 +T FB 0C 00 00 R 00 00 01 00 -T 6C 0C 00 00 21 11 00 DD 4E 02 DD 46 03 09 56 +T FB 0C 00 00 21 11 00 DD 4E 02 DD 46 03 09 56 R 00 00 01 00 -T 77 0C 00 00 23 66 6A E5 FD E1 59 50 CD +T 06 0D 00 00 23 66 6A E5 FD E1 59 50 CD R 00 00 01 00 -T 80 0C 00 00 8F 09 00 00 21 00 00 E5 01 03 01 +T 0F 0D 00 00 1E 0A 00 00 21 00 00 E5 01 03 01 R 00 00 01 00 00 04 01 00 -T 89 0C 00 00 FD E5 D1 FD 7E 19 FD 6E 17 FD 66 +T 18 0D 00 00 FD E5 D1 FD 7E 19 FD 6E 17 FD 66 R 00 00 01 00 -T 94 0C 00 00 18 +T 23 0D 00 00 18 R 00 00 01 00 -T 95 0C 00 00 +T 24 0D 00 00 R 00 00 01 00 -T 95 0C 00 00 C3 67 0D 00 00 +T 24 0D 00 00 C3 F6 0D 00 00 R 00 00 01 00 00 05 01 00 -T 98 0C 00 00 +T 27 0D 00 00 R 00 00 01 00 -T 98 0C 00 00 21 15 00 DD 4E 02 DD 46 03 09 46 +T 27 0D 00 00 21 15 00 DD 4E 02 DD 46 03 09 46 R 00 00 01 00 -T A3 0C 00 00 23 66 68 +T 32 0D 00 00 23 66 68 R 00 00 01 00 -T A6 0C 00 00 +T 35 0D 00 00 R 00 00 01 00 -T A6 0C 00 00 E5 FD E1 +T 35 0D 00 00 E5 FD E1 R 00 00 01 00 -T A9 0C 00 00 +T 38 0D 00 00 R 00 00 01 00 -T A9 0C 00 00 7D B4 28 29 +T 38 0D 00 00 7D B4 28 29 R 00 00 01 00 -T AD 0C 00 00 +T 3C 0D 00 00 R 00 00 01 00 -T AD 0C 00 00 DD 6E 0A DD 66 0B FD E5 C1 ED 42 +T 3C 0D 00 00 DD 6E 0A DD 66 0B FD E5 C1 ED 42 R 00 00 01 00 -T B8 0C 00 00 28 14 FD CB 0A 5E 28 0E +T 47 0D 00 00 28 14 FD CB 0A 5E 28 0E R 00 00 01 00 -T C0 0C 00 00 +T 4F 0D 00 00 R 00 00 01 00 -T C0 0C 00 00 +T 4F 0D 00 00 R 00 00 01 00 -T C0 0C 00 00 +T 4F 0D 00 00 R 00 00 01 00 -T C0 0C 00 00 DD 6E 0A DD 66 0B E5 01 03 02 CD +T 4F 0D 00 00 DD 6E 0A DD 66 0B E5 01 03 02 CD R 00 00 01 00 -T CB 0C 00 00 76 0D 00 00 E1 +T 5A 0D 00 00 10 0E 00 00 E1 R 00 00 01 00 00 04 01 00 -T CE 0C 00 00 +T 5D 0D 00 00 R 00 00 01 00 -T CE 0C 00 00 FD 6E 13 FD 66 14 18 D0 +T 5D 0D 00 00 FD 6E 13 FD 66 14 18 D0 R 00 00 01 00 -T D6 0C 00 00 +T 65 0D 00 00 R 00 00 01 00 -T D6 0C 00 00 C3 6B 0D 00 00 +T 65 0D 00 00 C3 FA 0D 00 00 R 00 00 01 00 00 05 01 00 -T D9 0C 00 00 +T 68 0D 00 00 R 00 00 01 00 -T D9 0C 00 00 21 11 00 DD 4E 02 DD 46 03 09 7E +T 68 0D 00 00 21 11 00 DD 4E 02 DD 46 03 09 7E R 00 00 01 00 -T E4 0C 00 00 23 B6 20 0E +T 73 0D 00 00 23 B6 20 0E R 00 00 01 00 -T E8 0C 00 00 +T 77 0D 00 00 R 00 00 01 00 -T E8 0C 00 00 21 04 00 ED 4B 00 00 00 00 09 36 +T 77 0D 00 00 21 08 00 ED 4B 00 00 00 00 09 36 R 00 00 01 00 00 09 04 00 -T F1 0C 00 00 01 23 77 18 75 +T 80 0D 00 00 01 23 77 18 75 R 00 00 01 00 -T F6 0C 00 00 +T 85 0D 00 00 R 00 00 01 00 -T F6 0C 00 00 21 0A 00 09 23 CB 6E 20 28 +T 85 0D 00 00 21 0A 00 09 23 CB 6E 20 28 R 00 00 01 00 -T FF 0C 00 00 +T 8E 0D 00 00 R 00 00 01 00 -T FF 0C 00 00 DD 6E 0A DD 66 0B E5 21 11 00 59 +T 8E 0D 00 00 DD 6E 0A DD 66 0B E5 21 11 00 59 R 00 00 01 00 -T 0A 0D 00 00 50 19 5E 23 56 21 11 00 09 46 23 +T 99 0D 00 00 50 19 5E 23 56 21 11 00 09 46 23 R 00 00 01 00 -T 15 0D 00 00 66 68 01 17 00 09 4E 23 46 23 7E +T A4 0D 00 00 66 68 01 17 00 09 4E 23 46 23 7E R 00 00 01 00 -T 20 0D 00 00 69 60 01 01 04 18 40 +T AF 0D 00 00 69 60 01 01 05 18 40 R 00 00 01 00 -T 27 0D 00 00 +T B6 0D 00 00 R 00 00 01 00 -T 27 0D 00 00 21 11 00 09 56 23 66 6A E5 FD E1 +T B6 0D 00 00 21 11 00 09 56 23 66 6A E5 FD E1 R 00 00 01 00 -T 32 0D 00 00 11 0A 00 19 7E F6 03 77 6A 62 E5 +T C1 0D 00 00 11 0A 00 19 7E F6 03 77 6A 62 E5 R 00 00 01 00 -T 3D 0D 00 00 23 E5 4A 42 FD E5 D1 3E +T CC 0D 00 00 23 E5 4A 42 FD E5 D1 3E R 00 00 01 00 -T 45 0D 00 00 B6 09 00 00 21 B6 09 00 00 CD +T D4 0D 00 00 45 0A 00 00 21 45 0A 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 4A 0D 00 00 00 00 00 00 E1 E1 21 00 00 E5 DD -R 00 00 01 00 02 04 0C 00 -T 53 0D 00 00 5E 02 4B DD 56 03 42 2E 17 09 4E +T D9 0D 00 00 00 00 00 00 E1 E1 21 00 00 E5 DD +R 00 00 01 00 02 04 0B 00 +T E2 0D 00 00 5E 02 4B DD 56 03 42 2E 17 09 4E R 00 00 01 00 -T 5E 0D 00 00 23 46 23 7E 69 60 01 05 01 +T ED 0D 00 00 23 46 23 7E 69 60 01 05 01 R 00 00 01 00 -T 67 0D 00 00 +T F6 0D 00 00 R 00 00 01 00 -T 67 0D 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 02 05 0C 00 -T 6B 0D 00 00 +T F6 0D 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 02 05 0B 00 +T FA 0D 00 00 R 00 00 01 00 -T 6B 0D 00 00 +T FA 0D 00 00 R 00 00 01 00 -T 6B 0D 00 00 +T FA 0D 00 00 R 00 00 01 00 -T 6B 0D 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 70 0D 00 00 +T FA 0D 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T FF 0D 00 00 R 00 00 01 00 -T 70 0D 00 00 DD 4E 04 DD 46 05 +T FF 0D 00 00 09 R 00 00 01 00 -T 76 0D 00 00 +T 00 0E 00 00 R 00 00 01 00 -T 76 0D 00 00 FD E5 D1 FD 7E 19 FD 6E 17 FD 66 +T 00 0E 00 00 4E 23 46 23 7E 69 60 C3 R 00 00 01 00 -T 81 0D 00 00 18 C3 00 00 00 00 -R 00 00 01 00 02 06 0C 00 -T 85 0D 00 00 +T 08 0E 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 0A 0E 00 00 R 00 00 01 00 -T 85 0D 00 00 23 23 +T 0A 0E 00 00 DD 4E 04 DD 46 05 R 00 00 01 00 -T 87 0D 00 00 +T 10 0E 00 00 R 00 00 01 00 -T 87 0D 00 00 4D 44 DD E5 D1 +T 10 0E 00 00 FD E5 D1 FD 7E 19 FD 6E 17 FD 66 R 00 00 01 00 -T 8C 0D 00 00 +T 1B 0E 00 00 18 C3 00 00 00 00 +R 00 00 01 00 02 06 0B 00 +T 1F 0E 00 00 R 00 00 01 00 -T 8C 0D 00 00 3E 4A 07 00 00 21 4A 07 00 00 C3 -R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 92 0D 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 94 0D 00 00 +T 1F 0E 00 00 23 23 R 00 00 01 00 -T 94 0D 00 00 09 +T 21 0E 00 00 R 00 00 01 00 -T 95 0D 00 00 +T 21 0E 00 00 4D 44 DD E5 D1 R 00 00 01 00 -T 95 0D 00 00 4E 23 46 23 7E 69 60 C3 +T 26 0E 00 00 R 00 00 01 00 -T 9D 0D 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 9F 0D 00 00 +T 26 0E 00 00 3E D9 07 00 00 21 D9 07 00 00 C3 +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 2C 0E 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 2E 0E 00 00 R 00 00 01 00 -T 9F 0D 00 00 CD 00 00 00 00 FC FF FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T A8 0D 00 00 02 DD 66 03 E5 FD E1 AF DD 77 FE +T 2E 0E 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 R 00 00 01 00 -T B3 0D 00 00 DD 77 FF DD 77 FC DD 77 FD 21 +T 39 0E 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 R 00 00 01 00 -T BD 0D 00 00 0A 00 ED 4B 00 00 00 00 09 7E 23 -R 00 00 01 00 00 08 04 00 -T C6 0D 00 00 66 6F 46 23 66 68 FD 4E 0E FD 46 +T 44 0E 00 00 21 12 00 ED 4B 00 00 00 00 09 7E +R 00 00 01 00 00 09 04 00 +T 4D 0E 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 R 00 00 01 00 -T D1 0D 00 00 0F A7 ED 42 28 09 +T 58 0E 00 00 19 4E 23 46 E1 A7 ED 42 28 03 R 00 00 01 00 -T D7 0D 00 00 +T 62 0E 00 00 R 00 00 01 00 -T D7 0D 00 00 FD 5E 0E FD 56 0F CD 24 0F 00 00 -R 00 00 01 00 00 0B 01 00 -T E0 0D 00 00 +T 62 0E 00 00 CD 67 0F 00 00 +R 00 00 01 00 00 05 01 00 +T 65 0E 00 00 R 00 00 01 00 -T E0 0D 00 00 FD CB 0A 46 CA DC 0E 00 00 +T 65 0E 00 00 DD CB 0A 46 CA 5F 0F 00 00 R 00 00 01 00 00 09 01 00 -T E7 0D 00 00 +T 6C 0E 00 00 R 00 00 01 00 -T E7 0D 00 00 21 02 00 39 E5 23 23 4D 44 FD E5 +T 6C 0E 00 00 21 00 00 39 E5 CD 1F 0E 00 00 E1 +R 00 00 01 00 00 0A 01 00 +T 75 0E 00 00 CD CF 07 00 00 21 00 00 39 CD +R 00 00 01 00 00 05 01 00 +T 7D 0E 00 00 AB 0F 00 00 CD 00 00 00 00 DD 6E +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 84 0E 00 00 08 DD 66 09 E5 DD 6E 06 DD 66 07 R 00 00 01 00 -T F2 0D 00 00 D1 CD 8C 0D 00 00 E1 CD -R 00 00 01 00 00 06 01 00 -T F8 0D 00 00 40 07 00 00 DD 4E FC DD 46 FD DD -R 00 00 01 00 00 04 01 00 -T 01 0E 00 00 5E FE DD 56 FF 3E A3 00 00 00 21 -R 00 00 01 00 29 0A 01 00 -T 09 0E 00 00 A3 00 00 00 CD 00 00 00 00 FD 4E -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 10 0E 00 00 08 FD 46 09 FD 5E 06 FD 56 07 3E +T 8F 0E 00 00 E5 21 04 00 39 4E 23 46 C5 23 4E R 00 00 01 00 -T 1B 0E 00 00 E2 00 00 00 21 E2 00 00 00 CD -R 00 00 01 00 29 04 01 00 00 09 01 00 -T 20 0E 00 00 00 00 00 00 FD 6E 08 FD 66 09 E5 -R 00 00 01 00 02 04 0C 00 -T 29 0E 00 00 FD 6E 06 FD 66 07 E5 DD 6E FC DD +T 9A 0E 00 00 23 46 11 00 00 CD 8D 03 00 00 E1 +R 00 00 01 00 00 0A 01 00 +T A3 0E 00 00 E1 E1 DD 5E 20 DD 56 21 CD R 00 00 01 00 -T 34 0E 00 00 66 FD E5 DD 4E FE DD 46 FF 11 +T AC 0E 00 00 7B 0F 00 00 E5 21 02 00 39 4E 23 +R 00 00 01 00 00 04 01 00 +T B5 0E 00 00 46 E1 09 01 04 00 09 4D 44 21 R 00 00 01 00 -T 3E 0E 00 00 00 00 CD F2 02 00 00 E1 E1 E1 FD -R 00 00 01 00 00 07 01 00 -T 47 0E 00 00 5E 20 FD 56 21 21 0A 00 ED 4B +T BF 0E 00 00 02 00 39 5E 23 56 3E 5E 01 00 00 +R 00 00 01 00 29 0B 01 00 +T C7 0E 00 00 21 5E 01 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T CE 0E 00 00 5E 20 DD 56 21 21 12 00 ED 4B R 00 00 01 00 -T 51 0E 00 00 00 00 00 00 09 7E 23 66 6F CD +T D8 0E 00 00 00 00 00 00 09 7E 23 66 6F 01 R 00 00 01 00 00 04 04 00 -T 59 0E 00 00 E1 0E 00 00 DD 4E FC DD 46 FD 09 +T E0 0E 00 00 05 00 09 4E 23 46 23 7E 69 60 CD +R 00 00 01 00 +T EB 0E 00 00 BC 04 00 00 DD 6E 08 DD 66 09 A7 R 00 00 01 00 00 04 01 00 -T 62 0E 00 00 11 04 00 19 4D 44 CD EF 0E 00 00 -R 00 00 01 00 00 0B 01 00 -T 6B 0E 00 00 7E 23 66 6F 01 05 00 09 4E 23 46 +T F4 0E 00 00 ED 42 01 FC FF 09 4D 44 DD 5E 06 R 00 00 01 00 -T 76 0E 00 00 23 7E 69 60 CD 13 04 00 00 01 -R 00 00 01 00 00 09 01 00 -T 7E 0E 00 00 FC FF 09 4D 44 FD 5E 06 FD 56 07 +T FF 0E 00 00 DD 56 07 3E D9 01 00 00 21 +R 00 00 01 00 29 08 01 00 +T 05 0F 00 00 D9 01 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 0B 0F 00 00 00 00 39 4E 23 46 23 5E 23 56 3E R 00 00 01 00 -T 89 0E 00 00 3E 25 01 00 00 21 25 01 00 00 CD -R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 8F 0E 00 00 00 00 00 00 DD 4E FC DD 46 FD CD -R 00 00 01 00 02 04 0C 00 -T 98 0E 00 00 EF 0E 00 00 46 23 66 68 CD -R 00 00 01 00 00 04 01 00 -T 9F 0E 00 00 E1 0E 00 00 01 05 00 09 4D 44 FD -R 00 00 01 00 00 04 01 00 -T A8 0E 00 00 5E 06 FD 56 07 3E 6A 01 00 00 21 -R 00 00 01 00 29 0A 01 00 -T B0 0E 00 00 6A 01 00 00 CD 00 00 00 00 21 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T B6 0E 00 00 0E 00 DD 4E FC DD 46 FD 09 4D 44 +T 16 0F 00 00 5E 01 00 00 21 5E 01 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 1B 0F 00 00 95 0F 00 00 CD 87 0F 00 00 01 +R 00 00 01 00 00 04 01 00 00 09 01 00 +T 21 0F 00 00 05 00 09 4D 44 DD 5E 06 DD 56 07 R 00 00 01 00 -T C1 0E 00 00 DD 5E FE DD 56 FF 13 13 3E +T 2C 0F 00 00 3E 18 02 00 00 21 18 02 00 00 CD +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 32 0F 00 00 00 00 00 00 21 00 00 39 4E 23 46 +R 00 00 01 00 02 04 0B 00 +T 3B 0F 00 00 03 03 23 5E 23 56 13 13 3E R 00 00 01 00 -T CA 0E 00 00 A3 00 00 00 21 A3 00 00 00 CD +T 44 0F 00 00 5E 01 00 00 21 5E 01 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T CF 0E 00 00 0C 0F 00 00 FD E5 D1 3E +T 49 0F 00 00 00 00 00 00 DD 5E 20 DD 56 21 CD +R 00 00 01 00 02 04 0B 00 +T 52 0F 00 00 31 01 00 00 DD E5 D1 3E R 00 00 01 00 00 04 01 00 -T D5 0E 00 00 04 07 00 00 21 04 07 00 00 CD +T 58 0F 00 00 93 07 00 00 21 93 07 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T DA 0E 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T DC 0E 00 00 +T 5D 0F 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 5F 0F 00 00 R 00 00 01 00 -T DC 0E 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T E1 0E 00 00 +T 5F 0F 00 00 E1 E1 DD E1 C1 C3 00 00 00 00 +R 00 00 01 00 02 0A 00 00 +T 67 0F 00 00 R 00 00 01 00 -T E1 0E 00 00 01 05 00 09 4E 23 46 23 7E 69 60 +T 67 0F 00 00 DD 5E 0E DD 56 0F 3E 40 04 00 00 +R 00 00 01 00 29 0B 01 00 +T 6F 0F 00 00 21 40 04 00 00 C3 00 00 00 00 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 75 0F 00 00 R 00 00 01 00 -T EC 0E 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 0C 00 -T EF 0E 00 00 +T 75 0F 00 00 FD 5E 20 FD 56 21 R 00 00 01 00 -T EF 0E 00 00 DD 5E FE DD 56 FF 3E A3 00 00 00 -R 00 00 01 00 29 0B 01 00 -T F7 0E 00 00 21 A3 00 00 00 CD 00 00 00 00 FD -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T FE 0E 00 00 5E 20 FD 56 21 21 0A 00 ED 4B +T 7B 0F 00 00 R 00 00 01 00 -T 08 0F 00 00 00 00 00 00 09 C9 -R 00 00 01 00 00 04 04 00 -T 0C 0F 00 00 +T 7B 0F 00 00 21 12 00 ED 4B 00 00 00 00 09 7E +R 00 00 01 00 00 09 04 00 +T 84 0F 00 00 23 66 6F R 00 00 01 00 -T 0C 0F 00 00 CD 00 00 00 00 FD 5E 20 FD 56 21 -R 00 00 01 00 02 05 0C 00 -T 15 0F 00 00 3E 39 02 00 00 21 39 02 00 00 CD -R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 1B 0F 00 00 00 00 00 00 C9 -R 00 00 01 00 02 04 0C 00 -T 1E 0F 00 00 +T 87 0F 00 00 R 00 00 01 00 -T 1E 0F 00 00 DD 5E 0E DD 56 0F +T 87 0F 00 00 01 05 00 09 4E 23 46 23 7E 69 60 R 00 00 01 00 -T 24 0F 00 00 +T 92 0F 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 0B 00 +T 95 0F 00 00 R 00 00 01 00 -T 24 0F 00 00 3E A5 03 00 00 21 A5 03 00 00 C3 -R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 2A 0F 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 2C 0F 00 00 -R 00 00 01 00 -T 2C 0F 00 00 CD 00 00 00 00 CD 40 07 00 00 CD -R 00 00 01 00 02 05 0B 00 00 0A 01 00 -T 33 0F 00 00 D7 02 00 00 CD 00 00 00 00 01 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 39 0F 00 00 80 00 58 50 3E F4 01 00 00 21 +T 95 0F 00 00 CD 00 00 00 00 DD 5E 20 DD 56 21 +R 00 00 01 00 02 05 0B 00 +T 9E 0F 00 00 21 12 00 ED 4B 00 00 00 00 09 46 +R 00 00 01 00 00 09 04 00 +T A7 0F 00 00 23 66 68 C9 +R 00 00 01 00 +T AB 0F 00 00 +R 00 00 01 00 +T AB 0F 00 00 4E 23 46 23 +R 00 00 01 00 +T AF 0F 00 00 +R 00 00 01 00 +T AF 0F 00 00 5E 23 56 3E 5E 01 00 00 21 +R 00 00 01 00 29 08 01 00 +T B5 0F 00 00 5E 01 00 00 CD 00 00 00 00 DD 4E +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T BC 0F 00 00 08 DD 46 09 DD 5E 06 DD 56 07 3E +R 00 00 01 00 +T C7 0F 00 00 99 01 00 00 21 99 01 00 00 C9 +R 00 00 01 00 29 04 01 00 00 09 01 00 +T CC 0F 00 00 +R 00 00 01 00 +T CC 0F 00 00 CD 00 00 00 00 CD CF 07 00 00 CD +R 00 00 01 00 02 05 0A 00 00 0A 01 00 +T D3 0F 00 00 72 03 00 00 CD 00 00 00 00 01 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T D9 0F 00 00 80 00 58 50 3E 9C 02 00 00 21 R 00 00 01 00 29 09 01 00 -T 40 0F 00 00 F4 01 00 00 CD 00 00 00 00 21 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 46 0F 00 00 80 00 E5 6C E5 E5 CD EF 02 00 00 +T E0 0F 00 00 9C 02 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T E6 0F 00 00 80 00 E5 6C E5 E5 CD 8A 03 00 00 R 00 00 01 00 00 0B 01 00 -T 4F 0F 00 00 E1 E1 E1 DD 5E 02 DD 56 03 3E +T EF 0F 00 00 E1 E1 E1 DD 5E 02 DD 56 03 3E R 00 00 01 00 -T 59 0F 00 00 04 07 00 00 21 04 07 00 00 CD +T F9 0F 00 00 93 07 00 00 21 93 07 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 5E 0F 00 00 00 00 00 00 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 09 05 00 -T 63 0F 00 00 -R 00 00 01 00 -T 63 0F 00 00 CD 00 00 00 00 3E A6 06 00 00 21 -R 00 00 01 00 02 05 0B 00 29 0A 01 00 -T 69 0F 00 00 A6 06 00 00 CD 00 00 00 00 C3 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 6F 0F 00 00 00 00 00 00 -R 00 00 01 00 02 04 05 00 -T 71 0F 00 00 -R 00 00 01 00 -T 71 0F 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T 7A 0F 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B -R 00 00 01 00 -T 85 0F 00 00 E5 CD B5 0F 00 00 F1 F1 E5 FD E1 -R 00 00 01 00 00 06 01 00 -T 8E 0F 00 00 01 17 00 09 36 D2 0A 00 00 23 36 -R 00 00 01 00 09 09 01 00 -T 96 0F 00 00 D2 0A 00 00 23 36 D2 0A 00 00 FD +T FE 0F 00 00 00 00 00 00 C3 00 00 00 00 +R 00 00 01 00 02 04 0B 00 02 09 04 00 +T 03 10 00 00 +R 00 00 01 00 +T 03 10 00 00 CD 00 00 00 00 3E 35 07 00 00 21 +R 00 00 01 00 02 05 0A 00 29 0A 01 00 +T 09 10 00 00 35 07 00 00 CD 00 00 00 00 C3 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 0F 10 00 00 00 00 00 00 +R 00 00 01 00 02 04 04 00 +T 11 10 00 00 +R 00 00 01 00 +T 11 10 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 1A 10 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B +R 00 00 01 00 +T 25 10 00 00 E5 DD 5E 02 DD 56 03 3E +R 00 00 01 00 +T 2D 10 00 00 3E 06 00 00 21 3E 06 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 32 10 00 00 00 00 00 00 F1 F1 E5 FD E1 01 +R 00 00 01 00 02 04 0B 00 +T 3A 10 00 00 17 00 09 36 61 0B 00 00 23 36 +R 00 00 01 00 09 08 01 00 +T 41 10 00 00 61 0B 00 00 23 36 61 0B 00 00 FD R 00 00 01 00 89 04 01 00 29 0A 01 00 -T 9B 0F 00 00 36 1A 9F 0D 00 00 FD 36 1B +T 46 10 00 00 36 1A 2E 0E 00 00 FD 36 1B R 00 00 01 00 09 06 01 00 -T A1 0F 00 00 9F 0D 00 00 FD 36 1C 9F 0D 00 00 +T 4C 10 00 00 2E 0E 00 00 FD 36 1C 2E 0E 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T A6 0F 00 00 FD 36 1D 63 0F 00 00 FD 36 1E +T 51 10 00 00 FD 36 1D 03 10 00 00 FD 36 1E R 00 00 01 00 09 07 01 00 -T AD 0F 00 00 63 0F 00 00 FD 36 1F 63 0F 00 00 +T 58 10 00 00 03 10 00 00 FD 36 1F 03 10 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T B2 0F 00 00 C3 51 06 00 00 +T 5D 10 00 00 C3 E0 06 00 00 R 00 00 01 00 00 05 01 00 -T B5 0F 00 00 -R 00 00 01 00 -T B5 0F 00 00 DD 5E 02 DD 56 03 3E AF 05 00 00 -R 00 00 01 00 29 0B 01 00 -T BD 0F 00 00 21 AF 05 00 00 C3 00 00 00 00 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T C3 0F 00 00 +T 60 10 00 00 R 00 00 01 00 -T C3 0F 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD -R 00 00 01 00 02 05 0B 00 -T CC 0F 00 00 6E 0A DD 66 0B E5 3E D2 0A 00 00 +T 60 10 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD +R 00 00 01 00 02 05 0A 00 +T 69 10 00 00 6E 0A DD 66 0B E5 3E 61 0B 00 00 R 00 00 01 00 29 0B 01 00 -T D4 0F 00 00 21 D2 0A 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T DB 0F 00 00 3E 03 DD AE 04 DD B6 05 20 3E FD +T 71 10 00 00 21 61 0B 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 78 10 00 00 3E 03 DD AE 04 DD B6 05 20 3E FD R 00 00 01 00 -T E6 0F 00 00 4E 10 47 DD 6E 0A DD 66 0B ED 42 +T 83 10 00 00 4E 10 47 DD 6E 0A DD 66 0B ED 42 R 00 00 01 00 -T F1 0F 00 00 20 30 FD 7E 0A E6 03 28 29 +T 8E 10 00 00 20 30 FD 7E 0A E6 03 28 29 R 00 00 01 00 -T FA 0F 00 00 +T 97 10 00 00 R 00 00 01 00 -T FA 0F 00 00 +T 97 10 00 00 R 00 00 01 00 -T FA 0F 00 00 +T 97 10 00 00 R 00 00 01 00 -T FA 0F 00 00 DD 6E 0A DD 66 0B E5 FD 5E 11 FD +T 97 10 00 00 DD 6E 0A DD 66 0B E5 FD 5E 11 FD R 00 00 01 00 -T 05 10 00 00 56 12 FD 6E 11 FD 66 12 0E 17 CD +T A2 10 00 00 56 12 FD 6E 11 FD 66 12 0E 17 CD R 00 00 01 00 -T 10 10 00 00 50 10 00 00 E1 FD CB 0A 66 28 0A +T AD 10 00 00 ED 10 00 00 E1 FD CB 0A 66 28 0A R 00 00 01 00 00 04 01 00 -T 19 10 00 00 +T B6 10 00 00 R 00 00 01 00 -T 19 10 00 00 FD 4E 10 06 00 C5 CD 5E 10 00 00 +T B6 10 00 00 FD 4E 10 06 00 C5 CD FB 10 00 00 R 00 00 01 00 00 0B 01 00 -T 22 10 00 00 E1 +T BF 10 00 00 E1 R 00 00 01 00 -T 23 10 00 00 +T C0 10 00 00 R 00 00 01 00 -T 23 10 00 00 +T C0 10 00 00 R 00 00 01 00 -T 23 10 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED +T C0 10 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED R 00 00 01 00 -T 2E 10 00 00 42 20 0B +T CB 10 00 00 42 20 0B R 00 00 01 00 -T 31 10 00 00 +T CE 10 00 00 R 00 00 01 00 -T 31 10 00 00 DD 6E 0A DD 66 0B E5 CD +T CE 10 00 00 DD 6E 0A DD 66 0B E5 CD R 00 00 01 00 -T 39 10 00 00 41 10 00 00 E1 +T D6 10 00 00 DE 10 00 00 E1 R 00 00 01 00 00 04 01 00 -T 3C 10 00 00 -R 00 00 01 00 -T 3C 10 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 41 10 00 00 +T D9 10 00 00 R 00 00 01 00 -T 41 10 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +T D9 10 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T DE 10 00 00 R 00 00 01 00 -T 4C 10 00 00 12 01 17 00 +T DE 10 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 R 00 00 01 00 -T 50 10 00 00 +T E9 10 00 00 12 01 17 00 R 00 00 01 00 -T 50 10 00 00 09 4E 23 46 23 7E 69 60 01 01 02 +T ED 10 00 00 R 00 00 01 00 -T 5B 10 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 0C 00 -T 5E 10 00 00 +T ED 10 00 00 09 4E 23 46 23 7E 69 60 01 01 02 R 00 00 01 00 -T 5E 10 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +T F8 10 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 0B 00 +T FB 10 00 00 R 00 00 01 00 -T 69 10 00 00 12 0E 17 09 4E 23 46 23 7E 69 60 +T FB 10 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 R 00 00 01 00 -T 74 10 00 00 01 04 01 C3 00 00 00 00 -R 00 00 01 00 02 08 0C 00 -T 7A 10 00 00 +T 06 11 00 00 12 0E 17 09 4E 23 46 23 7E 69 60 R 00 00 01 00 -T 7A 10 00 00 CD 00 00 00 00 FD E5 D5 FD E1 21 -R 00 00 01 00 02 05 0B 00 -T 83 10 00 00 0A 00 19 CB 76 FD 5E 20 FD 56 21 +T 11 11 00 00 01 04 01 C3 00 00 00 00 +R 00 00 01 00 02 08 0B 00 +T 17 11 00 00 R 00 00 01 00 -T 8E 10 00 00 21 0A 00 ED 4B 00 00 00 00 09 7E -R 00 00 01 00 00 09 04 00 -T 97 10 00 00 23 66 6F 01 05 00 09 4E 23 46 23 +T 17 11 00 00 CD 00 00 00 00 FD E5 D5 FD E1 21 +R 00 00 01 00 02 05 0A 00 +T 20 11 00 00 0A 00 19 CB 76 28 53 R 00 00 01 00 -T A2 10 00 00 7E 69 60 28 53 +T 27 11 00 00 R 00 00 01 00 -T A7 10 00 00 +T 27 11 00 00 FD 5E 08 FD 56 09 01 02 00 CD R 00 00 01 00 -T A7 10 00 00 CD 00 00 00 00 29 4D 44 FD 6E 08 -R 00 00 01 00 02 05 0C 00 -T B0 10 00 00 FD 66 09 A7 ED 42 CD 27 11 00 00 -R 00 00 01 00 00 0B 01 00 -T B9 10 00 00 0E 0C 09 E5 FD 5E 20 FD 56 21 21 +T 31 11 00 00 00 00 00 00 DD 6E 0A DD 66 0B 19 +R 00 00 01 00 02 04 11 00 +T 3A 11 00 00 E5 FD 5E 20 FD 56 21 21 12 00 ED R 00 00 01 00 -T C4 10 00 00 0A 00 ED 4B 00 00 00 00 09 7E 23 -R 00 00 01 00 00 08 04 00 -T CD 10 00 00 66 6F CD E7 03 00 00 C1 CD -R 00 00 01 00 00 07 01 00 -T D4 10 00 00 0C 0F 00 00 FD 5E 08 FD 56 09 CD -R 00 00 01 00 00 04 01 00 -T DD 10 00 00 28 11 00 00 0E 0A 09 E5 FD 5E 22 -R 00 00 01 00 00 04 01 00 -T E6 10 00 00 FD 56 23 69 60 CD DE 03 00 00 C1 +T 45 11 00 00 4B 00 00 00 00 09 7E 23 66 6F CD +R 00 00 01 00 00 05 04 00 +T 4E 11 00 00 85 04 00 00 C1 CD 00 00 00 00 FD +R 00 00 01 00 00 04 01 00 02 0A 0B 00 +T 55 11 00 00 5E 20 FD 56 21 CD 31 01 00 00 CD R 00 00 01 00 00 0A 01 00 -T EF 10 00 00 CD 00 00 00 00 FD 5E 22 FD 56 23 -R 00 00 01 00 02 05 0C 00 -T F8 10 00 00 18 20 +T 5E 11 00 00 75 0F 00 00 29 CD A1 11 00 00 C5 +R 00 00 01 00 00 04 01 00 00 0A 01 00 +T 65 11 00 00 FD 5E 22 FD 56 23 CD 79 04 00 00 +R 00 00 01 00 00 0B 01 00 +T 6E 11 00 00 C1 CD 00 00 00 00 FD 5E 22 FD 56 +R 00 00 01 00 02 06 0B 00 +T 77 11 00 00 23 18 1A R 00 00 01 00 -T FA 10 00 00 +T 7A 11 00 00 R 00 00 01 00 -T FA 10 00 00 CD 13 04 00 00 CD 27 11 00 00 0E +T 7A 11 00 00 CD 75 0F 00 00 CD A1 11 00 00 C5 R 00 00 01 00 00 05 01 00 00 0A 01 00 -T 01 11 00 00 0D 09 E5 FD 5E 20 FD 56 21 21 +T 81 11 00 00 FD 5E 20 FD 56 21 CD 79 04 00 00 +R 00 00 01 00 00 0B 01 00 +T 8A 11 00 00 C1 CD 00 00 00 00 FD 5E 20 FD 56 +R 00 00 01 00 02 06 0B 00 +T 93 11 00 00 21 R 00 00 01 00 -T 0B 11 00 00 0A 00 CD DE 03 00 00 C1 CD -R 00 00 01 00 00 07 01 00 -T 12 11 00 00 00 00 00 00 FD 5E 20 FD 56 21 -R 00 00 01 00 02 04 0C 00 -T 1A 11 00 00 +T 94 11 00 00 R 00 00 01 00 -T 1A 11 00 00 3E 39 02 00 00 21 39 02 00 00 +T 94 11 00 00 3E DE 02 00 00 21 DE 02 00 00 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 1F 11 00 00 -R 00 00 01 00 -T 1F 11 00 00 CD 00 00 00 00 -R 00 00 01 00 02 05 0C 00 -T 22 11 00 00 +T 99 11 00 00 R 00 00 01 00 -T 22 11 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 27 11 00 00 +T 99 11 00 00 CD 00 00 00 00 +R 00 00 01 00 02 05 0B 00 +T 9C 11 00 00 R 00 00 01 00 -T 27 11 00 00 EB +T 9C 11 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T A1 11 00 00 R 00 00 01 00 -T 28 11 00 00 +T A1 11 00 00 FD 4E 08 FD 46 09 09 EB 01 02 00 R 00 00 01 00 -T 28 11 00 00 01 02 00 CD 00 00 00 00 DD 6E 0A -R 00 00 01 00 02 08 12 00 -T 31 11 00 00 DD 66 0B 19 C9 +T AC 11 00 00 CD 00 00 00 00 DD 6E 0A DD 66 0B +R 00 00 01 00 02 05 11 00 +T B5 11 00 00 19 4D 44 03 C9 R 00 00 01 00 -T 36 11 00 00 +T BA 11 00 00 R 00 00 01 00 -T 36 11 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 +T BA 11 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 R 00 00 01 00 -T 41 11 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 +T C5 11 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 R 00 00 01 00 -T 4C 11 00 00 21 0A 00 ED 4B 00 00 00 00 09 7E +T D0 11 00 00 21 12 00 ED 4B 00 00 00 00 09 7E R 00 00 01 00 00 09 04 00 -T 55 11 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 +T D9 11 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 R 00 00 01 00 -T 60 11 00 00 19 4E 23 46 E1 A7 ED 42 28 03 +T E4 11 00 00 19 4E 23 46 E1 A7 ED 42 28 03 R 00 00 01 00 -T 6A 11 00 00 +T EE 11 00 00 R 00 00 01 00 -T 6A 11 00 00 CD 1E 0F 00 00 +T EE 11 00 00 CD 67 0F 00 00 R 00 00 01 00 00 05 01 00 -T 6D 11 00 00 +T F1 11 00 00 R 00 00 01 00 -T 6D 11 00 00 DD CB 0A 46 CA 06 12 00 00 +T F1 11 00 00 DD CB 0A 46 CA 8A 12 00 00 R 00 00 01 00 00 09 01 00 -T 74 11 00 00 +T F8 11 00 00 R 00 00 01 00 -T 74 11 00 00 21 00 00 39 E5 CD 85 0D 00 00 E1 +T F8 11 00 00 21 00 00 39 E5 CD 1F 0E 00 00 E1 R 00 00 01 00 00 0A 01 00 -T 7D 11 00 00 21 00 00 39 CD 0E 12 00 00 CD +T 01 12 00 00 21 00 00 39 CD AB 0F 00 00 CD R 00 00 01 00 00 09 01 00 -T 85 11 00 00 00 00 00 00 DD 6E 08 DD 66 09 E5 -R 00 00 01 00 02 04 0C 00 -T 8E 11 00 00 DD 6E 06 DD 66 07 E5 21 04 00 39 +T 09 12 00 00 00 00 00 00 DD 6E 08 DD 66 09 E5 +R 00 00 01 00 02 04 0B 00 +T 12 12 00 00 DD 6E 06 DD 66 07 E5 21 04 00 39 R 00 00 01 00 -T 99 11 00 00 4E 23 46 C5 23 4E 23 46 DD CB 0A +T 1D 12 00 00 4E 23 46 C5 23 4E 23 46 DD CB 0A R 00 00 01 00 -T A4 11 00 00 4E 28 07 DD 5E 10 16 00 18 03 +T 28 12 00 00 4E 28 07 DD 5E 10 16 00 18 03 R 00 00 01 00 -T AE 11 00 00 +T 32 12 00 00 R 00 00 01 00 -T AE 11 00 00 11 00 00 +T 32 12 00 00 11 00 00 R 00 00 01 00 -T B1 11 00 00 +T 35 12 00 00 R 00 00 01 00 -T B1 11 00 00 CD F2 02 00 00 E1 E1 E1 DD 7E 0A +T 35 12 00 00 CD 8D 03 00 00 E1 E1 E1 DD 7E 0A R 00 00 01 00 00 05 01 00 -T BA 11 00 00 E6 82 28 1C DD 7E 0A E6 82 EE 82 +T 3E 12 00 00 E6 82 28 1C DD 7E 0A E6 82 EE 82 R 00 00 01 00 -T C5 11 00 00 28 13 +T 49 12 00 00 28 13 R 00 00 01 00 -T C7 11 00 00 +T 4B 12 00 00 R 00 00 01 00 -T C7 11 00 00 +T 4B 12 00 00 R 00 00 01 00 -T C7 11 00 00 +T 4B 12 00 00 R 00 00 01 00 -T C7 11 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 +T 4B 12 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 R 00 00 01 00 -T D2 11 00 00 07 3E AF 01 00 00 21 AF 01 00 00 +T 56 12 00 00 07 3E 5A 02 00 00 21 5A 02 00 00 R 00 00 01 00 29 06 01 00 00 0B 01 00 -T D8 11 00 00 18 11 +T 5C 12 00 00 18 11 R 00 00 01 00 -T DA 11 00 00 +T 5E 12 00 00 R 00 00 01 00 -T DA 11 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 +T 5E 12 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 R 00 00 01 00 -T E5 11 00 00 07 3E 25 01 00 00 21 25 01 00 00 +T 69 12 00 00 07 3E D9 01 00 00 21 D9 01 00 00 R 00 00 01 00 29 06 01 00 00 0B 01 00 -T EB 11 00 00 +T 6F 12 00 00 R 00 00 01 00 -T EB 11 00 00 CD 00 00 00 00 -R 00 00 01 00 02 05 0C 00 -T EE 11 00 00 +T 6F 12 00 00 CD 00 00 00 00 +R 00 00 01 00 02 05 0B 00 +T 72 12 00 00 R 00 00 01 00 -T EE 11 00 00 21 00 00 39 4E 23 46 C5 23 4E 23 +T 72 12 00 00 21 00 00 39 4E 23 46 C5 23 4E 23 R 00 00 01 00 -T F9 11 00 00 46 DD E5 D1 3E 7A 10 00 00 21 +T 7D 12 00 00 46 DD E5 D1 3E 17 11 00 00 21 R 00 00 01 00 29 09 01 00 -T 00 12 00 00 7A 10 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 06 12 00 00 +T 84 12 00 00 17 11 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 8A 12 00 00 R 00 00 01 00 -T 06 12 00 00 E1 E1 DD E1 C1 C3 00 00 00 00 -R 00 00 01 00 02 0A 00 00 -T 0E 12 00 00 +T 8A 12 00 00 C3 5F 0F 00 00 +R 00 00 01 00 00 05 01 00 +T 8D 12 00 00 R 00 00 01 00 -T 0E 12 00 00 4E 23 46 23 +T 8D 12 00 00 CD 00 00 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 0A 00 02 0A 04 00 +T 93 12 00 00 R 00 00 01 00 -T 12 12 00 00 +T 93 12 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 9C 12 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B R 00 00 01 00 -T 12 12 00 00 5E 23 56 3E A3 00 00 00 21 -R 00 00 01 00 29 08 01 00 -T 18 12 00 00 A3 00 00 00 CD 00 00 00 00 DD 4E -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 1F 12 00 00 08 DD 46 09 DD 5E 06 DD 56 07 3E +T A7 12 00 00 E5 DD 5E 02 DD 56 03 3E R 00 00 01 00 -T 2A 12 00 00 E2 00 00 00 21 E2 00 00 00 C9 +T AF 12 00 00 3E 06 00 00 21 3E 06 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 2F 12 00 00 -R 00 00 01 00 -T 2F 12 00 00 CD 00 00 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 0B 00 02 0A 05 00 -T 35 12 00 00 -R 00 00 01 00 -T 35 12 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T 3E 12 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B -R 00 00 01 00 -T 49 12 00 00 E5 CD B5 0F 00 00 F1 F1 E5 FD E1 -R 00 00 01 00 00 06 01 00 -T 52 12 00 00 01 0A 00 09 7E F6 03 77 DD 46 0E +T B4 12 00 00 00 00 00 00 F1 F1 E5 FD E1 01 +R 00 00 01 00 02 04 0B 00 +T BC 12 00 00 0A 00 09 7E F6 03 77 DD 46 0E FD R 00 00 01 00 -T 5D 12 00 00 FD 70 10 FD 36 17 C3 0F 00 00 FD -R 00 00 01 00 09 0A 01 00 -T 65 12 00 00 36 18 C3 0F 00 00 FD 36 19 -R 00 00 01 00 89 06 01 00 -T 6B 12 00 00 C3 0F 00 00 FD 36 1A 36 11 00 00 +T C7 12 00 00 70 10 FD 36 17 60 10 00 00 FD 36 +R 00 00 01 00 09 09 01 00 +T CF 12 00 00 18 60 10 00 00 FD 36 19 +R 00 00 01 00 89 05 01 00 +T D4 12 00 00 60 10 00 00 FD 36 1A BA 11 00 00 R 00 00 01 00 29 04 01 00 09 0B 01 00 -T 70 12 00 00 FD 36 1B 36 11 00 00 FD 36 1C +T D9 12 00 00 FD 36 1B BA 11 00 00 FD 36 1C R 00 00 01 00 89 07 01 00 -T 77 12 00 00 36 11 00 00 FD 36 1D 2F 12 00 00 +T E0 12 00 00 BA 11 00 00 FD 36 1D 8D 12 00 00 R 00 00 01 00 29 04 01 00 09 0B 01 00 -T 7C 12 00 00 FD 36 1E 2F 12 00 00 FD 36 1F +T E5 12 00 00 FD 36 1E 8D 12 00 00 FD 36 1F R 00 00 01 00 89 07 01 00 -T 83 12 00 00 2F 12 00 00 C3 51 06 00 00 +T EC 12 00 00 8D 12 00 00 C3 E0 06 00 00 R 00 00 01 00 29 04 01 00 00 09 01 00 -T 87 12 00 00 +T F0 12 00 00 R 00 00 01 00 -T 87 12 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD -R 00 00 01 00 02 05 0B 00 -T 90 12 00 00 6E 0A DD 66 0B E5 3E D2 0A 00 00 +T F0 12 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD +R 00 00 01 00 02 05 0A 00 +T F9 12 00 00 6E 0A DD 66 0B E5 3E 61 0B 00 00 R 00 00 01 00 29 0B 01 00 -T 98 12 00 00 21 D2 0A 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T 9F 12 00 00 3E 03 DD AE 04 DD B6 05 20 5C FD +T 01 13 00 00 21 61 0B 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 08 13 00 00 3E 03 DD AE 04 DD B6 05 20 5C FD R 00 00 01 00 -T AA 12 00 00 4E 10 47 DD 6E 0A DD 66 0B ED 42 +T 13 13 00 00 4E 10 47 DD 6E 0A DD 66 0B ED 42 R 00 00 01 00 -T B5 12 00 00 20 4E FD 7E 0A E6 03 28 47 +T 1E 13 00 00 20 4E FD 7E 0A E6 03 28 47 R 00 00 01 00 -T BE 12 00 00 +T 27 13 00 00 R 00 00 01 00 -T BE 12 00 00 +T 27 13 00 00 R 00 00 01 00 -T BE 12 00 00 +T 27 13 00 00 R 00 00 01 00 -T BE 12 00 00 FD 7E 0A EE 04 FD 77 0A DD 6E 0A +T 27 13 00 00 FD 7E 0A EE 04 FD 77 0A DD 6E 0A R 00 00 01 00 -T C9 12 00 00 DD 66 0B E5 FD 5E 11 FD 56 12 FD +T 32 13 00 00 DD 66 0B E5 FD 5E 11 FD 56 12 FD R 00 00 01 00 -T D4 12 00 00 6E 11 FD 66 12 0E 17 09 4E 23 46 +T 3D 13 00 00 6E 11 FD 66 12 0E 17 09 4E 23 46 R 00 00 01 00 -T DF 12 00 00 23 7E 69 60 01 02 02 CD +T 48 13 00 00 23 7E 69 60 01 02 02 CD R 00 00 01 00 -T E7 12 00 00 00 00 00 00 E1 21 00 00 E5 01 -R 00 00 01 00 02 04 0C 00 -T EF 12 00 00 03 01 CD 76 0D 00 00 E1 FD CB 0A +T 50 13 00 00 00 00 00 00 E1 21 00 00 E5 01 +R 00 00 01 00 02 04 0B 00 +T 58 13 00 00 03 01 CD 10 0E 00 00 E1 FD CB 0A R 00 00 01 00 00 07 01 00 -T F8 12 00 00 66 28 0A +T 61 13 00 00 66 28 0A R 00 00 01 00 -T FB 12 00 00 +T 64 13 00 00 R 00 00 01 00 -T FB 12 00 00 FD 4E 10 06 00 C5 CD 5E 10 00 00 +T 64 13 00 00 FD 4E 10 06 00 C5 CD FB 10 00 00 R 00 00 01 00 00 0B 01 00 -T 04 13 00 00 E1 +T 6D 13 00 00 E1 R 00 00 01 00 -T 05 13 00 00 +T 6E 13 00 00 R 00 00 01 00 -T 05 13 00 00 +T 6E 13 00 00 R 00 00 01 00 -T 05 13 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED +T 6E 13 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED R 00 00 01 00 -T 10 13 00 00 42 20 0B +T 79 13 00 00 42 20 0B R 00 00 01 00 -T 13 13 00 00 +T 7C 13 00 00 R 00 00 01 00 -T 13 13 00 00 DD 6E 0A DD 66 0B E5 CD +T 7C 13 00 00 DD 6E 0A DD 66 0B E5 CD R 00 00 01 00 -T 1B 13 00 00 41 10 00 00 E1 +T 84 13 00 00 DE 10 00 00 E1 R 00 00 01 00 00 04 01 00 -T 1E 13 00 00 +T 87 13 00 00 R 00 00 01 00 -T 1E 13 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 23 13 00 00 +T 87 13 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T 8C 13 00 00 R 00 00 01 00 -T 23 13 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 +T 8C 13 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 R 00 00 01 00 -T 2E 13 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 +T 97 13 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 R 00 00 01 00 -T 39 13 00 00 21 0A 00 ED 4B 00 00 00 00 09 7E +T A2 13 00 00 21 12 00 ED 4B 00 00 00 00 09 7E R 00 00 01 00 00 09 04 00 -T 42 13 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 +T AB 13 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 R 00 00 01 00 -T 4D 13 00 00 19 4E 23 46 E1 A7 ED 42 28 03 +T B6 13 00 00 19 4E 23 46 E1 A7 ED 42 28 03 R 00 00 01 00 -T 57 13 00 00 +T C0 13 00 00 R 00 00 01 00 -T 57 13 00 00 CD 1E 0F 00 00 +T C0 13 00 00 CD 67 0F 00 00 R 00 00 01 00 00 05 01 00 -T 5A 13 00 00 +T C3 13 00 00 R 00 00 01 00 -T 5A 13 00 00 DD CB 0A 46 CA 0C 14 00 00 +T C3 13 00 00 DD CB 0A 46 CA 75 14 00 00 R 00 00 01 00 00 09 01 00 -T 61 13 00 00 +T CA 13 00 00 R 00 00 01 00 -T 61 13 00 00 21 00 00 39 E5 CD 85 0D 00 00 E1 +T CA 13 00 00 21 00 00 39 E5 CD 1F 0E 00 00 E1 R 00 00 01 00 00 0A 01 00 -T 6A 13 00 00 21 00 00 39 CD 0E 12 00 00 CD +T D3 13 00 00 21 00 00 39 CD AB 0F 00 00 CD R 00 00 01 00 00 09 01 00 -T 72 13 00 00 00 00 00 00 DD CB 0A 4E 28 36 DD -R 00 00 01 00 02 04 0C 00 -T 7B 13 00 00 CB 0A 56 28 30 +T DB 13 00 00 00 00 00 00 DD CB 0A 4E 28 36 DD +R 00 00 01 00 02 04 0B 00 +T E4 13 00 00 CB 0A 56 28 30 R 00 00 01 00 -T 80 13 00 00 +T E9 13 00 00 R 00 00 01 00 -T 80 13 00 00 +T E9 13 00 00 R 00 00 01 00 -T 80 13 00 00 +T E9 13 00 00 R 00 00 01 00 -T 80 13 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 +T E9 13 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 R 00 00 01 00 -T 8B 13 00 00 07 3E AF 01 00 00 21 AF 01 00 00 +T F4 13 00 00 07 3E 5A 02 00 00 21 5A 02 00 00 R 00 00 01 00 29 06 01 00 00 0B 01 00 -T 91 13 00 00 CD 00 00 00 00 DD 6E 08 DD 66 09 -R 00 00 01 00 02 05 0C 00 -T 9A 13 00 00 E5 DD 6E 06 DD 66 07 E5 21 04 00 +T FA 13 00 00 CD 00 00 00 00 DD 6E 08 DD 66 09 +R 00 00 01 00 02 05 0B 00 +T 03 14 00 00 E5 DD 6E 06 DD 66 07 E5 21 04 00 R 00 00 01 00 -T A5 13 00 00 39 4E 23 46 C5 23 4E 23 46 18 34 +T 0E 14 00 00 39 4E 23 46 C5 23 4E 23 46 18 34 R 00 00 01 00 -T B0 13 00 00 +T 19 14 00 00 R 00 00 01 00 -T B0 13 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 +T 19 14 00 00 DD 4E 08 DD 46 09 DD 5E 06 DD 56 R 00 00 01 00 -T BB 13 00 00 07 3E 25 01 00 00 21 25 01 00 00 +T 24 14 00 00 07 3E D9 01 00 00 21 D9 01 00 00 R 00 00 01 00 29 06 01 00 00 0B 01 00 -T C1 13 00 00 CD 00 00 00 00 DD 6E 08 DD 66 09 -R 00 00 01 00 02 05 0C 00 -T CA 13 00 00 E5 DD 6E 06 DD 66 07 E5 21 04 00 +T 2A 14 00 00 CD 00 00 00 00 DD 6E 08 DD 66 09 +R 00 00 01 00 02 05 0B 00 +T 33 14 00 00 E5 DD 6E 06 DD 66 07 E5 21 04 00 R 00 00 01 00 -T D5 13 00 00 39 4E 23 46 C5 23 4E 23 46 DD CB +T 3E 14 00 00 39 4E 23 46 C5 23 4E 23 46 DD CB R 00 00 01 00 -T E0 13 00 00 0A 4E 28 07 +T 49 14 00 00 0A 4E 28 07 R 00 00 01 00 -T E4 13 00 00 +T 4D 14 00 00 R 00 00 01 00 -T E4 13 00 00 DD 5E 10 16 00 18 03 +T 4D 14 00 00 DD 5E 10 16 00 18 03 R 00 00 01 00 -T EB 13 00 00 +T 54 14 00 00 R 00 00 01 00 -T EB 13 00 00 11 00 00 +T 54 14 00 00 11 00 00 R 00 00 01 00 -T EE 13 00 00 +T 57 14 00 00 R 00 00 01 00 -T EE 13 00 00 CD F2 02 00 00 E1 E1 E1 +T 57 14 00 00 CD 8D 03 00 00 E1 E1 E1 R 00 00 01 00 00 05 01 00 -T F4 13 00 00 +T 5D 14 00 00 R 00 00 01 00 -T F4 13 00 00 21 00 00 39 4E 23 46 C5 23 4E 23 +T 5D 14 00 00 21 00 00 39 4E 23 46 C5 23 4E 23 R 00 00 01 00 -T FF 13 00 00 46 DD E5 D1 3E 7A 10 00 00 21 +T 68 14 00 00 46 DD E5 D1 3E 17 11 00 00 21 R 00 00 01 00 29 09 01 00 -T 06 14 00 00 7A 10 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 0C 14 00 00 +T 6F 14 00 00 17 11 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 75 14 00 00 R 00 00 01 00 -T 0C 14 00 00 C3 06 12 00 00 +T 75 14 00 00 C3 5F 0F 00 00 R 00 00 01 00 00 05 01 00 -T 0F 14 00 00 +T 78 14 00 00 R 00 00 01 00 -T 0F 14 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T 18 14 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B +T 78 14 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 81 14 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B R 00 00 01 00 -T 23 14 00 00 E5 CD B5 0F 00 00 F1 F1 E5 FD E1 -R 00 00 01 00 00 06 01 00 -T 2C 14 00 00 01 0A 00 09 7E F6 07 77 DD 46 0E +T 8C 14 00 00 E5 DD 5E 02 DD 56 03 3E R 00 00 01 00 -T 37 14 00 00 FD 70 10 FD 36 17 87 12 00 00 FD -R 00 00 01 00 09 0A 01 00 -T 3F 14 00 00 36 18 87 12 00 00 FD 36 19 -R 00 00 01 00 89 06 01 00 -T 45 14 00 00 87 12 00 00 FD 36 1A 23 13 00 00 +T 94 14 00 00 3E 06 00 00 21 3E 06 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 99 14 00 00 00 00 00 00 F1 F1 E5 FD E1 01 +R 00 00 01 00 02 04 0B 00 +T A1 14 00 00 0A 00 09 7E F6 07 77 DD 46 0E FD +R 00 00 01 00 +T AC 14 00 00 70 10 FD 36 17 F0 12 00 00 FD 36 +R 00 00 01 00 09 09 01 00 +T B4 14 00 00 18 F0 12 00 00 FD 36 19 +R 00 00 01 00 89 05 01 00 +T B9 14 00 00 F0 12 00 00 FD 36 1A 8C 13 00 00 R 00 00 01 00 29 04 01 00 09 0B 01 00 -T 4A 14 00 00 FD 36 1B 23 13 00 00 FD 36 1C +T BE 14 00 00 FD 36 1B 8C 13 00 00 FD 36 1C R 00 00 01 00 89 07 01 00 -T 51 14 00 00 23 13 00 00 FD 36 1D 2F 12 00 00 +T C5 14 00 00 8C 13 00 00 FD 36 1D 8D 12 00 00 R 00 00 01 00 29 04 01 00 09 0B 01 00 -T 56 14 00 00 FD 36 1E 2F 12 00 00 FD 36 1F +T CA 14 00 00 FD 36 1E 8D 12 00 00 FD 36 1F R 00 00 01 00 89 07 01 00 -T 5D 14 00 00 2F 12 00 00 C3 51 06 00 00 +T D1 14 00 00 8D 12 00 00 C3 E0 06 00 00 R 00 00 01 00 29 04 01 00 00 09 01 00 -T 61 14 00 00 +T D5 14 00 00 R 00 00 01 00 -T 61 14 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD -R 00 00 01 00 02 05 0B 00 -T 6A 14 00 00 6E 0A DD 66 0B E5 3E D2 0A 00 00 +T D5 14 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD +R 00 00 01 00 02 05 0A 00 +T DE 14 00 00 6E 0A DD 66 0B E5 3E 61 0B 00 00 R 00 00 01 00 29 0B 01 00 -T 72 14 00 00 21 D2 0A 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T 79 14 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED +T E6 14 00 00 21 61 0B 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T ED 14 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED R 00 00 01 00 -T 84 14 00 00 42 20 40 3E FF DD AE 0A DD B6 0B +T F8 14 00 00 42 20 40 3E FF DD AE 0A DD B6 0B R 00 00 01 00 -T 8F 14 00 00 20 36 +T 03 15 00 00 20 36 R 00 00 01 00 -T 91 14 00 00 +T 05 15 00 00 R 00 00 01 00 -T 91 14 00 00 +T 05 15 00 00 R 00 00 01 00 -T 91 14 00 00 +T 05 15 00 00 R 00 00 01 00 -T 91 14 00 00 FD CB 0B 66 E5 28 05 +T 05 15 00 00 FD CB 0B 66 E5 28 05 R 00 00 01 00 -T 98 14 00 00 +T 0C 15 00 00 R 00 00 01 00 -T 98 14 00 00 01 05 01 18 03 +T 0C 15 00 00 01 05 01 18 03 R 00 00 01 00 -T 9D 14 00 00 +T 11 15 00 00 R 00 00 01 00 -T 9D 14 00 00 01 02 01 +T 11 15 00 00 01 02 01 R 00 00 01 00 -T A0 14 00 00 +T 14 15 00 00 R 00 00 01 00 -T A0 14 00 00 CD 76 0D 00 00 E1 +T 14 15 00 00 CD 10 0E 00 00 E1 R 00 00 01 00 00 05 01 00 -T A4 14 00 00 +T 18 15 00 00 R 00 00 01 00 -T A4 14 00 00 FD 4E 10 06 00 C5 FD 5E 11 FD 56 +T 18 15 00 00 FD 4E 10 06 00 C5 FD 5E 11 FD 56 R 00 00 01 00 -T AF 14 00 00 12 FD 6E 11 FD 66 12 0E 17 09 4E +T 23 15 00 00 12 FD 6E 11 FD 66 12 0E 17 09 4E R 00 00 01 00 -T BA 14 00 00 23 46 23 7E 69 60 01 01 03 CD +T 2E 15 00 00 23 46 23 7E 69 60 01 01 03 CD R 00 00 01 00 -T C4 14 00 00 00 00 00 00 E1 -R 00 00 01 00 02 04 0C 00 -T C7 14 00 00 +T 38 15 00 00 00 00 00 00 E1 +R 00 00 01 00 02 04 0B 00 +T 3B 15 00 00 R 00 00 01 00 -T C7 14 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED +T 3B 15 00 00 21 01 02 DD 4E 04 DD 46 05 A7 ED R 00 00 01 00 -T D2 14 00 00 42 20 40 3E FE DD AE 0A DD B6 0B +T 46 15 00 00 42 20 40 3E FE DD AE 0A DD B6 0B R 00 00 01 00 -T DD 14 00 00 20 36 +T 51 15 00 00 20 36 R 00 00 01 00 -T DF 14 00 00 +T 53 15 00 00 R 00 00 01 00 -T DF 14 00 00 +T 53 15 00 00 R 00 00 01 00 -T DF 14 00 00 +T 53 15 00 00 R 00 00 01 00 -T DF 14 00 00 FD CB 0B 66 E5 28 05 +T 53 15 00 00 FD CB 0B 66 E5 28 05 R 00 00 01 00 -T E6 14 00 00 +T 5A 15 00 00 R 00 00 01 00 -T E6 14 00 00 01 05 01 18 03 +T 5A 15 00 00 01 05 01 18 03 R 00 00 01 00 -T EB 14 00 00 +T 5F 15 00 00 R 00 00 01 00 -T EB 14 00 00 01 02 01 +T 5F 15 00 00 01 02 01 R 00 00 01 00 -T EE 14 00 00 +T 62 15 00 00 R 00 00 01 00 -T EE 14 00 00 CD 76 0D 00 00 E1 +T 62 15 00 00 CD 10 0E 00 00 E1 R 00 00 01 00 00 05 01 00 -T F2 14 00 00 +T 66 15 00 00 R 00 00 01 00 -T F2 14 00 00 FD 4E 10 06 00 C5 FD 5E 11 FD 56 +T 66 15 00 00 FD 4E 10 06 00 C5 FD 5E 11 FD 56 R 00 00 01 00 -T FD 14 00 00 12 FD 6E 11 FD 66 12 0E 17 09 4E +T 71 15 00 00 12 FD 6E 11 FD 66 12 0E 17 09 4E R 00 00 01 00 -T 08 15 00 00 23 46 23 7E 69 60 01 02 03 CD +T 7C 15 00 00 23 46 23 7E 69 60 01 02 03 CD R 00 00 01 00 -T 12 15 00 00 00 00 00 00 E1 -R 00 00 01 00 02 04 0C 00 -T 15 15 00 00 +T 86 15 00 00 00 00 00 00 E1 +R 00 00 01 00 02 04 0B 00 +T 89 15 00 00 R 00 00 01 00 -T 15 15 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 1A 15 00 00 +T 89 15 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T 8E 15 00 00 R 00 00 01 00 -T 1A 15 00 00 CD 00 00 00 00 FE FF FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T 23 15 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B +T 8E 15 00 00 CD 00 00 00 00 FE FF FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 97 15 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B R 00 00 01 00 -T 2E 15 00 00 E5 CD B5 0F 00 00 F1 F1 E5 FD E1 -R 00 00 01 00 00 06 01 00 -T 37 15 00 00 01 0A 00 09 CB C6 DD 46 0E FD 70 +T A2 15 00 00 E5 DD 5E 02 DD 56 03 3E R 00 00 01 00 -T 42 15 00 00 10 FD 36 17 61 14 00 00 FD 36 18 -R 00 00 01 00 09 08 01 00 -T 4A 15 00 00 61 14 00 00 FD 36 19 61 14 00 00 +T AA 15 00 00 3E 06 00 00 21 3E 06 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T AF 15 00 00 00 00 00 00 F1 F1 E5 FD E1 01 +R 00 00 01 00 02 04 0B 00 +T B7 15 00 00 0A 00 09 CB C6 DD 46 0E FD 70 10 +R 00 00 01 00 +T C2 15 00 00 FD 36 17 D5 14 00 00 FD 36 18 +R 00 00 01 00 09 07 01 00 +T C9 15 00 00 D5 14 00 00 FD 36 19 D5 14 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T 4F 15 00 00 FD 36 1A 9F 0D 00 00 FD 36 1B +T CE 15 00 00 FD 36 1A 2E 0E 00 00 FD 36 1B R 00 00 01 00 09 07 01 00 -T 56 15 00 00 9F 0D 00 00 FD 36 1C 9F 0D 00 00 +T D5 15 00 00 2E 0E 00 00 FD 36 1C 2E 0E 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T 5B 15 00 00 FD 36 1D 63 0F 00 00 FD 36 1E +T DA 15 00 00 FD 36 1D 03 10 00 00 FD 36 1E R 00 00 01 00 09 07 01 00 -T 62 15 00 00 63 0F 00 00 FD 36 1F 63 0F 00 00 +T E1 15 00 00 03 10 00 00 FD 36 1F 03 10 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T 67 15 00 00 21 FF 00 E5 2E 14 E5 2E 28 E5 21 +T E6 15 00 00 21 FF 00 E5 2E 14 E5 2E 28 E5 21 R 00 00 01 00 -T 72 15 00 00 E4 FF CD CC 15 00 00 F1 F1 F1 DD -R 00 00 01 00 00 07 01 00 -T 7B 15 00 00 75 FE DD 74 FF 01 20 00 09 E5 11 +T F1 15 00 00 E4 FF DD 4E 0C DD 46 0D 09 4D 44 R 00 00 01 00 -T 86 15 00 00 03 00 CD 28 04 00 00 E1 71 23 70 -R 00 00 01 00 00 07 01 00 -T 8F 15 00 00 01 0A 00 00 00 CD E8 15 00 00 CD -R 00 00 01 00 00 05 02 00 00 0A 01 00 -T 96 15 00 00 00 00 00 00 21 FE 00 E5 2E 14 E5 -R 00 00 01 00 02 04 0C 00 -T 9F 15 00 00 2E 28 E5 21 C8 FF CD CC 15 00 00 -R 00 00 01 00 00 0B 01 00 -T A8 15 00 00 F1 F1 F1 DD 75 FE DD 74 FF 01 +T FC 15 00 00 21 D0 FF DD 5E 0A DD 56 0B 19 EB R 00 00 01 00 -T B2 15 00 00 20 00 09 E5 11 07 00 CD +T 07 16 00 00 3E 93 12 00 00 21 93 12 00 00 CD +R 00 00 01 00 29 05 01 00 00 0A 01 00 +T 0D 16 00 00 00 00 00 00 F1 F1 F1 DD 75 FE DD +R 00 00 01 00 02 04 0B 00 +T 16 16 00 00 74 FF 01 20 00 09 E5 11 03 00 CD R 00 00 01 00 -T BA 15 00 00 28 04 00 00 E1 71 23 70 01 +T 21 16 00 00 B7 04 00 00 E1 71 23 70 01 R 00 00 01 00 00 04 01 00 -T C1 15 00 00 0D 00 00 00 CD E8 15 00 00 CD +T 28 16 00 00 20 00 00 00 CD 7D 16 00 00 CD R 00 00 01 00 00 04 02 00 00 09 01 00 -T C7 15 00 00 00 00 00 00 C3 51 06 00 00 -R 00 00 01 00 02 04 0C 00 00 09 01 00 -T CC 15 00 00 -R 00 00 01 00 -T CC 15 00 00 DD 4E 0C DD 46 0D 09 4D 44 21 +T 2E 16 00 00 00 00 00 00 21 FE 00 E5 2E 14 E5 +R 00 00 01 00 02 04 0B 00 +T 37 16 00 00 2E 28 E5 21 C8 FF DD 4E 0C DD 46 R 00 00 01 00 -T D6 15 00 00 D0 FF DD 5E 0A DD 56 0B 19 EB +T 42 16 00 00 0D 09 4D 44 21 D0 FF DD 5E 0A DD R 00 00 01 00 -T E0 15 00 00 +T 4D 16 00 00 56 0B 19 EB 3E 93 12 00 00 21 +R 00 00 01 00 29 09 01 00 +T 54 16 00 00 93 12 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 5B 16 00 00 F1 DD 75 FE DD 74 FF 01 20 00 09 R 00 00 01 00 -T E0 15 00 00 3E 35 12 00 00 21 35 12 00 00 C3 -R 00 00 01 00 29 05 01 00 00 0A 01 00 -T E6 15 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T E8 15 00 00 +T 66 16 00 00 E5 11 07 00 CD B7 04 00 00 E1 71 +R 00 00 01 00 00 09 01 00 +T 6F 16 00 00 23 70 01 23 00 00 00 CD +R 00 00 01 00 00 07 02 00 +T 75 16 00 00 7D 16 00 00 CD 00 00 00 00 C3 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 7B 16 00 00 E0 06 00 00 +R 00 00 01 00 00 04 01 00 +T 7D 16 00 00 R 00 00 01 00 -T E8 15 00 00 DD 5E FE DD 56 FF 3E 59 06 00 00 +T 7D 16 00 00 DD 5E FE DD 56 FF 3E E8 06 00 00 R 00 00 01 00 29 0B 01 00 -T F0 15 00 00 21 59 06 00 00 CD 00 00 00 00 DD -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T F7 15 00 00 4E FE DD 46 FF FD E5 D1 FD 7E 1F +T 85 16 00 00 21 E8 06 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 8C 16 00 00 4E FE DD 46 FF FD E5 D1 FD 7E 1F R 00 00 01 00 -T 02 16 00 00 FD 6E 1D FD 66 1E C9 +T 97 16 00 00 FD 6E 1D FD 66 1E C9 R 00 00 01 00 -T 09 16 00 00 +T 9E 16 00 00 R 00 00 01 00 -T 09 16 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD -R 00 00 01 00 02 05 0B 00 -T 12 16 00 00 6E 0A DD 66 0B E5 3E C3 0F 00 00 +T 9E 16 00 00 CD 00 00 00 00 FD E5 D5 FD E1 DD +R 00 00 01 00 02 05 0A 00 +T A7 16 00 00 6E 0A DD 66 0B E5 3E 60 10 00 00 R 00 00 01 00 29 0B 01 00 -T 1A 16 00 00 21 C3 0F 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T 21 16 00 00 21 03 02 DD 4E 04 DD 46 05 A7 ED +T AF 16 00 00 21 60 10 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T B6 16 00 00 21 03 02 DD 4E 04 DD 46 05 A7 ED R 00 00 01 00 -T 2C 16 00 00 42 20 40 FD CB 0A 5E 28 3A +T C1 16 00 00 42 20 40 FD CB 0A 5E 28 3A R 00 00 01 00 -T 35 16 00 00 +T CA 16 00 00 R 00 00 01 00 -T 35 16 00 00 +T CA 16 00 00 R 00 00 01 00 -T 35 16 00 00 +T CA 16 00 00 R 00 00 01 00 -T 35 16 00 00 3E 08 DD AE 0A DD B6 0B FD 5E 20 +T CA 16 00 00 3E 08 DD AE 0A DD B6 0B FD 5E 20 R 00 00 01 00 -T 40 16 00 00 FD 56 21 3E 00 00 00 00 21 -R 00 00 01 00 2B 08 07 00 -T 46 16 00 00 00 00 00 00 20 0D -R 00 00 01 00 02 04 07 00 -T 4A 16 00 00 +T D5 16 00 00 FD 56 21 3E 00 00 00 00 21 +R 00 00 01 00 2B 08 06 00 +T DB 16 00 00 00 00 00 00 20 0D +R 00 00 01 00 02 04 06 00 +T DF 16 00 00 R 00 00 01 00 -T 4A 16 00 00 CD 22 04 00 00 28 15 +T DF 16 00 00 CD B1 04 00 00 28 15 R 00 00 01 00 00 05 01 00 -T 4F 16 00 00 +T E4 16 00 00 R 00 00 01 00 -T 4F 16 00 00 CD 74 16 00 00 2B 36 00 +T E4 16 00 00 CD 09 17 00 00 2B 36 00 R 00 00 01 00 00 05 01 00 -T 55 16 00 00 +T EA 16 00 00 R 00 00 01 00 -T 55 16 00 00 18 0D +T EA 16 00 00 18 0D R 00 00 01 00 -T 57 16 00 00 +T EC 16 00 00 R 00 00 01 00 -T 57 16 00 00 CD 7F 16 00 00 23 36 00 CD +T EC 16 00 00 CD 14 17 00 00 23 36 00 CD R 00 00 01 00 00 05 01 00 -T 5E 16 00 00 74 16 00 00 DD 46 0A 70 +T F3 16 00 00 09 17 00 00 DD 46 0A 70 R 00 00 01 00 00 04 01 00 -T 64 16 00 00 +T F9 16 00 00 R 00 00 01 00 -T 64 16 00 00 21 00 00 E5 01 03 01 CD +T F9 16 00 00 21 00 00 E5 01 03 01 CD R 00 00 01 00 -T 6C 16 00 00 76 0D 00 00 E1 +T 01 17 00 00 10 0E 00 00 E1 R 00 00 01 00 00 04 01 00 -T 6F 16 00 00 +T 04 17 00 00 R 00 00 01 00 -T 6F 16 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 74 16 00 00 +T 04 17 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T 09 17 00 00 R 00 00 01 00 -T 74 16 00 00 FD 5E 20 FD 56 21 3E 00 00 00 00 -R 00 00 01 00 2B 0B 07 00 -T 7C 16 00 00 21 00 00 00 00 -R 00 00 01 00 02 05 07 00 -T 7F 16 00 00 +T 09 17 00 00 FD 5E 20 FD 56 21 3E 00 00 00 00 +R 00 00 01 00 2B 0B 06 00 +T 11 17 00 00 21 00 00 00 00 +R 00 00 01 00 02 05 06 00 +T 14 17 00 00 R 00 00 01 00 -T 7F 16 00 00 CD 00 00 00 00 FD 4E 20 FD 46 21 -R 00 00 01 00 02 05 0C 00 -T 88 16 00 00 09 C9 +T 14 17 00 00 CD 00 00 00 00 FD 4E 20 FD 46 21 +R 00 00 01 00 02 05 0B 00 +T 1D 17 00 00 09 C9 R 00 00 01 00 -T 8A 16 00 00 +T 1F 17 00 00 R 00 00 01 00 -T 8A 16 00 00 C5 FD E5 DD E5 21 B8 FF 39 F9 D5 +T 1F 17 00 00 C5 FD E5 DD E5 21 B8 FF 39 F9 D5 R 00 00 01 00 -T 95 16 00 00 DD E1 AF 77 23 77 23 77 23 77 21 +T 2A 17 00 00 DD E1 AF 77 23 77 23 77 23 77 21 R 00 00 01 00 -T A0 16 00 00 0A 00 ED 4B 00 00 00 00 09 7E 23 +T 35 17 00 00 12 00 ED 4B 00 00 00 00 09 7E 23 R 00 00 01 00 00 08 04 00 -T A9 16 00 00 66 6F 46 23 66 68 E5 21 0E 00 19 +T 3E 17 00 00 66 6F 46 23 66 68 E5 21 0E 00 19 R 00 00 01 00 -T B4 16 00 00 4E 23 46 E1 A7 ED 42 28 03 +T 49 17 00 00 4E 23 46 E1 A7 ED 42 28 03 R 00 00 01 00 -T BD 16 00 00 +T 52 17 00 00 R 00 00 01 00 -T BD 16 00 00 CD 1E 0F 00 00 +T 52 17 00 00 CD 67 0F 00 00 R 00 00 01 00 00 05 01 00 -T C0 16 00 00 +T 55 17 00 00 R 00 00 01 00 -T C0 16 00 00 DD CB 0A 46 CA CE 17 00 00 +T 55 17 00 00 DD CB 0A 46 CA 3B 18 00 00 R 00 00 01 00 00 09 01 00 -T C7 16 00 00 +T 5C 17 00 00 R 00 00 01 00 -T C7 16 00 00 21 02 00 39 E5 2B 2B CD +T 5C 17 00 00 21 02 00 39 E5 2B 2B CD R 00 00 01 00 -T CF 16 00 00 87 0D 00 00 E1 21 02 00 39 4E 23 +T 64 17 00 00 21 0E 00 00 E1 21 02 00 39 4E 23 R 00 00 01 00 00 04 01 00 -T D8 16 00 00 46 2B 2B 2B CD 12 12 00 00 CD +T 6D 17 00 00 46 2B 2B 2B CD AF 0F 00 00 CD R 00 00 01 00 00 09 01 00 -T E0 16 00 00 00 00 00 00 DD 6E 08 DD 66 09 E5 -R 00 00 01 00 02 04 0C 00 -T E9 16 00 00 DD 6E 06 DD 66 07 E5 21 06 00 39 +T 75 17 00 00 00 00 00 00 DD 6E 08 DD 66 09 E5 +R 00 00 01 00 02 04 0B 00 +T 7E 17 00 00 DD 6E 06 DD 66 07 E5 21 06 00 39 R 00 00 01 00 -T F4 16 00 00 4E 23 46 C5 2B 2B 2B 4E 23 46 DD +T 89 17 00 00 4E 23 46 C5 2B 2B 2B 4E 23 46 DD R 00 00 01 00 -T FF 16 00 00 CB 0A 4E 28 07 DD 5E 10 16 00 18 +T 94 17 00 00 CB 0A 4E 28 07 DD 5E 10 16 00 18 R 00 00 01 00 -T 0A 17 00 00 03 +T 9F 17 00 00 03 R 00 00 01 00 -T 0B 17 00 00 +T A0 17 00 00 R 00 00 01 00 -T 0B 17 00 00 11 00 00 +T A0 17 00 00 11 00 00 R 00 00 01 00 -T 0E 17 00 00 +T A3 17 00 00 R 00 00 01 00 -T 0E 17 00 00 CD F2 02 00 00 E1 E1 E1 DD CB 0A +T A3 17 00 00 CD 8D 03 00 00 E1 E1 E1 DD CB 0A R 00 00 01 00 00 05 01 00 -T 17 17 00 00 7E DD 4E 08 DD 46 09 DD 5E 06 DD +T AC 17 00 00 7E DD 4E 08 DD 46 09 DD 5E 06 DD R 00 00 01 00 -T 22 17 00 00 56 07 20 07 +T B7 17 00 00 56 07 20 07 R 00 00 01 00 -T 26 17 00 00 +T BB 17 00 00 R 00 00 01 00 -T 26 17 00 00 3E AF 01 00 00 21 AF 01 00 00 18 +T BB 17 00 00 3E 5A 02 00 00 21 5A 02 00 00 18 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 2C 17 00 00 05 +T C1 17 00 00 05 R 00 00 01 00 -T 2D 17 00 00 +T C2 17 00 00 R 00 00 01 00 -T 2D 17 00 00 3E 25 01 00 00 21 25 01 00 00 +T C2 17 00 00 3E D9 01 00 00 21 D9 01 00 00 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 32 17 00 00 -R 00 00 01 00 -T 32 17 00 00 CD 00 00 00 00 -R 00 00 01 00 02 05 0C 00 -T 35 17 00 00 +T C7 17 00 00 R 00 00 01 00 -T 35 17 00 00 DD 5E 20 DD 56 21 21 0A 00 ED 4B -R 00 00 01 00 -T 40 17 00 00 00 00 00 00 09 46 23 66 68 01 -R 00 00 01 00 00 04 04 00 -T 48 17 00 00 05 00 09 4E 23 46 23 7E 69 60 CD +T C7 17 00 00 CD 95 0F 00 00 +R 00 00 01 00 00 05 01 00 +T CA 17 00 00 R 00 00 01 00 -T 53 17 00 00 2D 04 00 00 DD 6E 08 DD 66 09 A7 -R 00 00 01 00 00 04 01 00 -T 5C 17 00 00 ED 42 EB 01 02 00 CD 00 00 00 00 -R 00 00 01 00 02 0B 12 00 -T 65 17 00 00 69 60 39 46 23 66 68 19 01 07 00 +T CA 17 00 00 CD 87 0F 00 00 DD 4E 08 DD 46 09 +R 00 00 01 00 00 05 01 00 +T D3 17 00 00 09 EB 01 02 00 CD 00 00 00 00 69 +R 00 00 01 00 02 0A 11 00 +T DC 17 00 00 60 39 46 23 66 68 19 4D 44 21 R 00 00 01 00 -T 70 17 00 00 09 4D 44 21 00 00 39 5E 23 56 13 +T E6 17 00 00 00 00 39 5E 23 56 13 13 3E R 00 00 01 00 -T 7B 17 00 00 13 3E A3 00 00 00 21 A3 00 00 00 -R 00 00 01 00 29 06 01 00 00 0B 01 00 -T 81 17 00 00 CD 00 00 00 00 DD CB 0B 46 28 36 -R 00 00 01 00 02 05 0C 00 -T 8A 17 00 00 +T EF 17 00 00 5E 01 00 00 21 5E 01 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T F4 17 00 00 00 00 00 00 DD CB 0B 46 28 36 +R 00 00 01 00 02 04 0B 00 +T FC 17 00 00 R 00 00 01 00 -T 8A 17 00 00 FD 21 00 00 +T FC 17 00 00 FD 21 00 00 R 00 00 01 00 -T 8E 17 00 00 +T 00 18 00 00 R 00 00 01 00 -T 8E 17 00 00 DD 5E 20 DD 56 21 3E 00 00 00 00 -R 00 00 01 00 2B 0B 07 00 -T 96 17 00 00 21 00 00 00 00 CD 2D 04 00 00 FD -R 00 00 01 00 02 05 07 00 00 0A 01 00 -T 9D 17 00 00 E5 E1 A7 ED 42 21 06 00 30 0B +T 00 18 00 00 DD 5E 20 DD 56 21 3E 00 00 00 00 +R 00 00 01 00 2B 0B 06 00 +T 08 18 00 00 21 00 00 00 00 CD BC 04 00 00 FD +R 00 00 01 00 02 05 06 00 00 0A 01 00 +T 0F 18 00 00 E5 E1 A7 ED 42 21 06 00 30 0B R 00 00 01 00 -T A7 17 00 00 +T 19 18 00 00 R 00 00 01 00 -T A7 17 00 00 39 FD E5 C1 09 36 2A FD 23 18 DC +T 19 18 00 00 39 FD E5 C1 09 36 2A FD 23 18 DC R 00 00 01 00 -T B2 17 00 00 +T 24 18 00 00 R 00 00 01 00 -T B2 17 00 00 39 FD E5 C1 09 36 00 21 06 00 39 +T 24 18 00 00 39 FD E5 C1 09 36 00 21 06 00 39 R 00 00 01 00 -T BD 17 00 00 EB 18 06 +T 2F 18 00 00 EB 18 06 R 00 00 01 00 -T C0 17 00 00 +T 32 18 00 00 R 00 00 01 00 -T C0 17 00 00 DD 5E 20 DD 56 21 +T 32 18 00 00 DD 5E 20 DD 56 21 R 00 00 01 00 -T C6 17 00 00 +T 38 18 00 00 R 00 00 01 00 -T C6 17 00 00 3E 39 02 00 00 21 39 02 00 00 CD -R 00 00 01 00 29 05 01 00 00 0A 01 00 -T CC 17 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T CE 17 00 00 +T 38 18 00 00 CD 31 01 00 00 +R 00 00 01 00 00 05 01 00 +T 3B 18 00 00 R 00 00 01 00 -T CE 17 00 00 +T 3B 18 00 00 R 00 00 01 00 -T CE 17 00 00 21 48 00 39 F9 C3 5E 02 00 00 +T 3B 18 00 00 21 48 00 39 F9 C3 F9 02 00 00 R 00 00 01 00 00 0A 01 00 -T D6 17 00 00 +T 43 18 00 00 R 00 00 01 00 -T D6 17 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T DF 17 00 00 0E DD 66 0F E5 DD 6E 0C DD 66 0D +T 43 18 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 4C 18 00 00 0E DD 66 0F E5 DD 6E 0C DD 66 0D R 00 00 01 00 -T EA 17 00 00 E5 DD 6E 0A DD 66 0B E5 DD 5E 02 +T 57 18 00 00 E5 DD 6E 0A DD 66 0B E5 DD 5E 02 R 00 00 01 00 -T F5 17 00 00 DD 56 03 CD E0 15 00 00 F1 F1 F1 -R 00 00 01 00 00 08 01 00 -T FE 17 00 00 E5 FD E1 01 0A 00 09 CB DE 01 +T 62 18 00 00 DD 56 03 3E 93 12 00 00 21 +R 00 00 01 00 29 08 01 00 +T 68 18 00 00 93 12 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 6F 18 00 00 F1 E5 FD E1 01 0A 00 09 CB DE 01 R 00 00 01 00 -T 08 18 00 00 14 00 00 00 FD E5 D1 3E +T 7A 18 00 00 2A 00 00 00 FD E5 D1 3E R 00 00 01 00 00 04 02 00 -T 0E 18 00 00 59 06 00 00 21 59 06 00 00 CD +T 80 18 00 00 E8 06 00 00 21 E8 06 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 13 18 00 00 00 00 00 00 FD 36 1A 8A 16 00 00 -R 00 00 01 00 02 04 0C 00 09 0B 01 00 -T 19 18 00 00 FD 36 1B 8A 16 00 00 FD 36 1C +T 85 18 00 00 00 00 00 00 FD 36 1A 1F 17 00 00 +R 00 00 01 00 02 04 0B 00 09 0B 01 00 +T 8B 18 00 00 FD 36 1B 1F 17 00 00 FD 36 1C R 00 00 01 00 89 07 01 00 -T 20 18 00 00 8A 16 00 00 FD 36 17 09 16 00 00 +T 92 18 00 00 1F 17 00 00 FD 36 17 9E 16 00 00 R 00 00 01 00 29 04 01 00 09 0B 01 00 -T 25 18 00 00 FD 36 18 09 16 00 00 FD 36 19 +T 97 18 00 00 FD 36 18 9E 16 00 00 FD 36 19 R 00 00 01 00 89 07 01 00 -T 2C 18 00 00 09 16 00 00 C3 51 06 00 00 +T 9E 18 00 00 9E 16 00 00 C3 E0 06 00 00 R 00 00 01 00 29 04 01 00 00 09 01 00 -T 30 18 00 00 +T A2 18 00 00 R 00 00 01 00 -T 30 18 00 00 CD 00 00 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 0B 00 02 0A 05 00 -T 36 18 00 00 +T A2 18 00 00 CD 00 00 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 0A 00 02 0A 04 00 +T A8 18 00 00 R 00 00 01 00 -T 36 18 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 +T A8 18 00 00 C5 DD E5 F5 F5 D5 DD E1 21 02 00 R 00 00 01 00 -T 41 18 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 +T B3 18 00 00 39 AF 77 23 77 2B 2B 2B 77 23 77 R 00 00 01 00 -T 4C 18 00 00 21 0A 00 ED 4B 00 00 00 00 09 7E +T BE 18 00 00 21 12 00 ED 4B 00 00 00 00 09 7E R 00 00 01 00 00 09 04 00 -T 55 18 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 +T C7 18 00 00 23 66 6F 46 23 66 68 E5 21 0E 00 R 00 00 01 00 -T 60 18 00 00 19 4E 23 46 E1 A7 ED 42 28 03 +T D2 18 00 00 19 4E 23 46 E1 A7 ED 42 28 03 R 00 00 01 00 -T 6A 18 00 00 +T DC 18 00 00 R 00 00 01 00 -T 6A 18 00 00 CD 1E 0F 00 00 +T DC 18 00 00 CD 67 0F 00 00 R 00 00 01 00 00 05 01 00 -T 6D 18 00 00 +T DF 18 00 00 R 00 00 01 00 -T 6D 18 00 00 DD CB 0A 46 28 21 +T DF 18 00 00 DD CB 0A 46 28 21 R 00 00 01 00 -T 73 18 00 00 +T E5 18 00 00 R 00 00 01 00 -T 73 18 00 00 21 00 00 39 E5 CD 85 0D 00 00 E1 +T E5 18 00 00 21 00 00 39 E5 CD 1F 0E 00 00 E1 R 00 00 01 00 00 0A 01 00 -T 7C 18 00 00 21 00 00 39 4E 23 46 C5 23 4E 23 +T EE 18 00 00 21 00 00 39 4E 23 46 C5 23 4E 23 R 00 00 01 00 -T 87 18 00 00 46 DD E5 D1 3E 7A 10 00 00 21 +T F9 18 00 00 46 DD E5 D1 3E 17 11 00 00 21 R 00 00 01 00 29 09 01 00 -T 8E 18 00 00 7A 10 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 94 18 00 00 +T 00 19 00 00 17 11 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 06 19 00 00 R 00 00 01 00 -T 94 18 00 00 C3 06 12 00 00 +T 06 19 00 00 C3 5F 0F 00 00 R 00 00 01 00 00 05 01 00 -T 97 18 00 00 +T 09 19 00 00 R 00 00 01 00 -T 97 18 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T A0 18 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B +T 09 19 00 00 CD 00 00 00 00 00 00 FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 12 19 00 00 0C DD 66 0D E5 DD 6E 0A DD 66 0B R 00 00 01 00 -T AB 18 00 00 E5 CD B5 0F 00 00 F1 F1 E5 FD E1 -R 00 00 01 00 00 06 01 00 -T B4 18 00 00 01 20 00 09 DD 4E 0E 71 DD 46 0F +T 1D 19 00 00 E5 DD 5E 02 DD 56 03 3E +R 00 00 01 00 +T 25 19 00 00 3E 06 00 00 21 3E 06 00 00 CD +R 00 00 01 00 29 04 01 00 00 09 01 00 +T 2A 19 00 00 00 00 00 00 F1 F1 E5 FD E1 01 +R 00 00 01 00 02 04 0B 00 +T 32 19 00 00 20 00 09 DD 4E 0E 71 DD 46 0F 23 R 00 00 01 00 -T BF 18 00 00 23 70 FD 36 0A 01 FD 36 0B 00 FD +T 3D 19 00 00 70 FD 36 0A 01 FD 36 0B 00 FD 36 R 00 00 01 00 -T CA 18 00 00 36 17 30 18 00 00 FD 36 18 -R 00 00 01 00 09 06 01 00 -T D0 18 00 00 30 18 00 00 FD 36 19 30 18 00 00 +T 48 19 00 00 17 A2 18 00 00 FD 36 18 +R 00 00 01 00 09 05 01 00 +T 4D 19 00 00 A2 18 00 00 FD 36 19 A2 18 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T D5 18 00 00 FD 36 1A 36 18 00 00 FD 36 1B +T 52 19 00 00 FD 36 1A A8 18 00 00 FD 36 1B R 00 00 01 00 09 07 01 00 -T DC 18 00 00 36 18 00 00 FD 36 1C 36 18 00 00 +T 59 19 00 00 A8 18 00 00 FD 36 1C A8 18 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T E1 18 00 00 FD 36 1D 2F 12 00 00 FD 36 1E +T 5E 19 00 00 FD 36 1D 8D 12 00 00 FD 36 1E R 00 00 01 00 09 07 01 00 -T E8 18 00 00 2F 12 00 00 FD 36 1F 2F 12 00 00 +T 65 19 00 00 8D 12 00 00 FD 36 1F 8D 12 00 00 R 00 00 01 00 89 04 01 00 29 0B 01 00 -T ED 18 00 00 C3 51 06 00 00 +T 6A 19 00 00 C3 E0 06 00 00 R 00 00 01 00 00 05 01 00 -T F0 18 00 00 +T 6D 19 00 00 R 00 00 01 00 -T F0 18 00 00 CD 00 00 00 00 00 00 DD 6E 0A DD -R 00 00 01 00 02 05 0F 00 -T F9 18 00 00 66 0B E5 DD 5E 02 DD 56 03 3E +T 6D 19 00 00 CD 00 00 00 00 00 00 DD 6E 0A DD +R 00 00 01 00 02 05 0E 00 +T 76 19 00 00 66 0B E5 DD 5E 02 DD 56 03 3E R 00 00 01 00 -T 03 19 00 00 D2 0A 00 00 21 D2 0A 00 00 CD +T 80 19 00 00 61 0B 00 00 21 61 0B 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 08 19 00 00 00 00 00 00 E1 C3 00 00 00 00 -R 00 00 01 00 02 04 0C 00 02 0A 05 00 -T 0E 19 00 00 +T 85 19 00 00 00 00 00 00 E1 C3 00 00 00 00 +R 00 00 01 00 02 04 0B 00 02 0A 04 00 +T 8B 19 00 00 R 00 00 01 00 -T 0E 19 00 00 CD 00 00 00 00 CE FF FD E5 DD 36 -R 00 00 01 00 02 05 0F 00 -T 17 19 00 00 D8 00 21 00 00 E5 C5 3E +T 8B 19 00 00 CD 00 00 00 00 CE FF FD E5 DD 36 +R 00 00 01 00 02 05 0E 00 +T 94 19 00 00 D8 00 21 00 00 E5 C5 CD R 00 00 01 00 -T 1F 19 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 24 19 00 00 00 00 00 00 F1 F1 DD 75 D4 DD 74 -R 00 00 01 00 02 04 0C 00 -T 2D 19 00 00 D5 DD 36 F0 2B DD 36 F1 00 DD 36 +T 9C 19 00 00 14 01 00 00 F1 F1 DD 75 D4 DD 74 +R 00 00 01 00 00 04 01 00 +T A5 19 00 00 D5 DD 36 F0 06 DD 36 F1 00 DD 36 R 00 00 01 00 -T 38 19 00 00 F2 1A DD 36 F3 00 +T B0 19 00 00 F2 05 DD 36 F3 00 R 00 00 01 00 -T 3E 19 00 00 +T B6 19 00 00 R 00 00 01 00 -T 3E 19 00 00 DD 36 F4 00 DD 7E D8 FE 73 20 18 +T B6 19 00 00 DD 36 F4 00 DD 7E D8 FE 73 20 18 R 00 00 01 00 -T 49 19 00 00 +T C1 19 00 00 R 00 00 01 00 -T 49 19 00 00 DD 6E D9 DD 66 DA DD 75 F0 DD 74 +T C1 19 00 00 DD 6E D9 DD 66 DA DD 75 F0 DD 74 R 00 00 01 00 -T 54 19 00 00 F1 DD 6E DB DD 66 DC DD 75 F2 DD +T CC 19 00 00 F1 DD 6E DB DD 66 DC DD 75 F2 DD R 00 00 01 00 -T 5F 19 00 00 74 F3 +T D7 19 00 00 74 F3 R 00 00 01 00 -T 61 19 00 00 +T D9 19 00 00 R 00 00 01 00 -T 61 19 00 00 DD 7E D8 FE 42 28 07 DD 7E D8 FE +T D9 19 00 00 DD 7E D8 FE 42 28 07 DD 7E D8 FE R 00 00 01 00 -T 6C 19 00 00 4D 20 4F +T E4 19 00 00 4D 20 4E R 00 00 01 00 -T 6F 19 00 00 +T E7 19 00 00 R 00 00 01 00 -T 6F 19 00 00 +T E7 19 00 00 R 00 00 01 00 -T 6F 19 00 00 +T E7 19 00 00 R 00 00 01 00 -T 6F 19 00 00 DD 4E DD 06 00 C5 CD CE 1C 00 00 +T E7 19 00 00 DD 4E DD 06 00 C5 CD 3A 1D 00 00 R 00 00 01 00 00 0B 01 00 -T 78 19 00 00 D5 DD 4E DB DD 5E F0 DD 56 F1 CD +T F0 19 00 00 D5 CD 50 1D 00 00 D5 DD 6E DB 26 +R 00 00 01 00 00 06 01 00 +T F9 19 00 00 00 44 DD 4E D9 09 4D 44 11 03 01 R 00 00 01 00 -T 83 19 00 00 D7 1C 00 00 D5 DD 4E DA DD 5E F2 -R 00 00 01 00 00 04 01 00 -T 8C 19 00 00 DD 56 F3 CD 00 00 00 00 D5 DD 5E -R 00 00 01 00 02 08 03 00 -T 95 19 00 00 D9 50 DD 4E F0 DD 46 F1 CD +T 04 1A 00 00 CD 58 1D 00 00 EB D1 A7 ED 52 2B +R 00 00 01 00 00 05 01 00 +T 0D 1A 00 00 2B 2B E5 CD 64 1D 00 00 D5 CD +R 00 00 01 00 00 08 01 00 +T 15 1A 00 00 50 1D 00 00 3E 93 12 00 00 21 +R 00 00 01 00 00 04 01 00 29 09 01 00 +T 1A 1A 00 00 93 12 00 00 C1 CD 00 00 00 00 F1 +R 00 00 01 00 00 04 01 00 02 0A 0B 00 +T 21 1A 00 00 F1 F1 E5 FD E1 DD 7E D8 FE 4D 20 R 00 00 01 00 -T 9E 19 00 00 00 00 00 00 3E 35 12 00 00 21 -R 00 00 01 00 02 04 03 00 29 09 01 00 -T A3 19 00 00 35 12 00 00 C1 CD 00 00 00 00 F1 -R 00 00 01 00 00 04 01 00 02 0A 0C 00 -T AA 19 00 00 F1 F1 E5 FD E1 DD 7E D8 FE 4D 20 +T 2C 1A 00 00 04 R 00 00 01 00 -T B5 19 00 00 04 +T 2D 1A 00 00 R 00 00 01 00 -T B6 19 00 00 +T 2D 1A 00 00 FD CB 0A F6 R 00 00 01 00 -T B6 19 00 00 FD CB 0A F6 +T 31 1A 00 00 R 00 00 01 00 -T BA 19 00 00 +T 31 1A 00 00 DD 36 F4 01 R 00 00 01 00 -T BA 19 00 00 DD 36 F4 01 +T 35 1A 00 00 R 00 00 01 00 -T BE 19 00 00 +T 35 1A 00 00 DD 7E D8 FE 54 20 43 R 00 00 01 00 -T BE 19 00 00 DD 7E D8 FE 54 20 44 +T 3C 1A 00 00 R 00 00 01 00 -T C5 19 00 00 -R 00 00 01 00 -T C5 19 00 00 DD 4E DD 06 00 C5 CD CE 1C 00 00 +T 3C 1A 00 00 DD 4E DD 06 00 C5 CD 3A 1D 00 00 R 00 00 01 00 00 0B 01 00 -T CE 19 00 00 D5 DD 4E DB DD 5E F0 DD 56 F1 CD -R 00 00 01 00 -T D9 19 00 00 D7 1C 00 00 D5 DD 4E DA DD 5E F2 -R 00 00 01 00 00 04 01 00 -T E2 19 00 00 DD 56 F3 CD 00 00 00 00 D5 DD 5E -R 00 00 01 00 02 08 03 00 -T EB 19 00 00 D9 50 DD 4E F0 DD 46 F1 CD +T 45 1A 00 00 D5 CD 50 1D 00 00 D5 DD 6E DB 26 +R 00 00 01 00 00 06 01 00 +T 4E 1A 00 00 00 44 DD 4E D9 09 4D 44 11 03 01 R 00 00 01 00 -T F4 19 00 00 00 00 00 00 3E 0F 14 00 00 21 -R 00 00 01 00 02 04 03 00 29 09 01 00 -T F9 19 00 00 0F 14 00 00 C1 CD 00 00 00 00 F1 -R 00 00 01 00 00 04 01 00 02 0A 0C 00 -T 00 1A 00 00 F1 F1 E5 FD E1 DD 36 F4 01 +T 59 1A 00 00 CD 58 1D 00 00 EB D1 A7 ED 52 2B +R 00 00 01 00 00 05 01 00 +T 62 1A 00 00 2B 2B E5 CD 64 1D 00 00 D5 CD +R 00 00 01 00 00 08 01 00 +T 6A 1A 00 00 50 1D 00 00 3E 78 14 00 00 21 +R 00 00 01 00 00 04 01 00 29 09 01 00 +T 6F 1A 00 00 78 14 00 00 C1 CD 00 00 00 00 F1 +R 00 00 01 00 00 04 01 00 02 0A 0B 00 +T 76 1A 00 00 F1 F1 E5 FD E1 DD 36 F4 01 R 00 00 01 00 -T 09 1A 00 00 +T 7F 1A 00 00 R 00 00 01 00 -T 09 1A 00 00 DD 7E D8 FE 44 20 44 +T 7F 1A 00 00 DD 7E D8 FE 44 20 43 R 00 00 01 00 -T 10 1A 00 00 +T 86 1A 00 00 R 00 00 01 00 -T 10 1A 00 00 DD 4E DD 06 00 C5 CD CE 1C 00 00 +T 86 1A 00 00 DD 4E DD 06 00 C5 CD 3A 1D 00 00 R 00 00 01 00 00 0B 01 00 -T 19 1A 00 00 D5 DD 4E DB DD 5E F0 DD 56 F1 CD +T 8F 1A 00 00 D5 CD 50 1D 00 00 D5 DD 6E DB 26 +R 00 00 01 00 00 06 01 00 +T 98 1A 00 00 00 44 DD 4E D9 09 4D 44 11 03 01 R 00 00 01 00 -T 24 1A 00 00 D7 1C 00 00 D5 DD 4E DA DD 5E F2 -R 00 00 01 00 00 04 01 00 -T 2D 1A 00 00 DD 56 F3 CD 00 00 00 00 D5 DD 5E -R 00 00 01 00 02 08 03 00 -T 36 1A 00 00 D9 50 DD 4E F0 DD 46 F1 CD +T A3 1A 00 00 CD 58 1D 00 00 EB D1 A7 ED 52 2B +R 00 00 01 00 00 05 01 00 +T AC 1A 00 00 2B 2B E5 CD 64 1D 00 00 D5 CD +R 00 00 01 00 00 08 01 00 +T B4 1A 00 00 50 1D 00 00 3E 43 18 00 00 21 +R 00 00 01 00 00 04 01 00 29 09 01 00 +T B9 1A 00 00 43 18 00 00 C1 CD 00 00 00 00 F1 +R 00 00 01 00 00 04 01 00 02 0A 0B 00 +T C0 1A 00 00 F1 F1 E5 FD E1 DD 36 F4 01 R 00 00 01 00 -T 3F 1A 00 00 00 00 00 00 3E D6 17 00 00 21 -R 00 00 01 00 02 04 03 00 29 09 01 00 -T 44 1A 00 00 D6 17 00 00 C1 CD 00 00 00 00 F1 -R 00 00 01 00 00 04 01 00 02 0A 0C 00 -T 4B 1A 00 00 F1 F1 E5 FD E1 DD 36 F4 01 +T C9 1A 00 00 R 00 00 01 00 -T 54 1A 00 00 +T C9 1A 00 00 DD 7E D8 FE 4C 20 46 R 00 00 01 00 -T 54 1A 00 00 DD 7E D8 FE 4C 20 47 +T D0 1A 00 00 R 00 00 01 00 -T 5B 1A 00 00 +T D0 1A 00 00 21 0C 00 39 01 12 00 09 E5 CD R 00 00 01 00 -T 5B 1A 00 00 21 0C 00 39 01 12 00 09 E5 CD +T DA 1A 00 00 3A 1D 00 00 D5 CD 50 1D 00 00 D5 +R 00 00 01 00 00 04 01 00 00 0A 01 00 +T E1 1A 00 00 DD 6E DB 26 00 44 DD 4E D9 09 4D R 00 00 01 00 -T 65 1A 00 00 CE 1C 00 00 D5 DD 4E DB DD 5E F0 -R 00 00 01 00 00 04 01 00 -T 6E 1A 00 00 DD 56 F1 CD D7 1C 00 00 D5 DD 4E -R 00 00 01 00 00 08 01 00 -T 77 1A 00 00 DA DD 5E F2 DD 56 F3 CD +T EC 1A 00 00 44 11 03 01 CD 58 1D 00 00 EB D1 +R 00 00 01 00 00 09 01 00 +T F5 1A 00 00 A7 ED 52 2B 2B 2B E5 CD R 00 00 01 00 -T 7F 1A 00 00 00 00 00 00 D5 DD 5E D9 50 DD 4E -R 00 00 01 00 02 04 03 00 -T 88 1A 00 00 F0 DD 46 F1 CD 00 00 00 00 3E -R 00 00 01 00 02 09 03 00 -T 90 1A 00 00 97 18 00 00 21 97 18 00 00 C1 CD +T FD 1A 00 00 64 1D 00 00 D5 CD 50 1D 00 00 3E +R 00 00 01 00 00 04 01 00 00 0A 01 00 +T 04 1B 00 00 09 19 00 00 21 09 19 00 00 C1 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 96 1A 00 00 00 00 00 00 F1 F1 F1 E5 FD E1 DD -R 00 00 01 00 02 04 0C 00 -T 9F 1A 00 00 36 F4 01 +T 0A 1B 00 00 00 00 00 00 F1 F1 F1 E5 FD E1 DD +R 00 00 01 00 02 04 0B 00 +T 13 1B 00 00 36 F4 01 R 00 00 01 00 -T A2 1A 00 00 +T 16 1B 00 00 R 00 00 01 00 -T A2 1A 00 00 DD 7E D8 FE 41 20 51 +T 16 1B 00 00 DD 7E D8 FE 41 20 51 R 00 00 01 00 -T A9 1A 00 00 +T 1D 1B 00 00 R 00 00 01 00 -T A9 1A 00 00 21 26 00 DD 4E 02 DD 46 03 09 E5 +T 1D 1B 00 00 21 26 00 DD 4E 02 DD 46 03 09 E5 R 00 00 01 00 -T B4 1A 00 00 21 2B 00 39 EB E1 73 23 72 DD 6E +T 28 1B 00 00 21 2B 00 39 EB E1 73 23 72 DD 6E R 00 00 01 00 -T BF 1A 00 00 DE DD 66 DF DD 75 F8 DD 74 F9 DD +T 33 1B 00 00 DE DD 66 DF DD 75 F8 DD 74 F9 DD R 00 00 01 00 -T CA 1A 00 00 6E E0 DD 66 E1 DD 75 FA DD 74 FB +T 3E 1B 00 00 6E E0 DD 66 E1 DD 75 FA DD 74 FB R 00 00 01 00 -T D5 1A 00 00 21 16 00 39 4E 23 46 23 5E 23 56 +T 49 1B 00 00 21 16 00 39 4E 23 46 23 5E 23 56 R 00 00 01 00 -T E0 1A 00 00 DD 71 FC DD 70 FD DD 73 FE DD 72 +T 54 1B 00 00 DD 71 FC DD 70 FD DD 73 FE DD 72 R 00 00 01 00 -T EB 1A 00 00 FF DD 5E 02 DD 56 03 3E +T 5F 1B 00 00 FF DD 5E 02 DD 56 03 3E R 00 00 01 00 -T F3 1A 00 00 DE 1C 00 00 21 DE 1C 00 00 CD +T 67 1B 00 00 78 1D 00 00 21 78 1D 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T F8 1A 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T FA 1A 00 00 +T 6C 1B 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 6E 1B 00 00 R 00 00 01 00 -T FA 1A 00 00 DD 7E D8 FE 53 20 71 +T 6E 1B 00 00 DD 7E D8 FE 53 20 71 R 00 00 01 00 -T 01 1B 00 00 +T 75 1B 00 00 R 00 00 01 00 -T 01 1B 00 00 21 0C 00 39 4D 44 DD 5E D4 DD 56 +T 75 1B 00 00 21 0C 00 39 4D 44 DD 5E D4 DD 56 R 00 00 01 00 -T 0C 1B 00 00 D5 3E 16 20 00 00 21 16 20 00 00 +T 80 1B 00 00 D5 3E C7 20 00 00 21 C7 20 00 00 R 00 00 01 00 29 06 01 00 00 0B 01 00 -T 12 1B 00 00 CD 00 00 00 00 21 26 00 DD 4E 02 -R 00 00 01 00 02 05 0C 00 -T 1B 1B 00 00 DD 46 03 09 E5 11 04 00 CD +T 86 1B 00 00 CD 00 00 00 00 21 26 00 DD 4E 02 +R 00 00 01 00 02 05 0B 00 +T 8F 1B 00 00 DD 46 03 09 E5 11 04 00 CD R 00 00 01 00 -T 24 1B 00 00 C6 1C 00 00 EB E1 73 23 72 21 +T 98 1B 00 00 32 1D 00 00 EB E1 73 23 72 21 R 00 00 01 00 00 04 01 00 -T 2C 1B 00 00 26 00 09 56 DD 72 F5 23 66 DD 74 +T A0 1B 00 00 26 00 09 56 DD 72 F5 23 66 DD 74 R 00 00 01 00 -T 37 1B 00 00 F6 21 24 00 09 36 04 23 36 00 6A +T AB 1B 00 00 F6 21 24 00 09 36 04 23 36 00 6A R 00 00 01 00 -T 42 1B 00 00 DD 66 F6 23 23 E5 21 08 00 ED 4B +T B6 1B 00 00 DD 66 F6 23 23 E5 21 0C 00 ED 4B R 00 00 01 00 -T 4D 1B 00 00 00 00 00 00 09 5E 23 56 E1 73 23 +T C1 1B 00 00 00 00 00 00 09 5E 23 56 E1 73 23 R 00 00 01 00 00 04 04 00 -T 56 1B 00 00 72 21 06 00 ED 4B 00 00 00 00 09 +T CA 1B 00 00 72 21 0A 00 ED 4B 00 00 00 00 09 R 00 00 01 00 00 0A 04 00 -T 5F 1B 00 00 46 23 66 68 E5 DD 6E F5 DD 66 F6 +T D3 1B 00 00 46 23 66 68 E5 DD 6E F5 DD 66 F6 R 00 00 01 00 -T 6A 1B 00 00 C1 71 23 70 DD 36 F4 00 +T DE 1B 00 00 C1 71 23 70 DD 36 F4 00 R 00 00 01 00 -T 72 1B 00 00 +T E6 1B 00 00 R 00 00 01 00 -T 72 1B 00 00 AF DD B6 F4 CA 72 1C 00 00 +T E6 1B 00 00 AF DD B6 F4 CA E6 1C 00 00 R 00 00 01 00 00 09 01 00 -T 79 1B 00 00 +T ED 1B 00 00 R 00 00 01 00 -T 79 1B 00 00 DD 7E DE DD B6 DF 28 69 +T ED 1B 00 00 DD 7E DE DD B6 DF 28 69 R 00 00 01 00 -T 81 1B 00 00 +T F5 1B 00 00 R 00 00 01 00 -T 81 1B 00 00 FD CB 0A EE FD 36 24 0B FD 36 25 +T F5 1B 00 00 FD CB 0A EE FD 36 24 0B FD 36 25 R 00 00 01 00 -T 8C 1B 00 00 00 11 0B 00 CD C6 1C 00 00 FD 75 +T 00 1C 00 00 00 11 0B 00 CD 32 1D 00 00 FD 75 R 00 00 01 00 00 09 01 00 -T 95 1B 00 00 26 FD 74 27 FD 6E 26 DD 75 D0 FD +T 09 1C 00 00 26 FD 74 27 FD 6E 26 DD 75 D0 FD R 00 00 01 00 -T A0 1B 00 00 66 27 DD 74 D1 36 DE 1C 00 00 23 +T 14 1C 00 00 66 27 DD 74 D1 36 78 1D 00 00 23 R 00 00 01 00 09 0A 01 00 -T A8 1B 00 00 36 DE 1C 00 00 23 36 DE 1C 00 00 +T 1C 1C 00 00 36 78 1D 00 00 23 36 78 1D 00 00 R 00 00 01 00 89 05 01 00 29 0B 01 00 -T AD 1B 00 00 DD 6E D0 DD 66 D1 23 23 23 DD 4E +T 21 1C 00 00 DD 6E D0 DD 66 D1 23 23 23 DD 4E R 00 00 01 00 -T B8 1B 00 00 DE 71 DD 46 DF 23 70 21 05 00 DD +T 2C 1C 00 00 DE 71 DD 46 DF 23 70 21 05 00 DD R 00 00 01 00 -T C3 1B 00 00 4E D0 DD 46 D1 09 DD 5E E0 73 DD +T 37 1C 00 00 4E D0 DD 46 D1 09 DD 5E E0 73 DD R 00 00 01 00 -T CE 1B 00 00 56 E1 23 72 21 07 00 09 E5 21 +T 42 1C 00 00 56 E1 23 72 21 07 00 09 E5 21 R 00 00 01 00 -T D8 1B 00 00 18 00 39 5E 23 56 23 4E 23 46 E1 +T 4C 1C 00 00 18 00 39 5E 23 56 23 4E 23 46 E1 R 00 00 01 00 -T E3 1B 00 00 73 23 72 23 71 23 70 +T 57 1C 00 00 73 23 72 23 71 23 70 R 00 00 01 00 -T EA 1B 00 00 +T 5E 1C 00 00 R 00 00 01 00 -T EA 1B 00 00 DD 7E E6 DD B6 E7 28 0C +T 5E 1C 00 00 DD 7E E6 DD B6 E7 28 0C R 00 00 01 00 -T F2 1B 00 00 +T 66 1C 00 00 R 00 00 01 00 -T F2 1B 00 00 DD 6E E6 FD 75 0A DD 66 E7 FD 74 +T 66 1C 00 00 DD 6E E6 FD 75 0A DD 66 E7 FD 74 R 00 00 01 00 -T FD 1B 00 00 0B +T 71 1C 00 00 0B R 00 00 01 00 -T FE 1B 00 00 +T 72 1C 00 00 R 00 00 01 00 -T FE 1B 00 00 DD 6E E8 FD 75 0E DD 66 E9 FD 74 +T 72 1C 00 00 DD 6E E8 FD 75 0E DD 66 E9 FD 74 R 00 00 01 00 -T 09 1C 00 00 0F DD 6E EA FD 75 20 DD 7E EB E6 +T 7D 1C 00 00 0F DD 6E EA FD 75 20 DD 7E EB E6 R 00 00 01 00 -T 14 1C 00 00 0F FD 77 21 FD 7E 20 FD B6 21 20 +T 88 1C 00 00 0F FD 77 21 FD 7E 20 FD B6 21 20 R 00 00 01 00 -T 1F 1C 00 00 16 +T 93 1C 00 00 16 R 00 00 01 00 -T 20 1C 00 00 +T 94 1C 00 00 R 00 00 01 00 -T 20 1C 00 00 11 14 00 CD C6 1C 00 00 FD 75 20 +T 94 1C 00 00 11 14 00 CD 32 1D 00 00 FD 75 20 R 00 00 01 00 00 08 01 00 -T 29 1C 00 00 FD 74 21 FD 6E 20 FD 66 21 36 00 +T 9D 1C 00 00 FD 74 21 FD 6E 20 FD 66 21 36 00 R 00 00 01 00 -T 34 1C 00 00 18 04 +T A8 1C 00 00 18 04 R 00 00 01 00 -T 36 1C 00 00 +T AA 1C 00 00 R 00 00 01 00 -T 36 1C 00 00 FD CB 0B F6 +T AA 1C 00 00 FD CB 0B F6 R 00 00 01 00 -T 3A 1C 00 00 +T AE 1C 00 00 R 00 00 01 00 -T 3A 1C 00 00 DD 7E EB 2E 00 4D E6 F0 47 26 10 +T AE 1C 00 00 DD 7E EB 2E 00 4D E6 F0 47 26 10 R 00 00 01 00 -T 45 1C 00 00 ED 42 30 10 +T B9 1C 00 00 ED 42 30 10 R 00 00 01 00 -T 49 1C 00 00 +T BD 1C 00 00 R 00 00 01 00 -T 49 1C 00 00 DD 6E EA DD 7E EB E6 0F 67 23 FD +T BD 1C 00 00 DD 6E EA DD 7E EB E6 0F 67 23 FD R 00 00 01 00 -T 54 1C 00 00 75 22 FD 74 23 +T C8 1C 00 00 75 22 FD 74 23 R 00 00 01 00 -T 59 1C 00 00 +T CD 1C 00 00 R 00 00 01 00 -T 59 1C 00 00 FD E5 DD 5E 02 4B DD 56 03 42 21 +T CD 1C 00 00 FD E5 DD 5E 02 4B DD 56 03 42 21 R 00 00 01 00 -T 64 1C 00 00 1D 00 09 4E 23 46 23 7E 69 60 C1 +T D8 1C 00 00 1D 00 09 4E 23 46 23 7E 69 60 C1 R 00 00 01 00 -T 6F 1C 00 00 CD 00 00 00 00 -R 00 00 01 00 02 05 0C 00 -T 72 1C 00 00 +T E3 1C 00 00 CD 00 00 00 00 +R 00 00 01 00 02 05 0B 00 +T E6 1C 00 00 R 00 00 01 00 -T 72 1C 00 00 21 14 00 E5 2E 0E 39 4D 44 DD 5E +T E6 1C 00 00 21 14 00 E5 2E 0E 39 4D 44 DD 5E R 00 00 01 00 -T 7D 1C 00 00 D4 DD 56 D5 CD BE 1C 00 00 F1 3E -R 00 00 01 00 00 09 01 00 -T 86 1C 00 00 14 AD B4 CA 3E 19 00 00 +T F1 1C 00 00 D4 DD 56 D5 3E 00 00 00 00 21 +R 00 00 01 00 2B 09 14 00 +T F8 1C 00 00 00 00 00 00 CD 00 00 00 00 F1 3E +R 00 00 01 00 02 04 14 00 02 09 0B 00 +T FF 1C 00 00 14 AD B4 CA B6 19 00 00 R 00 00 01 00 00 08 01 00 -T 8C 1C 00 00 -R 00 00 01 00 -T 8C 1C 00 00 DD 5E D4 DD 56 D5 3E 00 00 00 00 -R 00 00 01 00 2B 0B 06 00 -T 94 1C 00 00 21 00 00 00 00 CD 00 00 00 00 DD -R 00 00 01 00 02 05 06 00 02 0A 0C 00 -T 9B 1C 00 00 5E 02 DD 56 03 3E 1F 0A 00 00 21 -R 00 00 01 00 29 0A 01 00 -T A3 1C 00 00 1F 0A 00 00 CD 00 00 00 00 DD 5E -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T AA 1C 00 00 02 4B DD 56 03 42 21 1A 00 09 4E +T 05 1D 00 00 R 00 00 01 00 -T B5 1C 00 00 23 46 23 7E 69 60 C3 1F 11 00 00 +T 05 1D 00 00 DD 5E D4 DD 56 D5 CD 56 01 00 00 R 00 00 01 00 00 0B 01 00 -T BE 1C 00 00 +T 0E 1D 00 00 DD 5E 02 DD 56 03 3E AE 0A 00 00 +R 00 00 01 00 29 0B 01 00 +T 16 1D 00 00 21 AE 0A 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 1D 1D 00 00 5E 02 4B DD 56 03 42 21 1A 00 09 +R 00 00 01 00 +T 28 1D 00 00 4E 23 46 23 7E 69 60 C3 +R 00 00 01 00 +T 30 1D 00 00 99 11 00 00 +R 00 00 01 00 00 04 01 00 +T 32 1D 00 00 R 00 00 01 00 -T BE 1C 00 00 3E 00 00 00 00 21 00 00 00 00 C3 -R 00 00 01 00 2B 05 16 00 02 0A 16 00 -T C4 1C 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T C6 1C 00 00 +T 32 1D 00 00 3E 00 00 00 00 21 00 00 00 00 C3 +R 00 00 01 00 2B 05 13 00 02 0A 13 00 +T 38 1D 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T 3A 1D 00 00 R 00 00 01 00 -T C6 1C 00 00 3E 00 00 00 00 21 00 00 00 00 C3 -R 00 00 01 00 2B 05 15 00 02 0A 15 00 -T CC 1C 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T CE 1C 00 00 +T 3A 1D 00 00 DD 4E DC 11 83 00 CD 00 00 00 00 +R 00 00 01 00 02 0B 03 00 +T 43 1D 00 00 DD 4E F2 DD 46 F3 CD 00 00 00 00 +R 00 00 01 00 02 0B 11 00 +T 4C 1D 00 00 1B 1B 1B C9 R 00 00 01 00 -T CE 1C 00 00 DD 4E DC DD 5E F2 DD 56 F3 +T 50 1D 00 00 R 00 00 01 00 -T D7 1C 00 00 +T 50 1D 00 00 DD 5E D9 16 00 01 03 01 R 00 00 01 00 -T D7 1C 00 00 CD 00 00 00 00 1B 1B 1B C9 +T 58 1D 00 00 +R 00 00 01 00 +T 58 1D 00 00 CD 00 00 00 00 DD 4E F0 DD 46 F1 R 00 00 01 00 02 05 03 00 -T DE 1C 00 00 +T 61 1D 00 00 C3 00 00 00 00 +R 00 00 01 00 02 05 11 00 +T 64 1D 00 00 R 00 00 01 00 -T DE 1C 00 00 CD 00 00 00 00 EA FF FD E5 DD 6E -R 00 00 01 00 02 05 0F 00 -T E7 1C 00 00 02 DD 66 03 E5 FD E1 21 06 00 39 +T 64 1D 00 00 DD 5E DA 16 00 01 83 00 CD R 00 00 01 00 -T F2 1C 00 00 EB 21 26 00 00 00 01 0E 00 ED B0 -R 00 00 01 00 00 06 03 00 -T FB 1C 00 00 FD 6E 26 DD 75 EA FD 66 27 DD 74 +T 6D 1D 00 00 00 00 00 00 DD 4E F2 DD 46 F3 C3 +R 00 00 01 00 02 04 03 00 +T 76 1D 00 00 00 00 00 00 +R 00 00 01 00 02 04 11 00 +T 78 1D 00 00 R 00 00 01 00 -T 06 1D 00 00 EB 23 23 23 3E 01 AE 23 B6 20 08 +T 78 1D 00 00 CD 00 00 00 00 F8 FF FD E5 DD 6E +R 00 00 01 00 02 05 0E 00 +T 81 1D 00 00 02 DD 66 03 E5 FD E1 FD 6E 26 DD R 00 00 01 00 -T 11 1D 00 00 +T 8C 1D 00 00 75 F8 FD 66 27 DD 74 F9 23 23 23 R 00 00 01 00 -T 11 1D 00 00 C5 01 01 04 CD 76 0D 00 00 E1 -R 00 00 01 00 00 09 01 00 -T 19 1D 00 00 +T 97 1D 00 00 3E 01 AE 23 B6 20 0A R 00 00 01 00 -T 19 1D 00 00 DD 6E EA DD 66 EB 23 23 23 46 23 +T 9E 1D 00 00 R 00 00 01 00 -T 24 1D 00 00 66 68 CB 85 3E 02 AD B4 C2 +T 9E 1D 00 00 6F 67 E5 01 01 05 CD 10 0E 00 00 +R 00 00 01 00 00 0B 01 00 +T A7 1D 00 00 E1 R 00 00 01 00 -T 2D 1D 00 00 49 1E 00 00 -R 00 00 01 00 00 04 01 00 -T 2F 1D 00 00 +T A8 1D 00 00 R 00 00 01 00 -T 2F 1D 00 00 6F 67 E5 E5 01 01 00 FD 5E 11 FD +T A8 1D 00 00 DD 6E F8 DD 66 F9 23 23 23 46 23 R 00 00 01 00 -T 3A 1D 00 00 56 12 3E B6 09 00 00 21 -R 00 00 01 00 29 07 01 00 -T 3F 1D 00 00 B6 09 00 00 CD 00 00 00 00 E1 E1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 46 1D 00 00 FD 6E 11 FD 66 12 01 08 00 09 4E +T B3 1D 00 00 66 68 CB 85 3E 02 AD B4 C2 R 00 00 01 00 -T 51 1D 00 00 23 46 C5 FD 6E 11 FD 66 12 01 +T BC 1D 00 00 A7 1E 00 00 +R 00 00 01 00 00 04 01 00 +T BE 1D 00 00 R 00 00 01 00 -T 5B 1D 00 00 06 00 09 4E 23 46 C5 01 00 00 59 +T BE 1D 00 00 21 05 00 DD 4E F8 DD 46 F9 09 56 R 00 00 01 00 -T 66 1D 00 00 50 3E 71 0F 00 00 21 71 0F 00 00 -R 00 00 01 00 29 06 01 00 00 0B 01 00 -T 6C 1D 00 00 CD 00 00 00 00 F1 F1 DD 75 EC DD -R 00 00 01 00 02 05 0C 00 -T 75 1D 00 00 74 ED 01 0A 00 09 36 03 23 70 DD +T C9 1D 00 00 23 7E 6A E6 0F 67 29 E5 21 0C 00 R 00 00 01 00 -T 80 1D 00 00 6E EA DD 66 EB 23 23 23 CB 46 28 +T D4 1D 00 00 ED 5B 00 00 00 00 19 5E 23 56 E1 +R 00 00 01 00 00 06 04 00 +T DD 1D 00 00 19 2B 2B 56 DD 72 FC 23 66 DD 74 R 00 00 01 00 -T 8B 1D 00 00 0C +T E8 1D 00 00 FD 21 00 00 E5 E5 01 01 00 FD 5E R 00 00 01 00 -T 8C 1D 00 00 +T F3 1D 00 00 11 FD 56 12 3E 45 0A 00 00 21 +R 00 00 01 00 29 09 01 00 +T FA 1D 00 00 45 0A 00 00 CD 00 00 00 00 E1 E1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 01 1E 00 00 FD 6E 11 FD 66 12 01 08 00 09 4E R 00 00 01 00 -T 8C 1D 00 00 69 60 DD 4E EC DD 46 ED 09 23 CB +T 0C 1E 00 00 23 46 C5 FD 6E 11 FD 66 12 01 R 00 00 01 00 -T 97 1D 00 00 EE +T 16 1E 00 00 06 00 09 4E 23 46 C5 01 00 00 59 R 00 00 01 00 -T 98 1D 00 00 +T 21 1E 00 00 50 3E 11 10 00 00 21 11 10 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 27 1E 00 00 CD 00 00 00 00 F1 F1 DD 75 FA DD +R 00 00 01 00 02 05 0B 00 +T 30 1E 00 00 74 FB 01 0A 00 09 36 03 23 70 DD R 00 00 01 00 -T 98 1D 00 00 21 17 00 DD 4E EC DD 46 ED 09 36 +T 3B 1E 00 00 6E F8 DD 66 F9 23 23 23 CB 46 28 R 00 00 01 00 -T A3 1D 00 00 F0 18 00 00 23 36 F0 18 00 00 23 -R 00 00 01 00 09 04 01 00 89 0A 01 00 -T A8 1D 00 00 36 F0 18 00 00 21 1A 00 09 36 -R 00 00 01 00 29 05 01 00 -T AF 1D 00 00 2C 0F 00 00 23 36 2C 0F 00 00 23 -R 00 00 01 00 09 04 01 00 89 0A 01 00 -T B4 1D 00 00 36 2C 0F 00 00 21 07 00 DD 5E EA -R 00 00 01 00 29 05 01 00 -T BC 1D 00 00 DD 56 EB 19 5E EB DD 75 F3 21 +T 46 1E 00 00 0C R 00 00 01 00 -T C6 1D 00 00 07 00 DD 4E EA DD 46 EB 09 5E 23 +T 47 1E 00 00 R 00 00 01 00 -T D1 1D 00 00 56 23 4E 23 46 EB 3E 08 CD +T 47 1E 00 00 69 60 DD 4E FA DD 46 FB 09 23 CB R 00 00 01 00 -T DA 1D 00 00 00 00 00 00 DD 75 F4 21 07 00 DD -R 00 00 01 00 02 04 14 00 -T E3 1D 00 00 4E EA DD 46 EB 09 5E 23 56 23 4E +T 52 1E 00 00 EE R 00 00 01 00 -T EE 1D 00 00 23 46 EB 3E 10 CD 00 00 00 00 DD -R 00 00 01 00 02 0A 14 00 -T F7 1D 00 00 75 F5 21 07 00 DD 4E EA DD 46 EB +T 53 1E 00 00 R 00 00 01 00 -T 02 1E 00 00 09 5E 23 56 23 4E 23 46 EB 3E 18 +T 53 1E 00 00 21 17 00 DD 4E FA DD 46 FB 09 36 R 00 00 01 00 -T 0D 1E 00 00 CD 00 00 00 00 DD 75 F6 21 06 00 -R 00 00 01 00 02 05 14 00 -T 16 1E 00 00 39 4D 44 DD 5E EC DD 56 ED 3E +T 5E 1E 00 00 6D 19 00 00 23 36 6D 19 00 00 23 +R 00 00 01 00 09 04 01 00 89 0A 01 00 +T 63 1E 00 00 36 6D 19 00 00 21 1A 00 09 36 +R 00 00 01 00 29 05 01 00 +T 6A 1E 00 00 CC 0F 00 00 23 36 CC 0F 00 00 23 +R 00 00 01 00 09 04 01 00 89 0A 01 00 +T 6F 1E 00 00 36 CC 0F 00 00 DD 4E FC DD 46 FD +R 00 00 01 00 29 05 01 00 +T 77 1E 00 00 DD 5E FA DD 56 FB 3E 8B 19 00 00 +R 00 00 01 00 29 0B 01 00 +T 7F 1E 00 00 21 8B 19 00 00 CD 00 00 00 00 DD +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T 86 1E 00 00 4E FA DD 46 FB C5 FD 5E 11 FD 56 R 00 00 01 00 -T 20 1E 00 00 0E 19 00 00 21 0E 19 00 00 CD -R 00 00 01 00 29 04 01 00 00 09 01 00 -T 25 1E 00 00 00 00 00 00 DD 4E EC DD 46 ED C5 -R 00 00 01 00 02 04 0C 00 -T 2E 1E 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +T 91 1E 00 00 12 FD 6E 11 FD 66 12 01 1D 00 09 R 00 00 01 00 -T 39 1E 00 00 12 01 1D 00 09 4E 23 46 23 7E 69 +T 9C 1E 00 00 4E 23 46 23 7E 69 60 C1 CD R 00 00 01 00 -T 44 1E 00 00 60 C1 CD 00 00 00 00 -R 00 00 01 00 02 07 0C 00 -T 49 1E 00 00 +T A5 1E 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T A7 1E 00 00 R 00 00 01 00 -T 49 1E 00 00 DD 6E EA DD 66 EB 23 23 23 3E 04 +T A7 1E 00 00 DD 6E F8 DD 66 F9 23 23 23 3E 04 R 00 00 01 00 -T 54 1E 00 00 AE 23 B6 C2 E7 1F 00 00 +T B2 1E 00 00 AE 23 B6 C2 45 20 00 00 R 00 00 01 00 00 08 01 00 -T 5A 1E 00 00 +T B8 1E 00 00 R 00 00 01 00 -T 5A 1E 00 00 21 01 00 E5 FD 6E 11 FD 66 12 01 +T B8 1E 00 00 21 01 00 E5 FD 6E 11 FD 66 12 01 R 00 00 01 00 -T 65 1E 00 00 08 00 09 46 23 66 68 01 F6 FF 09 +T C3 1E 00 00 08 00 09 46 23 66 68 01 F6 FF 09 R 00 00 01 00 -T 70 1E 00 00 E5 FD 6E 11 FD 66 12 01 06 00 09 +T CE 1E 00 00 E5 FD 6E 11 FD 66 12 01 06 00 09 R 00 00 01 00 -T 7B 1E 00 00 46 23 66 68 01 F6 FF 09 E5 01 +T D9 1E 00 00 46 23 66 68 01 F6 FF 09 E5 01 R 00 00 01 00 -T 85 1E 00 00 05 00 59 50 3E 1A 15 00 00 21 +T E3 1E 00 00 05 00 59 50 3E 8E 15 00 00 21 R 00 00 01 00 29 09 01 00 -T 8C 1E 00 00 1A 15 00 00 CD 00 00 00 00 F1 F1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 93 1E 00 00 F1 DD 75 EC DD 74 ED 01 0A 00 09 +T EA 1E 00 00 8E 15 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T F1 1E 00 00 F1 DD 75 FA DD 74 FB 01 0A 00 09 R 00 00 01 00 -T 9E 1E 00 00 36 03 23 36 10 21 0E 00 DD 4E EC +T FC 1E 00 00 36 03 23 36 10 21 0E 00 DD 4E FA R 00 00 01 00 -T A9 1E 00 00 DD 46 ED 09 36 30 23 36 00 AF DD +T 07 1F 00 00 DD 46 FB 09 36 30 23 36 00 AF DD R 00 00 01 00 -T B4 1E 00 00 77 FE DD 77 FF +T 12 1F 00 00 77 FE DD 77 FF R 00 00 01 00 -T B9 1E 00 00 +T 17 1F 00 00 R 00 00 01 00 -T B9 1E 00 00 21 05 00 DD 4E EA DD 46 EB 09 5E +T 17 1F 00 00 21 05 00 DD 4E F8 DD 46 F9 09 5E R 00 00 01 00 -T C4 1E 00 00 23 56 06 0C CD 00 00 00 00 4B 42 -R 00 00 01 00 02 09 17 00 -T CD 1E 00 00 DD 6E FE DD 66 FF CD 00 00 00 00 -R 00 00 01 00 02 0B 10 00 -T D6 1E 00 00 30 04 3E 01 18 01 +T 22 1F 00 00 23 56 06 0C CD 00 00 00 00 4B 42 +R 00 00 01 00 02 09 15 00 +T 2B 1F 00 00 DD 6E FE DD 66 FF CD 00 00 00 00 +R 00 00 01 00 02 0B 0F 00 +T 34 1F 00 00 30 04 3E 01 18 01 R 00 00 01 00 -T DC 1E 00 00 +T 3A 1F 00 00 R 00 00 01 00 -T DC 1E 00 00 AF +T 3A 1F 00 00 AF R 00 00 01 00 -T DD 1E 00 00 +T 3B 1F 00 00 R 00 00 01 00 -T DD 1E 00 00 E6 0F CA 7B 1F 00 00 +T 3B 1F 00 00 E6 0F CA D9 1F 00 00 R 00 00 01 00 00 07 01 00 -T E2 1E 00 00 +T 40 1F 00 00 R 00 00 01 00 -T E2 1E 00 00 21 05 00 DD 4E EA DD 46 EB 09 46 +T 40 1F 00 00 21 05 00 DD 4E F8 DD 46 F9 09 46 R 00 00 01 00 -T ED 1E 00 00 23 7E 68 E6 0F 67 DD 4E FE DD 46 +T 4B 1F 00 00 23 7E 68 E6 0F 67 DD 4E FE DD 46 R 00 00 01 00 -T F8 1E 00 00 FF 09 29 E5 21 08 00 ED 5B +T 56 1F 00 00 FF 09 29 E5 21 0C 00 ED 5B R 00 00 01 00 -T 01 1F 00 00 00 00 00 00 19 5E 23 56 E1 19 2B +T 5F 1F 00 00 00 00 00 00 19 5E 23 56 E1 19 2B R 00 00 01 00 00 04 04 00 -T 0A 1F 00 00 2B 5E 23 56 D5 21 10 00 E5 2E 06 +T 68 1F 00 00 2B 5E 23 56 D5 21 10 00 E5 2E 06 R 00 00 01 00 -T 15 1F 00 00 DD 5E EC DD 56 ED 19 6E 26 00 01 +T 73 1F 00 00 DD 5E FA DD 56 FB 19 6E 26 00 01 R 00 00 01 00 -T 20 1F 00 00 F0 FF 09 E5 DD 6E FE DD 66 FF 29 +T 7E 1F 00 00 F0 FF 09 E5 DD 6E FE DD 66 FF 29 R 00 00 01 00 -T 2B 1F 00 00 29 4D 44 29 09 01 14 00 09 4D 44 +T 89 1F 00 00 29 4D 44 29 09 01 14 00 09 4D 44 R 00 00 01 00 -T 36 1F 00 00 11 08 00 3E 97 18 00 00 21 +T 94 1F 00 00 11 08 00 3E 09 19 00 00 21 R 00 00 01 00 29 08 01 00 -T 3C 1F 00 00 97 18 00 00 CD 00 00 00 00 F1 F1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 43 1F 00 00 F1 DD 75 FC DD 74 FD 01 0E 00 09 +T 9A 1F 00 00 09 19 00 00 CD 00 00 00 00 F1 F1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T A1 1F 00 00 F1 DD 75 FC DD 74 FD 01 0E 00 09 R 00 00 01 00 -T 4E 1F 00 00 36 30 23 70 DD 4E FC DD 46 FD C5 +T AC 1F 00 00 36 30 23 70 DD 4E FC DD 46 FD C5 R 00 00 01 00 -T 59 1F 00 00 DD 5E EC 4B DD 56 ED 42 21 1D 00 +T B7 1F 00 00 DD 5E FA 4B DD 56 FB 42 21 1D 00 R 00 00 01 00 -T 64 1F 00 00 09 4E 23 46 23 7E 69 60 C1 CD +T C2 1F 00 00 09 4E 23 46 23 7E 69 60 C1 CD R 00 00 01 00 -T 6E 1F 00 00 00 00 00 00 DD 34 FE 20 03 DD 34 -R 00 00 01 00 02 04 0C 00 -T 77 1F 00 00 FF +T CC 1F 00 00 00 00 00 00 DD 34 FE 20 03 DD 34 +R 00 00 01 00 02 04 0B 00 +T D5 1F 00 00 FF R 00 00 01 00 -T 78 1F 00 00 +T D6 1F 00 00 R 00 00 01 00 -T 78 1F 00 00 C3 B9 1E 00 00 +T D6 1F 00 00 C3 17 1F 00 00 R 00 00 01 00 00 05 01 00 -T 7B 1F 00 00 +T D9 1F 00 00 R 00 00 01 00 -T 7B 1F 00 00 01 15 00 00 00 DD 5E EC DD 56 ED +T D9 1F 00 00 01 2B 00 00 00 DD 5E FA DD 56 FB R 00 00 01 00 00 05 02 00 -T 84 1F 00 00 3E 59 06 00 00 21 59 06 00 00 CD +T E2 1F 00 00 3E E8 06 00 00 21 E8 06 00 00 CD R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 8A 1F 00 00 00 00 00 00 01 FF 00 CD -R 00 00 01 00 02 04 0C 00 -T 90 1F 00 00 08 20 00 00 01 0E 00 09 36 30 23 +T E8 1F 00 00 00 00 00 00 01 FF 00 CD +R 00 00 01 00 02 04 0B 00 +T EE 1F 00 00 B9 20 00 00 01 0E 00 09 36 30 23 R 00 00 01 00 00 04 01 00 -T 99 1F 00 00 70 0E FE CD 08 20 00 00 EB CD +T F7 1F 00 00 70 0E FE CD B9 20 00 00 EB CD R 00 00 01 00 00 08 01 00 -T A1 1F 00 00 8F 09 00 00 DD 4E EC DD 46 ED C5 +T FF 1F 00 00 1E 0A 00 00 DD 4E FA DD 46 FB C5 R 00 00 01 00 00 04 01 00 -T AA 1F 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +T 08 20 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +R 00 00 01 00 +T 13 20 00 00 12 01 1D 00 09 4E 23 46 23 7E 69 +R 00 00 01 00 +T 1E 20 00 00 60 C1 CD 00 00 00 00 21 00 00 E5 +R 00 00 01 00 02 07 0B 00 +T 27 20 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +R 00 00 01 00 +T 32 20 00 00 12 01 17 00 09 4E 23 46 23 7E 69 +R 00 00 01 00 +T 3D 20 00 00 60 01 03 01 CD 00 00 00 00 E1 +R 00 00 01 00 02 09 0B 00 +T 45 20 00 00 +R 00 00 01 00 +T 45 20 00 00 DD 6E F8 DD 66 F9 23 23 23 3E 05 +R 00 00 01 00 +T 50 20 00 00 AE 23 B6 20 1D +R 00 00 01 00 +T 55 20 00 00 +R 00 00 01 00 +T 55 20 00 00 21 05 00 DD 4E F8 DD 46 F9 09 5E +R 00 00 01 00 +T 60 20 00 00 23 56 D5 21 07 00 09 4D 44 2A +R 00 00 01 00 +T 6A 20 00 00 00 00 00 00 23 23 CD 26 01 00 00 +R 00 00 01 00 00 04 04 00 00 0B 01 00 +T 71 20 00 00 F1 +R 00 00 01 00 +T 72 20 00 00 R 00 00 01 00 -T B5 1F 00 00 12 01 1D 00 09 4E 23 46 23 7E 69 +T 72 20 00 00 DD 6E F8 DD 66 F9 23 23 23 3E 06 R 00 00 01 00 -T C0 1F 00 00 60 C1 CD 00 00 00 00 21 00 00 E5 -R 00 00 01 00 02 07 0C 00 -T C9 1F 00 00 FD 5E 11 FD 56 12 FD 6E 11 FD 66 +T 7D 20 00 00 AE 23 B6 20 16 R 00 00 01 00 -T D4 1F 00 00 12 01 17 00 09 4E 23 46 23 7E 69 +T 82 20 00 00 R 00 00 01 00 -T DF 1F 00 00 60 01 03 01 CD 00 00 00 00 E1 -R 00 00 01 00 02 09 0C 00 -T E7 1F 00 00 +T 82 20 00 00 21 05 00 DD 4E F8 DD 46 F9 09 5E R 00 00 01 00 -T E7 1F 00 00 21 10 00 ED 4B 00 00 00 00 09 7E +T 8D 20 00 00 23 56 D5 21 07 00 09 CD +R 00 00 01 00 +T 95 20 00 00 1C 01 00 00 F1 +R 00 00 01 00 00 04 01 00 +T 98 20 00 00 +R 00 00 01 00 +T 98 20 00 00 21 18 00 ED 4B 00 00 00 00 09 7E R 00 00 01 00 00 09 04 00 -T F0 1F 00 00 23 B6 23 B6 28 0D +T A1 20 00 00 23 B6 23 B6 28 0D R 00 00 01 00 -T F6 1F 00 00 +T A7 20 00 00 R 00 00 01 00 -T F6 1F 00 00 FD E5 D1 21 10 00 ED 4B +T A7 20 00 00 FD E5 D1 21 18 00 ED 4B R 00 00 01 00 -T FE 1F 00 00 00 00 00 00 CD 94 0D 00 00 +T AF 20 00 00 00 00 00 00 CD FF 0D 00 00 R 00 00 01 00 00 04 04 00 00 09 01 00 -T 03 20 00 00 +T B4 20 00 00 R 00 00 01 00 -T 03 20 00 00 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 07 05 00 -T 08 20 00 00 +T B4 20 00 00 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 07 04 00 +T B9 20 00 00 R 00 00 01 00 -T 08 20 00 00 DD 5E EC DD 56 ED 3E 8E 07 00 00 +T B9 20 00 00 DD 5E FA DD 56 FB 3E 1D 08 00 00 R 00 00 01 00 29 0B 01 00 -T 10 20 00 00 21 8E 07 00 00 C3 00 00 00 00 -R 00 00 01 00 00 05 01 00 02 0A 0C 00 -T 16 20 00 00 +T C1 20 00 00 21 1D 08 00 00 C3 00 00 00 00 +R 00 00 01 00 00 05 01 00 02 0A 0B 00 +T C7 20 00 00 R 00 00 01 00 -T 16 20 00 00 CD 00 00 00 00 F8 FF FD E5 03 0A -R 00 00 01 00 02 05 0F 00 -T 1F 20 00 00 DD 77 FE 03 0A DD 77 FF 03 69 60 +T C7 20 00 00 CD 00 00 00 00 F8 FF FD E5 03 0A +R 00 00 01 00 02 05 0E 00 +T D0 20 00 00 DD 77 FE 03 0A DD 77 FF 03 69 60 R 00 00 01 00 -T 2A 20 00 00 4E DD 71 FC 23 46 DD 70 FD DD 6E +T DB 20 00 00 4E DD 71 FC 23 46 DD 70 FD DD 6E R 00 00 01 00 -T 35 20 00 00 FE 67 29 EB CD C6 1C 00 00 DD 75 +T E6 20 00 00 FE 67 29 EB CD 32 1D 00 00 DD 75 R 00 00 01 00 00 09 01 00 -T 3E 20 00 00 FA DD 74 FB 59 50 CD CE 04 00 00 +T EF 20 00 00 FA DD 74 FB 59 50 CD 5D 05 00 00 R 00 00 01 00 00 0B 01 00 -T 47 20 00 00 C5 4D 44 DD 5E 02 DD 56 03 CD +T F8 20 00 00 C5 4D 44 DD 5E 02 DD 56 03 3E R 00 00 01 00 -T 51 20 00 00 BE 1C 00 00 F1 11 00 00 AF DD 77 -R 00 00 01 00 00 04 01 00 -T 5A 20 00 00 F8 DD 77 F9 +T 02 21 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 14 00 02 09 14 00 +T 07 21 00 00 00 00 00 00 F1 11 00 00 AF DD 77 +R 00 00 01 00 02 04 0B 00 +T 10 21 00 00 F8 DD 77 F9 R 00 00 01 00 -T 5E 20 00 00 +T 14 21 00 00 R 00 00 01 00 -T 5E 20 00 00 DD 4E FC DD 46 FD 6B 62 CD +T 14 21 00 00 DD 4E FC DD 46 FD 6B 62 CD R 00 00 01 00 -T 67 20 00 00 00 00 00 00 30 35 CD DC 20 00 00 -R 00 00 01 00 02 04 10 00 00 0B 01 00 -T 6E 20 00 00 30 30 +T 1D 21 00 00 00 00 00 00 30 35 CD 92 21 00 00 +R 00 00 01 00 02 04 0F 00 00 0B 01 00 +T 24 21 00 00 30 30 R 00 00 01 00 -T 70 20 00 00 +T 26 21 00 00 R 00 00 01 00 -T 70 20 00 00 +T 26 21 00 00 R 00 00 01 00 -T 70 20 00 00 +T 26 21 00 00 R 00 00 01 00 -T 70 20 00 00 23 DD 75 F8 DD 74 F9 2B 29 DD 4E +T 26 21 00 00 23 DD 75 F8 DD 74 F9 2B 29 DD 4E R 00 00 01 00 -T 7B 20 00 00 FA DD 46 FB 09 E5 FD E5 E1 19 4D +T 31 21 00 00 FA DD 46 FB 09 E5 FD E5 E1 19 4D R 00 00 01 00 -T 86 20 00 00 44 E1 71 23 70 +T 3C 21 00 00 44 E1 71 23 70 R 00 00 01 00 -T 8B 20 00 00 +T 41 21 00 00 R 00 00 01 00 -T 8B 20 00 00 FD E5 E1 19 7E B7 28 03 +T 41 21 00 00 FD E5 E1 19 7E B7 28 03 R 00 00 01 00 -T 93 20 00 00 +T 49 21 00 00 R 00 00 01 00 -T 93 20 00 00 13 18 F5 +T 49 21 00 00 13 18 F5 R 00 00 01 00 -T 96 20 00 00 +T 4C 21 00 00 R 00 00 01 00 -T 96 20 00 00 6B 62 13 FD E5 C1 09 77 18 BE +T 4C 21 00 00 6B 62 13 FD E5 C1 09 77 18 BE R 00 00 01 00 -T A0 20 00 00 +T 56 21 00 00 R 00 00 01 00 -T A0 20 00 00 CD DC 20 00 00 30 13 +T 56 21 00 00 CD 92 21 00 00 30 13 R 00 00 01 00 00 05 01 00 -T A5 20 00 00 +T 5B 21 00 00 R 00 00 01 00 -T A5 20 00 00 29 DD 4E FA DD 46 FB 09 E5 FD E5 +T 5B 21 00 00 29 DD 4E FA DD 46 FB 09 E5 FD E5 R 00 00 01 00 -T B0 20 00 00 E1 19 4D 44 E1 71 23 70 +T 66 21 00 00 E1 19 4D 44 E1 71 23 70 R 00 00 01 00 -T B8 20 00 00 +T 6E 21 00 00 R 00 00 01 00 -T B8 20 00 00 21 06 00 ED 4B 00 00 00 00 09 FD +T 6E 21 00 00 21 0A 00 ED 4B 00 00 00 00 09 FD R 00 00 01 00 00 09 04 00 -T C1 20 00 00 E5 C1 71 23 70 21 08 00 ED 4B +T 77 21 00 00 E5 C1 71 23 70 21 0C 00 ED 4B R 00 00 01 00 -T CB 20 00 00 00 00 00 00 09 DD 4E FA 71 DD 46 +T 81 21 00 00 00 00 00 00 09 DD 4E FA 71 DD 46 R 00 00 01 00 00 04 04 00 -T D4 20 00 00 FB 23 70 FD E1 C3 00 00 00 00 -R 00 00 01 00 02 0A 05 00 -T DC 20 00 00 +T 8A 21 00 00 FB 23 70 FD E1 C3 00 00 00 00 +R 00 00 01 00 02 0A 04 00 +T 92 21 00 00 R 00 00 01 00 -T DC 20 00 00 DD 4E FE DD 46 FF DD 6E F8 DD 66 +T 92 21 00 00 DD 4E FE DD 46 FF DD 6E F8 DD 66 R 00 00 01 00 -T E7 20 00 00 F9 C3 00 00 00 00 -R 00 00 01 00 02 06 10 00 -T EB 20 00 00 +T 9D 21 00 00 F9 C3 00 00 00 00 +R 00 00 01 00 02 06 0F 00 +T A1 21 00 00 R 00 00 01 00 -T EB 20 00 00 2A 00 00 00 00 C3 00 00 00 00 +T A1 21 00 00 2A 00 00 00 00 C3 00 00 00 00 R 00 00 01 00 00 05 04 00 02 0A 00 00 -T F1 20 00 00 +T A7 21 00 00 R 00 00 01 00 -T F1 20 00 00 C5 D5 11 13 00 CD C6 1C 00 00 22 +T A7 21 00 00 C5 D5 11 1B 00 CD 32 1D 00 00 22 R 00 00 01 00 00 0A 01 00 -T FA 20 00 00 00 00 00 00 AF 77 23 77 21 04 00 +T B0 21 00 00 00 00 00 00 AF 77 23 77 21 08 00 R 00 00 01 00 00 04 04 00 -T 03 21 00 00 ED 4B 00 00 00 00 09 77 23 77 21 +T B9 21 00 00 ED 4B 00 00 00 00 09 77 23 77 21 R 00 00 01 00 00 06 04 00 -T 0C 21 00 00 0A 00 ED 4B 00 00 00 00 09 77 23 +T C2 21 00 00 12 00 ED 4B 00 00 00 00 09 77 23 R 00 00 01 00 00 08 04 00 -T 15 21 00 00 77 21 0C 00 ED 4B 00 00 00 00 09 +T CB 21 00 00 77 21 14 00 ED 4B 00 00 00 00 09 R 00 00 01 00 00 0A 04 00 -T 1E 21 00 00 77 23 77 21 08 00 ED 4B +T D4 21 00 00 77 23 77 21 0C 00 ED 4B R 00 00 01 00 -T 26 21 00 00 00 00 00 00 09 77 23 77 21 06 00 +T DC 21 00 00 00 00 00 00 09 77 23 77 21 0A 00 R 00 00 01 00 00 04 04 00 -T 2F 21 00 00 ED 4B 00 00 00 00 09 77 23 77 21 +T E5 21 00 00 ED 4B 00 00 00 00 09 77 23 77 21 R 00 00 01 00 00 06 04 00 -T 38 21 00 00 10 00 ED 4B 00 00 00 00 09 77 23 +T EE 21 00 00 18 00 ED 4B 00 00 00 00 09 77 23 R 00 00 01 00 00 08 04 00 -T 41 21 00 00 77 23 77 3E 00 00 00 00 21 +T F7 21 00 00 77 23 77 3E 1B 00 00 00 21 R 00 00 01 00 29 08 01 00 -T 47 21 00 00 00 00 00 00 CD 00 00 00 00 21 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 4D 21 00 00 00 00 E5 E5 0E 70 05 00 00 C5 21 +T FD 21 00 00 1B 00 00 00 CD 00 00 00 00 21 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T 03 22 00 00 00 00 E5 E5 0E FF 05 00 00 C5 21 R 00 00 01 00 29 09 01 00 -T 55 21 00 00 70 05 00 00 E5 0E 8C 05 00 00 C5 +T 0B 22 00 00 FF 05 00 00 E5 0E 1B 06 00 00 C5 R 00 00 01 00 00 04 01 00 29 0A 01 00 -T 5B 21 00 00 21 8C 05 00 00 E5 11 30 00 CD +T 11 22 00 00 21 1B 06 00 00 E5 11 30 00 CD R 00 00 01 00 00 05 01 00 -T 63 21 00 00 10 22 00 00 21 0C 00 39 F9 21 +T 19 22 00 00 C6 22 00 00 21 0C 00 39 F9 21 R 00 00 01 00 00 04 01 00 -T 6B 21 00 00 00 00 E5 E5 0E 70 05 00 00 C5 21 +T 21 22 00 00 00 00 E5 E5 0E FF 05 00 00 C5 21 R 00 00 01 00 29 09 01 00 -T 73 21 00 00 70 05 00 00 E5 0E 9D 05 00 00 C5 +T 29 22 00 00 FF 05 00 00 E5 0E 2C 06 00 00 C5 R 00 00 01 00 00 04 01 00 29 0A 01 00 -T 79 21 00 00 21 9D 05 00 00 E5 11 31 00 CD +T 2F 22 00 00 21 2C 06 00 00 E5 11 31 00 CD R 00 00 01 00 00 05 01 00 -T 81 21 00 00 10 22 00 00 21 0C 00 39 F9 21 +T 37 22 00 00 C6 22 00 00 21 0C 00 39 F9 21 R 00 00 01 00 00 04 01 00 -T 89 21 00 00 00 00 E5 E5 0E 83 05 00 00 C5 21 +T 3F 22 00 00 00 00 E5 E5 0E 12 06 00 00 C5 21 R 00 00 01 00 29 09 01 00 -T 91 21 00 00 83 05 00 00 E5 0E A6 05 00 00 C5 +T 47 22 00 00 12 06 00 00 E5 0E 35 06 00 00 C5 R 00 00 01 00 00 04 01 00 29 0A 01 00 -T 97 21 00 00 21 A6 05 00 00 E5 11 32 00 CD +T 4D 22 00 00 21 35 06 00 00 E5 11 32 00 CD R 00 00 01 00 00 05 01 00 -T 9F 21 00 00 10 22 00 00 21 0C 00 39 F9 21 +T 55 22 00 00 C6 22 00 00 21 0C 00 39 F9 21 R 00 00 01 00 00 04 01 00 -T A7 21 00 00 0E 00 ED 4B 00 00 00 00 09 E5 11 +T 5D 22 00 00 16 00 ED 4B 00 00 00 00 09 E5 11 R 00 00 01 00 00 08 04 00 -T B0 21 00 00 80 00 D5 5A D5 4B 42 3E +T 66 22 00 00 80 00 D5 5A D5 4B 42 3E R 00 00 01 00 -T B8 21 00 00 71 0F 00 00 21 71 0F 00 00 CD +T 6E 22 00 00 11 10 00 00 21 11 10 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T BD 21 00 00 00 00 00 00 F1 F1 4D 44 E1 71 23 -R 00 00 01 00 02 04 0C 00 -T C6 21 00 00 70 21 0E 00 ED 4B 00 00 00 00 09 +T 73 22 00 00 00 00 00 00 F1 F1 4D 44 E1 71 23 +R 00 00 01 00 02 04 0B 00 +T 7C 22 00 00 70 21 16 00 ED 4B 00 00 00 00 09 R 00 00 01 00 00 0A 04 00 -T CF 21 00 00 56 23 66 6A 11 0A 00 19 36 01 23 +T 85 22 00 00 56 23 66 6A 11 0A 00 19 36 01 23 R 00 00 01 00 -T DA 21 00 00 72 21 0E 00 ED 4B 00 00 00 00 09 +T 90 22 00 00 72 21 16 00 ED 4B 00 00 00 00 09 R 00 00 01 00 00 0A 04 00 -T E3 21 00 00 56 23 66 6A 11 17 00 19 36 +T 99 22 00 00 56 23 66 6A 11 17 00 19 36 R 00 00 01 00 -T EC 21 00 00 F0 18 00 00 23 36 F0 18 00 00 23 +T A2 22 00 00 6D 19 00 00 23 36 6D 19 00 00 23 R 00 00 01 00 09 04 01 00 89 0A 01 00 -T F1 21 00 00 36 F0 18 00 00 21 0E 00 ED 4B +T A7 22 00 00 36 6D 19 00 00 21 16 00 ED 4B R 00 00 01 00 29 05 01 00 -T F8 21 00 00 00 00 00 00 09 46 23 66 68 01 +T AE 22 00 00 00 00 00 00 09 46 23 66 68 01 R 00 00 01 00 00 04 04 00 -T 00 22 00 00 1A 00 09 36 2C 0F 00 00 23 36 +T B6 22 00 00 1A 00 09 36 CC 0F 00 00 23 36 R 00 00 01 00 09 08 01 00 -T 07 22 00 00 2C 0F 00 00 23 36 2C 0F 00 00 D1 +T BD 22 00 00 CC 0F 00 00 23 36 CC 0F 00 00 D1 R 00 00 01 00 89 04 01 00 29 0A 01 00 -T 0C 22 00 00 C1 C3 00 00 00 00 +T C2 22 00 00 C1 C3 00 00 00 00 R 00 00 01 00 02 06 00 00 -T 10 22 00 00 +T C6 22 00 00 R 00 00 01 00 -T 10 22 00 00 3E 33 04 00 00 21 33 04 00 00 C3 +T C6 22 00 00 3E C2 04 00 00 21 C2 04 00 00 C3 R 00 00 01 00 29 05 01 00 00 0A 01 00 -T 16 22 00 00 00 00 00 00 -R 00 00 01 00 02 04 0C 00 -T 18 22 00 00 +T CC 22 00 00 00 00 00 00 +R 00 00 01 00 02 04 0B 00 +T CE 22 00 00 R 00 00 01 00 -T 18 22 00 00 C5 D5 21 0E 00 ED 4B 00 00 00 00 +T CE 22 00 00 C5 D5 21 16 00 ED 4B 00 00 00 00 R 00 00 01 00 00 0B 04 00 -T 21 22 00 00 09 5E 23 56 CD 8F 09 00 00 3E +T D7 22 00 00 09 5E 23 56 CD 1E 0A 00 00 3E R 00 00 01 00 00 09 01 00 -T 29 22 00 00 BD 02 00 00 21 BD 02 00 00 CD +T DF 22 00 00 58 03 00 00 21 58 03 00 00 CD R 00 00 01 00 29 04 01 00 00 09 01 00 -T 2E 22 00 00 00 00 00 00 3E 8E 00 00 00 21 -R 00 00 01 00 02 04 0C 00 29 09 01 00 -T 33 22 00 00 8E 00 00 00 CD 00 00 00 00 D1 C1 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 3A 22 00 00 C3 00 00 00 00 +T E4 22 00 00 00 00 00 00 3E 39 01 00 00 21 +R 00 00 01 00 02 04 0B 00 29 09 01 00 +T E9 22 00 00 39 01 00 00 CD 00 00 00 00 D1 C1 +R 00 00 01 00 00 04 01 00 02 09 0B 00 +T F0 22 00 00 C3 00 00 00 00 R 00 00 01 00 02 05 00 00 -T 3D 22 00 00 +T F3 22 00 00 R 00 00 01 00 -T 3D 22 00 00 CD 00 00 00 00 FE FF DD 4E 02 DD -R 00 00 01 00 02 05 0F 00 -T 46 22 00 00 46 03 21 0E 00 ED 5B 00 00 00 00 -R 00 00 01 00 00 0B 04 00 -T 4F 22 00 00 19 5E 23 56 3E 0E 19 00 00 21 -R 00 00 01 00 29 09 01 00 -T 56 22 00 00 0E 19 00 00 CD 00 00 00 00 -R 00 00 01 00 00 04 01 00 02 09 0C 00 -T 5B 22 00 00 +T F3 22 00 00 C5 DD E5 D5 F5 F5 F5 F5 4B 42 21 R 00 00 01 00 -T 5B 22 00 00 21 04 00 ED 4B 00 00 00 00 09 7E -R 00 00 01 00 00 09 04 00 -T 64 22 00 00 23 B6 C2 FB 22 00 00 -R 00 00 01 00 00 07 01 00 -T 69 22 00 00 +T FE 22 00 00 16 00 ED 5B 00 00 00 00 19 5E 23 +R 00 00 01 00 00 08 04 00 +T 07 23 00 00 56 3E 8B 19 00 00 21 8B 19 00 00 +R 00 00 01 00 29 06 01 00 00 0B 01 00 +T 0D 23 00 00 CD 00 00 00 00 21 0E 00 ED 4B +R 00 00 01 00 02 05 0B 00 +T 15 23 00 00 00 00 00 00 09 E5 11 10 00 CD +R 00 00 01 00 00 04 04 00 +T 1D 23 00 00 32 1D 00 00 EB E1 73 23 72 21 +R 00 00 01 00 00 04 01 00 +T 25 23 00 00 0E 00 ED 4B 00 00 00 00 09 7E 23 +R 00 00 01 00 00 08 04 00 +T 2E 23 00 00 66 6F 36 00 21 10 00 ED 4B R 00 00 01 00 -T 69 22 00 00 21 01 00 E5 23 39 4D 44 2A +T 37 23 00 00 00 00 00 00 09 E5 11 00 00 D5 11 +R 00 00 01 00 00 04 04 00 +T 40 23 00 00 37 00 00 00 D5 CD 14 01 00 00 F1 +R 00 00 01 00 00 04 02 00 00 0A 01 00 +T 47 23 00 00 F1 EB E1 73 23 72 21 02 00 39 E5 R 00 00 01 00 -T 72 22 00 00 00 00 00 00 23 23 5E 23 56 CD +T 52 23 00 00 21 00 00 E5 2E 10 ED 4B +R 00 00 01 00 +T 5A 23 00 00 00 00 00 00 09 5E 23 56 D5 CD R 00 00 01 00 00 04 04 00 -T 7A 22 00 00 BE 1C 00 00 F1 3E 01 AD B4 20 D8 +T 62 23 00 00 0C 01 00 00 F1 F1 F1 21 06 00 39 R 00 00 01 00 00 04 01 00 -T 83 22 00 00 +T 6B 23 00 00 36 60 23 36 00 21 02 00 39 E5 21 R 00 00 01 00 -T 83 22 00 00 DD 4E FE 47 C5 21 21 00 00 00 E5 -R 00 00 01 00 00 0A 02 00 -T 8C 22 00 00 3E 00 00 00 00 21 00 00 00 00 CD -R 00 00 01 00 2B 05 04 00 02 0A 04 00 -T 92 22 00 00 00 00 00 00 F1 F1 AF DD B6 FE 28 -R 00 00 01 00 02 04 0C 00 -T 9B 22 00 00 29 +T 76 23 00 00 01 00 E5 2E 10 09 4E 23 46 C5 CD R 00 00 01 00 -T 9C 22 00 00 +T 81 23 00 00 0C 01 00 00 F1 F1 F1 DD 21 00 00 +R 00 00 01 00 00 04 01 00 +T 8A 23 00 00 R 00 00 01 00 -T 9C 22 00 00 4F C5 21 0E 00 ED 5B 00 00 00 00 -R 00 00 01 00 00 0B 04 00 -T A5 22 00 00 19 5E 23 56 21 0E 00 ED 4B +T 8A 23 00 00 21 08 00 ED 4B 00 00 00 00 09 7E +R 00 00 01 00 00 09 04 00 +T 93 23 00 00 23 B6 C2 AB 24 00 00 +R 00 00 01 00 00 07 01 00 +T 98 23 00 00 R 00 00 01 00 -T AE 22 00 00 00 00 00 00 09 46 23 66 68 01 +T 98 23 00 00 21 01 00 E5 23 39 4D 44 21 06 00 +R 00 00 01 00 +T A3 23 00 00 ED 5B 00 00 00 00 19 5E 23 56 3E +R 00 00 01 00 00 06 04 00 +T AC 23 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 14 00 02 09 14 00 +T B1 23 00 00 00 00 00 00 F1 3E 01 AD B4 20 67 +R 00 00 01 00 02 04 0B 00 +T BA 23 00 00 +R 00 00 01 00 +T BA 23 00 00 6F 67 39 B6 28 2B +R 00 00 01 00 +T C0 23 00 00 +R 00 00 01 00 +T C0 23 00 00 4F 06 00 C5 21 16 00 ED 5B +R 00 00 01 00 +T C9 23 00 00 00 00 00 00 19 5E 23 56 21 16 00 R 00 00 01 00 00 04 04 00 -T B6 22 00 00 17 00 09 4E 23 46 23 7E 69 60 01 +T D2 23 00 00 ED 4B 00 00 00 00 09 46 23 66 68 +R 00 00 01 00 00 06 04 00 +T DB 23 00 00 01 17 00 09 4E 23 46 23 7E 69 60 R 00 00 01 00 -T C1 22 00 00 01 00 18 29 +T E6 23 00 00 01 01 00 18 29 R 00 00 01 00 -T C5 22 00 00 +T EB 23 00 00 R 00 00 01 00 -T C5 22 00 00 DD 4E FF C5 21 0E 00 ED 5B +T EB 23 00 00 23 4E 47 C5 21 16 00 ED 5B R 00 00 01 00 -T CE 22 00 00 00 00 00 00 19 5E 23 56 21 0E 00 +T F4 23 00 00 00 00 00 00 19 5E 23 56 21 16 00 R 00 00 01 00 00 04 04 00 -T D7 22 00 00 ED 4B 00 00 00 00 09 46 23 66 68 +T FD 23 00 00 ED 4B 00 00 00 00 09 46 23 66 68 R 00 00 01 00 00 06 04 00 -T E0 22 00 00 01 17 00 09 4E 23 46 23 7E 69 60 +T 06 24 00 00 01 17 00 09 4E 23 46 23 7E 69 60 +R 00 00 01 00 +T 11 24 00 00 01 02 00 +R 00 00 01 00 +T 14 24 00 00 R 00 00 01 00 -T EB 22 00 00 01 02 00 +T 14 24 00 00 CD 00 00 00 00 E1 +R 00 00 01 00 02 05 0B 00 +T 18 24 00 00 +R 00 00 01 00 +T 18 24 00 00 21 01 00 39 E5 2B 46 E1 70 +R 00 00 01 00 +T 21 24 00 00 R 00 00 01 00 -T EE 22 00 00 +T 21 24 00 00 21 01 00 E5 23 39 4D 44 21 10 00 R 00 00 01 00 -T EE 22 00 00 CD 00 00 00 00 E1 -R 00 00 01 00 02 05 0C 00 -T F2 22 00 00 +T 2C 24 00 00 ED 5B 00 00 00 00 19 5E 23 56 3E +R 00 00 01 00 00 06 04 00 +T 35 24 00 00 00 00 00 00 21 00 00 00 00 CD +R 00 00 01 00 2B 04 14 00 02 09 14 00 +T 3A 24 00 00 00 00 00 00 F1 3E 01 AD B4 20 65 +R 00 00 01 00 02 04 0B 00 +T 43 24 00 00 +R 00 00 01 00 +T 43 24 00 00 6F 67 39 3E 10 BE 21 0E 00 ED 4B R 00 00 01 00 -T F2 22 00 00 DD 46 FE DD 70 FF +T 4E 24 00 00 00 00 00 00 30 15 +R 00 00 01 00 00 04 04 00 +T 52 24 00 00 R 00 00 01 00 -T F8 22 00 00 +T 52 24 00 00 09 46 23 66 68 DD E5 C1 09 E5 21 R 00 00 01 00 -T F8 22 00 00 C3 5B 22 00 00 +T 5D 24 00 00 02 00 39 46 E1 70 DD 23 18 41 +R 00 00 01 00 +T 67 24 00 00 +R 00 00 01 00 +T 67 24 00 00 09 56 23 66 6A DD E5 D1 19 36 00 +R 00 00 01 00 +T 72 24 00 00 21 0E 00 ED 4B 00 00 00 00 09 E5 +R 00 00 01 00 00 09 04 00 +T 7B 24 00 00 21 16 00 ED 5B 00 00 00 00 19 5E +R 00 00 01 00 00 09 04 00 +T 84 24 00 00 23 56 21 16 00 ED 4B 00 00 00 00 +R 00 00 01 00 00 0B 04 00 +T 8D 24 00 00 09 46 23 66 68 01 17 00 09 4E 23 +R 00 00 01 00 +T 98 24 00 00 46 23 7E 69 60 01 01 04 CD +R 00 00 01 00 +T A1 24 00 00 00 00 00 00 E1 DD 21 00 00 +R 00 00 01 00 02 04 0B 00 +T A8 24 00 00 +R 00 00 01 00 +T A8 24 00 00 +R 00 00 01 00 +T A8 24 00 00 C3 8A 23 00 00 R 00 00 01 00 00 05 01 00 -T FB 22 00 00 +T AB 24 00 00 +R 00 00 01 00 +T AB 24 00 00 21 0A 00 39 F9 DD E1 C1 C3 R 00 00 01 00 -T FB 22 00 00 C3 00 00 00 00 -R 00 00 01 00 02 05 05 00 +T B4 24 00 00 00 00 00 00 +R 00 00 01 00 02 04 00 00 T 00 00 00 00 R 00 00 02 00 T 00 00 00 00 2F 64 65 76 2F 6C 63 64 30 00 R 00 00 02 00 T 0A 00 00 00 R 00 00 02 00 -T 0A 00 00 00 4F 4B 00 +T 0A 00 00 00 2F 64 65 76 2F 6C 63 64 31 00 R 00 00 02 00 -T 0D 00 00 00 +T 14 00 00 00 R 00 00 02 00 -T 0D 00 00 00 43 61 6E 63 65 6C 00 +T 14 00 00 00 48 59 54 45 43 48 20 31 30 30 30 R 00 00 02 00 -T 14 00 00 00 +T 1F 00 00 00 00 R 00 00 02 00 -T 14 00 00 00 00 +T 20 00 00 00 R 00 00 02 00 -T 15 00 00 00 +T 20 00 00 00 4F 4B 00 R 00 00 02 00 -T 15 00 00 00 4D 65 73 73 61 67 65 20 42 6F 78 +T 23 00 00 00 R 00 00 02 00 -T 20 00 00 00 00 +T 23 00 00 00 43 61 6E 63 65 6C 00 R 00 00 02 00 -T 21 00 00 00 +T 2A 00 00 00 +R 00 00 02 00 +T 2A 00 00 00 00 +R 00 00 02 00 +T 2B 00 00 00 +R 00 00 02 00 +T 2B 00 00 00 4D 65 73 73 61 67 65 20 42 6F 78 R 00 00 02 00 -T 21 00 00 00 30 78 25 30 32 78 0A 00 +T 36 00 00 00 00 +R 00 00 02 00 +T 37 00 00 00 +R 00 00 02 00 +T 37 00 00 00 2F 64 65 76 2F 62 61 72 63 6F 64 +R 00 00 02 00 +T 42 00 00 00 65 00 R 00 00 02 00 T 00 00 00 00 R 00 00 03 00 @@ -3422,12 +3601,6 @@ T 24 00 00 00 R 00 00 03 00 T 24 00 00 00 1B 00 R 00 00 03 00 -T 26 00 00 00 -R 00 00 03 00 -T 26 00 00 00 2F 77 6E 64 2F 30 30 30 30 2E 73 -R 00 00 03 00 -T 31 00 00 00 63 72 00 -R 00 00 03 00 T 00 00 00 00 R 00 00 04 00 T 00 00 00 00 diff --git a/src/gui/wnd.rst b/src/gui/wnd.rst index 9d43b4e9..09d99d28 100644 --- a/src/gui/wnd.rst +++ b/src/gui/wnd.rst @@ -40,29 +40,29 @@ 40 PUBLIC Label_paint 41 PUBLIC Move 42 PUBLIC Root_paint - 43 PUBLIC Text - 44 PUBLIC ToggleButton_handler - 45 PUBLIC ToggleButton_new - 46 PUBLIC ToggleButton_paint - 47 PUBLIC TouchRegion - 48 PUBLIC Window_add - 49 PUBLIC Window_handler - 50 PUBLIC Window_new - 51 PUBLIC Window_paint - 52 EXTERN _read - 53 EXTERN _write - 54 EXTERN close - 55 EXTERN fflush - 56 PUBLIC fontSearch - 57 EXTERN free - 58 PUBLIC global - 59 PUBLIC grSetFont - 60 PUBLIC gui_globals - 61 EXTERN ioctl - 62 PUBLIC loadFont - 63 EXTERN malloc - 64 EXTERN open - 65 EXTERN printf + 43 PUBLIC SetCurrentGraphicsDevice + 44 PUBLIC Text + 45 PUBLIC ToggleButton_handler + 46 PUBLIC ToggleButton_new + 47 PUBLIC ToggleButton_paint + 48 PUBLIC TouchRegion + 49 PUBLIC Window_add + 50 PUBLIC Window_handler + 51 PUBLIC Window_new + 52 PUBLIC Window_paint + 53 EXTERN _read + 54 EXTERN _write + 55 EXTERN close + 56 EXTERN fflush + 57 PUBLIC fontSearch + 58 EXTERN free + 59 PUBLIC global + 60 PUBLIC grSetFont + 61 PUBLIC gui_globals + 62 EXTERN ioctl + 63 PUBLIC loadFont + 64 EXTERN malloc + 65 EXTERN open 66 PUBLIC read_stringtable 67 PUBLIC rootWindow_handler 68 PUBLIC root_actionhandler @@ -82,5260 +82,5601 @@ 82 EXTERN ?SS_DIV_L02 83 EXTERN ?S_MUL_L02 84 EXTERN ?SS_CMP_L02 - 85 EXTERN ?SL_RSH_L03 - 86 EXTERN ?C_V_SWITCH_L06 - 87 EXTERN ?S_V_SWITCH_L06 - 88 EXTERN ?BANK_CALL_DIRECT_L08 - 89 EXTERN ?BANK_LEAVE_DIRECT_L08 - 90 EXTERN ?BANK_FAST_LEAVE_L08 - 91 EXTERN ?ENT_PARM_DIRECT_L09 - 92 EXTERN ?ENT_AUTO_DIRECT_L09 - 93 RSEG CODE - 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 + 85 EXTERN ?C_V_SWITCH_L06 + 86 EXTERN ?S_V_SWITCH_L06 + 87 EXTERN ?BANK_CALL_DIRECT_L08 + 88 EXTERN ?BANK_LEAVE_DIRECT_L08 + 89 EXTERN ?BANK_FAST_LEAVE_L08 + 90 EXTERN ?ENT_PARM_DIRECT_L09 + 91 EXTERN ?ENT_AUTO_DIRECT_L09 + 92 RSEG CODE + 000045C8 93 SetCurrentGraphicsDevice: + 000045C8 CD 52 81 94 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000045CB 21 06 00 95 LD HL,6 + 000045CE ED 4B BF 86 96 LD BC,(global) + 000045D2 09 97 ADD HL,BC + 000045D3 E5 98 PUSH HL + 000045D4 EB 99 EX DE,HL + 000045D5 29 100 ADD HL,HL + 000045D6 09 101 ADD HL,BC + 000045D7 23 102 INC HL + 000045D8 23 103 INC HL + 000045D9 4E 104 LD C,(HL) + 000045DA 23 105 INC HL + 000045DB 46 106 LD B,(HL) + 000045DC E1 107 POP HL + 000045DD 71 108 LD (HL),C + 000045DE 23 109 INC HL + 000045DF 70 110 LD (HL),B + 000045E0 C3 1F 81 111 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000045E3 112 GraphicsOpen: + 000045E3 CD 88 81 113 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000045E6 F8 FF 114 DEFW 65528 + 000045E8 21 06 00 115 LD HL,6 + 000045EB 39 116 ADD HL,SP + 000045EC EB 117 EX DE,HL + 000045ED 21 73 84 118 LD HL,?0000 + 000045F0 01 02 00 119 LD BC,2 + 000045F3 ED B0 120 LDIR + 000045F5 2A BF 86 121 LD HL,(global) + 000045F8 23 122 INC HL + 000045F9 23 123 INC HL + 000045FA E5 124 PUSH HL + 000045FB 03 125 INC BC + 000045FC 03 126 INC BC + 000045FD C5 127 PUSH BC + 000045FE 01 99 84 128 LD BC,?0001 + 00004601 C5 129 PUSH BC + 00004602 CD DC 46 130 CALL LWRD ?0444 + 00004605 F1 131 POP AF + 00004606 F1 132 POP AF + 00004607 4D 133 LD C,L + 00004608 44 134 LD B,H + 00004609 E1 135 POP HL + 0000460A 71 136 LD (HL),C + 0000460B 23 137 INC HL + 0000460C 70 138 LD (HL),B + 0000460D 21 00 00 139 LD HL,0 + 00004610 39 140 ADD HL,SP + 00004611 E5 141 PUSH HL + 00004612 21 00 00 142 LD HL,0 + 00004615 E5 143 PUSH HL + 00004616 2A BF 86 144 LD HL,(global) + 00004619 23 145 INC HL + 0000461A 23 146 INC HL + 0000461B 4E 147 LD C,(HL) + 0000461C 23 148 INC HL + 0000461D 46 149 LD B,(HL) + 0000461E C5 150 PUSH BC + 0000461F CD D4 46 151 CALL LWRD ?0443 + 00004622 F1 152 POP AF + 00004623 F1 153 POP AF + 00004624 F1 154 POP AF + 00004625 DD 36 FC 60 155 LD (IX-4),96 + 00004629 DD 36 FD 00 156 LD (IX-3),0 + 0000462D 21 00 00 157 LD HL,0 + 00004630 39 158 ADD HL,SP + 00004631 E5 159 PUSH HL + 00004632 21 01 00 160 LD HL,1 + 00004635 E5 161 PUSH HL + 00004636 2A BF 86 162 LD HL,(global) + 00004639 23 163 INC HL + 0000463A 23 164 INC HL + 0000463B 4E 165 LD C,(HL) + 0000463C 23 166 INC HL + 0000463D 46 167 LD B,(HL) + 0000463E C5 168 PUSH BC + 0000463F CD D4 46 169 CALL LWRD ?0443 + 00004642 F1 170 POP AF + 00004643 F1 171 POP AF + 00004644 F1 172 POP AF + 00004645 21 02 00 173 LD HL,2 + 00004648 E5 174 PUSH HL + 00004649 2E 08 175 LD L,8 + 0000464B 39 176 ADD HL,SP + 0000464C 4D 177 LD C,L + 0000464D 44 178 LD B,H + 0000464E 2A BF 86 179 LD HL,(global) + 00004651 23 180 INC HL + 00004652 23 181 INC HL + 00004653 CD EE 46 182 CALL LWRD ?0445 + 00004656 F1 183 POP AF + 00004657 21 04 00 184 LD HL,4 + 0000465A ED 4B BF 86 185 LD BC,(global) + 0000465E 09 186 ADD HL,BC + 0000465F E5 187 PUSH HL + 00004660 11 02 00 188 LD DE,2 + 00004663 D5 189 PUSH DE + 00004664 11 A3 84 190 LD DE,?0002 + 00004667 D5 191 PUSH DE + 00004668 CD DC 46 192 CALL LWRD ?0444 + 0000466B F1 193 POP AF + 0000466C F1 194 POP AF + 0000466D EB 195 EX DE,HL + 0000466E E1 196 POP HL + 0000466F 73 197 LD (HL),E + 00004670 23 198 INC HL + 00004671 72 199 LD (HL),D + 00004672 21 00 00 200 LD HL,0 + 00004675 39 201 ADD HL,SP + 00004676 E5 202 PUSH HL + 00004677 21 00 00 203 LD HL,0 + 0000467A E5 204 PUSH HL + 0000467B 2E 04 205 LD L,4 + 0000467D ED 4B BF 86 206 LD BC,(global) + 00004681 09 207 ADD HL,BC + 00004682 5E 208 LD E,(HL) + 00004683 23 209 INC HL + 00004684 56 210 LD D,(HL) + 00004685 D5 211 PUSH DE + 00004686 CD D4 46 212 CALL LWRD ?0443 + 00004689 F1 213 POP AF + 0000468A F1 214 POP AF + 0000468B F1 215 POP AF + 0000468C DD 36 FC 60 216 LD (IX-4),96 + 00004690 DD 36 FD 00 217 LD (IX-3),0 + 00004694 21 00 00 218 LD HL,0 + 00004697 39 219 ADD HL,SP + 00004698 E5 220 PUSH HL + 00004699 21 01 00 221 LD HL,1 + 0000469C E5 222 PUSH HL + 0000469D 2E 04 223 LD L,4 + 0000469F 09 224 ADD HL,BC + 000046A0 5E 225 LD E,(HL) + 000046A1 23 226 INC HL + 000046A2 56 227 LD D,(HL) + 000046A3 D5 228 PUSH DE + 000046A4 CD D4 46 229 CALL LWRD ?0443 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 - 000084B5 4993 ?0001: - 000084B5 2F 64 65 76 2F 6C 63 4994 DEFB '/dev/lcd0' + 000046A8 F1 231 POP AF + 000046A9 F1 232 POP AF + 000046AA 21 02 00 233 LD HL,2 + 000046AD E5 234 PUSH HL + 000046AE 2E 08 235 LD L,8 + 000046B0 39 236 ADD HL,SP + 000046B1 CD E4 46 237 CALL LWRD ?0446 + 000046B4 F1 238 POP AF + 000046B5 11 01 00 239 LD DE,1 + 000046B8 3E 00 240 LD A,BYTE3 SetCurrentGraphicsDevice + 000046BA 21 C8 45 241 LD HL,LWRD SetCurrentGraphicsDevice + 000046BD CD 5E 81 242 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000046C0 11 AD 84 243 LD DE,?0003 + 000046C3 CD F9 46 244 CALL LWRD ?0452 + 000046C6 11 00 00 245 LD DE,0 + 000046C9 3E 00 246 LD A,BYTE3 SetCurrentGraphicsDevice + 000046CB 21 C8 45 247 LD HL,LWRD SetCurrentGraphicsDevice + 000046CE CD 5E 81 248 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000046D1 C3 1F 81 249 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000046D4 250 ?0443: + 000046D4 3E 00 251 LD A,BYTE3 ioctl + 000046D6 21 F0 74 252 LD HL,LWRD ioctl + 000046D9 C3 5E 81 253 JP LWRD ?BANK_CALL_DIRECT_L08 + 000046DC 254 ?0444: + 000046DC 3E 00 255 LD A,BYTE3 open + 000046DE 21 06 7A 256 LD HL,LWRD open + 000046E1 C3 5E 81 257 JP LWRD ?BANK_CALL_DIRECT_L08 + 000046E4 258 ?0446: + 000046E4 4D 259 LD C,L + 000046E5 44 260 LD B,H + 000046E6 21 04 00 261 LD HL,4 + 000046E9 262 ?0448: + 000046E9 ED 5B BF 86 263 LD DE,(global) + 000046ED 19 264 ADD HL,DE + 000046EE 265 ?0445: + 000046EE 5E 266 LD E,(HL) + 000046EF 23 267 INC HL + 000046F0 56 268 LD D,(HL) + 000046F1 3E 00 269 LD A,BYTE3 _write + 000046F3 270 ?0447: + 000046F3 21 88 6F 271 LD HL,LWRD _write + 000046F6 C3 5E 81 272 JP LWRD ?BANK_CALL_DIRECT_L08 + 000046F9 273 ?0452: + 000046F9 3E 00 274 LD A,BYTE3 Text + 000046FB 21 A6 48 275 LD HL,LWRD Text + 000046FE C3 5E 81 276 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004701 277 GraphicsClose: + 00004701 C5 278 PUSH BC + 00004702 D5 279 PUSH DE + 00004703 2A BF 86 280 LD HL,(global) + 00004706 23 281 INC HL + 00004707 23 282 INC HL + 00004708 CD 1B 47 283 CALL LWRD ?0468 + 0000470B 21 04 00 284 LD HL,4 + 0000470E ED 4B BF 86 285 LD BC,(global) + 00004712 09 286 ADD HL,BC + 00004713 CD 1B 47 287 CALL LWRD ?0468 + 00004716 D1 288 POP DE + 00004717 C1 289 POP BC + 00004718 C3 25 81 290 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000471B 291 ?0468: + 0000471B 5E 292 LD E,(HL) + 0000471C 23 293 INC HL + 0000471D 56 294 LD D,(HL) + 0000471E 295 ?0469: + 0000471E 3E 00 296 LD A,BYTE3 close + 00004720 21 B3 73 297 LD HL,LWRD close + 00004723 C3 5E 81 298 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004726 299 Move: + 00004726 CD 88 81 300 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004729 FC FF 301 DEFW 65532 + 0000472B 21 00 00 302 LD HL,0 + 0000472E 39 303 ADD HL,SP + 0000472F EB 304 EX DE,HL + 00004730 21 75 84 305 LD HL,?0004 + 00004733 01 04 00 306 LD BC,4 + 00004736 ED B0 307 LDIR + 00004738 308 ?0382: + 00004738 DD 46 02 309 LD B,(IX+2) + 0000473B DD 70 FE 310 LD (IX-2),B + 0000473E DD 46 04 311 LD B,(IX+4) + 00004741 DD 70 FF 312 LD (IX-1),B + 00004744 21 04 00 313 LD HL,4 + 00004747 E5 314 PUSH HL + 00004748 2B 315 DEC HL + 00004749 2B 316 DEC HL + 0000474A 317 ?0387: + 0000474A 39 318 ADD HL,SP + 0000474B 4D 319 LD C,L + 0000474C 320 ?0432: + 0000474C 44 321 LD B,H + 0000474D 21 06 00 322 LD HL,6 + 00004750 323 ?0433: + 00004750 ED 5B BF 86 324 LD DE,(global) + 00004754 19 325 ADD HL,DE + 00004755 326 ?0434: + 00004755 5E 327 LD E,(HL) + 00004756 23 328 INC HL + 00004757 329 ?0435: + 00004757 56 330 LD D,(HL) + 00004758 3E 00 331 LD A,BYTE3 _write + 0000475A 332 ?0436: + 0000475A CD F3 46 333 CALL LWRD ?0447 + 0000475D F1 334 POP AF + 0000475E C3 1F 81 335 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004761 336 ClearRect: + 00004761 CD 88 81 337 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004764 FC FF 338 DEFW 65532 + 00004766 21 00 00 339 LD HL,0 + 00004769 39 340 ADD HL,SP + 0000476A EB 341 EX DE,HL + 0000476B 21 79 84 342 LD HL,?0005 + 0000476E 01 04 00 343 LD BC,4 + 00004771 ED B0 344 LDIR + 00004773 C3 38 47 345 JP LWRD ?0382 + 00004776 DD 70 FE 346 LD (IX-2),B + 00004779 347 ?0390: + 00004779 DD 46 04 348 LD B,(IX+4) + 0000477C DD 70 FF 349 LD (IX-1),B + 0000477F 21 04 00 350 LD HL,4 + 00004782 E5 351 PUSH HL + 00004783 2B 352 DEC HL + 00004784 2B 353 DEC HL + 00004785 39 354 ADD HL,SP + 00004786 4D 355 LD C,L + 00004787 356 ?0394: + 00004787 C3 4C 47 357 JP LWRD ?0432 + 0000478A 21 06 00 358 LD HL,6 + 0000478D ED 5B BF 86 359 LD DE,(global) + 00004791 19 360 ADD HL,DE + 00004792 361 ?0437: + 00004792 5E 362 LD E,(HL) + 00004793 23 363 INC HL + 00004794 364 ?0438: + 00004794 56 365 LD D,(HL) + 00004795 3E 00 366 LD A,BYTE3 _write + 00004797 367 ?0439: + 00004797 C3 5A 47 368 JP LWRD ?0436 + 0000479A CD 5E 81 369 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000479D F1 370 POP AF + 0000479E C3 1F 81 371 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000047A1 372 DrawRectNC: + 000047A1 CD 88 81 373 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000047A4 FC FF 374 DEFW 65532 + 000047A6 21 00 00 375 LD HL,0 + 000047A9 39 376 ADD HL,SP + 000047AA EB 377 EX DE,HL + 000047AB 21 7D 84 378 LD HL,?0006 + 000047AE 01 04 00 379 LD BC,4 + 000047B1 ED B0 380 LDIR + 000047B3 C3 38 47 381 JP LWRD ?0382 + 000047B6 DD 70 FE 382 LD (IX-2),B + 000047B9 C3 79 47 383 JP LWRD ?0390 + 000047BC DD 70 FF 384 LD (IX-1),B + 000047BF 385 ?0397: + 000047BF 21 04 00 386 LD HL,4 + 000047C2 E5 387 PUSH HL + 000047C3 2B 388 DEC HL + 000047C4 2B 389 DEC HL + 000047C5 39 390 ADD HL,SP + 000047C6 4D 391 LD C,L + 000047C7 44 392 LD B,H + 000047C8 21 06 00 393 LD HL,6 + 000047CB 394 ?0400: + 000047CB C3 50 47 395 JP LWRD ?0433 + 000047CE 19 396 ADD HL,DE + 000047CF C3 92 47 397 JP LWRD ?0437 + 000047D2 23 398 INC HL + 000047D3 56 399 LD D,(HL) + 000047D4 3E 00 400 LD A,BYTE3 _write + 000047D6 401 ?0440: + 000047D6 C3 5A 47 402 JP LWRD ?0436 + 000047D9 CD 5E 81 403 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000047DC F1 404 POP AF + 000047DD C3 1F 81 405 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000047E0 406 FillRect: + 000047E0 CD 88 81 407 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000047E3 FC FF 408 DEFW 65532 + 000047E5 21 00 00 409 LD HL,0 + 000047E8 39 410 ADD HL,SP + 000047E9 EB 411 EX DE,HL + 000047EA 21 81 84 412 LD HL,?0007 + 000047ED 01 04 00 413 LD BC,4 + 000047F0 ED B0 414 LDIR + 000047F2 C3 38 47 415 JP LWRD ?0382 + 000047F5 DD 70 FE 416 LD (IX-2),B + 000047F8 C3 79 47 417 JP LWRD ?0390 + 000047FB DD 70 FF 418 LD (IX-1),B + 000047FE C3 BF 47 419 JP LWRD ?0397 + 00004801 E5 420 PUSH HL + 00004802 421 ?0403: + 00004802 2B 422 DEC HL + 00004803 2B 423 DEC HL + 00004804 39 424 ADD HL,SP + 00004805 4D 425 LD C,L + 00004806 44 426 LD B,H + 00004807 21 06 00 427 LD HL,6 + 0000480A ED 5B BF 86 428 LD DE,(global) + 0000480E 19 429 ADD HL,DE + 0000480F 430 ?0405: + 0000480F C3 55 47 431 JP LWRD ?0434 + 00004812 23 432 INC HL + 00004813 C3 94 47 433 JP LWRD ?0438 + 00004816 3E 00 434 LD A,BYTE3 _write + 00004818 C3 D6 47 435 JP LWRD ?0440 + 0000481B CD 5E 81 436 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000481E F1 437 POP AF + 0000481F C3 1F 81 438 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004822 439 FillRectNC: + 00004822 CD 88 81 440 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004825 FC FF 441 DEFW 65532 + 00004827 21 00 00 442 LD HL,0 + 0000482A 39 443 ADD HL,SP + 0000482B EB 444 EX DE,HL + 0000482C 21 85 84 445 LD HL,?0008 + 0000482F 01 04 00 446 LD BC,4 + 00004832 ED B0 447 LDIR + 00004834 C3 38 47 448 JP LWRD ?0382 + 00004837 DD 70 FE 449 LD (IX-2),B + 0000483A C3 79 47 450 JP LWRD ?0390 + 0000483D DD 70 FF 451 LD (IX-1),B + 00004840 C3 BF 47 452 JP LWRD ?0397 + 00004843 E5 453 PUSH HL + 00004844 C3 02 48 454 JP LWRD ?0403 + 00004847 2B 455 DEC HL + 00004848 456 ?0408: + 00004848 39 457 ADD HL,SP + 00004849 4D 458 LD C,L + 0000484A 44 459 LD B,H + 0000484B 21 06 00 460 LD HL,6 + 0000484E ED 5B BF 86 461 LD DE,(global) + 00004852 19 462 ADD HL,DE + 00004853 5E 463 LD E,(HL) + 00004854 23 464 INC HL + 00004855 465 ?0409: + 00004855 C3 57 47 466 JP LWRD ?0435 + 00004858 3E 00 467 LD A,BYTE3 _write + 0000485A C3 97 47 468 JP LWRD ?0439 + 0000485D CD 5E 81 469 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004860 F1 470 POP AF + 00004861 C3 1F 81 471 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004864 472 GrayRect: + 00004864 CD 88 81 473 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004867 FC FF 474 DEFW 65532 + 00004869 21 00 00 475 LD HL,0 + 0000486C 39 476 ADD HL,SP + 0000486D EB 477 EX DE,HL + 0000486E 21 89 84 478 LD HL,?0009 + 00004871 01 04 00 479 LD BC,4 + 00004874 ED B0 480 LDIR + 00004876 C3 38 47 481 JP LWRD ?0382 + 00004879 DD 70 FE 482 LD (IX-2),B + 0000487C C3 79 47 483 JP LWRD ?0390 + 0000487F DD 70 FF 484 LD (IX-1),B + 00004882 C3 BF 47 485 JP LWRD ?0397 + 00004885 E5 486 PUSH HL + 00004886 C3 02 48 487 JP LWRD ?0403 + 00004889 2B 488 DEC HL + 0000488A C3 48 48 489 JP LWRD ?0408 + 0000488D 4D 490 LD C,L + 0000488E 44 491 LD B,H + 0000488F 21 06 00 492 LD HL,6 + 00004892 ED 5B BF 86 493 LD DE,(global) + 00004896 19 494 ADD HL,DE + 00004897 5E 495 LD E,(HL) + 00004898 23 496 INC HL + 00004899 56 497 LD D,(HL) + 0000489A 3E 00 498 LD A,BYTE3 _write + 0000489C 499 ?0412: + 0000489C C3 5A 47 500 JP LWRD ?0436 + 0000489F CD 5E 81 501 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000048A2 F1 502 POP AF + 000048A3 C3 1F 81 503 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000048A6 504 Text: + 000048A6 C5 505 PUSH BC + 000048A7 FD E5 506 PUSH IY + 000048A9 DD E5 507 PUSH IX + 000048AB D5 508 PUSH DE + 000048AC DD E1 509 POP IX + 000048AE 3E 00 510 LD A,BYTE3 strlen + 000048B0 21 C8 73 511 LD HL,LWRD strlen + 000048B3 CD 5E 81 512 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000048B6 E5 513 PUSH HL + 000048B7 DD E5 514 PUSH IX + 000048B9 C1 515 POP BC + 000048BA 21 06 00 516 LD HL,6 + 000048BD CD E9 46 517 CALL LWRD ?0448 + 000048C0 F1 518 POP AF + 000048C1 519 ?0415: + 000048C1 DD E1 520 POP IX + 000048C3 FD E1 521 POP IY + 000048C5 C1 522 POP BC + 000048C6 C3 25 81 523 JP LWRD ?BANK_FAST_LEAVE_L08 + 000048C9 524 TouchRegion: + 000048C9 CD 88 81 525 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000048CC F8 FF 526 DEFW 65528 + 000048CE 21 00 00 527 LD HL,0 + 000048D1 39 528 ADD HL,SP + 000048D2 EB 529 EX DE,HL + 000048D3 21 8D 84 530 LD HL,?0010 + 000048D6 01 07 00 531 LD BC,7 + 000048D9 ED B0 532 LDIR + 000048DB DD 46 02 533 LD B,(IX+2) + 000048DE DD 70 FA 534 LD (IX-6),B + 000048E1 DD 46 04 535 LD B,(IX+4) + 000048E4 DD 70 FB 536 LD (IX-5),B + 000048E7 DD 46 0A 537 LD B,(IX+10) + 000048EA DD 70 FC 538 LD (IX-4),B + 000048ED DD 46 0C 539 LD B,(IX+12) + 000048F0 DD 70 FD 540 LD (IX-3),B + 000048F3 DD 46 0E 541 LD B,(IX+14) + 000048F6 DD 70 FE 542 LD (IX-2),B + 000048F9 21 07 00 543 LD HL,7 + 000048FC E5 544 PUSH HL + 000048FD 2E 02 545 LD L,2 + 000048FF C3 4A 47 546 JP LWRD ?0387 + 00004902 4D 547 LD C,L + 00004903 C3 87 47 548 JP LWRD ?0394 + 00004906 21 06 00 549 LD HL,6 + 00004909 C3 CB 47 550 JP LWRD ?0400 + 0000490C 19 551 ADD HL,DE + 0000490D C3 0F 48 552 JP LWRD ?0405 + 00004910 23 553 INC HL + 00004911 C3 55 48 554 JP LWRD ?0409 + 00004914 3E 00 555 LD A,BYTE3 _write + 00004916 C3 9C 48 556 JP LWRD ?0412 + 00004919 CD 5E 81 557 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000491C F1 558 POP AF + 0000491D C3 1F 81 559 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004920 560 ClearScreen: + 00004920 C5 561 PUSH BC + 00004921 D5 562 PUSH DE + 00004922 CD 3A 49 563 CALL LWRD ?0474 + 00004925 CD 5E 81 564 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004928 21 80 00 565 LD HL,128 + 0000492B E5 566 PUSH HL + 0000492C 6C 567 LD L,H + 0000492D E5 568 PUSH HL + 0000492E E5 569 PUSH HL + 0000492F CD 52 49 570 CALL LWRD ?0483 + 00004932 E1 571 POP HL + 00004933 E1 572 POP HL + 00004934 E1 573 POP HL + 00004935 D1 574 POP DE + 00004936 C1 575 POP BC + 00004937 C3 25 81 576 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000493A 577 ?0474: + 0000493A 01 00 00 578 LD BC,0 + 0000493D 59 579 LD E,C + 0000493E 50 580 LD D,B + 0000493F 3E 00 581 LD A,BYTE3 Move + 00004941 21 26 47 582 LD HL,LWRD Move + 00004944 CD 5E 81 583 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004947 01 80 00 584 LD BC,128 + 0000494A 58 585 LD E,B + 0000494B 50 586 LD D,B + 0000494C 3E 00 587 LD A,BYTE3 ClearRect + 0000494E 21 61 47 588 LD HL,LWRD ClearRect + 00004951 C9 589 RET + 00004952 590 ?0483: + 00004952 4D 591 LD C,L + 00004953 44 592 LD B,H + 00004954 EB 593 EX DE,HL + 00004955 594 ?0484: + 00004955 3E 00 595 LD A,BYTE3 TouchRegion + 00004957 21 C9 48 596 LD HL,LWRD TouchRegion + 0000495A C3 5E 81 597 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000495D 598 EnableScreen: + 0000495D CD 88 81 599 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004960 FC FF 600 DEFW 65532 + 00004962 21 00 00 601 LD HL,0 + 00004965 39 602 ADD HL,SP + 00004966 EB 603 EX DE,HL + 00004967 21 94 84 604 LD HL,?0011 + 0000496A 01 03 00 605 LD BC,3 + 0000496D ED B0 606 LDIR + 0000496F DD 46 02 607 LD B,(IX+2) + 00004972 DD 70 FE 608 LD (IX-2),B + 00004975 21 03 00 609 LD HL,3 + 00004978 E5 610 PUSH HL + 00004979 2B 611 DEC HL + 0000497A C3 4A 47 612 JP LWRD ?0387 + 0000497D 4D 613 LD C,L + 0000497E C3 87 47 614 JP LWRD ?0394 + 00004981 21 06 00 615 LD HL,6 + 00004984 C3 CB 47 616 JP LWRD ?0400 + 00004987 19 617 ADD HL,DE + 00004988 C3 0F 48 618 JP LWRD ?0405 + 0000498B 23 619 INC HL + 0000498C C3 55 48 620 JP LWRD ?0409 + 0000498F 3E 00 621 LD A,BYTE3 _write + 00004991 C3 9C 48 622 JP LWRD ?0412 + 00004994 CD 5E 81 623 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004997 F1 624 POP AF + 00004998 C3 1F 81 625 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000499B 626 grSetFont: + 0000499B CD 88 81 627 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000499E FE FF 628 DEFW 65534 + 000049A0 21 00 00 629 LD HL,0 + 000049A3 39 630 ADD HL,SP + 000049A4 EB 631 EX DE,HL + 000049A5 21 97 84 632 LD HL,?0012 + 000049A8 01 02 00 633 LD BC,2 + 000049AB ED B0 634 LDIR + 000049AD DD 46 02 635 LD B,(IX+2) + 000049B0 DD 70 FF 636 LD (IX-1),B + 000049B3 21 02 00 637 LD HL,2 + 000049B6 E5 638 PUSH HL + 000049B7 C3 4A 47 639 JP LWRD ?0387 + 000049BA 4D 640 LD C,L + 000049BB C3 87 47 641 JP LWRD ?0394 + 000049BE 21 06 00 642 LD HL,6 + 000049C1 C3 CB 47 643 JP LWRD ?0400 + 000049C4 19 644 ADD HL,DE + 000049C5 C3 0F 48 645 JP LWRD ?0405 + 000049C8 23 646 INC HL + 000049C9 C3 55 48 647 JP LWRD ?0409 + 000049CC 3E 00 648 LD A,BYTE3 _write + 000049CE C3 9C 48 649 JP LWRD ?0412 + 000049D1 CD 5E 81 650 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000049D4 F1 651 POP AF + 000049D5 C3 1F 81 652 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000049D8 653 fontSearch: + 000049D8 CD 88 81 654 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000049DB 00 00 655 DEFW 0 + 000049DD 21 14 00 656 LD HL,20 + 000049E0 ED 4B BF 86 657 LD BC,(global) + 000049E4 09 658 ADD HL,BC + 000049E5 659 ?0331: + 000049E5 46 660 LD B,(HL) + 000049E6 23 661 INC HL + 000049E7 66 662 LD H,(HL) + 000049E8 68 663 LD L,B + 000049E9 EB 664 EX DE,HL + 000049EA 665 ?0014: + 000049EA 7B 666 LD A,E + 000049EB B2 667 OR D + 000049EC 28 16 668 JR Z,?0013 + 000049EE 6B 669 LD L,E + 000049EF 62 670 LD H,D + 000049F0 46 671 LD B,(HL) + 000049F1 23 672 INC HL + 000049F2 66 673 LD H,(HL) + 000049F3 68 674 LD L,B + 000049F4 DD 4E 02 675 LD C,(IX+2) + 000049F7 DD 46 03 676 LD B,(IX+3) + 000049FA ED 42 677 SBC HL,BC + 000049FC 28 06 678 JR Z,?0013 + 000049FE 679 ?0017: + 000049FE 680 ?0016: + 000049FE 681 ?0015: + 000049FE 21 08 00 682 LD HL,8 + 00004A01 19 683 ADD HL,DE + 00004A02 18 E1 684 JR ?0331 + 00004A04 685 ?0013: + 00004A04 EB 686 EX DE,HL + 00004A05 C3 1F 81 687 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004A08 688 setCurrentFont: + 00004A08 CD 52 81 689 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004A0B 3E 00 690 LD A,BYTE3 fontSearch + 00004A0D 21 D8 49 691 LD HL,LWRD fontSearch + 00004A10 CD 79 4A 692 CALL LWRD ?0458 + 00004A13 28 29 693 JR Z,?0019 + 00004A15 694 ?0018: + 00004A15 DD 5E 02 695 LD E,(IX+2) + 00004A18 DD 56 03 696 LD D,(IX+3) + 00004A1B 3E 00 697 LD A,BYTE3 grSetFont + 00004A1D 21 9B 49 698 LD HL,LWRD grSetFont + 00004A20 CD 5E 81 699 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A23 21 12 00 700 LD HL,18 + 00004A26 ED 4B BF 86 701 LD BC,(global) + 00004A2A 09 702 ADD HL,BC + 00004A2B E5 703 PUSH HL + 00004A2C DD 5E 02 704 LD E,(IX+2) + 00004A2F DD 56 03 705 LD D,(IX+3) + 00004A32 3E 00 706 LD A,BYTE3 fontSearch + 00004A34 21 D8 49 707 LD HL,LWRD fontSearch + 00004A37 CD 84 4A 708 CALL LWRD ?0459 + 00004A3A E1 709 POP HL + 00004A3B 71 710 LD (HL),C + 00004A3C 23 711 INC HL + 00004A3D 70 712 LD (HL),B + 00004A3E 713 ?0019: + 00004A3E C3 1F 81 714 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004A41 715 ?0454: + 00004A41 21 12 00 716 LD HL,18 + 00004A44 ED 4B BF 86 717 LD BC,(global) + 00004A48 09 718 ADD HL,BC + 00004A49 46 719 LD B,(HL) + 00004A4A 23 720 INC HL + 00004A4B 66 721 LD H,(HL) + 00004A4C 68 722 LD L,B + 00004A4D 723 ?0453: + 00004A4D 23 724 INC HL + 00004A4E 23 725 INC HL + 00004A4F 4E 726 LD C,(HL) + 00004A50 23 727 INC HL + 00004A51 46 728 LD B,(HL) + 00004A52 23 729 INC HL + 00004A53 7E 730 LD A,(HL) + 00004A54 69 731 LD L,C + 00004A55 60 732 LD H,B + 00004A56 CD 5E 81 733 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A59 4D 734 LD C,L + 00004A5A 44 735 LD B,H + 00004A5B FD 6E 06 736 LD L,(IY+6) + 00004A5E FD 66 07 737 LD H,(IY+7) + 00004A61 A7 738 AND A + 00004A62 ED 42 739 SBC HL,BC + 00004A64 EB 740 EX DE,HL + 00004A65 01 02 00 741 LD BC,2 + 00004A68 CD B8 81 742 CALL LWRD ?SS_DIV_L02 + 00004A6B DD 6E 04 743 LD L,(IX+4) + 00004A6E DD 66 05 744 LD H,(IX+5) + 00004A71 19 745 ADD HL,DE + 00004A72 EB 746 EX DE,HL + 00004A73 3E 00 747 LD A,BYTE3 Move + 00004A75 21 26 47 748 LD HL,LWRD Move + 00004A78 C9 749 RET + 00004A79 750 ?0458: + 00004A79 CD 5E 81 751 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A7C 7D 752 LD A,L + 00004A7D B4 753 OR H + 00004A7E C9 754 RET + 00004A7F 755 ?0460: + 00004A7F 3E 00 756 LD A,BYTE3 malloc + 00004A81 21 31 7A 757 LD HL,LWRD malloc + 00004A84 758 ?0459: + 00004A84 CD 5E 81 759 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004A87 4D 760 LD C,L + 00004A88 44 761 LD B,H + 00004A89 C9 762 RET + 00004A8A 763 loadFont: + 00004A8A CD 88 81 764 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004A8D FC FF 765 DEFW 65532 + 00004A8F FD E5 766 PUSH IY + 00004A91 11 0E 00 767 LD DE,14 + 00004A94 CD 25 4B 768 CALL LWRD ?0457 + 00004A97 DD 4E 02 769 LD C,(IX+2) + 00004A9A 71 770 LD (HL),C + 00004A9B DD 46 03 771 LD B,(IX+3) + 00004A9E 23 772 INC HL + 00004A9F 70 773 LD (HL),B + 00004AA0 DD 46 0C 774 LD B,(IX+12) + 00004AA3 DD 6E 0A 775 LD L,(IX+10) + 00004AA6 FD 75 02 776 LD (IY+2),L + 00004AA9 DD 66 0B 777 LD H,(IX+11) + 00004AAC FD 74 03 778 LD (IY+3),H + 00004AAF FD 70 04 779 LD (IY+4),B + 00004AB2 DD 46 10 780 LD B,(IX+16) + 00004AB5 DD 6E 0E 781 LD L,(IX+14) + 00004AB8 FD 75 05 782 LD (IY+5),L + 00004ABB DD 66 0F 783 LD H,(IX+15) + 00004ABE FD 74 06 784 LD (IY+6),H + 00004AC1 FD 70 07 785 LD (IY+7),B + 00004AC4 AF 786 XOR A + 00004AC5 FD 77 08 787 LD (IY+8),A + 00004AC8 FD 77 09 788 LD (IY+9),A + 00004ACB DD 6E 12 789 LD L,(IX+18) + 00004ACE FD 75 0A 790 LD (IY+10),L + 00004AD1 DD 66 13 791 LD H,(IX+19) + 00004AD4 FD 74 0B 792 LD (IY+11),H + 00004AD7 DD 6E 14 793 LD L,(IX+20) + 00004ADA FD 75 0C 794 LD (IY+12),L + 00004ADD DD 66 15 795 LD H,(IX+21) + 00004AE0 FD 74 0D 796 LD (IY+13),H + 00004AE3 21 14 00 797 LD HL,20 + 00004AE6 ED 4B BF 86 798 LD BC,(global) + 00004AEA 09 799 ADD HL,BC + 00004AEB 7E 800 LD A,(HL) + 00004AEC 23 801 INC HL + 00004AED B6 802 OR (HL) + 00004AEE 21 14 00 803 LD HL,20 + 00004AF1 ED 4B BF 86 804 LD BC,(global) + 00004AF5 09 805 ADD HL,BC + 00004AF6 20 10 806 JR NZ,?0021 + 00004AF8 807 ?0020: + 00004AF8 FD E5 808 PUSH IY + 00004AFA C1 809 POP BC + 00004AFB 71 810 LD (HL),C + 00004AFC 23 811 INC HL + 00004AFD 70 812 LD (HL),B + 00004AFE 21 12 00 813 LD HL,18 + 00004B01 ED 4B BF 86 814 LD BC,(global) + 00004B05 09 815 ADD HL,BC + 00004B06 18 12 816 JR ?0023 + 00004B08 817 ?0021: + 00004B08 46 818 LD B,(HL) + 00004B09 23 819 INC HL + 00004B0A 66 820 LD H,(HL) + 00004B0B 68 821 LD L,B + 00004B0C EB 822 EX DE,HL + 00004B0D 823 ?0024: + 00004B0D 21 08 00 824 LD HL,8 + 00004B10 19 825 ADD HL,DE + 00004B11 7E 826 LD A,(HL) + 00004B12 23 827 INC HL + 00004B13 B6 828 OR (HL) + 00004B14 21 08 00 829 LD HL,8 + 00004B17 19 830 ADD HL,DE + 00004B18 20 EE 831 JR NZ,?0021 + 00004B1A 832 ?0025: + 00004B1A 833 ?0023: + 00004B1A FD E5 834 PUSH IY + 00004B1C C1 835 POP BC + 00004B1D 71 836 LD (HL),C + 00004B1E 23 837 INC HL + 00004B1F 70 838 LD (HL),B + 00004B20 839 ?0022: + 00004B20 FD E1 840 POP IY + 00004B22 C3 1F 81 841 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004B25 842 ?0457: + 00004B25 3E 00 843 LD A,BYTE3 malloc + 00004B27 21 31 7A 844 LD HL,LWRD malloc + 00004B2A CD 5E 81 845 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004B2D E5 846 PUSH HL + 00004B2E FD E1 847 POP IY + 00004B30 C9 848 RET + 00004B31 849 stringwidth: + 00004B31 FD E5 850 PUSH IY + 00004B33 DD E5 851 PUSH IX + 00004B35 C5 852 PUSH BC + 00004B36 D5 853 PUSH DE + 00004B37 DD 21 00 00 854 LD IX,0 + 00004B3B FD 21 00 00 855 LD IY,0 + 00004B3F 856 ?0027: + 00004B3F FD E5 857 PUSH IY + 00004B41 21 02 00 858 LD HL,2 + 00004B44 39 859 ADD HL,SP + 00004B45 4E 860 LD C,(HL) + 00004B46 23 861 INC HL + 00004B47 46 862 LD B,(HL) + 00004B48 E1 863 POP HL + 00004B49 09 864 ADD HL,BC + 00004B4A 7E 865 LD A,(HL) + 00004B4B B7 866 OR A + 00004B4C 28 50 867 JR Z,?0026 + 00004B4E 868 ?0028: + 00004B4E FD E5 869 PUSH IY + 00004B50 E1 870 POP HL + 00004B51 09 871 ADD HL,BC + 00004B52 5E 872 LD E,(HL) + 00004B53 CD 40 81 873 CALL LWRD ?C_V_SWITCH_L06 + 00004B56 0A 00 874 DEFW 10 + 00004B58 21 875 DEFB 33 + 00004B59 2C 876 DEFB 44 + 00004B5A 2E 877 DEFB 46 + 00004B5B 31 878 DEFB 49 + 00004B5C 49 879 DEFB 73 + 00004B5D 69 880 DEFB 105 + 00004B5E 6A 881 DEFB 106 + 00004B5F 6B 882 DEFB 107 + 00004B60 6C 883 DEFB 108 + 00004B61 72 884 DEFB 114 + 00004B62 8C 4B 885 DEFW ?0034 + 00004B64 87 4B 886 DEFW ?0033 + 00004B66 7D 4B 887 DEFW ?0031 + 00004B68 87 4B 888 DEFW ?0033 + 00004B6A 87 4B 889 DEFW ?0033 + 00004B6C 78 4B 890 DEFW ?0030 + 00004B6E 78 4B 891 DEFW ?0030 + 00004B70 82 4B 892 DEFW ?0032 + 00004B72 82 4B 893 DEFW ?0032 + 00004B74 82 4B 894 DEFW ?0032 + 00004B76 78 4B 895 DEFW ?0030 + 00004B78 896 ?0030: + 00004B78 01 02 00 897 LD BC,2 + 00004B7B 18 12 898 JR ?0341 + 00004B7D 899 ?0031: + 00004B7D 01 03 00 900 LD BC,3 + 00004B80 18 0D 901 JR ?0341 + 00004B82 902 ?0032: + 00004B82 01 04 00 903 LD BC,4 + 00004B85 18 08 904 JR ?0341 + 00004B87 905 ?0033: + 00004B87 01 05 00 906 LD BC,5 + 00004B8A 18 03 907 JR ?0341 + 00004B8C 908 ?0034: + 00004B8C 01 06 00 909 LD BC,6 + 00004B8F 910 ?0341: + 00004B8F DD 09 911 ADD IX,BC + 00004B91 912 ?0029: + 00004B91 21 02 00 913 LD HL,2 + 00004B94 39 914 ADD HL,SP + 00004B95 4E 915 LD C,(HL) + 00004B96 23 916 INC HL + 00004B97 46 917 LD B,(HL) + 00004B98 DD 09 918 ADD IX,BC + 00004B9A FD 23 919 INC IY + 00004B9C 18 A1 920 JR ?0027 + 00004B9E 921 ?0026: + 00004B9E DD E5 922 PUSH IX + 00004BA0 E1 923 POP HL + 00004BA1 F1 924 POP AF + 00004BA2 F1 925 POP AF + 00004BA3 DD E1 926 POP IX + 00004BA5 FD E1 927 POP IY + 00004BA7 C3 25 81 928 JP LWRD ?BANK_FAST_LEAVE_L08 + 00004BAA 929 stringheight: + 00004BAA CD 52 81 930 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004BAD 7B 931 LD A,E + 00004BAE FE 80 932 CP 128 + 00004BB0 30 06 933 JR NC,?0036 + 00004BB2 934 ?0035: + 00004BB2 21 07 00 935 LD HL,7 + 00004BB5 09 936 ADD HL,BC + 00004BB6 18 0C 937 JR ?0038 + 00004BB8 938 ?0036: + 00004BB8 FE CC 939 CP 204 + 00004BBA 38 08 940 JR C,?0038 + 00004BBC 3E DF 941 LD A,223 + 00004BBE BB 942 CP E + 00004BBF 38 03 943 JR C,?0038 + 00004BC1 944 ?0040: + 00004BC1 945 ?0039: + 00004BC1 946 ?0037: + 00004BC1 69 947 LD L,C + 00004BC2 60 948 LD H,B + 00004BC3 23 949 INC HL + 00004BC4 950 ?0038: + 00004BC4 951 ?0041: + 00004BC4 C3 1F 81 952 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004BC7 953 stringheight01: + 00004BC7 CD 52 81 954 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004BCA 01 00 00 955 LD BC,0 + 00004BCD 956 ?0419: + 00004BCD 1A 957 LD A,(DE) + 00004BCE 5F 958 LD E,A + 00004BCF 3E 00 959 LD A,BYTE3 stringheight + 00004BD1 21 AA 4B 960 LD HL,LWRD stringheight + 00004BD4 CD 5E 81 961 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004BD7 C3 1F 81 962 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004BDA 963 stringheight2: + 00004BDA CD 52 81 964 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004BDD 01 05 00 965 LD BC,5 + 00004BE0 C3 CD 4B 966 JP LWRD ?0419 + 00004BE3 967 stringwidth0: + 00004BE3 CD 52 81 968 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004BE6 01 00 00 969 LD BC,0 + 00004BE9 970 ?0420: + 00004BE9 3E 00 971 LD A,BYTE3 stringwidth + 00004BEB 21 31 4B 972 LD HL,LWRD stringwidth + 00004BEE CD 5E 81 973 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004BF1 C3 1F 81 974 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004BF4 975 stringwidth1: + 00004BF4 CD 52 81 976 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004BF7 01 02 00 977 LD BC,2 + 00004BFA C3 E9 4B 978 JP LWRD ?0420 + 00004BFD 979 stringwidth2: + 00004BFD CD 52 81 980 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00004C00 01 03 00 981 LD BC,3 + 00004C03 C3 E9 4B 982 JP LWRD ?0420 + 00004C06 983 Component_new: + 00004C06 CD 88 81 984 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004C09 00 00 985 DEFW 0 + 00004C0B FD E5 986 PUSH IY + 00004C0D 11 28 00 987 LD DE,40 + 00004C10 CD 25 4B 988 CALL LWRD ?0457 + 00004C13 2A BF 86 989 LD HL,(global) + 00004C16 5E 990 LD E,(HL) + 00004C17 23 991 INC HL + 00004C18 56 992 LD D,(HL) + 00004C19 13 993 INC DE + 00004C1A 72 994 LD (HL),D + 00004C1B 2B 995 DEC HL + 00004C1C 73 996 LD (HL),E + 00004C1D FD E5 997 PUSH IY + 00004C1F E1 998 POP HL + 00004C20 73 999 LD (HL),E + 00004C21 23 1000 INC HL + 00004C22 72 1001 LD (HL),D + 00004C23 DD 6E 02 1002 LD L,(IX+2) + 00004C26 FD 75 02 1003 LD (IY+2),L + 00004C29 DD 66 03 1004 LD H,(IX+3) + 00004C2C FD 74 03 1005 LD (IY+3),H + 00004C2F FD 71 04 1006 LD (IY+4),C + 00004C32 FD 70 05 1007 LD (IY+5),B + 00004C35 DD 6E 0A 1008 LD L,(IX+10) + 00004C38 FD 75 06 1009 LD (IY+6),L + 00004C3B DD 66 0B 1010 LD H,(IX+11) + 00004C3E FD 74 07 1011 LD (IY+7),H + 00004C41 DD 6E 0C 1012 LD L,(IX+12) + 00004C44 FD 75 08 1013 LD (IY+8),L + 00004C47 DD 66 0D 1014 LD H,(IX+13) + 00004C4A FD 74 09 1015 LD (IY+9),H + 00004C4D AF 1016 XOR A + 00004C4E FD 77 0A 1017 LD (IY+10),A + 00004C51 FD 77 0B 1018 LD (IY+11),A + 00004C54 FD 77 0C 1019 LD (IY+12),A + 00004C57 FD 77 0D 1020 LD (IY+13),A + 00004C5A FD 77 0E 1021 LD (IY+14),A + 00004C5D FD 77 0F 1022 LD (IY+15),A + 00004C60 FD 77 10 1023 LD (IY+16),A + 00004C63 FD 77 11 1024 LD (IY+17),A + 00004C66 FD 77 12 1025 LD (IY+18),A + 00004C69 FD 77 13 1026 LD (IY+19),A + 00004C6C FD 77 14 1027 LD (IY+20),A + 00004C6F FD 77 15 1028 LD (IY+21),A + 00004C72 FD 77 16 1029 LD (IY+22),A + 00004C75 FD 77 17 1030 LD (IY+23),A + 00004C78 FD 77 18 1031 LD (IY+24),A + 00004C7B FD 77 19 1032 LD (IY+25),A + 00004C7E FD 77 1A 1033 LD (IY+26),A + 00004C81 FD 77 1B 1034 LD (IY+27),A + 00004C84 FD 77 1C 1035 LD (IY+28),A + 00004C87 FD 77 1D 1036 LD (IY+29),A + 00004C8A FD 77 1E 1037 LD (IY+30),A + 00004C8D FD 77 1F 1038 LD (IY+31),A + 00004C90 FD 77 24 1039 LD (IY+36),A + 00004C93 FD 77 25 1040 LD (IY+37),A + 00004C96 FD 77 26 1041 LD (IY+38),A + 00004C99 FD 77 27 1042 LD (IY+39),A + 00004C9C FD 77 20 1043 LD (IY+32),A + 00004C9F FD 77 21 1044 LD (IY+33),A + 00004CA2 FD 77 22 1045 LD (IY+34),A + 00004CA5 FD 77 23 1046 LD (IY+35),A + 00004CA8 1047 ?0422: + 00004CA8 FD E5 1048 PUSH IY + 00004CAA E1 1049 POP HL + 00004CAB FD E1 1050 POP IY + 00004CAD C3 1F 81 1051 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004CB0 1052 Component_setlabel: + 00004CB0 CD 88 81 1053 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004CB3 00 00 1054 DEFW 0 + 00004CB5 FD E5 1055 PUSH IY + 00004CB7 DD 6E 02 1056 LD L,(IX+2) + 00004CBA DD 66 03 1057 LD H,(IX+3) + 00004CBD E5 1058 PUSH HL + 00004CBE FD E1 1059 POP IY + 00004CC0 11 00 00 1060 LD DE,0 + 00004CC3 1061 ?0043: + 00004CC3 DD 6E 04 1062 LD L,(IX+4) + 00004CC6 DD 66 05 1063 LD H,(IX+5) + 00004CC9 19 1064 ADD HL,DE + 00004CCA 7E 1065 LD A,(HL) + 00004CCB B7 1066 OR A + 00004CCC 28 21 1067 JR Z,?0042 + 00004CCE 01 14 80 1068 LD BC,32788 + 00004CD1 6B 1069 LD L,E + 00004CD2 62 1070 LD H,D + 00004CD3 78 1071 LD A,B + 00004CD4 AC 1072 XOR H + 00004CD5 67 1073 LD H,A + 00004CD6 ED 42 1074 SBC HL,BC + 00004CD8 30 15 1075 JR NC,?0042 + 00004CDA 1076 ?0046: + 00004CDA 1077 ?0045: + 00004CDA 1078 ?0044: + 00004CDA FD 6E 20 1079 LD L,(IY+32) + 00004CDD FD 66 21 1080 LD H,(IY+33) + 00004CE0 19 1081 ADD HL,DE + 00004CE1 E5 1082 PUSH HL + 00004CE2 DD 6E 04 1083 LD L,(IX+4) + 00004CE5 DD 66 05 1084 LD H,(IX+5) + 00004CE8 19 1085 ADD HL,DE + 00004CE9 46 1086 LD B,(HL) + 00004CEA E1 1087 POP HL + 00004CEB 70 1088 LD (HL),B + 00004CEC 13 1089 INC DE + 00004CED 18 D4 1090 JR ?0043 + 00004CEF 1091 ?0042: + 00004CEF FD 6E 20 1092 LD L,(IY+32) + 00004CF2 FD 66 21 1093 LD H,(IY+33) + 00004CF5 19 1094 ADD HL,DE + 00004CF6 36 00 1095 LD (HL),0 + 00004CF8 FD E1 1096 POP IY + 00004CFA C3 1F 81 1097 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004CFD 1098 Component_add: + 00004CFD CD 88 81 1099 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004D00 00 00 1100 DEFW 0 + 00004D02 FD E5 1101 PUSH IY + 00004D04 59 1102 LD E,C + 00004D05 50 1103 LD D,B + 00004D06 21 15 00 1104 LD HL,21 + 00004D09 DD 4E 02 1105 LD C,(IX+2) + 00004D0C DD 46 03 1106 LD B,(IX+3) + 00004D0F 09 1107 ADD HL,BC + 00004D10 7E 1108 LD A,(HL) + 00004D11 23 1109 INC HL + 00004D12 66 1110 LD H,(HL) + 00004D13 6F 1111 LD L,A + 00004D14 E5 1112 PUSH HL + 00004D15 FD E1 1113 POP IY + 00004D17 21 15 00 1114 LD HL,21 + 00004D1A 09 1115 ADD HL,BC + 00004D1B 7E 1116 LD A,(HL) + 00004D1C 23 1117 INC HL + 00004D1D B6 1118 OR (HL) + 00004D1E 20 09 1119 JR NZ,?0048 + 00004D20 1120 ?0047: + 00004D20 21 15 00 1121 LD HL,21 + 00004D23 09 1122 ADD HL,BC + 00004D24 73 1123 LD (HL),E + 00004D25 23 1124 INC HL + 00004D26 72 1125 LD (HL),D + 00004D27 18 19 1126 JR ?0345 + 00004D29 1127 ?0048: + 00004D29 1128 ?0051: + 00004D29 FD 7E 13 1129 LD A,(IY+19) + 00004D2C FD B6 14 1130 OR (IY+20) + 00004D2F 28 0B 1131 JR Z,?0050 + 00004D31 1132 ?0052: + 00004D31 FD 6E 13 1133 LD L,(IY+19) + 00004D34 FD 66 14 1134 LD H,(IY+20) + 00004D37 E5 1135 PUSH HL + 00004D38 FD E1 1136 POP IY + 00004D3A 18 ED 1137 JR ?0048 + 00004D3C 1138 ?0050: + 00004D3C FD 73 13 1139 LD (IY+19),E + 00004D3F FD 72 14 1140 LD (IY+20),D + 00004D42 1141 ?0345: + 00004D42 21 13 00 1142 LD HL,19 + 00004D45 19 1143 ADD HL,DE + 00004D46 77 1144 LD (HL),A + 00004D47 23 1145 INC HL + 00004D48 77 1146 LD (HL),A + 00004D49 1147 ?0049: + 00004D49 21 11 00 1148 LD HL,17 + 00004D4C 19 1149 ADD HL,DE + 00004D4D DD 4E 02 1150 LD C,(IX+2) + 00004D50 71 1151 LD (HL),C + 00004D51 DD 46 03 1152 LD B,(IX+3) + 00004D54 23 1153 INC HL + 00004D55 70 1154 LD (HL),B + 00004D56 FD E1 1155 POP IY + 00004D58 C3 1F 81 1156 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004D5B 1157 Component_paint: + 00004D5B C5 1158 PUSH BC + 00004D5C FD E5 1159 PUSH IY + 00004D5E DD E5 1160 PUSH IX + 00004D60 21 15 00 1161 LD HL,21 + 00004D63 19 1162 ADD HL,DE + 00004D64 46 1163 LD B,(HL) + 00004D65 23 1164 INC HL + 00004D66 66 1165 LD H,(HL) + 00004D67 68 1166 LD L,B + 00004D68 E5 1167 PUSH HL + 00004D69 DD E1 1168 POP IX + 00004D6B CD 97 4D 1169 CALL LWRD ?0486 + 00004D6E 1170 ?0054: + 00004D6E DD E5 1171 PUSH IX + 00004D70 E1 1172 POP HL + 00004D71 7D 1173 LD A,L + 00004D72 B4 1174 OR H + 00004D73 28 1A 1175 JR Z,?0053 + 00004D75 1176 ?0055: + 00004D75 DD E5 1177 PUSH IX + 00004D77 D1 1178 POP DE + 00004D78 DD 7E 1C 1179 LD A,(IX+28) + 00004D7B DD 6E 1A 1180 LD L,(IX+26) + 00004D7E DD 66 1B 1181 LD H,(IX+27) + 00004D81 CD 5E 81 1182 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00004D84 DD 6E 13 1183 LD L,(IX+19) + 00004D87 DD 66 14 1184 LD H,(IX+20) + 00004D8A E5 1185 PUSH HL + 00004D8B DD E1 1186 POP IX + 00004D8D 18 DF 1187 JR ?0054 + 00004D8F 1188 ?0053: + 00004D8F 1E 01 1189 LD E,1 + 00004D91 CD 99 4D 1190 CALL LWRD ?0487 + 00004D94 C3 C1 48 1191 JP LWRD ?0415 + 00004D97 1192 ?0486: + 00004D97 1E 00 1193 LD E,0 + 00004D99 1194 ?0487: + 00004D99 3E 00 1195 LD A,BYTE3 EnableScreen + 00004D9B 21 5D 49 1196 LD HL,LWRD EnableScreen + 00004D9E C3 5E 81 1197 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004DA1 1198 Component_findXY: + 00004DA1 CD 88 81 1199 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004DA4 00 00 1200 DEFW 0 + 00004DA6 FD E5 1201 PUSH IY + 00004DA8 DD 6E 02 1202 LD L,(IX+2) + 00004DAB DD 66 03 1203 LD H,(IX+3) + 00004DAE E5 1204 PUSH HL + 00004DAF FD E1 1205 POP IY + 00004DB1 1206 ?0058: + 00004DB1 DD 6E 04 1207 LD L,(IX+4) + 00004DB4 DD 66 05 1208 LD H,(IX+5) + 00004DB7 7E 1209 LD A,(HL) + 00004DB8 FD 86 02 1210 ADD A,(IY+2) + 00004DBB 77 1211 LD (HL),A + 00004DBC 23 1212 INC HL + 00004DBD 7E 1213 LD A,(HL) + 00004DBE FD 8E 03 1214 ADC A,(IY+3) + 00004DC1 77 1215 LD (HL),A + 00004DC2 DD 6E 0A 1216 LD L,(IX+10) + 00004DC5 DD 66 0B 1217 LD H,(IX+11) + 00004DC8 7E 1218 LD A,(HL) + 00004DC9 FD 86 04 1219 ADD A,(IY+4) + 00004DCC 77 1220 LD (HL),A + 00004DCD 23 1221 INC HL + 00004DCE 7E 1222 LD A,(HL) + 00004DCF FD 8E 05 1223 ADC A,(IY+5) + 00004DD2 77 1224 LD (HL),A + 00004DD3 FD 6E 11 1225 LD L,(IY+17) + 00004DD6 FD 66 12 1226 LD H,(IY+18) + 00004DD9 E5 1227 PUSH HL + 00004DDA FD E1 1228 POP IY + 00004DDC 7D 1229 LD A,L + 00004DDD B4 1230 OR H + 00004DDE 20 D1 1231 JR NZ,?0058 + 00004DE0 1232 ?0056: + 00004DE0 FD E1 1233 POP IY + 00004DE2 C3 1F 81 1234 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004DE5 1235 Component_find: + 00004DE5 CD 88 81 1236 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004DE8 00 00 1237 DEFW 0 + 00004DEA 21 15 00 1238 LD HL,21 + 00004DED DD 4E 02 1239 LD C,(IX+2) + 00004DF0 DD 46 03 1240 LD B,(IX+3) + 00004DF3 09 1241 ADD HL,BC + 00004DF4 1242 ?0346: + 00004DF4 46 1243 LD B,(HL) + 00004DF5 23 1244 INC HL + 00004DF6 66 1245 LD H,(HL) + 00004DF7 68 1246 LD L,B + 00004DF8 EB 1247 EX DE,HL + 00004DF9 1248 ?0060: + 00004DF9 7B 1249 LD A,E + 00004DFA B2 1250 OR D + 00004DFB 28 1B 1251 JR Z,?0059 + 00004DFD 1252 ?0061: + 00004DFD 21 10 00 1253 LD HL,16 + 00004E00 19 1254 ADD HL,DE + 00004E01 4E 1255 LD C,(HL) + 00004E02 06 00 1256 LD B,0 + 00004E04 DD 6E 04 1257 LD L,(IX+4) + 00004E07 DD 66 05 1258 LD H,(IX+5) + 00004E0A A7 1259 AND A + 00004E0B ED 42 1260 SBC HL,BC + 00004E0D 20 03 1261 JR NZ,?0063 + 00004E0F 1262 ?0062: + 00004E0F EB 1263 EX DE,HL + 00004E10 18 08 1264 JR ?0064 + 00004E12 1265 ?0063: + 00004E12 21 13 00 1266 LD HL,19 + 00004E15 19 1267 ADD HL,DE + 00004E16 18 DC 1268 JR ?0346 + 00004E18 1269 ?0059: + 00004E18 6F 1270 LD L,A + 00004E19 67 1271 LD H,A + 00004E1A 1272 ?0064: + 00004E1A C3 1F 81 1273 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004E1D 1274 Component_delete: + 00004E1D CD 88 81 1275 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00004E20 F8 FF 1276 DEFW 65528 + 00004E22 FD E5 1277 PUSH IY + 00004E24 DD 6E 02 1278 LD L,(IX+2) + 00004E27 DD 66 03 1279 LD H,(IX+3) + 00004E2A E5 1280 PUSH HL + 00004E2B FD E1 1281 POP IY + 00004E2D FD 6E 15 1282 LD L,(IY+21) + 00004E30 DD 75 F8 1283 LD (IX-8),L + 00004E33 FD 66 16 1284 LD H,(IY+22) + 00004E36 DD 74 F9 1285 LD (IX-7),H + 00004E39 FD E5 1286 PUSH IY + 00004E3B E1 1287 POP HL + 00004E3C 7D 1288 LD A,L + 00004E3D B4 1289 OR H + 00004E3E CA D0 4F 1290 JP Z,?0066 + 00004E41 1291 ?0065: + 00004E41 1292 ?0068: + 00004E41 DD 7E F8 1293 LD A,(IX-8) + 00004E44 DD B6 F9 1294 OR (IX-7) + 00004E47 28 11 1295 JR Z,?0067 + 00004E49 1296 ?0069: + 00004E49 DD 5E F8 1297 LD E,(IX-8) + 00004E4C DD 56 F9 1298 LD D,(IX-7) + 00004E4F CD E6 4F 1299 CALL LWRD ?0467 + 00004E52 DD 75 F8 1300 LD (IX-8),L + 00004E55 DD 74 F9 1301 LD (IX-7),H + 00004E58 18 E7 1302 JR ?0065 + 00004E5A 1303 ?0067: + 00004E5A FD 7E 11 1304 LD A,(IY+17) + 00004E5D FD B6 12 1305 OR (IY+18) + 00004E60 CA EC 4E 1306 JP Z,?0081 + 00004E63 1307 ?0070: + 00004E63 FD 6E 11 1308 LD L,(IY+17) + 00004E66 FD 66 12 1309 LD H,(IY+18) + 00004E69 01 15 00 1310 LD BC,21 + 00004E6C 09 1311 ADD HL,BC + 00004E6D 46 1312 LD B,(HL) + 00004E6E 23 1313 INC HL + 00004E6F 66 1314 LD H,(HL) + 00004E70 68 1315 LD L,B + 00004E71 FD E5 1316 PUSH IY + 00004E73 C1 1317 POP BC + 00004E74 A7 1318 AND A + 00004E75 ED 42 1319 SBC HL,BC + 00004E77 FD 6E 11 1320 LD L,(IY+17) + 00004E7A FD 66 12 1321 LD H,(IY+18) + 00004E7D 01 15 00 1322 LD BC,21 + 00004E80 09 1323 ADD HL,BC + 00004E81 20 09 1324 JR NZ,?0073 + 00004E83 1325 ?0072: + 00004E83 E5 1326 PUSH HL + 00004E84 FD 6E 11 1327 LD L,(IY+17) + 00004E87 FD 66 12 1328 LD H,(IY+18) + 00004E8A 18 50 1329 JR ?0349 + 00004E8C 1330 ?0073: + 00004E8C 46 1331 LD B,(HL) + 00004E8D 23 1332 INC HL + 00004E8E 66 1333 LD H,(HL) + 00004E8F 68 1334 LD L,B + 00004E90 1335 ?0348: + 00004E90 DD 75 F8 1336 LD (IX-8),L + 00004E93 DD 74 F9 1337 LD (IX-7),H + 00004E96 1338 ?0076: + 00004E96 21 13 00 1339 LD HL,19 + 00004E99 DD 4E F8 1340 LD C,(IX-8) + 00004E9C DD 46 F9 1341 LD B,(IX-7) + 00004E9F 09 1342 ADD HL,BC + 00004EA0 46 1343 LD B,(HL) + 00004EA1 23 1344 INC HL + 00004EA2 66 1345 LD H,(HL) + 00004EA3 68 1346 LD L,B + 00004EA4 FD E5 1347 PUSH IY + 00004EA6 C1 1348 POP BC + 00004EA7 A7 1349 AND A + 00004EA8 ED 42 1350 SBC HL,BC + 00004EAA 28 19 1351 JR Z,?0075 + 00004EAC 21 13 00 1352 LD HL,19 + 00004EAF DD 4E F8 1353 LD C,(IX-8) + 00004EB2 DD 46 F9 1354 LD B,(IX-7) + 00004EB5 09 1355 ADD HL,BC + 00004EB6 7E 1356 LD A,(HL) + 00004EB7 23 1357 INC HL + 00004EB8 B6 1358 OR (HL) + 00004EB9 28 0A 1359 JR Z,?0075 + 00004EBB 1360 ?0079: + 00004EBB 1361 ?0078: + 00004EBB 1362 ?0077: + 00004EBB 21 13 00 1363 LD HL,19 + 00004EBE 09 1364 ADD HL,BC + 00004EBF 56 1365 LD D,(HL) + 00004EC0 23 1366 INC HL + 00004EC1 66 1367 LD H,(HL) + 00004EC2 6A 1368 LD L,D + 00004EC3 18 CB 1369 JR ?0348 + 00004EC5 1370 ?0075: + 00004EC5 21 13 00 1371 LD HL,19 + 00004EC8 DD 4E F8 1372 LD C,(IX-8) + 00004ECB DD 46 F9 1373 LD B,(IX-7) + 00004ECE 09 1374 ADD HL,BC + 00004ECF 7E 1375 LD A,(HL) + 00004ED0 23 1376 INC HL + 00004ED1 B6 1377 OR (HL) + 00004ED2 28 18 1378 JR Z,?0081 + 00004ED4 1379 ?0080: + 00004ED4 21 13 00 1380 LD HL,19 + 00004ED7 09 1381 ADD HL,BC + 00004ED8 E5 1382 PUSH HL + 00004ED9 21 13 00 1383 LD HL,19 + 00004EDC 1384 ?0349: + 00004EDC 09 1385 ADD HL,BC + 00004EDD 46 1386 LD B,(HL) + 00004EDE 23 1387 INC HL + 00004EDF 66 1388 LD H,(HL) + 00004EE0 68 1389 LD L,B + 00004EE1 01 13 00 1390 LD BC,19 + 00004EE4 09 1391 ADD HL,BC + 00004EE5 4E 1392 LD C,(HL) + 00004EE6 23 1393 INC HL + 00004EE7 46 1394 LD B,(HL) + 00004EE8 E1 1395 POP HL + 00004EE9 71 1396 LD (HL),C + 00004EEA 23 1397 INC HL + 00004EEB 70 1398 LD (HL),B + 00004EEC 1399 ?0081: + 00004EEC 1400 ?0074: + 00004EEC 1401 ?0071: + 00004EEC FD 6E 13 1402 LD L,(IY+19) + 00004EEF DD 75 F8 1403 LD (IX-8),L + 00004EF2 FD 66 14 1404 LD H,(IY+20) + 00004EF5 DD 74 F9 1405 LD (IX-7),H + 00004EF8 3E 04 1406 LD A,4 + 00004EFA FD AE 24 1407 XOR (IY+36) + 00004EFD FD B6 25 1408 OR (IY+37) + 00004F00 C2 9C 4F 1409 JP NZ,?0090 + 00004F03 1410 ?0082: + 00004F03 FD 6E 11 1411 LD L,(IY+17) + 00004F06 DD 75 FC 1412 LD (IX-4),L + 00004F09 FD 66 12 1413 LD H,(IY+18) + 00004F0C DD 74 FD 1414 LD (IX-3),H + 00004F0F FD 6E 26 1415 LD L,(IY+38) + 00004F12 DD 75 FE 1416 LD (IX-2),L + 00004F15 FD 66 27 1417 LD H,(IY+39) + 00004F18 DD 74 FF 1418 LD (IX-1),H + 00004F1B CD DB 4F 1419 CALL LWRD ?0464 + 00004F1E DD 6E FE 1420 LD L,(IX-2) + 00004F21 DD 66 FF 1421 LD H,(IX-1) + 00004F24 23 1422 INC HL + 00004F25 23 1423 INC HL + 00004F26 CD DB 4F 1424 CALL LWRD ?0464 + 00004F29 1425 ?0085: + 00004F29 DD 7E FC 1426 LD A,(IX-4) + 00004F2C DD B6 FD 1427 OR (IX-3) + 00004F2F 28 20 1428 JR Z,?0084 + 00004F31 21 24 00 1429 LD HL,36 + 00004F34 DD 4E FC 1430 LD C,(IX-4) + 00004F37 DD 46 FD 1431 LD B,(IX-3) + 00004F3A 09 1432 ADD HL,BC + 00004F3B 3E 04 1433 LD A,4 + 00004F3D AE 1434 XOR (HL) + 00004F3E 23 1435 INC HL + 00004F3F B6 1436 OR (HL) + 00004F40 28 0F 1437 JR Z,?0084 + 00004F42 1438 ?0088: + 00004F42 1439 ?0087: + 00004F42 1440 ?0086: + 00004F42 21 11 00 1441 LD HL,17 + 00004F45 09 1442 ADD HL,BC + 00004F46 56 1443 LD D,(HL) + 00004F47 DD 72 FC 1444 LD (IX-4),D + 00004F4A 23 1445 INC HL + 00004F4B 66 1446 LD H,(HL) + 00004F4C DD 74 FD 1447 LD (IX-3),H + 00004F4F 18 D8 1448 JR ?0085 + 00004F51 1449 ?0084: + 00004F51 DD 7E FC 1450 LD A,(IX-4) + 00004F54 DD B6 FD 1451 OR (IX-3) + 00004F57 28 43 1452 JR Z,?0090 + 00004F59 1453 ?0089: + 00004F59 21 26 00 1454 LD HL,38 + 00004F5C DD 4E FC 1455 LD C,(IX-4) + 00004F5F DD 46 FD 1456 LD B,(IX-3) + 00004F62 09 1457 ADD HL,BC + 00004F63 46 1458 LD B,(HL) + 00004F64 DD 70 FE 1459 LD (IX-2),B + 00004F67 23 1460 INC HL + 00004F68 66 1461 LD H,(HL) + 00004F69 DD 74 FF 1462 LD (IX-1),H + 00004F6C 21 0A 00 1463 LD HL,10 + 00004F6F ED 4B BF 86 1464 LD BC,(global) + 00004F73 09 1465 ADD HL,BC + 00004F74 E5 1466 PUSH HL + 00004F75 DD 6E FE 1467 LD L,(IX-2) + 00004F78 DD 66 FF 1468 LD H,(IX-1) + 00004F7B 5E 1469 LD E,(HL) + 00004F7C 23 1470 INC HL + 00004F7D 56 1471 LD D,(HL) + 00004F7E E1 1472 POP HL + 00004F7F 73 1473 LD (HL),E + 00004F80 23 1474 INC HL + 00004F81 72 1475 LD (HL),D + 00004F82 21 0C 00 1476 LD HL,12 + 00004F85 ED 4B BF 86 1477 LD BC,(global) + 00004F89 09 1478 ADD HL,BC + 00004F8A E5 1479 PUSH HL + 00004F8B DD 4E FE 1480 LD C,(IX-2) + 00004F8E DD 46 FF 1481 LD B,(IX-1) + 00004F91 03 1482 INC BC + 00004F92 03 1483 INC BC + 00004F93 69 1484 LD L,C + 00004F94 60 1485 LD H,B + 00004F95 4E 1486 LD C,(HL) + 00004F96 23 1487 INC HL + 00004F97 46 1488 LD B,(HL) + 00004F98 E1 1489 POP HL + 00004F99 71 1490 LD (HL),C + 00004F9A 23 1491 INC HL + 00004F9B 70 1492 LD (HL),B + 00004F9C 1493 ?0090: + 00004F9C 1494 ?0083: + 00004F9C FD 4E 24 1495 LD C,(IY+36) + 00004F9F FD 46 25 1496 LD B,(IY+37) + 00004FA2 21 00 00 1497 LD HL,0 + 00004FA5 CD A6 81 1498 CALL LWRD ?SS_CMP_L02 + 00004FA8 30 09 1499 JR NC,?0092 + 00004FAA 1500 ?0091: + 00004FAA FD 5E 26 1501 LD E,(IY+38) + 00004FAD FD 56 27 1502 LD D,(IY+39) + 00004FB0 CD DE 4F 1503 CALL LWRD ?0465 + 00004FB3 1504 ?0092: + 00004FB3 FD CB 0B 76 1505 BIT 6,(IY+11) + 00004FB7 20 11 1506 JR NZ,?0094 + 00004FB9 FD 7E 20 1507 LD A,(IY+32) + 00004FBC FD B6 21 1508 OR (IY+33) + 00004FBF 28 09 1509 JR Z,?0094 + 00004FC1 1510 ?0096: + 00004FC1 1511 ?0095: + 00004FC1 1512 ?0093: + 00004FC1 FD 5E 20 1513 LD E,(IY+32) + 00004FC4 FD 56 21 1514 LD D,(IY+33) + 00004FC7 CD DE 4F 1515 CALL LWRD ?0465 + 00004FCA 1516 ?0094: + 00004FCA FD E5 1517 PUSH IY + 00004FCC D1 1518 POP DE + 00004FCD CD DE 4F 1519 CALL LWRD ?0465 + 00004FD0 1520 ?0066: + 00004FD0 DD 6E F8 1521 LD L,(IX-8) + 00004FD3 DD 66 F9 1522 LD H,(IX-7) + 00004FD6 FD E1 1523 POP IY + 00004FD8 C3 1F 81 1524 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00004FDB 1525 ?0464: + 00004FDB 5E 1526 LD E,(HL) + 00004FDC 23 1527 INC HL + 00004FDD 56 1528 LD D,(HL) + 00004FDE 1529 ?0465: + 00004FDE 3E 00 1530 LD A,BYTE3 free + 00004FE0 21 6D 75 1531 LD HL,LWRD free + 00004FE3 C3 5E 81 1532 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004FE6 1533 ?0467: + 00004FE6 3E 00 1534 LD A,BYTE3 Component_delete + 00004FE8 21 1D 4E 1535 LD HL,LWRD Component_delete + 00004FEB C3 5E 81 1536 JP LWRD ?BANK_CALL_DIRECT_L08 + 00004FEE 1537 Component_delete_children: + 00004FEE C5 1538 PUSH BC + 00004FEF FD E5 1539 PUSH IY + 00004FF1 DD E5 1540 PUSH IX + 00004FF3 21 15 00 1541 LD HL,21 + 00004FF6 19 1542 ADD HL,DE + 00004FF7 46 1543 LD B,(HL) + 00004FF8 23 1544 INC HL + 00004FF9 66 1545 LD H,(HL) + 00004FFA 68 1546 LD L,B + 00004FFB 1547 ?0351: + 00004FFB E5 1548 PUSH HL + 00004FFC DD E1 1549 POP IX + 00004FFE 1550 ?0098: + 00004FFE 7D 1551 LD A,L + 00004FFF B4 1552 OR H + 00005000 28 08 1553 JR Z,?0097 + 00005002 1554 ?0099: + 00005002 DD E5 1555 PUSH IX + 00005004 D1 1556 POP DE + 00005005 CD E6 4F 1557 CALL LWRD ?0467 + 00005008 18 F1 1558 JR ?0351 + 0000500A 1559 ?0097: + 0000500A C3 C1 48 1560 JP LWRD ?0415 + 0000500D 1561 Component_changestate_children: + 0000500D CD 88 81 1562 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005010 00 00 1563 DEFW 0 + 00005012 FD E5 1564 PUSH IY + 00005014 21 15 00 1565 LD HL,21 + 00005017 DD 5E 02 1566 LD E,(IX+2) + 0000501A DD 56 03 1567 LD D,(IX+3) + 0000501D 19 1568 ADD HL,DE + 0000501E 1569 ?0352: + 0000501E 56 1570 LD D,(HL) + 0000501F 23 1571 INC HL + 00005020 66 1572 LD H,(HL) + 00005021 6A 1573 LD L,D + 00005022 E5 1574 PUSH HL + 00005023 FD E1 1575 POP IY + 00005025 1576 ?0101: + 00005025 7D 1577 LD A,L + 00005026 B4 1578 OR H + 00005027 28 3D 1579 JR Z,?0100 + 00005029 1580 ?0102: + 00005029 21 0A 00 1581 LD HL,10 + 0000502C FD E5 1582 PUSH IY + 0000502E C1 1583 POP BC + 0000502F 09 1584 ADD HL,BC + 00005030 DD 7E 04 1585 LD A,(IX+4) + 00005033 DD 56 05 1586 LD D,(IX+5) + 00005036 2F 1587 CPL + 00005037 5F 1588 LD E,A + 00005038 7A 1589 LD A,D + 00005039 2F 1590 CPL + 0000503A 57 1591 LD D,A + 0000503B 7E 1592 LD A,(HL) + 0000503C A3 1593 AND E + 0000503D 77 1594 LD (HL),A + 0000503E 23 1595 INC HL + 0000503F 7E 1596 LD A,(HL) + 00005040 A2 1597 AND D + 00005041 77 1598 LD (HL),A + 00005042 21 0A 00 1599 LD HL,10 + 00005045 09 1600 ADD HL,BC + 00005046 7E 1601 LD A,(HL) + 00005047 DD B6 0A 1602 OR (IX+10) + 0000504A 77 1603 LD (HL),A + 0000504B 23 1604 INC HL + 0000504C 7E 1605 LD A,(HL) + 0000504D DD B6 0B 1606 OR (IX+11) + 00005050 77 1607 LD (HL),A + 00005051 21 0A 00 1608 LD HL,10 + 00005054 09 1609 ADD HL,BC + 00005055 7E 1610 LD A,(HL) + 00005056 DD AE 0C 1611 XOR (IX+12) + 00005059 77 1612 LD (HL),A + 0000505A 23 1613 INC HL + 0000505B 7E 1614 LD A,(HL) + 0000505C DD AE 0D 1615 XOR (IX+13) + 0000505F 77 1616 LD (HL),A + 00005060 21 13 00 1617 LD HL,19 + 00005063 09 1618 ADD HL,BC + 00005064 18 B8 1619 JR ?0352 + 00005066 1620 ?0100: + 00005066 11 76 85 1621 LD DE,stdout + 00005069 3E 00 1622 LD A,BYTE3 fflush + 0000506B 21 60 6D 1623 LD HL,LWRD fflush + 0000506E CD 5E 81 1624 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005071 FD E1 1625 POP IY + 00005073 C3 1F 81 1626 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005076 1627 Component_linkstringtable: + 00005076 C5 1628 PUSH BC + 00005077 FD E5 1629 PUSH IY + 00005079 DD E5 1630 PUSH IX + 0000507B D5 1631 PUSH DE + 0000507C DD E1 1632 POP IX + 0000507E 21 15 00 1633 LD HL,21 + 00005081 19 1634 ADD HL,DE + 00005082 46 1635 LD B,(HL) + 00005083 23 1636 INC HL + 00005084 66 1637 LD H,(HL) + 00005085 68 1638 LD L,B + 00005086 E5 1639 PUSH HL + 00005087 FD E1 1640 POP IY + 00005089 21 20 00 1641 LD HL,32 + 0000508C 19 1642 ADD HL,DE + 0000508D 46 1643 LD B,(HL) + 0000508E 23 1644 INC HL + 0000508F 66 1645 LD H,(HL) + 00005090 68 1646 LD L,B + 00005091 01 00 90 1647 LD BC,36864 + 00005094 3E 80 1648 LD A,128 + 00005096 AC 1649 XOR H + 00005097 67 1650 LD H,A + 00005098 ED 42 1651 SBC HL,BC + 0000509A 30 2E 1652 JR NC,?0104 + 0000509C DD 4E 20 1653 LD C,(IX+32) + 0000509F DD 46 21 1654 LD B,(IX+33) + 000050A2 21 00 00 1655 LD HL,0 + 000050A5 CD A6 81 1656 CALL LWRD ?SS_CMP_L02 + 000050A8 30 20 1657 JR NC,?0104 + 000050AA 1658 ?0106: + 000050AA 1659 ?0105: + 000050AA 1660 ?0103: + 000050AA DD 6E 20 1661 LD L,(IX+32) + 000050AD DD 66 21 1662 LD H,(IX+33) + 000050B0 29 1663 ADD HL,HL + 000050B1 E5 1664 PUSH HL + 000050B2 21 0C 00 1665 LD HL,12 + 000050B5 ED 4B BF 86 1666 LD BC,(global) + 000050B9 09 1667 ADD HL,BC + 000050BA 4E 1668 LD C,(HL) + 000050BB 23 1669 INC HL + 000050BC 46 1670 LD B,(HL) + 000050BD E1 1671 POP HL + 000050BE 09 1672 ADD HL,BC + 000050BF 2B 1673 DEC HL + 000050C0 2B 1674 DEC HL + 000050C1 46 1675 LD B,(HL) + 000050C2 DD 70 20 1676 LD (IX+32),B + 000050C5 23 1677 INC HL + 000050C6 66 1678 LD H,(HL) + 000050C7 DD 74 21 1679 LD (IX+33),H + 000050CA 1680 ?0104: + 000050CA DD 6E 22 1681 LD L,(IX+34) + 000050CD DD 66 23 1682 LD H,(IX+35) + 000050D0 01 00 90 1683 LD BC,36864 + 000050D3 3E 80 1684 LD A,128 + 000050D5 AC 1685 XOR H + 000050D6 67 1686 LD H,A + 000050D7 ED 42 1687 SBC HL,BC + 000050D9 30 2E 1688 JR NC,?0108 + 000050DB DD 4E 22 1689 LD C,(IX+34) + 000050DE DD 46 23 1690 LD B,(IX+35) + 000050E1 21 00 00 1691 LD HL,0 + 000050E4 CD A6 81 1692 CALL LWRD ?SS_CMP_L02 + 000050E7 30 20 1693 JR NC,?0108 + 000050E9 1694 ?0110: + 000050E9 1695 ?0109: + 000050E9 1696 ?0107: + 000050E9 DD 6E 22 1697 LD L,(IX+34) + 000050EC DD 66 23 1698 LD H,(IX+35) + 000050EF 29 1699 ADD HL,HL + 000050F0 E5 1700 PUSH HL + 000050F1 21 0C 00 1701 LD HL,12 + 000050F4 ED 4B BF 86 1702 LD BC,(global) + 000050F8 09 1703 ADD HL,BC + 000050F9 4E 1704 LD C,(HL) + 000050FA 23 1705 INC HL + 000050FB 46 1706 LD B,(HL) + 000050FC E1 1707 POP HL + 000050FD 09 1708 ADD HL,BC + 000050FE 2B 1709 DEC HL + 000050FF 2B 1710 DEC HL + 00005100 46 1711 LD B,(HL) + 00005101 DD 70 22 1712 LD (IX+34),B + 00005104 23 1713 INC HL + 00005105 66 1714 LD H,(HL) + 00005106 DD 74 23 1715 LD (IX+35),H + 00005109 1716 ?0108: + 00005109 1717 ?0112: + 00005109 FD E5 1718 PUSH IY + 0000510B E1 1719 POP HL + 0000510C 7D 1720 LD A,L + 0000510D B4 1721 OR H + 0000510E 28 16 1722 JR Z,?0111 + 00005110 1723 ?0113: + 00005110 FD E5 1724 PUSH IY + 00005112 D1 1725 POP DE + 00005113 3E 00 1726 LD A,BYTE3 Component_linkstringtable + 00005115 21 76 50 1727 LD HL,LWRD Component_linkstringtable + 00005118 CD 5E 81 1728 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000511B FD 6E 13 1729 LD L,(IY+19) + 0000511E FD 66 14 1730 LD H,(IY+20) + 00005121 E5 1731 PUSH HL + 00005122 FD E1 1732 POP IY + 00005124 18 E3 1733 JR ?0108 + 00005126 1734 ?0111: + 00005126 C3 C1 48 1735 JP LWRD ?0415 + 00005129 1736 Window_handler: + 00005129 CD 88 81 1737 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000512C D0 FF 1738 DEFW 65488 + 0000512E FD E5 1739 PUSH IY + 00005130 AF 1740 XOR A + 00005131 DD 77 FA 1741 LD (IX-6),A + 00005134 DD 77 FB 1742 LD (IX-5),A + 00005137 DD 77 FC 1743 LD (IX-4),A + 0000513A DD 77 FD 1744 LD (IX-3),A + 0000513D 59 1745 LD E,C + 0000513E 50 1746 LD D,B + 0000513F CD 6B 81 1747 CALL LWRD ?S_V_SWITCH_L06 + 00005142 08 00 1748 DEFW 8 + 00005144 01 00 1749 DEFW 1 + 00005146 02 00 1750 DEFW 2 + 00005148 03 00 1751 DEFW 3 + 0000514A 02 01 1752 DEFW 258 + 0000514C 03 01 1753 DEFW 259 + 0000514E 04 01 1754 DEFW 260 + 00005150 05 01 1755 DEFW 261 + 00005152 01 05 1756 DEFW 1281 + 00005154 C2 53 1757 DEFW ?0161 + 00005156 30 53 1758 DEFW ?0155 + 00005158 C3 52 1759 DEFW ?0146 + 0000515A EF 52 1760 DEFW ?0147 + 0000515C 37 52 1761 DEFW ?0144 + 0000515E 48 52 1762 DEFW ?0145 + 00005160 FC 51 1763 DEFW ?0133 + 00005162 97 51 1764 DEFW ?0121 + 00005164 66 51 1765 DEFW ?0115 + 00005166 1766 ?0115: + 00005166 21 15 00 1767 LD HL,21 + 00005169 DD 4E 02 1768 LD C,(IX+2) + 0000516C DD 46 03 1769 LD B,(IX+3) + 0000516F 09 1770 ADD HL,BC + 00005170 46 1771 LD B,(HL) + 00005171 23 1772 INC HL + 00005172 66 1773 LD H,(HL) + 00005173 68 1774 LD L,B + 00005174 1775 ?0354: + 00005174 E5 1776 PUSH HL + 00005175 FD E1 1777 POP IY + 00005177 1778 ?0117: + 00005177 7D 1779 LD A,L + 00005178 B4 1780 OR H + 00005179 28 19 1781 JR Z,?0116 + 0000517B 1782 ?0118: + 0000517B FD CB 0A 46 1783 BIT 0,(IY+10) + 0000517F 28 0B 1784 JR Z,?0120 + 00005181 1785 ?0119: + 00005181 DD 6E 0A 1786 LD L,(IX+10) + 00005184 DD 66 0B 1787 LD H,(IX+11) + 00005187 E5 1788 PUSH HL + 00005188 CD D2 53 1789 CALL LWRD ?0475 + 0000518B E1 1790 POP HL + 0000518C 1791 ?0120: + 0000518C FD 6E 13 1792 LD L,(IY+19) + 0000518F FD 66 14 1793 LD H,(IY+20) + 00005192 18 E0 1794 JR ?0354 + 00005194 1795 ?0116: + 00005194 C3 C2 53 1796 JP LWRD ?0161 + 00005197 1797 ?0121: + 00005197 21 15 00 1798 LD HL,21 + 0000519A DD 4E 02 1799 LD C,(IX+2) + 0000519D DD 46 03 1800 LD B,(IX+3) + 000051A0 09 1801 ADD HL,BC + 000051A1 46 1802 LD B,(HL) + 000051A2 23 1803 INC HL + 000051A3 66 1804 LD H,(HL) + 000051A4 68 1805 LD L,B + 000051A5 1806 ?0358: + 000051A5 E5 1807 PUSH HL + 000051A6 FD E1 1808 POP IY + 000051A8 1809 ?0123: + 000051A8 7D 1810 LD A,L + 000051A9 B4 1811 OR H + 000051AA 28 4D 1812 JR Z,?0122 + 000051AC 1813 ?0124: + 000051AC FD CB 0A 46 1814 BIT 0,(IY+10) + 000051B0 28 38 1815 JR Z,?0128 + 000051B2 1816 ?0125: + 000051B2 DD 6E 0A 1817 LD L,(IX+10) + 000051B5 DD 66 0B 1818 LD H,(IX+11) + 000051B8 E5 1819 PUSH HL + 000051B9 CD D2 53 1820 CALL LWRD ?0475 + 000051BC E1 1821 POP HL + 000051BD DD 6E 0A 1822 LD L,(IX+10) + 000051C0 DD 66 0B 1823 LD H,(IX+11) + 000051C3 E5 1824 PUSH HL + 000051C4 01 03 00 1825 LD BC,3 + 000051C7 CD D8 53 1826 CALL LWRD ?0476 + 000051CA E1 1827 POP HL + 000051CB FD 7E 0A 1828 LD A,(IY+10) + 000051CE E6 22 1829 AND 34 + 000051D0 6F 1830 LD L,A + 000051D1 26 00 1831 LD H,0 + 000051D3 3E 22 1832 LD A,34 + 000051D5 AD 1833 XOR L + 000051D6 20 12 1834 JR NZ,?0128 + 000051D8 FD 4E 10 1835 LD C,(IY+16) + 000051DB 44 1836 LD B,H + 000051DC DD 6E 0A 1837 LD L,(IX+10) + 000051DF DD 66 0B 1838 LD H,(IX+11) + 000051E2 ED 42 1839 SBC HL,BC + 000051E4 20 04 1840 JR NZ,?0128 + 000051E6 1841 ?0130: + 000051E6 1842 ?0129: + 000051E6 1843 ?0127: + 000051E6 FD 21 00 00 1844 LD IY,0 + 000051EA 1845 ?0128: + 000051EA 1846 ?0126: + 000051EA FD E5 1847 PUSH IY + 000051EC E1 1848 POP HL + 000051ED 7D 1849 LD A,L + 000051EE B4 1850 OR H + 000051EF 28 B7 1851 JR Z,?0123 + 000051F1 1852 ?0131: + 000051F1 FD 6E 13 1853 LD L,(IY+19) + 000051F4 FD 66 14 1854 LD H,(IY+20) + 000051F7 18 AC 1855 JR ?0358 + 000051F9 1856 ?0132: + 000051F9 1857 ?0122: + 000051F9 C3 C2 53 1858 JP LWRD ?0161 + 000051FC 1859 ?0133: + 000051FC DD 6E 02 1860 LD L,(IX+2) + 000051FF DD 66 03 1861 LD H,(IX+3) + 00005202 E5 1862 PUSH HL + 00005203 FD E1 1863 POP IY + 00005205 21 0A 00 1864 LD HL,10 + 00005208 DD 4E 02 1865 LD C,(IX+2) + 0000520B DD 46 03 1866 LD B,(IX+3) + 0000520E 09 1867 ADD HL,BC + 0000520F CB 46 1868 BIT 0,(HL) + 00005211 28 21 1869 JR Z,?0141 + 00005213 1870 ?0134: + 00005213 FD CB 0A 6E 1871 BIT 5,(IY+10) + 00005217 28 1B 1872 JR Z,?0141 + 00005219 FD 4E 10 1873 LD C,(IY+16) + 0000521C 47 1874 LD B,A + 0000521D DD 6E 0A 1875 LD L,(IX+10) + 00005220 DD 66 0B 1876 LD H,(IX+11) + 00005223 A7 1877 AND A + 00005224 ED 42 1878 SBC HL,BC + 00005226 20 0C 1879 JR NZ,?0141 + 00005228 1880 ?0139: + 00005228 1881 ?0138: + 00005228 1882 ?0136: + 00005228 FD 6E 26 1883 LD L,(IY+38) + 0000522B FD 66 27 1884 LD H,(IY+39) + 0000522E FD E5 1885 PUSH IY + 00005230 D1 1886 POP DE + 00005231 CD C8 53 1887 CALL LWRD ?0450 + 00005234 1888 ?0140: + 00005234 1889 ?0141: + 00005234 1890 ?0137: + 00005234 1891 ?0135: + 00005234 1892 ?0142: + 00005234 1893 ?0143: + 00005234 C3 C2 53 1894 JP LWRD ?0161 + 00005237 1895 ?0144: + 00005237 DD 5E 02 1896 LD E,(IX+2) + 0000523A 4B 1897 LD C,E + 0000523B DD 56 03 1898 LD D,(IX+3) + 0000523E 42 1899 LD B,D + 0000523F 21 1A 00 1900 LD HL,26 + 00005242 CD C7 53 1901 CALL LWRD ?0451 + 00005245 C3 C2 53 1902 JP LWRD ?0161 + 00005248 1903 ?0145: + 00005248 21 0A 00 1904 LD HL,10 + 0000524B DD 4E 02 1905 LD C,(IX+2) + 0000524E DD 46 03 1906 LD B,(IX+3) + 00005251 09 1907 ADD HL,BC + 00005252 7E 1908 LD A,(HL) + 00005253 E6 FC 1909 AND 252 + 00005255 77 1910 LD (HL),A + 00005256 21 2E 00 1911 LD HL,46 + 00005259 39 1912 ADD HL,SP + 0000525A E5 1913 PUSH HL + 0000525B 2B 1914 DEC HL + 0000525C 2B 1915 DEC HL + 0000525D 4D 1916 LD C,L + 0000525E 44 1917 LD B,H + 0000525F DD 5E 02 1918 LD E,(IX+2) + 00005262 DD 56 03 1919 LD D,(IX+3) + 00005265 CD EE 53 1920 CALL LWRD ?0477 + 00005268 E1 1921 POP HL + 00005269 21 08 00 1922 LD HL,8 + 0000526C DD 4E 02 1923 LD C,(IX+2) + 0000526F DD 46 03 1924 LD B,(IX+3) + 00005272 09 1925 ADD HL,BC + 00005273 5E 1926 LD E,(HL) + 00005274 23 1927 INC HL + 00005275 56 1928 LD D,(HL) + 00005276 D5 1929 PUSH DE + 00005277 21 06 00 1930 LD HL,6 + 0000527A 09 1931 ADD HL,BC + 0000527B 5E 1932 LD E,(HL) + 0000527C 23 1933 INC HL + 0000527D 56 1934 LD D,(HL) + 0000527E D5 1935 PUSH DE + 0000527F DD 6E FC 1936 LD L,(IX-4) + 00005282 DD 66 FD 1937 LD H,(IX-3) + 00005285 E5 1938 PUSH HL + 00005286 DD 4E FA 1939 LD C,(IX-6) + 00005289 DD 46 FB 1940 LD B,(IX-5) + 0000528C 11 00 00 1941 LD DE,0 + 0000528F CD 55 49 1942 CALL LWRD ?0484 + 00005292 E1 1943 POP HL + 00005293 E1 1944 POP HL + 00005294 E1 1945 POP HL + 00005295 21 00 00 1946 LD HL,0 + 00005298 E5 1947 PUSH HL + 00005299 2E 11 1948 LD L,17 + 0000529B DD 5E 02 1949 LD E,(IX+2) + 0000529E DD 56 03 1950 LD D,(IX+3) + 000052A1 19 1951 ADD HL,DE + 000052A2 5E 1952 LD E,(HL) + 000052A3 23 1953 INC HL + 000052A4 56 1954 LD D,(HL) + 000052A5 21 11 00 1955 LD HL,17 + 000052A8 DD 4E 02 1956 LD C,(IX+2) + 000052AB DD 46 03 1957 LD B,(IX+3) + 000052AE 09 1958 ADD HL,BC + 000052AF 46 1959 LD B,(HL) + 000052B0 23 1960 INC HL + 000052B1 66 1961 LD H,(HL) + 000052B2 68 1962 LD L,B + 000052B3 01 17 00 1963 LD BC,23 + 000052B6 09 1964 ADD HL,BC + 000052B7 4E 1965 LD C,(HL) + 000052B8 23 1966 INC HL + 000052B9 46 1967 LD B,(HL) + 000052BA 23 1968 INC HL + 000052BB 7E 1969 LD A,(HL) + 000052BC 69 1970 LD L,C + 000052BD 60 1971 LD H,B + 000052BE 01 03 01 1972 LD BC,259 + 000052C1 18 29 1973 JR ?0357 + 000052C3 1974 ?0146: + 000052C3 21 11 00 1975 LD HL,17 + 000052C6 DD 4E 02 1976 LD C,(IX+2) + 000052C9 DD 46 03 1977 LD B,(IX+3) + 000052CC 09 1978 ADD HL,BC + 000052CD 56 1979 LD D,(HL) + 000052CE 23 1980 INC HL + 000052CF 66 1981 LD H,(HL) + 000052D0 6A 1982 LD L,D + 000052D1 E5 1983 PUSH HL + 000052D2 FD E1 1984 POP IY + 000052D4 59 1985 LD E,C + 000052D5 50 1986 LD D,B + 000052D6 CD E6 4F 1987 CALL LWRD ?0467 + 000052D9 21 00 00 1988 LD HL,0 + 000052DC E5 1989 PUSH HL + 000052DD 01 03 01 1990 LD BC,259 + 000052E0 FD E5 1991 PUSH IY + 000052E2 D1 1992 POP DE + 000052E3 FD 7E 19 1993 LD A,(IY+25) + 000052E6 FD 6E 17 1994 LD L,(IY+23) + 000052E9 FD 66 18 1995 LD H,(IY+24) + 000052EC 1996 ?0357: + 000052EC C3 BE 53 1997 JP LWRD ?0356 + 000052EF 1998 ?0147: + 000052EF 21 15 00 1999 LD HL,21 + 000052F2 DD 4E 02 2000 LD C,(IX+2) + 000052F5 DD 46 03 2001 LD B,(IX+3) + 000052F8 09 2002 ADD HL,BC + 000052F9 46 2003 LD B,(HL) + 000052FA 23 2004 INC HL + 000052FB 66 2005 LD H,(HL) + 000052FC 68 2006 LD L,B + 000052FD 2007 ?0355: + 000052FD E5 2008 PUSH HL + 000052FE FD E1 2009 POP IY + 00005300 2010 ?0149: + 00005300 7D 2011 LD A,L + 00005301 B4 2012 OR H + 00005302 28 29 2013 JR Z,?0148 + 00005304 2014 ?0150: + 00005304 DD 6E 0A 2015 LD L,(IX+10) + 00005307 DD 66 0B 2016 LD H,(IX+11) + 0000530A FD E5 2017 PUSH IY + 0000530C C1 2018 POP BC + 0000530D ED 42 2019 SBC HL,BC + 0000530F 28 14 2020 JR Z,?0152 + 00005311 FD CB 0A 5E 2021 BIT 3,(IY+10) + 00005315 28 0E 2022 JR Z,?0152 + 00005317 2023 ?0154: + 00005317 2024 ?0153: + 00005317 2025 ?0151: + 00005317 DD 6E 0A 2026 LD L,(IX+10) + 0000531A DD 66 0B 2027 LD H,(IX+11) + 0000531D E5 2028 PUSH HL + 0000531E 01 03 02 2029 LD BC,515 + 00005321 CD D8 53 2030 CALL LWRD ?0476 + 00005324 E1 2031 POP HL + 00005325 2032 ?0152: + 00005325 FD 6E 13 2033 LD L,(IY+19) + 00005328 FD 66 14 2034 LD H,(IY+20) + 0000532B 18 D0 2035 JR ?0355 + 0000532D 2036 ?0148: + 0000532D C3 C2 53 2037 JP LWRD ?0161 + 00005330 2038 ?0155: + 00005330 21 11 00 2039 LD HL,17 + 00005333 DD 4E 02 2040 LD C,(IX+2) + 00005336 DD 46 03 2041 LD B,(IX+3) + 00005339 09 2042 ADD HL,BC + 0000533A 7E 2043 LD A,(HL) + 0000533B 23 2044 INC HL + 0000533C B6 2045 OR (HL) + 0000533D 20 0E 2046 JR NZ,?0157 + 0000533F 2047 ?0156: + 0000533F 21 08 00 2048 LD HL,8 + 00005342 ED 4B BF 86 2049 LD BC,(global) + 00005346 09 2050 ADD HL,BC + 00005347 36 01 2051 LD (HL),1 + 00005349 23 2052 INC HL + 0000534A 77 2053 LD (HL),A + 0000534B 18 75 2054 JR ?0161 + 0000534D 2055 ?0157: + 0000534D 21 0A 00 2056 LD HL,10 + 00005350 09 2057 ADD HL,BC + 00005351 23 2058 INC HL + 00005352 CB 6E 2059 BIT 5,(HL) + 00005354 20 28 2060 JR NZ,?0160 + 00005356 2061 ?0159: + 00005356 DD 6E 0A 2062 LD L,(IX+10) + 00005359 DD 66 0B 2063 LD H,(IX+11) + 0000535C E5 2064 PUSH HL + 0000535D 21 11 00 2065 LD HL,17 + 00005360 59 2066 LD E,C + 00005361 50 2067 LD D,B + 00005362 19 2068 ADD HL,DE + 00005363 5E 2069 LD E,(HL) + 00005364 23 2070 INC HL + 00005365 56 2071 LD D,(HL) + 00005366 21 11 00 2072 LD HL,17 + 00005369 09 2073 ADD HL,BC + 0000536A 46 2074 LD B,(HL) + 0000536B 23 2075 INC HL + 0000536C 66 2076 LD H,(HL) + 0000536D 68 2077 LD L,B + 0000536E 01 17 00 2078 LD BC,23 + 00005371 09 2079 ADD HL,BC + 00005372 4E 2080 LD C,(HL) + 00005373 23 2081 INC HL + 00005374 46 2082 LD B,(HL) + 00005375 23 2083 INC HL + 00005376 7E 2084 LD A,(HL) + 00005377 69 2085 LD L,C + 00005378 60 2086 LD H,B + 00005379 01 01 05 2087 LD BC,1281 + 0000537C 18 40 2088 JR ?0356 + 0000537E 2089 ?0160: + 0000537E 21 11 00 2090 LD HL,17 + 00005381 09 2091 ADD HL,BC + 00005382 56 2092 LD D,(HL) + 00005383 23 2093 INC HL + 00005384 66 2094 LD H,(HL) + 00005385 6A 2095 LD L,D + 00005386 E5 2096 PUSH HL + 00005387 FD E1 2097 POP IY + 00005389 11 0A 00 2098 LD DE,10 + 0000538C 19 2099 ADD HL,DE + 0000538D 7E 2100 LD A,(HL) + 0000538E F6 03 2101 OR 3 + 00005390 77 2102 LD (HL),A + 00005391 6A 2103 LD L,D + 00005392 62 2104 LD H,D + 00005393 E5 2105 PUSH HL + 00005394 23 2106 INC HL + 00005395 E5 2107 PUSH HL + 00005396 4A 2108 LD C,D + 00005397 42 2109 LD B,D + 00005398 FD E5 2110 PUSH IY + 0000539A D1 2111 POP DE + 0000539B 3E 00 2112 LD A,BYTE3 Component_changestate_children + 0000539D 21 0D 50 2113 LD HL,LWRD Component_changestate_children + 000053A0 CD 5E 81 2114 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000053A3 E1 2115 POP HL + 000053A4 E1 2116 POP HL + 000053A5 21 00 00 2117 LD HL,0 + 000053A8 E5 2118 PUSH HL + 000053A9 DD 5E 02 2119 LD E,(IX+2) + 000053AC 4B 2120 LD C,E + 000053AD DD 56 03 2121 LD D,(IX+3) + 000053B0 42 2122 LD B,D + 000053B1 2E 17 2123 LD L,23 + 000053B3 09 2124 ADD HL,BC + 000053B4 4E 2125 LD C,(HL) + 000053B5 23 2126 INC HL + 000053B6 46 2127 LD B,(HL) + 000053B7 23 2128 INC HL + 000053B8 7E 2129 LD A,(HL) + 000053B9 69 2130 LD L,C + 000053BA 60 2131 LD H,B + 000053BB 01 05 01 2132 LD BC,261 + 000053BE 2133 ?0356: + 000053BE CD 5E 81 2134 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000053C1 E1 2135 POP HL + 000053C2 2136 ?0161: + 000053C2 2137 ?0158: + 000053C2 2138 ?0114: + 000053C2 FD E1 2139 POP IY + 000053C4 C3 1F 81 2140 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000053C7 2141 ?0451: + 000053C7 09 2142 ADD HL,BC + 000053C8 2143 ?0450: + 000053C8 4E 2144 LD C,(HL) + 000053C9 23 2145 INC HL + 000053CA 46 2146 LD B,(HL) + 000053CB 23 2147 INC HL + 000053CC 7E 2148 LD A,(HL) + 000053CD 69 2149 LD L,C + 000053CE 60 2150 LD H,B + 000053CF C3 5E 81 2151 JP LWRD ?BANK_CALL_DIRECT_L08 + 000053D2 2152 ?0475: + 000053D2 DD 4E 04 2153 LD C,(IX+4) + 000053D5 DD 46 05 2154 LD B,(IX+5) + 000053D8 2155 ?0476: + 000053D8 FD E5 2156 PUSH IY + 000053DA D1 2157 POP DE + 000053DB FD 7E 19 2158 LD A,(IY+25) + 000053DE FD 6E 17 2159 LD L,(IY+23) + 000053E1 FD 66 18 2160 LD H,(IY+24) + 000053E4 C3 5E 81 2161 JP LWRD ?BANK_CALL_DIRECT_L08 + 000053E7 2162 ?0478: + 000053E7 23 2163 INC HL + 000053E8 23 2164 INC HL + 000053E9 2165 ?0479: + 000053E9 4D 2166 LD C,L + 000053EA 44 2167 LD B,H + 000053EB DD E5 2168 PUSH IX + 000053ED D1 2169 POP DE + 000053EE 2170 ?0477: + 000053EE 3E 00 2171 LD A,BYTE3 Component_findXY + 000053F0 21 A1 4D 2172 LD HL,LWRD Component_findXY + 000053F3 C3 5E 81 2173 JP LWRD ?BANK_CALL_DIRECT_L08 + 000053F6 2174 Window_paint: + 000053F6 C5 2175 PUSH BC + 000053F7 DD E5 2176 PUSH IX + 000053F9 F5 2177 PUSH AF + 000053FA F5 2178 PUSH AF + 000053FB D5 2179 PUSH DE + 000053FC DD E1 2180 POP IX + 000053FE 21 02 00 2181 LD HL,2 + 00005401 39 2182 ADD HL,SP + 00005402 AF 2183 XOR A + 00005403 77 2184 LD (HL),A + 00005404 23 2185 INC HL + 00005405 77 2186 LD (HL),A + 00005406 2B 2187 DEC HL + 00005407 2B 2188 DEC HL + 00005408 2B 2189 DEC HL + 00005409 77 2190 LD (HL),A + 0000540A 23 2191 INC HL + 0000540B 77 2192 LD (HL),A + 0000540C 21 12 00 2193 LD HL,18 + 0000540F ED 4B BF 86 2194 LD BC,(global) + 00005413 09 2195 ADD HL,BC + 00005414 7E 2196 LD A,(HL) + 00005415 23 2197 INC HL + 00005416 66 2198 LD H,(HL) + 00005417 6F 2199 LD L,A + 00005418 46 2200 LD B,(HL) + 00005419 23 2201 INC HL + 0000541A 66 2202 LD H,(HL) + 0000541B 68 2203 LD L,B + 0000541C E5 2204 PUSH HL + 0000541D 21 0E 00 2205 LD HL,14 + 00005420 19 2206 ADD HL,DE + 00005421 4E 2207 LD C,(HL) + 00005422 23 2208 INC HL + 00005423 46 2209 LD B,(HL) + 00005424 E1 2210 POP HL + 00005425 A7 2211 AND A + 00005426 ED 42 2212 SBC HL,BC + 00005428 28 03 2213 JR Z,?0163 + 0000542A 2214 ?0162: + 0000542A CD 2F 55 2215 CALL LWRD ?0449 + 0000542D 2216 ?0163: + 0000542D DD CB 0A 46 2217 BIT 0,(IX+10) + 00005431 CA 27 55 2218 JP Z,?0165 + 00005434 2219 ?0164: + 00005434 21 00 00 2220 LD HL,0 + 00005437 39 2221 ADD HL,SP + 00005438 E5 2222 PUSH HL + 00005439 CD E7 53 2223 CALL LWRD ?0478 + 0000543C E1 2224 POP HL + 0000543D CD 97 4D 2225 CALL LWRD ?0486 + 00005440 21 00 00 2226 LD HL,0 + 00005443 39 2227 ADD HL,SP + 00005444 CD 73 55 2228 CALL LWRD ?0472 + 00005447 CD 5E 81 2229 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000544A DD 6E 08 2230 LD L,(IX+8) + 0000544D DD 66 09 2231 LD H,(IX+9) + 00005450 E5 2232 PUSH HL + 00005451 DD 6E 06 2233 LD L,(IX+6) + 00005454 DD 66 07 2234 LD H,(IX+7) + 00005457 E5 2235 PUSH HL + 00005458 21 04 00 2236 LD HL,4 + 0000545B 39 2237 ADD HL,SP + 0000545C 4E 2238 LD C,(HL) + 0000545D 23 2239 INC HL + 0000545E 46 2240 LD B,(HL) + 0000545F C5 2241 PUSH BC + 00005460 23 2242 INC HL + 00005461 4E 2243 LD C,(HL) + 00005462 23 2244 INC HL + 00005463 46 2245 LD B,(HL) + 00005464 11 00 00 2246 LD DE,0 + 00005467 CD 55 49 2247 CALL LWRD ?0484 + 0000546A E1 2248 POP HL + 0000546B E1 2249 POP HL + 0000546C E1 2250 POP HL + 0000546D DD 5E 20 2251 LD E,(IX+32) + 00005470 DD 56 21 2252 LD D,(IX+33) + 00005473 CD 43 55 2253 CALL LWRD ?0461 + 00005476 E5 2254 PUSH HL + 00005477 21 02 00 2255 LD HL,2 + 0000547A 39 2256 ADD HL,SP + 0000547B 4E 2257 LD C,(HL) + 0000547C 23 2258 INC HL + 0000547D 46 2259 LD B,(HL) + 0000547E E1 2260 POP HL + 0000547F 09 2261 ADD HL,BC + 00005480 01 04 00 2262 LD BC,4 + 00005483 09 2263 ADD HL,BC + 00005484 4D 2264 LD C,L + 00005485 44 2265 LD B,H + 00005486 21 02 00 2266 LD HL,2 + 00005489 39 2267 ADD HL,SP + 0000548A 5E 2268 LD E,(HL) + 0000548B 23 2269 INC HL + 0000548C 56 2270 LD D,(HL) + 0000548D 3E 00 2271 LD A,BYTE3 Move + 0000548F 21 26 47 2272 LD HL,LWRD Move + 00005492 CD 5E 81 2273 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005495 DD 5E 20 2274 LD E,(IX+32) + 00005498 DD 56 21 2275 LD D,(IX+33) + 0000549B 21 12 00 2276 LD HL,18 + 0000549E ED 4B BF 86 2277 LD BC,(global) + 000054A2 09 2278 ADD HL,BC + 000054A3 7E 2279 LD A,(HL) + 000054A4 23 2280 INC HL + 000054A5 66 2281 LD H,(HL) + 000054A6 6F 2282 LD L,A + 000054A7 01 05 00 2283 LD BC,5 + 000054AA 09 2284 ADD HL,BC + 000054AB 4E 2285 LD C,(HL) + 000054AC 23 2286 INC HL + 000054AD 46 2287 LD B,(HL) + 000054AE 23 2288 INC HL + 000054AF 7E 2289 LD A,(HL) + 000054B0 69 2290 LD L,C + 000054B1 60 2291 LD H,B + 000054B2 CD 84 4A 2292 CALL LWRD ?0459 + 000054B5 DD 6E 08 2293 LD L,(IX+8) + 000054B8 DD 66 09 2294 LD H,(IX+9) + 000054BB A7 2295 AND A + 000054BC ED 42 2296 SBC HL,BC + 000054BE 01 FC FF 2297 LD BC,65532 + 000054C1 09 2298 ADD HL,BC + 000054C2 4D 2299 LD C,L + 000054C3 44 2300 LD B,H + 000054C4 DD 5E 06 2301 LD E,(IX+6) + 000054C7 DD 56 07 2302 LD D,(IX+7) + 000054CA 3E 00 2303 LD A,BYTE3 DrawRectNC + 000054CC 21 A1 47 2304 LD HL,LWRD DrawRectNC + 000054CF CD 5E 81 2305 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054D2 21 00 00 2306 LD HL,0 + 000054D5 39 2307 ADD HL,SP + 000054D6 4E 2308 LD C,(HL) + 000054D7 23 2309 INC HL + 000054D8 46 2310 LD B,(HL) + 000054D9 23 2311 INC HL + 000054DA 5E 2312 LD E,(HL) + 000054DB 23 2313 INC HL + 000054DC 56 2314 LD D,(HL) + 000054DD 3E 00 2315 LD A,BYTE3 Move + 000054DF 21 26 47 2316 LD HL,LWRD Move + 000054E2 CD 5D 55 2317 CALL LWRD ?0470 + 000054E5 CD 4F 55 2318 CALL LWRD ?0462 + 000054E8 01 05 00 2319 LD BC,5 + 000054EB 09 2320 ADD HL,BC + 000054EC 4D 2321 LD C,L + 000054ED 44 2322 LD B,H + 000054EE DD 5E 06 2323 LD E,(IX+6) + 000054F1 DD 56 07 2324 LD D,(IX+7) + 000054F4 3E 00 2325 LD A,BYTE3 FillRect + 000054F6 21 E0 47 2326 LD HL,LWRD FillRect + 000054F9 CD 5E 81 2327 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000054FC 21 00 00 2328 LD HL,0 + 000054FF 39 2329 ADD HL,SP + 00005500 4E 2330 LD C,(HL) + 00005501 23 2331 INC HL + 00005502 46 2332 LD B,(HL) + 00005503 03 2333 INC BC + 00005504 03 2334 INC BC + 00005505 23 2335 INC HL + 00005506 5E 2336 LD E,(HL) + 00005507 23 2337 INC HL + 00005508 56 2338 LD D,(HL) + 00005509 13 2339 INC DE + 0000550A 13 2340 INC DE + 0000550B 3E 00 2341 LD A,BYTE3 Move + 0000550D 21 26 47 2342 LD HL,LWRD Move + 00005510 CD 5E 81 2343 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005513 DD 5E 20 2344 LD E,(IX+32) + 00005516 DD 56 21 2345 LD D,(IX+33) + 00005519 CD F9 46 2346 CALL LWRD ?0452 + 0000551C DD E5 2347 PUSH IX + 0000551E D1 2348 POP DE + 0000551F 3E 00 2349 LD A,BYTE3 Component_paint + 00005521 21 5B 4D 2350 LD HL,LWRD Component_paint + 00005524 CD 5E 81 2351 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005527 2352 ?0165: + 00005527 E1 2353 POP HL + 00005528 E1 2354 POP HL + 00005529 DD E1 2355 POP IX + 0000552B C1 2356 POP BC + 0000552C C3 25 81 2357 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000552F 2358 ?0449: + 0000552F DD 5E 0E 2359 LD E,(IX+14) + 00005532 DD 56 0F 2360 LD D,(IX+15) + 00005535 3E 00 2361 LD A,BYTE3 setCurrentFont + 00005537 21 08 4A 2362 LD HL,LWRD setCurrentFont + 0000553A C3 5E 81 2363 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000553D 2364 ?0463: + 0000553D FD 5E 20 2365 LD E,(IY+32) + 00005540 FD 56 21 2366 LD D,(IY+33) + 00005543 2367 ?0461: + 00005543 21 12 00 2368 LD HL,18 + 00005546 ED 4B BF 86 2369 LD BC,(global) + 0000554A 09 2370 ADD HL,BC + 0000554B 7E 2371 LD A,(HL) + 0000554C 23 2372 INC HL + 0000554D 66 2373 LD H,(HL) + 0000554E 6F 2374 LD L,A + 0000554F 2375 ?0462: + 0000554F 01 05 00 2376 LD BC,5 + 00005552 09 2377 ADD HL,BC + 00005553 4E 2378 LD C,(HL) + 00005554 23 2379 INC HL + 00005555 46 2380 LD B,(HL) + 00005556 23 2381 INC HL + 00005557 7E 2382 LD A,(HL) + 00005558 69 2383 LD L,C + 00005559 60 2384 LD H,B + 0000555A C3 5E 81 2385 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000555D 2386 ?0470: + 0000555D CD 5E 81 2387 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005560 DD 5E 20 2388 LD E,(IX+32) + 00005563 DD 56 21 2389 LD D,(IX+33) + 00005566 21 12 00 2390 LD HL,18 + 00005569 ED 4B BF 86 2391 LD BC,(global) + 0000556D 09 2392 ADD HL,BC + 0000556E 46 2393 LD B,(HL) + 0000556F 23 2394 INC HL + 00005570 66 2395 LD H,(HL) + 00005571 68 2396 LD L,B + 00005572 C9 2397 RET + 00005573 2398 ?0472: + 00005573 4E 2399 LD C,(HL) + 00005574 23 2400 INC HL + 00005575 46 2401 LD B,(HL) + 00005576 23 2402 INC HL + 00005577 2403 ?0473: + 00005577 5E 2404 LD E,(HL) + 00005578 23 2405 INC HL + 00005579 56 2406 LD D,(HL) + 0000557A 3E 00 2407 LD A,BYTE3 Move + 0000557C 21 26 47 2408 LD HL,LWRD Move + 0000557F CD 5E 81 2409 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005582 DD 4E 08 2410 LD C,(IX+8) + 00005585 DD 46 09 2411 LD B,(IX+9) + 00005588 DD 5E 06 2412 LD E,(IX+6) + 0000558B DD 56 07 2413 LD D,(IX+7) + 0000558E 3E 00 2414 LD A,BYTE3 ClearRect + 00005590 21 61 47 2415 LD HL,LWRD ClearRect + 00005593 C9 2416 RET + 00005594 2417 Root_paint: + 00005594 CD 52 81 2418 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005597 CD 97 4D 2419 CALL LWRD ?0486 + 0000559A CD 3A 49 2420 CALL LWRD ?0474 + 0000559D CD 5E 81 2421 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055A0 01 80 00 2422 LD BC,128 + 000055A3 58 2423 LD E,B + 000055A4 50 2424 LD D,B + 000055A5 3E 00 2425 LD A,BYTE3 GrayRect + 000055A7 21 64 48 2426 LD HL,LWRD GrayRect + 000055AA CD 5E 81 2427 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055AD 21 80 00 2428 LD HL,128 + 000055B0 E5 2429 PUSH HL + 000055B1 6C 2430 LD L,H + 000055B2 E5 2431 PUSH HL + 000055B3 E5 2432 PUSH HL + 000055B4 CD 52 49 2433 CALL LWRD ?0483 + 000055B7 E1 2434 POP HL + 000055B8 E1 2435 POP HL + 000055B9 E1 2436 POP HL + 000055BA DD 5E 02 2437 LD E,(IX+2) + 000055BD DD 56 03 2438 LD D,(IX+3) + 000055C0 3E 00 2439 LD A,BYTE3 Component_paint + 000055C2 21 5B 4D 2440 LD HL,LWRD Component_paint + 000055C5 CD 5E 81 2441 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055C8 C3 1F 81 2442 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000055CB 2443 Window_add: + 000055CB CD 52 81 2444 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000055CE 3E 00 2445 LD A,BYTE3 Component_add + 000055D0 21 FD 4C 2446 LD HL,LWRD Component_add + 000055D3 CD 5E 81 2447 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055D6 C3 1F 81 2448 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000055D9 2449 Window_new: + 000055D9 CD 88 81 2450 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 000055DC 00 00 2451 DEFW 0 + 000055DE FD E5 2452 PUSH IY + 000055E0 DD 6E 0C 2453 LD L,(IX+12) + 000055E3 DD 66 0D 2454 LD H,(IX+13) + 000055E6 E5 2455 PUSH HL + 000055E7 DD 6E 0A 2456 LD L,(IX+10) + 000055EA DD 66 0B 2457 LD H,(IX+11) + 000055ED E5 2458 PUSH HL + 000055EE DD 5E 02 2459 LD E,(IX+2) + 000055F1 DD 56 03 2460 LD D,(IX+3) + 000055F4 3E 00 2461 LD A,BYTE3 Component_new + 000055F6 21 06 4C 2462 LD HL,LWRD Component_new + 000055F9 CD 5E 81 2463 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000055FC F1 2464 POP AF + 000055FD F1 2465 POP AF + 000055FE E5 2466 PUSH HL + 000055FF FD E1 2467 POP IY + 00005601 01 17 00 2468 LD BC,23 + 00005604 09 2469 ADD HL,BC + 00005605 36 29 2470 LD (HL),LOW(Window_handler) + 00005607 23 2471 INC HL + 00005608 36 51 2472 LD (HL),HIGH(Window_handler) + 0000560A 23 2473 INC HL + 0000560B 36 00 2474 LD (HL),BYTE3 Window_handler + 0000560D FD 36 1A F6 2475 LD (IY+26),LOW(Window_paint) + 00005611 FD 36 1B 53 2476 LD (IY+27),HIGH(Window_paint) + 00005615 FD 36 1C 00 2477 LD (IY+28),BYTE3 Window_paint + 00005619 FD 36 1D CB 2478 LD (IY+29),LOW(Window_add) + 0000561D FD 36 1E 55 2479 LD (IY+30),HIGH(Window_add) + 00005621 FD 36 1F 00 2480 LD (IY+31),BYTE3 Window_add + 00005625 C3 A8 4C 2481 JP LWRD ?0422 + 00005628 2482 Button_handler: + 00005628 CD 52 81 2483 CALL LWRD ?ENT_PARM_DIRECT_L09 + 0000562B FD E5 2484 PUSH IY + 0000562D D5 2485 PUSH DE + 0000562E FD E1 2486 POP IY + 00005630 DD 6E 0A 2487 LD L,(IX+10) + 00005633 DD 66 0B 2488 LD H,(IX+11) + 00005636 E5 2489 PUSH HL + 00005637 3E 00 2490 LD A,BYTE3 Window_handler + 00005639 21 29 51 2491 LD HL,LWRD Window_handler + 0000563C CD 5E 81 2492 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000563F E1 2493 POP HL + 00005640 3E 03 2494 LD A,3 + 00005642 DD AE 04 2495 XOR (IX+4) + 00005645 DD B6 05 2496 OR (IX+5) + 00005648 20 3E 2497 JR NZ,?0171 + 0000564A FD 4E 10 2498 LD C,(IY+16) + 0000564D 47 2499 LD B,A + 0000564E DD 6E 0A 2500 LD L,(IX+10) + 00005651 DD 66 0B 2501 LD H,(IX+11) + 00005654 ED 42 2502 SBC HL,BC + 00005656 20 30 2503 JR NZ,?0171 + 00005658 FD 7E 0A 2504 LD A,(IY+10) + 0000565B E6 03 2505 AND 3 + 0000565D 28 29 2506 JR Z,?0171 + 0000565F 2507 ?0169: + 0000565F 2508 ?0168: + 0000565F 2509 ?0166: + 0000565F DD 6E 0A 2510 LD L,(IX+10) + 00005662 DD 66 0B 2511 LD H,(IX+11) + 00005665 E5 2512 PUSH HL + 00005666 FD 5E 11 2513 LD E,(IY+17) + 00005669 FD 56 12 2514 LD D,(IY+18) + 0000566C FD 6E 11 2515 LD L,(IY+17) + 0000566F FD 66 12 2516 LD H,(IY+18) + 00005672 0E 17 2517 LD C,23 + 00005674 CD B5 56 2518 CALL LWRD ?0480 + 00005677 E1 2519 POP HL + 00005678 FD CB 0A 66 2520 BIT 4,(IY+10) + 0000567C 28 0A 2521 JR Z,?0171 + 0000567E 2522 ?0170: + 0000567E FD 4E 10 2523 LD C,(IY+16) + 00005681 06 00 2524 LD B,0 + 00005683 C5 2525 PUSH BC + 00005684 CD C3 56 2526 CALL LWRD ?0482 + 00005687 E1 2527 POP HL + 00005688 2528 ?0171: + 00005688 2529 ?0167: + 00005688 21 01 02 2530 LD HL,513 + 0000568B DD 4E 04 2531 LD C,(IX+4) + 0000568E DD 46 05 2532 LD B,(IX+5) + 00005691 A7 2533 AND A + 00005692 ED 42 2534 SBC HL,BC + 00005694 20 0B 2535 JR NZ,?0173 + 00005696 2536 ?0172: + 00005696 DD 6E 0A 2537 LD L,(IX+10) + 00005699 DD 66 0B 2538 LD H,(IX+11) + 0000569C E5 2539 PUSH HL + 0000569D CD A6 56 2540 CALL LWRD ?0481 + 000056A0 E1 2541 POP HL + 000056A1 2542 ?0173: + 000056A1 FD E1 2543 POP IY + 000056A3 C3 1F 81 2544 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 000056A6 2545 ?0481: + 000056A6 FD 5E 11 2546 LD E,(IY+17) + 000056A9 FD 56 12 2547 LD D,(IY+18) + 000056AC FD 6E 11 2548 LD L,(IY+17) + 000056AF FD 66 12 2549 LD H,(IY+18) + 000056B2 01 17 00 2550 LD BC,23 + 000056B5 2551 ?0480: + 000056B5 09 2552 ADD HL,BC + 000056B6 4E 2553 LD C,(HL) + 000056B7 23 2554 INC HL + 000056B8 46 2555 LD B,(HL) + 000056B9 23 2556 INC HL + 000056BA 7E 2557 LD A,(HL) + 000056BB 69 2558 LD L,C + 000056BC 60 2559 LD H,B + 000056BD 01 01 02 2560 LD BC,513 + 000056C0 C3 5E 81 2561 JP LWRD ?BANK_CALL_DIRECT_L08 + 000056C3 2562 ?0482: + 000056C3 FD 5E 11 2563 LD E,(IY+17) + 000056C6 FD 56 12 2564 LD D,(IY+18) + 000056C9 FD 6E 11 2565 LD L,(IY+17) + 000056CC FD 66 12 2566 LD H,(IY+18) + 000056CF 0E 17 2567 LD C,23 + 000056D1 09 2568 ADD HL,BC + 000056D2 4E 2569 LD C,(HL) + 000056D3 23 2570 INC HL + 000056D4 46 2571 LD B,(HL) + 000056D5 23 2572 INC HL + 000056D6 7E 2573 LD A,(HL) + 000056D7 69 2574 LD L,C + 000056D8 60 2575 LD H,B + 000056D9 01 04 01 2576 LD BC,260 + 000056DC C3 5E 81 2577 JP LWRD ?BANK_CALL_DIRECT_L08 + 000056DF 2578 Button_drawtext: + 000056DF CD 52 81 2579 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000056E2 FD E5 2580 PUSH IY + 000056E4 D5 2581 PUSH DE + 000056E5 FD E1 2582 POP IY + 000056E7 21 0A 00 2583 LD HL,10 + 000056EA 19 2584 ADD HL,DE + 000056EB CB 76 2585 BIT 6,(HL) + 000056ED 28 53 2586 JR Z,?0175 + 000056EF 2587 ?0174: + 000056EF FD 5E 08 2588 LD E,(IY+8) + 000056F2 FD 56 09 2589 LD D,(IY+9) + 000056F5 01 02 00 2590 LD BC,2 + 000056F8 CD B8 81 2591 CALL LWRD ?SS_DIV_L02 + 000056FB DD 6E 0A 2592 LD L,(IX+10) + 000056FE DD 66 0B 2593 LD H,(IX+11) + 00005701 19 2594 ADD HL,DE + 00005702 E5 2595 PUSH HL + 00005703 FD 5E 20 2596 LD E,(IY+32) + 00005706 FD 56 21 2597 LD D,(IY+33) + 00005709 21 12 00 2598 LD HL,18 + 0000570C ED 4B BF 86 2599 LD BC,(global) + 00005710 09 2600 ADD HL,BC + 00005711 7E 2601 LD A,(HL) + 00005712 23 2602 INC HL + 00005713 66 2603 LD H,(HL) + 00005714 6F 2604 LD L,A + 00005715 CD 4D 4A 2605 CALL LWRD ?0453 + 00005718 C1 2606 POP BC + 00005719 CD 5E 81 2607 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000571C FD 5E 20 2608 LD E,(IY+32) + 0000571F FD 56 21 2609 LD D,(IY+33) + 00005722 CD F9 46 2610 CALL LWRD ?0452 + 00005725 CD 3D 55 2611 CALL LWRD ?0463 + 00005728 29 2612 ADD HL,HL + 00005729 CD 69 57 2613 CALL LWRD ?0489 + 0000572C C5 2614 PUSH BC + 0000572D FD 5E 22 2615 LD E,(IY+34) + 00005730 FD 56 23 2616 LD D,(IY+35) + 00005733 CD 41 4A 2617 CALL LWRD ?0454 + 00005736 C1 2618 POP BC + 00005737 CD 5E 81 2619 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000573A FD 5E 22 2620 LD E,(IY+34) + 0000573D FD 56 23 2621 LD D,(IY+35) + 00005740 18 1A 2622 JR ?0360 + 00005742 2623 ?0175: + 00005742 CD 3D 55 2624 CALL LWRD ?0463 + 00005745 CD 69 57 2625 CALL LWRD ?0489 + 00005748 C5 2626 PUSH BC + 00005749 FD 5E 20 2627 LD E,(IY+32) + 0000574C FD 56 21 2628 LD D,(IY+33) + 0000574F CD 41 4A 2629 CALL LWRD ?0454 + 00005752 C1 2630 POP BC + 00005753 CD 5E 81 2631 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005756 FD 5E 20 2632 LD E,(IY+32) + 00005759 FD 56 21 2633 LD D,(IY+33) + 0000575C 2634 ?0360: + 0000575C 3E 00 2635 LD A,BYTE3 Text + 0000575E 21 A6 48 2636 LD HL,LWRD Text + 00005761 2637 ?0431: + 00005761 CD 5E 81 2638 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005764 2639 ?0176: + 00005764 FD E1 2640 POP IY + 00005766 C3 1F 81 2641 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005769 2642 ?0489: + 00005769 FD 4E 08 2643 LD C,(IY+8) + 0000576C FD 46 09 2644 LD B,(IY+9) + 0000576F 09 2645 ADD HL,BC + 00005770 EB 2646 EX DE,HL + 00005771 01 02 00 2647 LD BC,2 + 00005774 CD B8 81 2648 CALL LWRD ?SS_DIV_L02 + 00005777 DD 6E 0A 2649 LD L,(IX+10) + 0000577A DD 66 0B 2650 LD H,(IX+11) + 0000577D 19 2651 ADD HL,DE + 0000577E 4D 2652 LD C,L + 0000577F 44 2653 LD B,H + 00005780 03 2654 INC BC + 00005781 C9 2655 RET + 00005782 2656 Button_paint: + 00005782 C5 2657 PUSH BC + 00005783 DD E5 2658 PUSH IX + 00005785 F5 2659 PUSH AF + 00005786 F5 2660 PUSH AF + 00005787 D5 2661 PUSH DE + 00005788 DD E1 2662 POP IX + 0000578A 21 02 00 2663 LD HL,2 + 0000578D 39 2664 ADD HL,SP + 0000578E AF 2665 XOR A + 0000578F 77 2666 LD (HL),A + 00005790 23 2667 INC HL + 00005791 77 2668 LD (HL),A + 00005792 2B 2669 DEC HL + 00005793 2B 2670 DEC HL + 00005794 2B 2671 DEC HL + 00005795 77 2672 LD (HL),A + 00005796 23 2673 INC HL + 00005797 77 2674 LD (HL),A + 00005798 21 12 00 2675 LD HL,18 + 0000579B ED 4B BF 86 2676 LD BC,(global) + 0000579F 09 2677 ADD HL,BC + 000057A0 7E 2678 LD A,(HL) + 000057A1 23 2679 INC HL + 000057A2 66 2680 LD H,(HL) + 000057A3 6F 2681 LD L,A + 000057A4 46 2682 LD B,(HL) + 000057A5 23 2683 INC HL + 000057A6 66 2684 LD H,(HL) + 000057A7 68 2685 LD L,B + 000057A8 E5 2686 PUSH HL + 000057A9 21 0E 00 2687 LD HL,14 + 000057AC 19 2688 ADD HL,DE + 000057AD 4E 2689 LD C,(HL) + 000057AE 23 2690 INC HL + 000057AF 46 2691 LD B,(HL) + 000057B0 E1 2692 POP HL + 000057B1 A7 2693 AND A + 000057B2 ED 42 2694 SBC HL,BC + 000057B4 28 03 2695 JR Z,?0178 + 000057B6 2696 ?0177: + 000057B6 CD 2F 55 2697 CALL LWRD ?0449 + 000057B9 2698 ?0178: + 000057B9 DD CB 0A 46 2699 BIT 0,(IX+10) + 000057BD CA 52 58 2700 JP Z,?0180 + 000057C0 2701 ?0179: + 000057C0 21 00 00 2702 LD HL,0 + 000057C3 39 2703 ADD HL,SP + 000057C4 E5 2704 PUSH HL + 000057C5 CD E7 53 2705 CALL LWRD ?0478 + 000057C8 E1 2706 POP HL + 000057C9 21 00 00 2707 LD HL,0 + 000057CC 39 2708 ADD HL,SP + 000057CD CD 73 55 2709 CALL LWRD ?0472 + 000057D0 CD 5E 81 2710 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000057D3 DD 6E 08 2711 LD L,(IX+8) + 000057D6 DD 66 09 2712 LD H,(IX+9) + 000057D9 E5 2713 PUSH HL + 000057DA DD 6E 06 2714 LD L,(IX+6) + 000057DD DD 66 07 2715 LD H,(IX+7) + 000057E0 E5 2716 PUSH HL + 000057E1 21 04 00 2717 LD HL,4 + 000057E4 39 2718 ADD HL,SP + 000057E5 4E 2719 LD C,(HL) + 000057E6 23 2720 INC HL + 000057E7 46 2721 LD B,(HL) + 000057E8 C5 2722 PUSH BC + 000057E9 23 2723 INC HL + 000057EA 4E 2724 LD C,(HL) + 000057EB 23 2725 INC HL + 000057EC 46 2726 LD B,(HL) + 000057ED DD CB 0A 4E 2727 BIT 1,(IX+10) + 000057F1 28 07 2728 JR Z,?0182 + 000057F3 DD 5E 10 2729 LD E,(IX+16) + 000057F6 16 00 2730 LD D,0 + 000057F8 18 03 2731 JR ?0183 + 000057FA 2732 ?0182: + 000057FA 11 00 00 2733 LD DE,0 + 000057FD 2734 ?0183: + 000057FD CD 55 49 2735 CALL LWRD ?0484 + 00005800 E1 2736 POP HL + 00005801 E1 2737 POP HL + 00005802 E1 2738 POP HL + 00005803 DD 7E 0A 2739 LD A,(IX+10) + 00005806 E6 82 2740 AND 130 + 00005808 28 1C 2741 JR Z,?0185 + 0000580A DD 7E 0A 2742 LD A,(IX+10) + 0000580D E6 82 2743 AND 130 + 0000580F EE 82 2744 XOR 130 + 00005811 28 13 2745 JR Z,?0185 + 00005813 2746 ?0187: + 00005813 2747 ?0186: + 00005813 2748 ?0184: + 00005813 DD 4E 08 2749 LD C,(IX+8) + 00005816 DD 46 09 2750 LD B,(IX+9) + 00005819 DD 5E 06 2751 LD E,(IX+6) + 0000581C DD 56 07 2752 LD D,(IX+7) + 0000581F 3E 00 2753 LD A,BYTE3 FillRectNC + 00005821 21 22 48 2754 LD HL,LWRD FillRectNC + 00005824 18 11 2755 JR ?0363 + 00005826 2756 ?0185: + 00005826 DD 4E 08 2757 LD C,(IX+8) + 00005829 DD 46 09 2758 LD B,(IX+9) + 0000582C DD 5E 06 2759 LD E,(IX+6) + 0000582F DD 56 07 2760 LD D,(IX+7) + 00005832 3E 00 2761 LD A,BYTE3 DrawRectNC + 00005834 21 A1 47 2762 LD HL,LWRD DrawRectNC + 00005837 2763 ?0363: + 00005837 CD 5E 81 2764 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000583A 2765 ?0188: + 0000583A 21 00 00 2766 LD HL,0 + 0000583D 39 2767 ADD HL,SP + 0000583E 4E 2768 LD C,(HL) + 0000583F 23 2769 INC HL + 00005840 46 2770 LD B,(HL) + 00005841 C5 2771 PUSH BC + 00005842 23 2772 INC HL + 00005843 4E 2773 LD C,(HL) + 00005844 23 2774 INC HL + 00005845 46 2775 LD B,(HL) + 00005846 DD E5 2776 PUSH IX + 00005848 D1 2777 POP DE + 00005849 3E 00 2778 LD A,BYTE3 Button_drawtext + 0000584B 21 DF 56 2779 LD HL,LWRD Button_drawtext + 0000584E CD 5E 81 2780 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005851 E1 2781 POP HL + 00005852 2782 ?0180: + 00005852 C3 27 55 2783 JP LWRD ?0165 + 00005855 2784 Button_add: + 00005855 CD 52 81 2785 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005858 C3 1F 81 2786 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000585B 2787 Button_new: + 0000585B CD 88 81 2788 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 0000585E 00 00 2789 DEFW 0 + 00005860 FD E5 2790 PUSH IY + 00005862 DD 6E 0C 2791 LD L,(IX+12) + 00005865 DD 66 0D 2792 LD H,(IX+13) + 00005868 E5 2793 PUSH HL + 00005869 DD 6E 0A 2794 LD L,(IX+10) + 0000586C DD 66 0B 2795 LD H,(IX+11) + 0000586F E5 2796 PUSH HL + 00005870 DD 5E 02 2797 LD E,(IX+2) + 00005873 DD 56 03 2798 LD D,(IX+3) + 00005876 3E 00 2799 LD A,BYTE3 Component_new + 00005878 21 06 4C 2800 LD HL,LWRD Component_new + 0000587B CD 5E 81 2801 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000587E F1 2802 POP AF + 0000587F F1 2803 POP AF + 00005880 E5 2804 PUSH HL + 00005881 FD E1 2805 POP IY + 00005883 01 0A 00 2806 LD BC,10 + 00005886 09 2807 ADD HL,BC + 00005887 7E 2808 LD A,(HL) + 00005888 F6 03 2809 OR 3 + 0000588A 77 2810 LD (HL),A + 0000588B DD 46 0E 2811 LD B,(IX+14) + 0000588E FD 70 10 2812 LD (IY+16),B + 00005891 FD 36 17 28 2813 LD (IY+23),LOW(Button_handler) + 00005895 FD 36 18 56 2814 LD (IY+24),HIGH(Button_handler) + 00005899 FD 36 19 00 2815 LD (IY+25),BYTE3 Button_handler + 0000589D FD 36 1A 82 2816 LD (IY+26),LOW(Button_paint) + 000058A1 FD 36 1B 57 2817 LD (IY+27),HIGH(Button_paint) + 000058A5 FD 36 1C 00 2818 LD (IY+28),BYTE3 Button_paint + 000058A9 FD 36 1D 55 2819 LD (IY+29),LOW(Button_add) + 000058AD FD 36 1E 58 2820 LD (IY+30),HIGH(Button_add) + 000058B1 FD 36 1F 00 2821 LD (IY+31),BYTE3 Button_add + 000058B5 C3 A8 4C 2822 JP LWRD ?0422 + 000058B8 2823 ToggleButton_handler: + 000058B8 CD 52 81 2824 CALL LWRD ?ENT_PARM_DIRECT_L09 + 000058BB FD E5 2825 PUSH IY + 000058BD D5 2826 PUSH DE + 000058BE FD E1 2827 POP IY + 000058C0 DD 6E 0A 2828 LD L,(IX+10) + 000058C3 DD 66 0B 2829 LD H,(IX+11) + 000058C6 E5 2830 PUSH HL + 000058C7 3E 00 2831 LD A,BYTE3 Window_handler + 000058C9 21 29 51 2832 LD HL,LWRD Window_handler + 000058CC CD 5E 81 2833 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000058CF E1 2834 POP HL + 000058D0 3E 03 2835 LD A,3 + 000058D2 DD AE 04 2836 XOR (IX+4) + 000058D5 DD B6 05 2837 OR (IX+5) + 000058D8 20 5C 2838 JR NZ,?0194 + 000058DA FD 4E 10 2839 LD C,(IY+16) + 000058DD 47 2840 LD B,A + 000058DE DD 6E 0A 2841 LD L,(IX+10) + 000058E1 DD 66 0B 2842 LD H,(IX+11) + 000058E4 ED 42 2843 SBC HL,BC + 000058E6 20 4E 2844 JR NZ,?0194 + 000058E8 FD 7E 0A 2845 LD A,(IY+10) + 000058EB E6 03 2846 AND 3 + 000058ED 28 47 2847 JR Z,?0194 + 000058EF 2848 ?0192: + 000058EF 2849 ?0191: + 000058EF 2850 ?0189: + 000058EF FD 7E 0A 2851 LD A,(IY+10) + 000058F2 EE 04 2852 XOR 4 + 000058F4 FD 77 0A 2853 LD (IY+10),A + 000058F7 DD 6E 0A 2854 LD L,(IX+10) + 000058FA DD 66 0B 2855 LD H,(IX+11) + 000058FD E5 2856 PUSH HL + 000058FE FD 5E 11 2857 LD E,(IY+17) + 00005901 FD 56 12 2858 LD D,(IY+18) + 00005904 FD 6E 11 2859 LD L,(IY+17) + 00005907 FD 66 12 2860 LD H,(IY+18) + 0000590A 0E 17 2861 LD C,23 + 0000590C 09 2862 ADD HL,BC + 0000590D 4E 2863 LD C,(HL) + 0000590E 23 2864 INC HL + 0000590F 46 2865 LD B,(HL) + 00005910 23 2866 INC HL + 00005911 7E 2867 LD A,(HL) + 00005912 69 2868 LD L,C + 00005913 60 2869 LD H,B + 00005914 01 02 02 2870 LD BC,514 + 00005917 CD 5E 81 2871 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000591A E1 2872 POP HL + 0000591B 21 00 00 2873 LD HL,0 + 0000591E E5 2874 PUSH HL + 0000591F 01 03 01 2875 LD BC,259 + 00005922 CD D8 53 2876 CALL LWRD ?0476 + 00005925 E1 2877 POP HL + 00005926 FD CB 0A 66 2878 BIT 4,(IY+10) + 0000592A 28 0A 2879 JR Z,?0194 + 0000592C 2880 ?0193: + 0000592C FD 4E 10 2881 LD C,(IY+16) + 0000592F 06 00 2882 LD B,0 + 00005931 C5 2883 PUSH BC + 00005932 CD C3 56 2884 CALL LWRD ?0482 + 00005935 E1 2885 POP HL + 00005936 2886 ?0194: + 00005936 2887 ?0190: + 00005936 21 01 02 2888 LD HL,513 + 00005939 DD 4E 04 2889 LD C,(IX+4) + 0000593C DD 46 05 2890 LD B,(IX+5) + 0000593F A7 2891 AND A + 00005940 ED 42 2892 SBC HL,BC + 00005942 20 0B 2893 JR NZ,?0196 + 00005944 2894 ?0195: + 00005944 DD 6E 0A 2895 LD L,(IX+10) + 00005947 DD 66 0B 2896 LD H,(IX+11) + 0000594A E5 2897 PUSH HL + 0000594B CD A6 56 2898 CALL LWRD ?0481 + 0000594E E1 2899 POP HL + 0000594F 2900 ?0196: + 0000594F FD E1 2901 POP IY + 00005951 C3 1F 81 2902 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005954 2903 ToggleButton_paint: + 00005954 C5 2904 PUSH BC + 00005955 DD E5 2905 PUSH IX + 00005957 F5 2906 PUSH AF + 00005958 F5 2907 PUSH AF + 00005959 D5 2908 PUSH DE + 0000595A DD E1 2909 POP IX + 0000595C 21 02 00 2910 LD HL,2 + 0000595F 39 2911 ADD HL,SP + 00005960 AF 2912 XOR A + 00005961 77 2913 LD (HL),A + 00005962 23 2914 INC HL + 00005963 77 2915 LD (HL),A + 00005964 2B 2916 DEC HL + 00005965 2B 2917 DEC HL + 00005966 2B 2918 DEC HL + 00005967 77 2919 LD (HL),A + 00005968 23 2920 INC HL + 00005969 77 2921 LD (HL),A + 0000596A 21 12 00 2922 LD HL,18 + 0000596D ED 4B BF 86 2923 LD BC,(global) + 00005971 09 2924 ADD HL,BC + 00005972 7E 2925 LD A,(HL) + 00005973 23 2926 INC HL + 00005974 66 2927 LD H,(HL) + 00005975 6F 2928 LD L,A + 00005976 46 2929 LD B,(HL) + 00005977 23 2930 INC HL + 00005978 66 2931 LD H,(HL) + 00005979 68 2932 LD L,B + 0000597A E5 2933 PUSH HL + 0000597B 21 0E 00 2934 LD HL,14 + 0000597E 19 2935 ADD HL,DE + 0000597F 4E 2936 LD C,(HL) + 00005980 23 2937 INC HL + 00005981 46 2938 LD B,(HL) + 00005982 E1 2939 POP HL + 00005983 A7 2940 AND A + 00005984 ED 42 2941 SBC HL,BC + 00005986 28 03 2942 JR Z,?0198 + 00005988 2943 ?0197: + 00005988 CD 2F 55 2944 CALL LWRD ?0449 + 0000598B 2945 ?0198: + 0000598B DD CB 0A 46 2946 BIT 0,(IX+10) + 0000598F CA 3D 5A 2947 JP Z,?0200 + 00005992 2948 ?0199: + 00005992 21 00 00 2949 LD HL,0 + 00005995 39 2950 ADD HL,SP + 00005996 E5 2951 PUSH HL + 00005997 CD E7 53 2952 CALL LWRD ?0478 + 0000599A E1 2953 POP HL + 0000599B 21 00 00 2954 LD HL,0 + 0000599E 39 2955 ADD HL,SP + 0000599F CD 73 55 2956 CALL LWRD ?0472 + 000059A2 CD 5E 81 2957 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000059A5 DD CB 0A 4E 2958 BIT 1,(IX+10) + 000059A9 28 36 2959 JR Z,?0202 + 000059AB DD CB 0A 56 2960 BIT 2,(IX+10) + 000059AF 28 30 2961 JR Z,?0202 + 000059B1 2962 ?0204: + 000059B1 2963 ?0203: + 000059B1 2964 ?0201: + 000059B1 DD 4E 08 2965 LD C,(IX+8) + 000059B4 DD 46 09 2966 LD B,(IX+9) + 000059B7 DD 5E 06 2967 LD E,(IX+6) + 000059BA DD 56 07 2968 LD D,(IX+7) + 000059BD 3E 00 2969 LD A,BYTE3 FillRectNC + 000059BF 21 22 48 2970 LD HL,LWRD FillRectNC + 000059C2 CD 5E 81 2971 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000059C5 DD 6E 08 2972 LD L,(IX+8) + 000059C8 DD 66 09 2973 LD H,(IX+9) + 000059CB E5 2974 PUSH HL + 000059CC DD 6E 06 2975 LD L,(IX+6) + 000059CF DD 66 07 2976 LD H,(IX+7) + 000059D2 E5 2977 PUSH HL + 000059D3 21 04 00 2978 LD HL,4 + 000059D6 39 2979 ADD HL,SP + 000059D7 4E 2980 LD C,(HL) + 000059D8 23 2981 INC HL + 000059D9 46 2982 LD B,(HL) + 000059DA C5 2983 PUSH BC + 000059DB 23 2984 INC HL + 000059DC 4E 2985 LD C,(HL) + 000059DD 23 2986 INC HL + 000059DE 46 2987 LD B,(HL) + 000059DF 18 34 2988 JR ?0367 + 000059E1 2989 ?0202: + 000059E1 DD 4E 08 2990 LD C,(IX+8) + 000059E4 DD 46 09 2991 LD B,(IX+9) + 000059E7 DD 5E 06 2992 LD E,(IX+6) + 000059EA DD 56 07 2993 LD D,(IX+7) + 000059ED 3E 00 2994 LD A,BYTE3 DrawRectNC + 000059EF 21 A1 47 2995 LD HL,LWRD DrawRectNC + 000059F2 CD 5E 81 2996 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000059F5 DD 6E 08 2997 LD L,(IX+8) + 000059F8 DD 66 09 2998 LD H,(IX+9) + 000059FB E5 2999 PUSH HL + 000059FC DD 6E 06 3000 LD L,(IX+6) + 000059FF DD 66 07 3001 LD H,(IX+7) + 00005A02 E5 3002 PUSH HL + 00005A03 21 04 00 3003 LD HL,4 + 00005A06 39 3004 ADD HL,SP + 00005A07 4E 3005 LD C,(HL) + 00005A08 23 3006 INC HL + 00005A09 46 3007 LD B,(HL) + 00005A0A C5 3008 PUSH BC + 00005A0B 23 3009 INC HL + 00005A0C 4E 3010 LD C,(HL) + 00005A0D 23 3011 INC HL + 00005A0E 46 3012 LD B,(HL) + 00005A0F DD CB 0A 4E 3013 BIT 1,(IX+10) + 00005A13 28 07 3014 JR Z,?0207 + 00005A15 3015 ?0367: + 00005A15 DD 5E 10 3016 LD E,(IX+16) + 00005A18 16 00 3017 LD D,0 + 00005A1A 18 03 3018 JR ?0208 + 00005A1C 3019 ?0207: + 00005A1C 11 00 00 3020 LD DE,0 + 00005A1F 3021 ?0208: + 00005A1F CD 55 49 3022 CALL LWRD ?0484 + 00005A22 E1 3023 POP HL + 00005A23 E1 3024 POP HL + 00005A24 E1 3025 POP HL + 00005A25 3026 ?0205: + 00005A25 21 00 00 3027 LD HL,0 + 00005A28 39 3028 ADD HL,SP + 00005A29 4E 3029 LD C,(HL) + 00005A2A 23 3030 INC HL + 00005A2B 46 3031 LD B,(HL) + 00005A2C C5 3032 PUSH BC + 00005A2D 23 3033 INC HL + 00005A2E 4E 3034 LD C,(HL) + 00005A2F 23 3035 INC HL + 00005A30 46 3036 LD B,(HL) + 00005A31 DD E5 3037 PUSH IX + 00005A33 D1 3038 POP DE + 00005A34 3E 00 3039 LD A,BYTE3 Button_drawtext + 00005A36 21 DF 56 3040 LD HL,LWRD Button_drawtext + 00005A39 CD 5E 81 3041 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005A3C E1 3042 POP HL + 00005A3D 3043 ?0200: + 00005A3D C3 27 55 3044 JP LWRD ?0165 + 00005A40 3045 ToggleButton_new: + 00005A40 CD 88 81 3046 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005A43 00 00 3047 DEFW 0 + 00005A45 FD E5 3048 PUSH IY + 00005A47 DD 6E 0C 3049 LD L,(IX+12) + 00005A4A DD 66 0D 3050 LD H,(IX+13) + 00005A4D E5 3051 PUSH HL + 00005A4E DD 6E 0A 3052 LD L,(IX+10) + 00005A51 DD 66 0B 3053 LD H,(IX+11) + 00005A54 E5 3054 PUSH HL + 00005A55 DD 5E 02 3055 LD E,(IX+2) + 00005A58 DD 56 03 3056 LD D,(IX+3) + 00005A5B 3E 00 3057 LD A,BYTE3 Component_new + 00005A5D 21 06 4C 3058 LD HL,LWRD Component_new + 00005A60 CD 5E 81 3059 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005A63 F1 3060 POP AF + 00005A64 F1 3061 POP AF + 00005A65 E5 3062 PUSH HL + 00005A66 FD E1 3063 POP IY + 00005A68 01 0A 00 3064 LD BC,10 + 00005A6B 09 3065 ADD HL,BC + 00005A6C 7E 3066 LD A,(HL) + 00005A6D F6 07 3067 OR 7 + 00005A6F 77 3068 LD (HL),A + 00005A70 DD 46 0E 3069 LD B,(IX+14) + 00005A73 FD 70 10 3070 LD (IY+16),B + 00005A76 FD 36 17 B8 3071 LD (IY+23),LOW(ToggleButton_handler) + 00005A7A FD 36 18 58 3072 LD (IY+24),HIGH(ToggleButton_handler) + 00005A7E FD 36 19 00 3073 LD (IY+25),BYTE3 ToggleButton_handler + 00005A82 FD 36 1A 54 3074 LD (IY+26),LOW(ToggleButton_paint) + 00005A86 FD 36 1B 59 3075 LD (IY+27),HIGH(ToggleButton_paint) + 00005A8A FD 36 1C 00 3076 LD (IY+28),BYTE3 ToggleButton_paint + 00005A8E FD 36 1D 55 3077 LD (IY+29),LOW(Button_add) + 00005A92 FD 36 1E 58 3078 LD (IY+30),HIGH(Button_add) + 00005A96 FD 36 1F 00 3079 LD (IY+31),BYTE3 Button_add + 00005A9A C3 A8 4C 3080 JP LWRD ?0422 + 00005A9D 3081 Dialog_handler: + 00005A9D CD 52 81 3082 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005AA0 FD E5 3083 PUSH IY + 00005AA2 D5 3084 PUSH DE + 00005AA3 FD E1 3085 POP IY + 00005AA5 DD 6E 0A 3086 LD L,(IX+10) + 00005AA8 DD 66 0B 3087 LD H,(IX+11) + 00005AAB E5 3088 PUSH HL + 00005AAC 3E 00 3089 LD A,BYTE3 Window_handler + 00005AAE 21 29 51 3090 LD HL,LWRD Window_handler + 00005AB1 CD 5E 81 3091 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005AB4 E1 3092 POP HL + 00005AB5 21 01 02 3093 LD HL,513 + 00005AB8 DD 4E 04 3094 LD C,(IX+4) + 00005ABB DD 46 05 3095 LD B,(IX+5) + 00005ABE A7 3096 AND A + 00005ABF ED 42 3097 SBC HL,BC + 00005AC1 20 40 3098 JR NZ,?0210 + 00005AC3 3E FF 3099 LD A,255 + 00005AC5 DD AE 0A 3100 XOR (IX+10) + 00005AC8 DD B6 0B 3101 OR (IX+11) + 00005ACB 20 36 3102 JR NZ,?0210 + 00005ACD 3103 ?0212: + 00005ACD 3104 ?0211: + 00005ACD 3105 ?0209: + 00005ACD FD CB 0B 66 3106 BIT 4,(IY+11) + 00005AD1 E5 3107 PUSH HL + 00005AD2 28 05 3108 JR Z,?0214 + 00005AD4 3109 ?0213: + 00005AD4 01 05 01 3110 LD BC,261 + 00005AD7 18 03 3111 JR ?0368 + 00005AD9 3112 ?0214: + 00005AD9 01 02 01 3113 LD BC,258 + 00005ADC 3114 ?0368: + 00005ADC CD D8 53 3115 CALL LWRD ?0476 + 00005ADF E1 3116 POP HL + 00005AE0 3117 ?0215: + 00005AE0 FD 4E 10 3118 LD C,(IY+16) + 00005AE3 06 00 3119 LD B,0 + 00005AE5 C5 3120 PUSH BC + 00005AE6 FD 5E 11 3121 LD E,(IY+17) + 00005AE9 FD 56 12 3122 LD D,(IY+18) + 00005AEC FD 6E 11 3123 LD L,(IY+17) + 00005AEF FD 66 12 3124 LD H,(IY+18) + 00005AF2 0E 17 3125 LD C,23 + 00005AF4 09 3126 ADD HL,BC + 00005AF5 4E 3127 LD C,(HL) + 00005AF6 23 3128 INC HL + 00005AF7 46 3129 LD B,(HL) + 00005AF8 23 3130 INC HL + 00005AF9 7E 3131 LD A,(HL) + 00005AFA 69 3132 LD L,C + 00005AFB 60 3133 LD H,B + 00005AFC 01 01 03 3134 LD BC,769 + 00005AFF CD 5E 81 3135 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B02 E1 3136 POP HL + 00005B03 3137 ?0210: + 00005B03 21 01 02 3138 LD HL,513 + 00005B06 DD 4E 04 3139 LD C,(IX+4) + 00005B09 DD 46 05 3140 LD B,(IX+5) + 00005B0C A7 3141 AND A + 00005B0D ED 42 3142 SBC HL,BC + 00005B0F 20 40 3143 JR NZ,?0217 + 00005B11 3E FE 3144 LD A,254 + 00005B13 DD AE 0A 3145 XOR (IX+10) + 00005B16 DD B6 0B 3146 OR (IX+11) + 00005B19 20 36 3147 JR NZ,?0217 + 00005B1B 3148 ?0219: + 00005B1B 3149 ?0218: + 00005B1B 3150 ?0216: + 00005B1B FD CB 0B 66 3151 BIT 4,(IY+11) + 00005B1F E5 3152 PUSH HL + 00005B20 28 05 3153 JR Z,?0221 + 00005B22 3154 ?0220: + 00005B22 01 05 01 3155 LD BC,261 + 00005B25 18 03 3156 JR ?0369 + 00005B27 3157 ?0221: + 00005B27 01 02 01 3158 LD BC,258 + 00005B2A 3159 ?0369: + 00005B2A CD D8 53 3160 CALL LWRD ?0476 + 00005B2D E1 3161 POP HL + 00005B2E 3162 ?0222: + 00005B2E FD 4E 10 3163 LD C,(IY+16) + 00005B31 06 00 3164 LD B,0 + 00005B33 C5 3165 PUSH BC + 00005B34 FD 5E 11 3166 LD E,(IY+17) + 00005B37 FD 56 12 3167 LD D,(IY+18) + 00005B3A FD 6E 11 3168 LD L,(IY+17) + 00005B3D FD 66 12 3169 LD H,(IY+18) + 00005B40 0E 17 3170 LD C,23 + 00005B42 09 3171 ADD HL,BC + 00005B43 4E 3172 LD C,(HL) + 00005B44 23 3173 INC HL + 00005B45 46 3174 LD B,(HL) + 00005B46 23 3175 INC HL + 00005B47 7E 3176 LD A,(HL) + 00005B48 69 3177 LD L,C + 00005B49 60 3178 LD H,B + 00005B4A 01 02 03 3179 LD BC,770 + 00005B4D CD 5E 81 3180 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B50 E1 3181 POP HL + 00005B51 3182 ?0217: + 00005B51 FD E1 3183 POP IY + 00005B53 C3 1F 81 3184 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005B56 3185 Dialog_new: + 00005B56 CD 88 81 3186 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005B59 FE FF 3187 DEFW -2 + 00005B5B FD E5 3188 PUSH IY + 00005B5D DD 6E 0C 3189 LD L,(IX+12) + 00005B60 DD 66 0D 3190 LD H,(IX+13) + 00005B63 E5 3191 PUSH HL + 00005B64 DD 6E 0A 3192 LD L,(IX+10) + 00005B67 DD 66 0B 3193 LD H,(IX+11) + 00005B6A E5 3194 PUSH HL + 00005B6B DD 5E 02 3195 LD E,(IX+2) + 00005B6E DD 56 03 3196 LD D,(IX+3) + 00005B71 3E 00 3197 LD A,BYTE3 Component_new + 00005B73 21 06 4C 3198 LD HL,LWRD Component_new + 00005B76 CD 5E 81 3199 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005B79 F1 3200 POP AF + 00005B7A F1 3201 POP AF + 00005B7B E5 3202 PUSH HL + 00005B7C FD E1 3203 POP IY + 00005B7E 01 0A 00 3204 LD BC,10 + 00005B81 09 3205 ADD HL,BC + 00005B82 CB C6 3206 SET 0,(HL) + 00005B84 DD 46 0E 3207 LD B,(IX+14) + 00005B87 FD 70 10 3208 LD (IY+16),B + 00005B8A FD 36 17 9D 3209 LD (IY+23),LOW(Dialog_handler) + 00005B8E FD 36 18 5A 3210 LD (IY+24),HIGH(Dialog_handler) + 00005B92 FD 36 19 00 3211 LD (IY+25),BYTE3 Dialog_handler + 00005B96 FD 36 1A F6 3212 LD (IY+26),LOW(Window_paint) + 00005B9A FD 36 1B 53 3213 LD (IY+27),HIGH(Window_paint) + 00005B9E FD 36 1C 00 3214 LD (IY+28),BYTE3 Window_paint + 00005BA2 FD 36 1D CB 3215 LD (IY+29),LOW(Window_add) + 00005BA6 FD 36 1E 55 3216 LD (IY+30),HIGH(Window_add) + 00005BAA FD 36 1F 00 3217 LD (IY+31),BYTE3 Window_add + 00005BAE 21 FF 00 3218 LD HL,255 + 00005BB1 E5 3219 PUSH HL + 00005BB2 2E 14 3220 LD L,20 + 00005BB4 E5 3221 PUSH HL + 00005BB5 2E 28 3222 LD L,40 + 00005BB7 E5 3223 PUSH HL + 00005BB8 21 E4 FF 3224 LD HL,65508 + 00005BBB DD 4E 0C 3225 LD C,(IX+12) + 00005BBE DD 46 0D 3226 LD B,(IX+13) + 00005BC1 09 3227 ADD HL,BC + 00005BC2 4D 3228 LD C,L + 00005BC3 44 3229 LD B,H + 00005BC4 21 D0 FF 3230 LD HL,65488 + 00005BC7 DD 5E 0A 3231 LD E,(IX+10) + 00005BCA DD 56 0B 3232 LD D,(IX+11) + 00005BCD 19 3233 ADD HL,DE + 00005BCE EB 3234 EX DE,HL + 00005BCF 3E 00 3235 LD A,BYTE3 Button_new + 00005BD1 21 5B 58 3236 LD HL,LWRD Button_new + 00005BD4 CD 5E 81 3237 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005BD7 F1 3238 POP AF + 00005BD8 F1 3239 POP AF + 00005BD9 F1 3240 POP AF + 00005BDA DD 75 FE 3241 LD (IX-2),L + 00005BDD DD 74 FF 3242 LD (IX-1),H + 00005BE0 01 20 00 3243 LD BC,32 + 00005BE3 09 3244 ADD HL,BC + 00005BE4 E5 3245 PUSH HL + 00005BE5 11 03 00 3246 LD DE,3 + 00005BE8 CD 7F 4A 3247 CALL LWRD ?0460 + 00005BEB E1 3248 POP HL + 00005BEC 71 3249 LD (HL),C + 00005BED 23 3250 INC HL + 00005BEE 70 3251 LD (HL),B + 00005BEF 01 B9 84 3252 LD BC,?0223 + 00005BF2 CD 45 5C 3253 CALL LWRD ?0471 + 00005BF5 CD 5E 81 3254 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005BF8 21 FE 00 3255 LD HL,254 + 00005BFB E5 3256 PUSH HL + 00005BFC 2E 14 3257 LD L,20 + 00005BFE E5 3258 PUSH HL + 00005BFF 2E 28 3259 LD L,40 + 00005C01 E5 3260 PUSH HL + 00005C02 21 C8 FF 3261 LD HL,65480 + 00005C05 DD 4E 0C 3262 LD C,(IX+12) + 00005C08 DD 46 0D 3263 LD B,(IX+13) + 00005C0B 09 3264 ADD HL,BC + 00005C0C 4D 3265 LD C,L + 00005C0D 44 3266 LD B,H + 00005C0E 21 D0 FF 3267 LD HL,65488 + 00005C11 DD 5E 0A 3268 LD E,(IX+10) + 00005C14 DD 56 0B 3269 LD D,(IX+11) + 00005C17 19 3270 ADD HL,DE + 00005C18 EB 3271 EX DE,HL + 00005C19 3E 00 3272 LD A,BYTE3 Button_new + 00005C1B 21 5B 58 3273 LD HL,LWRD Button_new + 00005C1E CD 5E 81 3274 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005C21 F1 3275 POP AF + 00005C22 F1 3276 POP AF + 00005C23 F1 3277 POP AF + 00005C24 DD 75 FE 3278 LD (IX-2),L + 00005C27 DD 74 FF 3279 LD (IX-1),H + 00005C2A 01 20 00 3280 LD BC,32 + 00005C2D 09 3281 ADD HL,BC + 00005C2E E5 3282 PUSH HL + 00005C2F 11 07 00 3283 LD DE,7 + 00005C32 CD 7F 4A 3284 CALL LWRD ?0460 + 00005C35 E1 3285 POP HL + 00005C36 71 3286 LD (HL),C + 00005C37 23 3287 INC HL + 00005C38 70 3288 LD (HL),B + 00005C39 01 BC 84 3289 LD BC,?0224 + 00005C3C CD 45 5C 3290 CALL LWRD ?0471 + 00005C3F CD 5E 81 3291 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005C42 C3 A8 4C 3292 JP LWRD ?0422 + 00005C45 3293 ?0471: + 00005C45 DD 5E FE 3294 LD E,(IX-2) + 00005C48 DD 56 FF 3295 LD D,(IX-1) + 00005C4B 3E 00 3296 LD A,BYTE3 Component_setlabel + 00005C4D 21 B0 4C 3297 LD HL,LWRD Component_setlabel + 00005C50 CD 5E 81 3298 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005C53 DD 4E FE 3299 LD C,(IX-2) + 00005C56 DD 46 FF 3300 LD B,(IX-1) + 00005C59 FD E5 3301 PUSH IY + 00005C5B D1 3302 POP DE + 00005C5C FD 7E 1F 3303 LD A,(IY+31) + 00005C5F FD 6E 1D 3304 LD L,(IY+29) + 00005C62 FD 66 1E 3305 LD H,(IY+30) + 00005C65 C9 3306 RET + 00005C66 3307 Display_handler: + 00005C66 CD 52 81 3308 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005C69 FD E5 3309 PUSH IY + 00005C6B D5 3310 PUSH DE + 00005C6C FD E1 3311 POP IY + 00005C6E DD 6E 0A 3312 LD L,(IX+10) + 00005C71 DD 66 0B 3313 LD H,(IX+11) + 00005C74 E5 3314 PUSH HL + 00005C75 3E 00 3315 LD A,BYTE3 Button_handler + 00005C77 21 28 56 3316 LD HL,LWRD Button_handler + 00005C7A CD 5E 81 3317 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005C7D E1 3318 POP HL + 00005C7E 21 03 02 3319 LD HL,515 + 00005C81 DD 4E 04 3320 LD C,(IX+4) + 00005C84 DD 46 05 3321 LD B,(IX+5) + 00005C87 A7 3322 AND A + 00005C88 ED 42 3323 SBC HL,BC + 00005C8A 20 40 3324 JR NZ,?0226 + 00005C8C FD CB 0A 5E 3325 BIT 3,(IY+10) + 00005C90 28 3A 3326 JR Z,?0226 + 00005C92 3327 ?0228: + 00005C92 3328 ?0227: + 00005C92 3329 ?0225: + 00005C92 3E 08 3330 LD A,8 + 00005C94 DD AE 0A 3331 XOR (IX+10) + 00005C97 DD B6 0B 3332 OR (IX+11) + 00005C9A FD 5E 20 3333 LD E,(IY+32) + 00005C9D FD 56 21 3334 LD D,(IY+33) + 00005CA0 3E 00 3335 LD A,BYTE3 strlen + 00005CA2 21 C8 73 3336 LD HL,LWRD strlen + 00005CA5 20 0D 3337 JR NZ,?0230 + 00005CA7 3338 ?0229: + 00005CA7 CD 79 4A 3339 CALL LWRD ?0458 + 00005CAA 28 15 3340 JR Z,?0233 + 00005CAC 3341 ?0231: + 00005CAC CD D1 5C 3342 CALL LWRD ?0455 + 00005CAF 2B 3343 DEC HL + 00005CB0 36 00 3344 LD (HL),0 + 00005CB2 3345 ?0232: + 00005CB2 18 0D 3346 JR ?0233 + 00005CB4 3347 ?0230: + 00005CB4 CD DC 5C 3348 CALL LWRD ?0456 + 00005CB7 23 3349 INC HL + 00005CB8 36 00 3350 LD (HL),0 + 00005CBA CD D1 5C 3351 CALL LWRD ?0455 + 00005CBD DD 46 0A 3352 LD B,(IX+10) + 00005CC0 70 3353 LD (HL),B + 00005CC1 3354 ?0233: + 00005CC1 21 00 00 3355 LD HL,0 + 00005CC4 E5 3356 PUSH HL + 00005CC5 01 03 01 3357 LD BC,259 + 00005CC8 CD D8 53 3358 CALL LWRD ?0476 + 00005CCB E1 3359 POP HL + 00005CCC 3360 ?0226: + 00005CCC FD E1 3361 POP IY + 00005CCE C3 1F 81 3362 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005CD1 3363 ?0455: + 00005CD1 FD 5E 20 3364 LD E,(IY+32) + 00005CD4 FD 56 21 3365 LD D,(IY+33) + 00005CD7 3E 00 3366 LD A,BYTE3 strlen + 00005CD9 21 C8 73 3367 LD HL,LWRD strlen + 00005CDC 3368 ?0456: + 00005CDC CD 5E 81 3369 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005CDF FD 4E 20 3370 LD C,(IY+32) + 00005CE2 FD 46 21 3371 LD B,(IY+33) + 00005CE5 09 3372 ADD HL,BC + 00005CE6 C9 3373 RET + 00005CE7 3374 Display_paint: + 00005CE7 C5 3375 PUSH BC + 00005CE8 FD E5 3376 PUSH IY + 00005CEA DD E5 3377 PUSH IX + 00005CEC 21 B8 FF 3378 LD HL,65464 + 00005CEF 39 3379 ADD HL,SP + 00005CF0 F9 3380 LD SP,HL + 00005CF1 D5 3381 PUSH DE + 00005CF2 DD E1 3382 POP IX + 00005CF4 AF 3383 XOR A + 00005CF5 77 3384 LD (HL),A + 00005CF6 23 3385 INC HL + 00005CF7 77 3386 LD (HL),A + 00005CF8 23 3387 INC HL + 00005CF9 77 3388 LD (HL),A + 00005CFA 23 3389 INC HL + 00005CFB 77 3390 LD (HL),A + 00005CFC 21 12 00 3391 LD HL,18 + 00005CFF ED 4B BF 86 3392 LD BC,(global) + 00005D03 09 3393 ADD HL,BC + 00005D04 7E 3394 LD A,(HL) + 00005D05 23 3395 INC HL + 00005D06 66 3396 LD H,(HL) + 00005D07 6F 3397 LD L,A + 00005D08 46 3398 LD B,(HL) + 00005D09 23 3399 INC HL + 00005D0A 66 3400 LD H,(HL) + 00005D0B 68 3401 LD L,B + 00005D0C E5 3402 PUSH HL + 00005D0D 21 0E 00 3403 LD HL,14 + 00005D10 19 3404 ADD HL,DE + 00005D11 4E 3405 LD C,(HL) + 00005D12 23 3406 INC HL + 00005D13 46 3407 LD B,(HL) + 00005D14 E1 3408 POP HL + 00005D15 A7 3409 AND A + 00005D16 ED 42 3410 SBC HL,BC + 00005D18 28 03 3411 JR Z,?0235 + 00005D1A 3412 ?0234: + 00005D1A CD 2F 55 3413 CALL LWRD ?0449 + 00005D1D 3414 ?0235: + 00005D1D DD CB 0A 46 3415 BIT 0,(IX+10) + 00005D21 CA 03 5E 3416 JP Z,?0250 + 00005D24 3417 ?0236: + 00005D24 21 02 00 3418 LD HL,2 + 00005D27 39 3419 ADD HL,SP + 00005D28 E5 3420 PUSH HL + 00005D29 2B 3421 DEC HL + 00005D2A 2B 3422 DEC HL + 00005D2B CD E9 53 3423 CALL LWRD ?0479 + 00005D2E E1 3424 POP HL + 00005D2F 21 02 00 3425 LD HL,2 + 00005D32 39 3426 ADD HL,SP + 00005D33 4E 3427 LD C,(HL) + 00005D34 23 3428 INC HL + 00005D35 46 3429 LD B,(HL) + 00005D36 2B 3430 DEC HL + 00005D37 2B 3431 DEC HL + 00005D38 2B 3432 DEC HL + 00005D39 CD 77 55 3433 CALL LWRD ?0473 + 00005D3C CD 5E 81 3434 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005D3F DD 6E 08 3435 LD L,(IX+8) + 00005D42 DD 66 09 3436 LD H,(IX+9) + 00005D45 E5 3437 PUSH HL + 00005D46 DD 6E 06 3438 LD L,(IX+6) + 00005D49 DD 66 07 3439 LD H,(IX+7) + 00005D4C E5 3440 PUSH HL + 00005D4D 21 06 00 3441 LD HL,6 + 00005D50 39 3442 ADD HL,SP + 00005D51 4E 3443 LD C,(HL) + 00005D52 23 3444 INC HL + 00005D53 46 3445 LD B,(HL) + 00005D54 C5 3446 PUSH BC + 00005D55 2B 3447 DEC HL + 00005D56 2B 3448 DEC HL + 00005D57 2B 3449 DEC HL + 00005D58 4E 3450 LD C,(HL) + 00005D59 23 3451 INC HL + 00005D5A 46 3452 LD B,(HL) + 00005D5B DD CB 0A 4E 3453 BIT 1,(IX+10) + 00005D5F 28 07 3454 JR Z,?0239 + 00005D61 DD 5E 10 3455 LD E,(IX+16) + 00005D64 16 00 3456 LD D,0 + 00005D66 18 03 3457 JR ?0240 + 00005D68 3458 ?0239: + 00005D68 11 00 00 3459 LD DE,0 + 00005D6B 3460 ?0240: + 00005D6B CD 55 49 3461 CALL LWRD ?0484 + 00005D6E E1 3462 POP HL + 00005D6F E1 3463 POP HL + 00005D70 E1 3464 POP HL + 00005D71 DD CB 0A 7E 3465 BIT 7,(IX+10) + 00005D75 DD 4E 08 3466 LD C,(IX+8) + 00005D78 DD 46 09 3467 LD B,(IX+9) + 00005D7B DD 5E 06 3468 LD E,(IX+6) + 00005D7E DD 56 07 3469 LD D,(IX+7) + 00005D81 20 07 3470 JR NZ,?0242 + 00005D83 3471 ?0241: + 00005D83 3E 00 3472 LD A,BYTE3 FillRectNC + 00005D85 21 22 48 3473 LD HL,LWRD FillRectNC + 00005D88 18 05 3474 JR ?0374 + 00005D8A 3475 ?0242: + 00005D8A 3E 00 3476 LD A,BYTE3 DrawRectNC + 00005D8C 21 A1 47 3477 LD HL,LWRD DrawRectNC + 00005D8F 3478 ?0374: + 00005D8F CD 5D 55 3479 CALL LWRD ?0470 + 00005D92 3480 ?0243: + 00005D92 CD 4F 55 3481 CALL LWRD ?0462 + 00005D95 DD 4E 08 3482 LD C,(IX+8) + 00005D98 DD 46 09 3483 LD B,(IX+9) + 00005D9B 09 3484 ADD HL,BC + 00005D9C EB 3485 EX DE,HL + 00005D9D 01 02 00 3486 LD BC,2 + 00005DA0 CD B8 81 3487 CALL LWRD ?SS_DIV_L02 + 00005DA3 69 3488 LD L,C + 00005DA4 60 3489 LD H,B + 00005DA5 39 3490 ADD HL,SP + 00005DA6 46 3491 LD B,(HL) + 00005DA7 23 3492 INC HL + 00005DA8 66 3493 LD H,(HL) + 00005DA9 68 3494 LD L,B + 00005DAA 19 3495 ADD HL,DE + 00005DAB 4D 3496 LD C,L + 00005DAC 44 3497 LD B,H + 00005DAD 21 00 00 3498 LD HL,0 + 00005DB0 39 3499 ADD HL,SP + 00005DB1 5E 3500 LD E,(HL) + 00005DB2 23 3501 INC HL + 00005DB3 56 3502 LD D,(HL) + 00005DB4 13 3503 INC DE + 00005DB5 13 3504 INC DE + 00005DB6 3E 00 3505 LD A,BYTE3 Move + 00005DB8 21 26 47 3506 LD HL,LWRD Move + 00005DBB CD 5E 81 3507 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005DBE DD CB 0B 46 3508 BIT 0,(IX+11) + 00005DC2 28 36 3509 JR Z,?0245 + 00005DC4 3510 ?0244: + 00005DC4 FD 21 00 00 3511 LD IY,0 + 00005DC8 3512 ?0247: + 00005DC8 DD 5E 20 3513 LD E,(IX+32) + 00005DCB DD 56 21 3514 LD D,(IX+33) + 00005DCE 3E 00 3515 LD A,BYTE3 strlen + 00005DD0 21 C8 73 3516 LD HL,LWRD strlen + 00005DD3 CD 84 4A 3517 CALL LWRD ?0459 + 00005DD6 FD E5 3518 PUSH IY + 00005DD8 E1 3519 POP HL + 00005DD9 A7 3520 AND A + 00005DDA ED 42 3521 SBC HL,BC + 00005DDC 21 06 00 3522 LD HL,6 + 00005DDF 30 0B 3523 JR NC,?0246 + 00005DE1 3524 ?0248: + 00005DE1 39 3525 ADD HL,SP + 00005DE2 FD E5 3526 PUSH IY + 00005DE4 C1 3527 POP BC + 00005DE5 09 3528 ADD HL,BC + 00005DE6 36 2A 3529 LD (HL),42 + 00005DE8 FD 23 3530 INC IY + 00005DEA 18 DC 3531 JR ?0247 + 00005DEC 3532 ?0246: + 00005DEC 39 3533 ADD HL,SP + 00005DED FD E5 3534 PUSH IY + 00005DEF C1 3535 POP BC + 00005DF0 09 3536 ADD HL,BC + 00005DF1 36 00 3537 LD (HL),0 + 00005DF3 21 06 00 3538 LD HL,6 + 00005DF6 39 3539 ADD HL,SP + 00005DF7 EB 3540 EX DE,HL + 00005DF8 18 06 3541 JR ?0375 + 00005DFA 3542 ?0245: + 00005DFA DD 5E 20 3543 LD E,(IX+32) + 00005DFD DD 56 21 3544 LD D,(IX+33) + 00005E00 3545 ?0375: + 00005E00 CD F9 46 3546 CALL LWRD ?0452 + 00005E03 3547 ?0250: + 00005E03 3548 ?0237: + 00005E03 21 48 00 3549 LD HL,72 + 00005E06 39 3550 ADD HL,SP + 00005E07 F9 3551 LD SP,HL + 00005E08 C3 C1 48 3552 JP LWRD ?0415 + 00005E0B 3553 Display_new: + 00005E0B CD 88 81 3554 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005E0E 00 00 3555 DEFW 0 + 00005E10 FD E5 3556 PUSH IY + 00005E12 DD 6E 0E 3557 LD L,(IX+14) + 00005E15 DD 66 0F 3558 LD H,(IX+15) + 00005E18 E5 3559 PUSH HL + 00005E19 DD 6E 0C 3560 LD L,(IX+12) + 00005E1C DD 66 0D 3561 LD H,(IX+13) + 00005E1F E5 3562 PUSH HL + 00005E20 DD 6E 0A 3563 LD L,(IX+10) + 00005E23 DD 66 0B 3564 LD H,(IX+11) + 00005E26 E5 3565 PUSH HL + 00005E27 DD 5E 02 3566 LD E,(IX+2) + 00005E2A DD 56 03 3567 LD D,(IX+3) + 00005E2D 3E 00 3568 LD A,BYTE3 Button_new + 00005E2F 21 5B 58 3569 LD HL,LWRD Button_new + 00005E32 CD 5E 81 3570 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005E35 F1 3571 POP AF + 00005E36 F1 3572 POP AF + 00005E37 F1 3573 POP AF + 00005E38 E5 3574 PUSH HL + 00005E39 FD E1 3575 POP IY + 00005E3B 01 0A 00 3576 LD BC,10 + 00005E3E 09 3577 ADD HL,BC + 00005E3F CB DE 3578 SET 3,(HL) + 00005E41 01 C3 84 3579 LD BC,?0251 + 00005E44 FD E5 3580 PUSH IY + 00005E46 D1 3581 POP DE + 00005E47 3E 00 3582 LD A,BYTE3 Component_setlabel + 00005E49 21 B0 4C 3583 LD HL,LWRD Component_setlabel + 00005E4C CD 5E 81 3584 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005E4F FD 36 1A E7 3585 LD (IY+26),LOW(Display_paint) + 00005E53 FD 36 1B 5C 3586 LD (IY+27),HIGH(Display_paint) + 00005E57 FD 36 1C 00 3587 LD (IY+28),BYTE3 Display_paint + 00005E5B FD 36 17 66 3588 LD (IY+23),LOW(Display_handler) + 00005E5F FD 36 18 5C 3589 LD (IY+24),HIGH(Display_handler) + 00005E63 FD 36 19 00 3590 LD (IY+25),BYTE3 Display_handler + 00005E67 C3 A8 4C 3591 JP LWRD ?0422 + 00005E6A 3592 Label_handler: + 00005E6A CD 52 81 3593 CALL LWRD ?ENT_PARM_DIRECT_L09 + 00005E6D C3 1F 81 3594 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005E70 3595 Label_paint: + 00005E70 C5 3596 PUSH BC + 00005E71 DD E5 3597 PUSH IX + 00005E73 F5 3598 PUSH AF + 00005E74 F5 3599 PUSH AF + 00005E75 D5 3600 PUSH DE + 00005E76 DD E1 3601 POP IX + 00005E78 21 02 00 3602 LD HL,2 + 00005E7B 39 3603 ADD HL,SP + 00005E7C AF 3604 XOR A + 00005E7D 77 3605 LD (HL),A + 00005E7E 23 3606 INC HL + 00005E7F 77 3607 LD (HL),A + 00005E80 2B 3608 DEC HL + 00005E81 2B 3609 DEC HL + 00005E82 2B 3610 DEC HL + 00005E83 77 3611 LD (HL),A + 00005E84 23 3612 INC HL + 00005E85 77 3613 LD (HL),A + 00005E86 21 12 00 3614 LD HL,18 + 00005E89 ED 4B BF 86 3615 LD BC,(global) + 00005E8D 09 3616 ADD HL,BC + 00005E8E 7E 3617 LD A,(HL) + 00005E8F 23 3618 INC HL + 00005E90 66 3619 LD H,(HL) + 00005E91 6F 3620 LD L,A + 00005E92 46 3621 LD B,(HL) + 00005E93 23 3622 INC HL + 00005E94 66 3623 LD H,(HL) + 00005E95 68 3624 LD L,B + 00005E96 E5 3625 PUSH HL + 00005E97 21 0E 00 3626 LD HL,14 + 00005E9A 19 3627 ADD HL,DE + 00005E9B 4E 3628 LD C,(HL) + 00005E9C 23 3629 INC HL + 00005E9D 46 3630 LD B,(HL) + 00005E9E E1 3631 POP HL + 00005E9F A7 3632 AND A + 00005EA0 ED 42 3633 SBC HL,BC + 00005EA2 28 03 3634 JR Z,?0253 + 00005EA4 3635 ?0252: + 00005EA4 CD 2F 55 3636 CALL LWRD ?0449 + 00005EA7 3637 ?0253: + 00005EA7 DD CB 0A 46 3638 BIT 0,(IX+10) + 00005EAB 28 21 3639 JR Z,?0255 + 00005EAD 3640 ?0254: + 00005EAD 21 00 00 3641 LD HL,0 + 00005EB0 39 3642 ADD HL,SP + 00005EB1 E5 3643 PUSH HL + 00005EB2 CD E7 53 3644 CALL LWRD ?0478 + 00005EB5 E1 3645 POP HL + 00005EB6 21 00 00 3646 LD HL,0 + 00005EB9 39 3647 ADD HL,SP + 00005EBA 4E 3648 LD C,(HL) + 00005EBB 23 3649 INC HL + 00005EBC 46 3650 LD B,(HL) + 00005EBD C5 3651 PUSH BC + 00005EBE 23 3652 INC HL + 00005EBF 4E 3653 LD C,(HL) + 00005EC0 23 3654 INC HL + 00005EC1 46 3655 LD B,(HL) + 00005EC2 DD E5 3656 PUSH IX + 00005EC4 D1 3657 POP DE + 00005EC5 3E 00 3658 LD A,BYTE3 Button_drawtext + 00005EC7 21 DF 56 3659 LD HL,LWRD Button_drawtext + 00005ECA CD 5E 81 3660 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005ECD E1 3661 POP HL + 00005ECE 3662 ?0255: + 00005ECE C3 27 55 3663 JP LWRD ?0165 + 00005ED1 3664 Label_new: + 00005ED1 CD 88 81 3665 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005ED4 00 00 3666 DEFW 0 + 00005ED6 FD E5 3667 PUSH IY + 00005ED8 DD 6E 0C 3668 LD L,(IX+12) + 00005EDB DD 66 0D 3669 LD H,(IX+13) + 00005EDE E5 3670 PUSH HL + 00005EDF DD 6E 0A 3671 LD L,(IX+10) + 00005EE2 DD 66 0B 3672 LD H,(IX+11) + 00005EE5 E5 3673 PUSH HL + 00005EE6 DD 5E 02 3674 LD E,(IX+2) + 00005EE9 DD 56 03 3675 LD D,(IX+3) + 00005EEC 3E 00 3676 LD A,BYTE3 Component_new + 00005EEE 21 06 4C 3677 LD HL,LWRD Component_new + 00005EF1 CD 5E 81 3678 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005EF4 F1 3679 POP AF + 00005EF5 F1 3680 POP AF + 00005EF6 E5 3681 PUSH HL + 00005EF7 FD E1 3682 POP IY + 00005EF9 01 20 00 3683 LD BC,32 + 00005EFC 09 3684 ADD HL,BC + 00005EFD DD 4E 0E 3685 LD C,(IX+14) + 00005F00 71 3686 LD (HL),C + 00005F01 DD 46 0F 3687 LD B,(IX+15) + 00005F04 23 3688 INC HL + 00005F05 70 3689 LD (HL),B + 00005F06 FD 36 0A 01 3690 LD (IY+10),1 + 00005F0A FD 36 0B 00 3691 LD (IY+11),0 + 00005F0E FD 36 17 6A 3692 LD (IY+23),LOW(Label_handler) + 00005F12 FD 36 18 5E 3693 LD (IY+24),HIGH(Label_handler) + 00005F16 FD 36 19 00 3694 LD (IY+25),BYTE3 Label_handler + 00005F1A FD 36 1A 70 3695 LD (IY+26),LOW(Label_paint) + 00005F1E FD 36 1B 5E 3696 LD (IY+27),HIGH(Label_paint) + 00005F22 FD 36 1C 00 3697 LD (IY+28),BYTE3 Label_paint + 00005F26 FD 36 1D 55 3698 LD (IY+29),LOW(Button_add) + 00005F2A FD 36 1E 58 3699 LD (IY+30),HIGH(Button_add) + 00005F2E FD 36 1F 00 3700 LD (IY+31),BYTE3 Button_add + 00005F32 C3 A8 4C 3701 JP LWRD ?0422 + 00005F35 3702 rootWindow_handler: + 00005F35 CD 88 81 3703 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005F38 00 00 3704 DEFW 0 + 00005F3A DD 6E 0A 3705 LD L,(IX+10) + 00005F3D DD 66 0B 3706 LD H,(IX+11) + 00005F40 E5 3707 PUSH HL + 00005F41 DD 5E 02 3708 LD E,(IX+2) + 00005F44 DD 56 03 3709 LD D,(IX+3) + 00005F47 3E 00 3710 LD A,BYTE3 Window_handler + 00005F49 21 29 51 3711 LD HL,LWRD Window_handler + 00005F4C CD 5E 81 3712 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005F4F E1 3713 POP HL + 00005F50 C3 1F 81 3714 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00005F53 3715 screenbuilder: + 00005F53 CD 88 81 3716 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00005F56 CE FF 3717 DEFW 65486 + 00005F58 FD E5 3718 PUSH IY + 00005F5A DD 36 D8 00 3719 LD (IX-40),0 + 00005F5E 21 00 00 3720 LD HL,0 + 00005F61 E5 3721 PUSH HL + 00005F62 C5 3722 PUSH BC + 00005F63 CD DC 46 3723 CALL LWRD ?0444 + 00005F66 F1 3724 POP AF + 00005F67 F1 3725 POP AF + 00005F68 DD 75 D4 3726 LD (IX-44),L + 00005F6B DD 74 D5 3727 LD (IX-43),H + 00005F6E DD 36 F0 06 3728 LD (IX-16),6 + 00005F72 DD 36 F1 00 3729 LD (IX-15),0 + 00005F76 DD 36 F2 05 3730 LD (IX-14),5 + 00005F7A DD 36 F3 00 3731 LD (IX-13),0 + 00005F7E 3732 ?0258: + 00005F7E DD 36 F4 00 3733 LD (IX-12),0 + 00005F82 DD 7E D8 3734 LD A,(IX-40) + 00005F85 FE 73 3735 CP 115 + 00005F87 20 18 3736 JR NZ,?0260 + 00005F89 3737 ?0259: + 00005F89 DD 6E D9 3738 LD L,(IX-39) + 00005F8C DD 66 DA 3739 LD H,(IX-38) + 00005F8F DD 75 F0 3740 LD (IX-16),L + 00005F92 DD 74 F1 3741 LD (IX-15),H + 00005F95 DD 6E DB 3742 LD L,(IX-37) + 00005F98 DD 66 DC 3743 LD H,(IX-36) + 00005F9B DD 75 F2 3744 LD (IX-14),L + 00005F9E DD 74 F3 3745 LD (IX-13),H + 00005FA1 3746 ?0260: + 00005FA1 DD 7E D8 3747 LD A,(IX-40) + 00005FA4 FE 42 3748 CP 66 + 00005FA6 28 07 3749 JR Z,?0263 + 00005FA8 DD 7E D8 3750 LD A,(IX-40) + 00005FAB FE 4D 3751 CP 77 + 00005FAD 20 4E 3752 JR NZ,?0262 + 00005FAF 3753 ?0263: + 00005FAF 3754 ?0264: + 00005FAF 3755 ?0261: + 00005FAF DD 4E DD 3756 LD C,(IX-35) + 00005FB2 06 00 3757 LD B,0 + 00005FB4 C5 3758 PUSH BC + 00005FB5 CD 02 63 3759 CALL LWRD ?0490 + 00005FB8 D5 3760 PUSH DE + 00005FB9 CD 18 63 3761 CALL LWRD ?0491 + 00005FBC D5 3762 PUSH DE + 00005FBD DD 6E DB 3763 LD L,(IX-37) + 00005FC0 26 00 3764 LD H,0 + 00005FC2 44 3765 LD B,H + 00005FC3 DD 4E D9 3766 LD C,(IX-39) + 00005FC6 09 3767 ADD HL,BC + 00005FC7 4D 3768 LD C,L + 00005FC8 44 3769 LD B,H + 00005FC9 11 03 01 3770 LD DE,259 + 00005FCC CD 20 63 3771 CALL LWRD ?0492 + 00005FCF EB 3772 EX DE,HL + 00005FD0 D1 3773 POP DE + 00005FD1 A7 3774 AND A + 00005FD2 ED 52 3775 SBC HL,DE + 00005FD4 2B 3776 DEC HL + 00005FD5 2B 3777 DEC HL + 00005FD6 2B 3778 DEC HL + 00005FD7 E5 3779 PUSH HL + 00005FD8 CD 2C 63 3780 CALL LWRD ?0493 + 00005FDB D5 3781 PUSH DE + 00005FDC CD 18 63 3782 CALL LWRD ?0491 + 00005FDF 3E 00 3783 LD A,BYTE3 Button_new + 00005FE1 21 5B 58 3784 LD HL,LWRD Button_new + 00005FE4 C1 3785 POP BC + 00005FE5 CD 5E 81 3786 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00005FE8 F1 3787 POP AF + 00005FE9 F1 3788 POP AF + 00005FEA F1 3789 POP AF + 00005FEB E5 3790 PUSH HL + 00005FEC FD E1 3791 POP IY + 00005FEE DD 7E D8 3792 LD A,(IX-40) + 00005FF1 FE 4D 3793 CP 77 + 00005FF3 20 04 3794 JR NZ,?0266 + 00005FF5 3795 ?0265: + 00005FF5 FD CB 0A F6 3796 SET 6,(IY+10) + 00005FF9 3797 ?0266: + 00005FF9 DD 36 F4 01 3798 LD (IX-12),1 + 00005FFD 3799 ?0262: + 00005FFD DD 7E D8 3800 LD A,(IX-40) + 00006000 FE 54 3801 CP 84 + 00006002 20 43 3802 JR NZ,?0268 + 00006004 3803 ?0267: + 00006004 DD 4E DD 3804 LD C,(IX-35) + 00006007 06 00 3805 LD B,0 + 00006009 C5 3806 PUSH BC + 0000600A CD 02 63 3807 CALL LWRD ?0490 + 0000600D D5 3808 PUSH DE + 0000600E CD 18 63 3809 CALL LWRD ?0491 + 00006011 D5 3810 PUSH DE + 00006012 DD 6E DB 3811 LD L,(IX-37) + 00006015 26 00 3812 LD H,0 + 00006017 44 3813 LD B,H + 00006018 DD 4E D9 3814 LD C,(IX-39) + 0000601B 09 3815 ADD HL,BC + 0000601C 4D 3816 LD C,L + 0000601D 44 3817 LD B,H + 0000601E 11 03 01 3818 LD DE,259 + 00006021 CD 20 63 3819 CALL LWRD ?0492 + 00006024 EB 3820 EX DE,HL + 00006025 D1 3821 POP DE + 00006026 A7 3822 AND A + 00006027 ED 52 3823 SBC HL,DE + 00006029 2B 3824 DEC HL + 0000602A 2B 3825 DEC HL + 0000602B 2B 3826 DEC HL + 0000602C E5 3827 PUSH HL + 0000602D CD 2C 63 3828 CALL LWRD ?0493 + 00006030 D5 3829 PUSH DE + 00006031 CD 18 63 3830 CALL LWRD ?0491 + 00006034 3E 00 3831 LD A,BYTE3 ToggleButton_new + 00006036 21 40 5A 3832 LD HL,LWRD ToggleButton_new + 00006039 C1 3833 POP BC + 0000603A CD 5E 81 3834 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000603D F1 3835 POP AF + 0000603E F1 3836 POP AF + 0000603F F1 3837 POP AF + 00006040 E5 3838 PUSH HL + 00006041 FD E1 3839 POP IY + 00006043 DD 36 F4 01 3840 LD (IX-12),1 + 00006047 3841 ?0268: + 00006047 DD 7E D8 3842 LD A,(IX-40) + 0000604A FE 44 3843 CP 68 + 0000604C 20 43 3844 JR NZ,?0270 + 0000604E 3845 ?0269: + 0000604E DD 4E DD 3846 LD C,(IX-35) + 00006051 06 00 3847 LD B,0 + 00006053 C5 3848 PUSH BC + 00006054 CD 02 63 3849 CALL LWRD ?0490 + 00006057 D5 3850 PUSH DE + 00006058 CD 18 63 3851 CALL LWRD ?0491 + 0000605B D5 3852 PUSH DE + 0000605C DD 6E DB 3853 LD L,(IX-37) + 0000605F 26 00 3854 LD H,0 + 00006061 44 3855 LD B,H + 00006062 DD 4E D9 3856 LD C,(IX-39) + 00006065 09 3857 ADD HL,BC + 00006066 4D 3858 LD C,L + 00006067 44 3859 LD B,H + 00006068 11 03 01 3860 LD DE,259 + 0000606B CD 20 63 3861 CALL LWRD ?0492 + 0000606E EB 3862 EX DE,HL + 0000606F D1 3863 POP DE + 00006070 A7 3864 AND A + 00006071 ED 52 3865 SBC HL,DE + 00006073 2B 3866 DEC HL + 00006074 2B 3867 DEC HL + 00006075 2B 3868 DEC HL + 00006076 E5 3869 PUSH HL + 00006077 CD 2C 63 3870 CALL LWRD ?0493 + 0000607A D5 3871 PUSH DE + 0000607B CD 18 63 3872 CALL LWRD ?0491 + 0000607E 3E 00 3873 LD A,BYTE3 Display_new + 00006080 21 0B 5E 3874 LD HL,LWRD Display_new + 00006083 C1 3875 POP BC + 00006084 CD 5E 81 3876 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006087 F1 3877 POP AF + 00006088 F1 3878 POP AF + 00006089 F1 3879 POP AF + 0000608A E5 3880 PUSH HL + 0000608B FD E1 3881 POP IY + 0000608D DD 36 F4 01 3882 LD (IX-12),1 + 00006091 3883 ?0270: + 00006091 DD 7E D8 3884 LD A,(IX-40) + 00006094 FE 4C 3885 CP 76 + 00006096 20 46 3886 JR NZ,?0272 + 00006098 3887 ?0271: + 00006098 21 0C 00 3888 LD HL,12 + 0000609B 39 3889 ADD HL,SP + 0000609C 01 12 00 3890 LD BC,18 + 0000609F 09 3891 ADD HL,BC + 000060A0 E5 3892 PUSH HL + 000060A1 CD 02 63 3893 CALL LWRD ?0490 + 000060A4 D5 3894 PUSH DE + 000060A5 CD 18 63 3895 CALL LWRD ?0491 + 000060A8 D5 3896 PUSH DE + 000060A9 DD 6E DB 3897 LD L,(IX-37) + 000060AC 26 00 3898 LD H,0 + 000060AE 44 3899 LD B,H + 000060AF DD 4E D9 3900 LD C,(IX-39) + 000060B2 09 3901 ADD HL,BC + 000060B3 4D 3902 LD C,L + 000060B4 44 3903 LD B,H + 000060B5 11 03 01 3904 LD DE,259 + 000060B8 CD 20 63 3905 CALL LWRD ?0492 + 000060BB EB 3906 EX DE,HL + 000060BC D1 3907 POP DE + 000060BD A7 3908 AND A + 000060BE ED 52 3909 SBC HL,DE + 000060C0 2B 3910 DEC HL + 000060C1 2B 3911 DEC HL + 000060C2 2B 3912 DEC HL + 000060C3 E5 3913 PUSH HL + 000060C4 CD 2C 63 3914 CALL LWRD ?0493 + 000060C7 D5 3915 PUSH DE + 000060C8 CD 18 63 3916 CALL LWRD ?0491 + 000060CB 3E 00 3917 LD A,BYTE3 Label_new + 000060CD 21 D1 5E 3918 LD HL,LWRD Label_new + 000060D0 C1 3919 POP BC + 000060D1 CD 5E 81 3920 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000060D4 F1 3921 POP AF + 000060D5 F1 3922 POP AF + 000060D6 F1 3923 POP AF + 000060D7 E5 3924 PUSH HL + 000060D8 FD E1 3925 POP IY + 000060DA DD 36 F4 01 3926 LD (IX-12),1 + 000060DE 3927 ?0272: + 000060DE DD 7E D8 3928 LD A,(IX-40) + 000060E1 FE 41 3929 CP 65 + 000060E3 20 51 3930 JR NZ,?0274 + 000060E5 3931 ?0273: + 000060E5 21 26 00 3932 LD HL,38 + 000060E8 DD 4E 02 3933 LD C,(IX+2) + 000060EB DD 46 03 3934 LD B,(IX+3) + 000060EE 09 3935 ADD HL,BC + 000060EF E5 3936 PUSH HL + 000060F0 21 2B 00 3937 LD HL,43 + 000060F3 39 3938 ADD HL,SP + 000060F4 EB 3939 EX DE,HL + 000060F5 E1 3940 POP HL + 000060F6 73 3941 LD (HL),E + 000060F7 23 3942 INC HL + 000060F8 72 3943 LD (HL),D + 000060F9 DD 6E DE 3944 LD L,(IX-34) + 000060FC DD 66 DF 3945 LD H,(IX-33) + 000060FF DD 75 F8 3946 LD (IX-8),L + 00006102 DD 74 F9 3947 LD (IX-7),H + 00006105 DD 6E E0 3948 LD L,(IX-32) + 00006108 DD 66 E1 3949 LD H,(IX-31) + 0000610B DD 75 FA 3950 LD (IX-6),L + 0000610E DD 74 FB 3951 LD (IX-5),H + 00006111 21 16 00 3952 LD HL,22 + 00006114 39 3953 ADD HL,SP + 00006115 4E 3954 LD C,(HL) + 00006116 23 3955 INC HL + 00006117 46 3956 LD B,(HL) + 00006118 23 3957 INC HL + 00006119 5E 3958 LD E,(HL) + 0000611A 23 3959 INC HL + 0000611B 56 3960 LD D,(HL) + 0000611C DD 71 FC 3961 LD (IX-4),C + 0000611F DD 70 FD 3962 LD (IX-3),B + 00006122 DD 73 FE 3963 LD (IX-2),E + 00006125 DD 72 FF 3964 LD (IX-1),D + 00006128 DD 5E 02 3965 LD E,(IX+2) + 0000612B DD 56 03 3966 LD D,(IX+3) + 0000612E 3E 00 3967 LD A,BYTE3 root_actionhandler + 00006130 21 40 63 3968 LD HL,LWRD root_actionhandler + 00006133 CD 5E 81 3969 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006136 3970 ?0274: + 00006136 DD 7E D8 3971 LD A,(IX-40) + 00006139 FE 53 3972 CP 83 + 0000613B 20 71 3973 JR NZ,?0276 + 0000613D 3974 ?0275: + 0000613D 21 0C 00 3975 LD HL,12 + 00006140 39 3976 ADD HL,SP + 00006141 4D 3977 LD C,L + 00006142 44 3978 LD B,H + 00006143 DD 5E D4 3979 LD E,(IX-44) + 00006146 DD 56 D5 3980 LD D,(IX-43) + 00006149 3E 00 3981 LD A,BYTE3 read_stringtable + 0000614B 21 8F 66 3982 LD HL,LWRD read_stringtable + 0000614E CD 5E 81 3983 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006151 21 26 00 3984 LD HL,38 + 00006154 DD 4E 02 3985 LD C,(IX+2) + 00006157 DD 46 03 3986 LD B,(IX+3) + 0000615A 09 3987 ADD HL,BC + 0000615B E5 3988 PUSH HL + 0000615C 11 04 00 3989 LD DE,4 + 0000615F CD FA 62 3990 CALL LWRD ?0466 + 00006162 EB 3991 EX DE,HL + 00006163 E1 3992 POP HL + 00006164 73 3993 LD (HL),E + 00006165 23 3994 INC HL + 00006166 72 3995 LD (HL),D + 00006167 21 26 00 3996 LD HL,38 + 0000616A 09 3997 ADD HL,BC + 0000616B 56 3998 LD D,(HL) + 0000616C DD 72 F5 3999 LD (IX-11),D + 0000616F 23 4000 INC HL + 00006170 66 4001 LD H,(HL) + 00006171 DD 74 F6 4002 LD (IX-10),H + 00006174 21 24 00 4003 LD HL,36 + 00006177 09 4004 ADD HL,BC + 00006178 36 04 4005 LD (HL),4 + 0000617A 23 4006 INC HL + 0000617B 36 00 4007 LD (HL),0 + 0000617D 6A 4008 LD L,D + 0000617E DD 66 F6 4009 LD H,(IX-10) + 00006181 23 4010 INC HL + 00006182 23 4011 INC HL + 00006183 E5 4012 PUSH HL + 00006184 21 0C 00 4013 LD HL,12 + 00006187 ED 4B BF 86 4014 LD BC,(global) + 0000618B 09 4015 ADD HL,BC + 0000618C 5E 4016 LD E,(HL) + 0000618D 23 4017 INC HL + 0000618E 56 4018 LD D,(HL) + 0000618F E1 4019 POP HL + 00006190 73 4020 LD (HL),E + 00006191 23 4021 INC HL + 00006192 72 4022 LD (HL),D + 00006193 21 0A 00 4023 LD HL,10 + 00006196 ED 4B BF 86 4024 LD BC,(global) + 0000619A 09 4025 ADD HL,BC + 0000619B 46 4026 LD B,(HL) + 0000619C 23 4027 INC HL + 0000619D 66 4028 LD H,(HL) + 0000619E 68 4029 LD L,B + 0000619F E5 4030 PUSH HL + 000061A0 DD 6E F5 4031 LD L,(IX-11) + 000061A3 DD 66 F6 4032 LD H,(IX-10) + 000061A6 C1 4033 POP BC + 000061A7 71 4034 LD (HL),C + 000061A8 23 4035 INC HL + 000061A9 70 4036 LD (HL),B + 000061AA DD 36 F4 00 4037 LD (IX-12),0 + 000061AE 4038 ?0276: + 000061AE AF 4039 XOR A + 000061AF DD B6 F4 4040 OR (IX-12) + 000061B2 CA AE 62 4041 JP Z,?0278 + 000061B5 4042 ?0277: + 000061B5 DD 7E DE 4043 LD A,(IX-34) + 000061B8 DD B6 DF 4044 OR (IX-33) + 000061BB 28 69 4045 JR Z,?0280 + 000061BD 4046 ?0279: + 000061BD FD CB 0A EE 4047 SET 5,(IY+10) + 000061C1 FD 36 24 0B 4048 LD (IY+36),11 + 000061C5 FD 36 25 00 4049 LD (IY+37),0 + 000061C9 11 0B 00 4050 LD DE,11 + 000061CC CD FA 62 4051 CALL LWRD ?0466 + 000061CF FD 75 26 4052 LD (IY+38),L + 000061D2 FD 74 27 4053 LD (IY+39),H + 000061D5 FD 6E 26 4054 LD L,(IY+38) + 000061D8 DD 75 D0 4055 LD (IX-48),L + 000061DB FD 66 27 4056 LD H,(IY+39) + 000061DE DD 74 D1 4057 LD (IX-47),H + 000061E1 36 40 4058 LD (HL),LOW(root_actionhandler) + 000061E3 23 4059 INC HL + 000061E4 36 63 4060 LD (HL),HIGH(root_actionhandler) + 000061E6 23 4061 INC HL + 000061E7 36 00 4062 LD (HL),BYTE3 root_actionhandler + 000061E9 DD 6E D0 4063 LD L,(IX-48) + 000061EC DD 66 D1 4064 LD H,(IX-47) + 000061EF 23 4065 INC HL + 000061F0 23 4066 INC HL + 000061F1 23 4067 INC HL + 000061F2 DD 4E DE 4068 LD C,(IX-34) + 000061F5 71 4069 LD (HL),C + 000061F6 DD 46 DF 4070 LD B,(IX-33) + 000061F9 23 4071 INC HL + 000061FA 70 4072 LD (HL),B + 000061FB 21 05 00 4073 LD HL,5 + 000061FE DD 4E D0 4074 LD C,(IX-48) + 00006201 DD 46 D1 4075 LD B,(IX-47) + 00006204 09 4076 ADD HL,BC + 00006205 DD 5E E0 4077 LD E,(IX-32) + 00006208 73 4078 LD (HL),E + 00006209 DD 56 E1 4079 LD D,(IX-31) + 0000620C 23 4080 INC HL + 0000620D 72 4081 LD (HL),D + 0000620E 21 07 00 4082 LD HL,7 + 00006211 09 4083 ADD HL,BC + 00006212 E5 4084 PUSH HL + 00006213 21 18 00 4085 LD HL,24 + 00006216 39 4086 ADD HL,SP + 00006217 5E 4087 LD E,(HL) + 00006218 23 4088 INC HL + 00006219 56 4089 LD D,(HL) + 0000621A 23 4090 INC HL + 0000621B 4E 4091 LD C,(HL) + 0000621C 23 4092 INC HL + 0000621D 46 4093 LD B,(HL) + 0000621E E1 4094 POP HL + 0000621F 73 4095 LD (HL),E + 00006220 23 4096 INC HL + 00006221 72 4097 LD (HL),D + 00006222 23 4098 INC HL + 00006223 71 4099 LD (HL),C + 00006224 23 4100 INC HL + 00006225 70 4101 LD (HL),B + 00006226 4102 ?0280: + 00006226 DD 7E E6 4103 LD A,(IX-26) + 00006229 DD B6 E7 4104 OR (IX-25) + 0000622C 28 0C 4105 JR Z,?0282 + 0000622E 4106 ?0281: + 0000622E DD 6E E6 4107 LD L,(IX-26) + 00006231 FD 75 0A 4108 LD (IY+10),L + 00006234 DD 66 E7 4109 LD H,(IX-25) + 00006237 FD 74 0B 4110 LD (IY+11),H + 0000623A 4111 ?0282: + 0000623A DD 6E E8 4112 LD L,(IX-24) + 0000623D FD 75 0E 4113 LD (IY+14),L + 00006240 DD 66 E9 4114 LD H,(IX-23) + 00006243 FD 74 0F 4115 LD (IY+15),H + 00006246 DD 6E EA 4116 LD L,(IX-22) + 00006249 FD 75 20 4117 LD (IY+32),L + 0000624C DD 7E EB 4118 LD A,(IX-21) + 0000624F E6 0F 4119 AND 15 + 00006251 FD 77 21 4120 LD (IY+33),A + 00006254 FD 7E 20 4121 LD A,(IY+32) + 00006257 FD B6 21 4122 OR (IY+33) + 0000625A 20 16 4123 JR NZ,?0284 + 0000625C 4124 ?0283: + 0000625C 11 14 00 4125 LD DE,20 + 0000625F CD FA 62 4126 CALL LWRD ?0466 + 00006262 FD 75 20 4127 LD (IY+32),L + 00006265 FD 74 21 4128 LD (IY+33),H + 00006268 FD 6E 20 4129 LD L,(IY+32) + 0000626B FD 66 21 4130 LD H,(IY+33) + 0000626E 36 00 4131 LD (HL),0 + 00006270 18 04 4132 JR ?0285 + 00006272 4133 ?0284: + 00006272 FD CB 0B F6 4134 SET 6,(IY+11) + 00006276 4135 ?0285: + 00006276 DD 7E EB 4136 LD A,(IX-21) + 00006279 2E 00 4137 LD L,0 + 0000627B 4D 4138 LD C,L + 0000627C E6 F0 4139 AND 240 + 0000627E 47 4140 LD B,A + 0000627F 26 10 4141 LD H,16 + 00006281 ED 42 4142 SBC HL,BC + 00006283 30 10 4143 JR NC,?0287 + 00006285 4144 ?0286: + 00006285 DD 6E EA 4145 LD L,(IX-22) + 00006288 DD 7E EB 4146 LD A,(IX-21) + 0000628B E6 0F 4147 AND 15 + 0000628D 67 4148 LD H,A + 0000628E 23 4149 INC HL + 0000628F FD 75 22 4150 LD (IY+34),L + 00006292 FD 74 23 4151 LD (IY+35),H + 00006295 4152 ?0287: + 00006295 FD E5 4153 PUSH IY + 00006297 DD 5E 02 4154 LD E,(IX+2) + 0000629A 4B 4155 LD C,E + 0000629B DD 56 03 4156 LD D,(IX+3) + 0000629E 42 4157 LD B,D + 0000629F 21 1D 00 4158 LD HL,29 + 000062A2 09 4159 ADD HL,BC + 000062A3 4E 4160 LD C,(HL) + 000062A4 23 4161 INC HL + 000062A5 46 4162 LD B,(HL) + 000062A6 23 4163 INC HL + 000062A7 7E 4164 LD A,(HL) + 000062A8 69 4165 LD L,C + 000062A9 60 4166 LD H,B + 000062AA C1 4167 POP BC + 000062AB CD 5E 81 4168 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000062AE 4169 ?0278: + 000062AE 21 14 00 4170 LD HL,20 + 000062B1 E5 4171 PUSH HL + 000062B2 2E 0E 4172 LD L,14 + 000062B4 39 4173 ADD HL,SP + 000062B5 4D 4174 LD C,L + 000062B6 44 4175 LD B,H + 000062B7 DD 5E D4 4176 LD E,(IX-44) + 000062BA DD 56 D5 4177 LD D,(IX-43) + 000062BD 3E 00 4178 LD A,BYTE3 _read + 000062BF 21 8D 7C 4179 LD HL,LWRD _read + 000062C2 CD 5E 81 4180 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000062C5 F1 4181 POP AF + 000062C6 3E 14 4182 LD A,20 + 000062C8 AD 4183 XOR L + 000062C9 B4 4184 OR H + 000062CA CA 7E 5F 4185 JP Z,?0258 + 000062CD 4186 ?0256: + 000062CD DD 5E D4 4187 LD E,(IX-44) + 000062D0 DD 56 D5 4188 LD D,(IX-43) + 000062D3 CD 1E 47 4189 CALL LWRD ?0469 + 000062D6 DD 5E 02 4190 LD E,(IX+2) + 000062D9 DD 56 03 4191 LD D,(IX+3) + 000062DC 3E 00 4192 LD A,BYTE3 Component_linkstringtable + 000062DE 21 76 50 4193 LD HL,LWRD Component_linkstringtable + 000062E1 CD 5E 81 4194 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000062E4 DD 5E 02 4195 LD E,(IX+2) + 000062E7 4B 4196 LD C,E + 000062E8 DD 56 03 4197 LD D,(IX+3) + 000062EB 42 4198 LD B,D + 000062EC 21 1A 00 4199 LD HL,26 + 000062EF 09 4200 ADD HL,BC + 000062F0 4E 4201 LD C,(HL) + 000062F1 23 4202 INC HL + 000062F2 46 4203 LD B,(HL) + 000062F3 23 4204 INC HL + 000062F4 7E 4205 LD A,(HL) + 000062F5 69 4206 LD L,C + 000062F6 60 4207 LD H,B + 000062F7 C3 61 57 4208 JP LWRD ?0431 + 000062FA 4209 ?0466: + 000062FA 3E 00 4210 LD A,BYTE3 malloc + 000062FC 21 31 7A 4211 LD HL,LWRD malloc + 000062FF C3 5E 81 4212 JP LWRD ?BANK_CALL_DIRECT_L08 + 00006302 4213 ?0490: + 00006302 DD 4E DC 4214 LD C,(IX-36) + 00006305 11 83 00 4215 LD DE,131 + 00006308 CD 2A 81 4216 CALL LWRD ?S_MUL_L02 + 0000630B DD 4E F2 4217 LD C,(IX-14) + 0000630E DD 46 F3 4218 LD B,(IX-13) + 00006311 CD B8 81 4219 CALL LWRD ?SS_DIV_L02 + 00006314 1B 4220 DEC DE + 00006315 1B 4221 DEC DE + 00006316 1B 4222 DEC DE + 00006317 C9 4223 RET + 00006318 4224 ?0491: + 00006318 DD 5E D9 4225 LD E,(IX-39) + 0000631B 16 00 4226 LD D,0 + 0000631D 01 03 01 4227 LD BC,259 + 00006320 4228 ?0492: + 00006320 CD 2A 81 4229 CALL LWRD ?S_MUL_L02 + 00006323 DD 4E F0 4230 LD C,(IX-16) + 00006326 DD 46 F1 4231 LD B,(IX-15) + 00006329 C3 B8 81 4232 JP LWRD ?SS_DIV_L02 + 0000632C 4233 ?0493: + 0000632C DD 5E DA 4234 LD E,(IX-38) + 0000632F 16 00 4235 LD D,0 + 00006331 01 83 00 4236 LD BC,131 + 00006334 CD 2A 81 4237 CALL LWRD ?S_MUL_L02 + 00006337 DD 4E F2 4238 LD C,(IX-14) + 0000633A DD 46 F3 4239 LD B,(IX-13) + 0000633D C3 B8 81 4240 JP LWRD ?SS_DIV_L02 + 00006340 4241 root_actionhandler: + 00006340 CD 88 81 4242 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00006343 F8 FF 4243 DEFW 65528 + 00006345 FD E5 4244 PUSH IY + 00006347 DD 6E 02 4245 LD L,(IX+2) + 0000634A DD 66 03 4246 LD H,(IX+3) + 0000634D E5 4247 PUSH HL + 0000634E FD E1 4248 POP IY + 00006350 FD 6E 26 4249 LD L,(IY+38) + 00006353 DD 75 F8 4250 LD (IX-8),L + 00006356 FD 66 27 4251 LD H,(IY+39) + 00006359 DD 74 F9 4252 LD (IX-7),H + 0000635C 23 4253 INC HL + 0000635D 23 4254 INC HL + 0000635E 23 4255 INC HL + 0000635F 3E 01 4256 LD A,1 + 00006361 AE 4257 XOR (HL) + 00006362 23 4258 INC HL + 00006363 B6 4259 OR (HL) + 00006364 20 0A 4260 JR NZ,?0289 + 00006366 4261 ?0288: + 00006366 6F 4262 LD L,A + 00006367 67 4263 LD H,A + 00006368 E5 4264 PUSH HL + 00006369 01 01 05 4265 LD BC,1281 + 0000636C CD D8 53 4266 CALL LWRD ?0476 + 0000636F E1 4267 POP HL + 00006370 4268 ?0289: + 00006370 DD 6E F8 4269 LD L,(IX-8) + 00006373 DD 66 F9 4270 LD H,(IX-7) + 00006376 23 4271 INC HL + 00006377 23 4272 INC HL + 00006378 23 4273 INC HL + 00006379 46 4274 LD B,(HL) + 0000637A 23 4275 INC HL + 0000637B 66 4276 LD H,(HL) + 0000637C 68 4277 LD L,B + 0000637D CB 85 4278 RES 0,L + 0000637F 3E 02 4279 LD A,2 + 00006381 AD 4280 XOR L + 00006382 B4 4281 OR H + 00006383 C2 6F 64 4282 JP NZ,?0291 + 00006386 4283 ?0290: + 00006386 21 05 00 4284 LD HL,5 + 00006389 DD 4E F8 4285 LD C,(IX-8) + 0000638C DD 46 F9 4286 LD B,(IX-7) + 0000638F 09 4287 ADD HL,BC + 00006390 56 4288 LD D,(HL) + 00006391 23 4289 INC HL + 00006392 7E 4290 LD A,(HL) + 00006393 6A 4291 LD L,D + 00006394 E6 0F 4292 AND 15 + 00006396 67 4293 LD H,A + 00006397 29 4294 ADD HL,HL + 00006398 E5 4295 PUSH HL + 00006399 21 0C 00 4296 LD HL,12 + 0000639C ED 5B BF 86 4297 LD DE,(global) + 000063A0 19 4298 ADD HL,DE + 000063A1 5E 4299 LD E,(HL) + 000063A2 23 4300 INC HL + 000063A3 56 4301 LD D,(HL) + 000063A4 E1 4302 POP HL + 000063A5 19 4303 ADD HL,DE + 000063A6 2B 4304 DEC HL + 000063A7 2B 4305 DEC HL + 000063A8 56 4306 LD D,(HL) + 000063A9 DD 72 FC 4307 LD (IX-4),D + 000063AC 23 4308 INC HL + 000063AD 66 4309 LD H,(HL) + 000063AE DD 74 FD 4310 LD (IX-3),H + 000063B1 21 00 00 4311 LD HL,0 + 000063B4 E5 4312 PUSH HL + 000063B5 E5 4313 PUSH HL + 000063B6 01 01 00 4314 LD BC,1 + 000063B9 FD 5E 11 4315 LD E,(IY+17) + 000063BC FD 56 12 4316 LD D,(IY+18) + 000063BF 3E 00 4317 LD A,BYTE3 Component_changestate_children + 000063C1 21 0D 50 4318 LD HL,LWRD Component_changestate_children + 000063C4 CD 5E 81 4319 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000063C7 E1 4320 POP HL + 000063C8 E1 4321 POP HL + 000063C9 FD 6E 11 4322 LD L,(IY+17) + 000063CC FD 66 12 4323 LD H,(IY+18) + 000063CF 01 08 00 4324 LD BC,8 + 000063D2 09 4325 ADD HL,BC + 000063D3 4E 4326 LD C,(HL) + 000063D4 23 4327 INC HL + 000063D5 46 4328 LD B,(HL) + 000063D6 C5 4329 PUSH BC + 000063D7 FD 6E 11 4330 LD L,(IY+17) + 000063DA FD 66 12 4331 LD H,(IY+18) + 000063DD 01 06 00 4332 LD BC,6 + 000063E0 09 4333 ADD HL,BC + 000063E1 4E 4334 LD C,(HL) + 000063E2 23 4335 INC HL + 000063E3 46 4336 LD B,(HL) + 000063E4 C5 4337 PUSH BC + 000063E5 01 00 00 4338 LD BC,0 + 000063E8 59 4339 LD E,C + 000063E9 50 4340 LD D,B + 000063EA 3E 00 4341 LD A,BYTE3 Window_new + 000063EC 21 D9 55 4342 LD HL,LWRD Window_new + 000063EF CD 5E 81 4343 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000063F2 F1 4344 POP AF + 000063F3 F1 4345 POP AF + 000063F4 DD 75 FA 4346 LD (IX-6),L + 000063F7 DD 74 FB 4347 LD (IX-5),H + 000063FA 01 0A 00 4348 LD BC,10 + 000063FD 09 4349 ADD HL,BC + 000063FE 36 03 4350 LD (HL),3 + 00006400 23 4351 INC HL + 00006401 70 4352 LD (HL),B + 00006402 DD 6E F8 4353 LD L,(IX-8) + 00006405 DD 66 F9 4354 LD H,(IX-7) + 00006408 23 4355 INC HL + 00006409 23 4356 INC HL + 0000640A 23 4357 INC HL + 0000640B CB 46 4358 BIT 0,(HL) + 0000640D 28 0C 4359 JR Z,?0293 + 0000640F 4360 ?0292: + 0000640F 69 4361 LD L,C + 00006410 60 4362 LD H,B + 00006411 DD 4E FA 4363 LD C,(IX-6) + 00006414 DD 46 FB 4364 LD B,(IX-5) + 00006417 09 4365 ADD HL,BC + 00006418 23 4366 INC HL + 00006419 CB EE 4367 SET 5,(HL) + 0000641B 4368 ?0293: + 0000641B 21 17 00 4369 LD HL,23 + 0000641E DD 4E FA 4370 LD C,(IX-6) + 00006421 DD 46 FB 4371 LD B,(IX-5) + 00006424 09 4372 ADD HL,BC + 00006425 36 35 4373 LD (HL),LOW(rootWindow_handler) + 00006427 23 4374 INC HL + 00006428 36 5F 4375 LD (HL),HIGH(rootWindow_handler) + 0000642A 23 4376 INC HL + 0000642B 36 00 4377 LD (HL),BYTE3 rootWindow_handler + 0000642D 21 1A 00 4378 LD HL,26 + 00006430 09 4379 ADD HL,BC + 00006431 36 94 4380 LD (HL),LOW(Root_paint) + 00006433 23 4381 INC HL + 00006434 36 55 4382 LD (HL),HIGH(Root_paint) + 00006436 23 4383 INC HL + 00006437 36 00 4384 LD (HL),BYTE3 Root_paint + 00006439 DD 4E FC 4385 LD C,(IX-4) + 0000643C DD 46 FD 4386 LD B,(IX-3) + 0000643F DD 5E FA 4387 LD E,(IX-6) + 00006442 DD 56 FB 4388 LD D,(IX-5) + 00006445 3E 00 4389 LD A,BYTE3 screenbuilder + 00006447 21 53 5F 4390 LD HL,LWRD screenbuilder + 0000644A CD 5E 81 4391 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000644D DD 4E FA 4392 LD C,(IX-6) + 00006450 DD 46 FB 4393 LD B,(IX-5) + 00006453 C5 4394 PUSH BC + 00006454 FD 5E 11 4395 LD E,(IY+17) + 00006457 FD 56 12 4396 LD D,(IY+18) + 0000645A FD 6E 11 4397 LD L,(IY+17) + 0000645D FD 66 12 4398 LD H,(IY+18) + 00006460 01 1D 00 4399 LD BC,29 + 00006463 09 4400 ADD HL,BC + 00006464 4E 4401 LD C,(HL) + 00006465 23 4402 INC HL + 00006466 46 4403 LD B,(HL) + 00006467 23 4404 INC HL + 00006468 7E 4405 LD A,(HL) + 00006469 69 4406 LD L,C + 0000646A 60 4407 LD H,B + 0000646B C1 4408 POP BC + 0000646C CD 5E 81 4409 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000646F 4410 ?0291: + 0000646F DD 6E F8 4411 LD L,(IX-8) + 00006472 DD 66 F9 4412 LD H,(IX-7) + 00006475 23 4413 INC HL + 00006476 23 4414 INC HL + 00006477 23 4415 INC HL + 00006478 3E 04 4416 LD A,4 + 0000647A AE 4417 XOR (HL) + 0000647B 23 4418 INC HL + 0000647C B6 4419 OR (HL) + 0000647D C2 0D 66 4420 JP NZ,?0295 + 00006480 4421 ?0294: + 00006480 21 01 00 4422 LD HL,1 + 00006483 E5 4423 PUSH HL + 00006484 FD 6E 11 4424 LD L,(IY+17) + 00006487 FD 66 12 4425 LD H,(IY+18) + 0000648A 01 08 00 4426 LD BC,8 + 0000648D 09 4427 ADD HL,BC + 0000648E 46 4428 LD B,(HL) + 0000648F 23 4429 INC HL + 00006490 66 4430 LD H,(HL) + 00006491 68 4431 LD L,B + 00006492 01 F6 FF 4432 LD BC,65526 + 00006495 09 4433 ADD HL,BC + 00006496 E5 4434 PUSH HL + 00006497 FD 6E 11 4435 LD L,(IY+17) + 0000649A FD 66 12 4436 LD H,(IY+18) + 0000649D 01 06 00 4437 LD BC,6 + 000064A0 09 4438 ADD HL,BC + 000064A1 46 4439 LD B,(HL) + 000064A2 23 4440 INC HL + 000064A3 66 4441 LD H,(HL) + 000064A4 68 4442 LD L,B + 000064A5 01 F6 FF 4443 LD BC,65526 + 000064A8 09 4444 ADD HL,BC + 000064A9 E5 4445 PUSH HL + 000064AA 01 05 00 4446 LD BC,5 + 000064AD 59 4447 LD E,C + 000064AE 50 4448 LD D,B + 000064AF 3E 00 4449 LD A,BYTE3 Dialog_new + 000064B1 21 56 5B 4450 LD HL,LWRD Dialog_new + 000064B4 CD 5E 81 4451 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000064B7 F1 4452 POP AF + 000064B8 F1 4453 POP AF + 000064B9 F1 4454 POP AF + 000064BA DD 75 FA 4455 LD (IX-6),L + 000064BD DD 74 FB 4456 LD (IX-5),H + 000064C0 01 0A 00 4457 LD BC,10 + 000064C3 09 4458 ADD HL,BC + 000064C4 36 03 4459 LD (HL),3 + 000064C6 23 4460 INC HL + 000064C7 36 10 4461 LD (HL),16 + 000064C9 21 0E 00 4462 LD HL,14 + 000064CC DD 4E FA 4463 LD C,(IX-6) + 000064CF DD 46 FB 4464 LD B,(IX-5) + 000064D2 09 4465 ADD HL,BC + 000064D3 36 30 4466 LD (HL),48 + 000064D5 23 4467 INC HL + 000064D6 36 00 4468 LD (HL),0 + 000064D8 AF 4469 XOR A + 000064D9 DD 77 FE 4470 LD (IX-2),A + 000064DC DD 77 FF 4471 LD (IX-1),A + 000064DF 4472 ?0297: + 000064DF 21 05 00 4473 LD HL,5 + 000064E2 DD 4E F8 4474 LD C,(IX-8) + 000064E5 DD 46 F9 4475 LD B,(IX-7) + 000064E8 09 4476 ADD HL,BC + 000064E9 5E 4477 LD E,(HL) + 000064EA 23 4478 INC HL + 000064EB 56 4479 LD D,(HL) + 000064EC 06 0C 4480 LD B,12 + 000064EE CD 09 82 4481 CALL LWRD ?SS_RSH_L02 + 000064F1 4B 4482 LD C,E + 000064F2 42 4483 LD B,D + 000064F3 DD 6E FE 4484 LD L,(IX-2) + 000064F6 DD 66 FF 4485 LD H,(IX-1) + 000064F9 CD A6 81 4486 CALL LWRD ?SS_CMP_L02 + 000064FC 30 04 4487 JR NC,?0377 + 000064FE 3E 01 4488 LD A,1 + 00006500 18 01 4489 JR ?0378 + 00006502 4490 ?0377: + 00006502 AF 4491 XOR A + 00006503 4492 ?0378: + 00006503 E6 0F 4493 AND 15 + 00006505 CA A1 65 4494 JP Z,?0296 + 00006508 4495 ?0298: + 00006508 21 05 00 4496 LD HL,5 + 0000650B DD 4E F8 4497 LD C,(IX-8) + 0000650E DD 46 F9 4498 LD B,(IX-7) + 00006511 09 4499 ADD HL,BC + 00006512 46 4500 LD B,(HL) + 00006513 23 4501 INC HL + 00006514 7E 4502 LD A,(HL) + 00006515 68 4503 LD L,B + 00006516 E6 0F 4504 AND 15 + 00006518 67 4505 LD H,A + 00006519 DD 4E FE 4506 LD C,(IX-2) + 0000651C DD 46 FF 4507 LD B,(IX-1) + 0000651F 09 4508 ADD HL,BC + 00006520 29 4509 ADD HL,HL + 00006521 E5 4510 PUSH HL + 00006522 21 0C 00 4511 LD HL,12 + 00006525 ED 5B BF 86 4512 LD DE,(global) + 00006529 19 4513 ADD HL,DE + 0000652A 5E 4514 LD E,(HL) + 0000652B 23 4515 INC HL + 0000652C 56 4516 LD D,(HL) + 0000652D E1 4517 POP HL + 0000652E 19 4518 ADD HL,DE + 0000652F 2B 4519 DEC HL + 00006530 2B 4520 DEC HL + 00006531 5E 4521 LD E,(HL) + 00006532 23 4522 INC HL + 00006533 56 4523 LD D,(HL) + 00006534 D5 4524 PUSH DE + 00006535 21 10 00 4525 LD HL,16 + 00006538 E5 4526 PUSH HL + 00006539 2E 06 4527 LD L,6 + 0000653B DD 5E FA 4528 LD E,(IX-6) + 0000653E DD 56 FB 4529 LD D,(IX-5) + 00006541 19 4530 ADD HL,DE + 00006542 6E 4531 LD L,(HL) + 00006543 26 00 4532 LD H,0 + 00006545 01 F0 FF 4533 LD BC,65520 + 00006548 09 4534 ADD HL,BC + 00006549 E5 4535 PUSH HL + 0000654A DD 6E FE 4536 LD L,(IX-2) + 0000654D DD 66 FF 4537 LD H,(IX-1) + 00006550 29 4538 ADD HL,HL + 00006551 29 4539 ADD HL,HL + 00006552 4D 4540 LD C,L + 00006553 44 4541 LD B,H + 00006554 29 4542 ADD HL,HL + 00006555 09 4543 ADD HL,BC + 00006556 01 14 00 4544 LD BC,20 + 00006559 09 4545 ADD HL,BC + 0000655A 4D 4546 LD C,L + 0000655B 44 4547 LD B,H + 0000655C 11 08 00 4548 LD DE,8 + 0000655F 3E 00 4549 LD A,BYTE3 Label_new + 00006561 21 D1 5E 4550 LD HL,LWRD Label_new + 00006564 CD 5E 81 4551 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006567 F1 4552 POP AF + 00006568 F1 4553 POP AF + 00006569 F1 4554 POP AF + 0000656A DD 75 FC 4555 LD (IX-4),L + 0000656D DD 74 FD 4556 LD (IX-3),H + 00006570 01 0E 00 4557 LD BC,14 + 00006573 09 4558 ADD HL,BC + 00006574 36 30 4559 LD (HL),48 + 00006576 23 4560 INC HL + 00006577 70 4561 LD (HL),B + 00006578 DD 4E FC 4562 LD C,(IX-4) + 0000657B DD 46 FD 4563 LD B,(IX-3) + 0000657E C5 4564 PUSH BC + 0000657F DD 5E FA 4565 LD E,(IX-6) + 00006582 4B 4566 LD C,E + 00006583 DD 56 FB 4567 LD D,(IX-5) + 00006586 42 4568 LD B,D + 00006587 21 1D 00 4569 LD HL,29 + 0000658A 09 4570 ADD HL,BC + 0000658B 4E 4571 LD C,(HL) + 0000658C 23 4572 INC HL + 0000658D 46 4573 LD B,(HL) + 0000658E 23 4574 INC HL + 0000658F 7E 4575 LD A,(HL) + 00006590 69 4576 LD L,C + 00006591 60 4577 LD H,B + 00006592 C1 4578 POP BC + 00006593 CD 5E 81 4579 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006596 DD 34 FE 4580 INC (IX-2) + 00006599 20 03 4581 JR NZ,?0379 + 0000659B DD 34 FF 4582 INC (IX-1) + 0000659E 4583 ?0379: + 0000659E C3 DF 64 4584 JP LWRD ?0297 + 000065A1 4585 ?0296: + 000065A1 01 C4 84 4586 LD BC,?0300 + 000065A4 DD 5E FA 4587 LD E,(IX-6) + 000065A7 DD 56 FB 4588 LD D,(IX-5) + 000065AA 3E 00 4589 LD A,BYTE3 Component_setlabel + 000065AC 21 B0 4C 4590 LD HL,LWRD Component_setlabel + 000065AF CD 5E 81 4591 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000065B2 01 FF 00 4592 LD BC,255 + 000065B5 CD 81 66 4593 CALL LWRD ?0485 + 000065B8 01 0E 00 4594 LD BC,14 + 000065BB 09 4595 ADD HL,BC + 000065BC 36 30 4596 LD (HL),48 + 000065BE 23 4597 INC HL + 000065BF 70 4598 LD (HL),B + 000065C0 0E FE 4599 LD C,254 + 000065C2 CD 81 66 4600 CALL LWRD ?0485 + 000065C5 EB 4601 EX DE,HL + 000065C6 CD E6 4F 4602 CALL LWRD ?0467 + 000065C9 DD 4E FA 4603 LD C,(IX-6) + 000065CC DD 46 FB 4604 LD B,(IX-5) + 000065CF C5 4605 PUSH BC + 000065D0 FD 5E 11 4606 LD E,(IY+17) + 000065D3 FD 56 12 4607 LD D,(IY+18) + 000065D6 FD 6E 11 4608 LD L,(IY+17) + 000065D9 FD 66 12 4609 LD H,(IY+18) + 000065DC 01 1D 00 4610 LD BC,29 + 000065DF 09 4611 ADD HL,BC + 000065E0 4E 4612 LD C,(HL) + 000065E1 23 4613 INC HL + 000065E2 46 4614 LD B,(HL) + 000065E3 23 4615 INC HL + 000065E4 7E 4616 LD A,(HL) + 000065E5 69 4617 LD L,C + 000065E6 60 4618 LD H,B + 000065E7 C1 4619 POP BC + 000065E8 CD 5E 81 4620 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000065EB 21 00 00 4621 LD HL,0 + 000065EE E5 4622 PUSH HL + 000065EF FD 5E 11 4623 LD E,(IY+17) + 000065F2 FD 56 12 4624 LD D,(IY+18) + 000065F5 FD 6E 11 4625 LD L,(IY+17) + 000065F8 FD 66 12 4626 LD H,(IY+18) + 000065FB 01 17 00 4627 LD BC,23 + 000065FE 09 4628 ADD HL,BC + 000065FF 4E 4629 LD C,(HL) + 00006600 23 4630 INC HL + 00006601 46 4631 LD B,(HL) + 00006602 23 4632 INC HL + 00006603 7E 4633 LD A,(HL) + 00006604 69 4634 LD L,C + 00006605 60 4635 LD H,B + 00006606 01 03 01 4636 LD BC,259 + 00006609 CD 5E 81 4637 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000660C E1 4638 POP HL + 0000660D 4639 ?0295: + 0000660D DD 6E F8 4640 LD L,(IX-8) + 00006610 DD 66 F9 4641 LD H,(IX-7) + 00006613 23 4642 INC HL + 00006614 23 4643 INC HL + 00006615 23 4644 INC HL + 00006616 3E 05 4645 LD A,5 + 00006618 AE 4646 XOR (HL) + 00006619 23 4647 INC HL + 0000661A B6 4648 OR (HL) + 0000661B 20 1D 4649 JR NZ,?0302 + 0000661D 4650 ?0301: + 0000661D 21 05 00 4651 LD HL,5 + 00006620 DD 4E F8 4652 LD C,(IX-8) + 00006623 DD 46 F9 4653 LD B,(IX-7) + 00006626 09 4654 ADD HL,BC + 00006627 5E 4655 LD E,(HL) + 00006628 23 4656 INC HL + 00006629 56 4657 LD D,(HL) + 0000662A D5 4658 PUSH DE + 0000662B 21 07 00 4659 LD HL,7 + 0000662E 09 4660 ADD HL,BC + 0000662F 4D 4661 LD C,L + 00006630 44 4662 LD B,H + 00006631 2A BF 86 4663 LD HL,(global) + 00006634 23 4664 INC HL + 00006635 23 4665 INC HL + 00006636 CD EE 46 4666 CALL LWRD ?0445 + 00006639 F1 4667 POP AF + 0000663A 4668 ?0302: + 0000663A DD 6E F8 4669 LD L,(IX-8) + 0000663D DD 66 F9 4670 LD H,(IX-7) + 00006640 23 4671 INC HL + 00006641 23 4672 INC HL + 00006642 23 4673 INC HL + 00006643 3E 06 4674 LD A,6 + 00006645 AE 4675 XOR (HL) + 00006646 23 4676 INC HL + 00006647 B6 4677 OR (HL) + 00006648 20 16 4678 JR NZ,?0304 + 0000664A 4679 ?0303: + 0000664A 21 05 00 4680 LD HL,5 + 0000664D DD 4E F8 4681 LD C,(IX-8) + 00006650 DD 46 F9 4682 LD B,(IX-7) + 00006653 09 4683 ADD HL,BC + 00006654 5E 4684 LD E,(HL) + 00006655 23 4685 INC HL + 00006656 56 4686 LD D,(HL) + 00006657 D5 4687 PUSH DE + 00006658 21 07 00 4688 LD HL,7 + 0000665B 09 4689 ADD HL,BC + 0000665C CD E4 46 4690 CALL LWRD ?0446 + 0000665F F1 4691 POP AF + 00006660 4692 ?0304: + 00006660 21 18 00 4693 LD HL,24 + 00006663 ED 4B BF 86 4694 LD BC,(global) + 00006667 09 4695 ADD HL,BC + 00006668 7E 4696 LD A,(HL) + 00006669 23 4697 INC HL + 0000666A B6 4698 OR (HL) + 0000666B 23 4699 INC HL + 0000666C B6 4700 OR (HL) + 0000666D 28 0D 4701 JR Z,?0306 + 0000666F 4702 ?0305: + 0000666F FD E5 4703 PUSH IY + 00006671 D1 4704 POP DE + 00006672 21 18 00 4705 LD HL,24 + 00006675 ED 4B BF 86 4706 LD BC,(global) + 00006679 CD C7 53 4707 CALL LWRD ?0451 + 0000667C 4708 ?0306: + 0000667C FD E1 4709 POP IY + 0000667E C3 1F 81 4710 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 00006681 4711 ?0485: + 00006681 DD 5E FA 4712 LD E,(IX-6) + 00006684 DD 56 FB 4713 LD D,(IX-5) + 00006687 3E 00 4714 LD A,BYTE3 Component_find + 00006689 21 E5 4D 4715 LD HL,LWRD Component_find + 0000668C C3 5E 81 4716 JP LWRD ?BANK_CALL_DIRECT_L08 + 0000668F 4717 read_stringtable: + 0000668F CD 88 81 4718 CALL LWRD ?ENT_AUTO_DIRECT_L09 + 00006692 F8 FF 4719 DEFW -8 + 00006694 FD E5 4720 PUSH IY + 00006696 03 4721 INC BC + 00006697 0A 4722 LD A,(BC) + 00006698 DD 77 FE 4723 LD (IX-2),A + 0000669B 03 4724 INC BC + 0000669C 0A 4725 LD A,(BC) + 0000669D DD 77 FF 4726 LD (IX-1),A + 000066A0 03 4727 INC BC + 000066A1 69 4728 LD L,C + 000066A2 60 4729 LD H,B + 000066A3 4E 4730 LD C,(HL) + 000066A4 DD 71 FC 4731 LD (IX-4),C + 000066A7 23 4732 INC HL + 000066A8 46 4733 LD B,(HL) + 000066A9 DD 70 FD 4734 LD (IX-3),B + 000066AC DD 6E FE 4735 LD L,(IX-2) + 000066AF 67 4736 LD H,A + 000066B0 29 4737 ADD HL,HL + 000066B1 EB 4738 EX DE,HL + 000066B2 CD FA 62 4739 CALL LWRD ?0466 + 000066B5 DD 75 FA 4740 LD (IX-6),L + 000066B8 DD 74 FB 4741 LD (IX-5),H + 000066BB 59 4742 LD E,C + 000066BC 50 4743 LD D,B + 000066BD CD 25 4B 4744 CALL LWRD ?0457 + 000066C0 C5 4745 PUSH BC + 000066C1 4D 4746 LD C,L + 000066C2 44 4747 LD B,H + 000066C3 DD 5E 02 4748 LD E,(IX+2) + 000066C6 DD 56 03 4749 LD D,(IX+3) + 000066C9 3E 00 4750 LD A,BYTE3 _read + 000066CB 21 8D 7C 4751 LD HL,LWRD _read + 000066CE CD 5E 81 4752 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000066D1 F1 4753 POP AF + 000066D2 11 00 00 4754 LD DE,0 + 000066D5 AF 4755 XOR A + 000066D6 DD 77 F8 4756 LD (IX-8),A + 000066D9 DD 77 F9 4757 LD (IX-7),A + 000066DC 4758 ?0308: + 000066DC DD 4E FC 4759 LD C,(IX-4) + 000066DF DD 46 FD 4760 LD B,(IX-3) + 000066E2 6B 4761 LD L,E + 000066E3 62 4762 LD H,D + 000066E4 CD A6 81 4763 CALL LWRD ?SS_CMP_L02 + 000066E7 30 35 4764 JR NC,?0307 + 000066E9 CD 5A 67 4765 CALL LWRD ?0488 + 000066EC 30 30 4766 JR NC,?0307 + 000066EE 4767 ?0311: + 000066EE 4768 ?0310: + 000066EE 4769 ?0309: + 000066EE 23 4770 INC HL + 000066EF DD 75 F8 4771 LD (IX-8),L + 000066F2 DD 74 F9 4772 LD (IX-7),H + 000066F5 2B 4773 DEC HL + 000066F6 29 4774 ADD HL,HL + 000066F7 DD 4E FA 4775 LD C,(IX-6) + 000066FA DD 46 FB 4776 LD B,(IX-5) + 000066FD 09 4777 ADD HL,BC + 000066FE E5 4778 PUSH HL + 000066FF FD E5 4779 PUSH IY + 00006701 E1 4780 POP HL + 00006702 19 4781 ADD HL,DE + 00006703 4D 4782 LD C,L + 00006704 44 4783 LD B,H + 00006705 E1 4784 POP HL + 00006706 71 4785 LD (HL),C + 00006707 23 4786 INC HL + 00006708 70 4787 LD (HL),B + 00006709 4788 ?0313: + 00006709 FD E5 4789 PUSH IY + 0000670B E1 4790 POP HL + 0000670C 19 4791 ADD HL,DE + 0000670D 7E 4792 LD A,(HL) + 0000670E B7 4793 OR A + 0000670F 28 03 4794 JR Z,?0312 + 00006711 4795 ?0314: + 00006711 13 4796 INC DE + 00006712 18 F5 4797 JR ?0313 + 00006714 4798 ?0312: + 00006714 6B 4799 LD L,E + 00006715 62 4800 LD H,D + 00006716 13 4801 INC DE + 00006717 FD E5 4802 PUSH IY + 00006719 C1 4803 POP BC + 0000671A 09 4804 ADD HL,BC + 0000671B 77 4805 LD (HL),A + 0000671C 18 BE 4806 JR ?0308 + 0000671E 4807 ?0307: + 0000671E CD 5A 67 4808 CALL LWRD ?0488 + 00006721 30 13 4809 JR NC,?0316 + 00006723 4810 ?0315: + 00006723 29 4811 ADD HL,HL + 00006724 DD 4E FA 4812 LD C,(IX-6) + 00006727 DD 46 FB 4813 LD B,(IX-5) + 0000672A 09 4814 ADD HL,BC + 0000672B E5 4815 PUSH HL + 0000672C FD E5 4816 PUSH IY + 0000672E E1 4817 POP HL + 0000672F 19 4818 ADD HL,DE + 00006730 4D 4819 LD C,L + 00006731 44 4820 LD B,H + 00006732 E1 4821 POP HL + 00006733 71 4822 LD (HL),C + 00006734 23 4823 INC HL + 00006735 70 4824 LD (HL),B + 00006736 4825 ?0316: + 00006736 21 0A 00 4826 LD HL,10 + 00006739 ED 4B BF 86 4827 LD BC,(global) + 0000673D 09 4828 ADD HL,BC + 0000673E FD E5 4829 PUSH IY + 00006740 C1 4830 POP BC + 00006741 71 4831 LD (HL),C + 00006742 23 4832 INC HL + 00006743 70 4833 LD (HL),B + 00006744 21 0C 00 4834 LD HL,12 + 00006747 ED 4B BF 86 4835 LD BC,(global) + 0000674B 09 4836 ADD HL,BC + 0000674C DD 4E FA 4837 LD C,(IX-6) + 0000674F 71 4838 LD (HL),C + 00006750 DD 46 FB 4839 LD B,(IX-5) + 00006753 23 4840 INC HL + 00006754 70 4841 LD (HL),B + 00006755 FD E1 4842 POP IY + 00006757 C3 1F 81 4843 JP LWRD ?BANK_LEAVE_DIRECT_L08 + 0000675A 4844 ?0488: + 0000675A DD 4E FE 4845 LD C,(IX-2) + 0000675D DD 46 FF 4846 LD B,(IX-1) + 00006760 DD 6E F8 4847 LD L,(IX-8) + 00006763 DD 66 F9 4848 LD H,(IX-7) + 00006766 C3 A6 81 4849 JP LWRD ?SS_CMP_L02 + 00006769 4850 gui_globals: + 00006769 2A BF 86 4851 LD HL,(global) + 0000676C C3 25 81 4852 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000676F 4853 GUIinit: + 0000676F C5 4854 PUSH BC + 00006770 D5 4855 PUSH DE + 00006771 11 1B 00 4856 LD DE,27 + 00006774 CD FA 62 4857 CALL LWRD ?0466 + 00006777 22 BF 86 4858 LD (global),HL + 0000677A AF 4859 XOR A + 0000677B 77 4860 LD (HL),A + 0000677C 23 4861 INC HL + 0000677D 77 4862 LD (HL),A + 0000677E 21 08 00 4863 LD HL,8 + 00006781 ED 4B BF 86 4864 LD BC,(global) + 00006785 09 4865 ADD HL,BC + 00006786 77 4866 LD (HL),A + 00006787 23 4867 INC HL + 00006788 77 4868 LD (HL),A + 00006789 21 12 00 4869 LD HL,18 + 0000678C ED 4B BF 86 4870 LD BC,(global) + 00006790 09 4871 ADD HL,BC + 00006791 77 4872 LD (HL),A + 00006792 23 4873 INC HL + 00006793 77 4874 LD (HL),A + 00006794 21 14 00 4875 LD HL,20 + 00006797 ED 4B BF 86 4876 LD BC,(global) + 0000679B 09 4877 ADD HL,BC + 0000679C 77 4878 LD (HL),A + 0000679D 23 4879 INC HL + 0000679E 77 4880 LD (HL),A + 0000679F 21 0C 00 4881 LD HL,12 + 000067A2 ED 4B BF 86 4882 LD BC,(global) + 000067A6 09 4883 ADD HL,BC + 000067A7 77 4884 LD (HL),A + 000067A8 23 4885 INC HL + 000067A9 77 4886 LD (HL),A + 000067AA 21 0A 00 4887 LD HL,10 + 000067AD ED 4B BF 86 4888 LD BC,(global) + 000067B1 09 4889 ADD HL,BC + 000067B2 77 4890 LD (HL),A + 000067B3 23 4891 INC HL + 000067B4 77 4892 LD (HL),A + 000067B5 21 18 00 4893 LD HL,24 + 000067B8 ED 4B BF 86 4894 LD BC,(global) + 000067BC 09 4895 ADD HL,BC + 000067BD 77 4896 LD (HL),A + 000067BE 23 4897 INC HL + 000067BF 77 4898 LD (HL),A + 000067C0 23 4899 INC HL + 000067C1 77 4900 LD (HL),A + 000067C2 3E 00 4901 LD A,BYTE3 GraphicsOpen + 000067C4 21 E3 45 4902 LD HL,LWRD GraphicsOpen + 000067C7 CD 5E 81 4903 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000067CA 21 00 00 4904 LD HL,0 + 000067CD E5 4905 PUSH HL + 000067CE E5 4906 PUSH HL + 000067CF 0E 00 4907 LD C,BYTE3 stringheight01 + 000067D1 C5 4908 PUSH BC + 000067D2 21 C7 4B 4909 LD HL,LWRD stringheight01 + 000067D5 E5 4910 PUSH HL + 000067D6 0E 00 4911 LD C,BYTE3 stringwidth0 + 000067D8 C5 4912 PUSH BC + 000067D9 21 E3 4B 4913 LD HL,LWRD stringwidth0 + 000067DC E5 4914 PUSH HL + 000067DD 11 30 00 4915 LD DE,48 + 000067E0 CD 8E 68 4916 CALL LWRD ?0494 + 000067E3 21 0C 00 4917 LD HL,12 + 000067E6 39 4918 ADD HL,SP + 000067E7 F9 4919 LD SP,HL + 000067E8 21 00 00 4920 LD HL,0 + 000067EB E5 4921 PUSH HL + 000067EC E5 4922 PUSH HL + 000067ED 0E 00 4923 LD C,BYTE3 stringheight01 + 000067EF C5 4924 PUSH BC + 000067F0 21 C7 4B 4925 LD HL,LWRD stringheight01 + 000067F3 E5 4926 PUSH HL + 000067F4 0E 00 4927 LD C,BYTE3 stringwidth1 + 000067F6 C5 4928 PUSH BC + 000067F7 21 F4 4B 4929 LD HL,LWRD stringwidth1 + 000067FA E5 4930 PUSH HL + 000067FB 11 31 00 4931 LD DE,49 + 000067FE CD 8E 68 4932 CALL LWRD ?0494 + 00006801 21 0C 00 4933 LD HL,12 + 00006804 39 4934 ADD HL,SP + 00006805 F9 4935 LD SP,HL + 00006806 21 00 00 4936 LD HL,0 + 00006809 E5 4937 PUSH HL + 0000680A E5 4938 PUSH HL + 0000680B 0E 00 4939 LD C,BYTE3 stringheight2 + 0000680D C5 4940 PUSH BC + 0000680E 21 DA 4B 4941 LD HL,LWRD stringheight2 + 00006811 E5 4942 PUSH HL + 00006812 0E 00 4943 LD C,BYTE3 stringwidth2 + 00006814 C5 4944 PUSH BC + 00006815 21 FD 4B 4945 LD HL,LWRD stringwidth2 + 00006818 E5 4946 PUSH HL + 00006819 11 32 00 4947 LD DE,50 + 0000681C CD 8E 68 4948 CALL LWRD ?0494 + 0000681F 21 0C 00 4949 LD HL,12 + 00006822 39 4950 ADD HL,SP + 00006823 F9 4951 LD SP,HL + 00006824 21 16 00 4952 LD HL,22 + 00006827 ED 4B BF 86 4953 LD BC,(global) + 0000682B 09 4954 ADD HL,BC + 0000682C E5 4955 PUSH HL + 0000682D 11 80 00 4956 LD DE,128 + 00006830 D5 4957 PUSH DE + 00006831 5A 4958 LD E,D + 00006832 D5 4959 PUSH DE + 00006833 4B 4960 LD C,E + 00006834 42 4961 LD B,D + 00006835 3E 00 4962 LD A,BYTE3 Window_new + 00006837 21 D9 55 4963 LD HL,LWRD Window_new + 0000683A CD 5E 81 4964 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000683D F1 4965 POP AF + 0000683E F1 4966 POP AF + 0000683F 4D 4967 LD C,L + 00006840 44 4968 LD B,H + 00006841 E1 4969 POP HL + 00006842 71 4970 LD (HL),C + 00006843 23 4971 INC HL + 00006844 70 4972 LD (HL),B + 00006845 21 16 00 4973 LD HL,22 + 00006848 ED 4B BF 86 4974 LD BC,(global) + 0000684C 09 4975 ADD HL,BC + 0000684D 56 4976 LD D,(HL) + 0000684E 23 4977 INC HL + 0000684F 66 4978 LD H,(HL) + 00006850 6A 4979 LD L,D + 00006851 11 0A 00 4980 LD DE,10 + 00006854 19 4981 ADD HL,DE + 00006855 36 01 4982 LD (HL),1 + 00006857 23 4983 INC HL + 00006858 72 4984 LD (HL),D + 00006859 21 16 00 4985 LD HL,22 + 0000685C ED 4B BF 86 4986 LD BC,(global) + 00006860 09 4987 ADD HL,BC + 00006861 56 4988 LD D,(HL) + 00006862 23 4989 INC HL + 00006863 66 4990 LD H,(HL) + 00006864 6A 4991 LD L,D + 00006865 11 17 00 4992 LD DE,23 + 00006868 19 4993 ADD HL,DE + 00006869 36 35 4994 LD (HL),LOW(rootWindow_handler) + 0000686B 23 4995 INC HL + 0000686C 36 5F 4996 LD (HL),HIGH(rootWindow_handler) + 0000686E 23 4997 INC HL + 0000686F 36 00 4998 LD (HL),BYTE3 rootWindow_handler + 00006871 21 16 00 4999 LD HL,22 + 00006874 ED 4B BF 86 5000 LD BC,(global) + 00006878 09 5001 ADD HL,BC + 00006879 46 5002 LD B,(HL) + 0000687A 23 5003 INC HL + 0000687B 66 5004 LD H,(HL) + 0000687C 68 5005 LD L,B + 0000687D 01 1A 00 5006 LD BC,26 + 00006880 09 5007 ADD HL,BC + 00006881 36 94 5008 LD (HL),LOW(Root_paint) + 00006883 23 5009 INC HL + 00006884 36 55 5010 LD (HL),HIGH(Root_paint) + 00006886 23 5011 INC HL + 00006887 36 00 5012 LD (HL),BYTE3 Root_paint + 00006889 D1 5013 POP DE + 0000688A C1 5014 POP BC + 0000688B C3 25 81 5015 JP LWRD ?BANK_FAST_LEAVE_L08 + 0000688E 5016 ?0494: + 0000688E 3E 00 5017 LD A,BYTE3 loadFont + 00006890 21 8A 4A 5018 LD HL,LWRD loadFont + 00006893 C3 5E 81 5019 JP LWRD ?BANK_CALL_DIRECT_L08 + 00006896 5020 GUIunit: + 00006896 C5 5021 PUSH BC + 00006897 D5 5022 PUSH DE + 00006898 21 16 00 5023 LD HL,22 + 0000689B ED 4B BF 86 5024 LD BC,(global) + 0000689F 09 5025 ADD HL,BC + 000068A0 5E 5026 LD E,(HL) + 000068A1 23 5027 INC HL + 000068A2 56 5028 LD D,(HL) + 000068A3 CD E6 4F 5029 CALL LWRD ?0467 + 000068A6 3E 00 5030 LD A,BYTE3 ClearScreen + 000068A8 21 20 49 5031 LD HL,LWRD ClearScreen + 000068AB CD 5E 81 5032 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000068AE 3E 00 5033 LD A,BYTE3 GraphicsClose + 000068B0 21 01 47 5034 LD HL,LWRD GraphicsClose + 000068B3 CD 5E 81 5035 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000068B6 D1 5036 POP DE + 000068B7 C1 5037 POP BC + 000068B8 C3 25 81 5038 JP LWRD ?BANK_FAST_LEAVE_L08 + 000068BB 5039 GUIgo: + 000068BB C5 5040 PUSH BC + 000068BC DD E5 5041 PUSH IX + 000068BE D5 5042 PUSH DE + 000068BF F5 5043 PUSH AF + 000068C0 F5 5044 PUSH AF + 000068C1 F5 5045 PUSH AF + 000068C2 F5 5046 PUSH AF + 000068C3 4B 5047 LD C,E + 000068C4 42 5048 LD B,D + 000068C5 21 16 00 5049 LD HL,22 + 000068C8 ED 5B BF 86 5050 LD DE,(global) + 000068CC 19 5051 ADD HL,DE + 000068CD 5E 5052 LD E,(HL) + 000068CE 23 5053 INC HL + 000068CF 56 5054 LD D,(HL) + 000068D0 3E 00 5055 LD A,BYTE3 screenbuilder + 000068D2 21 53 5F 5056 LD HL,LWRD screenbuilder + 000068D5 CD 5E 81 5057 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000068D8 21 0E 00 5058 LD HL,14 + 000068DB ED 4B BF 86 5059 LD BC,(global) + 000068DF 09 5060 ADD HL,BC + 000068E0 E5 5061 PUSH HL + 000068E1 11 10 00 5062 LD DE,16 + 000068E4 CD FA 62 5063 CALL LWRD ?0466 + 000068E7 EB 5064 EX DE,HL + 000068E8 E1 5065 POP HL + 000068E9 73 5066 LD (HL),E + 000068EA 23 5067 INC HL + 000068EB 72 5068 LD (HL),D + 000068EC 21 0E 00 5069 LD HL,14 + 000068EF ED 4B BF 86 5070 LD BC,(global) + 000068F3 09 5071 ADD HL,BC + 000068F4 7E 5072 LD A,(HL) + 000068F5 23 5073 INC HL + 000068F6 66 5074 LD H,(HL) + 000068F7 6F 5075 LD L,A + 000068F8 36 00 5076 LD (HL),0 + 000068FA 21 10 00 5077 LD HL,16 + 000068FD ED 4B BF 86 5078 LD BC,(global) + 00006901 09 5079 ADD HL,BC + 00006902 E5 5080 PUSH HL + 00006903 11 00 00 5081 LD DE,0 + 00006906 D5 5082 PUSH DE + 00006907 11 D0 84 5083 LD DE,?0317 + 0000690A D5 5084 PUSH DE + 0000690B CD DC 46 5085 CALL LWRD ?0444 + 0000690E F1 5086 POP AF + 0000690F F1 5087 POP AF + 00006910 EB 5088 EX DE,HL + 00006911 E1 5089 POP HL + 00006912 73 5090 LD (HL),E + 00006913 23 5091 INC HL + 00006914 72 5092 LD (HL),D + 00006915 21 02 00 5093 LD HL,2 + 00006918 39 5094 ADD HL,SP + 00006919 E5 5095 PUSH HL + 0000691A 21 00 00 5096 LD HL,0 + 0000691D E5 5097 PUSH HL + 0000691E 2E 10 5098 LD L,16 + 00006920 ED 4B BF 86 5099 LD BC,(global) + 00006924 09 5100 ADD HL,BC + 00006925 5E 5101 LD E,(HL) + 00006926 23 5102 INC HL + 00006927 56 5103 LD D,(HL) + 00006928 D5 5104 PUSH DE + 00006929 CD D4 46 5105 CALL LWRD ?0443 + 0000692C F1 5106 POP AF + 0000692D F1 5107 POP AF + 0000692E F1 5108 POP AF + 0000692F 21 06 00 5109 LD HL,6 + 00006932 39 5110 ADD HL,SP + 00006933 36 60 5111 LD (HL),96 + 00006935 23 5112 INC HL + 00006936 36 00 5113 LD (HL),0 + 00006938 21 02 00 5114 LD HL,2 + 0000693B 39 5115 ADD HL,SP + 0000693C E5 5116 PUSH HL + 0000693D 21 01 00 5117 LD HL,1 + 00006940 E5 5118 PUSH HL + 00006941 2E 10 5119 LD L,16 + 00006943 09 5120 ADD HL,BC + 00006944 4E 5121 LD C,(HL) + 00006945 23 5122 INC HL + 00006946 46 5123 LD B,(HL) + 00006947 C5 5124 PUSH BC + 00006948 CD D4 46 5125 CALL LWRD ?0443 + 0000694B F1 5126 POP AF + 0000694C F1 5127 POP AF + 0000694D F1 5128 POP AF + 0000694E DD 21 00 00 5129 LD IX,0 + 00006952 5130 ?0319: + 00006952 21 08 00 5131 LD HL,8 + 00006955 ED 4B BF 86 5132 LD BC,(global) + 00006959 09 5133 ADD HL,BC + 0000695A 7E 5134 LD A,(HL) + 0000695B 23 5135 INC HL + 0000695C B6 5136 OR (HL) + 0000695D C2 73 6A 5137 JP NZ,?0318 + 00006960 5138 ?0320: + 00006960 21 01 00 5139 LD HL,1 + 00006963 E5 5140 PUSH HL + 00006964 23 5141 INC HL + 00006965 39 5142 ADD HL,SP + 00006966 4D 5143 LD C,L + 00006967 44 5144 LD B,H + 00006968 21 06 00 5145 LD HL,6 + 0000696B ED 5B BF 86 5146 LD DE,(global) + 0000696F 19 5147 ADD HL,DE + 00006970 5E 5148 LD E,(HL) + 00006971 23 5149 INC HL + 00006972 56 5150 LD D,(HL) + 00006973 3E 00 5151 LD A,BYTE3 _read + 00006975 21 8D 7C 5152 LD HL,LWRD _read + 00006978 CD 5E 81 5153 CALL LWRD ?BANK_CALL_DIRECT_L08 + 0000697B F1 5154 POP AF + 0000697C 3E 01 5155 LD A,1 + 0000697E AD 5156 XOR L + 0000697F B4 5157 OR H + 00006980 20 67 5158 JR NZ,?0322 + 00006982 5159 ?0321: + 00006982 6F 5160 LD L,A + 00006983 67 5161 LD H,A + 00006984 39 5162 ADD HL,SP + 00006985 B6 5163 OR (HL) + 00006986 28 2B 5164 JR Z,?0324 + 00006988 5165 ?0323: + 00006988 4F 5166 LD C,A + 00006989 06 00 5167 LD B,0 + 0000698B C5 5168 PUSH BC + 0000698C 21 16 00 5169 LD HL,22 + 0000698F ED 5B BF 86 5170 LD DE,(global) + 00006993 19 5171 ADD HL,DE + 00006994 5E 5172 LD E,(HL) + 00006995 23 5173 INC HL + 00006996 56 5174 LD D,(HL) + 00006997 21 16 00 5175 LD HL,22 + 0000699A ED 4B BF 86 5176 LD BC,(global) + 0000699E 09 5177 ADD HL,BC + 0000699F 46 5178 LD B,(HL) + 000069A0 23 5179 INC HL + 000069A1 66 5180 LD H,(HL) + 000069A2 68 5181 LD L,B + 000069A3 01 17 00 5182 LD BC,23 + 000069A6 09 5183 ADD HL,BC + 000069A7 4E 5184 LD C,(HL) + 000069A8 23 5185 INC HL + 000069A9 46 5186 LD B,(HL) + 000069AA 23 5187 INC HL + 000069AB 7E 5188 LD A,(HL) + 000069AC 69 5189 LD L,C + 000069AD 60 5190 LD H,B + 000069AE 01 01 00 5191 LD BC,1 + 000069B1 18 29 5192 JR ?0381 + 000069B3 5193 ?0324: + 000069B3 23 5194 INC HL + 000069B4 4E 5195 LD C,(HL) + 000069B5 47 5196 LD B,A + 000069B6 C5 5197 PUSH BC + 000069B7 21 16 00 5198 LD HL,22 + 000069BA ED 5B BF 86 5199 LD DE,(global) + 000069BE 19 5200 ADD HL,DE + 000069BF 5E 5201 LD E,(HL) + 000069C0 23 5202 INC HL + 000069C1 56 5203 LD D,(HL) + 000069C2 21 16 00 5204 LD HL,22 + 000069C5 ED 4B BF 86 5205 LD BC,(global) + 000069C9 09 5206 ADD HL,BC + 000069CA 46 5207 LD B,(HL) + 000069CB 23 5208 INC HL + 000069CC 66 5209 LD H,(HL) + 000069CD 68 5210 LD L,B + 000069CE 01 17 00 5211 LD BC,23 + 000069D1 09 5212 ADD HL,BC + 000069D2 4E 5213 LD C,(HL) + 000069D3 23 5214 INC HL + 000069D4 46 5215 LD B,(HL) + 000069D5 23 5216 INC HL + 000069D6 7E 5217 LD A,(HL) + 000069D7 69 5218 LD L,C + 000069D8 60 5219 LD H,B + 000069D9 01 02 00 5220 LD BC,2 + 000069DC 5221 ?0381: + 000069DC CD 5E 81 5222 CALL LWRD ?BANK_CALL_DIRECT_L08 + 000069DF E1 5223 POP HL + 000069E0 5224 ?0325: + 000069E0 21 01 00 5225 LD HL,1 + 000069E3 39 5226 ADD HL,SP + 000069E4 E5 5227 PUSH HL + 000069E5 2B 5228 DEC HL + 000069E6 46 5229 LD B,(HL) + 000069E7 E1 5230 POP HL + 000069E8 70 5231 LD (HL),B + 000069E9 5232 ?0322: + 000069E9 21 01 00 5233 LD HL,1 + 000069EC E5 5234 PUSH HL + 000069ED 23 5235 INC HL + 000069EE 39 5236 ADD HL,SP + 000069EF 4D 5237 LD C,L + 000069F0 44 5238 LD B,H + 000069F1 21 10 00 5239 LD HL,16 + 000069F4 ED 5B BF 86 5240 LD DE,(global) + 000069F8 19 5241 ADD HL,DE + 000069F9 5E 5242 LD E,(HL) + 000069FA 23 5243 INC HL + 000069FB 56 5244 LD D,(HL) + 000069FC 3E 00 5245 LD A,BYTE3 _read + 000069FE 21 8D 7C 5246 LD HL,LWRD _read + 00006A01 CD 5E 81 5247 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A04 F1 5248 POP AF + 00006A05 3E 01 5249 LD A,1 + 00006A07 AD 5250 XOR L + 00006A08 B4 5251 OR H + 00006A09 20 65 5252 JR NZ,?0330 + 00006A0B 5253 ?0326: + 00006A0B 6F 5254 LD L,A + 00006A0C 67 5255 LD H,A + 00006A0D 39 5256 ADD HL,SP + 00006A0E 3E 10 5257 LD A,16 + 00006A10 BE 5258 CP (HL) + 00006A11 21 0E 00 5259 LD HL,14 + 00006A14 ED 4B BF 86 5260 LD BC,(global) + 00006A18 30 15 5261 JR NC,?0329 + 00006A1A 5262 ?0328: + 00006A1A 09 5263 ADD HL,BC + 00006A1B 46 5264 LD B,(HL) + 00006A1C 23 5265 INC HL + 00006A1D 66 5266 LD H,(HL) + 00006A1E 68 5267 LD L,B + 00006A1F DD E5 5268 PUSH IX + 00006A21 C1 5269 POP BC + 00006A22 09 5270 ADD HL,BC + 00006A23 E5 5271 PUSH HL + 00006A24 21 02 00 5272 LD HL,2 + 00006A27 39 5273 ADD HL,SP + 00006A28 46 5274 LD B,(HL) + 00006A29 E1 5275 POP HL + 00006A2A 70 5276 LD (HL),B + 00006A2B DD 23 5277 INC IX + 00006A2D 18 41 5278 JR ?0330 + 00006A2F 5279 ?0329: + 00006A2F 09 5280 ADD HL,BC + 00006A30 56 5281 LD D,(HL) + 00006A31 23 5282 INC HL + 00006A32 66 5283 LD H,(HL) + 00006A33 6A 5284 LD L,D + 00006A34 DD E5 5285 PUSH IX + 00006A36 D1 5286 POP DE + 00006A37 19 5287 ADD HL,DE + 00006A38 36 00 5288 LD (HL),0 + 00006A3A 21 0E 00 5289 LD HL,14 + 00006A3D ED 4B BF 86 5290 LD BC,(global) + 00006A41 09 5291 ADD HL,BC + 00006A42 E5 5292 PUSH HL + 00006A43 21 16 00 5293 LD HL,22 + 00006A46 ED 5B BF 86 5294 LD DE,(global) + 00006A4A 19 5295 ADD HL,DE + 00006A4B 5E 5296 LD E,(HL) + 00006A4C 23 5297 INC HL + 00006A4D 56 5298 LD D,(HL) + 00006A4E 21 16 00 5299 LD HL,22 + 00006A51 ED 4B BF 86 5300 LD BC,(global) + 00006A55 09 5301 ADD HL,BC + 00006A56 46 5302 LD B,(HL) + 00006A57 23 5303 INC HL + 00006A58 66 5304 LD H,(HL) + 00006A59 68 5305 LD L,B + 00006A5A 01 17 00 5306 LD BC,23 + 00006A5D 09 5307 ADD HL,BC + 00006A5E 4E 5308 LD C,(HL) + 00006A5F 23 5309 INC HL + 00006A60 46 5310 LD B,(HL) + 00006A61 23 5311 INC HL + 00006A62 7E 5312 LD A,(HL) + 00006A63 69 5313 LD L,C + 00006A64 60 5314 LD H,B + 00006A65 01 01 04 5315 LD BC,1025 + 00006A68 CD 5E 81 5316 CALL LWRD ?BANK_CALL_DIRECT_L08 + 00006A6B E1 5317 POP HL + 00006A6C DD 21 00 00 5318 LD IX,0 + 00006A70 5319 ?0330: + 00006A70 5320 ?0327: + 00006A70 C3 52 69 5321 JP LWRD ?0319 + 00006A73 5322 ?0318: + 00006A73 21 0A 00 5323 LD HL,10 + 00006A76 39 5324 ADD HL,SP + 00006A77 F9 5325 LD SP,HL + 00006A78 DD E1 5326 POP IX + 00006A7A C1 5327 POP BC + 00006A7B C3 25 81 5328 JP LWRD ?BANK_FAST_LEAVE_L08 + 5329 RSEG CSTR + 00008499 5330 ?0001: + 00008499 2F 64 65 76 2F 6C 63 5331 DEFB '/dev/lcd0' 64 30 - 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' + 000084A2 00 5332 DEFB 0 + 000084A3 5333 ?0002: + 000084A3 2F 64 65 76 2F 6C 63 5334 DEFB '/dev/lcd1' + 64 31 + 000084AC 00 5335 DEFB 0 + 000084AD 5336 ?0003: + 000084AD 48 59 54 45 43 48 20 5337 DEFB 'HYTECH 1000' + 31 30 30 30 + 000084B8 00 5338 DEFB 0 + 000084B9 5339 ?0223: + 000084B9 4F 4B 5340 DEFB 'OK' + 000084BB 00 5341 DEFB 0 + 000084BC 5342 ?0224: + 000084BC 43 61 6E 63 65 6C 5343 DEFB 'Cancel' + 000084C2 00 5344 DEFB 0 + 000084C3 5345 ?0251: + 000084C3 00 5346 DEFB 0 + 000084C4 5347 ?0300: + 000084C4 4D 65 73 73 61 67 65 5348 DEFB 'Message Box' 20 42 6F 78 - 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 - 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 - 000086C0 5075 global: - 000086C0 5076 DEFS 2 - 00000002 5077 END + 000084CF 00 5349 DEFB 0 + 000084D0 5350 ?0317: + 000084D0 2F 64 65 76 2F 62 61 5351 DEFB '/dev/barcode' + 72 63 6F 64 65 + 000084DC 00 5352 DEFB 0 + 5353 RSEG CONST + 00008473 5354 ?0000: + 00008473 1B 5355 DEFB 27 + 00008474 4B 5356 DEFB 'K' + 00008475 5357 ?0004: + 00008475 1B 5358 DEFB 27 + 00008476 53 5359 DEFB 'S' + 00008477 00 5360 DEFB 0 + 00008478 00 5361 DEFB 0 + 00008479 5362 ?0005: + 00008479 1B 5363 DEFB 27 + 0000847A 43 5364 DEFB 'C' + 0000847B 00 5365 DEFB 0 + 0000847C 00 5366 DEFB 0 + 0000847D 5367 ?0006: + 0000847D 1B 5368 DEFB 27 + 0000847E 4E 5369 DEFB 'N' + 0000847F 00 5370 DEFB 0 + 00008480 00 5371 DEFB 0 + 00008481 5372 ?0007: + 00008481 1B 5373 DEFB 27 + 00008482 52 5374 DEFB 'R' + 00008483 00 5375 DEFB 0 + 00008484 00 5376 DEFB 0 + 00008485 5377 ?0008: + 00008485 1B 5378 DEFB 27 + 00008486 46 5379 DEFB 'F' + 00008487 00 5380 DEFB 0 + 00008488 00 5381 DEFB 0 + 00008489 5382 ?0009: + 00008489 1B 5383 DEFB 27 + 0000848A 68 5384 DEFB 'h' + 0000848B 00 5385 DEFB 0 + 0000848C 00 5386 DEFB 0 + 0000848D 5387 ?0010: + 0000848D 1B 5388 DEFB 27 + 0000848E 5A 5389 DEFB 'Z' + 0000848F 00 5390 DEFB 0 + 00008490 00 5391 DEFB 0 + 00008491 00 5392 DEFB 0 + 00008492 00 5393 DEFB 0 + 00008493 00 5394 DEFB 0 + 00008494 5395 ?0011: + 00008494 1B 5396 DEFB 27 + 00008495 45 5397 DEFB 'E' + 00008496 00 5398 DEFB 0 + 00008497 5399 ?0012: + 00008497 1B 5400 DEFB 27 + 00008498 00 5401 DEFB 0 + 5402 RSEG UDATA0 + 000086BF 5403 global: + 000086BF 5404 DEFS 2 + 00000002 5405 END ASxxxx Assembler V03.11 (Zilog Z80 / Hitachi HD64180), page 1. Hexadecimal [32-Bits] Symbol Table .__.ABS. = 00000000 G | 3 ?0000 00000000 R - 2 ?0001 00000000 R | 3 ?0002 00000002 R - 3 ?0003 00000006 R | 3 ?0004 0000000A R - 3 ?0005 0000000E R | 3 ?0006 00000012 R - 3 ?0007 00000016 R | 3 ?0008 0000001A R - 3 ?0009 00000021 R | 3 ?0010 00000024 R - 1 ?0011 000003A1 R | 1 ?0012 00000387 R - 1 ?0013 0000039B R | 1 ?0014 0000039B R - 1 ?0015 0000039B R | 1 ?0016 000003B2 R - 1 ?0017 000003DB R | 1 ?0018 000004A1 R - 1 ?0019 000004B1 R | 1 ?0020 000004C9 R - 1 ?0021 000004C3 R | 1 ?0022 000004B6 R - 1 ?0023 000004C3 R | 1 ?0024 00000547 R - 1 ?0025 000004E8 R | 1 ?0026 000004F7 R - 1 ?0027 0000053A R | 1 ?0028 00000521 R - 1 ?0029 00000526 R | 1 ?0030 0000052B R - 1 ?0031 00000530 R | 1 ?0032 00000535 R - 1 ?0033 0000055B R | 1 ?0034 00000561 R - 1 ?0035 0000056A R | 1 ?0036 0000056D R - 1 ?0037 0000056A R | 1 ?0038 0000056A R - 1 ?0039 0000056D R | 1 ?0040 00000698 R - 1 ?0041 0000066C R | 1 ?0042 00000683 R - 1 ?0043 00000683 R | 1 ?0044 00000683 R - 1 ?0045 000006C9 R | 1 ?0046 000006D2 R - 1 ?0047 000006F2 R | 1 ?0048 000006E5 R - 1 ?0049 000006D2 R | 1 ?0050 000006DA R - 1 ?0051 00000738 R | 1 ?0052 00000717 R - 1 ?0053 0000071E R | 1 ?0054 00000789 R - 1 ?0056 0000075A R | 1 ?0057 000007C1 R - 1 ?0058 000007A2 R | 1 ?0059 000007A6 R - 1 ?0060 000007B8 R | 1 ?0061 000007BB R - 1 ?0062 000007C3 R | 1 ?0063 000007EA R - 1 ?0064 00000979 R | 1 ?0065 00000803 R - 1 ?0066 000007EA R | 1 ?0067 000007F2 R - 1 ?0068 0000080C R | 1 ?0069 00000895 R - 1 ?0070 0000082C R | 1 ?0071 00000835 R - 1 ?0072 00000895 R | 1 ?0073 0000086E R - 1 ?0074 0000083F R | 1 ?0075 00000864 R - 1 ?0076 00000864 R | 1 ?0077 00000864 R - 1 ?0078 0000087D R | 1 ?0079 00000895 R - 1 ?0080 000008AC R | 1 ?0081 00000945 R - 1 ?0082 000008FA R | 1 ?0083 000008D2 R - 1 ?0084 000008EB R | 1 ?0085 000008EB R - 1 ?0086 000008EB R | 1 ?0087 00000902 R - 1 ?0088 00000945 R | 1 ?0089 00000953 R - 1 ?0090 0000095C R | 1 ?0091 0000096A R - 1 ?0092 00000973 R | 1 ?0093 0000096A R - 1 ?0094 0000096A R | 1 ?0095 000009B3 R - 1 ?0096 000009A7 R | 1 ?0097 000009AB R - 1 ?0098 00000A0F R | 1 ?0099 000009CE R - 1 ?0100 000009D2 R | 1 ?0101 00000A53 R - 1 ?0102 00000A73 R | 1 ?0103 00000A53 R - 1 ?0104 00000A53 R | 1 ?0105 00000A92 R - 1 ?0106 00000AB2 R | 1 ?0107 00000A92 R - 1 ?0108 00000A92 R | 1 ?0109 00000ACF R - 1 ?0110 00000AB2 R | 1 ?0111 00000AB9 R - 1 ?0112 00000D6B R | 1 ?0113 00000B0F R - 1 ?0114 00000B3D R | 1 ?0115 00000B20 R - 1 ?0116 00000B24 R | 1 ?0117 00000B2A R - 1 ?0118 00000B35 R | 1 ?0119 00000B40 R - 1 ?0120 00000BA2 R | 1 ?0121 00000B51 R - 1 ?0122 00000B55 R | 1 ?0123 00000B5B R - 1 ?0124 00000B93 R | 1 ?0125 00000B8F R - 1 ?0126 00000B93 R | 1 ?0127 00000B8F R - 1 ?0128 00000B8F R | 1 ?0129 00000B9A R - 1 ?0130 00000BA2 R | 1 ?0131 00000BA5 R - 1 ?0132 00000BBC R | 1 ?0133 00000BDD R - 1 ?0134 00000BD1 R | 1 ?0135 00000BDD R - 1 ?0136 00000BD1 R | 1 ?0137 00000BD1 R - 1 ?0138 00000BDD R | 1 ?0139 00000BDD R - 1 ?0140 00000BDD R | 1 ?0141 00000BDD R - 1 ?0142 00000BE0 R | 1 ?0143 00000BF1 R - 1 ?0144 00000C6C R | 1 ?0145 00000C98 R - 1 ?0146 00000CD6 R | 1 ?0147 00000CA9 R - 1 ?0148 00000CAD R | 1 ?0149 00000CC0 R - 1 ?0150 00000CCE R | 1 ?0151 00000CC0 R - 1 ?0152 00000CC0 R | 1 ?0153 00000CD9 R - 1 ?0154 00000CE8 R | 1 ?0155 00000CF6 R - 1 ?0156 00000D6B R | 1 ?0157 00000CFF R - 1 ?0158 00000D27 R | 1 ?0159 00000D6B R - 1 ?0160 00000DD7 R | 1 ?0161 00000DE0 R - 1 ?0162 00000DE7 R | 1 ?0163 00000EDC R - 1 ?0164 00000FFA R | 1 ?0165 00001023 R - 1 ?0166 00000FFA R | 1 ?0167 00000FFA R - 1 ?0168 00001019 R | 1 ?0169 00001023 R - 1 ?0170 00001031 R | 1 ?0171 0000103C R - 1 ?0172 000010A7 R | 1 ?0173 000010FA R - 1 ?0174 00001122 R | 1 ?0175 0000116A R - 1 ?0176 0000116D R | 1 ?0177 00001174 R - 1 ?0178 00001206 R | 1 ?0180 000011AE R - 1 ?0181 000011B1 R | 1 ?0182 000011C7 R - 1 ?0183 000011DA R | 1 ?0184 000011C7 R - 1 ?0185 000011C7 R | 1 ?0186 000011EE R - 1 ?0187 000012BE R | 1 ?0188 00001305 R - 1 ?0189 000012BE R | 1 ?0190 000012BE R - 1 ?0191 000012FB R | 1 ?0192 00001305 R - 1 ?0193 00001313 R | 1 ?0194 0000131E R - 1 ?0195 00001357 R | 1 ?0196 0000135A R - 1 ?0197 00001361 R | 1 ?0198 0000140C R - 1 ?0199 00001380 R | 1 ?0200 000013B0 R - 1 ?0201 00001380 R | 1 ?0202 00001380 R - 1 ?0203 000013F4 R | 1 ?0205 000013EB R - 1 ?0206 000013EE R | 1 ?0207 00001491 R - 1 ?0208 000014C7 R | 1 ?0209 00001491 R - 1 ?0210 00001491 R | 1 ?0211 00001498 R - 1 ?0212 0000149D R | 1 ?0213 000014A4 R - 1 ?0214 000014DF R | 1 ?0215 00001515 R - 1 ?0216 000014DF R | 1 ?0217 000014DF R - 1 ?0218 000014E6 R | 1 ?0219 000014EB R - 1 ?0220 000014F2 R | 2 ?0221 0000000A R - 2 ?0222 0000000D R | 1 ?0223 00001635 R - 1 ?0224 0000166F R | 1 ?0225 00001635 R - 1 ?0226 00001635 R | 1 ?0227 0000164A R - 1 ?0228 00001657 R | 1 ?0229 0000164F R - 1 ?0230 00001655 R | 1 ?0231 00001664 R - 1 ?0232 000016BD R | 1 ?0233 000016C0 R - 1 ?0234 000016C7 R | 1 ?0235 000017CE R - 1 ?0237 0000170B R | 1 ?0238 0000170E R - 1 ?0239 00001726 R | 1 ?0240 0000172D R - 1 ?0241 00001735 R | 1 ?0242 0000178A R - 1 ?0243 000017C0 R | 1 ?0244 000017B2 R - 1 ?0245 0000178E R | 1 ?0246 000017A7 R - 1 ?0248 000017CE R | 2 ?0249 00000014 R - 1 ?0250 0000186A R | 1 ?0251 0000186D R - 1 ?0252 00001873 R | 1 ?0253 00001894 R - 1 ?0254 00001C8C R | 1 ?0256 0000193E R - 1 ?0257 00001949 R | 1 ?0258 00001961 R - 1 ?0259 0000196F R | 1 ?0260 000019BE R - 1 ?0261 0000196F R | 1 ?0262 0000196F R - 1 ?0263 000019B6 R | 1 ?0264 000019BA R - 1 ?0265 000019C5 R | 1 ?0266 00001A09 R - 1 ?0267 00001A10 R | 1 ?0268 00001A54 R - 1 ?0269 00001A5B R | 1 ?0270 00001AA2 R - 1 ?0271 00001AA9 R | 1 ?0272 00001AFA R - 1 ?0273 00001B01 R | 1 ?0274 00001B72 R - 1 ?0275 00001B79 R | 1 ?0276 00001C72 R - 1 ?0277 00001B81 R | 1 ?0278 00001BEA R - 1 ?0279 00001BF2 R | 1 ?0280 00001BFE R - 1 ?0281 00001C20 R | 1 ?0282 00001C36 R - 1 ?0283 00001C3A R | 1 ?0284 00001C49 R - 1 ?0285 00001C59 R | 3 ?0286 00000026 R - 1 ?0287 00001D11 R | 1 ?0288 00001D19 R - 1 ?0289 00001D2F R | 1 ?0290 00001E49 R - 1 ?0291 00001D8C R | 1 ?0292 00001D98 R - 1 ?0293 00001E5A R | 1 ?0294 00001FE7 R - 1 ?0295 00001F7B R | 1 ?0296 00001EB9 R - 1 ?0297 00001EE2 R | 2 ?0299 00000015 R - 1 ?0300 00001FF6 R | 1 ?0301 00002003 R - 1 ?0302 000020A0 R | 1 ?0303 0000205E R - 1 ?0304 00002070 R | 1 ?0305 00002070 R - 1 ?0306 00002070 R | 1 ?0307 00002096 R - 1 ?0308 0000208B R | 1 ?0309 00002093 R - 1 ?0310 000020A5 R | 1 ?0311 000020B8 R - 1 ?0312 000022FB R | 1 ?0313 0000225B R - 1 ?0314 00002269 R | 1 ?0315 00002283 R - 1 ?0316 000022F8 R | 2 ?0317 00000021 R - 1 ?0318 0000229C R | 1 ?0319 000022C5 R - 1 ?0320 000022F2 R | 1 ?0321 00000382 R - 1 ?0331 00000538 R | 1 ?0335 000006EB R - 1 ?0336 0000079D R | 1 ?0338 00000839 R - 1 ?0339 00000885 R | 1 ?0341 000009A4 R - 1 ?0342 000009C7 R | 1 ?0344 00000B1D R - 1 ?0345 00000CA6 R | 1 ?0346 00000D67 R - 1 ?0347 00000C95 R | 1 ?0348 00000B4E R - 1 ?0350 0000111A R | 1 ?0353 000011EB R - 1 ?0357 000013E4 R | 1 ?0358 000014A0 R - 1 ?0359 000014EE R | 1 ?0364 00001732 R - 1 ?0365 000017C6 R | 1 ?0367 00001EDC R - 1 ?0368 00001EDD R | 1 ?0369 00001F78 R - 1 ?0370 000022EE R | 1 ?0372 00000077 R - 1 ?0381 000000CB R | 1 ?0389 00000110 R - 1 ?0396 00000157 R | 1 ?0402 000001A0 R - 1 ?0407 000001EA R | 1 ?0411 0000025E R - 1 ?0415 00000576 R | 1 ?0416 00000592 R - 1 ?0418 00000651 R | 1 ?0424 0000111F R - 1 ?0427 00000079 R | 1 ?0428 0000007D R - 1 ?0429 0000007F R | 1 ?0430 00000081 R - 1 ?0431 00000084 R | 1 ?0432 000000D3 R - 1 ?0433 000000D5 R | 1 ?0434 000000D8 R - 1 ?0435 0000011B R | 1 ?0438 00000FB5 R - 1 ?0439 000015CC R | 1 ?0440 000015E0 R - 1 ?0441 00001CBE R | 1 ?0442 000003E7 R - 1 ?0443 000003DE R | 1 ?0444 00000413 R - 1 ?0445 00001674 R | 1 ?0446 0000167F R - 1 ?0447 000004CE R | 1 ?0448 00000422 R - 1 ?0449 0000042D R | 1 ?0450 00000428 R - 1 ?0451 00000984 R | 1 ?0452 00000987 R - 1 ?0453 0000098F R | 1 ?0454 00001CC6 R - 1 ?0455 00000EE1 R | 1 ?0456 000015E8 R - 1 ?0457 0000120E R | 1 ?0458 00001212 R - 1 ?0459 00000EEF R | 1 ?0460 00000F0C R - 1 ?0461 000002D7 R | 1 ?0462 00000D70 R - 1 ?0463 00000D76 R | 1 ?0464 00001050 R - 1 ?0465 00001041 R | 1 ?0466 00000D8C R - 1 ?0467 00000D85 R | 1 ?0468 00000D87 R - 1 ?0469 0000105E R | 1 ?0470 000002EF R - 1 ?0471 000002F2 R | 1 ?0472 00000F24 R - 1 ?0473 00000F1E R | 1 ?0474 00000D95 R - 1 ?0475 00000D94 R | 1 ?0476 00002008 R - 1 ?0477 00000740 R | 1 ?0478 00000742 R - 1 ?0479 000020DC R | 1 ?0480 00001127 R - 1 ?0481 00001128 R | 1 ?0482 00001CCE R - 1 ?0483 00001CD7 R | 1 ?0484 00002210 R + 2 ?0001 00000000 R | 2 ?0002 0000000A R + 2 ?0003 00000014 R | 3 ?0004 00000002 R + 3 ?0005 00000006 R | 3 ?0006 0000000A R + 3 ?0007 0000000E R | 3 ?0008 00000012 R + 3 ?0009 00000016 R | 3 ?0010 0000001A R + 3 ?0011 00000021 R | 3 ?0012 00000024 R + 1 ?0013 0000043C R | 1 ?0014 00000422 R + 1 ?0015 00000436 R | 1 ?0016 00000436 R + 1 ?0017 00000436 R | 1 ?0018 0000044D R + 1 ?0019 00000476 R | 1 ?0020 00000530 R + 1 ?0021 00000540 R | 1 ?0022 00000558 R + 1 ?0023 00000552 R | 1 ?0024 00000545 R + 1 ?0025 00000552 R | 1 ?0026 000005D6 R + 1 ?0027 00000577 R | 1 ?0028 00000586 R + 1 ?0029 000005C9 R | 1 ?0030 000005B0 R + 1 ?0031 000005B5 R | 1 ?0032 000005BA R + 1 ?0033 000005BF R | 1 ?0034 000005C4 R + 1 ?0035 000005EA R | 1 ?0036 000005F0 R + 1 ?0037 000005F9 R | 1 ?0038 000005FC R + 1 ?0039 000005F9 R | 1 ?0040 000005F9 R + 1 ?0041 000005FC R | 1 ?0042 00000727 R + 1 ?0043 000006FB R | 1 ?0044 00000712 R + 1 ?0045 00000712 R | 1 ?0046 00000712 R + 1 ?0047 00000758 R | 1 ?0048 00000761 R + 1 ?0049 00000781 R | 1 ?0050 00000774 R + 1 ?0051 00000761 R | 1 ?0052 00000769 R + 1 ?0053 000007C7 R | 1 ?0054 000007A6 R + 1 ?0055 000007AD R | 1 ?0056 00000818 R + 1 ?0058 000007E9 R | 1 ?0059 00000850 R + 1 ?0060 00000831 R | 1 ?0061 00000835 R + 1 ?0062 00000847 R | 1 ?0063 0000084A R + 1 ?0064 00000852 R | 1 ?0065 00000879 R + 1 ?0066 00000A08 R | 1 ?0067 00000892 R + 1 ?0068 00000879 R | 1 ?0069 00000881 R + 1 ?0070 0000089B R | 1 ?0071 00000924 R + 1 ?0072 000008BB R | 1 ?0073 000008C4 R + 1 ?0074 00000924 R | 1 ?0075 000008FD R + 1 ?0076 000008CE R | 1 ?0077 000008F3 R + 1 ?0078 000008F3 R | 1 ?0079 000008F3 R + 1 ?0080 0000090C R | 1 ?0081 00000924 R + 1 ?0082 0000093B R | 1 ?0083 000009D4 R + 1 ?0084 00000989 R | 1 ?0085 00000961 R + 1 ?0086 0000097A R | 1 ?0087 0000097A R + 1 ?0088 0000097A R | 1 ?0089 00000991 R + 1 ?0090 000009D4 R | 1 ?0091 000009E2 R + 1 ?0092 000009EB R | 1 ?0093 000009F9 R + 1 ?0094 00000A02 R | 1 ?0095 000009F9 R + 1 ?0096 000009F9 R | 1 ?0097 00000A42 R + 1 ?0098 00000A36 R | 1 ?0099 00000A3A R + 1 ?0100 00000A9E R | 1 ?0101 00000A5D R + 1 ?0102 00000A61 R | 1 ?0103 00000AE2 R + 1 ?0104 00000B02 R | 1 ?0105 00000AE2 R + 1 ?0106 00000AE2 R | 1 ?0107 00000B21 R + 1 ?0108 00000B41 R | 1 ?0109 00000B21 R + 1 ?0110 00000B21 R | 1 ?0111 00000B5E R + 1 ?0112 00000B41 R | 1 ?0113 00000B48 R + 1 ?0114 00000DFA R | 1 ?0115 00000B9E R + 1 ?0116 00000BCC R | 1 ?0117 00000BAF R + 1 ?0118 00000BB3 R | 1 ?0119 00000BB9 R + 1 ?0120 00000BC4 R | 1 ?0121 00000BCF R + 1 ?0122 00000C31 R | 1 ?0123 00000BE0 R + 1 ?0124 00000BE4 R | 1 ?0125 00000BEA R + 1 ?0126 00000C22 R | 1 ?0127 00000C1E R + 1 ?0128 00000C22 R | 1 ?0129 00000C1E R + 1 ?0130 00000C1E R | 1 ?0131 00000C29 R + 1 ?0132 00000C31 R | 1 ?0133 00000C34 R + 1 ?0134 00000C4B R | 1 ?0135 00000C6C R + 1 ?0136 00000C60 R | 1 ?0137 00000C6C R + 1 ?0138 00000C60 R | 1 ?0139 00000C60 R + 1 ?0140 00000C6C R | 1 ?0141 00000C6C R + 1 ?0142 00000C6C R | 1 ?0143 00000C6C R + 1 ?0144 00000C6F R | 1 ?0145 00000C80 R + 1 ?0146 00000CFB R | 1 ?0147 00000D27 R + 1 ?0148 00000D65 R | 1 ?0149 00000D38 R + 1 ?0150 00000D3C R | 1 ?0151 00000D4F R + 1 ?0152 00000D5D R | 1 ?0153 00000D4F R + 1 ?0154 00000D4F R | 1 ?0155 00000D68 R + 1 ?0156 00000D77 R | 1 ?0157 00000D85 R + 1 ?0158 00000DFA R | 1 ?0159 00000D8E R + 1 ?0160 00000DB6 R | 1 ?0161 00000DFA R + 1 ?0162 00000E62 R | 1 ?0163 00000E65 R + 1 ?0164 00000E6C R | 1 ?0165 00000F5F R + 1 ?0166 00001097 R | 1 ?0167 000010C0 R + 1 ?0168 00001097 R | 1 ?0169 00001097 R + 1 ?0170 000010B6 R | 1 ?0171 000010C0 R + 1 ?0172 000010CE R | 1 ?0173 000010D9 R + 1 ?0174 00001127 R | 1 ?0175 0000117A R + 1 ?0176 0000119C R | 1 ?0177 000011EE R + 1 ?0178 000011F1 R | 1 ?0179 000011F8 R + 1 ?0180 0000128A R | 1 ?0182 00001232 R + 1 ?0183 00001235 R | 1 ?0184 0000124B R + 1 ?0185 0000125E R | 1 ?0186 0000124B R + 1 ?0187 0000124B R | 1 ?0188 00001272 R + 1 ?0189 00001327 R | 1 ?0190 0000136E R + 1 ?0191 00001327 R | 1 ?0192 00001327 R + 1 ?0193 00001364 R | 1 ?0194 0000136E R + 1 ?0195 0000137C R | 1 ?0196 00001387 R + 1 ?0197 000013C0 R | 1 ?0198 000013C3 R + 1 ?0199 000013CA R | 1 ?0200 00001475 R + 1 ?0201 000013E9 R | 1 ?0202 00001419 R + 1 ?0203 000013E9 R | 1 ?0204 000013E9 R + 1 ?0205 0000145D R | 1 ?0207 00001454 R + 1 ?0208 00001457 R | 1 ?0209 00001505 R + 1 ?0210 0000153B R | 1 ?0211 00001505 R + 1 ?0212 00001505 R | 1 ?0213 0000150C R + 1 ?0214 00001511 R | 1 ?0215 00001518 R + 1 ?0216 00001553 R | 1 ?0217 00001589 R + 1 ?0218 00001553 R | 1 ?0219 00001553 R + 1 ?0220 0000155A R | 1 ?0221 0000155F R + 1 ?0222 00001566 R | 2 ?0223 00000020 R + 2 ?0224 00000023 R | 1 ?0225 000016CA R + 1 ?0226 00001704 R | 1 ?0227 000016CA R + 1 ?0228 000016CA R | 1 ?0229 000016DF R + 1 ?0230 000016EC R | 1 ?0231 000016E4 R + 1 ?0232 000016EA R | 1 ?0233 000016F9 R + 1 ?0234 00001752 R | 1 ?0235 00001755 R + 1 ?0236 0000175C R | 1 ?0237 0000183B R + 1 ?0239 000017A0 R | 1 ?0240 000017A3 R + 1 ?0241 000017BB R | 1 ?0242 000017C2 R + 1 ?0243 000017CA R | 1 ?0244 000017FC R + 1 ?0245 00001832 R | 1 ?0246 00001824 R + 1 ?0247 00001800 R | 1 ?0248 00001819 R + 1 ?0250 0000183B R | 2 ?0251 0000002A R + 1 ?0252 000018DC R | 1 ?0253 000018DF R + 1 ?0254 000018E5 R | 1 ?0255 00001906 R + 1 ?0256 00001D05 R | 1 ?0258 000019B6 R + 1 ?0259 000019C1 R | 1 ?0260 000019D9 R + 1 ?0261 000019E7 R | 1 ?0262 00001A35 R + 1 ?0263 000019E7 R | 1 ?0264 000019E7 R + 1 ?0265 00001A2D R | 1 ?0266 00001A31 R + 1 ?0267 00001A3C R | 1 ?0268 00001A7F R + 1 ?0269 00001A86 R | 1 ?0270 00001AC9 R + 1 ?0271 00001AD0 R | 1 ?0272 00001B16 R + 1 ?0273 00001B1D R | 1 ?0274 00001B6E R + 1 ?0275 00001B75 R | 1 ?0276 00001BE6 R + 1 ?0277 00001BED R | 1 ?0278 00001CE6 R + 1 ?0279 00001BF5 R | 1 ?0280 00001C5E R + 1 ?0281 00001C66 R | 1 ?0282 00001C72 R + 1 ?0283 00001C94 R | 1 ?0284 00001CAA R + 1 ?0285 00001CAE R | 1 ?0286 00001CBD R + 1 ?0287 00001CCD R | 1 ?0288 00001D9E R + 1 ?0289 00001DA8 R | 1 ?0290 00001DBE R + 1 ?0291 00001EA7 R | 1 ?0292 00001E47 R + 1 ?0293 00001E53 R | 1 ?0294 00001EB8 R + 1 ?0295 00002045 R | 1 ?0296 00001FD9 R + 1 ?0297 00001F17 R | 1 ?0298 00001F40 R + 2 ?0300 0000002B R | 1 ?0301 00002055 R + 1 ?0302 00002072 R | 1 ?0303 00002082 R + 1 ?0304 00002098 R | 1 ?0305 000020A7 R + 1 ?0306 000020B4 R | 1 ?0307 00002156 R + 1 ?0308 00002114 R | 1 ?0309 00002126 R + 1 ?0310 00002126 R | 1 ?0311 00002126 R + 1 ?0312 0000214C R | 1 ?0313 00002141 R + 1 ?0314 00002149 R | 1 ?0315 0000215B R + 1 ?0316 0000216E R | 2 ?0317 00000037 R + 1 ?0318 000024AB R | 1 ?0319 0000238A R + 1 ?0320 00002398 R | 1 ?0321 000023BA R + 1 ?0322 00002421 R | 1 ?0323 000023C0 R + 1 ?0324 000023EB R | 1 ?0325 00002418 R + 1 ?0326 00002443 R | 1 ?0327 000024A8 R + 1 ?0328 00002452 R | 1 ?0329 00002467 R + 1 ?0330 000024A8 R | 1 ?0331 0000041D R + 1 ?0341 000005C7 R | 1 ?0345 0000077A R + 1 ?0346 0000082C R | 1 ?0348 000008C8 R + 1 ?0349 00000914 R | 1 ?0351 00000A33 R + 1 ?0352 00000A56 R | 1 ?0354 00000BAC R + 1 ?0355 00000D35 R | 1 ?0356 00000DF6 R + 1 ?0357 00000D24 R | 1 ?0358 00000BDD R + 1 ?0360 00001194 R | 1 ?0363 0000126F R + 1 ?0367 0000144D R | 1 ?0368 00001514 R + 1 ?0369 00001562 R | 1 ?0374 000017C7 R + 1 ?0375 00001838 R | 1 ?0377 00001F3A R + 1 ?0378 00001F3B R | 1 ?0379 00001FD6 R + 1 ?0381 00002414 R | 1 ?0382 00000170 R + 1 ?0387 00000182 R | 1 ?0390 000001B1 R + 1 ?0394 000001BF R | 1 ?0397 000001F7 R + 1 ?0400 00000203 R | 1 ?0403 0000023A R + 1 ?0405 00000247 R | 1 ?0408 00000280 R + 1 ?0409 0000028D R | 1 ?0412 000002D4 R + 1 ?0415 000002F9 R | 1 ?0419 00000605 R + 1 ?0420 00000621 R | 1 ?0422 000006E0 R + 1 ?0431 00001199 R | 1 ?0432 00000184 R + 1 ?0433 00000188 R | 1 ?0434 0000018D R + 1 ?0435 0000018F R | 1 ?0436 00000192 R + 1 ?0437 000001CA R | 1 ?0438 000001CC R + 1 ?0439 000001CF R | 1 ?0440 0000020E R + 1 ?0443 0000010C R | 1 ?0444 00000114 R + 1 ?0445 00000126 R | 1 ?0446 0000011C R + 1 ?0447 0000012B R | 1 ?0448 00000121 R + 1 ?0449 00000F67 R | 1 ?0450 00000E00 R + 1 ?0451 00000DFF R | 1 ?0452 00000131 R + 1 ?0453 00000485 R | 1 ?0454 00000479 R + 1 ?0455 00001709 R | 1 ?0456 00001714 R + 1 ?0457 0000055D R | 1 ?0458 000004B1 R + 1 ?0459 000004BC R | 1 ?0460 000004B7 R + 1 ?0461 00000F7B R | 1 ?0462 00000F87 R + 1 ?0463 00000F75 R | 1 ?0464 00000A13 R + 1 ?0465 00000A16 R | 1 ?0466 00001D32 R + 1 ?0467 00000A1E R | 1 ?0468 00000153 R + 1 ?0469 00000156 R | 1 ?0470 00000F95 R + 1 ?0471 0000167D R | 1 ?0472 00000FAB R + 1 ?0473 00000FAF R | 1 ?0474 00000372 R + 1 ?0475 00000E0A R | 1 ?0476 00000E10 R + 1 ?0477 00000E26 R | 1 ?0478 00000E1F R + 1 ?0479 00000E21 R | 1 ?0480 000010ED R + 1 ?0481 000010DE R | 1 ?0482 000010FB R + 1 ?0483 0000038A R | 1 ?0484 0000038D R + 1 ?0485 000020B9 R | 1 ?0486 000007CF R + 1 ?0487 000007D1 R | 1 ?0488 00002192 R + 1 ?0489 000011A1 R | 1 ?0490 00001D3A R + 1 ?0491 00001D50 R | 1 ?0492 00001D58 R + 1 ?0493 00001D64 R | 1 ?0494 000022C6 R ?BANK_CALL_DIR ******** GX | ?BANK_FAST_LEA ******** GX ?BANK_LEAVE_DI ******** GX | ?CL64180B_4_06 ******** GX ?C_V_SWITCH_L0 ******** GX | ?ENT_AUTO_DIRE ******** GX - ?ENT_PARM_DIRE ******** GX | ?SL_RSH_L03 ******** GX - ?SS_CMP_L02 ******** GX | ?SS_DIV_L02 ******** GX - ?SS_RSH_L02 ******** GX | ?S_MUL_L02 ******** GX - ?S_V_SWITCH_L0 ******** GX | 1 Button_add 0000122F GR - 1 Button_drawtex 0000107A GR | 1 Button_handler 00000FC3 GR - 1 Button_new 00001235 GR | 1 Button_paint 00001136 GR - 1 ClearRect 000000E2 GR | 1 ClearScreen 000002BD GR - 1 Component_add 000006A6 GR | 1 Component_chan 000009B6 GR - 1 Component_dele 000007C6 GR | 1 Component_dele 00000997 GR - 1 Component_find 0000078E GR | 1 Component_find 0000074A GR - 1 Component_link 00000A1F GR | 1 Component_new 000005AF GR - 1 Component_pain 00000704 GR | 1 Component_setl 00000659 GR - 1 Dialog_handler 00001461 GR | 1 Dialog_new 0000151A GR - 1 Display_handle 00001609 GR | 1 Display_new 000017D6 GR - 1 Display_paint 0000168A GR | 1 DrawRectNC 00000125 GR - 1 EnableScreen 000002FA GR | 1 FillRect 0000016A GR - 1 FillRectNC 000001AF GR | 1 GUIgo 0000223D GR - 1 GUIinit 000020F1 GR | 1 GUIunit 00002218 GR - 1 GraphicsClose 0000008E GR | 1 GraphicsOpen 00000000 GR - 1 GrayRect 000001F4 GR | 1 Label_handler 00001830 GR - 1 Label_new 00001897 GR | 1 Label_paint 00001836 GR - 1 Move 000000A3 GR | 1 Root_paint 00000F2C GR - 1 Text 00000239 GR | 1 ToggleButton_h 00001287 GR - 1 ToggleButton_n 0000140F GR | 1 ToggleButton_p 00001323 GR - 1 TouchRegion 00000266 GR | 1 Window_add 00000F63 GR - 1 Window_handler 00000AD2 GR | 1 Window_new 00000F71 GR - 1 Window_paint 00000D9F GR | _read ******** GX + ?ENT_PARM_DIRE ******** GX | ?SS_CMP_L02 ******** GX + ?SS_DIV_L02 ******** GX | ?SS_RSH_L02 ******** GX + ?S_MUL_L02 ******** GX | ?S_V_SWITCH_L0 ******** GX + 1 Button_add 0000128D GR | 1 Button_drawtex 00001117 GR + 1 Button_handler 00001060 GR | 1 Button_new 00001293 GR + 1 Button_paint 000011BA GR | 1 ClearRect 00000199 GR + 1 ClearScreen 00000358 GR | 1 Component_add 00000735 GR + 1 Component_chan 00000A45 GR | 1 Component_dele 00000855 GR + 1 Component_dele 00000A26 GR | 1 Component_find 0000081D GR + 1 Component_find 000007D9 GR | 1 Component_link 00000AAE GR + 1 Component_new 0000063E GR | 1 Component_pain 00000793 GR + 1 Component_setl 000006E8 GR | 1 Dialog_handler 000014D5 GR + 1 Dialog_new 0000158E GR | 1 Display_handle 0000169E GR + 1 Display_new 00001843 GR | 1 Display_paint 0000171F GR + 1 DrawRectNC 000001D9 GR | 1 EnableScreen 00000395 GR + 1 FillRect 00000218 GR | 1 FillRectNC 0000025A GR + 1 GUIgo 000022F3 GR | 1 GUIinit 000021A7 GR + 1 GUIunit 000022CE GR | 1 GraphicsClose 00000139 GR + 1 GraphicsOpen 0000001B GR | 1 GrayRect 0000029C GR + 1 Label_handler 000018A2 GR | 1 Label_new 00001909 GR + 1 Label_paint 000018A8 GR | 1 Move 0000015E GR + 1 Root_paint 00000FCC GR | 1 SetCurrentGrap 00000000 GR + 1 Text 000002DE GR | 1 ToggleButton_h 000012F0 GR + 1 ToggleButton_n 00001478 GR | 1 ToggleButton_p 0000138C GR + 1 TouchRegion 00000301 GR | 1 Window_add 00001003 GR + 1 Window_handler 00000B61 GR | 1 Window_new 00001011 GR + 1 Window_paint 00000E2E GR | _read ******** GX _write ******** GX | close ******** GX - fflush ******** GX | 1 fontSearch 00000375 GR + fflush ******** GX | 1 fontSearch 00000410 GR free ******** GX | 4 global 00000000 GR - 1 grSetFont 00000338 GR | 1 gui_globals 000020EB GR - ioctl ******** GX | 1 loadFont 00000433 GR + 1 grSetFont 000003D3 GR | 1 gui_globals 000021A1 GR + ioctl ******** GX | 1 loadFont 000004C2 GR malloc ******** GX | open ******** GX - printf ******** GX | 1 read_stringtab 00002016 GR - 1 rootWindow_han 000018F0 GR | 1 root_actionhan 00001CDE GR - 1 screenbuilder 0000190E GR | 1 setCurrentFont 000003A5 GR - stdout ******** GX | 1 stringheight 00000553 GR - 1 stringheight01 00000570 GR | 1 stringheight2 00000583 GR - 1 stringwidth 000004DA GR | 1 stringwidth0 0000058C GR - 1 stringwidth1 0000059D GR | 1 stringwidth2 000005A6 GR - strlen ******** GX + 1 read_stringtab 000020C7 GR | 1 rootWindow_han 0000196D GR + 1 root_actionhan 00001D78 GR | 1 screenbuilder 0000198B GR + 1 setCurrentFont 00000440 GR | stdout ******** GX + 1 stringheight 000005E2 GR | 1 stringheight01 000005FF GR + 1 stringheight2 00000612 GR | 1 stringwidth 00000569 GR + 1 stringwidth0 0000061B GR | 1 stringwidth1 0000062C GR + 1 stringwidth2 00000635 GR | strlen ******** 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 22FE flags 0 - 2 CSTR size 29 flags 0 - 3 CONST size 34 flags 0 + 1 CODE size 24B6 flags 0 + 2 CSTR size 44 flags 0 + 3 CONST size 26 flags 0 4 UDATA0 size 2 flags 0 diff --git a/src/gui/wnd.s01 b/src/gui/wnd.s01 index 0663cccf..fe9fae3a 100644 --- a/src/gui/wnd.s01 +++ b/src/gui/wnd.s01 @@ -40,6 +40,7 @@ PUBLIC Label_paint PUBLIC Move PUBLIC Root_paint + PUBLIC SetCurrentGraphicsDevice PUBLIC Text PUBLIC ToggleButton_handler PUBLIC ToggleButton_new @@ -62,7 +63,6 @@ PUBLIC loadFont EXTERN malloc EXTERN open - EXTERN printf PUBLIC read_stringtable PUBLIC rootWindow_handler PUBLIC root_actionhandler @@ -82,7 +82,6 @@ EXTERN ?SS_DIV_L02 EXTERN ?S_MUL_L02 EXTERN ?SS_CMP_L02 - EXTERN ?SL_RSH_L03 EXTERN ?C_V_SWITCH_L06 EXTERN ?S_V_SWITCH_L06 EXTERN ?BANK_CALL_DIRECT_L08 @@ -91,6 +90,25 @@ EXTERN ?ENT_PARM_DIRECT_L09 EXTERN ?ENT_AUTO_DIRECT_L09 RSEG CODE +SetCurrentGraphicsDevice: + CALL LWRD ?ENT_PARM_DIRECT_L09 + LD HL,6 + LD BC,(global) + ADD HL,BC + PUSH HL + EX DE,HL + ADD HL,HL + ADD HL,BC + INC HL + INC HL + LD C,(HL) + INC HL + LD B,(HL) + POP HL + LD (HL),C + INC HL + LD (HL),B + JP LWRD ?BANK_LEAVE_DIRECT_L08 GraphicsOpen: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 65528 @@ -109,9 +127,7 @@ GraphicsOpen: PUSH BC LD BC,?0001 PUSH BC - LD A,BYTE3 open - LD HL,LWRD open - CALL LWRD ?BANK_CALL_DIRECT_L08 + CALL LWRD ?0444 POP AF POP AF LD C,L @@ -132,9 +148,7 @@ GraphicsOpen: INC HL LD B,(HL) PUSH BC - LD A,BYTE3 ioctl - LD HL,LWRD ioctl - CALL LWRD ?BANK_CALL_DIRECT_L08 + CALL LWRD ?0443 POP AF POP AF POP AF @@ -152,57 +166,146 @@ GraphicsOpen: INC HL LD B,(HL) PUSH BC - LD A,BYTE3 ioctl - LD HL,LWRD ioctl - CALL LWRD ?BANK_CALL_DIRECT_L08 + CALL LWRD ?0443 POP AF POP AF POP AF LD HL,2 PUSH HL LD L,8 -?0372: ADD HL,SP LD C,L -?0427: LD B,H LD HL,(global) -?0428: INC HL INC HL -?0429: + CALL LWRD ?0445 + POP AF + LD HL,4 + LD BC,(global) + ADD HL,BC + PUSH HL + LD DE,2 + PUSH DE + LD DE,?0002 + PUSH DE + CALL LWRD ?0444 + POP AF + POP AF + EX DE,HL + POP HL + LD (HL),E + INC HL + LD (HL),D + LD HL,0 + ADD HL,SP + PUSH HL + LD HL,0 + PUSH HL + LD L,4 + LD BC,(global) + ADD HL,BC LD E,(HL) INC HL -?0430: LD D,(HL) - LD A,BYTE3 _write -?0431: - LD HL,LWRD _write - CALL LWRD ?BANK_CALL_DIRECT_L08 + PUSH DE + CALL LWRD ?0443 + POP AF + POP AF + POP AF + LD (IX-4),96 + LD (IX-3),0 + LD HL,0 + ADD HL,SP + PUSH HL + LD HL,1 + PUSH HL + LD L,4 + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + CALL LWRD ?0443 + POP AF + POP AF + POP AF + LD HL,2 + PUSH HL + LD L,8 + ADD HL,SP + CALL LWRD ?0446 POP AF + LD DE,1 + LD A,BYTE3 SetCurrentGraphicsDevice + LD HL,LWRD SetCurrentGraphicsDevice + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD DE,?0003 + CALL LWRD ?0452 + LD DE,0 + LD A,BYTE3 SetCurrentGraphicsDevice + LD HL,LWRD SetCurrentGraphicsDevice + CALL LWRD ?BANK_CALL_DIRECT_L08 JP LWRD ?BANK_LEAVE_DIRECT_L08 +?0443: + LD A,BYTE3 ioctl + LD HL,LWRD ioctl + JP LWRD ?BANK_CALL_DIRECT_L08 +?0444: + LD A,BYTE3 open + LD HL,LWRD open + JP LWRD ?BANK_CALL_DIRECT_L08 +?0446: + LD C,L + LD B,H + LD HL,4 +?0448: + LD DE,(global) + ADD HL,DE +?0445: + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 _write +?0447: + LD HL,LWRD _write + JP LWRD ?BANK_CALL_DIRECT_L08 +?0452: + LD A,BYTE3 Text + LD HL,LWRD Text + JP LWRD ?BANK_CALL_DIRECT_L08 GraphicsClose: + PUSH BC PUSH DE LD HL,(global) INC HL INC HL + CALL LWRD ?0468 + LD HL,4 + LD BC,(global) + ADD HL,BC + CALL LWRD ?0468 + POP DE + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 +?0468: LD E,(HL) INC HL LD D,(HL) +?0469: LD A,BYTE3 close LD HL,LWRD close - CALL LWRD ?BANK_CALL_DIRECT_L08 - POP DE - JP LWRD ?BANK_FAST_LEAVE_L08 + JP LWRD ?BANK_CALL_DIRECT_L08 Move: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 65532 LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0002 + LD HL,?0004 LD BC,4 LDIR +?0382: LD B,(IX+2) LD (IX-2),B LD B,(IX+4) @@ -211,22 +314,23 @@ Move: PUSH HL DEC HL DEC HL - JP LWRD ?0372 +?0387: + ADD HL,SP LD C,L -?0381: - JP LWRD ?0427 - LD HL,(global) - INC HL - INC HL ?0432: + LD B,H + LD HL,6 +?0433: + LD DE,(global) + ADD HL,DE +?0434: LD E,(HL) INC HL -?0433: +?0435: LD D,(HL) LD A,BYTE3 _write -?0434: - JP LWRD ?0431 - CALL LWRD ?BANK_CALL_DIRECT_L08 +?0436: + CALL LWRD ?0447 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 ClearRect: @@ -235,30 +339,33 @@ ClearRect: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0003 + LD HL,?0005 LD BC,4 LDIR - LD B,(IX+2) + JP LWRD ?0382 LD (IX-2),B +?0390: LD B,(IX+4) LD (IX-1),B LD HL,4 PUSH HL DEC HL DEC HL - JP LWRD ?0372 + ADD HL,SP LD C,L - JP LWRD ?0381 - LD HL,(global) -?0389: - JP LWRD ?0428 - INC HL +?0394: JP LWRD ?0432 + LD HL,6 + LD DE,(global) + ADD HL,DE +?0437: + LD E,(HL) INC HL +?0438: LD D,(HL) LD A,BYTE3 _write -?0435: - JP LWRD ?0431 +?0439: + JP LWRD ?0436 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -268,29 +375,31 @@ DrawRectNC: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0004 + LD HL,?0006 LD BC,4 LDIR - LD B,(IX+2) + JP LWRD ?0382 LD (IX-2),B - LD B,(IX+4) + JP LWRD ?0390 LD (IX-1),B +?0397: LD HL,4 PUSH HL DEC HL DEC HL - JP LWRD ?0372 + ADD HL,SP LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 - INC HL -?0396: - JP LWRD ?0429 - INC HL + LD B,H + LD HL,6 +?0400: JP LWRD ?0433 + ADD HL,DE + JP LWRD ?0437 + INC HL + LD D,(HL) LD A,BYTE3 _write - JP LWRD ?0435 +?0440: + JP LWRD ?0436 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -300,29 +409,30 @@ FillRect: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0005 + LD HL,?0007 LD BC,4 LDIR - LD B,(IX+2) + JP LWRD ?0382 LD (IX-2),B - LD B,(IX+4) + JP LWRD ?0390 LD (IX-1),B - LD HL,4 + JP LWRD ?0397 PUSH HL +?0403: DEC HL DEC HL - JP LWRD ?0372 + ADD HL,SP LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 - INC HL - JP LWRD ?0396 + LD B,H + LD HL,6 + LD DE,(global) + ADD HL,DE +?0405: + JP LWRD ?0434 INC HL -?0402: - JP LWRD ?0430 + JP LWRD ?0438 LD A,BYTE3 _write - JP LWRD ?0434 + JP LWRD ?0440 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -332,29 +442,30 @@ FillRectNC: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0006 + LD HL,?0008 LD BC,4 LDIR - LD B,(IX+2) + JP LWRD ?0382 LD (IX-2),B - LD B,(IX+4) + JP LWRD ?0390 LD (IX-1),B - LD HL,4 + JP LWRD ?0397 PUSH HL + JP LWRD ?0403 DEC HL - DEC HL - JP LWRD ?0372 +?0408: + ADD HL,SP LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 - INC HL - JP LWRD ?0396 + LD B,H + LD HL,6 + LD DE,(global) + ADD HL,DE + LD E,(HL) INC HL - JP LWRD ?0402 +?0409: + JP LWRD ?0435 LD A,BYTE3 _write -?0407: - JP LWRD ?0431 + JP LWRD ?0439 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -364,28 +475,29 @@ GrayRect: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0007 + LD HL,?0009 LD BC,4 LDIR - LD B,(IX+2) + JP LWRD ?0382 LD (IX-2),B - LD B,(IX+4) + JP LWRD ?0390 LD (IX-1),B - LD HL,4 + JP LWRD ?0397 PUSH HL + JP LWRD ?0403 DEC HL - DEC HL - JP LWRD ?0372 + JP LWRD ?0408 LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 - INC HL - JP LWRD ?0396 + LD B,H + LD HL,6 + LD DE,(global) + ADD HL,DE + LD E,(HL) INC HL - JP LWRD ?0402 + LD D,(HL) LD A,BYTE3 _write - JP LWRD ?0407 +?0412: + JP LWRD ?0436 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -401,17 +513,10 @@ Text: PUSH HL PUSH IX POP BC - LD HL,(global) - INC HL - INC HL - LD E,(HL) - INC HL - LD D,(HL) - LD A,BYTE3 _write - LD HL,LWRD _write - CALL LWRD ?BANK_CALL_DIRECT_L08 + LD HL,6 + CALL LWRD ?0448 POP AF -?0411: +?0415: POP IX POP IY POP BC @@ -422,7 +527,7 @@ TouchRegion: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0008 + LD HL,?0010 LD BC,7 LDIR LD B,(IX+2) @@ -438,38 +543,38 @@ TouchRegion: LD HL,7 PUSH HL LD L,2 - JP LWRD ?0372 + JP LWRD ?0387 LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 - INC HL - JP LWRD ?0396 + JP LWRD ?0394 + LD HL,6 + JP LWRD ?0400 + ADD HL,DE + JP LWRD ?0405 INC HL - JP LWRD ?0402 + JP LWRD ?0409 LD A,BYTE3 _write - JP LWRD ?0407 + JP LWRD ?0412 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 ClearScreen: PUSH BC PUSH DE - CALL LWRD ?0461 + CALL LWRD ?0474 CALL LWRD ?BANK_CALL_DIRECT_L08 LD HL,128 PUSH HL LD L,H PUSH HL PUSH HL - CALL LWRD ?0470 + CALL LWRD ?0483 POP HL POP HL POP HL POP DE POP BC JP LWRD ?BANK_FAST_LEAVE_L08 -?0461: +?0474: LD BC,0 LD E,C LD D,B @@ -482,11 +587,11 @@ ClearScreen: LD A,BYTE3 ClearRect LD HL,LWRD ClearRect RET -?0470: +?0483: LD C,L LD B,H EX DE,HL -?0471: +?0484: LD A,BYTE3 TouchRegion LD HL,LWRD TouchRegion JP LWRD ?BANK_CALL_DIRECT_L08 @@ -496,7 +601,7 @@ EnableScreen: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0009 + LD HL,?0011 LD BC,3 LDIR LD B,(IX+2) @@ -504,17 +609,17 @@ EnableScreen: LD HL,3 PUSH HL DEC HL - JP LWRD ?0372 + JP LWRD ?0387 LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 - INC HL - JP LWRD ?0396 + JP LWRD ?0394 + LD HL,6 + JP LWRD ?0400 + ADD HL,DE + JP LWRD ?0405 INC HL - JP LWRD ?0402 + JP LWRD ?0409 LD A,BYTE3 _write - JP LWRD ?0407 + JP LWRD ?0412 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -524,43 +629,43 @@ grSetFont: LD HL,0 ADD HL,SP EX DE,HL - LD HL,?0010 + LD HL,?0012 LD BC,2 LDIR LD B,(IX+2) LD (IX-1),B LD HL,2 PUSH HL - JP LWRD ?0372 + JP LWRD ?0387 LD C,L - JP LWRD ?0381 - LD HL,(global) - JP LWRD ?0389 + JP LWRD ?0394 + LD HL,6 + JP LWRD ?0400 + ADD HL,DE + JP LWRD ?0405 INC HL - JP LWRD ?0396 - INC HL - JP LWRD ?0402 + JP LWRD ?0409 LD A,BYTE3 _write - JP LWRD ?0407 + JP LWRD ?0412 CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF JP LWRD ?BANK_LEAVE_DIRECT_L08 fontSearch: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 - LD HL,12 + LD HL,20 LD BC,(global) ADD HL,BC -?0321: +?0331: LD B,(HL) INC HL LD H,(HL) LD L,B EX DE,HL -?0012: +?0014: LD A,E OR D - JR Z,?0011 + JR Z,?0013 LD L,E LD H,D LD B,(HL) @@ -570,29 +675,29 @@ fontSearch: LD C,(IX+2) LD B,(IX+3) SBC HL,BC - JR Z,?0011 + JR Z,?0013 +?0017: +?0016: ?0015: -?0014: -?0013: LD HL,8 ADD HL,DE - JR ?0321 -?0011: + JR ?0331 +?0013: EX DE,HL JP LWRD ?BANK_LEAVE_DIRECT_L08 setCurrentFont: CALL LWRD ?ENT_PARM_DIRECT_L09 LD A,BYTE3 fontSearch LD HL,LWRD fontSearch - CALL LWRD ?0448 - JR Z,?0017 -?0016: + CALL LWRD ?0458 + JR Z,?0019 +?0018: LD E,(IX+2) LD D,(IX+3) LD A,BYTE3 grSetFont LD HL,LWRD grSetFont CALL LWRD ?BANK_CALL_DIRECT_L08 - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC PUSH HL @@ -600,21 +705,22 @@ setCurrentFont: LD D,(IX+3) LD A,BYTE3 fontSearch LD HL,LWRD fontSearch - CALL LWRD ?0449 + CALL LWRD ?0459 POP HL LD (HL),C INC HL LD (HL),B -?0017: +?0019: JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0443: +?0454: + LD HL,18 LD BC,(global) ADD HL,BC LD B,(HL) INC HL LD H,(HL) LD L,B -?0442: +?0453: INC HL INC HL LD C,(HL) @@ -641,24 +747,15 @@ setCurrentFont: LD A,BYTE3 Move LD HL,LWRD Move RET -?0444: - CALL LWRD ?BANK_CALL_DIRECT_L08 - LD C,L - LD B,H - LD L,(IY+8) - LD H,(IY+9) - AND A - SBC HL,BC - RET -?0448: +?0458: CALL LWRD ?BANK_CALL_DIRECT_L08 LD A,L OR H RET -?0450: +?0460: LD A,BYTE3 malloc LD HL,LWRD malloc -?0449: +?0459: CALL LWRD ?BANK_CALL_DIRECT_L08 LD C,L LD B,H @@ -668,7 +765,7 @@ loadFont: DEFW 65532 PUSH IY LD DE,14 - CALL LWRD ?0447 + CALL LWRD ?0457 LD C,(IX+2) LD (HL),C LD B,(IX+3) @@ -697,33 +794,33 @@ loadFont: LD (IY+12),L LD H,(IX+21) LD (IY+13),H - LD HL,12 + LD HL,20 LD BC,(global) ADD HL,BC LD A,(HL) INC HL OR (HL) - LD HL,12 + LD HL,20 LD BC,(global) ADD HL,BC - JR NZ,?0019 -?0018: + JR NZ,?0021 +?0020: PUSH IY POP BC LD (HL),C INC HL LD (HL),B - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC - JR ?0021 -?0019: + JR ?0023 +?0021: LD B,(HL) INC HL LD H,(HL) LD L,B EX DE,HL -?0022: +?0024: LD HL,8 ADD HL,DE LD A,(HL) @@ -731,18 +828,18 @@ loadFont: OR (HL) LD HL,8 ADD HL,DE - JR NZ,?0019 + JR NZ,?0021 +?0025: ?0023: -?0021: PUSH IY POP BC LD (HL),C INC HL LD (HL),B -?0020: +?0022: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0447: +?0457: LD A,BYTE3 malloc LD HL,LWRD malloc CALL LWRD ?BANK_CALL_DIRECT_L08 @@ -756,7 +853,7 @@ stringwidth: PUSH DE LD IX,0 LD IY,0 -?0025: +?0027: PUSH IY LD HL,2 ADD HL,SP @@ -767,8 +864,8 @@ stringwidth: ADD HL,BC LD A,(HL) OR A - JR Z,?0024 -?0026: + JR Z,?0026 +?0028: PUSH IY POP HL ADD HL,BC @@ -785,34 +882,34 @@ stringwidth: DEFB 107 DEFB 108 DEFB 114 - DEFW ?0032 - DEFW ?0031 - DEFW ?0029 + DEFW ?0034 + DEFW ?0033 DEFW ?0031 - DEFW ?0031 - DEFW ?0028 - DEFW ?0028 + DEFW ?0033 + DEFW ?0033 DEFW ?0030 DEFW ?0030 + DEFW ?0032 + DEFW ?0032 + DEFW ?0032 DEFW ?0030 - DEFW ?0028 -?0028: +?0030: LD BC,2 - JR ?0331 -?0029: + JR ?0341 +?0031: LD BC,3 - JR ?0331 -?0030: + JR ?0341 +?0032: LD BC,4 - JR ?0331 -?0031: + JR ?0341 +?0033: LD BC,5 - JR ?0331 -?0032: + JR ?0341 +?0034: LD BC,6 -?0331: +?0341: ADD IX,BC -?0027: +?0029: LD HL,2 ADD HL,SP LD C,(HL) @@ -820,8 +917,8 @@ stringwidth: LD B,(HL) ADD IX,BC INC IY - JR ?0025 -?0024: + JR ?0027 +?0026: PUSH IX POP HL POP AF @@ -833,30 +930,30 @@ stringheight: CALL LWRD ?ENT_PARM_DIRECT_L09 LD A,E CP 128 - JR NC,?0034 -?0033: + JR NC,?0036 +?0035: LD HL,7 ADD HL,BC - JR ?0036 -?0034: + JR ?0038 +?0036: CP 204 - JR C,?0036 + JR C,?0038 LD A,223 CP E - JR C,?0036 -?0038: + JR C,?0038 +?0040: +?0039: ?0037: -?0035: LD L,C LD H,B INC HL -?0036: -?0039: +?0038: +?0041: JP LWRD ?BANK_LEAVE_DIRECT_L08 stringheight01: CALL LWRD ?ENT_PARM_DIRECT_L09 LD BC,0 -?0415: +?0419: LD A,(DE) LD E,A LD A,BYTE3 stringheight @@ -866,11 +963,11 @@ stringheight01: stringheight2: CALL LWRD ?ENT_PARM_DIRECT_L09 LD BC,5 - JP LWRD ?0415 + JP LWRD ?0419 stringwidth0: CALL LWRD ?ENT_PARM_DIRECT_L09 LD BC,0 -?0416: +?0420: LD A,BYTE3 stringwidth LD HL,LWRD stringwidth CALL LWRD ?BANK_CALL_DIRECT_L08 @@ -878,17 +975,17 @@ stringwidth0: stringwidth1: CALL LWRD ?ENT_PARM_DIRECT_L09 LD BC,2 - JP LWRD ?0416 + JP LWRD ?0420 stringwidth2: CALL LWRD ?ENT_PARM_DIRECT_L09 LD BC,3 - JP LWRD ?0416 + JP LWRD ?0420 Component_new: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 PUSH IY LD DE,40 - CALL LWRD ?0447 + CALL LWRD ?0457 LD HL,(global) LD E,(HL) INC HL @@ -947,7 +1044,7 @@ Component_new: LD (IY+33),A LD (IY+34),A LD (IY+35),A -?0418: +?0422: PUSH IY POP HL POP IY @@ -961,13 +1058,13 @@ Component_setlabel: PUSH HL POP IY LD DE,0 -?0041: +?0043: LD L,(IX+4) LD H,(IX+5) ADD HL,DE LD A,(HL) OR A - JR Z,?0040 + JR Z,?0042 LD BC,32788 LD L,E LD H,D @@ -975,10 +1072,10 @@ Component_setlabel: XOR H LD H,A SBC HL,BC - JR NC,?0040 + JR NC,?0042 +?0046: +?0045: ?0044: -?0043: -?0042: LD L,(IY+32) LD H,(IY+33) ADD HL,DE @@ -990,8 +1087,8 @@ Component_setlabel: POP HL LD (HL),B INC DE - JR ?0041 -?0040: + JR ?0043 +?0042: LD L,(IY+32) LD H,(IY+33) ADD HL,DE @@ -1019,35 +1116,35 @@ Component_add: LD A,(HL) INC HL OR (HL) - JR NZ,?0046 -?0045: + JR NZ,?0048 +?0047: LD HL,21 ADD HL,BC LD (HL),E INC HL LD (HL),D - JR ?0335 -?0046: -?0049: + JR ?0345 +?0048: +?0051: LD A,(IY+19) OR (IY+20) - JR Z,?0048 -?0050: + JR Z,?0050 +?0052: LD L,(IY+19) LD H,(IY+20) PUSH HL POP IY - JR ?0046 -?0048: + JR ?0048 +?0050: LD (IY+19),E LD (IY+20),D -?0335: +?0345: LD HL,19 ADD HL,DE LD (HL),A INC HL LD (HL),A -?0047: +?0049: LD HL,17 ADD HL,DE LD C,(IX+2) @@ -1069,14 +1166,14 @@ Component_paint: LD L,B PUSH HL POP IX - CALL LWRD ?0477 -?0052: + CALL LWRD ?0486 +?0054: PUSH IX POP HL LD A,L OR H - JR Z,?0051 -?0053: + JR Z,?0053 +?0055: PUSH IX POP DE LD A,(IX+28) @@ -1087,14 +1184,14 @@ Component_paint: LD H,(IX+20) PUSH HL POP IX - JR ?0052 -?0051: + JR ?0054 +?0053: LD E,1 - CALL LWRD ?0478 - JP LWRD ?0411 -?0477: + CALL LWRD ?0487 + JP LWRD ?0415 +?0486: LD E,0 -?0478: +?0487: LD A,BYTE3 EnableScreen LD HL,LWRD EnableScreen JP LWRD ?BANK_CALL_DIRECT_L08 @@ -1106,7 +1203,7 @@ Component_findXY: LD H,(IX+3) PUSH HL POP IY -?0056: +?0058: LD L,(IX+4) LD H,(IX+5) LD A,(HL) @@ -1131,8 +1228,8 @@ Component_findXY: POP IY LD A,L OR H - JR NZ,?0056 -?0054: + JR NZ,?0058 +?0056: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 Component_find: @@ -1142,17 +1239,17 @@ Component_find: LD C,(IX+2) LD B,(IX+3) ADD HL,BC -?0336: +?0346: LD B,(HL) INC HL LD H,(HL) LD L,B EX DE,HL -?0058: +?0060: LD A,E OR D - JR Z,?0057 -?0059: + JR Z,?0059 +?0061: LD HL,16 ADD HL,DE LD C,(HL) @@ -1161,18 +1258,18 @@ Component_find: LD H,(IX+5) AND A SBC HL,BC - JR NZ,?0061 -?0060: + JR NZ,?0063 +?0062: EX DE,HL - JR ?0062 -?0061: + JR ?0064 +?0063: LD HL,19 ADD HL,DE - JR ?0336 -?0057: + JR ?0346 +?0059: LD L,A LD H,A -?0062: +?0064: JP LWRD ?BANK_LEAVE_DIRECT_L08 Component_delete: CALL LWRD ?ENT_AUTO_DIRECT_L09 @@ -1190,24 +1287,24 @@ Component_delete: POP HL LD A,L OR H - JP Z,?0064 -?0063: -?0066: + JP Z,?0066 +?0065: +?0068: LD A,(IX-8) OR (IX-7) - JR Z,?0065 -?0067: + JR Z,?0067 +?0069: LD E,(IX-8) LD D,(IX-7) - CALL LWRD ?0453 + CALL LWRD ?0467 LD (IX-8),L LD (IX-7),H - JR ?0063 -?0065: + JR ?0065 +?0067: LD A,(IY+17) OR (IY+18) - JP Z,?0079 -?0068: + JP Z,?0081 +?0070: LD L,(IY+17) LD H,(IY+18) LD BC,21 @@ -1224,21 +1321,21 @@ Component_delete: LD H,(IY+18) LD BC,21 ADD HL,BC - JR NZ,?0071 -?0070: + JR NZ,?0073 +?0072: PUSH HL LD L,(IY+17) LD H,(IY+18) - JR ?0339 -?0071: + JR ?0349 +?0073: LD B,(HL) INC HL LD H,(HL) LD L,B -?0338: +?0348: LD (IX-8),L LD (IX-7),H -?0074: +?0076: LD HL,19 LD C,(IX-8) LD B,(IX-7) @@ -1251,7 +1348,7 @@ Component_delete: POP BC AND A SBC HL,BC - JR Z,?0073 + JR Z,?0075 LD HL,19 LD C,(IX-8) LD B,(IX-7) @@ -1259,18 +1356,18 @@ Component_delete: LD A,(HL) INC HL OR (HL) - JR Z,?0073 + JR Z,?0075 +?0079: +?0078: ?0077: -?0076: -?0075: LD HL,19 ADD HL,BC LD D,(HL) INC HL LD H,(HL) LD L,D - JR ?0338 -?0073: + JR ?0348 +?0075: LD HL,19 LD C,(IX-8) LD B,(IX-7) @@ -1278,13 +1375,13 @@ Component_delete: LD A,(HL) INC HL OR (HL) - JR Z,?0079 -?0078: + JR Z,?0081 +?0080: LD HL,19 ADD HL,BC PUSH HL LD HL,19 -?0339: +?0349: ADD HL,BC LD B,(HL) INC HL @@ -1299,9 +1396,9 @@ Component_delete: LD (HL),C INC HL LD (HL),B -?0079: -?0072: -?0069: +?0081: +?0074: +?0071: LD L,(IY+19) LD (IX-8),L LD H,(IY+20) @@ -1309,8 +1406,8 @@ Component_delete: LD A,4 XOR (IY+36) OR (IY+37) - JP NZ,?0088 -?0080: + JP NZ,?0090 +?0082: LD L,(IY+17) LD (IX-4),L LD H,(IY+18) @@ -1319,16 +1416,16 @@ Component_delete: LD (IX-2),L LD H,(IY+39) LD (IX-1),H - CALL LWRD ?0451 + CALL LWRD ?0464 LD L,(IX-2) LD H,(IX-1) INC HL INC HL - CALL LWRD ?0451 -?0083: + CALL LWRD ?0464 +?0085: LD A,(IX-4) OR (IX-3) - JR Z,?0082 + JR Z,?0084 LD HL,36 LD C,(IX-4) LD B,(IX-3) @@ -1337,10 +1434,10 @@ Component_delete: XOR (HL) INC HL OR (HL) - JR Z,?0082 + JR Z,?0084 +?0088: +?0087: ?0086: -?0085: -?0084: LD HL,17 ADD HL,BC LD D,(HL) @@ -1348,12 +1445,12 @@ Component_delete: INC HL LD H,(HL) LD (IX-3),H - JR ?0083 -?0082: + JR ?0085 +?0084: LD A,(IX-4) OR (IX-3) - JR Z,?0088 -?0087: + JR Z,?0090 +?0089: LD HL,38 LD C,(IX-4) LD B,(IX-3) @@ -1363,7 +1460,7 @@ Component_delete: INC HL LD H,(HL) LD (IX-1),H - LD HL,6 + LD HL,10 LD BC,(global) ADD HL,BC PUSH HL @@ -1376,7 +1473,7 @@ Component_delete: LD (HL),E INC HL LD (HL),D - LD HL,8 + LD HL,12 LD BC,(global) ADD HL,BC PUSH HL @@ -1393,47 +1490,47 @@ Component_delete: LD (HL),C INC HL LD (HL),B -?0088: -?0081: +?0090: +?0083: LD C,(IY+36) LD B,(IY+37) LD HL,0 CALL LWRD ?SS_CMP_L02 - JR NC,?0090 -?0089: + JR NC,?0092 +?0091: LD E,(IY+38) LD D,(IY+39) - CALL LWRD ?0452 -?0090: + CALL LWRD ?0465 +?0092: BIT 6,(IY+11) - JR NZ,?0092 + JR NZ,?0094 LD A,(IY+32) OR (IY+33) - JR Z,?0092 -?0094: + JR Z,?0094 +?0096: +?0095: ?0093: -?0091: LD E,(IY+32) LD D,(IY+33) - CALL LWRD ?0452 -?0092: + CALL LWRD ?0465 +?0094: PUSH IY POP DE - CALL LWRD ?0452 -?0064: + CALL LWRD ?0465 +?0066: LD L,(IX-8) LD H,(IX-7) POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0451: +?0464: LD E,(HL) INC HL LD D,(HL) -?0452: +?0465: LD A,BYTE3 free LD HL,LWRD free JP LWRD ?BANK_CALL_DIRECT_L08 -?0453: +?0467: LD A,BYTE3 Component_delete LD HL,LWRD Component_delete JP LWRD ?BANK_CALL_DIRECT_L08 @@ -1447,20 +1544,20 @@ Component_delete_children: INC HL LD H,(HL) LD L,B -?0341: +?0351: PUSH HL POP IX -?0096: +?0098: LD A,L OR H - JR Z,?0095 -?0097: + JR Z,?0097 +?0099: PUSH IX POP DE - CALL LWRD ?0453 - JR ?0341 -?0095: - JP LWRD ?0411 + CALL LWRD ?0467 + JR ?0351 +?0097: + JP LWRD ?0415 Component_changestate_children: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 @@ -1469,18 +1566,18 @@ Component_changestate_children: LD E,(IX+2) LD D,(IX+3) ADD HL,DE -?0342: +?0352: LD D,(HL) INC HL LD H,(HL) LD L,D PUSH HL POP IY -?0099: +?0101: LD A,L OR H - JR Z,?0098 -?0100: + JR Z,?0100 +?0102: LD HL,10 PUSH IY POP BC @@ -1519,8 +1616,8 @@ Component_changestate_children: LD (HL),A LD HL,19 ADD HL,BC - JR ?0342 -?0098: + JR ?0352 +?0100: LD DE,stdout LD A,BYTE3 fflush LD HL,LWRD fflush @@ -1552,20 +1649,20 @@ Component_linkstringtable: XOR H LD H,A SBC HL,BC - JR NC,?0102 + JR NC,?0104 LD C,(IX+32) LD B,(IX+33) LD HL,0 CALL LWRD ?SS_CMP_L02 - JR NC,?0102 -?0104: + JR NC,?0104 +?0106: +?0105: ?0103: -?0101: LD L,(IX+32) LD H,(IX+33) ADD HL,HL PUSH HL - LD HL,8 + LD HL,12 LD BC,(global) ADD HL,BC LD C,(HL) @@ -1580,7 +1677,7 @@ Component_linkstringtable: INC HL LD H,(HL) LD (IX+33),H -?0102: +?0104: LD L,(IX+34) LD H,(IX+35) LD BC,36864 @@ -1588,20 +1685,20 @@ Component_linkstringtable: XOR H LD H,A SBC HL,BC - JR NC,?0106 + JR NC,?0108 LD C,(IX+34) LD B,(IX+35) LD HL,0 CALL LWRD ?SS_CMP_L02 - JR NC,?0106 -?0108: + JR NC,?0108 +?0110: +?0109: ?0107: -?0105: LD L,(IX+34) LD H,(IX+35) ADD HL,HL PUSH HL - LD HL,8 + LD HL,12 LD BC,(global) ADD HL,BC LD C,(HL) @@ -1616,14 +1713,14 @@ Component_linkstringtable: INC HL LD H,(HL) LD (IX+35),H -?0106: -?0110: +?0108: +?0112: PUSH IY POP HL LD A,L OR H - JR Z,?0109 -?0111: + JR Z,?0111 +?0113: PUSH IY POP DE LD A,BYTE3 Component_linkstringtable @@ -1633,9 +1730,9 @@ Component_linkstringtable: LD H,(IY+20) PUSH HL POP IY - JR ?0106 -?0109: - JP LWRD ?0411 + JR ?0108 +?0111: + JP LWRD ?0415 Window_handler: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 65488 @@ -1656,17 +1753,17 @@ Window_handler: DEFW 259 DEFW 260 DEFW 261 - DEFW 1025 - DEFW ?0159 - DEFW ?0153 + DEFW 1281 + DEFW ?0161 + DEFW ?0155 + DEFW ?0146 + DEFW ?0147 DEFW ?0144 DEFW ?0145 - DEFW ?0142 - DEFW ?0143 - DEFW ?0131 - DEFW ?0119 - DEFW ?0113 -?0113: + DEFW ?0133 + DEFW ?0121 + DEFW ?0115 +?0115: LD HL,21 LD C,(IX+2) LD B,(IX+3) @@ -1675,29 +1772,29 @@ Window_handler: INC HL LD H,(HL) LD L,B -?0344: +?0354: PUSH HL POP IY -?0115: +?0117: LD A,L OR H - JR Z,?0114 -?0116: + JR Z,?0116 +?0118: BIT 0,(IY+10) - JR Z,?0118 -?0117: + JR Z,?0120 +?0119: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0462 + CALL LWRD ?0475 POP HL -?0118: +?0120: LD L,(IY+19) LD H,(IY+20) - JR ?0344 -?0114: - JP LWRD ?0159 -?0119: + JR ?0354 +?0116: + JP LWRD ?0161 +?0121: LD HL,21 LD C,(IX+2) LD B,(IX+3) @@ -1706,27 +1803,27 @@ Window_handler: INC HL LD H,(HL) LD L,B -?0348: +?0358: PUSH HL POP IY -?0121: +?0123: LD A,L OR H - JR Z,?0120 -?0122: + JR Z,?0122 +?0124: BIT 0,(IY+10) - JR Z,?0126 -?0123: + JR Z,?0128 +?0125: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0462 + CALL LWRD ?0475 POP HL LD L,(IX+10) LD H,(IX+11) PUSH HL LD BC,3 - CALL LWRD ?0463 + CALL LWRD ?0476 POP HL LD A,(IY+10) AND 34 @@ -1734,32 +1831,32 @@ Window_handler: LD H,0 LD A,34 XOR L - JR NZ,?0126 + JR NZ,?0128 LD C,(IY+16) LD B,H LD L,(IX+10) LD H,(IX+11) SBC HL,BC - JR NZ,?0126 -?0128: + JR NZ,?0128 +?0130: +?0129: ?0127: -?0125: LD IY,0 +?0128: ?0126: -?0124: PUSH IY POP HL LD A,L OR H - JR Z,?0121 -?0129: + JR Z,?0123 +?0131: LD L,(IY+19) LD H,(IY+20) - JR ?0348 -?0130: -?0120: - JP LWRD ?0159 -?0131: + JR ?0358 +?0132: +?0122: + JP LWRD ?0161 +?0133: LD L,(IX+2) LD H,(IX+3) PUSH HL @@ -1769,41 +1866,41 @@ Window_handler: LD B,(IX+3) ADD HL,BC BIT 0,(HL) - JR Z,?0139 -?0132: + JR Z,?0141 +?0134: BIT 5,(IY+10) - JR Z,?0139 + JR Z,?0141 LD C,(IY+16) LD B,A LD L,(IX+10) LD H,(IX+11) AND A SBC HL,BC - JR NZ,?0139 -?0137: + JR NZ,?0141 +?0139: +?0138: ?0136: -?0134: LD L,(IY+38) LD H,(IY+39) PUSH IY POP DE - CALL LWRD ?0474 -?0138: -?0139: -?0135: -?0133: + CALL LWRD ?0450 ?0140: ?0141: - JP LWRD ?0159 +?0137: +?0135: ?0142: +?0143: + JP LWRD ?0161 +?0144: LD E,(IX+2) LD C,E LD D,(IX+3) LD B,D LD HL,26 - CALL LWRD ?0475 - JP LWRD ?0159 -?0143: + CALL LWRD ?0451 + JP LWRD ?0161 +?0145: LD HL,10 LD C,(IX+2) LD B,(IX+3) @@ -1820,7 +1917,7 @@ Window_handler: LD B,H LD E,(IX+2) LD D,(IX+3) - CALL LWRD ?0466 + CALL LWRD ?0477 POP HL LD HL,8 LD C,(IX+2) @@ -1842,7 +1939,7 @@ Window_handler: LD C,(IX-6) LD B,(IX-5) LD DE,0 - CALL LWRD ?0471 + CALL LWRD ?0484 POP HL POP HL POP HL @@ -1873,8 +1970,8 @@ Window_handler: LD L,C LD H,B LD BC,259 - JR ?0347 -?0144: + JR ?0357 +?0146: LD HL,17 LD C,(IX+2) LD B,(IX+3) @@ -1887,7 +1984,7 @@ Window_handler: POP IY LD E,C LD D,B - CALL LWRD ?0453 + CALL LWRD ?0467 LD HL,0 PUSH HL LD BC,259 @@ -1896,9 +1993,9 @@ Window_handler: LD A,(IY+25) LD L,(IY+23) LD H,(IY+24) -?0347: - JP LWRD ?0346 -?0145: +?0357: + JP LWRD ?0356 +?0147: LD HL,21 LD C,(IX+2) LD B,(IX+3) @@ -1907,38 +2004,38 @@ Window_handler: INC HL LD H,(HL) LD L,B -?0345: +?0355: PUSH HL POP IY -?0147: +?0149: LD A,L OR H - JR Z,?0146 -?0148: + JR Z,?0148 +?0150: LD L,(IX+10) LD H,(IX+11) PUSH IY POP BC SBC HL,BC - JR Z,?0150 + JR Z,?0152 BIT 3,(IY+10) - JR Z,?0150 -?0152: + JR Z,?0152 +?0154: +?0153: ?0151: -?0149: LD L,(IX+10) LD H,(IX+11) PUSH HL LD BC,515 - CALL LWRD ?0463 + CALL LWRD ?0476 POP HL -?0150: +?0152: LD L,(IY+19) LD H,(IY+20) - JR ?0345 -?0146: - JP LWRD ?0159 -?0153: + JR ?0355 +?0148: + JP LWRD ?0161 +?0155: LD HL,17 LD C,(IX+2) LD B,(IX+3) @@ -1946,22 +2043,22 @@ Window_handler: LD A,(HL) INC HL OR (HL) - JR NZ,?0155 -?0154: - LD HL,4 + JR NZ,?0157 +?0156: + LD HL,8 LD BC,(global) ADD HL,BC LD (HL),1 INC HL LD (HL),A - JR ?0159 -?0155: + JR ?0161 +?0157: LD HL,10 ADD HL,BC INC HL BIT 5,(HL) - JR NZ,?0158 -?0157: + JR NZ,?0160 +?0159: LD L,(IX+10) LD H,(IX+11) PUSH HL @@ -1987,9 +2084,9 @@ Window_handler: LD A,(HL) LD L,C LD H,B - LD BC,1025 - JR ?0346 -?0158: + LD BC,1281 + JR ?0356 +?0160: LD HL,17 ADD HL,BC LD D,(HL) @@ -2033,61 +2130,67 @@ Window_handler: LD L,C LD H,B LD BC,261 -?0346: +?0356: CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0159: -?0156: -?0112: +?0161: +?0158: +?0114: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0462: +?0451: + ADD HL,BC +?0450: + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD A,(HL) + LD L,C + LD H,B + JP LWRD ?BANK_CALL_DIRECT_L08 +?0475: LD C,(IX+4) LD B,(IX+5) -?0463: +?0476: PUSH IY POP DE LD A,(IY+25) LD L,(IY+23) LD H,(IY+24) JP LWRD ?BANK_CALL_DIRECT_L08 -?0467: +?0478: INC HL INC HL -?0468: +?0479: LD C,L LD B,H PUSH IX POP DE -?0466: +?0477: LD A,BYTE3 Component_findXY LD HL,LWRD Component_findXY JP LWRD ?BANK_CALL_DIRECT_L08 -?0475: - ADD HL,BC -?0474: - LD C,(HL) - INC HL - LD B,(HL) - INC HL - LD A,(HL) - LD L,C - LD H,B - JP LWRD ?BANK_CALL_DIRECT_L08 Window_paint: - CALL LWRD ?ENT_AUTO_DIRECT_L09 - DEFW -4 - PUSH IY - LD L,(IX+2) - LD H,(IX+3) - PUSH HL - POP IY + PUSH BC + PUSH IX + PUSH AF + PUSH AF + PUSH DE + POP IX + LD HL,2 + ADD HL,SP XOR A - LD (IX-2),A - LD (IX-1),A - LD (IX-4),A - LD (IX-3),A - LD HL,10 + LD (HL),A + INC HL + LD (HL),A + DEC HL + DEC HL + DEC HL + LD (HL),A + INC HL + LD (HL),A + LD HL,18 LD BC,(global) ADD HL,BC LD A,(HL) @@ -2098,79 +2201,81 @@ Window_paint: INC HL LD H,(HL) LD L,B - LD C,(IY+14) - LD B,(IY+15) + PUSH HL + LD HL,14 + ADD HL,DE + LD C,(HL) + INC HL + LD B,(HL) + POP HL AND A SBC HL,BC - JR Z,?0161 -?0160: - LD E,(IY+14) - LD D,(IY+15) - CALL LWRD ?0472 -?0161: - BIT 0,(IY+10) - JP Z,?0163 + JR Z,?0163 ?0162: - LD HL,2 + CALL LWRD ?0449 +?0163: + BIT 0,(IX+10) + JP Z,?0165 +?0164: + LD HL,0 ADD HL,SP PUSH HL - INC HL - INC HL - LD C,L - LD B,H - PUSH IY - POP DE - CALL LWRD ?0466 + CALL LWRD ?0478 POP HL - CALL LWRD ?0477 - LD C,(IX-4) - LD B,(IX-3) - LD E,(IX-2) - LD D,(IX-1) - LD A,BYTE3 Move - LD HL,LWRD Move - CALL LWRD ?BANK_CALL_DIRECT_L08 - LD C,(IY+8) - LD B,(IY+9) - LD E,(IY+6) - LD D,(IY+7) - LD A,BYTE3 ClearRect - LD HL,LWRD ClearRect + CALL LWRD ?0486 + LD HL,0 + ADD HL,SP + CALL LWRD ?0472 CALL LWRD ?BANK_CALL_DIRECT_L08 - LD L,(IY+8) - LD H,(IY+9) - PUSH HL - LD L,(IY+6) - LD H,(IY+7) + LD L,(IX+8) + LD H,(IX+9) PUSH HL - LD L,(IX-4) - LD H,(IX-3) + LD L,(IX+6) + LD H,(IX+7) PUSH HL - LD C,(IX-2) - LD B,(IX-1) - LD DE,0 - CALL LWRD ?0471 - POP HL - POP HL - POP HL - LD E,(IY+32) - LD D,(IY+33) - LD HL,10 - LD BC,(global) - ADD HL,BC - LD A,(HL) + LD HL,4 + ADD HL,SP + LD C,(HL) INC HL - LD H,(HL) - LD L,A - CALL LWRD ?0455 - LD C,(IX-4) - LD B,(IX-3) + LD B,(HL) + PUSH BC + INC HL + LD C,(HL) + INC HL + LD B,(HL) + LD DE,0 + CALL LWRD ?0484 + POP HL + POP HL + POP HL + LD E,(IX+32) + LD D,(IX+33) + CALL LWRD ?0461 + PUSH HL + LD HL,2 + ADD HL,SP + LD C,(HL) + INC HL + LD B,(HL) + POP HL + ADD HL,BC + LD BC,4 ADD HL,BC - LD DE,4 - ADD HL,DE LD C,L LD B,H - CALL LWRD ?0459 + LD HL,2 + ADD HL,SP + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 Move + LD HL,LWRD Move + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX+32) + LD D,(IX+33) + LD HL,18 + LD BC,(global) + ADD HL,BC LD A,(HL) INC HL LD H,(HL) @@ -2184,55 +2289,90 @@ Window_paint: LD A,(HL) LD L,C LD H,B - CALL LWRD ?0444 + CALL LWRD ?0459 + LD L,(IX+8) + LD H,(IX+9) + AND A + SBC HL,BC LD BC,65532 ADD HL,BC LD C,L LD B,H - LD E,(IY+6) - LD D,(IY+7) + LD E,(IX+6) + LD D,(IX+7) LD A,BYTE3 DrawRectNC LD HL,LWRD DrawRectNC CALL LWRD ?BANK_CALL_DIRECT_L08 - LD C,(IX-4) - LD B,(IX-3) - CALL LWRD ?0459 + LD HL,0 + ADD HL,SP + LD C,(HL) + INC HL LD B,(HL) INC HL - LD H,(HL) - LD L,B - CALL LWRD ?0455 + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 Move + LD HL,LWRD Move + CALL LWRD ?0470 + CALL LWRD ?0462 LD BC,5 ADD HL,BC LD C,L LD B,H - LD E,(IY+6) - LD D,(IY+7) + LD E,(IX+6) + LD D,(IX+7) LD A,BYTE3 FillRect LD HL,LWRD FillRect CALL LWRD ?BANK_CALL_DIRECT_L08 - LD HL,14 - LD C,(IX-4) - LD B,(IX-3) - ADD HL,BC - LD C,L - LD B,H - LD E,(IX-2) - LD D,(IX-1) + LD HL,0 + ADD HL,SP + LD C,(HL) + INC HL + LD B,(HL) + INC BC + INC BC + INC HL + LD E,(HL) + INC HL + LD D,(HL) INC DE INC DE LD A,BYTE3 Move LD HL,LWRD Move - CALL LWRD ?0460 - PUSH IY + CALL LWRD ?BANK_CALL_DIRECT_L08 + LD E,(IX+32) + LD D,(IX+33) + CALL LWRD ?0452 + PUSH IX POP DE LD A,BYTE3 Component_paint LD HL,LWRD Component_paint CALL LWRD ?BANK_CALL_DIRECT_L08 -?0163: - POP IY - JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0455: +?0165: + POP HL + POP HL + POP IX + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 +?0449: + LD E,(IX+14) + LD D,(IX+15) + LD A,BYTE3 setCurrentFont + LD HL,LWRD setCurrentFont + JP LWRD ?BANK_CALL_DIRECT_L08 +?0463: + LD E,(IY+32) + LD D,(IY+33) +?0461: + LD HL,18 + LD BC,(global) + ADD HL,BC + LD A,(HL) + INC HL + LD H,(HL) + LD L,A +?0462: LD BC,5 ADD HL,BC LD C,(HL) @@ -2243,37 +2383,41 @@ Window_paint: LD L,C LD H,B JP LWRD ?BANK_CALL_DIRECT_L08 -?0459: - LD E,(IX-2) - LD D,(IX-1) - LD A,BYTE3 Move - LD HL,LWRD Move +?0470: CALL LWRD ?BANK_CALL_DIRECT_L08 - LD E,(IY+32) - LD D,(IY+33) - LD HL,10 + LD E,(IX+32) + LD D,(IX+33) + LD HL,18 LD BC,(global) ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B RET -?0460: - CALL LWRD ?BANK_CALL_DIRECT_L08 - LD E,(IY+32) - LD D,(IY+33) - LD A,BYTE3 Text - LD HL,LWRD Text +?0472: + LD C,(HL) + INC HL + LD B,(HL) + INC HL +?0473: + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 Move + LD HL,LWRD Move CALL LWRD ?BANK_CALL_DIRECT_L08 + LD C,(IX+8) + LD B,(IX+9) + LD E,(IX+6) + LD D,(IX+7) + LD A,BYTE3 ClearRect + LD HL,LWRD ClearRect RET -?0473: - LD E,(IX+14) - LD D,(IX+15) -?0472: - LD A,BYTE3 setCurrentFont - LD HL,LWRD setCurrentFont - JP LWRD ?BANK_CALL_DIRECT_L08 Root_paint: CALL LWRD ?ENT_PARM_DIRECT_L09 - CALL LWRD ?0477 - CALL LWRD ?0461 + CALL LWRD ?0486 + CALL LWRD ?0474 CALL LWRD ?BANK_CALL_DIRECT_L08 LD BC,128 LD E,B @@ -2286,7 +2430,7 @@ Root_paint: LD L,H PUSH HL PUSH HL - CALL LWRD ?0470 + CALL LWRD ?0483 POP HL POP HL POP HL @@ -2312,7 +2456,11 @@ Window_new: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0438 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 Component_new + LD HL,LWRD Component_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF PUSH HL @@ -2330,13 +2478,7 @@ Window_new: LD (IY+29),LOW(Window_add) LD (IY+30),HIGH(Window_add) LD (IY+31),BYTE3 Window_add - JP LWRD ?0418 -?0438: - LD E,(IX+2) - LD D,(IX+3) - LD A,BYTE3 Component_new - LD HL,LWRD Component_new - JP LWRD ?BANK_CALL_DIRECT_L08 + JP LWRD ?0422 Button_handler: CALL LWRD ?ENT_PARM_DIRECT_L09 PUSH IY @@ -2352,19 +2494,19 @@ Button_handler: LD A,3 XOR (IX+4) OR (IX+5) - JR NZ,?0169 + JR NZ,?0171 LD C,(IY+16) LD B,A LD L,(IX+10) LD H,(IX+11) SBC HL,BC - JR NZ,?0169 + JR NZ,?0171 LD A,(IY+10) AND 3 - JR Z,?0169 -?0167: + JR Z,?0171 +?0169: +?0168: ?0166: -?0164: LD L,(IX+10) LD H,(IX+11) PUSH HL @@ -2373,40 +2515,40 @@ Button_handler: LD L,(IY+17) LD H,(IY+18) LD C,23 - CALL LWRD ?0464 + CALL LWRD ?0480 POP HL BIT 4,(IY+10) - JR Z,?0169 -?0168: + JR Z,?0171 +?0170: LD C,(IY+16) LD B,0 PUSH BC - CALL LWRD ?0469 + CALL LWRD ?0482 POP HL -?0169: -?0165: +?0171: +?0167: LD HL,513 LD C,(IX+4) LD B,(IX+5) AND A SBC HL,BC - JR NZ,?0171 -?0170: + JR NZ,?0173 +?0172: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0465 + CALL LWRD ?0481 POP HL -?0171: +?0173: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0465: +?0481: LD E,(IY+17) LD D,(IY+18) LD L,(IY+17) LD H,(IY+18) LD BC,23 -?0464: +?0480: ADD HL,BC LD C,(HL) INC HL @@ -2417,7 +2559,7 @@ Button_handler: LD H,B LD BC,513 JP LWRD ?BANK_CALL_DIRECT_L08 -?0469: +?0482: LD E,(IY+17) LD D,(IY+18) LD L,(IY+17) @@ -2441,96 +2583,75 @@ Button_drawtext: LD HL,10 ADD HL,DE BIT 6,(HL) + JR Z,?0175 +?0174: + LD E,(IY+8) + LD D,(IY+9) + LD BC,2 + CALL LWRD ?SS_DIV_L02 + LD L,(IX+10) + LD H,(IX+11) + ADD HL,DE + PUSH HL LD E,(IY+32) LD D,(IY+33) - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC LD A,(HL) INC HL LD H,(HL) LD L,A - LD BC,5 - ADD HL,BC - LD C,(HL) - INC HL - LD B,(HL) - INC HL - LD A,(HL) - LD L,C - LD H,B - JR Z,?0173 -?0172: + CALL LWRD ?0453 + POP BC CALL LWRD ?BANK_CALL_DIRECT_L08 - ADD HL,HL - LD C,L - LD B,H - LD L,(IY+8) - LD H,(IY+9) - AND A - SBC HL,BC - CALL LWRD ?0480 - LD C,12 - ADD HL,BC - PUSH HL LD E,(IY+32) LD D,(IY+33) - LD HL,10 - LD BC,(global) - ADD HL,BC - LD A,(HL) - INC HL - LD H,(HL) - LD L,A - CALL LWRD ?0442 - POP BC - CALL LWRD ?0460 - LD E,(IY+8) - LD D,(IY+9) - CALL LWRD ?0481 - LD C,10 - ADD HL,BC - PUSH HL + CALL LWRD ?0452 + CALL LWRD ?0463 + ADD HL,HL + CALL LWRD ?0489 + PUSH BC LD E,(IY+34) LD D,(IY+35) - LD L,C - LD H,B - CALL LWRD ?0443 + CALL LWRD ?0454 POP BC CALL LWRD ?BANK_CALL_DIRECT_L08 LD E,(IY+34) LD D,(IY+35) - JR ?0350 -?0173: - CALL LWRD ?0444 - CALL LWRD ?0480 - LD C,13 - ADD HL,BC - PUSH HL + JR ?0360 +?0175: + CALL LWRD ?0463 + CALL LWRD ?0489 + PUSH BC LD E,(IY+32) LD D,(IY+33) - LD HL,10 - CALL LWRD ?0443 + CALL LWRD ?0454 POP BC CALL LWRD ?BANK_CALL_DIRECT_L08 LD E,(IY+32) LD D,(IY+33) -?0350: +?0360: LD A,BYTE3 Text LD HL,LWRD Text -?0424: +?0431: CALL LWRD ?BANK_CALL_DIRECT_L08 -?0174: +?0176: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0480: +?0489: + LD C,(IY+8) + LD B,(IY+9) + ADD HL,BC EX DE,HL -?0481: LD BC,2 CALL LWRD ?SS_DIV_L02 LD L,(IX+10) LD H,(IX+11) ADD HL,DE + LD C,L + LD B,H + INC BC RET Button_paint: PUSH BC @@ -2551,7 +2672,7 @@ Button_paint: LD (HL),A INC HL LD (HL),A - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC LD A,(HL) @@ -2571,21 +2692,21 @@ Button_paint: POP HL AND A SBC HL,BC - JR Z,?0176 -?0175: - CALL LWRD ?0473 -?0176: - BIT 0,(IX+10) - JP Z,?0178 + JR Z,?0178 ?0177: + CALL LWRD ?0449 +?0178: + BIT 0,(IX+10) + JP Z,?0180 +?0179: LD HL,0 ADD HL,SP PUSH HL - CALL LWRD ?0467 + CALL LWRD ?0478 POP HL LD HL,0 ADD HL,SP - CALL LWRD ?0457 + CALL LWRD ?0472 CALL LWRD ?BANK_CALL_DIRECT_L08 LD L,(IX+8) LD H,(IX+9) @@ -2604,44 +2725,44 @@ Button_paint: INC HL LD B,(HL) BIT 1,(IX+10) - JR Z,?0180 + JR Z,?0182 LD E,(IX+16) LD D,0 - JR ?0181 -?0180: + JR ?0183 +?0182: LD DE,0 -?0181: - CALL LWRD ?0471 +?0183: + CALL LWRD ?0484 POP HL POP HL POP HL LD A,(IX+10) AND 130 - JR Z,?0183 + JR Z,?0185 LD A,(IX+10) AND 130 XOR 130 - JR Z,?0183 -?0185: + JR Z,?0185 +?0187: +?0186: ?0184: -?0182: LD C,(IX+8) LD B,(IX+9) LD E,(IX+6) LD D,(IX+7) LD A,BYTE3 FillRectNC LD HL,LWRD FillRectNC - JR ?0353 -?0183: + JR ?0363 +?0185: LD C,(IX+8) LD B,(IX+9) LD E,(IX+6) LD D,(IX+7) LD A,BYTE3 DrawRectNC LD HL,LWRD DrawRectNC -?0353: +?0363: CALL LWRD ?BANK_CALL_DIRECT_L08 -?0186: +?0188: LD HL,0 ADD HL,SP LD C,(HL) @@ -2658,31 +2779,8 @@ Button_paint: LD HL,LWRD Button_drawtext CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0178: - POP HL - POP HL - POP IX - POP BC - JP LWRD ?BANK_FAST_LEAVE_L08 -?0457: - LD C,(HL) - INC HL - LD B,(HL) - INC HL -?0458: - LD E,(HL) - INC HL - LD D,(HL) - LD A,BYTE3 Move - LD HL,LWRD Move - CALL LWRD ?BANK_CALL_DIRECT_L08 - LD C,(IX+8) - LD B,(IX+9) - LD E,(IX+6) - LD D,(IX+7) - LD A,BYTE3 ClearRect - LD HL,LWRD ClearRect - RET +?0180: + JP LWRD ?0165 Button_add: CALL LWRD ?ENT_PARM_DIRECT_L09 JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -2696,7 +2794,11 @@ Button_new: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0438 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 Component_new + LD HL,LWRD Component_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF PUSH HL @@ -2717,7 +2819,7 @@ Button_new: LD (IY+29),LOW(Button_add) LD (IY+30),HIGH(Button_add) LD (IY+31),BYTE3 Button_add - JP LWRD ?0418 + JP LWRD ?0422 ToggleButton_handler: CALL LWRD ?ENT_PARM_DIRECT_L09 PUSH IY @@ -2733,19 +2835,19 @@ ToggleButton_handler: LD A,3 XOR (IX+4) OR (IX+5) - JR NZ,?0192 + JR NZ,?0194 LD C,(IY+16) LD B,A LD L,(IX+10) LD H,(IX+11) SBC HL,BC - JR NZ,?0192 + JR NZ,?0194 LD A,(IY+10) AND 3 - JR Z,?0192 -?0190: + JR Z,?0194 +?0192: +?0191: ?0189: -?0187: LD A,(IY+10) XOR 4 LD (IY+10),A @@ -2771,31 +2873,31 @@ ToggleButton_handler: LD HL,0 PUSH HL LD BC,259 - CALL LWRD ?0463 + CALL LWRD ?0476 POP HL BIT 4,(IY+10) - JR Z,?0192 -?0191: + JR Z,?0194 +?0193: LD C,(IY+16) LD B,0 PUSH BC - CALL LWRD ?0469 + CALL LWRD ?0482 POP HL -?0192: -?0188: +?0194: +?0190: LD HL,513 LD C,(IX+4) LD B,(IX+5) AND A SBC HL,BC - JR NZ,?0194 -?0193: + JR NZ,?0196 +?0195: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0465 + CALL LWRD ?0481 POP HL -?0194: +?0196: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 ToggleButton_paint: @@ -2817,7 +2919,7 @@ ToggleButton_paint: LD (HL),A INC HL LD (HL),A - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC LD A,(HL) @@ -2837,29 +2939,29 @@ ToggleButton_paint: POP HL AND A SBC HL,BC - JR Z,?0196 -?0195: - CALL LWRD ?0473 -?0196: - BIT 0,(IX+10) - JP Z,?0198 + JR Z,?0198 ?0197: + CALL LWRD ?0449 +?0198: + BIT 0,(IX+10) + JP Z,?0200 +?0199: LD HL,0 ADD HL,SP PUSH HL - CALL LWRD ?0467 + CALL LWRD ?0478 POP HL LD HL,0 ADD HL,SP - CALL LWRD ?0457 + CALL LWRD ?0472 CALL LWRD ?BANK_CALL_DIRECT_L08 BIT 1,(IX+10) - JR Z,?0200 + JR Z,?0202 BIT 2,(IX+10) - JR Z,?0200 -?0202: + JR Z,?0202 +?0204: +?0203: ?0201: -?0199: LD C,(IX+8) LD B,(IX+9) LD E,(IX+6) @@ -2883,8 +2985,8 @@ ToggleButton_paint: LD C,(HL) INC HL LD B,(HL) - JR ?0357 -?0200: + JR ?0367 +?0202: LD C,(IX+8) LD B,(IX+9) LD E,(IX+6) @@ -2909,19 +3011,19 @@ ToggleButton_paint: INC HL LD B,(HL) BIT 1,(IX+10) - JR Z,?0205 -?0357: + JR Z,?0207 +?0367: LD E,(IX+16) LD D,0 - JR ?0206 -?0205: + JR ?0208 +?0207: LD DE,0 -?0206: - CALL LWRD ?0471 +?0208: + CALL LWRD ?0484 POP HL POP HL POP HL -?0203: +?0205: LD HL,0 ADD HL,SP LD C,(HL) @@ -2938,8 +3040,8 @@ ToggleButton_paint: LD HL,LWRD Button_drawtext CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0198: - JP LWRD ?0178 +?0200: + JP LWRD ?0165 ToggleButton_new: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 @@ -2950,7 +3052,11 @@ ToggleButton_new: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0438 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 Component_new + LD HL,LWRD Component_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF PUSH HL @@ -2971,7 +3077,7 @@ ToggleButton_new: LD (IY+29),LOW(Button_add) LD (IY+30),HIGH(Button_add) LD (IY+31),BYTE3 Button_add - JP LWRD ?0418 + JP LWRD ?0422 Dialog_handler: CALL LWRD ?ENT_PARM_DIRECT_L09 PUSH IY @@ -2989,26 +3095,26 @@ Dialog_handler: LD B,(IX+5) AND A SBC HL,BC - JR NZ,?0208 + JR NZ,?0210 LD A,255 XOR (IX+10) OR (IX+11) - JR NZ,?0208 -?0210: + JR NZ,?0210 +?0212: +?0211: ?0209: -?0207: BIT 4,(IY+11) PUSH HL - JR Z,?0212 -?0211: + JR Z,?0214 +?0213: LD BC,261 - JR ?0358 -?0212: + JR ?0368 +?0214: LD BC,258 -?0358: - CALL LWRD ?0463 +?0368: + CALL LWRD ?0476 POP HL -?0213: +?0215: LD C,(IY+16) LD B,0 PUSH BC @@ -3028,32 +3134,32 @@ Dialog_handler: LD BC,769 CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0208: +?0210: LD HL,513 LD C,(IX+4) LD B,(IX+5) AND A SBC HL,BC - JR NZ,?0215 + JR NZ,?0217 LD A,254 XOR (IX+10) OR (IX+11) - JR NZ,?0215 -?0217: + JR NZ,?0217 +?0219: +?0218: ?0216: -?0214: BIT 4,(IY+11) PUSH HL - JR Z,?0219 -?0218: + JR Z,?0221 +?0220: LD BC,261 - JR ?0359 -?0219: + JR ?0369 +?0221: LD BC,258 -?0359: - CALL LWRD ?0463 +?0369: + CALL LWRD ?0476 POP HL -?0220: +?0222: LD C,(IY+16) LD B,0 PUSH BC @@ -3073,7 +3179,7 @@ Dialog_handler: LD BC,770 CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0215: +?0217: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 Dialog_new: @@ -3086,7 +3192,11 @@ Dialog_new: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0438 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 Component_new + LD HL,LWRD Component_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF PUSH HL @@ -3112,7 +3222,19 @@ Dialog_new: LD L,40 PUSH HL LD HL,65508 - CALL LWRD ?0439 + LD C,(IX+12) + LD B,(IX+13) + ADD HL,BC + LD C,L + LD B,H + LD HL,65488 + LD E,(IX+10) + LD D,(IX+11) + ADD HL,DE + EX DE,HL + LD A,BYTE3 Button_new + LD HL,LWRD Button_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF POP AF @@ -3122,13 +3244,13 @@ Dialog_new: ADD HL,BC PUSH HL LD DE,3 - CALL LWRD ?0450 + CALL LWRD ?0460 POP HL LD (HL),C INC HL LD (HL),B - LD BC,?0221 - CALL LWRD ?0456 + LD BC,?0223 + CALL LWRD ?0471 CALL LWRD ?BANK_CALL_DIRECT_L08 LD HL,254 PUSH HL @@ -3137,7 +3259,19 @@ Dialog_new: LD L,40 PUSH HL LD HL,65480 - CALL LWRD ?0439 + LD C,(IX+12) + LD B,(IX+13) + ADD HL,BC + LD C,L + LD B,H + LD HL,65488 + LD E,(IX+10) + LD D,(IX+11) + ADD HL,DE + EX DE,HL + LD A,BYTE3 Button_new + LD HL,LWRD Button_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF POP AF @@ -3147,31 +3281,16 @@ Dialog_new: ADD HL,BC PUSH HL LD DE,7 - CALL LWRD ?0450 + CALL LWRD ?0460 POP HL LD (HL),C INC HL LD (HL),B - LD BC,?0222 - CALL LWRD ?0456 + LD BC,?0224 + CALL LWRD ?0471 CALL LWRD ?BANK_CALL_DIRECT_L08 - JP LWRD ?0418 -?0439: - LD C,(IX+12) - LD B,(IX+13) - ADD HL,BC - LD C,L - LD B,H - LD HL,65488 - LD E,(IX+10) - LD D,(IX+11) - ADD HL,DE - EX DE,HL -?0440: - LD A,BYTE3 Button_new - LD HL,LWRD Button_new - JP LWRD ?BANK_CALL_DIRECT_L08 -?0456: + JP LWRD ?0422 +?0471: LD E,(IX-2) LD D,(IX-1) LD A,BYTE3 Component_setlabel @@ -3202,12 +3321,12 @@ Display_handler: LD B,(IX+5) AND A SBC HL,BC - JR NZ,?0224 + JR NZ,?0226 BIT 3,(IY+10) - JR Z,?0224 -?0226: + JR Z,?0226 +?0228: +?0227: ?0225: -?0223: LD A,8 XOR (IX+10) OR (IX+11) @@ -3215,38 +3334,38 @@ Display_handler: LD D,(IY+33) LD A,BYTE3 strlen LD HL,LWRD strlen - JR NZ,?0228 -?0227: - CALL LWRD ?0448 - JR Z,?0231 + JR NZ,?0230 ?0229: - CALL LWRD ?0445 + CALL LWRD ?0458 + JR Z,?0233 +?0231: + CALL LWRD ?0455 DEC HL LD (HL),0 +?0232: + JR ?0233 ?0230: - JR ?0231 -?0228: - CALL LWRD ?0446 + CALL LWRD ?0456 INC HL LD (HL),0 - CALL LWRD ?0445 + CALL LWRD ?0455 LD B,(IX+10) LD (HL),B -?0231: +?0233: LD HL,0 PUSH HL LD BC,259 - CALL LWRD ?0463 + CALL LWRD ?0476 POP HL -?0224: +?0226: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0445: +?0455: LD E,(IY+32) LD D,(IY+33) LD A,BYTE3 strlen LD HL,LWRD strlen -?0446: +?0456: CALL LWRD ?BANK_CALL_DIRECT_L08 LD C,(IY+32) LD B,(IY+33) @@ -3269,7 +3388,7 @@ Display_paint: LD (HL),A INC HL LD (HL),A - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC LD A,(HL) @@ -3289,19 +3408,19 @@ Display_paint: POP HL AND A SBC HL,BC - JR Z,?0233 -?0232: - CALL LWRD ?0473 -?0233: - BIT 0,(IX+10) - JP Z,?0248 + JR Z,?0235 ?0234: + CALL LWRD ?0449 +?0235: + BIT 0,(IX+10) + JP Z,?0250 +?0236: LD HL,2 ADD HL,SP PUSH HL DEC HL DEC HL - CALL LWRD ?0468 + CALL LWRD ?0479 POP HL LD HL,2 ADD HL,SP @@ -3311,7 +3430,7 @@ Display_paint: DEC HL DEC HL DEC HL - CALL LWRD ?0458 + CALL LWRD ?0473 CALL LWRD ?BANK_CALL_DIRECT_L08 LD L,(IX+8) LD H,(IX+9) @@ -3332,14 +3451,14 @@ Display_paint: INC HL LD B,(HL) BIT 1,(IX+10) - JR Z,?0237 + JR Z,?0239 LD E,(IX+16) LD D,0 - JR ?0238 -?0237: + JR ?0240 +?0239: LD DE,0 -?0238: - CALL LWRD ?0471 +?0240: + CALL LWRD ?0484 POP HL POP HL POP HL @@ -3348,40 +3467,21 @@ Display_paint: LD B,(IX+9) LD E,(IX+6) LD D,(IX+7) - JR NZ,?0240 -?0239: + JR NZ,?0242 +?0241: LD A,BYTE3 FillRectNC LD HL,LWRD FillRectNC - JR ?0364 -?0240: + JR ?0374 +?0242: LD A,BYTE3 DrawRectNC LD HL,LWRD DrawRectNC -?0364: - CALL LWRD ?BANK_CALL_DIRECT_L08 -?0241: - LD E,(IX+32) - LD D,(IX+33) - LD HL,10 - LD BC,(global) - ADD HL,BC - LD B,(HL) - INC HL - LD H,(HL) - LD L,B - LD BC,5 +?0374: + CALL LWRD ?0470 +?0243: + CALL LWRD ?0462 + LD C,(IX+8) + LD B,(IX+9) ADD HL,BC - LD C,(HL) - INC HL - LD B,(HL) - INC HL - LD A,(HL) - LD L,C - LD H,B - CALL LWRD ?0449 - LD L,(IX+8) - LD H,(IX+9) - AND A - SBC HL,BC EX DE,HL LD BC,2 CALL LWRD ?SS_DIV_L02 @@ -3393,8 +3493,6 @@ Display_paint: LD H,(HL) LD L,B ADD HL,DE - LD BC,7 - ADD HL,BC LD C,L LD B,H LD HL,0 @@ -3408,30 +3506,30 @@ Display_paint: LD HL,LWRD Move CALL LWRD ?BANK_CALL_DIRECT_L08 BIT 0,(IX+11) - JR Z,?0243 -?0242: + JR Z,?0245 +?0244: LD IY,0 -?0245: +?0247: LD E,(IX+32) LD D,(IX+33) LD A,BYTE3 strlen LD HL,LWRD strlen - CALL LWRD ?0449 + CALL LWRD ?0459 PUSH IY POP HL AND A SBC HL,BC LD HL,6 - JR NC,?0244 -?0246: + JR NC,?0246 +?0248: ADD HL,SP PUSH IY POP BC ADD HL,BC LD (HL),42 INC IY - JR ?0245 -?0244: + JR ?0247 +?0246: ADD HL,SP PUSH IY POP BC @@ -3440,20 +3538,18 @@ Display_paint: LD HL,6 ADD HL,SP EX DE,HL - JR ?0365 -?0243: + JR ?0375 +?0245: LD E,(IX+32) LD D,(IX+33) -?0365: - LD A,BYTE3 Text - LD HL,LWRD Text - CALL LWRD ?BANK_CALL_DIRECT_L08 -?0248: -?0235: +?0375: + CALL LWRD ?0452 +?0250: +?0237: LD HL,72 ADD HL,SP LD SP,HL - JP LWRD ?0411 + JP LWRD ?0415 Display_new: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 @@ -3469,7 +3565,9 @@ Display_new: PUSH HL LD E,(IX+2) LD D,(IX+3) - CALL LWRD ?0440 + LD A,BYTE3 Button_new + LD HL,LWRD Button_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF POP AF @@ -3478,7 +3576,7 @@ Display_new: LD BC,10 ADD HL,BC SET 3,(HL) - LD BC,?0249 + LD BC,?0251 PUSH IY POP DE LD A,BYTE3 Component_setlabel @@ -3490,7 +3588,7 @@ Display_new: LD (IY+23),LOW(Display_handler) LD (IY+24),HIGH(Display_handler) LD (IY+25),BYTE3 Display_handler - JP LWRD ?0418 + JP LWRD ?0422 Label_handler: CALL LWRD ?ENT_PARM_DIRECT_L09 JP LWRD ?BANK_LEAVE_DIRECT_L08 @@ -3513,7 +3611,7 @@ Label_paint: LD (HL),A INC HL LD (HL),A - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC LD A,(HL) @@ -3533,17 +3631,17 @@ Label_paint: POP HL AND A SBC HL,BC - JR Z,?0251 -?0250: - CALL LWRD ?0473 -?0251: - BIT 0,(IX+10) JR Z,?0253 ?0252: + CALL LWRD ?0449 +?0253: + BIT 0,(IX+10) + JR Z,?0255 +?0254: LD HL,0 ADD HL,SP PUSH HL - CALL LWRD ?0467 + CALL LWRD ?0478 POP HL LD HL,0 ADD HL,SP @@ -3561,8 +3659,8 @@ Label_paint: LD HL,LWRD Button_drawtext CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0253: - JP LWRD ?0178 +?0255: + JP LWRD ?0165 Label_new: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 @@ -3573,7 +3671,11 @@ Label_new: LD L,(IX+10) LD H,(IX+11) PUSH HL - CALL LWRD ?0438 + LD E,(IX+2) + LD D,(IX+3) + LD A,BYTE3 Component_new + LD HL,LWRD Component_new + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF PUSH HL @@ -3596,7 +3698,7 @@ Label_new: LD (IY+29),LOW(Button_add) LD (IY+30),HIGH(Button_add) LD (IY+31),BYTE3 Button_add - JP LWRD ?0418 + JP LWRD ?0422 rootWindow_handler: CALL LWRD ?ENT_AUTO_DIRECT_L09 DEFW 0 @@ -3618,23 +3720,21 @@ screenbuilder: LD HL,0 PUSH HL PUSH BC - LD A,BYTE3 open - LD HL,LWRD open - CALL LWRD ?BANK_CALL_DIRECT_L08 + CALL LWRD ?0444 POP AF POP AF LD (IX-44),L LD (IX-43),H - LD (IX-16),43 + LD (IX-16),6 LD (IX-15),0 - LD (IX-14),26 + LD (IX-14),5 LD (IX-13),0 -?0256: +?0258: LD (IX-12),0 LD A,(IX-40) CP 115 - JR NZ,?0258 -?0257: + JR NZ,?0260 +?0259: LD L,(IX-39) LD H,(IX-38) LD (IX-16),L @@ -3643,36 +3743,43 @@ screenbuilder: LD H,(IX-36) LD (IX-14),L LD (IX-13),H -?0258: +?0260: LD A,(IX-40) CP 66 - JR Z,?0261 + JR Z,?0263 LD A,(IX-40) CP 77 - JR NZ,?0260 + JR NZ,?0262 +?0263: +?0264: ?0261: -?0262: -?0259: LD C,(IX-35) LD B,0 PUSH BC - CALL LWRD ?0482 + CALL LWRD ?0490 PUSH DE - LD C,(IX-37) - LD E,(IX-16) - LD D,(IX-15) - CALL LWRD ?0483 + CALL LWRD ?0491 PUSH DE - LD C,(IX-38) - LD E,(IX-14) - LD D,(IX-13) - CALL LWRD ?S_MUL_L02 + LD L,(IX-37) + LD H,0 + LD B,H + LD C,(IX-39) + ADD HL,BC + LD C,L + LD B,H + LD DE,259 + CALL LWRD ?0492 + EX DE,HL + POP DE + AND A + SBC HL,DE + DEC HL + DEC HL + DEC HL + PUSH HL + CALL LWRD ?0493 PUSH DE - LD E,(IX-39) - LD D,B - LD C,(IX-16) - LD B,(IX-15) - CALL LWRD ?S_MUL_L02 + CALL LWRD ?0491 LD A,BYTE3 Button_new LD HL,LWRD Button_new POP BC @@ -3684,36 +3791,43 @@ screenbuilder: POP IY LD A,(IX-40) CP 77 - JR NZ,?0264 -?0263: + JR NZ,?0266 +?0265: SET 6,(IY+10) -?0264: +?0266: LD (IX-12),1 -?0260: +?0262: LD A,(IX-40) CP 84 - JR NZ,?0266 -?0265: + JR NZ,?0268 +?0267: LD C,(IX-35) LD B,0 PUSH BC - CALL LWRD ?0482 + CALL LWRD ?0490 PUSH DE - LD C,(IX-37) - LD E,(IX-16) - LD D,(IX-15) - CALL LWRD ?0483 + CALL LWRD ?0491 PUSH DE - LD C,(IX-38) - LD E,(IX-14) - LD D,(IX-13) - CALL LWRD ?S_MUL_L02 + LD L,(IX-37) + LD H,0 + LD B,H + LD C,(IX-39) + ADD HL,BC + LD C,L + LD B,H + LD DE,259 + CALL LWRD ?0492 + EX DE,HL + POP DE + AND A + SBC HL,DE + DEC HL + DEC HL + DEC HL + PUSH HL + CALL LWRD ?0493 PUSH DE - LD E,(IX-39) - LD D,B - LD C,(IX-16) - LD B,(IX-15) - CALL LWRD ?S_MUL_L02 + CALL LWRD ?0491 LD A,BYTE3 ToggleButton_new LD HL,LWRD ToggleButton_new POP BC @@ -3724,31 +3838,38 @@ screenbuilder: PUSH HL POP IY LD (IX-12),1 -?0266: +?0268: LD A,(IX-40) CP 68 - JR NZ,?0268 -?0267: + JR NZ,?0270 +?0269: LD C,(IX-35) LD B,0 PUSH BC - CALL LWRD ?0482 + CALL LWRD ?0490 PUSH DE - LD C,(IX-37) - LD E,(IX-16) - LD D,(IX-15) - CALL LWRD ?0483 + CALL LWRD ?0491 PUSH DE - LD C,(IX-38) - LD E,(IX-14) - LD D,(IX-13) - CALL LWRD ?S_MUL_L02 + LD L,(IX-37) + LD H,0 + LD B,H + LD C,(IX-39) + ADD HL,BC + LD C,L + LD B,H + LD DE,259 + CALL LWRD ?0492 + EX DE,HL + POP DE + AND A + SBC HL,DE + DEC HL + DEC HL + DEC HL + PUSH HL + CALL LWRD ?0493 PUSH DE - LD E,(IX-39) - LD D,B - LD C,(IX-16) - LD B,(IX-15) - CALL LWRD ?S_MUL_L02 + CALL LWRD ?0491 LD A,BYTE3 Display_new LD HL,LWRD Display_new POP BC @@ -3759,33 +3880,40 @@ screenbuilder: PUSH HL POP IY LD (IX-12),1 -?0268: +?0270: LD A,(IX-40) CP 76 - JR NZ,?0270 -?0269: + JR NZ,?0272 +?0271: LD HL,12 ADD HL,SP LD BC,18 ADD HL,BC PUSH HL - CALL LWRD ?0482 + CALL LWRD ?0490 PUSH DE - LD C,(IX-37) - LD E,(IX-16) - LD D,(IX-15) - CALL LWRD ?0483 + CALL LWRD ?0491 PUSH DE - LD C,(IX-38) - LD E,(IX-14) - LD D,(IX-13) - CALL LWRD ?S_MUL_L02 + LD L,(IX-37) + LD H,0 + LD B,H + LD C,(IX-39) + ADD HL,BC + LD C,L + LD B,H + LD DE,259 + CALL LWRD ?0492 + EX DE,HL + POP DE + AND A + SBC HL,DE + DEC HL + DEC HL + DEC HL + PUSH HL + CALL LWRD ?0493 PUSH DE - LD E,(IX-39) - LD D,B - LD C,(IX-16) - LD B,(IX-15) - CALL LWRD ?S_MUL_L02 + CALL LWRD ?0491 LD A,BYTE3 Label_new LD HL,LWRD Label_new POP BC @@ -3796,11 +3924,11 @@ screenbuilder: PUSH HL POP IY LD (IX-12),1 -?0270: +?0272: LD A,(IX-40) CP 65 - JR NZ,?0272 -?0271: + JR NZ,?0274 +?0273: LD HL,38 LD C,(IX+2) LD B,(IX+3) @@ -3839,11 +3967,11 @@ screenbuilder: LD A,BYTE3 root_actionhandler LD HL,LWRD root_actionhandler CALL LWRD ?BANK_CALL_DIRECT_L08 -?0272: +?0274: LD A,(IX-40) CP 83 - JR NZ,?0274 -?0273: + JR NZ,?0276 +?0275: LD HL,12 ADD HL,SP LD C,L @@ -3859,7 +3987,7 @@ screenbuilder: ADD HL,BC PUSH HL LD DE,4 - CALL LWRD ?0454 + CALL LWRD ?0466 EX DE,HL POP HL LD (HL),E @@ -3882,7 +4010,7 @@ screenbuilder: INC HL INC HL PUSH HL - LD HL,8 + LD HL,12 LD BC,(global) ADD HL,BC LD E,(HL) @@ -3892,7 +4020,7 @@ screenbuilder: LD (HL),E INC HL LD (HL),D - LD HL,6 + LD HL,10 LD BC,(global) ADD HL,BC LD B,(HL) @@ -3907,20 +4035,20 @@ screenbuilder: INC HL LD (HL),B LD (IX-12),0 -?0274: +?0276: XOR A OR (IX-12) - JP Z,?0276 -?0275: + JP Z,?0278 +?0277: LD A,(IX-34) OR (IX-33) - JR Z,?0278 -?0277: + JR Z,?0280 +?0279: SET 5,(IY+10) LD (IY+36),11 LD (IY+37),0 LD DE,11 - CALL LWRD ?0454 + CALL LWRD ?0466 LD (IY+38),L LD (IY+39),H LD L,(IY+38) @@ -3971,16 +4099,16 @@ screenbuilder: LD (HL),C INC HL LD (HL),B -?0278: +?0280: LD A,(IX-26) OR (IX-25) - JR Z,?0280 -?0279: + JR Z,?0282 +?0281: LD L,(IX-26) LD (IY+10),L LD H,(IX-25) LD (IY+11),H -?0280: +?0282: LD L,(IX-24) LD (IY+14),L LD H,(IX-23) @@ -3992,19 +4120,19 @@ screenbuilder: LD (IY+33),A LD A,(IY+32) OR (IY+33) - JR NZ,?0282 -?0281: + JR NZ,?0284 +?0283: LD DE,20 - CALL LWRD ?0454 + CALL LWRD ?0466 LD (IY+32),L LD (IY+33),H LD L,(IY+32) LD H,(IY+33) LD (HL),0 - JR ?0283 -?0282: + JR ?0285 +?0284: SET 6,(IY+11) -?0283: +?0285: LD A,(IX-21) LD L,0 LD C,L @@ -4012,8 +4140,8 @@ screenbuilder: LD B,A LD H,16 SBC HL,BC - JR NC,?0285 -?0284: + JR NC,?0287 +?0286: LD L,(IX-22) LD A,(IX-21) AND 15 @@ -4021,7 +4149,7 @@ screenbuilder: INC HL LD (IY+34),L LD (IY+35),H -?0285: +?0287: PUSH IY LD E,(IX+2) LD C,E @@ -4038,7 +4166,7 @@ screenbuilder: LD H,B POP BC CALL LWRD ?BANK_CALL_DIRECT_L08 -?0276: +?0278: LD HL,20 PUSH HL LD L,14 @@ -4047,18 +4175,18 @@ screenbuilder: LD B,H LD E,(IX-44) LD D,(IX-43) - CALL LWRD ?0441 + LD A,BYTE3 _read + LD HL,LWRD _read + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF LD A,20 XOR L OR H - JP Z,?0256 -?0254: + JP Z,?0258 +?0256: LD E,(IX-44) LD D,(IX-43) - LD A,BYTE3 close - LD HL,LWRD close - CALL LWRD ?BANK_CALL_DIRECT_L08 + CALL LWRD ?0469 LD E,(IX+2) LD D,(IX+3) LD A,BYTE3 Component_linkstringtable @@ -4077,43 +4205,51 @@ screenbuilder: LD A,(HL) LD L,C LD H,B - JP LWRD ?0424 -?0441: - LD A,BYTE3 _read - LD HL,LWRD _read - JP LWRD ?BANK_CALL_DIRECT_L08 -?0454: + JP LWRD ?0431 +?0466: LD A,BYTE3 malloc LD HL,LWRD malloc JP LWRD ?BANK_CALL_DIRECT_L08 -?0482: +?0490: LD C,(IX-36) - LD E,(IX-14) - LD D,(IX-13) -?0483: + LD DE,131 CALL LWRD ?S_MUL_L02 + LD C,(IX-14) + LD B,(IX-13) + CALL LWRD ?SS_DIV_L02 DEC DE DEC DE DEC DE RET +?0491: + LD E,(IX-39) + LD D,0 + LD BC,259 +?0492: + CALL LWRD ?S_MUL_L02 + LD C,(IX-16) + LD B,(IX-15) + JP LWRD ?SS_DIV_L02 +?0493: + LD E,(IX-38) + LD D,0 + LD BC,131 + CALL LWRD ?S_MUL_L02 + LD C,(IX-14) + LD B,(IX-13) + JP LWRD ?SS_DIV_L02 root_actionhandler: CALL LWRD ?ENT_AUTO_DIRECT_L09 - DEFW 65514 + DEFW 65528 PUSH IY LD L,(IX+2) LD H,(IX+3) PUSH HL POP IY - LD HL,6 - ADD HL,SP - EX DE,HL - LD HL,?0286 - LD BC,14 - LDIR LD L,(IY+38) - LD (IX-22),L + LD (IX-8),L LD H,(IY+39) - LD (IX-21),H + LD (IX-7),H INC HL INC HL INC HL @@ -4121,15 +4257,17 @@ root_actionhandler: XOR (HL) INC HL OR (HL) - JR NZ,?0288 -?0287: - PUSH BC - LD BC,1025 - CALL LWRD ?0463 - POP HL + JR NZ,?0289 ?0288: - LD L,(IX-22) - LD H,(IX-21) + LD L,A + LD H,A + PUSH HL + LD BC,1281 + CALL LWRD ?0476 + POP HL +?0289: + LD L,(IX-8) + LD H,(IX-7) INC HL INC HL INC HL @@ -4141,10 +4279,36 @@ root_actionhandler: LD A,2 XOR L OR H - JP NZ,?0290 -?0289: - LD L,A + JP NZ,?0291 +?0290: + LD HL,5 + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD D,(HL) + INC HL + LD A,(HL) + LD L,D + AND 15 LD H,A + ADD HL,HL + PUSH HL + LD HL,12 + LD DE,(global) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + POP HL + ADD HL,DE + DEC HL + DEC HL + LD D,(HL) + LD (IX-4),D + INC HL + LD H,(HL) + LD (IX-3),H + LD HL,0 PUSH HL PUSH HL LD BC,1 @@ -4179,32 +4343,32 @@ root_actionhandler: CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF POP AF - LD (IX-20),L - LD (IX-19),H + LD (IX-6),L + LD (IX-5),H LD BC,10 ADD HL,BC LD (HL),3 INC HL LD (HL),B - LD L,(IX-22) - LD H,(IX-21) + LD L,(IX-8) + LD H,(IX-7) INC HL INC HL INC HL BIT 0,(HL) - JR Z,?0292 -?0291: + JR Z,?0293 +?0292: LD L,C LD H,B - LD C,(IX-20) - LD B,(IX-19) + LD C,(IX-6) + LD B,(IX-5) ADD HL,BC INC HL SET 5,(HL) -?0292: +?0293: LD HL,23 - LD C,(IX-20) - LD B,(IX-19) + LD C,(IX-6) + LD B,(IX-5) ADD HL,BC LD (HL),LOW(rootWindow_handler) INC HL @@ -4218,69 +4382,15 @@ root_actionhandler: LD (HL),HIGH(Root_paint) INC HL LD (HL),BYTE3 Root_paint - LD HL,7 - LD E,(IX-22) - LD D,(IX-21) - ADD HL,DE - LD E,(HL) - EX DE,HL - LD (IX-13),L - LD HL,7 - LD C,(IX-22) - LD B,(IX-21) - ADD HL,BC - LD E,(HL) - INC HL - LD D,(HL) - INC HL - LD C,(HL) - INC HL - LD B,(HL) - EX DE,HL - LD A,8 - CALL LWRD ?SL_RSH_L03 - LD (IX-12),L - LD HL,7 - LD C,(IX-22) - LD B,(IX-21) - ADD HL,BC - LD E,(HL) - INC HL - LD D,(HL) - INC HL - LD C,(HL) - INC HL - LD B,(HL) - EX DE,HL - LD A,16 - CALL LWRD ?SL_RSH_L03 - LD (IX-11),L - LD HL,7 - LD C,(IX-22) - LD B,(IX-21) - ADD HL,BC - LD E,(HL) - INC HL - LD D,(HL) - INC HL - LD C,(HL) - INC HL - LD B,(HL) - EX DE,HL - LD A,24 - CALL LWRD ?SL_RSH_L03 - LD (IX-10),L - LD HL,6 - ADD HL,SP - LD C,L - LD B,H - LD E,(IX-20) - LD D,(IX-19) + LD C,(IX-4) + LD B,(IX-3) + LD E,(IX-6) + LD D,(IX-5) LD A,BYTE3 screenbuilder LD HL,LWRD screenbuilder CALL LWRD ?BANK_CALL_DIRECT_L08 - LD C,(IX-20) - LD B,(IX-19) + LD C,(IX-6) + LD B,(IX-5) PUSH BC LD E,(IY+17) LD D,(IY+18) @@ -4297,9 +4407,9 @@ root_actionhandler: LD H,B POP BC CALL LWRD ?BANK_CALL_DIRECT_L08 -?0290: - LD L,(IX-22) - LD H,(IX-21) +?0291: + LD L,(IX-8) + LD H,(IX-7) INC HL INC HL INC HL @@ -4307,8 +4417,8 @@ root_actionhandler: XOR (HL) INC HL OR (HL) - JP NZ,?0294 -?0293: + JP NZ,?0295 +?0294: LD HL,1 PUSH HL LD L,(IY+17) @@ -4342,16 +4452,16 @@ root_actionhandler: POP AF POP AF POP AF - LD (IX-20),L - LD (IX-19),H + LD (IX-6),L + LD (IX-5),H LD BC,10 ADD HL,BC LD (HL),3 INC HL LD (HL),16 LD HL,14 - LD C,(IX-20) - LD B,(IX-19) + LD C,(IX-6) + LD B,(IX-5) ADD HL,BC LD (HL),48 INC HL @@ -4359,10 +4469,10 @@ root_actionhandler: XOR A LD (IX-2),A LD (IX-1),A -?0296: +?0297: LD HL,5 - LD C,(IX-22) - LD B,(IX-21) + LD C,(IX-8) + LD B,(IX-7) ADD HL,BC LD E,(HL) INC HL @@ -4374,18 +4484,18 @@ root_actionhandler: LD L,(IX-2) LD H,(IX-1) CALL LWRD ?SS_CMP_L02 - JR NC,?0367 + JR NC,?0377 LD A,1 - JR ?0368 -?0367: + JR ?0378 +?0377: XOR A -?0368: +?0378: AND 15 - JP Z,?0295 -?0297: + JP Z,?0296 +?0298: LD HL,5 - LD C,(IX-22) - LD B,(IX-21) + LD C,(IX-8) + LD B,(IX-7) ADD HL,BC LD B,(HL) INC HL @@ -4398,7 +4508,7 @@ root_actionhandler: ADD HL,BC ADD HL,HL PUSH HL - LD HL,8 + LD HL,12 LD DE,(global) ADD HL,DE LD E,(HL) @@ -4415,8 +4525,8 @@ root_actionhandler: LD HL,16 PUSH HL LD L,6 - LD E,(IX-20) - LD D,(IX-19) + LD E,(IX-6) + LD D,(IX-5) ADD HL,DE LD L,(HL) LD H,0 @@ -4452,9 +4562,9 @@ root_actionhandler: LD C,(IX-4) LD B,(IX-3) PUSH BC - LD E,(IX-20) + LD E,(IX-6) LD C,E - LD D,(IX-19) + LD D,(IX-5) LD B,D LD HL,29 ADD HL,BC @@ -4468,30 +4578,30 @@ root_actionhandler: POP BC CALL LWRD ?BANK_CALL_DIRECT_L08 INC (IX-2) - JR NZ,?0369 + JR NZ,?0379 INC (IX-1) -?0369: - JP LWRD ?0296 -?0295: - LD BC,?0299 - LD E,(IX-20) - LD D,(IX-19) +?0379: + JP LWRD ?0297 +?0296: + LD BC,?0300 + LD E,(IX-6) + LD D,(IX-5) LD A,BYTE3 Component_setlabel LD HL,LWRD Component_setlabel CALL LWRD ?BANK_CALL_DIRECT_L08 LD BC,255 - CALL LWRD ?0476 + CALL LWRD ?0485 LD BC,14 ADD HL,BC LD (HL),48 INC HL LD (HL),B LD C,254 - CALL LWRD ?0476 + CALL LWRD ?0485 EX DE,HL - CALL LWRD ?0453 - LD C,(IX-20) - LD B,(IX-19) + CALL LWRD ?0467 + LD C,(IX-6) + LD B,(IX-5) PUSH BC LD E,(IY+17) LD D,(IY+18) @@ -4526,8 +4636,61 @@ root_actionhandler: LD BC,259 CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0294: - LD HL,16 +?0295: + LD L,(IX-8) + LD H,(IX-7) + INC HL + INC HL + INC HL + LD A,5 + XOR (HL) + INC HL + OR (HL) + JR NZ,?0302 +?0301: + LD HL,5 + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + LD HL,7 + ADD HL,BC + LD C,L + LD B,H + LD HL,(global) + INC HL + INC HL + CALL LWRD ?0445 + POP AF +?0302: + LD L,(IX-8) + LD H,(IX-7) + INC HL + INC HL + INC HL + LD A,6 + XOR (HL) + INC HL + OR (HL) + JR NZ,?0304 +?0303: + LD HL,5 + LD C,(IX-8) + LD B,(IX-7) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + LD HL,7 + ADD HL,BC + CALL LWRD ?0446 + POP AF +?0304: + LD HL,24 LD BC,(global) ADD HL,BC LD A,(HL) @@ -4535,19 +4698,19 @@ root_actionhandler: OR (HL) INC HL OR (HL) - JR Z,?0301 -?0300: + JR Z,?0306 +?0305: PUSH IY POP DE - LD HL,16 + LD HL,24 LD BC,(global) - CALL LWRD ?0475 -?0301: + CALL LWRD ?0451 +?0306: POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0476: - LD E,(IX-20) - LD D,(IX-19) +?0485: + LD E,(IX-6) + LD D,(IX-5) LD A,BYTE3 Component_find LD HL,LWRD Component_find JP LWRD ?BANK_CALL_DIRECT_L08 @@ -4573,35 +4736,37 @@ read_stringtable: LD H,A ADD HL,HL EX DE,HL - CALL LWRD ?0454 + CALL LWRD ?0466 LD (IX-6),L LD (IX-5),H LD E,C LD D,B - CALL LWRD ?0447 + CALL LWRD ?0457 PUSH BC LD C,L LD B,H LD E,(IX+2) LD D,(IX+3) - CALL LWRD ?0441 + LD A,BYTE3 _read + LD HL,LWRD _read + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF LD DE,0 XOR A LD (IX-8),A LD (IX-7),A -?0303: +?0308: LD C,(IX-4) LD B,(IX-3) LD L,E LD H,D CALL LWRD ?SS_CMP_L02 - JR NC,?0302 - CALL LWRD ?0479 - JR NC,?0302 -?0306: -?0305: -?0304: + JR NC,?0307 + CALL LWRD ?0488 + JR NC,?0307 +?0311: +?0310: +?0309: INC HL LD (IX-8),L LD (IX-7),H @@ -4620,17 +4785,17 @@ read_stringtable: LD (HL),C INC HL LD (HL),B -?0308: +?0313: PUSH IY POP HL ADD HL,DE LD A,(HL) OR A - JR Z,?0307 -?0309: + JR Z,?0312 +?0314: INC DE - JR ?0308 -?0307: + JR ?0313 +?0312: LD L,E LD H,D INC DE @@ -4638,11 +4803,11 @@ read_stringtable: POP BC ADD HL,BC LD (HL),A - JR ?0303 -?0302: - CALL LWRD ?0479 - JR NC,?0311 -?0310: + JR ?0308 +?0307: + CALL LWRD ?0488 + JR NC,?0316 +?0315: ADD HL,HL LD C,(IX-6) LD B,(IX-5) @@ -4657,8 +4822,8 @@ read_stringtable: LD (HL),C INC HL LD (HL),B -?0311: - LD HL,6 +?0316: + LD HL,10 LD BC,(global) ADD HL,BC PUSH IY @@ -4666,7 +4831,7 @@ read_stringtable: LD (HL),C INC HL LD (HL),B - LD HL,8 + LD HL,12 LD BC,(global) ADD HL,BC LD C,(IX-6) @@ -4676,7 +4841,7 @@ read_stringtable: LD (HL),B POP IY JP LWRD ?BANK_LEAVE_DIRECT_L08 -?0479: +?0488: LD C,(IX-2) LD B,(IX-1) LD L,(IX-8) @@ -4688,44 +4853,44 @@ gui_globals: GUIinit: PUSH BC PUSH DE - LD DE,19 - CALL LWRD ?0454 + LD DE,27 + CALL LWRD ?0466 LD (global),HL XOR A LD (HL),A INC HL LD (HL),A - LD HL,4 + LD HL,8 LD BC,(global) ADD HL,BC LD (HL),A INC HL LD (HL),A - LD HL,10 + LD HL,18 LD BC,(global) ADD HL,BC LD (HL),A INC HL LD (HL),A - LD HL,12 + LD HL,20 LD BC,(global) ADD HL,BC LD (HL),A INC HL LD (HL),A - LD HL,8 + LD HL,12 LD BC,(global) ADD HL,BC LD (HL),A INC HL LD (HL),A - LD HL,6 + LD HL,10 LD BC,(global) ADD HL,BC LD (HL),A INC HL LD (HL),A - LD HL,16 + LD HL,24 LD BC,(global) ADD HL,BC LD (HL),A @@ -4748,7 +4913,7 @@ GUIinit: LD HL,LWRD stringwidth0 PUSH HL LD DE,48 - CALL LWRD ?0484 + CALL LWRD ?0494 LD HL,12 ADD HL,SP LD SP,HL @@ -4764,7 +4929,7 @@ GUIinit: LD HL,LWRD stringwidth1 PUSH HL LD DE,49 - CALL LWRD ?0484 + CALL LWRD ?0494 LD HL,12 ADD HL,SP LD SP,HL @@ -4780,11 +4945,11 @@ GUIinit: LD HL,LWRD stringwidth2 PUSH HL LD DE,50 - CALL LWRD ?0484 + CALL LWRD ?0494 LD HL,12 ADD HL,SP LD SP,HL - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC PUSH HL @@ -4805,7 +4970,7 @@ GUIinit: LD (HL),C INC HL LD (HL),B - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC LD D,(HL) @@ -4817,7 +4982,7 @@ GUIinit: LD (HL),1 INC HL LD (HL),D - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC LD D,(HL) @@ -4831,7 +4996,7 @@ GUIinit: LD (HL),HIGH(rootWindow_handler) INC HL LD (HL),BYTE3 rootWindow_handler - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC LD B,(HL) @@ -4848,20 +5013,20 @@ GUIinit: POP DE POP BC JP LWRD ?BANK_FAST_LEAVE_L08 -?0484: +?0494: LD A,BYTE3 loadFont LD HL,LWRD loadFont JP LWRD ?BANK_CALL_DIRECT_L08 GUIunit: PUSH BC PUSH DE - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC LD E,(HL) INC HL LD D,(HL) - CALL LWRD ?0453 + CALL LWRD ?0467 LD A,BYTE3 ClearScreen LD HL,LWRD ClearScreen CALL LWRD ?BANK_CALL_DIRECT_L08 @@ -4872,11 +5037,16 @@ GUIunit: POP BC JP LWRD ?BANK_FAST_LEAVE_L08 GUIgo: - CALL LWRD ?ENT_AUTO_DIRECT_L09 - DEFW 65534 - LD C,(IX+2) - LD B,(IX+3) - LD HL,14 + PUSH BC + PUSH IX + PUSH DE + PUSH AF + PUSH AF + PUSH AF + PUSH AF + LD C,E + LD B,D + LD HL,22 LD DE,(global) ADD HL,DE LD E,(HL) @@ -4885,57 +5055,124 @@ GUIgo: LD A,BYTE3 screenbuilder LD HL,LWRD screenbuilder CALL LWRD ?BANK_CALL_DIRECT_L08 -?0313: - LD HL,4 + LD HL,14 + LD BC,(global) + ADD HL,BC + PUSH HL + LD DE,16 + CALL LWRD ?0466 + EX DE,HL + POP HL + LD (HL),E + INC HL + LD (HL),D + LD HL,14 + LD BC,(global) + ADD HL,BC + LD A,(HL) + INC HL + LD H,(HL) + LD L,A + LD (HL),0 + LD HL,16 + LD BC,(global) + ADD HL,BC + PUSH HL + LD DE,0 + PUSH DE + LD DE,?0317 + PUSH DE + CALL LWRD ?0444 + POP AF + POP AF + EX DE,HL + POP HL + LD (HL),E + INC HL + LD (HL),D + LD HL,2 + ADD HL,SP + PUSH HL + LD HL,0 + PUSH HL + LD L,16 + LD BC,(global) + ADD HL,BC + LD E,(HL) + INC HL + LD D,(HL) + PUSH DE + CALL LWRD ?0443 + POP AF + POP AF + POP AF + LD HL,6 + ADD HL,SP + LD (HL),96 + INC HL + LD (HL),0 + LD HL,2 + ADD HL,SP + PUSH HL + LD HL,1 + PUSH HL + LD L,16 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + PUSH BC + CALL LWRD ?0443 + POP AF + POP AF + POP AF + LD IX,0 +?0319: + LD HL,8 LD BC,(global) ADD HL,BC LD A,(HL) INC HL OR (HL) - JP NZ,?0312 -?0314: + JP NZ,?0318 +?0320: LD HL,1 PUSH HL INC HL ADD HL,SP LD C,L LD B,H - LD HL,(global) - INC HL - INC HL + LD HL,6 + LD DE,(global) + ADD HL,DE LD E,(HL) INC HL LD D,(HL) - CALL LWRD ?0441 + LD A,BYTE3 _read + LD HL,LWRD _read + CALL LWRD ?BANK_CALL_DIRECT_L08 POP AF LD A,1 XOR L OR H - JR NZ,?0313 -?0315: - LD C,(IX-2) - LD B,A - PUSH BC - LD HL,?0317 - PUSH HL - LD A,BYTE3 printf - LD HL,LWRD printf - CALL LWRD ?BANK_CALL_DIRECT_L08 - POP AF - POP AF - XOR A - OR (IX-2) - JR Z,?0319 -?0318: + JR NZ,?0322 +?0321: + LD L,A + LD H,A + ADD HL,SP + OR (HL) + JR Z,?0324 +?0323: LD C,A + LD B,0 PUSH BC - LD HL,14 + LD HL,22 LD DE,(global) ADD HL,DE LD E,(HL) INC HL LD D,(HL) - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC LD B,(HL) @@ -4952,17 +5189,19 @@ GUIgo: LD L,C LD H,B LD BC,1 - JR ?0370 -?0319: - LD C,(IX-1) + JR ?0381 +?0324: + INC HL + LD C,(HL) + LD B,A PUSH BC - LD HL,14 + LD HL,22 LD DE,(global) ADD HL,DE LD E,(HL) INC HL LD D,(HL) - LD HL,14 + LD HL,22 LD BC,(global) ADD HL,BC LD B,(HL) @@ -4979,69 +5218,173 @@ GUIgo: LD L,C LD H,B LD BC,2 -?0370: +?0381: CALL LWRD ?BANK_CALL_DIRECT_L08 POP HL -?0320: - LD B,(IX-2) - LD (IX-1),B -?0316: - JP LWRD ?0313 -?0312: - JP LWRD ?BANK_LEAVE_DIRECT_L08 +?0325: + LD HL,1 + ADD HL,SP + PUSH HL + DEC HL + LD B,(HL) + POP HL + LD (HL),B +?0322: + LD HL,1 + PUSH HL + INC HL + ADD HL,SP + LD C,L + LD B,H + LD HL,16 + LD DE,(global) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD A,BYTE3 _read + LD HL,LWRD _read + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP AF + LD A,1 + XOR L + OR H + JR NZ,?0330 +?0326: + LD L,A + LD H,A + ADD HL,SP + LD A,16 + CP (HL) + LD HL,14 + LD BC,(global) + JR NC,?0329 +?0328: + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + PUSH IX + POP BC + ADD HL,BC + PUSH HL + LD HL,2 + ADD HL,SP + LD B,(HL) + POP HL + LD (HL),B + INC IX + JR ?0330 +?0329: + ADD HL,BC + LD D,(HL) + INC HL + LD H,(HL) + LD L,D + PUSH IX + POP DE + ADD HL,DE + LD (HL),0 + LD HL,14 + LD BC,(global) + ADD HL,BC + PUSH HL + LD HL,22 + LD DE,(global) + ADD HL,DE + LD E,(HL) + INC HL + LD D,(HL) + LD HL,22 + LD BC,(global) + ADD HL,BC + LD B,(HL) + INC HL + LD H,(HL) + LD L,B + LD BC,23 + ADD HL,BC + LD C,(HL) + INC HL + LD B,(HL) + INC HL + LD A,(HL) + LD L,C + LD H,B + LD BC,1025 + CALL LWRD ?BANK_CALL_DIRECT_L08 + POP HL + LD IX,0 +?0330: +?0327: + JP LWRD ?0319 +?0318: + LD HL,10 + ADD HL,SP + LD SP,HL + POP IX + POP BC + JP LWRD ?BANK_FAST_LEAVE_L08 RSEG CSTR ?0001: DEFB '/dev/lcd0' DEFB 0 -?0221: +?0002: + DEFB '/dev/lcd1' + DEFB 0 +?0003: + DEFB 'HYTECH 1000' + DEFB 0 +?0223: DEFB 'OK' DEFB 0 -?0222: +?0224: DEFB 'Cancel' DEFB 0 -?0249: +?0251: DEFB 0 -?0299: +?0300: DEFB 'Message Box' DEFB 0 ?0317: - DEFB '0x%02x' - DEFB 10,0 + DEFB '/dev/barcode' + DEFB 0 RSEG CONST ?0000: DEFB 27 DEFB 'K' -?0002: +?0004: DEFB 27 DEFB 'S' DEFB 0 DEFB 0 -?0003: +?0005: DEFB 27 DEFB 'C' DEFB 0 DEFB 0 -?0004: +?0006: DEFB 27 DEFB 'N' DEFB 0 DEFB 0 -?0005: +?0007: DEFB 27 DEFB 'R' DEFB 0 DEFB 0 -?0006: +?0008: DEFB 27 DEFB 'F' DEFB 0 DEFB 0 -?0007: +?0009: DEFB 27 DEFB 'h' DEFB 0 DEFB 0 -?0008: +?0010: DEFB 27 DEFB 'Z' DEFB 0 @@ -5049,28 +5392,13 @@ GUIgo: DEFB 0 DEFB 0 DEFB 0 -?0009: +?0011: DEFB 27 DEFB 'E' DEFB 0 -?0010: +?0012: DEFB 27 DEFB 0 -?0286: - DEFB '/' - DEFB 'w' - DEFB 'n' - DEFB 'd' - DEFB '/' - DEFB '0' - DEFB '0' - DEFB '0' - DEFB '0' - DEFB '.' - DEFB 's' - DEFB 'c' - DEFB 'r' - DEFB 0 RSEG UDATA0 global: DEFS 2 diff --git a/src/gui/wnd.xls b/src/gui/wnd.xls deleted file mode 100644 index c3438cef683447a424da09ef2da503e1a872e55f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15872 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 R@Kx74uD|;4Cps^-{{fDfkiq}} diff --git a/src/gui/wnd.zip b/src/gui/wnd.zip deleted file mode 100644 index 205d545ec6a6bf523035aad2333f78c1b01ba539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9882 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 WL%+=e7#PCaNB6BDP*VK$?SBBneJz6k diff --git a/src/kernel/build.ban.save b/src/kernel/build.ban.save deleted file mode 100644 index a230af39..00000000 --- a/src/kernel/build.ban.save +++ /dev/null @@ -1,312 +0,0 @@ -rem build cmx - -copy ..\cmx\io64180.inc - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ ..\cmx\cmx_init -@if errorlevel 1 goto failure -del cmx_init.r01 -as-z80 -l -o cmx_init.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ ..\cmx\cxver5 -@if errorlevel 1 goto failure -del cxver5.r01 -as-z80 -l -o cxver5.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ ..\cmx\cmxio3 -@if errorlevel 1 goto failure -del cmxio3.r01 -as-z80 -l -o cmxio3.s01 -@if errorlevel 1 goto failure - -rem iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ ..\cmx\cmxbug -rem @if errorlevel 1 goto failure -rem del cmxbug.r01 -rem as-z80 -l -o cmxbug.s01 -rem @if errorlevel 1 goto failure - -rem iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ ..\cmx\cmxtrack -rem @if errorlevel 1 goto failure -rem del cmxtrack.r01 -rem as-z80 -l -o cmxtrack.s01 -rem @if errorlevel 1 goto failure - -rem copy ..\cmx\bstartup.asm bstartup.s01 -rem as-z80 -l -o bstartup.s01 -rem @if errorlevel 1 goto failure - -copy ..\cmx\cxskv5b.asm cxskv5b.s01 -as-z80 -l -o cxskv5b.s01 -@if errorlevel 1 goto failure - -copy ..\cmx\cmxintb.asm cmxintb.s01 -as-z80 -l -o cmxintb.s01 -@if errorlevel 1 goto failure - -copy ..\cmx\asci.asm asci.s01 -as-z80 -l -o asci.s01 -@if errorlevel 1 goto failure - -copy ..\cmx\escc.asm escc.s01 -as-z80 -l -o escc.s01 -@if errorlevel 1 goto failure - -copy ..\cmx\apibus.asm apibus.s01 -as-z80 -l -o apibus.s01 -@if errorlevel 1 goto failure - -copy ..\cmx\copyr.asm copyr.s01 -as-z80 -l -o copyr.s01 -@if errorlevel 1 goto failure - -copy ..\cmx\diag.asm diag.s01 -as-z80 -l -o diag.s01 -@if errorlevel 1 goto failure - -rem build uzi - -copy ..\uzi\asmdef.inc -copy ..\uzi\z180.inc - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\main -@if errorlevel 1 goto failure -del main.r01 -as-z80 -l -o main.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\data -@if errorlevel 1 goto failure -del data.r01 -as-z80 -l -o data.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\devflop -@if errorlevel 1 goto failure -del devflop.r01 -as-z80 -l -o devflop.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\devhd -@if errorlevel 1 goto failure -del devhd.r01 -as-z80 -l -o devhd.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\devio -@if errorlevel 1 goto failure -del devio.r01 -as-z80 -l -o devio.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\devmisc -@if errorlevel 1 goto failure -del devmisc.r01 -as-z80 -l -o devmisc.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\devtty -@if errorlevel 1 goto failure -del devtty.r01 -as-z80 -l -o devtty.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\filesys -@if errorlevel 1 goto failure -del filesys.r01 -as-z80 -l -o filesys.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\machdep -@if errorlevel 1 goto failure -del machdep.r01 -as-z80 -l -o machdep.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\process -@if errorlevel 1 goto failure -del process.r01 -as-z80 -l -o process.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\scall1 -@if errorlevel 1 goto failure -del scall1.r01 -as-z80 -l -o scall1.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\scall2 -@if errorlevel 1 goto failure -del scall2.r01 -as-z80 -l -o scall2.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\scall3 -@if errorlevel 1 goto failure -del scall3.r01 -as-z80 -l -o scall3.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\systrace -@if errorlevel 1 goto failure -del systrace.r01 -as-z80 -l -o systrace.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\xip -@if errorlevel 1 goto failure -del xip.r01 -as-z80 -l -o xip.s01 -@if errorlevel 1 goto failure - -copy ..\uzi\flopasm.asm flopasm.s01 -as-z80 -l -o flopasm.s01 -@if errorlevel 1 goto failure - -copy ..\uzi\machasm.asm machasm.s01 -as-z80 -l -o machasm.s01 -@if errorlevel 1 goto failure - -copy ..\uzi\procasm.asm procasm.s01 -as-z80 -l -o procasm.s01 -@if errorlevel 1 goto failure - -copy ..\uzi\utils.asm utils.s01 -as-z80 -l -o utils.s01 -@if errorlevel 1 goto failure - -rem build libc - -copy ..\libc\c0k.asm c0k.s01 -as-z80 -l -o c0k.s01 -@if errorlevel 1 goto failure - -copy ..\libc\_exit.asm _exit.s01 -as-z80 -l -o _exit.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\dprintf -@if errorlevel 1 goto failure -del dprintf.r01 -as-z80 -l -o dprintf.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\kprintf -@if errorlevel 1 goto failure -del kprintf.r01 -as-z80 -l -o kprintf.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\vfprintf -@if errorlevel 1 goto failure -del vfprintf.r01 -as-z80 -l -o vfprintf.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\itoa -@if errorlevel 1 goto failure -del itoa.r01 -as-z80 -l -o itoa.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\ltoa -@if errorlevel 1 goto failure -del ltoa.r01 -as-z80 -l -o ltoa.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\ultoa -@if errorlevel 1 goto failure -del ultoa.r01 -as-z80 -l -o ultoa.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\strlen -@if errorlevel 1 goto failure -del strlen.r01 -as-z80 -l -o strlen.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\strcat -@if errorlevel 1 goto failure -del strcat.r01 -as-z80 -l -o strcat.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\strcpy -@if errorlevel 1 goto failure -del strcpy.r01 -as-z80 -l -o strcpy.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\strncmp -@if errorlevel 1 goto failure -del strncmp.r01 -as-z80 -l -o strncmp.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\memcpy -@if errorlevel 1 goto failure -del memcpy.r01 -as-z80 -l -o memcpy.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\abort -@if errorlevel 1 goto failure -del abort.r01 -as-z80 -l -o abort.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -DDEBUG=2 ..\libc\exit -@if errorlevel 1 goto failure -del exit.r01 -as-z80 -l -o exit.s01 -@if errorlevel 1 goto failure - -iccz80 -S -w -mb -v1 -z -A -I..\..\..\include\ -I..\cmx\ -I..\uzi\ -I..\libc\ -DDEBUG=2 ..\uzi\testsystem -@if errorlevel 1 goto failure -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 -i -f kernel -@if errorlevel 1 goto failure -ihex2bin -l kernel.i86 ..\..\..\bin\kernel.bin -@if errorlevel 1 goto failure - -rem copy ..\..\..\bin\kernel.bin \nlddl -rem set country=NLD -rem crc -rem copy \nlddl\checksum ..\..\..\bin - -rem copy \nlddl\checksum \\darkstar\public\dos622\nlddl -rem copy \nlddl\kernel.bin \\darkstar\public\dos622\nlddl - -@echo SUCCESS -@goto done -:failure -@echo FAILURE -:done - diff --git a/src/kernel/cmx/escc.asm% b/src/kernel/cmx/escc.asm% deleted file mode 100644 index abfbac4c..00000000 --- a/src/kernel/cmx/escc.asm% +++ /dev/null @@ -1,980 +0,0 @@ -; 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/kernel.lnk% b/src/kernel/kernel.lnk% deleted file mode 100644 index 04f57e37..00000000 --- a/src/kernel/kernel.lnk% +++ /dev/null @@ -1,58 +0,0 @@ --k ..\..\..\lib --l libsysb.lib --l libc.lib --l libiar.lib --m --u --i --o kernel --bl RCODE=0 --bl ICODE=0x8100 --bl CODE=0x804000,0x10000 --bc CODE=0x4000 -c0k -cmx_init -cxver5 -cmxio3 -cxskv5b -cmxintb -asci -escc -apibus -copyr -diag -main -data -machasm -machdep -filesys -process -procasm -scall1 -scall2 -scall3 -devtty -devio -devhd -devmisc -devflop -flopasm -utils -systrace -xip -dprintf -kprintf -vfprintf -itoa -ltoa -ultoa -strlen -strcat -strcpy -strncmp -memcpy -abort -exit -_exit -testsystem -touchscreen diff --git a/src/kernel/libc/VENDOR.H b/src/kernel/libc/vendor.h similarity index 100% rename from src/kernel/libc/VENDOR.H rename to src/kernel/libc/vendor.h diff --git a/src/kernel/n.bat.org b/src/kernel/n.bat.org deleted file mode 100644 index 723a7461..00000000 --- a/src/kernel/n.bat.org +++ /dev/null @@ -1,6 +0,0 @@ -md build -cd build -copy ..\kernel.lnk -copy ..\build.ban n.bat -call n -cd .. diff --git a/src/kernel/uzi/testsystem.c b/src/kernel/uzi/testsystem.c index c1d827f4..5575bdaf 100644 --- a/src/kernel/uzi/testsystem.c +++ b/src/kernel/uzi/testsystem.c @@ -193,7 +193,10 @@ void testsystem_init(void) char p; /* Configures which devices get the testsystem hook installed */ +#if 0 /* Serial 1 causes interrupt (re-entrance?) problems!! */ wsdevs[_2SDEV(DEV_S1)].tsyshook = 1; +#endif + wsdevs[_2SDEV(DEV_S1)].tsyshook = 0; wsdevs[_2SDEV(DEV_LC)].tsyshook = 0; wsdevs[_2SDEV(DEV_TS)].tsyshook = 1; wsdevs[_2SDEV(DEV_CD)].tsyshook = 1; diff --git a/src/mkfont/apibus.hfm b/src/mkfont/apibus.hfm deleted file mode 100644 index bb9647afbb7b1bce04c3c71aeebf70df800bb2ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1709 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 delta 19422 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 diff --git a/src/mkfont/bmp2txt.obj b/src/mkfont/bmp2txt.obj new file mode 100644 index 0000000000000000000000000000000000000000..65c611b8aecefd22b6b4e33f8659784537179d41 GIT binary patch literal 20515 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 literal 0 HcmV?d00001 diff --git a/src/mkfont/chs2cmd.exe b/src/mkfont/chs2cmd.exe index c2d1b243cc4d251438614398b6212e992b1f7e3d..8185fe690ba64c948e3c4189fae0bd03f5102bf1 100644 GIT binary patch delta 11642 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 diff --git a/src/mkfont/chs2cmd.obj b/src/mkfont/chs2cmd.obj new file mode 100644 index 0000000000000000000000000000000000000000..84d71254f272f1d9b7b147fa8a0b2a62cc1735b0 GIT binary patch literal 17912 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 literal 0 HcmV?d00001 diff --git a/src/mkfont/hfmdump.exe b/src/mkfont/hfmdump.exe index 366ccf9ab4a54f2639cdbad2952f75e28ba01841..0931428d9f9407fedea82810c9989faa6d56820a 100644 GIT binary patch delta 13074 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 delta 17797 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 W>L^+>-Nek&w&}#j4rAG&q<;faGa}mn literal 0 HcmV?d00001 diff --git a/src/mkfont/hfmlib.obj b/src/mkfont/hfmlib.obj new file mode 100644 index 0000000000000000000000000000000000000000..57a08e4b9c0d361802e0e8d62b91df6b7ce53021 GIT binary patch literal 19058 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�fSqy`aIN^@^c$oJaHDhpZkEk}Tciu{M!5}e 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 E2VR^Q^8f$< delta 21892 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 z zjro<w2eRZ1Gnt@ z7DZR}AYaNht7O&>+|0J5p?A6%d<_q~=JvHV*$B8d+w>9~N*mjTOYkLYHldRlRj{4DIF@!y_M(fgJ=s_tlcKjTaWQUPx;VJOaP$1^Rq6DJR}| z`GpVzkOF`N`3_$C|HLEZ1drg~!5i8QFIXhD$IZNzM7;05TPXll$8L?J6Ue!ooUUqv z!iptH{GiSXz0ax`xJ#XVM5h$l_6mL@rxMwhsUL9Tg(pTuA?w@%`AazBIaRp7I5&~x z;Kt!4d|a9T#sG4tZp6We?gT!N_hI z(~H&s?w!|*eoHbS52K%{nw7#|hmV`6+tjL(Sic`8Yeo zNZ#>pxuB$($n+oK`Z(kHT3~)~_3x%ex2RQg^r#jz!L~4M&VDeaHsAxQa0rqj1LAqg z#(#Ej%Ssg;8@&*ea>~M%lLluD9OTywq*6A$KY4yx8>uMkH_2C!pOk49#Kdk0f6KOh^f32#wdB{D zBbo>@dGyjMj#AtAL$0@dKf}{0+}=lszcaYKh^Jlh)(*eP+=kku$Mp*XqKEjeo_4*v zv2%MK0S~--$O5*AaYs!e3G&ynWw4E&9Qy4GRx0qq-urFzF6oSg3#U%McXG<~ zg&AonwuM<~)6=HRPD`bzg$pyY>{DjV?w%i{5{zL<3Z~;$%8EeJEr6}Z_fDEkKP?S? z!5!aE4t5jG(dAuLD8Lzs>* z0U;8hbx{!aBH&SyM%aO{8DUNtqBRJM5eUJIE~o>HL69M|fax;`q#W;C$h@b>qc0Mu zr-OlrmHf4!>wAD zb4Lb99Lyo1m8V%9*|Hx14t+y0~`i;2#|2# z2aE-*2J8d48;~ruoq$Tf?SMpVTLE#CL2UxWwG_1hko2SsFb1#$Pytu~*c*=rC?^v5 zl{U2ukaS@&AnD?KKq89SfTZiw0f{zG1sn)y0wflZ0dNGM4v;v5)sDT_pP+l)8J$g% z{$mWGs4Q z@iNR*D(L8~+~+Y9Le&xKA?gY0$?ApbUFr|jpQ-;;_tGS4 z7HJ;TY}b6EIixwQY0_NN+|=}p?-xHJ-V}dN{EONX+KbvYtycH2?p0ltu0bc)KcX+t zKdpa3U#~x||4DyC-yM)~gs6m=gi#6O64VL01Y^RKglP#o6TV3>CMG9(+=<@A z=Mp;;7a1NjY&ZPdu*Y!O&}!&3L>q@2la14i*~a^g`9`1dS>rb2ZsSMBeZ~XEc4K%_ zbW&1MR?@o}@XX_a{@^De59RH!glse0+RDd{Vq6 zesX+z{Ag{0_N2C1`-<*cU8Bw&&`I@?`YHNM{eAjH`t|zH^_TUn`iTj%6K*6>iOR(I zL_=a~;_SqEiT5Wu5;rEklvtVgcH*arClbF;yqMUWcs()1(8n;^kY*?_JYjg<@V24e zaMW6m5*Sa5czw55) zdgztyYGQ4Pb&9Kw3+wigBfFZ*;!6KxhOy$DnOAX7@UT|HlYzuKYR zp?*t!NPR)wM-!nLr(m|(CP9y9pB?k+=$agOm_<4NOBNmrSE zrteMHOcTv1=BwsV%LL05OV8xjl0PR*9mCE75U)-ITMww0tJkSZ)b0)H7uD73Z`8l3 z!!%1Yk85^m2E;S*Z^o;%)!GRjv0l7#XEF5$(5+Jx^D zE+;4w=O@0GxGyo@U@@dZZhpfNLndVQn(;m3VdH7z55|CTVp3Yt>?B9h2<9#(g_+9S z$NY;~!?4UN%=>Ppj`^1Pm1$)JroSoHG|8khC7IGq^G(Z5Zqxgw8k5YdG7mOSGMmiP z%rnfh&F`7_m^;l=ETfW>lby*0m=&)je-NAt=$;J9Jw-iR{j7So`ilBKjZ?E;omdcv}V0|}=Rt|#0~kS7jK9F;ge(V93Na(E2ujg%#yG}gHBB|$YnpAEi>{TL-ZmXH9W@;@opPJbn9iFTO&3kP zDc)>AFRkWO^IPVR%*V{%n$MdX%@@tIWxQp9WwFI!S!P*oaaz_`3M@sIBbH;9QjS7BAuC!b2DV3Sm1oKrCM{-tKsRz@*PnhQ#YzRF#*SF5;QY4xtg__ zCp9}X?kde!nsb`#8Yw2BCjQ>|h4Jg-eepZvkHlY$@1c#={zrR7`=I`&{%q3kNn1_t znLak{H`SZIFda92WBSgt2W(z2|7yNv?qN|`CR=Ql`z;=e*YcL-L(AuuI?GYZMavC~ zVCkLQFF6_mc2Dx0En(68c*AK?{ z<|jOn;7#~3p&9y5in07Gkugj*WE-9~d|>#^Fx}W$Xu6)g_K0`;TnV)fhc2jauDOTgC4+Ap=&w0(40x<_?Z{am-c zT>qN>mxN!jl&)e*{h832AV~~O?3LIjv0ox(7;G4C$S|Bv>dAa$K5UM+7%Ub`s^xA7 z+HRQ-VLL33U`DLNe0b8b!SbwStK}8T4v2rZWshZ_<$&doJOIxcwtNm4bmyUtjwdtrl7%HegU!A9(j_$U*4ta+1;>Q{m-VKcZ!@$N2;cf3hYl6S<*vqP0bI*3qU7qwDbuCvnzvS8Yvo57PE+tn>-)OG4us5ggluDw|S83gu ze{21!r7yR0eAf!J)YsaJm3jhnuV1e3oAIYp`P*9hdI~)z4gY)^{d|6vQtw=?kzV|1 zRjo%`c8-l{jE2`bZ_M(Yq$}k16&!Ux@+tKh@VaB8Qtt^VwOjp81yu6p>2z14&9;bA z@5ARS_;^&M3iv@cO+K(uKS90oYW1%=I$hs!5X|4CR1qIu75H@eq3<;LE(89yjzZZgT&Sn6|HCw-7)UOBK?I!Kn`ke>5BcS;NK9A$$Qf^b<7y@74xrw7>3++{ z#~KiPbXK}@zfr!IKo{Zw#dS9M{HW_TX?Drq+5KjKZa?auHfhhskNW-)G}mvzc*Eyh z`hEfR&TBS(uLr?TW~D3FcNlc@QcB%}53jSyw;pv5f#&=8oW{qas%Q1brJ!4GXD@P` zJr2^q$3gc|lh*E6=Ra1#ivnv_U$!$}2!t*VU2;hvF;d76=5Nan?Fxj32S@S)xzWJZ+~`<- zcqnki>XucjTGn5&ZhgzDi&dRpx-`Kf5Q8#&0DtG$H7?I!PkyLTRr#6KnWa5Fqq};E z@UbBXiP*aki0A+K)>|VUrRqnRuv46zVjP zC()|DjGrGhXWr8MD#0%@RDnT$xxy^yxE_J2#U%Lan`>3LYWnlWzFhBkA;(^6mlNo~ zJ7TIq-n0#6)x1ge+V8aqy!o#DZMop+u6iI(07>C0#%^oC?Hhl1>#g%3fg3It^>9zK zx$@+B%Dk%-4)nljVBSD;@qi$plIUa_UI&`e-&xeMG z#tNh3y@gq|q(>|*O^*ku&1rDCL)#yM;@aqZ#V5$jG&bwBQ^tj2wm>mgtoY`F@Q>tUdN zC358pBzY9~l&fl>fG+zOpmg_YCF-_7iv1Btz7Sip0HQ(}i<;^SwE;J6^`F zpYAyW6#eU=PISiVY0hA>apS|}*-#2NAAB)5(leT)ambr7_a)J0Z#360R;4e9svg;! z%J14;n2r4>K|}T*$7eS7k)i(KKZAYCH0d{Em{fsv2mbm?(qlO89$VenKR9a~S((HR zTOy!GDYej7FT-+H3~^M`;4@PVBZ+1wFC9rT@=RJUQc720|3HrMa>68Yrb1=>b!QnHR?*Ef40nWp=qk+_&cX$DrA=A=x}dtY>ZOT z%a+o-r;9Bq*$u5!>V`vv5;}&6C7V`~(YFla$2~GWMwu3<3V%*4-O!cJv}H5#STNPq z8H}E1R=AX3Dnh|%G}~pQwi>BtmqNtM}Rg^6~n#nW44Hrsxw+FQU3y0aOb{uAVPsk&{^VA?c^g{?5Lp=iX2 zrvsq9t%)5iNR9NyhYR`sd~Z(ylW=x@&@l&=B!Ev(k@}>i>9;TL_CdXNE!4i(Js{lbTrXzbm31h zZNx*{7bv&?TkxL0(6cL*3?-rl7EfKl4r2u>et?R%Wjl!YDC>#sPm#Oo;J3n=L7M6AR4o=NEpG- z@ewwI$&CkMC z*{<#JbZ}cX5{49!_K1<9v>!$FqU2enU1D;WH!B0yJ_ZK!O6tm>NC(@ZMprXxx1+Wm zzKR)Xcs7(sh35e~1Z+bRgEgCsBn>g@1whk(OU~uKl^~*x&Of(_=78(~$m+t;jLP%4dvs=2lNowRCb0#*(~z~bCzFZ3StO^vc^^n0CIk}a4wlTnSkdZ z42Re&XjI)9PHjzPvwqyuPc^WHcGPSUMvkwd)!gJvj`Z|6ICwD>q!-4}7!Y$Dxy7^? zBbCFZwq!5*aVtBkg-Eyc^ zHJ%+99@<5ddeE-cWQ-Y~gP&900tt+Gf*CP{2*Zd=Z%-N$12hcMY&4O&V%)G}=2lsv8H9wk6W7!o9V>$??>S@KyS{WH)`*$g5FV5xfL2w>45OI>2PrVjZ!kEoKxe*)F*H8NKmi-qmSAD_h8qUEkk#c<03Sw z?u;ORWV6)gJlu0Ro3zX!`kZ1+Fw0>2Ok<(#_Rj}hLkFfT+#|-U;F$|_&Gv{9r34{% zP|ps;6q%@mzZfFijVYJaHKpoK-q)4xBb0~UE|Vw7f&PBT(?s(*2YNRR%kDfOte@By z%Bm_H=}Jbz^hzhaVr)yMkZOZbhT9Xs)IqptqJtqI94G-fM97Zf@kV4LyXvUkFVLpd zKuoh~kQtRD+=~Ej=ZK|Jl^`^2(8g}vxM#PW2D3tYg1B4CMF}#}Ia+H=L)A`k(=`u@ zvNUW|0+aFcAWY=z#-wDWT~3mJLMO6hqEUkBP^TT)v=5&#)Wl-uyhkrHY8qw+4M$OR zX9tE@Q0y#&EEyW=+s(S1E)JP@y#^%_sKb;CnEak*SK#?wj0?@#R?4zqN zxWL+;&!wDe9LXm}7(^X%3|}q*G}cq?=zu)x4C^ z5$VFRfz_7bgOr2b@MFWUIqewbZ1(Eensv*-g$b(K6PZ*|GdLuz3xbB-dTN-)yn@q_F~QgC}T&4BYk4xe6g^qXggx=md$6vDn0(blzD ze9oMb%+PUUOJ7tb8Bi4eb7X6UEaPW6s^=kM%{3Y`TPh}N7m^R!QiR)d)*$m}lGfn( zN3K&I_GAZ*^lMGD%sKT*Q@(U!vk|9&t>lrEML2!>Y4qXe6qxKvT7xpk6u=>d{ZbNh zRoW7nse&t?>h_=ng`^77apmGzl5li))p zfw@8;0o@8G!>3gJ{kWU1x&#&NT5X?lx&8N(kgDjzpsei9Y4g8Ag}G=!g5yBtD%K5) ziE~k&XJsQwk?As5QMAJQ&=#9AXELPJvbdEsGnTg50#_;T0cA70M{slpQ(-%)aVS&P zdYrp;1Y?;rLMPNoMQO{*@hlc`6of0td9yAcxxVDuc|O^fEmURc%pl}U<-N7HfOD>F zfo3}ddLG(@f}G~e49|*tS>f27QDuYD$U>hw$$}DR(x%ZkDKjKFNEp@_CA7>w5H!TP zI@%K3tcav#b^~1-$80SN57{)1krD?=DeRZH;p;F`bOPhR9f^dQEjb7lQoCR#-D#ef zU^k>Q6NMu|WpZmG5~i(r*IXKqJS5VaCdx_4ksv8HBb2n5)58%&IPU|nRP|0g+spL~ zk(~8ax+6+;lu}_U%T7765r`Pp3?ph*V=G2o?**+6?ygWGY|syMv^QqN+HfQmW=bM^ zA5&e(+{)5+*dSr~p|c2&j*#Wpm}j5Jn{g~a;vJMtwp2W<&88`jj2sz9k^z6RtH#A_m%jbh&&bsTK8N1~WDX#zYdQPtgXS;|r~p0C#E(^VW+Q8OM<>%|Ag za+l=nCxEI$Ea3=Qa1{7op{_U9R+>P5MnpT#v$?-ySHA$F8a?AUs)P6P3@VEG8~5bk zhR$9rjyf%ZQ*6)`O^|>M-sC+qu6e%z4XUw{Yr{QlLU&fm_M_xXoXY9-8x303KQcU) zl?|8dGRCuGyN5^RemXChMOAinVkyN*>KjxTBZxDtwd?8yNmVCIm&LJ++rJaHb)Ato z#!wt=v+)HEBVD}@tX>OM)lWp762GatwcRkhs?Qtu26HBj~2UiGU9K9qN zGds{%c|Mjo{GC91BblLFhK6q)qCsSelzdEH3_tS9#;vSI_rj*CmROzdXlG90NaQky zbHW(JePcFLHfpI)kR}Z$GB|ML{K0%L^M{d?xuY~<$3@c&20XLQW{AmjWW+m5$1I#3 zDXu3PipbFu*SvG(XpK7voXR>Dld|r|(GyM$^l^)w2t<*tthx2p5>SN@xHWc*cdT_= zH*InctuCq2axIsg+5EoyrZ03~a{5ZMGQMiLg3}|L zGH@|AO$Irc;86B(4x~WWfT*69vDcSuYEA7B2gl`^BtwKcQ<~=479%t#Mes01Qzaf7 z%~VO&4XY^^4Ts1MZRRSgJuc-N!Vkfu?_1VIj@l!gRvlc|ENSW$u1*L zS{ge^Zko6{w9^(gw0hCTi1gxUv~K`26`Nh`XvTFnn=v)K9e6KxJHw+ryK)YL*v23s zkClD{nHNBpvYFA0oVTN%$4G&)m8E&u?>t1J@+YXg^MH&>ehNqo;1C8d&y1L07oQ`) z+FK=rDbrRdlE{pM0?Zgo%+{Pzm&`VgS%-fC5d9QAo<~>3I&k{O2{Mt2+@O!n+U4|w zCauQd4_!%v-;WkJj>TCjv-<~eSCf?-j7frqd>I(oH{#5|+BZ_Smw;bfW+==(juklb z1XBm{u?z)9;}6lMnF~|vV8$Arj7Ev_45C~fwt#Y}Gqm_j2*>{V)LlO`qP*;(25Ti) z9NUE%(+uT=H<#`4Jw~Gh{ ziehKN&PYsxUq(r%JZ_6;=(Dea*cx243pvvt^7R9RCznP{v^@6n<6BN;Cx5IUM_C>- zf^IOER?HHtkV8%D0bVJG%QO8>8joGc^of-uyQjrD{ACuwV`C&nl5nta7U6V9y&uE9 zuY-FF^Mr(we0&xWOFMCF@4JFA+kFgtoVIG2=sqr*y)ot(JWHhAD8HvO+?`}CgWYSz zIwcA)Ug;VmC>tx@5du`eX_YhOKoo_ww%f#t#YlbEDeKvI`Z|Ux;j4X#} zg;v~F%7&ET_?MuS`NQ07aj#B$a!HJxzO0AIghPWd4hL`y(N|5Fl3}k59x``jWY#a7Wru99{=1kPLgOMa^j_ND zVr|beS&oNIfA zJeQ0O#sPR- zW<7?QFo=ejofx6C0!~KC&RU7T8Laq?7yChgu}zK>=!fdPJ=uZ$m@G?n%%lrGh+Y@q zQ>Q*)mTJ|fTuOaWaGx_vwQ8zDsiT5>pINF^i@^V%Rq8ZI)`)yQ(qq3U1si)v9|@;-05Y-Dj3+)dx}HcMa>*hs{zg?#_Mf z92{9)z|RBlS>3yPOyRS-cd$?XA~~w@F)Ych382U?$p-R6{rKK#3#bF{93C&o4eEAC zM=flCD>5`PUI<{_7XS&1BpbqaRmTGPK0adY?HOQ$%n*J!F}!OiKbGqY^bQXWvdQw5 zW6Mz)a@+<+b0gTtjRpF9@&n_eIkpXtj|}h|Ke@md&Se5C`+ziMHD!b*0i9npi9RL_ z$fM6%rN4F-7#trf1a{^Ecvct~?!TtCW~^su3@|sE?`JnkzR@<54A1tU3FNM=8O`k) zALtpat=Ty|fZKeb2ZGhsjDuiwAU_0YwLK^g4H3wX1;+7cas)pb$@LBF56C7}I^)-U z@y#&=gKCr#zoOP4C4M=rUP`3lU6mOVEb*rSxrHKPx*B!p1;VX7}CZ|{rOa(9*U$MJ|Ixa6DM36dGLpY>om1{iq(xz zH%zA@g}m`;@5Jw0#+!-{uur!zdZ9v{tT_4U-4t~8?oHV&p$;CMUANu% zew3Oz$nQ_v3hZ78oKy&ZlZ9^&j3X83)4~N#jh> zIFp>3BG$5!7xGn`=0>M3HTA$ZXXQxj42}o+eeR;bbMV#ngSW_I8lA5=TYuhT5}y#r z*4R^av&S<{jdEQ*YmOFwzT-KG&Lv23QwRCQ>*Q|!JYi~z-`L)QAhaywKX|n9o*XQE z%s9;+rw;Oq-pQ%hnJvW!*bw$*o8%tL{LKg>;3u9Up(@;T*MZaY(1A=bcDk53GkO0M zzt&wePEQo^9akME-M_&PENjm;=pOw?F~iY zDUo`?c;)LC;hUhxqzOen*=RSnL?buP*vjG*3&rNYCmA}SU{()weg(q$xrwKQdUT=g zWQ)_*-Ze*0CZ`@?yA(7^7GqwRh4gPVzr-vu@x0I3rz$KodzsFq_VvP_-g@gv7)sgR z`8aNbPGbKfoPm-><{)K7s9&o0G#BTwGW8MGSqk`zF<-H1GIOYC971^SsokTBu|rl% zB$`7L&(=!ynf_yHcRw7_e=JzxQhU65{AC`sg21;29YM4yg<_3cr(3pmP+H{W5z3NbIf>xel9%_ z(pz9m{qUG^n6m(y#STxr?wX7pE@lpI$Q-$2r6zP6hZ~>nTv&WST5a+c>Wao;;eQy- zzl~NKVn^=Sfku~Pj!b3_7exuU@JRopxA*`x>PL(I$+ikcLFUjUO(w}?(u39*;YV~& zQ&Imy+#Ryrg=j(Vlg6Rqlo&=t=*OJYKN-Xo2M$TLjIJ5D2B$$y?-yft zPCNtc?|eOq;Ga0~qAF}GX6}dRFZNHCBscEwpG@NR#b;jiXj5UZ9mQZPi)MG`FrxXG z@ijW+m~o1KbhP{mrK0h0(Yqmr0631jsmyUpVZ_co#}4j;#ekOvg`F1h__ku^;bNO- zgYmWT*whrm+6s0wd#IRs2$cQBPS~c_zJXCTRoHhh$ENc1JZU_9@}Y^Rq{l*MF>_CU zQMxbF_#V-CibS`3tIAUPASIYx@1pTFiI1&m6CqG!E-nI1YOrvIY|g-Lb=yu|vhoD-+MUCNr*RGM#2wW_c=BQsmGo@b;?YzKoG6Q~V$D&R9ZMVz zc){}ZDTGG}XHnngWTCn4a-u9cSXd-XdN*wGYPyY1ltpJt>D#cyH%&^SEILcdi8tOc zallt~pt)>#nTwX9;pg%)_DV71#|X9!EYq&PxW%635zWVi*gqM2Q;3@Wv9aehBPPKi8m0>ev6am zx@IhhrYVAX;6E7#F@Le?u4nxqn9Q8QV8Ut`olb7@qAbJk6y(5i1d>fADU+nRQy7em zPh-4zCxfuvDH&YO=FN6-vchir%Ha;dA{HlW8!?9 zl-`aKH%wLPQj|2mbtq|m{GHWeq1%oUS2$JbCX`wPH;9rvbX21@?!748Ew!IOi2>BC zzKRkL4Vu-rP|}=VMQKcMzq9G)Rw#8;aLZ8AbQ@6mnBcac6qiyKCEafyO4kW)03|Ko zyKLOuC@qp&9!#7krLUv(cT)NdN?(!ERxB)Z=`$$t_@GKXiITR^%P2i5xPL+E0%^hZ zzoz5y#+Rk`0+e)ZJ4!zlToNTMRkvN*fzk`YC5O^4gl-TetcIn^j5`JN0*4Ch;`<-K#7NGRJaJdjA-P`4M=}Nnn?``{K={|BO>Dot8()@m6m+HKh1pEn_Zm|O;-Qx3hsS-xkxJ4*w zPhV)4R@Qq$T|&O1~AlKcVy+ z;peWi_|>DN`OQb^O`*FCrC$r(YMbs_n+{JwO$)W7r27~`>27Iz2THr8^Z-gc`f65B zqQnEZW_1juGbmN5@1mqNO5*h68&b;yIvtDkqD6y5tzYQosLN5eP^|@As)B%*sZD@u zR5#$2>L$Re)GdHlt6KrDQJi6~RUZYsPJI<{qxv3TQ2hWfq<#))h;`f5f1%u|xFOx7 zd>Fwo#UC6d)EdB~x&|<<;(* zbw1!NY9-*XY6EbUf8gQQK1)Q&PfD6@rz(wi~z!mDFfETLg0NwE%8VYXGlP>jAG3}wIS18h=v0ye8dfb-RR z02io702ivq02isp0T-($0nb<80bHv76)>QF1Gr38W9+R^O@J%a3cz=$7Ql~!q`CnxrFH_Q)h&P-wGVKsx)*SpdI)g4`V!y` z>g#|z)QQ0l;C! zgWxfBJ77Ug0FKMy@2%?7DBq@@0K8p&5AY84D&U>!SAch^Gk|xiT4b1e)FQxxY6;+9 zs+E9~YBk_}DhOCqF~GyB4{%Bi0v=I&0pF+I4S2u03-Cd881Qe@2LT^a9|wHDdJ^yh z>KVWfsc!>5qP_?C5%m(_$JBAakE>q;enOoF{G{?Bb3LZ!0e(g;1N^MI4DfU6YQX=a zIsregx&fb1Hv@i2hpke)RTbo z)ZYQlmw892ucPcz-vM;19|2aWp8|T-F97S*DZqO5dqBUcMjo7_8UW|1C4dXmGQdUZ za=;~O9pF+G23)2hfGbot;DzcYz>Cz)fEUY=Eb<)6wQ2~^r``=%ukHr)t0G{N`Vin8 z^*G>M^(0`kdIoU5`T^hq^^brH)z1JIsZ)T9)gJ+us#@g5fNGNLcmd!Fbt&K_>T1AC zRV(1-DhaqsZ3DbQ^#ER}#sSx=LxAhmqkz|_#{jQWp8~vIvanKri*luU0kB&A2+*tk z39wF`0Q9Lp0@kZJ$i)rn?SPHyT0p<*25eG!z_|*~RH4Ot0q3jF0xnQr0X$EA6L7Km zHsIUT_W;l5VKo=OSWr5b&s--jvGBW@O->NtRLk69?BKI|40Cp~0&q1xRWQ0WRj_6` zKFzW;prh$>F6t^_5Yk=+*r1|#5)>R580G_oYw%u=@qxa;5FRVwhq!_ZtlGD7)%tyb zd?7bDh6e@KJ%6t=R*P=S-}P}dn6fJ}|0AD$$>s7nyRm+O&Uah5@otNGO8)}A0NUDo z1RX()p#py{PaTP_5j5X#!QYn$fZ=kePBdq!R-4h@jd)A3Q+Ovkl?TRQY0#@HowY9Gy&nXMo90X|(b?Nkdv%Pn-7$&oz% zRI-rQ;x^qnmco=pE6kFqun%$LwYK%%9nT@6Fx^ryE}6CH6|z8Z&v4Z|v!05%2;_44 zMtb#2Q|O54!tmt)?1Mh36rWh)u|F*yOO`(n)s2tiI1SsT3imTRo}+A*RLxRaHO)MH zbrb`Lwf|i*PwhxA4fN;9#NM<_EX``NiK9MkHA>yA4@#wf{4ySxnO0-KP(IdroL1}q z|FIfJww913Q^Hx30gguf3sW23K@dSSeW1%(bA7<}sAC@H!EAkR_Q8 z)&SNkc~QfKRh*2Fl&S{9Gw1v{~&zd7g?6_w?oZBnjhz@1^=_ z>dLWz!wa?AgQ;9kUu4Lc$?=O`JY#nF&Td|dNwM5>1L%#OW3S$l=jz0Bn)Uy}Z+v?R zgHpb2fES(cWldI|xEpxwIhIO!!dq7p9%#{r*6i!I&-cnR?~Jf18>(i|dM~{4~7t24^{6BM2IadHtbL~Zz#EV-T z=a4v1Ju`9Oj5_=DkArlcJ7RgOUc#ptYcQo=#HUIIYecxxV^pWR<(@u?fgv(zoP*f&I*6RLz!JJ z^SduCy(1&Q@oL4FRYqF!eJ7UIDL%MyE9W~vU7&Egl0xYO&i7$bBDafg0BuHT_v(Lo zNK-oBt?3pTzWvjS(wpnP@U*5Oq?LG)rb4ag>bP>v73)^fe$t9na=~5>p410G&^Ubxhi1OINw7m5#qYmZs9B(#7zJn(olb;J}A(_INt+GFS%WO zQz_q0`q&?rF(hzh`MNw^#N+^(T`O_NckA&@rY&X-_l?#?y?FiDLWrik;aQWuO1iIK zR{%=uj<+O?_6}M;CyiiwNWsg|>Pl?4nuKTd4q6MvS5k=V?7yG%yZ(*W#TuVhN<`LM(MXAV(?~m2{2xo-jI0AiHG1w6P z0aB6n7Ir2kAJS;tttLiW%xMkEtgVqii5G$amt_s=Ei|?@C{wA`4iej!bDVPIxn1Lc zl;KlLMo!^L0!mJcF^9Tc%$2m*y>|{jVo9vj!=}tNVhu_~I=SJHlOmD6)(SNO3BIV=g^cJmvT+nm)4X~$!otr zr=~(%HMlzFRTOAhgSkj(Y->=a zQY((t(&e;9Gth3=5Fk7M&cnWuIWw%m(c*Ru0P>y1n?JJ^3j<5kMh-4q^TZmIigbLR z^Mgc}S%b0YcC8dV9%^@YA_-W0)|z}sQ&HAxfwWp z)I!@(+m7eeyeu1X9uOMahSa3g>QUU4E~gC{c_kZ?X5I`No+mVnPtdB*J)VOQl-L?O zA3@m~J6w8BONZ)3Q?K*H&Xk~*OAI85^YPH>LMHMKdw#rF+u7We`~$G24b9h9 zmv$wnQeTG5dZiZtA4L{!APGR-xRZpT!bK@+RdxzCmtbf?XprBqY)18<~ zrW&~dkj;v^@>S(2lj4~CwXDJTV&j}`jcdVOFpv$0_5xY5E5%6wXFiO8mM`7ziv4SPQU+$ZsQ0lojb)LSE^oKLOE=RY-# zX+y3E%6s351;1cK+AC-Dei3@tH0+(+_?GDPFt*;^%D7mw_NrE3OXDJnR{BEx=nSxC z?b?N9G{a>y*`C61-fE;AtyaGQtmbTKS}ya|rp#DK;j*HIS+-o$&%yL1O>do{>0d)0 zO+!t|?Lx@=3p=c|rt7Z0$JWAlH z$h%R$*toTIO){7<-(=C+8dMwQmEEDizSh?5!A{hfugPd_#Z598ZoL5{Y5XE9w0rDa zByITd7Rb&)GJsd__YXsWQWxl6znOVDHpJ6$11A$9zA$BcglxAtg`-$DQTxF7*zOr5 zoh6!~!s!04TwxYILc|AI)`OOrY=mTEHq@G36;8G$H*JcwIvZ?UvvI9FrQNs|k7+lq zwVut!gdtxhY8fTah0nl?O>!ttohl7#!R@iBOXs`9dxJDHQ)oGjca=m^Ccxp;!Rh<8kFtk z(-lii+vIlKTj%>Tl$@cW5pOfC3_<>U6%(ySvdz#cTAfZ;QXXGG%aV!~rKNx~^GM#Y z|M|uY3WQ*px_P{w5dQ`xGB!MbuT2O!b;Jh{E~QEO<#|*`t`Nm9AuWzJ7fo#v+W!y3 zBC|!C-mxAWp`Ib|C9!l@N^p9#F$>@+#98XiIE%Hmhc|^A?WdnxY+PFy#!!b5 z?Viuh+4;XDv?guaR#7CYLMLR761zhG|ArZQYfG{%9zp1L_VO$lHqRD@`7SZDh4_sm d`X{bur?LP2fz_4y_9e*}=9`zKYT;hWN&qjTtftNsIv@fJ@Y97AG-=I418UjR{7g7}5Lw>UN`MmhbtV@4v5~ z=Tz0LI(6#QsZ-~is)9F~q;GUewp&D}ugIxV} zhL9iq+Oj7T-?itAd)5fKNvNN{a;b~--7!8RCnx?*WjWrzm!bcvSRA8OoF>RM$y0JSl!G>i02&vMvpws4fdh{sD}x2Qg?@J}K1? zMe+qnz5}_gC^?dqAkkG!O120jPZ8uF(8}h<&I#1!S*B#YQI(xrUYPI32+ zMC%{6O!aCK(9kONSNGrKc_vHFWXI%kV+SgGN#!%0Nau5tc%BDlb(3dEBlxAdN+cBJ zDg!m9x*He{ZgxDOCG%JJ;M4a$Nhyz#`|=jgyIjC?Z9j;i6XOIdCO|q3%H{UNf|Un; zmt=ekctZC+p*u+_&vfnyR5Jm>NiOpY;c~uf!);=JBb{IPoo~`^GOJwz15;c?o=i0% zpgFRf$(H51vOCZ`YXp$z_>#R9N9>g3u!9K*D5sY*!?zqJ81uPf!w7S7R}aVqswoWZ z;M$|^VmLSO45^*ZHHT_ly?0^0Hh@Vab{lh77*qCMm}WAF`UX&mly0MrMlCC;N}HH8 zfD2UPzePQX{lOgXAewdC3Fev+Ex|8qaWp(bl1@TC3KcCfnRYc4b`>@@}XQ)?&@Iq=MG~9VVx1i zkTHU0IJiGSuQ4R|(v5~C)glqQI!-o{tO?~#X0l`sS1Blll;t%0blgbspR(Egabv}- zlkJG3k4vpgoMv35b}fwRozBSh$c94O;guPkW~4QKn|D7#1q{4 z+*N@cIg{0$1_4k$ZiqjtkICr^Blr#vna^bPJGf){0u6swFO$=s%e@EP!>|myFFsmO zDF>G|T&QY~5SYL~OinMI)3Rin`9AtY3>LWL2kmHt4shSx)d-tR1!-3t=}5HT!@JsGTPaK;X@Ka<4br4B z;^Ff#sFUgAE&`Qb7sK7lD#s>{cpHwvw>*g|WZHep<>*pR-&< zTD}Z_pDo~6!P2H^n&|VM-gpaad@k%E(<25Tto!oN4xFj;|OG=7cYCA80a(P^JQwda>g(QTUsGi`OG zrCjRZ5)mO3)@?gUSSs|4FPA#~I?~4RP>eebvhvYfx)e2s-DYVM2heK(GgR;Qdmg|x@l$Gb_)A@N1>zUGvfTdp?&v*MGI z7H$V(ol0vbghRO_x}@N!g=<4x18h-?gLf-p27t3Auw9A?$*(rsDbeQW=(h%!W4rYN zx3DlsKAEV!AFxen39Kz`ctQwEjyZ7+A(WxDXkMOX{U-v&|3V=B?#_vKbrww=Ctfv@ zO`WKDcs2MhaB@#XVLAE&nTkZhYNC^S1k-UAFlV{zXz{fsGA&C=7PmMVw?bBZ)va)H z8HwPxy28~H^H6>MF^+?J^CBC+3-*-LEJG3SVw2p^=?DO{o20^P_*-ln9X^d8hR?X?H zpZMb&iDGta`9=snqTa+;^EWcdQGZlDDRMD&uOf$?`D;8|IVsM&1WLxoPeJ#(N~i(1 zU@}G3Z37B-^B#)gY$SOUldtVSUEOgc4qn%UjMp6`Smy6YfGGE8U3743iTJX*85tAl z&*^mJa+}hKL|T|-9PjDmmJu0RccPcr9l`xL1p~VuRYadjO1#jQYvz0`A6ilpTD$1+<~8L-=?jN(>hiYc3UVOVP?m3Mk*O;bgP;O*y-B^32E!c4~7@Ew&;1_2f+P1v{ITUY1OB(kH&;&X@Cm#1wIzdMDUF#Rd<*+Xo@^epkhR`!?aEC`hD^>)e}{jb5j&}{~dhzH}w^8{3V`ebCnA~s^KN&LQ&lN&_CYO z%AEDJD0xp4HYGioja6R~e>sU2YaSUpbh@4TW~!a)2V_sPQ(nN6fP;Vsr?ZUali5z_ zECl6VzvUK@p%8iu4a;$9xo9CDQGOW2$kL=M?p_Y9=D#| zul-!~5nHLdPwW%1AL^E+)>c5*s+-(m{*){6O>95eU$FH5R3^%ek~8pFKi#t?mKhWp z$@hbl))ADomr7iUw=qo8-!Li!g}vgM@(wB{HKJmaP*MHmVs?)~7D;&E{Y{bv1S5$k8!gk8;$#oddGm?))77Kssx#k_WQGB!S+B-Z$U2ai6IV3 z$;YD)5x`I;tJl9thL}9~(jDa8#DxtT$4)aPjVDBtK+10=RD%iWSv|krD(oYs(Yd34 zz~QK;5DFtJAH!Yxk>?BjI^t&9BgnQ+0fE31pa6<+?BupW%ZNr8eS|7I!8}C{l#2I)gBTsDSZp4f zxF9sKv9KX0i4FNC?C{tf<}pNWubUOa9l&Awd_3j}E8={&I+^q9qkd)hH9Tt9 zPo|Rv{}7eO?H&vZ)K^%|d(xfdvH=G}oPw9>Lv5fuvmT0f^vz5FEI(>!RAb2dEnRU!SD2|cDc_T<=~hL=+nm+x<&WU~@5(Ol;v<>%F?s)EHs2h4m4~Vx2t#H+_87+C5FHOl(pye}D ziCc%%WcY#)vX(&)&f67U!RLSKYm2*&7BDMLEGgl21nagJ|MYIk@DR0Rd0UuFh1A+7 zp{R8dVYE6@yRgM&hi>2Q8c)_5tP*;NrF>}=3Y0I6@C0{O*FWYXvTHb`m>s&;l9qtH zlJLn^%~W{fn0z@7Us#?QG0actkI9)u{l3Hf1D;^ce;1T0&wMX1cY6GSJNyq9*bg@k zuzz~|&R?;gD-}q}nAuYQoKRWH%$E7*$e4U@pKnt)<%u+Hl1EqhF$|N_6OdmYKqY11 z`9Wfi)SoLuO3#sbmTsLpSnA_bYI34)HP@iLHm!0~H02rg9$}O@c_s+4MUJ}t709g5 zj7$vPD|f z6F#H*pj3jMBbJPoWXs>9Dk+#&JG^Et|9Plg=n@uBq(dfrhI`s$d@t6tdO<2gn6by) z%DyjzksVXH@jgh!S1P?F)c7{Yc+V=>Eq=9}|6HizSI6Ah24wRIs?Efctq_n_Hg}4d z4goQ}BQSS(cWxj%F4w{RG#0F9$q)hYQDiGv=m;{abrK&J$3&67{-}OTEGPk19cl9G z$V3IJ1ViTQj=M7sdoF8+1lVlKtU8i6w9WcnF4^aQZHsJ z+I-*t+qyp}T$G0wJ-i^qF>UF#z@`cE#H~t5Z^A3U$FIg*;QnL?-MiiwBXDMtiO4m) z$x3v`U)Ks4cNlh5&7V<<*97dY0Z@S@?7w?~i<9|ay)Tesg;wS`m_TX)=5<*g!hbFA!L zb=9QGU=7?=^*d6fus(fP)f1#@xb^p>YDj3vt*GJ!P7s=$K?FzmC@cxee5EpI%9%p4 z!^k8d-e4q&B;&nqNE{bb%mRg!iOL4PDZT@9b2gIHP3DW)lCrN!PPeU-zk=(myNz7p-B#h(Sru+i#=Z}EJ6=qf1tnSo&t`VK+ zmO}p^0i7Y}1-zd7nhby_uTXN+IL>pVm>0O<76ZG`pG?U4$1W*pk0=GJA|r-h9FCVr zXmOi=7B>`!`he_`LS3DCeEbGTs+Jti{kpTbNLW^+7?CKjjSC6-3V4ulU7xdmDoP#F zglTob;+l#U!-yFBI(Zw@`d_i$%622*^dr(cnEITjS8iSl%w4A>BJA&vaQ4j4u zN+L04>NZ3)fs&Eq$Tygvf|L088gRk%(Kn*2zDG@a1lrh^63e(M)PLNUmuJt*b2#(z z{Fw?ZTmnZ2-RgX<`V2dE$#}2k3=u(*A_ixl80?u!LaQa1=j#)D=F&HaJ`9j|Ta4qF zcJ~mwG0}5_Bv;eh?F^UCjRg&y6fj|_=4x}Kcbev5NB(X=A7{sgdSxM;%lC3ID9O^i1r-DQBa^G_tW}hy-svtKM zzCMvV3ZdX+pY;>mNr*h-UHzCg2jzkxJ7#BJerN(+ijH)Qd#JBTHpAM3kBZAq<}&Ua z=x0e&bafIjIALB1ywCwz6^5z`9D(;q z6Zd#K&)W-qeU^3ihFTol3RK~)O6cn2=yHjq&-ErK6mU0%2alLQbtx{5UC#+rXM<{} zqQJq;4Sje?^G>0eMh*W~8JG?sIkj;305<6y+@N9pg2;=IT2su-R`dH7KyjDn1O}cZg`clY0ppnj9N7 z!m*J`3CQ0kh{MaY6Mb;yrp{l^-cnEZPYQTows)cG6Mg%v-QFA6Lnj!}nO0+xJ+5C2hFf5xEUMBkxuV$DRK4(A3DiHmVuN_JOI|L*o3EHSN9{3Kpm<^|F~dRRQP3R~n&M<| z48K?`98?>Qt(Ym2SU@Ib<>;sZUG*n}UDmMjW66HxL(9#h7GKBiKkGZm(_edHf3<2Q z+A5dDQh}^k%rlRx9g2yx${~w{%1yDO$(2!0 z9+x!)*Hpqy!U$rE^ElaUdLDTm_s9`;$s<#|XJKAμuYYC)NDl=*RW407FxFyj7Y zT&)c9(|k#{crpUGYQ_b*)Ab4ZU{bG!WD5NYCX+U&>lA5#Q_L|2^vrE>AYIzofE z90ik=1WFOLST4AQINp;cTyJ?~&=%6E>jg4)pD4O|Ckm$GM31Z%3&>7il`MG?zVX3T z2_sg>DGH1+y?)QRf;=a;>oB{1Rr)kEQ*?_P^x_;&LE{L2M6(0Sj^o5v=8po&&>`da zakg`uQQx=}tM%_*=N<-kc%4JD@H$8GPSnX!P%aI<&MghS&MghS&Y^+4&LP_k*a_GM zr~*^~+<;X}L$7lvGCZMt3UCh4vo!QNw~RD|UguE!Pp@-j0%s0jYf5=hwMq zq1U-(q1U+(WhpW_AP$fOPynU?w1E4UgsX}OE5B_im@yaU!?REPwO3wwB^YH&mZQc!jC%?lIQA(|LI$b8Ja2ho+9ODr@WZDy3X{M2 z>&iEU%6?BY(Ph|pptBb|_9P+}2qQd@FqgXHz#!bS8S4@v$?ODyvc>CGm618|f&?9b z>TVcvC$=N^=RQmg!256-ah^+}yCvmfT1*1ENvP*{Q0{$~x zh8p%~4XOZBZhAEagHCO3ma^1amWBgS3?W>s`Qc-l(b#PuTa^`VQ z_uMh`vgoQHsTZSueGhwK<3z9Y9YlmwC1`O5ETpeB&YvY0MxgsPiJ5jRHw6lC1Uo}< zIgGwrmX6Em&56O!eS+JFASXuR)rb-FA-p0kpi4>~GJ^I^8F1O8;#)ieqFadp)I;973{W0kalb@%CsqNGx1D(mM4aL z9!-UX{;arK(oFnfGVe*^J&A%x3_HXSrLOa2xrjeJBTz{R`@_YXL;mo$n@5XJ-ePxc zHjN_w4;q^TW_Zsza?~eL7g%MxHY+70Px4L`kGaJ@;MEJCRo+xd6{=tMX2oJ3tzGo% zK#LVs&h!q%LBX*0L=tv7_>$1we)vh8Pg7uQK5deaP7zY2kZOgLM3{V<5CWyyg>t5l zW((JrjbLb_T=-9oxSNGpW2Qb;i`5ULT$OI?>NdOt3_sW z3<8<}`vIgqoeKSkB!~zP;4O*(#Xfd2wxQ^xOf2q`uuoln-kS-7PL7?4$Rm+=@3RXs z??4X2OzlRF12we@IsP<=%0?cGJPA3uXt?;Iof?JwAo9`3tB{XDJ{LK8T2&z5fIJTQ zM&wfDk0bAexNuuBlA-&0m!aUR02Q&&;n)x<^vuD zQ~{m`Gy+Zlz5`Ib6eR~F0hEB5z0g?)3d;c-09ygi0`>x41snpL0GtPW5BQ}Qe@8y= z|3{v8*~OwSc0DQ)xpz&Ih!WnuAQ6p|v-RQd)vo{Uv>(A;mD= zFvIYmVTEC>VZY(HVX-mR^o5Bt-84m-P39-eYPy@gLjOV!vW&CjTNYU!vbZeX-&odJ zHd(4IeoMfz!}5$}kL4}PY0D3mAy#me0?kIYU)7{)SDjRSqB^TOr;1RgtFzQ|)eiLn z^+I)#x>Q}JcB%iWZd4ysH>q3IlQlYxLsOtB(v)h-G+Q*UXui^1)Nq<^O^>Em)2Hdz zP}(_KhjxK>p|;4Youo79th#x+GTlqMX5C5MS2|ADuM_KI^rQ5X_4n!L>v!wl)_3ZA z^%}!G!*2~w8@@H@jTU33@k!$WW4&>X=|R&f(>ha?>1oq0)4Qe*Oh-&#nJ$>ROh1~^ z%rne$%qz_6%mMQm^H*jW9ZmmC_tP^iFI)a%8ETEUdK<0n)~~Elwssq(q^RSV?Z?VQ zl}Y7LeW(g(cW9r{{z1D(TdUoteObFz_pGi~SFd|l_kh7^SZr8kC^x)sIASHnG@-$^c?yz+Dq5dZ_%yvSM)H;M9UP5(ej98jpbQOo#hQnizOywN`^gSb;gE_ zw=zD=SYdnA=CxJZp0Vw=)!AOLowl8~akd^?pY4{7vctGwGJ}*!%5^ zr}81?N@b(EO?_PbojR!Y{-UNdF`6-&sT#ZH0Zp#PiFI44c|x;IvrDr_^OEK@C|`?a zu=X|WANBk6uj!lgZTfTif9SjPSM=BQxAam&oFUm@Fl1wK9x}8T9;R2*PtpPU_jE1& z68$!PnEr(Bq<^4$>FYF4%Y{iZL4f+Y#VGRY+u;AZ9my4 z2Ohda6cwRNP)<42%z)N6_`r<-Z>Oml(x5wp*{&-^#@LGvl|H|AdR4f8bGNS9-I zS^5C|K7E=#M|aUb(qhXvW zZrG?&iYkIcMl0`8se2RU`?UR9N;gO6&@Ip{gy`PWeX6^l`w^Q|u8-H>4@0yWeg1~M-D)~!I%E1f#Qm-5s%eDTN-v-}`ZAqr z(Oc}6EK7;yw-(m&M@aD|3|O4C)q27@HzO}&U&euqBN?A%{3GL1#X27=wJs#0x*aGzD}R{dGEU-deK{4VTa z8$^8?_VB#wqUw89kLs$bUnN${)Wg(q>e1>H^+fd)wOVadXQ(sPb6_i-u#^wOPClx3 zt1;eQ#16=&q$-ulbFgj-!z8Go)t`>eLPv4JWur7ByEZJTYc?L`~a1ji0yyBs4$38N0eHXnyV soKs&^cdKE0g|&8RSH1n%NYT?Wc%#G5rif&bB&HOj*L}N&r-;V>FIjMlivR!s delta 18501 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%0Dq}K09p|Cg!w4?Q@CpvUHpf7?GBDY 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 KX^A?Yr+)*f;9>*- literal 0 HcmV?d00001 diff --git a/src/mkfont/hyfile.obj b/src/mkfont/hyfile.obj new file mode 100644 index 0000000000000000000000000000000000000000..8f5cfdc3db3795e6110c476382eddc1ddfd8d578 GIT binary patch literal 15249 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

      %ntu)~ zpHK23m++q;J0DZQqeKO*JbhEq4ALcuq&lm!jo?R?cbukJJ3W6Z7e) z@f>FyOGLj4w&<_k2WZC8RP^&0h8g)JWjlWhY@K#w95hI=CUuztgqSdYI&eY+ z$-pt7`(QXmIMQgYV+3`bX;->dv+^)R=E$7%50E z0ppi0WctYUc})f`Z4BMi!AHw;8*E!aInbqB0)Bc#b?FDgQNk zYV_0SO#s#|9uHyE1g<0T*CyoUmy{(T_5+dZ)4Q*Qf{JKx-Mu>4hqT)8Rap9ru z6pLuP1Ero?N}_K3Hj?G1={Px z^=J=>m!dr^j-tIuqAk*mehz

      k*#pny2QUHH9+)$!Vh{lcrVvd-n(0l2{9u72U3t>` z&#M3X9QaW<TIrBcOu0D-# z?#cWTAvJ!!eg6&5s@}fR*!72Q#QSXcs2t?2)RyNe3u;(^a_E`O{A_9BCy;`fyIBh6 z`??g@H_uYlUq04)-uGYW=li}hy5>jM@BI2bC@mZbBil= z20|3f_qb6*^QUWPq`;-(Qe|O7Vs(asH|Ih$^&PTY(q~DcgyZ3YO+4XO*|iOr3grT0 wtWZKK!76n|biB&8Zumg+xO&xXJytGI4wmuXH(Q59c5STz(SHqWBSftFf1|6Vga7~l literal 0 HcmV?d00001 diff --git a/src/mkfont/hyfs.obj b/src/mkfont/hyfs.obj new file mode 100644 index 0000000000000000000000000000000000000000..840b0972f69f21f2fdd9d866e25b697343ca4a9d GIT binary patch literal 12178 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 Kyy1I8jQ<7wYbX!^ literal 0 HcmV?d00001 diff --git a/src/mkfont/hyimage.obj b/src/mkfont/hyimage.obj new file mode 100644 index 0000000000000000000000000000000000000000..270ec88a866b7106865c99415819fd7a17b966ab GIT binary patch literal 26911 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 RX{{cmZ(Dn!duwdH{9mPrnRfsH literal 0 HcmV?d00001 diff --git a/src/mkfont/hylist.obj b/src/mkfont/hylist.obj new file mode 100644 index 0000000000000000000000000000000000000000..cb779f07b2706736f2d3d583648e661a678a7f00 GIT binary patch literal 14535 zcma)D3vgUlc|NjM(rUGm*0N+fwy~8LBr#DO=K&;y=%=PQc`wCXV3l5fBy5o&wtKdIbBJ0&$Ef!-*=r-3o86fES#>*H_p_eN9Cg9cj>3- zJC#ur3$^3xC$6aIk!xP5)Z@VW>sN)4A$%27COgrnJdvc_`lEwNJ@IO# z_5f>Kx%YJ94FETo2q)ev-`#3F1H6uPEug#w<6nqyx8b>v*}U#fz@Lq9UU(UL$AI_0 z7_UMn{KWLab^Q>k6j)dF2uH&x@3jlH#kuvR#!~(GE$i#`g$Z=V|6ibEXU#UOvXd(r zMXNH-^)FZbvcx{~mb=y;s^7JCdj76c_bsk0H|{$5;8K09F|l&|-aAy6>VW~wVtxMf z%G%0eWBe-b>hT*6UwgdX7&oso4;~yZuQuwZ>JQbIPmG%@r&jArwbSEAYp2)hE6d~8 zAD%dLXyUck-~8H%LpQ2{j24RDi}-`x#7QQ15W-K_&|=-e>c-O2%KTiTHl%tpNx+{U z0ru)rV+_w}Jk$KCy4|RqGFR4@8>0Y|I>G${uGAl@ZBxDKP{*<~6PKl~&x2_A=}Lvm z=15z(7n_IA#J6RuzSYJ&j)wjC#P-*T|ZELy2NAt6y&YPR)KKTK{o; z-_cw@(yY0%`e5hUl#9lsaeH7~dwFYpq=9!nlE16IwKh5}lm%TVTD<{(KX2MOy*f|# zGUt}3YMXSim8ApBr&iziQgqzSIvtGcMN4m6ohR8*wJq~c@X#(baLh6MpkjGPEl)$Y zMNreRt&%?m+!GQjX~z$8<&qzmhG*@Gz+GxPz)pF_s^H7;t&%xAj1t$T&0u=WJ7H8H#350)o5M z-p(08sT>qMt5S7*F8JwiLDwrEn}r1(vtr+AQ2-7=fN)^S^0U=^-tu-vBiqzqI1(*L zyK_dj+8)9yRw?IMrez8HJM(4ueWo#Y!gI~CVvs^3&c>^*9<$S(k`ITXey&YpojFo)r zn7aql2(j(ee@NX4%V)0lEz6kPCAMuI*Z))XM>;{r0__`K|;Kb+rHGRWt&$w*qY- z=S=xl(PcK-4%lA-mNGogm<{YwzPulxrvTa&94p#>i>B?8PfgSQ|Ap)`?6_tNr5W0v z8XwuL@RyikP!)9B!8V_z$2|yW5{@h$w;O;j0kA!=j+vJ0+vO6RM{DhAj0`z$3o8Z< zOc8c&Edl90NqRQ(&B?jt<=RqqeQ~jNniD_DiNU6Lp=xL(ijL)4MW?+3%o=MtOpCpD zVAQ~9TD&caO9KBHl+upd^Z^2YH^#({QGuki+I7Gj2+DvshU;26I`?k_aYvAM$_B!C zDySGotpL7ckVl5+P*+>G#KAOy_7I*I@wW_(~Nn8=pP4!Le%q{ne#F;2UT)7FEfmE{u*YZeW=#N?$ibDas_ zK`i;Rt|iu`$Vi}0*}MMctAYOl1iGv(sl+>u)3S$mRfc1grtW(a?z3`|~`D3nsI9K*> zIKbKZQvPF+=EGd1sjf)S6n+ss}yJz>zL~yi5d>w?bCn^fH|i;MHdhXa-7l4xJjzl?>-396Zm6rBFRUjC7FYvfX&*vIUDNAYUfzzIIj&dOD*u z)eO}*d38!|h_F`q3O%#w}vK7z!34oze%vq|M&rr2F zOSAJfV37E_0um8rouIzF5;Ul?zsC%!QKvGhj5bb5vFjJAr6bh--*O>4+;M2OAK`h} z&0B$8bjwIT4DK!0oFVVG0lSrV*(d;0>7#~c8#o6trxWwt#N@uBH6D9v=Vmj*jr~QS zXW|SKrBc#)fR;nBnT2xs2*ck}K^ad-7i$Q~I(N-B86pr{UIe=8Y^HNl1B&er;iaUWp{rdAPfR*) zn3o8kPb9TN(5kdw8z&+(6Lha>FgufrZ{V??R`RHCs)5rw)gZymI88?RLI4kfU$78v z6=dP+5CGDaQIv28lLK~GSHhu>Q5Am%GAUG*MZ3%;sX`{%Ue`pO;gJk;lU_&yhH0e_ zzQwFUvfLpCcnpa)2p&Q{0ocB_Qh*1lmLh;V7zy=&P#CQr;5w3^^Nvrt93C)C6Gv0{ zS>=eBm&wJg(neBr;jzc1E0NPbCI#)Rbd}36JO*El$}pxluP8+f(NDz-=CWb>AaTc~ z;7kNadMd${V*ikJ^^VKrGw4SA`Q;;4i40DXhAVY8&G#{^k>OtGR$Lv927{l$g(H!R zP0QCTGfA)n>dPBqe@PO=V+qqzbu*qn1ibBpm$P?RrjMi8G%6eB$`4{>2zun<8^tdU z@e&wP5?0FQ5zFT~R81d_L3;nA_w+^1L%;YvP)Uh3Os8V!sO$nzdV;B{og>2ULdhLs^Lb@}L5|N^WH(Y@nz^U{1Vj!wsklGlNtX;dIF)=Rs zV>%C!i)tk*r>KSZU@p#Gt!a?8$!`KY%C+DLGlrLoa~DIDj1A%@X38j5efWu4pj1>` z&pNVwgR8P`9NV&NWL3$Ec_+!Ym8ViL)8n{rB=4VZ;My%ra_;~>FJVlBn_HB~sk}!x z&~nX>Hkw(T7A9({Z_9)_<_V8I zsfNv?1h<)RE+_!**>8lhzU zv0#+-5#WZtTQSQyi<+ltlSQkT#idrWHV78i@Jm3@;BLqD(#&FJbULLnPk{E28)gmO z1|flwH&W}xFB_Oj;=IpBhAg2F3CEeadU>H2_~cgtN5Y5;@%As;A@&lLWmZuL#^FZk>K(YY$BHfwecpNC$B{+Qv zHAWCG>4>NCktbR>Jq{@zm*AO`(pB*oJgtP`Os3os_ieQe>D#w)ApI*=yo9DIPT~5E`&-$w?+kCa@^Z;RmGJN~dE#`14@*e<^^Bj)$`aDP3o&|hwo1(Baw3Nck6HFa_Q7F(Gzm7Sh zEF1Oxi4ISCqj-50UM|0O0P{erYw<@J+`EU@-r=t{_QMYf}1(VG6B^b*HtGuW4Je`5(HaG)Wi8EorE{gL@loaIm zu2PjY`y7yUa8WO$OnZC=aOQ1RHcYgK$E9e<6V1meH(6wk!H;>=8~INZax*SR>Fi1E>*Q#h{z}tWh8%nNjGN>6 zlXIuz-BM0V{IQ9H`{UFal~;l9;dY&2P{i)Q^p9I#N&ocumQt8INJeUnmi>bs!L4fm z;iyA{#(ythy|M|(iB1kZVU0(&-hu{@S*;4WIaCn|2*VKN3NtyZfEg&TMR*n)! ztXcdfhk}|npx7k26wwDDSI*+qQh4SRISQ1cCEm?^YrHeDL5YTE6vdIT4jj38ogqFj zBjaSAO74?7^5z@4&8-1{mo~eO)s_N@hECJQxWgoIvLpzC;melO()eZYt;i#7-T-^>Rrz zE4r2ta7-o@dL*UBbwk@tCgJyh6yG(7ui33*az>}#`_9Y-eA$b5cW=fs-iKBBp4fnT zEb66Hx(iuPV40|wQXYDH1a>s)rPRNpccs9781+(Wahp=N3GCjemr_4Pk8j)!sPj=T zrCyIqS-x>IpeCbUN>w*rym#NdYQsvp&tphE{1@qsVtV+AVrF`yn)D)A^4FhSPu%e2 z3pWApnMuAnrZ$SnjcWSrbXq`=Qb5n(w`TUL$qg%WHoN}PMyxZpNk z1*`99Aq2U8@Q4t(K(vkR-nk~Z^sUx~#=e%>iT0T!vwOVEd#%Ta=WYN z0Xs|C`EY>`F6Dp#;!Gr+h7m$x+B_rTbDBe#;AU=}9(@bl@+v|KnX^T$1~KGx=HaKh zgnlL>lWa<=X^h@FofaCV&=>{h8`bl|H`kaR)ig#m4RJ7x?DiNo7nU5WMzbv@cE)oo~BsSLDNt0LN0s~NP{s{7DRsCBg0sb58VSZ$!aQN0`OO_F}G zF8V#{Ptf+MPoW)9e~C7&{tfMr`Vrb;^`B@*)J3#AR00|sl{AfU^b=}7+N8P>ZNDm@ z9Z(M1VKs|(MBRsWOg(^hw|WHaCF)&h_o)w~-LF25_JAaKr9O>*mwF0qxB3#=UiBYn z`y|!lbzFh>!Wca&g*K^fLffzIK$}uUv;*7(=>3zUcRx+zlMqcuGj>A-?XMWqDLBs2 zmUn&oq?N*M=8kRMU%2~e`jTdVdr7zId?l7I zh?4=1{?7;+`E;eimr(ikawiA+mDmO_d*nrC%@bD(d15aGq3IDjRS#aa??Hdh{H7PV z&&=O^XkvBY_>U(R@me-;4&mLPHu@j8C< zwS71Se3L7;e_CIiCr8~~d})6Oy^oAO`?e6b^)-BIqq~bQ?DHl4TR(F>->r>4s7K_3 zm-5xNu0iw{@y8eXW7Wa?^#?dAI8{5fR->-?A!On>=Y$`wRU_l^{4p7rSPF5pd(_lK zErhUb&SGY2|JZm8amXR5@pbYagF_ZS;pe38wDHqUnK_1^acMO_y?BzzjKfx3~^$<0psCE^L$SmB<4`)XuFdRKQ~IN zIZWZHox>y))8z0Sf~}iY@1=)!chPT%KmGMPumE+c zik2*aA@xB>5o(N5Oak%|{CyerB2D~@4We>>m3tvSz=`E**Ymj$K~2fGmTM4C?bi83 zn{_@O&1!x<1%5&t@CvB^LHkuWFwfcrc zZx=H@`G5cUXMZKsuh!};;B8v%@Qv?53Vyf)ZR;Xeq{V+L;z6k0H@H^l8wX_!2N(I) zQc!<_6Z-~fHD`fn%cs>h`T+0l;y)~D-{@`g4Nhy5qQf`(FfG&=r65gPx{{%9$L7eJe~;JzWgA-eifJcFG`3ZMNX{<^!6mODPzfVHiVZXt79Gl31W3 zD0;lPU>i?(-L|m>Q zV!rRxqq}EjO)QBu|Tz~ZO-Dlg6?`*F;zW&te=0@l7%U9QzXEv9g{D>M*1#C}mv{$w_cQ#i$ zmAm}AD-WK&ce&lE==bUO+*5J4I_>rLv+a#b6@7DktG(9RuAFae@3c2JDi55Vx&Qu| zhaWie@XYQgHiGat0uvv|oPDAs9x@O;)3=F7A8PGM`jsnv^Z~8}*p+Qxap=8GG z2{@-t?41!gZdCWpplOF(@RfK$&vzFVBM{aD>oN0&WMDu|!~?TtSZ&s7razsG463ns zBw6ry0?(`fx(AYw_48T zM(dUYV?f<-0ET&`wb411pbV<%15mWBl@uX&AcD2IlCqIMkd6A&8yBfAGKy$(z#2L% zb9rgyDQe~WB7q5D5lTN^Yjs-b2=s-KptW%^9XXNA8B~Wb;?JKQx@R-U?{yBVT zva@u__jK1b5pn`;*1R19e}jRWqFK{1eM^t3mSb4XY~;Jm&~nVk(=7iuu>Jv9ha=r> zG@_aYlZxD0Eil7i0%M=RSP^4RXfA})0K5diMAWbhST7CSFa!O@gvg=&G;YDro0xJu zsx@KoUg$@m8~J9Wz3Xy& zGNEwvKmr_n83c}Yw<}H&YE|0|j$m{Vqhruj!wg~hy6YQ90o?#}+=I78p5>V$)Y|~2 z{!YG^`rZd5%IN0z7SSP~eH>_`hCLga4UfJx1=wE!R?>W5TZ}BH=H3j@p8#|$T4-2d zkEAUpq@=0;|AvWA*q+`)X`cG0#1HKk_;sde6a~$8tj}g?aaRE?!jQ${ZUErV0GNu* z1>N*Q%XMHpsnlM>$hhtGu%c1H+`{z1J0QJRNzbD9U0&MQXsuOuS65rxocL8vjQ05p zMMEWV>sYRL>(qCISx37D)1&Xh7}YRZ7HdoVlE8lfrLygHZGgaE$}o`=0_>DpyAPP7 zkqd~ed7f#|xW5R*!%@w4HMsF?6lmwo2)3k=N4n>DzaNzW-T;|G-O!_m@qz(pQh3tf z0(xYghXauE$AofM)Se5?gBiNmTbMLlH~jN{6iwopdK!T=VnrQfVWjwN%sTAtr$|lj zfh_N)e? zU=-Q`Q=(nf^f?Mh$JltBcT)o&1^5;un7kIc4N8j-g?YWM`L`xdCjwJ%`c}9ouIXD| z==u^Beb**0ZESNYv>Ilu5k{udY#@Q^8nybrRJF%ok?e++{~<6jX878C5W*9QOX#D7 zdgq#^zgX8C!!~_##tJ3xA$;+H#ZkWMx;EMDV5DGsP|+BkZpF~hZnU%kXwj(jcFTd_r%!hOF)xTBwn= zU&n%ZZiU8i64XW_Bxh8KQHN6e7=}-HHMp;*_i>bDBa+C)TeS=t!y{Pb5anjoG6hC8 zhkp7Q(3-Zr5G9aiAhK(I7OZH8KZcp3SC-bI6_nRF8qj(_2-q-quG(&u_Jl`Osx5fo zX~PX4yq~LA0Lm|;?&JgU^F*d-DXXEU+Z)&lH%B%{0zHbAM2Y+!wmVj%C#0(94ju%J zL$;Ub5*fkKsROF+5LM^dt~1N&U)ei-p3D3lb~z$qu0s3dqk>sOUXzAN9yKxy@td@> z2e4S#GB^BfPGIm9$Q-euC(SUROfRUL zX6V6@7|8zzQ3`P_+^ZqO3Ovi8R_fG>x#0PTnwm{>dj*hDFlW27Gy$PN4oJZw zIkLwG;f>^m?YMTQOosv3BU6pRk?vfCf!FA<+*ARGi43Y-Hiu^}TQ?a3YA#_<^|PYU z(&??GuB&FzYVXc9*(?QXi(%4!egPsX&m+I25tRAvhgd|a9|}ba^?GL6l+P~s9%(d^ z6h8Kdv=qi@?p8&=}(HALd zK10;{BGt~r+ZgfFk_WjsH~IHKq1@8gMHx}4B`IgadefPsxc{1ztvIJpPv6J$gjX{o ztKqqbH}vKM7nvus9|CqSvyut`Q|0rTZ)rI9Fo+ZL=ZMM7k%~Ao&AsVlo~iqLK%dM) zN)kIs=NYOB-lf-FcaDB@3c&vW_6@ejbZ6-%>S4>tl%+95{W}m2nT8e8m8uA*GF79R zzk{KpzBy|Jr~o*e3SJ{0)W#%g|GBWo%Q@}a*PAvkjtdbC)!e49i||Ngj7^f1_B^%m zEkH|+S_-38-A1bte`m}r0kVYs<^re6ZT=G`TyLB6G^Sf%Yen0OBM$*If?{d`R3jDE z$BDQDL-3HUG5(T^Z{l%;YVj#xih)vGf&i|9U$77-1F~>;3;=0UYluUG z$x$mV6=AXq6vgj@ObLZz!*aPKMaVEZrF)?nCEOWppPZmiE z;JM;=06W>2?0H7&N%PE6Bvb&Q*dM>ZbtDAW?2vRhJgVtBPMa{SU{2J_@ZmM7BdMeC zSny~&ha3gb*FD+V#YA!Q2D*RutUY8)U)-1fL}x;ny|%5$a6K4jfA zr!u^Zc?o}^J7+p%@GNO~QaV$8zkxL-neDv5OZ`uyx6_+&%JGnv!jxr31r|BOHBIy{ zQGs|YQhEw$I`FRnZ;EiY`VmtPak@H(+J({ZS1>XTIr2P>dKTw$aSVpdp}^JW%#iC) zG{ZRAq#2IZGn^O??c$d~r6k(W?Z7f9>^e{i(QMN)i14KZAt?rkKn+5lP#?Gc5}x*M zUF?T)9nP9dxycua$gRXJoJh{pl=eHm7)%1^l9L;ucB*AUrFTVz^6FSbAaOhOv+>v1F=k) zUTJX*J+xXl0XO~(5XKw9Y}H*z4UXzU_fwS|BsPm}<^h zmch738^3}3(VAgBX=C7s62}+{hX@7lylWYhE}xEc{f(WQ_#{I<$vHwD*`@&!7ungc zV8DE?KsLk6o15(T5}o5i@j~S4RdR*%B^RaR!p`8eln8e=l5LE8{SVy zA#Os->@${=-eN@iV?6v0fG1&&t{2%j4BI{3hMHv~|4{@jEI&N&NKwk2vFSMyw>;57 z;?CIkjmrqQY9P^b^P8g3IkI0k11Qwh$dCxN-Eh+Wxf6YfSYp97n8f77XVI}c1fWH)c?mULrSJ06y9 z6Dx5vDtn4Dsh`n}!Rb5hKxA$x8wsN12pe<2E$E;&F)!Ll>z{ebCr^EXL57opiED3l7&12B)7y)%Kj}$Qa(+-C^%TQKF4aM z=Fp}85>rt6cAI46gey*%3n(t6?;#PIwjgI{TdbLA_mUQ`? zi|7_!TtjBywDVO>iiF**f^(Uur1 znb1xiltt2hSOrM`iWP69sv5Ish%r66zV%q#f~rXuf+8J86NRdzz+c1+bSTkYWNiHc zo<<_XUXvl3g8WB7J%QA zl5~m6jmuNwbbrYr_$w5FktlQ)a>I1TeZP$7@+=GYq|-o7zH$JI-4iX2$${3$)JMZd z*D~gb>SK{wY%s>)?={Me{O9Y&yvI=*doi_ja#R8OFjZq}a%$l-TDvQkm$tKPDTf{Y z{lmeVv(TE9OHt^f-%U4YAUiPpqb)1ppElo9$ufgXO0Ch8KWGt5U88Wv)HSI5&jU6j zNk|T4a%S0SKZ}@1wqC$!fuoDW{al7?vGo2d9;efPvYHOnmL^JKeSur}X&^a}@aRgZv983ySBgp!p@q{_AxF9bMLvbh3ehz2_j1sblNps! z0r@=38!AKcW<$rHfxhe0Vwic+KTDmD{IEVk<2~`%PXJ+zf0fG_FtzcYCO7zJD)pv) zbti?q0wn20Y4N!>v)HGp>p0c)q*VN28y`o>HKm_tP-eXSDG-u)D<^?Da}ocNp+IJf z5=oLv5q%W+p~2vPI3h8Qx|fgyLh5n==LGEU|x*z=S@vYm zPv#b%H{W^ggw^Bb49EV6y5o);^B! z5k;-sD0e@JE1!<2mvMc+-2EZ0F<$&87Q4fPB2MUA?kPMNo7~@oYaXuz!7|htT!+=8 zxR&s~84Ol6a2-<>T$Kv&&8f?{=G6wSLuwn>5%nytCG}}s%j&bZj*0k{dJ*>n>WjGM z)R%D`QooJsi253?qv|zW%iv3?JJhr);LSO{x^;YI-&R?gf%vvqO#2Q#a93k*2? z{P118sx%-kl&x%S#V}sauHYq;nfArEPmQW~fs@0#b=`OHsJ+~P*F{h6df&ezN4WvM zfycM*x}V;6?hld!4tCO0E?{8xD3VxM}*5$P|xhHH8kk>(2`?2OKy`=9^(=Rg1ZoV~IlG4;A{#_k%tU8%hCKf}ittJAdys==eO(fM@v z5PqjJYWR5d*z(DpTHj zw<*=F4yz$$zb>HXhNu`;7l*?q|C{t~J6=68wLDv!ojG>r^772_VRVLmEzmMY^%ks> zl`U!oqde3G(l1jTvcNX|&U=<0nz?6bar&N9_n(-btKDR%>f1);Hd;JT=>+;+Z7I z7GjX~!qP({eE_5ZpnwxI`uy@-ZG=c99U|=_QhzJbt~M1{d)KhA3>>nsguf;hx&scl zovFp@Z5+8JK4Yspx`T$Kb*QM^rDs zR%zTQ<4bdmqCPo7!ftN4u!4^0(;-51T?BJ}I%FfZE*tsNbH}MJGTN@Tth0tbH9LE3YWjX^<)v(R-bBvss z^$hY_6sq@k{DTCqQ6h zW4q!Mt~P2J<$jD#VzdjoDi|&-UoSb?jeyPp+HJ$zJlnJl5$a0;rvA46D)qe#NR-jG zUoE0OpsfI{Gi!~xM!}|U^#b;HfTc9Y(I!2!m@91q=!*bt@+JzV+azhT=u*6 zdn{XTqBKtZQ{sJB3;Y^WG>U>|+tp&Tw74^XCSk~8af1MS8Gv5Tn9vQ|HA_VpPbjsg zFw$+=O{{2CFt;$U{tig*Jn5PAzWb);=Bl%!%O_4$7di2hoakNUFBA=x#I0kw=B-oT z9%gN97)+DCH(*r5Xj-f-@Jj-}3rcCrZrA{UkJmAg6Ux{rwRSr&JG~MhmS)>Vmd5>l zAa3w-R!M^!k9lS7sNunuH1bII>~8g=G{C6GRC_+FdmiHj15ieI(%=HRXB>qCkn$Ua zazoU137Q8pbg}PYQX-#qjyj%~!87&L0crS(TF=5r@duc-!M>UzHN6Z9Nw|WnLK|8F zpsy*m1QMgA(rr==c~Or?0qQl&)i*37!p}_2q6Vu@o#LW7jBK#Y0-~VjT4kn0YgE$@ zQ$RY#y8XNx8h9tbJCI;vnp-MRT6}09*YlcleekrUZ0HrobSK3%9n*G8jzmSLWRaH{ zY_r!j3r4QsdPcEQKmye@YW0^?was7=?1q;ADlpNNb+qxa3r{32p?4B$AE_A5WL_&~ zEyE#aa)huEzWBhRH#S--S!A=uYTL4*qAomLkD>UoH#h3)sQ+Em5SN;jN~mK|U4vgx+)wS>4WRu13~Ajs;`f3XNkc zsC9Tq&JWJiyc(tWMhtJUb8ufyT zz_MMGKw1`&U32Qeigx%4%^;SmR4TJIfzCBXBjRT`x|;Zdb>6SliMTXOe| zaP=X8V#m(Zs(c`RjK~x%Wfea?Gl#8kb7Zrltb4waD3QO!cDr))gi!U|!5+})v+O{Z z$OuK9I-u(Ms5;v!6~{RJV{506bD4j{E;~fbqtHJ27{aW$U7=x;M~w_a{08j|Crp(# zjk)Dhw5hT?M&PGF!Z$vrQp}ddixh=u9(6)UW`Sh*umywLL8jk=p0sQh%CyUQ!*Fdl z5(D{vgItf-0v;#D&6t$Pn+OG-$NgM~XO@Pk~4tF$$^L*}XJe%Z)+HT=Tqt8ADetIds zW}h9WV7XjOM=8X$&{y%SS+>nAwUVb+j0xL8)YL4R+ou8P1anqtj3yuy$N?#sBuDo6 zAiR-W!t!f($}|DM8kuSgj&$cF3_M4V<)+$!7|39h%SQ3cW%C9@K(0g>4nxhXXtZ>C zYpUU@^=P$r=bCJmg0;jjX+Q6Uh|=T8FJS~_zIzdiNcBUZXs({GTQ=px3yh9JAxL4= zGOecjYNMeSCGul%F-_zwPG)JvF*94=zr-iVfV}7+lQwl!jDB<#%lkQizEJc@iki<5 zwLVF;^B$#(_+iO|TpZ2(6Hq9(Fm_Q!RBB4fSvOxP9;Ueeo|H{Lr%+En#dD9HGd#0k zmk@90&Fd~QPG(;P>}F;q6#%BvM>WUPaPDCcC+0he$;=UoxNe$j)5$nf_eG#*>LDeF zouu<1RR!Z`ptF#e*)}5%VxSWbp!RVS*$BdV~F}O5c-U)>C%-(5l&^QMm7Hk zLmM4q%q*h<;BY8-jeJlW8PxuV-6k*Rv>#k++PF9_L=exFDvmC~Bb6>*0fw~4sg3Ug znkwW%7_I81v?}p;#>^BTQ`m2`TpZ;#zk>$ zioXDCYfG}{8L27FGe?n7I|%vy_&%;9AvkBbq|4z>P1kYSgkhBri+UM8>IiEp#+B;!A?t=Y zmEon!4)}9Rhm9f`JVY9{l+IM&pJI&+vz=YGL;ut0?er#`a%`j}H)NSnfkjRtr-}Y0 zDiDuFN>d?C2mUDVdI>L$zQ)j9oUV?bc40L9Fh;r|N1mrq&*EGzj=``QFPHSghRby* zngmWZVTPmiBm(21U3?H!QlbsrLcK&`=Yi7hjaAGn5k3$g1jPUms6prx>f_cQ!_(TW zi~UfpiTdSIH1i%Jax4B7jwfeo%KY6J2VJnOe<7e*omI!t|++nWe>#}S7l|maoxg@ zbt7xy0g`ViK&2$6#W4dVPfyoyujJJzqepNQT!M~;SizSK3X!flrEq88~(u5y4B1(zk7i8672l8~?x{43t4MXe>@D3lzgQzO z7FF%#JW37*-M=9@SR^x2csiK|N<0t7JlsS?Gsp1QnKz5D$s%&TS6{;tL*OHil(0#h z5**pT!iE zwv9_La>5mRj0qGEa<3r~n6@BiWJ|1>Xt$9jC5;mo4;QSWXps^WaPaes8(L%%w}HoJ z5&1do=B8<^PdSaT=H-AVaVnT!oH|);5=dPbMCA3$&%pC0?4>2s1eWu1jPtr>sHFl6 z?zfvSTe$h>xcTNgA#U=M0K$QFI56*47{0dris)58Qou}EWi>2`#OM?tMq6SmWWw6I zUX}>&yM}=DFIe$9s;V%C3ooXhl4IWOUoqw6mVqKo;F5%@q`=>U8MuMO^&w;D`|#A^ zA+{O}!4%}T0g>|+&eq}iihKJe;9FV*g~;AisWMJT$r88%t?}!a)6c3dyub+Elh!C! zUV)X%?+d`(-fUX@83Z@o{zbF@I|=#a3LU6DAn~BA{t9MxBIt%*OkaB%Fh8^5%;h@u zSSR6yo3%~dr5Q1dCqqZC=R3dl_x+cPJ_W1}Z4}a=RZ)p@&A3*H8pSJjfi@47%mGi3 zIjGvmW?8!ET!O9(FUmP#Sf}oJih}ORN68X=oCWqY2&t7k_PVqBgQ zr?*Sez%QGKgG8ZkkQ-(guDN;}X*6iRxp` znJh4*;MX$Bjr_;**>RhrwC!YQ+T>^m=n1OE(Bu%pXWZ0I-#4{bPmXeS;jcLy+*XgI zLG|Og4z90h^#vpYMtj_{O0=hmHx;H#7#XQ0n$iU=f|;rl-WPfTmH%$Q;*xXZd?iPa zrJ08i0?F39Fxt-1N#g!N9oJ+f{SG`1gg;DGid0*e7m5979XroQCV+TFiWpKpgvWL{ zgVCyf54aNbgYyMXqLdoTM4V%#MkEnhI87CDq$^P5y-1`GO$EOemn(A6qB4d+KE`T> z%8)c!(DB=zQ*vlAOtiQT3!RVr$U7l*k9`{uy71tk4^5#rT~$U>$kRZQ zt0m1prq(U?G2Zd@*i4UEe;nWvBwQa0|}%dEBp z{7s?SLtkyGhp6Z@O&^7H&eF!p+!+%}jPj;KEr5bw=Y$?YYi42B-CEbtOBwFgTC+qu zZlk?!8Psu{j^K-76K1u0b|F{f7O9gYtX}R7XaK}c9maKTQF0SaO9)sxg9rv^*MSt@rKn$P8xwM3rrZ+`OnI|2OHw@Cdo`Z+M_85bw{@!b1-+Eo9DxZ7Y+KMv zsmIadYbc%SBS9~vHnky132aNyOR2v?4=?)x?+ZaMrS8CmCtud;RqrVp0bN<40tA+HD)k?-$HInvoKvieIl>WuH zx12w8?^AWml^fQ>+VjlA=X)N1(meZvwzE%OS$*=t=xQZ>u+snL8&-{ed$o`O-J}!J z6zmTW`^B?QMu6Q9Y^<6AX7WggC5s+;+PF+kE_AFKm(QM$oHH)37A_wwWL9=yPPB5l z=ZUt5&o8%K=)=@#;j#~WwC$0|g|GUMFGtkszY49h7n4V^wSz|HO-X$J`yYcYSi7Z= zJWv>1Nv>7~&s8pQq0B8t@|VIkK{Owb1`GTnU1%3_cBCK?jom z7QUZ0F7c7_z9fpJybl&Guj~67?FAz@s2O4fhjEl^m0$m-zJ z93;VOWIQ6h&!cw;y|{V`J;sW-x`G~KPh7eBY8*Yr zkGOg*dIzL;8a>93xOyXc`=#f^`MQ(y6qB4mBP!+7`;PAUn`^2Xxr5} zvFwo~mvn^ybLW|V`rPferkS5>r|)C$@`^%k^S)FWuOs&}H@rXEAPL%kpE^%BjM z`Z)SA_19?Q>RGf&^;NWK^&HwR^%Jxi^`B^aCDJSPOY~!EBcvKv*P{hjXw&M|XuH%Q zv>9ch?UgK`R2luKx(97c9YY&e_oGdy8rr0K6WX+TFWMeO1Kg;dLAynL4eeI-L$upf z3JSPErP1D~y3yXM2G9mJ`P(XGWkRm z-VluNC1k!t&UfmW*_HB6RZmTy3fLu%8a{SHM%a)tEre3{KmNP5!?QjPWh6Lixavc~ zSJeGk{u;ql`5Hp&KddUCr(pF~I`SqgMmPI7!RmY!yLI&sh7jSI5^Md? zvwa+{PHGnZ7P0zvK@3-KrL#lE=n4FUdrzX@y849>BCGEra?7WJCm)BaliFwT_YtfP z_2Lt*-b!b$j45@Kj}z>jl5Ji6!&p@yvii|rR^w|CT_1<5lNxc7D9HSOpzvz*vwS<; zp8=dYKdqD*wfOP(cWr6>qJ^JXe^OKX4)lE-@2B20IZ(H zALC9F&Vf55D%ByoM|SO1%plE>J?bsZ5WZk8F|HYBx8$N`$S&p8XNC6Dy3@Clsro0B z&j28#Q>}aMhXOjj=Q8g!KF$Ak!-x`%+}aondf&zOT`m8Ka_G>cmbbNRek6bBZgp4d zzlf|EZ2a#A2PQD9Ws?7|6*8xZV#|Luw9X5M@mYcP28Hm2%60$F-}&pUu}|*(I_f<-?wgq!TDw0=e_seOk#%NZC3Bb=^bp zt*NN5Ru5?%C)7h*6H(7zdZ(An-I9^4aphCgOi>JV$H!6!)$`X*4HgX&^`odTI+jN} zw@*i{1RQ6FiPA())*_lDO&3vP*?LimTrHwD1D`rhQ7P;j;;a}|hKTCkk};fZ7s(83 z_V&yT_tdC*|I#UH(Zm&t@9^D0QOz;v1&N+@Mu>+Qlv;eY1JZkHRK0&rFgS5(bn0TV zI@l4WQtUnAVS~H-qYI1)UCPGC#TBtz)Uv-TT@ukbwkY9MlzhUiC~r+XAv)K{Cq6<3 z9!b`rY)L*w+P7q2;Eh}I`iUZq7t=&yR9zXt7*T}XFvczFU{8-Rqpci!KiZqd>QRQr z7NQ(H&MN9?oH6dU7|~Dc;}fT#{B+_}lp`m(QLdUaRrE7^Xp$=SXD7v-fK=%gd08_X z7ni{*)yKroE^Yi=oh}tu-qmq`DN@J>uutW zVz%BoOT2zIszkP*txGhOPRc9$21|B8GG6J| z_@vs|gN~vAb;U{f<9MG+#wSh4$faC-(pXemg31`tUmP5xaLPyPK z^VyJ7CL=uXNvaI?8Ry865KM`OyEK5Jn66NsD%l0zl0Dq+ffVH_Va{+B1KF>gLsHK> zDbYHGVo(1HnTyL$AoL^TlZjRS>SPmh#|#lLN9z1bT~S>BX@-Oo%lxi~9~iig5zx&z$Z$-v`EYkpExZ$?kg@_8P2F;|i< zXc`Vl%3O_%^Ke^+6Zw|bU>Rmg_cZH~6=LRy%U!}9zsmENPykwVOJWVLsHp<2{~g~< z7pUYift$!|ijtwCWFl!d6L9~&a~*b0DEL!pJ0wX_zC;hVdWaw|MNKLMa5fGF)4H&{ zY<^U(H5Yv<5BC7XU0M_N_y)STC(zC)EiG^UovulcXfe}K!F$t>L+{qCVV}8ec)*E% z?a56a1(S|Lp_#VzU-Q^sF!nusHGM6U91F&_ktU~XXhB^;ah*xRLVj6A3il*%OX<71 zDXt-l!nxT%t>L@)T#CB`I^H0~2DpJ^DTp#L5 zx8exTR$t9NxlJjwwgrcqe#Ju{`-CVev9aMO`cz~LnUzjfb zaT2?>aQ0}3oNiY{#M-dpQ1y`s_-yKu(p~+7`NtIxJqer5t7=}J-S}JKB#{`ma`dcy zFpOW#S|k4AR<_jj2tLlb@+E67IN9u?5r*mu*k9GvyZ!Ox5`=2@UE_IJs!E~zAo;r0 zA6r#;O%yu#7CwS&yGpn%zpyn$B`~316wMVSenrm9-@=@so7KEO3=>n9#ZGtsB)&e5 zHO=|+h;fBZioeZC4V#HA1D*lw1bhnkOCj4dCtdu)c=p>lFNxdZ*++_#1MN8V3aN|x z1qWZ+P={+wE`J8>O;At9xYIWc$SQ_$TQ1@{Yme@$gM^tRG9@UDqr>TRlhh8=L{*;C zo_uQu8GMKNcT-mk{X-fftx3O*4rwRd#rvc+VZVePz|&3X`IFaQrhdVkkII|5&Cs?g zJF(D|FXrrLShyLQU&Q3gLeoURg8^AB7c3*C*elJA%x2m=jGkD-KYPq0J_J79k^|he!yas+KG9^k}4?DxcMqjZJafKuqYmsstP&2B0ZGs2$Ov#1nQY}9!^XWe5`#odet9da(`F`5CAD`+C~B2NSge8c&TaNOq2)KG3NI=+CG`BFW;$~X8Wf#L zSfVOK4Zh)Mw8kt#iOpepJsAnfs|cIys=HKyM5b8I6w2HlCRfS)JL^6C^Fa5~qf#+N-4%mk@*W`fK=jVYAVm(y3K9LCyJr+x{|6iF|Al2N%k@A?3L7FNwL2O=uEsl8_$ z=shS0cDG;(u=)|K`=uZ$V=5D*L7^!{Qzj|v3f?aRH_X*0UOJ2B9jhc2j)hENH~lpj z>rm9}0Ew*PZuAH&28+9<&$Au_pQ~bm*z_?;SvM273JPSt^~x$SbH)0h@6SwO7gHp) z7WLu(ZBVK@bxvUJWX7D|`HvIW?-}l8|76D2o7gXs3M6IBbZKx#v@K<(%YrjxOmU!# zUfV(W2bkB&71cp3!xVOg%* ztXiv}{Db!sMwt&!MIg2Tx7_#&nI9MODuA6i!#7^z6=ftA4_h6 zH3n-Nam8pZk%=X9gRwr85ecvw2wy=x+33RZ`A5lHLw6+pz7G3=H&+5|HhyUXsT=n# zJtvw(Ci&x`bXGw`{{B6e5ob3%YDT+(X=h^uIA_1!^7udQ&m zd+-UKwTZTPGCxmqCqmH$;HCUkZjjxb;sdRD@xbY=?l1rc#ERg#X;SAkagh&j2 z&`|nz86O;w6I>_dV;~TA*|LRVS4QLe%bt-4$3o7#8HW@-HQ{)p$L%G@UBo951^B-? z?EkZ~o=Mv)1K6x+-IV{ggFcunJk`-t?l}Q+fa^PKuwjBY-JX)DqQGM%g5{IuU@wRr zWON&U_MrGy>^hYUXnC`pC`+)cEx5K_@o+s1B0N5xS*a8b!$W4WkKI=;o|Dn|+kK8giX*1KL^krPBHbJUk7qJQR zrVCy4Xo@}}pW(m6P>lXPbl4w8M!+v`jUgX22t=0K>-u!9CtYRsEq%HI)ueBRo$b?C zL%NLiP@k?1q)TOgq)*pI(iLZalynV@F1ZO^yue9?j6YQx6q=>w5gENm24y%^N^T9= zBqSIa!29KVQeZBGI=`%$nWK_2v2EbnoHPxkXCEnjWWU%gY13i3^~g%8S?T{RB%fX$ zl7~pIwTX23;9y4|TZ)9^CH@$$a~RG?PeKtbzp0<4*%xoK`$SVc+`9MSE`)qYX>cLw z!GIJzySTK|2t7JWt>@vj!hb}RGk|;b3=kPRAz@1MnTt!fJWNGsnP26w`$iUX=RW3n zYjbI^pMbuOpqKClZsL1r&_|@Dl53_k|IspD;DU2~g6?1{Ar~C6u)H;<6YjCdgyrW8 zZfcR>EZpE<1O5+<1+rHPjr6$rqy>;vJ&Ce{`p(OU6#}aG8Q_5Fq+61$=fQ)F`}`Aj zL15&-GuXny@&*K0Y;7Q4BD&^ej|V0Tby8J(3ce|+uV3wu0w*upq(n_}1}86WAc%46 zH3KJHby9A)EXy<4!u82%UC+jLfkg5eY0%DG}f+aVr)RTFntR-6i(Vv|c6Zuq=bk z+>lo4I@xm^h{i5P1{EVtk$orxiZEG=$h0FQrXs;GiT674+{K;}FJY2PicUp}t|1%hqIupo6x*xJU_YlP-A+jJNj?mbUD7Ri&7MO-3`BBF z2==dmFBkx#XzQ=16OO(wC(#Ow7%W$D1)MW@7n3#R!aGTvl`_JG)MFvJ2Y)Z{F`bv@VGcadcwlU=n&#dVFDs3T>p85Ycwh@@JZxkp#`<5%8v?xhW6w> zK~^$BR+D>VrDNV{YL{4R$&kN4Q$?0+<_$GURPL;n3{c|b_$8nf2z%pxNt~u!BOKu6v3RlLgezMiIYU=Od4#%@Co5qL> zl%B(XvSX)P>qxw-QS z*2#=3AgR1 zU__8`tJ*v)po6HjpIMvzIU%IFko@#`w_+GpaBEcjQkb+mgEbezA?^lwy)GvdokvV7oiV3*3ikhuxn9Gv=GHE@|noSL* zW^D#SFu&c}?7K5q)*Z4@Oe-ChsJgjphya6kamJhkL)7y(^TJNbrG-6%t(@ ztU(xNpASt5kj4E82qdiU`uZqTnFug+b zKjtfH?#KO&9P3S!#CavKJVNxp3oir7CgM&-SzN+Mb2G^>GKSHl%HRr-fcoHnqHdDr z((MSKZ{Udo0;2m55ygEFk$^zvA?pwEq&M*5gp`VaO8o(9W)=2-19>p?-WLGX(|7}J z+L6GftPi46AohQRhj%SB~^g zBnCz)*pFY8%&(G>H1McccHWj-V+C7g`!Eu77`BYvy5#|J!ys1qXo2{>_t@=uPQ$*9 zun?_pBkw}dXQeCTbh|{-h9vIs8eBzHs13t)sArP89er{%)En8s`D4WUHnPTi6{*Vd zlQRjS&~)l`R8Ir80yYDx0hItBVA)3Y$^2=F!je3pd>rsOpmQU8F@JHXs}{WQm;QzI zC^SK>m$S=J&awz+a~~2oBgl1Lv}*yo0hYKnIvw%W9@hON_F!2pwL)8o=gSHs^^l$#R&U zXP+24Wjp)=v)Z?U4yz~IYkwn7LMWeuRY}^8yDu0l6?CD(sSTGNrr@N~YdH}DY#5sJ zFTVuW8E;>{;MSJ!<;q!AblzH>!@xxk|`J85&M);@uia?P>Ot8wSx>&&fHx5+IBcHT^l|` z#6WlDuDFHnnzuSJIzhRqt*R-#wpO5&Mt9w@B7yFDVD;c$a&1*-(>b7-aPcV6rG)8ctI#53*>yXHj3T}&C=X)tF9g@hg85yMzeSe}=F1{a+6oXw4RccE3xlRvhN?# zLN?;lQV1Cs#l^gAY~F()rytP_zLexNdU=k_B4S*G?4D1R0>S(P4CD8#tAcORM>YfS zgD7;kG?LEruUf2@UJK=^r3g3w8Mt2$$q9{{HyUTaUJj`!{mFg3*65tGUy}8S(|QUG^V)R3Oz>IX-H#=aLIXUVm z`U}gS!mm>$hE_#NG^c*x#lL@%ECx88U@v`Ja&~ z(fx2Qy%7x)v_gbWrHAAP$#rS^n|2JjPbDkyJK-N`DQ(N<{RSa~9sYu9UJKE~{=pQr zHa!2oDVY!gdaSWgy2X92s7?5RlW2c`$q|H5BA<~q@ji_}{)rdTOQYmzxtd4h@?Uhg zPrSG?<>p`!2Bk?V3Q3!M5(aj$&pl=1UsTJZc?y5LphUO7s2=#c_OP`trUi(~B6(4} zpbc?KImy@IM>FlosBZ47!&`2Z`O*>nPquemBo8}%IblUAeOa|SIjYIAIMilF`teqv zHjt~_y#De5^sR_rfB6{dC>E|6wF=2Zf-r>4AbB08Qk9x$wG){sXp(hAGUd`umTk&Q zQ{-*YTNJ$pkG?dn?+*U?Qbs_so9CCTUn0MB72ZX#Ul873fmFztkY9NDOcmzynPY`= zf>5f3QYVxqp|lAl`QHgXGfya|3FSz0MD~p*U%m;l_RnVL^sH5EtLr_5>e~O=5k*#`{{M!az$}|$`dpIxY zJrnJcBiQzE9`umdzj@*O@@9HaUyZAL$26e=* zZf@iaT6kd<)e+J!M*qNnvv0gUT6}3I`>)r>2E?7c9QtHg_(!32$&pWJfz23_eJ4^R zSB(CEhe336UbOL>xN~g|-bvE2=2vjX)prppB;9#j5Z|RQhhMz(CD=H@I$OecqVWML$lA?khI$q!#7qV`1J^p*2&HaqOz-IFtWk2uo9DDgbt7?d~j z!YT5Zgqg;SH#){N-uuO4;>NJ}Qq1Vy|Hp)e6?^jA$qA2bby80N2-@_=oK)ds&b@a?L`jPNTis6T{>{$DH^i|LiFuCD zkT$BXluG09uQ|1Vc5$w-M7y~0$?L1dGWEa3)G4UH15ayEe}wve)GeqVK>ZKY-4r#7+KmQ@Om?6iS@%b<_cfJh#h`?-J;DPn z)qyw*|Dn1iBPo!McX}dVGQb1)6JR-@67VqKX~0W>eSjl?(|{iU;!z?h8K42o1pEo` z0AMR%7hn&d1#lYh4d7>h6w3|)j0NZbIVzEwnt{dwz%oE3pbqdH09;dt03QIp1Y7~g zGDZ0B+QR=Yncn7{EUMh5oFZDX?f7KT5YgYaZJ8n(y7%EJqLp$sEH2+Ba*5`PI<}R$ zM2`f9ne3)1rtPK+rYk1B*=n9@-fVu<{H(db95x>_pD}-Hj+h5q5-h2fY>UBSw@k6z zZ+Xn}tYyFDBTKs_V!2|GT2EWQw_deo*}u2{l4Ed`IPP(L>!4hepiVDqUe`2g_Gc#5i>Ic*t)SJ|G>h0>+)Cbkg>SO9t>cFS!Z`7Rny!xto zhIX#DT)RfQR=ZjIsP;MStJ=fbliDw|-)cGS&)TcnWZekeINc9#qx zCAJl|D%(aI6R>TuJ!{)%J7oL7_NDDR+eO=TTdIAneJ9z;a*C3|4oy;9)rD%edWm|q zx>~(W{Svr8uKreiQB7qJ%1+C^HQSQy%r3~Do$bx8%x1C=X1|}U)TC%eYb=^+nqtj7 z%_4~Z9nC=PEUiX&o32V%t9wrOn(mP9nl4bNU!;Fle?tF>{x|(VgViwEP-3VtJYv{w z_^06;!vNz@<22*##s%2jX5;%tgUMwoH5Hi`nOB&%n|GQU&4eVX%6%xt`vLza&CQD<|crF;xly;l0UiX4N5Z1TqKh%GuKcoL#A7jWeSuWs;Ew$cj4OySHzF|FL{m%MtD{ocU)HWMLy1-Up^VuG>ZMHpWYp}g& zd(-x|t;P1P?Ue0bwszb1(5HC2D#w^JGsly2XU@``>YQhCW;tpdTO3b2{^2<42wZSn zcTjZ{WrBzYspHie^;Gp;>PmG`{knROx>fy5_M6!UvXeAvnh6?%<_Aru<{qtI%V_Ix zj}K^%LXcl*zt^7E#_1;N3Uo`LR3GX3>+jWX)qkZ=HfRhM!*WBl;W5L0!@Gu)h93=A z4GEB9zHugGc%QL4fD3cT*oNCK!fm&ia!t3J7MYfr?lWyPJ!;x%Iv|M8XwETj5QMkY z{G@q@d6)SW^WV+;pnNSbQpe4w&7YgUF>~gh%@@p9%#@{{MQ(|=BwI#URF?4;H4K-{ zGTAcCa=T>?WW30-#Inq?!m`FfTLO>6iv4JrXI-hQht`hgP8aH;c4$g#cz~hTVvH`?p!Ff?rw#6+HrT#CgALJ_l delta 17851 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 diff --git a/src/mkfont/txt2chs.obj b/src/mkfont/txt2chs.obj new file mode 100644 index 0000000000000000000000000000000000000000..07a6a1443ad5b5a6776e14cff24e933ab04045ce GIT binary patch literal 25402 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 W!DU_BzN1wNOP@+M8{u9o%Kr};!X2~# literal 0 HcmV?d00001 diff --git a/src/mkutil/make-3.80/ABOUT-NLS b/src/mkutil/make-3.80/ABOUT-NLS new file mode 100644 index 00000000..d528f9c8 --- /dev/null +++ b/src/mkutil/make-3.80/ABOUT-NLS @@ -0,0 +1,435 @@ +Notes on the Free Translation Project +************************************* + + Free software is going international! The Free Translation Project +is a way to get maintainers of free software, translators, and users all +together, so that will gradually become able to speak many languages. +A few packages already provide translations for their messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work at translations should contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +Quick configuration advice +========================== + + If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +INSTALL Matters +=============== + + Some packages are "localizable" when properly installed; the +programs they contain can be made to speak your own native language. +Most such packages use GNU `gettext'. Other packages have their own +ways to internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the GNU `gettext' own +library will be used. This library is wholly contained within this +package, usually in the `intl/' subdirectory, so prior installation of +the GNU `gettext' package is _not_ required. Installers may use +special options at configuration time for changing the default +behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will respectively bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might be not what is desirable. You +should use the more recent version of the GNU `gettext' library. I.e. +if the file `intl/VERSION' shows that the library which comes with this +package is more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages have usually many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +Using This Package +================== + + As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, +and `CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your country by running the command +`locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +Translating Teams +================= + + For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" +area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `translation@iro.umontreal.ca' to reach the +coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skill are praised more than +programming skill, here. + +Available Packages +================== + + Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of August +2002. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files be bg ca cs da de el en eo es et fi fr + +----------------------------------------+ + a2ps | [] [] [] [] | + ap-utils | | + bash | [] [] [] [] | + bfd | [] [] | + binutils | [] [] | + bison | [] [] [] [] | + clisp | | + clisp | [] [] [] [] | + clisplow | | + cpio | [] [] [] [] | + darkstat | () | + diffutils | [] [] [] [] [] [] | + enscript | [] [] | + error | [] [] [] | + fetchmail | [] () [] [] [] () | + fileutils | [] [] [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] [] [] | + gas | [] [] | + gawk | [] [] [] | + gcal | [] [] | + gcc | [] [] | + gettext | [] [] [] [] [] | + gnupg | [] [] [] [] [] [] [] | + gprof | [] [] | + gpsdrive | () () () () () | + grep | [] [] [] [] [] [] [] [] | + gretl | [] | + gthumb | () () () | + hello | [] [] [] [] [] [] [] [] [] | + id-utils | [] [] [] | + indent | [] [] [] [] [] | + jpilot | () [] [] [] | + jwhois | [] [] | + kbd | [] [] [] | + ld | [] [] | + libc | [] [] [] [] [] [] [] [] | + libiconv | [] [] [] [] | + lifelines | () () | + lilypond | [] [] | + lingoteach | [] [] | + lingoteach_lessons| () () | + lynx | [] [] [] [] [] | + m4 | [] [] [] [] [] | + make | [] [] [] [] | + man-db | [] () () [] () () | + mysecretdiary | [] [] [] | + nano | [] () [] [] [] [] | + nano_1_0 | [] () [] [] [] [] | + opcodes | [] [] [] | + parted | [] [] [] [] [] | + ptx | [] [] [] [] [] [] [] | + python | | + recode | [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] [] | + sh-utils | [] [] [] [] | + sharutils | [] [] [] [] [] [] [] | + sketch | () [] () | + soundtracker | [] [] [] | + sp | [] | + tar | [] [] [] [] [] [] | + texinfo | [] [] [] [] [] | + textutils | [] [] [] [] [] | + util-linux | [] [] [] [] [] [] | + vorbis-tools | [] | + wastesedge | | + wdiff | [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] [] [] | + +----------------------------------------+ + be bg ca cs da de el en eo es et fi fr + 0 2 19 10 30 44 9 1 12 44 17 6 53 + + gl he hr hu id it ja ko lv nb nl nn + +-------------------------------------+ + a2ps | () () [] | + ap-utils | | + bash | [] | + bfd | [] | + binutils | [] | + bison | [] [] [] [] | + clisp | | + clisp | [] | + clisplow | | + cpio | [] [] [] [] | + darkstat | | + diffutils | [] [] [] [] [] | + enscript | [] [] | + error | [] | + fetchmail | [] | + fileutils | [] [] [] | + findutils | [] [] [] [] [] [] [] [] | + flex | [] | + gas | | + gawk | [] | + gcal | | + gcc | [] | + gettext | [] [] | + gnupg | [] [] [] [] | + gprof | [] | + gpsdrive | [] () () | + grep | [] [] [] [] [] [] [] | + gretl | | + gthumb | () () | + hello | [] [] [] [] [] [] [] [] [] [] [] [] | + id-utils | [] [] | + indent | [] [] [] [] | + jpilot | () () | + jwhois | [] [] | + kbd | | + ld | | + libc | [] [] [] [] | + libiconv | [] [] [] | + lifelines | | + lilypond | [] | + lingoteach | [] | + lingoteach_lessons| | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + make | [] [] [] [] [] [] | + man-db | () () | + mysecretdiary | [] | + nano | [] [] [] [] | + nano_1_0 | [] [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] | + ptx | [] [] [] [] [] | + python | | + recode | [] [] [] | + sed | [] [] [] [] [] [] [] [] | + sh-utils | [] [] [] | + sharutils | [] [] [] | + sketch | () | + soundtracker | [] [] | + sp | | + tar | [] [] [] [] [] [] | + texinfo | [] [] [] | + textutils | [] [] [] [] | + util-linux | () [] | + vorbis-tools | [] | + wastesedge | | + wdiff | [] [] [] | + wget | [] [] [] [] [] [] | + +-------------------------------------+ + gl he hr hu id it ja ko lv nb nl nn + 23 9 12 19 16 13 26 9 1 7 19 3 + + no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW + +----------------------------------------------+ + a2ps | () () () [] [] [] [] [] | 10 + ap-utils | () | 0 + bash | [] | 6 + bfd | [] [] | 5 + binutils | [] [] | 5 + bison | [] [] [] [] | 12 + clisp | | 0 + clisp | | 5 + clisplow | | 0 + cpio | [] [] [] [] | 12 + darkstat | [] [] () () | 2 + diffutils | [] [] [] [] [] [] | 17 + enscript | [] [] [] [] | 8 + error | [] [] [] | 7 + fetchmail | () () [] | 6 + fileutils | [] [] [] [] [] [] | 14 + findutils | [] [] [] [] [] [] [] | 21 + flex | [] [] [] | 9 + gas | [] | 3 + gawk | [] [] | 6 + gcal | [] [] | 4 + gcc | [] | 4 + gettext | [] [] [] [] [] [] | 13 + gnupg | [] [] [] | 14 + gprof | [] [] | 5 + gpsdrive | [] [] | 3 + grep | [] [] [] [] [] | 20 + gretl | | 1 + gthumb | () () [] | 1 + hello | [] [] [] [] [] [] [] | 28 + id-utils | [] [] [] [] | 9 + indent | [] [] [] [] [] | 14 + jpilot | () () [] [] | 5 + jwhois | [] () () [] [] | 7 + kbd | [] [] | 5 + ld | [] [] | 4 + libc | [] [] [] [] [] [] | 18 + libiconv | [] [] [] [] [] | 12 + lifelines | [] | 1 + lilypond | [] | 4 + lingoteach | [] [] | 5 + lingoteach_lessons| () | 0 + lynx | [] [] [] [] | 13 + m4 | [] [] [] [] | 13 + make | [] [] [] [] [] | 15 + man-db | | 3 + mysecretdiary | [] [] [] | 7 + nano | [] [] [] [] | 13 + nano_1_0 | [] [] [] [] | 14 + opcodes | [] [] [] | 8 + parted | [] [] [] [] | 12 + ptx | [] [] [] [] [] [] [] | 19 + python | | 0 + recode | [] [] [] [] [] [] | 15 + sed | [] [] [] [] [] [] | 24 + sh-utils | [] [] | 9 + sharutils | [] [] [] [] | 14 + sketch | [] () [] | 4 + soundtracker | [] | 6 + sp | | 1 + tar | [] [] [] [] [] [] [] | 19 + texinfo | [] [] | 10 + textutils | [] [] [] [] [] | 14 + util-linux | [] [] [] | 10 + vorbis-tools | [] | 3 + wastesedge | | 0 + wdiff | [] [] [] [] [] | 14 + wget | [] [] [] [] [] [] [] [] | 24 + +----------------------------------------------+ + 37 teams no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW + 68 domains 4 15 2 28 28 12 10 49 43 4 1 9 609 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If August 2002 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. + +Using `gettext' in new packages +=============================== + + If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +to use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`translation@iro.umontreal.ca' to make the `.pot' files available to +the translation teams. + diff --git a/src/mkutil/make-3.80/AUTHORS b/src/mkutil/make-3.80/AUTHORS new file mode 100644 index 00000000..88d61c30 --- /dev/null +++ b/src/mkutil/make-3.80/AUTHORS @@ -0,0 +1,57 @@ +----------------------------------- + +GNU make development up to version 3.75 by: + Roland McGrath + + +Development starting with GNU make 3.76 by: + Paul D. Smith + + +GNU Make User's Manual + Written by: + Richard M. Stallman + + Edited by: + Roland McGrath + Bob Chassell + Melissa Weisshaus + Paul D. Smith + +----------------------------------- +GNU make porting efforts: + + Port to VMS by: + Klaus Kaempf + Archive support/Bug fixes by: + John W. Eaton + Martin Zinser + + Port to Amiga by: + Aaron Digulla + + + Port to MS-DOS (DJGPP) and MS-Windows 95/NT by: + DJ Delorie + Rob Tulloh + Eli Zaretskii + +----------------------------------- +Other contributors: + + Janet Carson + Howard Chu + Paul Eggert + Klaus Heinz + Michael Joosten + Jim Kelton + David Lubbren + Tim Magill + Greg McGary + Han-Wen Nienhuys + Andreas Schwab + Carl Staelin (Princeton University) + Ian Stewartson (Data Logic Limited) + +With suggestions/comments/bug reports from a cast of ... well ... +hundreds, anyway :) diff --git a/src/mkutil/make-3.80/COPYING b/src/mkutil/make-3.80/COPYING new file mode 100644 index 00000000..a3f6b12e --- /dev/null +++ b/src/mkutil/make-3.80/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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) 19yy 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/make-3.80/ChangeLog b/src/mkutil/make-3.80/ChangeLog new file mode 100644 index 00000000..2ca872ba --- /dev/null +++ b/src/mkutil/make-3.80/ChangeLog @@ -0,0 +1,857 @@ +2002-10-03 Paul D. Smith + + Version 3.80 released. + + * dir.c: Change hash functions to use K&R function definition style. + * function.c: Ditto. + * read.c: Ditto. + * variable.c: Ditto. + + Update to automake 1.7. + + * Makefile.am (AUTOMAKE_OPTIONS): Update to require 1.7. + (pdf): Remove this target as automake now provides one. + + * configure.in: Change AM_CONFIG_HEADER to AC_CONFIG_HEADERS. + +2002-09-30 Martin P.J. Zinser + + * makefile.com: Updates for GNU make 3.80. + * makefile.vms: Ditto. + +2002-09-23 Paul D. Smith + + * read.c (enum make_word_type): Remove w_comment. + (get_next_mword): Don't treat comment characters as special; where + this function is used we will never see a comment (it's stripped + before we get here) and treating comments specially means that + targets like "foo\#bar" aren't handled properly. + +2002-09-18 Paul D. Smith + + * doc/make.texi (Bugs): Update with some info on Savannah, etc. + + * read.c (eval): Expansion of arguments to export/unexport was + ignoring all arguments after the first one. Change the algorithm + to expand the whole line once, then parse the results. + +2002-09-17 Paul D. Smith + + Fix Bug #940 (plus another bug I found while looking at this): + + * read.c (record_target_var): enter_file() will add a new entry if + it's a double-colon target: we don't want to do that in this + situation. Invoke lookup_file() and only enter_file() if it does + not already exist. If the file we get back is a double-colon then + add this variable to the "root" double-colon target. + + * variable.c (initialize_file_variables): If this file is a + double-colon target but is not the "root" target, then initialize + the root and make the root's variable list the parent of our + variable list. + +2002-09-13 Paul D. Smith + + * doc/make.texi (MAKE Variable): Add some indexing for "+". + + * hash.c (round_up_2): Get rid of a warning. + +2002-09-12 Paul D. Smith + + * Makefile.am (loadavg_SOURCES, loadavg.c): Tiptoe around automake + so it doesn't complain about getloadavg.c. + + * commands.c (set_file_variables): Make sure we always alloca() at + least 1 character for the value of $? (for '\0'). + +2002-09-11 Paul D. Smith + + * hash.h (STRING_COMPARE, ISTRING_COMPARE, STRING_N_COMPARE): Fix + macro to use RESULT instead of the incorrect _RESULT_. + + * make.h (HAVE_BROKEN_RESTART): Add prototypes for atomic_stat() + and atomic_readdir(). We need to #include dirent.h to get this to + work. + * misc.c (atomic_readdir): Fix typos. + +2002-09-10 Paul D. Smith + + * read.c (eval): Expand variable lists given to export and + unexport, so that "export $(LIST_OF_VARIABLES)" (etc.) works. + (conditional_line): Ditto for "ifdef". Fixes bug #103. + + * doc/make.texi (Variables/Recursion): Document this. + (Conditional Syntax): And here. + +2002-09-09 Paul D. Smith + + * configure.in: Check for memmove(). + +2002-09-07 Paul D. Smith + + * configure.in (HAVE_BROKEN_RESTART): Define this on PTX systems; + Michael Sterrett reports that while it has + SA_RESTART, it does not work properly. + + * misc.c (atomic_stat): If HAVE_BROKEN_RESTART, create a function + that invokes stat() and loops to do it again if it returns EINTR. + (atomic_readdir): Ditto, with readdir(). + + * make.h (stat, readdir): If HAVE_BROKEN_RESTART, alias stat() + and readdir() to atomic_stat() and atomic_readdir(). + +2002-09-04 Paul D. Smith + + * implicit.c (pattern_search): Daniel + reports that GNU make sometimes doesn't recognize that targets can + be made, when directories can be created as prerequisites. He + reports that changing the order of predicates in the DEP->changed + flag test so that lookup_file() is always performed, solves this + problem. + +2002-08-08 Paul D. Smith + + * configure.in: Require a newer version of gettext. + + * misc.c (perror_with_name): Translate the format string (for + right-to-left language support). + (pfatal_with_name): Ditto. + + * main.c: Create a static array of strings to store the usage + text. This is done to facilitate translations. + (struct command_switch): Remove argdesc and description fields. + (switches): Remove values for obsolete fields. + (print_usage): Print each element of the usage array. + + * hash.c: Change function definitions to be K&R style. + +2002-08-02 Paul D. Smith + + * NEWS: Remove the mention of .TARGETS; we aren't going to publish + this one because it's too hard to get right. We'll look at it for + a future release. + * main.c (main): Don't create the .TARGETS variable. + * variable.c (handle_special_var): Don't handle .TARGETS. + +2002-08-01 Paul D. Smith + + * main.c (switches): Add a new option, -B (--always-make). If + specified, make will rebuild all targets that it encounters even + if they don't appear to be out of date. + (always_make_flag): New flag. + * make.h: Extern always_make_flag. + * remake.c (update_file_1): Check always_make_flag; if it's set we + will always rebuild any target we can, even if none of its + prerequisites are newer. + * NEWS: Mention it. + + * doc/make.texi (Shell Function): Make it clear that make + variables marked as "export" are not passed to instances of the + shell function. + + Add new introspection variable .VARIABLES and .TARGETS. + + * variable.c (handle_special_var): New function. If the variable + reference passed in is "special" (.VARIABLES or .TARGETS), + calculate the new value if necessary. .VARIABLES is handled here: + walk through the hash of defined variables and construct a value + which is a list of the names. .TARGETS is handled by + build_target_list(). + (lookup_variable): Invoke handle_special_var(). + * file.c (build_target_list): Walk through the hask of known files + and construct a list of the names of all the ones marked as + targets. + * main.c (main): Initialize them to empty (and as simple variables). + * doc/make.texi (Special Variables): Document them. + * NEWS: Mention them. + + * variable.h (struct variable): Add a new flag "exportable" which + is true if the variable name is valid for export. + * variable.c (define_variable_in_set): Set "exportable" when a new + variable is defined. + (target_environment): Use the "exportable" flag instead of + re-checking the name here... an efficiency improvement. + +2002-07-31 Paul D. Smith + + * config.h-vms.template: Updates to build on VMS. Thanks to + Brian_Benning@aksteel.com for helping verify the build. + * makefile.com: Build the new hash.c file. + * hash.h: Use strcpmi(), not stricmp(), in the + HAVE_CASE_INSENSITIVE_FS case. + +2002-07-30 Paul D. Smith + + * hash.h (ISTRING_COMPARE, return_ISTRING_COMPARE): Add missing + backslashes to the HAVE_CASE_INSENSITIVE_FS case. + Reported by . + +2002-07-10 Paul D. Smith + + * variable.c (pop_variable_scope): Remove variable made unused by + new hash infrastructure. + * read.c (dep_hash_cmp): Rewrite this to handle ignore_mtime + comparisons as well as name comparisons. + * variable.h: Add a prototype for new hash_init_function_table(). + * file.c (lookup_file): Remove variables made unused by new hash + infrastructure. + * dir.c (directory_contents_hash_2): Missing return of hash value. + (dir_contents_file_exists_p): Remove variables made unused by new + hash infrastructure. + + + Installed Greg McGary's integration of the hash functions from the + GNU id-utils package: + +2002-07-10 Greg McGary + + * scripts/functions/filter-out: Add literals to to the + pattern space in order to add complexity, and trigger + use of an internal hash table. Fix documentation strings. + * scripts/targets/INTERMEDIATE: Reverse order of files + passed to expected `rm' command. + +2002-07-10 Greg McGary + + * Makefile.am (SRCS): Add hash.c (noinst_HEADERS): Add hash.h + * hash.c: New file, taken from id-utils. + * hash.h: New file, taken from id-utils. + + * make.h (HASH, HASHI): Remove macros. + (find_char_unquote): Change arglist in decl. + (hash_init_directories): New function decl. + * variable.h (hash.h): New #include. + (MAKELEVEL_NAME, MAKELEVEL_LENGTH): New constants. + * filedef.h (hash.h): New #include. + (struct file) [next]: Remove member. + (file_hash_enter): Remove function decl. + (init_hash_files): New function decl. + + * ar.c (ar_name): Delay call to strlen until needed. + * main.c (initialize_global_hash_tables): New function. + (main): Call it. Use MAKELEVEL_NAME & MAKELEVEL_LENGTH. + * misc.c (remove_comments): Pass char constants to find_char_unquote. + * remake.c (notice_finished_file): Update last_mtime on `prev' chain. + + * dir.c (hash.h): New #include. + (struct directory_contents) [next, files]: Remove members. + [ctime]: Add member for VMS. [dirfiles]: Add hash-table member. + (directory_contents_hash_1, directory_contents_hash_2, + directory_contents_hash_cmp): New functions. + (directories_contents): Change type to `struct hash_table'. + (struct directory) [next]: Remove member. + (directory_hash_1, directory_hash_2, directory_hash_cmp): New funcs. + (directory): Change type to `struct hash_table'. + (struct dirfile) [next]: Remove member. + [length]: Add member. [impossible]: widen type to fill alignment gap. + (dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp): New functions. + (find_directory): Use new hash table package. + (dir_contents_file_exists_p): Likewise. + (file_impossible): Likewise. + (file_impossible_p): Likewise. + (print_dir_data_base): Likewise. + (open_dirstream): Likewise. + (read_dirstream): Likewise. + (hash_init_directories): New function. + + * file.c (hash.h): New #include. + (file_hash_1, file_hash_2, file_hash_cmp): New functions. + (files): Change type to `struct hash_table'. + (lookup_file): Use new hash table package. + (enter_file): Likewise. + (remove_intermediates): Likewise. + (snap_deps): Likewise. + (print_file_data_base): Likewise. + + * function.c + (function_table_entry_hash_1, function_table_entry_hash_2, + function_table_entry_hash_cmp): New functions. + (lookup_function): Remove `table' argument. + Use new hash table package. + (struct a_word) [chain, length]: New members. + (a_word_hash_1, a_word_hash_2, a_word_hash_cmp): New functions. + (struct a_pattern): New struct. + (func_filter_filterout): Pass through patterns noting boundaries + and '%', if present. Note a_word length. Use a hash table if + arglists are large enough to justify cost. + (function_table_init): Renamed from function_table. + (function_table): Declare as `struct hash_table'. + (FUNCTION_TABLE_ENTRIES): New constant. + (hash_init_function_table): New function. + + * read.c (hash.h): New #include. + (read_makefile): Pass char constants to find_char_unquote. + (dep_hash_1, dep_hash_2, dep_hash_cmp): New functions. + (uniquize_deps): Use hash table to efficiently identify duplicates. + (find_char_unquote): Accept two char-constant stop chars, rather + than a string constant, avoiding zillions of calls to strchr. + Tighten inner search loops to test only for desired delimiters. + + * variable.c (variable_hash_1, variable_hash_2, + variable_hash_cmp): New functions. + (variable_table): Declare as `struct hash_table'. + (global_variable_set): Remove initialization. + (init_hash_global_variable_set): New function. + (define_variable_in_set): Use new hash table package. + (lookup_variable): Likewise. + (lookup_variable_in_set): Likewise. + (initialize_file_variables): Likewise. + (pop_variable_scope): Likewise. + (create_new_variable_set): Likewise. + (merge_variable_sets): Likewise. + (define_automatic_variables): Likewise. + (target_environment): Likewise. + (print_variable_set): Likewise. + +2002-07-10 Paul D. Smith + + Implement the SysV make syntax $$@, $$(@D), and $$(@F) in the + prerequisite list. A real SysV make will expand the entire + prerequisites list _twice_: we don't do that as it's a big + backward-compatibility problem. We only replace those specific + variables. + + * read.c (record_files): Replace any $@, $(@D), and $(@F) variable + references left in the list of prerequisites. Check for .POSIX as + we record targets, so we can disable non-POSIX behavior while + reading makefiles as well as running them. + (eval): Check the prerequisite list to see if we have anything + that looks like a SysV prerequisite variable reference. + +2002-07-09 Paul D. Smith + + * doc/make.texi (Prerequisite Types): Add a new section describing + order-only prerequisites. + + * read.c (uniquize_deps): If we have the same file as both a + normal and order-only prereq, get rid of the order-only prereq, + since the normal one supersedes it. + +2002-07-08 Paul D. Smith + + * AUTHORS: Added Greg McGary to the AUTHORS file. + * NEWS: Blurbed order-only prerequisites. + * file.c (print_file): Show order-only deps properly when printing + the database. + + * maintMakefile: Add "update" targets for wget'ing the latest + versions of various external files. Taken from Makefile.maint in + autoconf, etc. + + * dosbuild.bat: Somehow we got _double_ ^M's. Remove them. + Reported by Eli Zaretskii . + +2002-07-07 Paul D. Smith + + * po/*.po: Remove. We'll use wget to retrieve them at release + time. + + * variable.c (do_variable_definition) [W32]: On W32 using cmd + rather than a shell you get an exception. Make sure we look up + the variable. Patch provided by Eli Zaretskii . + + * remake.c (notice_finished_file): Fix handling of -t flag. + Patch provided by Henning Makholm . + + * implicit.c (pattern_search): Some systems apparently run short + of stack space, and using alloca() in this function caused an + overrun. I modified it to use xmalloc() on the two variables + which seemed like they might get large. Fixes Bug #476. + + * main.c (print_version): Update copyright notice to conform with + GNU standards. + (print_usage): Update help output. + + * function.c (func_eval): Create a new make function, $(eval + ...). Expand the arguments, put them into a buffer, then invoke + eval_buffer() on the resulting string. + (func_quote): Create a new function, $(quote VARNAME). Inserts + the value of the variable VARNAME without expanding it any + further. + + * read.c (struct ebuffer): Change the linebuffer structure to an + "eval buffer", which can be either a file or a buffer. + (eval_makefile): Move the code in the old read_makefile() which + located a makefile into here: create a struct ebuffer with that + information. Have it invoke the new function eval() with that + ebuffer. + (eval_buffer): Create a new function that creates a struct ebuffer + that holds a string buffer instead of a file. Have it invoke + eval() with that ebuffer. + (eval): New function that contains the guts of the old + read_makefile() function: this function parses makefiles. Obtains + data to parse from the provided ebuffer. Some modifications to + make the flow of the function cleaner and clearer. Still could + use some work here... + (do_define): Takes a struct ebuffer instead of a FILE*. Read the + contents of the define/endef variable from the ebuffer. + (readstring): Read the next line from a string-style ebuffer. + (readline): Read the next line from an ebuffer. If it's a string + ebuffer, invoke readstring(). If it's a FILE* ebuffer, read it + from the file. + + * dep.h (eval_buffer): Prototype eval_buffer(); + + * variable.c (do_variable_definition): Make sure that all + non-target-specific variables are registered in the global set. + If we're invoked from an $(eval ...) we might be inside a $(call + ...) or other function which has pushed a variable scope; we still + want to define our variables from evaluated makefile code in the + global scope. + +2002-07-03 Greg McGary + + * dep.h (struct dep) [ignore_mtime]: New member. + [changed]: convert to a bitfield. + * implicit.c (pattern_search): Zero ignore_mtime. + * main.c (main, handle_non_switch_argument): Likewise. + * rule.c (convert_suffix_rule): Likewise. + * read.c (read_all_makefiles, read_makefile, multi_glob): Likewise. + (read_makefile): Parse '|' in prerequisite list. + (uniquize_deps): Consider ignore_mtime when comparing deps. + * remake.c (update_file_1, check_dep): Don't force remake for + dependencies that have d->ignore_mtime. + * commands.c (FILE_LIST_SEPARATOR): New constant. + (set_file_variables): Don't include a + prerequisite in $+, $^ or $? if d->ignore_mtime. + Define $|. + +2002-06-18 Paul D. Smith + + * make.texinfo: Updates for next revision. New date/rev/etc. + Recreate all Info menus. Change license on the manual to the GNU + Free Documentation License. A number of typos. + (Variables Simplify): Don't use "-" before it's defined. + (Automatic Prerequisites): Rewrite the target example to work + properly if the compile fails. Remove incorrect comments about + how "set -e" behaves. + (Text Functions): Move the "word", "wordlist", "words", and + "firstword" functions here, from "File Name Functions". + * make-stds.texi: Update from latest GNU version. + * fdl.texi: (created) Import the latest GNU version. + +2002-06-06 Paul D. Smith + + * variable.c (do_variable_definition): New function: extract the + part of try_variable_definition() that actually sets the value + into a separate function. + (try_variable_definition): Call do_variable_definition() after + parsing the variable definition string. + (define_variable_in_set): Make the name argument const. + + * variable.h (enum variable_flavor): Make public. + (do_variable_definition): Create prototype. + + * read.c (read_all_makefiles): Create a new built-in variable, + MAKEFILE_LIST. + (read_makefile): Add each makefile read in to this variable value. + +2002-05-18 Eli Zaretskii + + * Makefile.DOS.template: Tweak according to changes in the + distribution. Add back the dependencies of *.o files. + + * configh.dos.template: Synchronize with config.h.in. + +2002-05-09 Paul D. Smith + + * file.c (file_timestamp_now): Use K&R function declaration. + + * getloadavg.c (getloadavg): Merge setlocale() fix from sh-utils + getloadavg.c. Autoconf thinks QNX is SVR4-like, but it isn't, so + #undef it. Remove predefined setup of NLIST_STRUCT. Decide + whether to include nlist.h based on HAVE_NLIST_H. Change obsolete + NLIST_NAME_UNION to new HAVE_STRUCT_NLIST_N_UN_N_NAME. + * configure.in (NLIST_STRUCT): Define this if we have nlist.h and + nlist.n_name is a pointer rather than an array. + + * acinclude.m4 (make_FUNC_SETVBUF_REVERSED): Grab the latest + version of AC_FUNC_SETVBUF_REVERSED from autoconf CVS. + * configure.in: Use it instead of the old version. + + * main.c (main): Prefer setvbuf() to setlinebuf(). + +2002-05-08 Paul D. Smith + + * Makefile.am (make_LDADD): Add GETLOADAVG_LIBS. + (loadavg_LDADD): Ditto. + +2002-04-29 Paul D. Smith + + * expand.c (recursively_expand_for_file): Rename + recursively_expand() to recursively_expand_for_file() and provide + an extra argument, struct file. If the argument is provided, set + the variable scope to that of the file before expanding. + * variable.h (recursively_expand): Make this a macro that invokes + recursively_expand_for_file() with a NULL file pointer. + * variable.c (target_environment): Call the renamed function and + provide the current file context. + Fixes Debian bug #144306. + +2002-04-28 Paul D. Smith + + Allow $(call ...) user-defined variables to be self-referencing + without throwing an error. Allows implementation of transitive + closures, among other possibly useful things. + Requested by: Philip Guenther + + * variable.h (struct variable): Add a new field: exp_count, and + new macros to hold its size and maximum value. + (warn_undefined): Make this a macro. + * variable.c (define_variable_in_set): Initialize it. + * expand.c (recursively_expand): If we detect recursive expansion + of a variable, check the exp_count field. If it's greater than 0 + allow the recursion and decrement the count. + (warn_undefined): Remove this (now a macro in variable.h). + * function.c (func_call): Before we expand the user-defined + function, modify its exp_count field to contain the maximum + number of recursive calls we'll allow. After the call, reset it + to 0. + +2002-04-21 Paul D. Smith + + Modified to use latest autoconf (2.53), automake (1.6.1), and + gettext (0.11.1). We're using gettext's new "external" support, + to avoid including libintl source with GNU make. + + * README.cvs: New file. Explain how to build GNU make from CVS. + + * configure.in: Modify checking for the system glob library. + Use AC_EGREP_CPP instead of AC_TRY_CPP. Remove the setting of + GLOBDIR (we will always put "glob" in SUBDIRS, so automake + etc. will manage it correctly). Set an automake conditional + USE_LOCAL_GLOB to decide whether to compile the glob library. + + * getloadavg.c (main): Include make.h in the "TEST" program to + avoid warnings. + + * Makefile.am: Remove special rules for loadavg. Replace them + with Automake capabilities for building extra programs. + + * signame.c: This file does nothing if the system provide + strsignal(). If not, it implements strsignal(). If the system + doesn't define sys_siglist, then we make our own; otherwise we use + the system version. + * signame.h: Removed. + + * main.c (main): No need to invoke signame_init(). Update copyright. + + * ABOUT-NLS: Removed. + * gettext.c: Removed. + * gettext.h: Get a simplified copy from the gettext package. + * po/*: Created. + * i18n/*.po: Moved to po/. + * i18n/: Removed. + + * config/*: Created. Contains package configuration helper files. + * config.guess, config.sub: Moved to config directory. + + * configure.in (AC_CONFIG_FILES): Add po/Makefile.in, config/Makefile. + Rework to use new-style autoconf features. Use the "external" + mode for gettext. Make the build.sh config file conditional on + whether build.sh.in exists, to avoid autoconf errors. + * acinclude.m4: Removed almost all macros as being obsolete. + Rewrote remaining macros to use AC_DEFINE. + * acconfig.h: Removed. + + * Makefile.am (EXTRA_DIST): Add config/config.rpath. Use a + conditional to handle customs support. Remove special handling + for i18n features. + +2002-04-20 Paul D. Smith + + * function.c (func_call): Don't mark the argument variables $1, + etc. as recursive. They've already been fully expanded so + there's no need to do it again, and doing so strips escaped $'s. + Reported by Sebastian Glita . + + * remake.c (notice_finished_file): Walk through double-colon + entries via the prev field, not the next field! + Reported by Greg McGary . + + * main.c (main): If the user specifies -q and asks for a specific + target which is a makefile, we got an assert. In that case it + turns out we should continue normally instead. + + * i18n/de.po, i18n/fr.po: Installed an updated translation. + + * i18n/he.po: Installed a new translation. + +2002-01-07 Paul D. Smith + + * i18n/es.po, i18n/ru.po: Installed an updated translation. + +2001-12-04 Paul D. Smith + + * i18n/ja.po: Installed an updated translation. + +2001-09-04 Paul D. Smith + + * i18n/da.po: Installed an updated translation. + +2001-08-03 Paul D. Smith + + * i18n/fr.po: Installed an updated translation. + Resolves Debian bug #106720. + +2001-06-13 Paul D. Smith + + * i18n/da.po, configure.in (ALL_LINGUAS): Installed a new + translation. + +2001-06-11 Paul D. Smith + + * i18n/ko.po: Installed a new translation. + +2001-05-06 Paul D. Smith + + Modify the EINTR handling. + + * job.c (new_job): Reorganize the jobserver algorithm. Reorder + the way in which we manage the file descriptor/signal handler race + trap to be more efficient. + +2001-05-06 Paul Eggert + + Restart almost all system calls that are interrupted, instead + of worrying about EINTR. The lone exception is the read() for + job tokens. + + * configure.in (HAVE_SA_RESTART): New macro. + (MAKE_JOBSERVER): Define to 1 only if HAVE_SA_RESTART. + * main.c (main): Use SA_RESTART instead of the old, + nonstandard SA_INTERRUPT. + + * configure.in (AC_CHECK_FUNCS): Add bsd_signal. + * main.c (bsd_signal): New function or macro, + if the implementation doesn't supply it. + (The bsd_signal function will be in POSIX 1003.1-200x.) + (HANDLESIG): Remove. + (main, FATAL_SIG): Use bsd_signal instead of signal or HANDLESIG. + + * make.h (EINTR_SET): Remove. + (SA_RESTART): New macro. + + * arscan.c (ar_member_touch): Don't worry about EINTR. + * function.c (func_shell): Likewise. + * job.c (reap_children, free_child, new_job): Likewise. + * main.c (main): Likewise. + * remake.c (touch_file, name_mtime): Likewise. + + * arscan.c (ar_member_touch): Fix bug uncovered by EINTR removal; + if fstat failed with errno!=EINTR, the error was ignored. + + * job.c (set_child_handler_action_flags): New function. + (new_job): Use it to temporarily clear the SIGCHLD action flags + while reading the token. + +2001-05-02 Paul D. Smith + + * job.c (start_job_command): Don't add define/endef per-line flags + to the top-level flags setting. + +2001-04-03 Paul D. Smith + + * arscan.c (VMS_get_member_info,ar_scan) [VMS]: VMS sets the low + bit on error, so check for odd return values, not non-0 return + values. + (VMS_get_member_info): Calculate the timezone differences correctly. + Reported by John Fowler . + + +2001-03-14 Paul D. Smith + + * variable.c (lookup_variable) [VMS]: Null-terminate the variable + value before invoking define_variable(). + Reported by John Fowler . + +2001-02-07 Paul D. Smith + + * read.c (record_target_var): If we reset the variable due to a + command-line variable setting overriding it, turn off the "append" + flag. + +2001-01-17 Paul D. Smith + + * variable.c (lookup_variable) [VMS]: When getting values from the + environment, allocate enough space for the _value_ plus escapes, + not enough space for the name plus escapes :-/. + Reported by John Fowler . + + * remake.c (f_mtime): Removed the "***" prefix from the mod time + warnings that make generates, so it doesn't look like an error. + Reported by Karl Berry . + + + Fix for PR/2020: Rework appended target-specific variables. I'm + fairly confident this algorithm is finally correct. + + * expand.c (allocated_variable_append): Rewrite. Instead of + expanding each appended variable then adding all the expanded + strings together, we append all the unexpanded values going up + through the variable set contexts, then expand the final result. + This behaves just like non-target-specific appended variable + values, while the old way didn't in various corner cases. + (variable_append): New function: recursively append the unexpanded + value of a variable, walking from the outermost variable scope to + the innermost. + * variable.c (lookup_variable): Remove the code that looked up the + variable set list if the found variable was "append". We don't + need this anymore. + (lookup_variable_in_set): Make this non-static so we can use it + elsewhere. + (try_variable_definition): Use lookup_variable_in_set() rather + than faking out current_variable_set_list by hand (cleanup). + * variable.h: Add a prototype for the now non-static + lookup_variable_in_set(). + +2000-11-17 Paul D. Smith + + * remake.c (f_mtime) [WINDOWS32]: On various advice, I changed the + WINDOWS32 port to assume timestamps can be up to 3 seconds away + before throwing a fit. + +2000-11-17 Paul D. Smith + + * read.c (readline): CRLF calculations had a hole, if you hit the + buffer grow scenario just right. Reworked the algorithm to avoid + the need for len or lastlen at all. Problem description with + sample code chages provided by Chris Faylor . + +2000-10-24 Paul D. Smith + + * gettext.c (SWAP): Declare this with the prototype, otherwise + some systems don't work (non-32-bit? Reported for Cray T3E). + Reported by Thorstein Thorsteinsson . + +2000-10-05 Paul D. Smith + + * acinclude.m4 (AM_LC_MESSAGES): Remove undefined macro + AM_LC_MESSAGES; it doesn't seem to do anything anyway?? + + * i18n/gl.po, configure.in (ALL_LINGUAS): New Galician translation. + +2000-09-22 Paul D. Smith + + * gettext.c: Don't #define _GETTEXT_H here; we only include some + parts of the real gettext.h here, and we expect to really include + the real gettext.h later. If we keep this #define, it's ignored. + +2000-09-21 Paul D. Smith + + * main.c (log_working_directory): Rework the text to use complete + sentences, to make life simpler for the translators. + +2000-08-29 Paul D. Smith + + * file.c (remove_intermediates): Print a debug message before we + remove intermediate files, so the user (if she uses -d) knows + what's going on. + +2000-08-21 Paul D. Smith + + * variable.c (try_variable_definition): Change how we handle + target-specific append variable defns: instead of just setting the + value, expand it as an append _but_ only within the current + target's context. Otherwise we lose all but the last value if the + variable is appended more than once within the current target + context. Fixes PR/1831. + +2000-08-16 Paul D. Smith + + * function.c (func_shell): Nul-terminate the buffer before + printing an exec error message (just in case it's not!). + Fixes PR/1860, reported by Joey Hess . + +2000-07-25 Paul D. Smith + + * job.c (construct_command_argv_internal): Add "~" to the list of + sh_chars[] which disallow optimizing out the shell call. + +2000-07-23 Paul Eggert + + * NEWS, make.texinfo: Document .LOW_RESOLUTION_TIME, which + supersedes --disable-nsec-timestamps. + * make.texinfo: Consistently use "time stamp" instead of "timestamp". + * README: Remove --disable-nsec-timestamps. + + * filedef.h (struct file.low_resolution_time): New member. + * file.c (snap_deps): Add support for .LOW_RESOLUTION_TIME. + * remake.c (update_file_1): + Avoid spurious rebuilds due to low resolution time stamps, + generalizing the earlier code that applied only to archive members. + (f_mtime): Archive members always have low resolution time stamps. + + * configure.in: Remove --disable-nsec-timestamps, as this has + been superseded by .LOW_RESOLUTION_TIME. + +2000-07-23 Paul Eggert + + * configure.in (enable_nsec_timestamps): Renamed from + make_cv_nsec_timestamps, since enable/disable options + shouldn't be cached. + +2000-07-23 Bruno Haible + and Paul Eggert + + * file.c (file_timestamp_now): + Use preprocessor-time check for FILE_TIMESTAMP_HI_RES + so that clock_gettime is not linked unless needed. + + * filedef.h (FILE_TIMESTAMP_HI_RES): + Remove definition; "configure" now does this. + + * configure.in (jm_AC_TYPE_UINTMAX_T): Move up, + to before high resolution file timestamp check, + since that check now uses uintmax_t. + (FILE_TIMESTAMP_HI_RES): Define to nonzero if the code should use + high resolution file timestamps. + (HAVE_CLOCK_GETTIME): Do not define if !FILE_TIMESTAMP_HI_RES, + so that we don't link in clock_gettime unnecessarily. + +2000-07-17 Paul D. Smith + + * i18n/ja.po: New version of the translation file. + +2000-07-07 Paul D. Smith + + * remake.c (f_mtime): If NO_FLOAT is defined, don't bother with + the offset calculation. + (name_mtime): Replace EINTR test with EINTR_SET macro. + +2000-07-07 Paul Eggert + + Fix for PR/1811: + + * remake.c (update_file_1): + Avoid spurious rebuilds of archive members due to their + timestamp resolution being only one second. + (f_mtime): Avoid spurious warnings of timestamps in the future due to + the clock's resolution being lower than file timestamps'. + When warning about future timestamps, report only the discrepancy, + not the absolute value of the timestamp and the current time. + + * file.c (file_timestamp_now): New arg RESOLUTION. + * filedef.h (file_timestamp_now): Likewise. + (FILE_TIMESTAMP_NS): Now returns int. All uses changed. + +2000-07-05 Paul D. Smith + + * variable.c (lookup_variable) [VMS]: Remove vestigial references + to listp. Fixes PR/1793. + +2000-06-26 Paul Eggert + + * Makefile.am (MAINTAINERCLEANFILES): New macro, with stamp-pot in it. + + * dir.c (vms_hash): Ensure ctype macro args are nonnegative. + + * remake.c (f_mtime): Remove unused var memtime. + +2000-06-25 Martin Buchholz + + * make.texinfo, NEWS, TODO.private: Minor spelling corrections. + Ran spell-check on make.texinfo. + + +See ChangeLog.2 for earlier changes. diff --git a/src/mkutil/make-3.80/INSTALL b/src/mkutil/make-3.80/INSTALL new file mode 100644 index 00000000..bca44d04 --- /dev/null +++ b/src/mkutil/make-3.80/INSTALL @@ -0,0 +1,187 @@ +Basic Installation +================== + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + If you're building GNU make on a system which does not already have + a `make', you can use the build.sh shell script to compile. Run + `sh ./build.sh'. This should compile the program in the current + directory. Then you will have a Make program that you can use for + `make install', or whatever else. + + 3. Optionally, type `./make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/src/mkutil/make-3.80/Makefile.DOS b/src/mkutil/make-3.80/Makefile.DOS new file mode 100644 index 00000000..1d9568a0 --- /dev/null +++ b/src/mkutil/make-3.80/Makefile.DOS @@ -0,0 +1,693 @@ +# -*-Makefile-*- template for DJGPP +# Makefile.in generated automatically by automake 1.2 from Makefile.am + +# Copyright (C) 1994, 1995-1998, 1999, 2002 Free Software Foundation, Inc. +# This Makefile.DOS is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + + +SHELL = /bin/sh + +srcdir = . +VPATH = $(srcdir) +# $DJDIR is defined automatically by DJGPP to point +# to the root of the DJGPP installation tree. +prefix = /dev/env/DJDIR +exec_prefix = ${prefix} + +bindir = /bin +datadir = /share +libdir = /lib +infodir = /info +mandir = /man +includedir = /include +oldincludedir = c:/djgpp/include + +DESTDIR = /dev/env/DJDIR + +pkgdatadir = $(datadir)/make +pkglibdir = $(libdir)/make +pkgincludedir = $(includedir)/make +localedir = $(datadir)/locale + +INSTALL = ${exec_prefix}/bin/ginstall -c +INSTALL_PROGRAM = ${exec_prefix}/bin/ginstall -c +INSTALL_DATA = ${exec_prefix}/bin/ginstall -c -m 644 +INSTALL_SCRIPT = ${exec_prefix}/bin/ginstall -c +transform = s,x,x, + +# This will fail even if they don't have a Unix-like shell (stock DOS +# shell doesn't know about `false'). The only difference is that they +# get "Error -1" instead of "Error 1". +EXIT_FAIL = false + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +EXEEXT = .exe +OBJEXT = o + +AR = ar +AWK = gawk +CC = gcc +CPP = gcc -E +LIBOBJS = +MAKEINFO = ${exec_prefix}/bin/makeinfo +PACKAGE = make +PERL = perl +RANLIB = ranlib +REMOTE = stub +VERSION = 3.80 + +AUTOMAKE_OPTIONS = 1.2 + +bin_PROGRAMS = make$(EXEEXT) + +make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c implicit.c job.c main.c misc.c read.c remake.c rule.c signame.c variable.c version.c vpath.c hash.c remote-$(REMOTE).c +# This should include the glob/ prefix +libglob_a_SOURCES = glob/fnmatch.c glob/glob.c glob/fnmatch.h glob/glob.h +make_LDADD = glob/libglob.a + +info_TEXINFOS = make.texinfo +man_MANS = make.1 + +INCLUDES = -I$(srcdir)/glob -DLIBDIR=\"c:/djgpp/lib\" -DINCLUDEDIR=\"c:/djgpp/include\" -DLOCALEDIR=\"$(localedir)\" + +BUILT_SOURCES = README build.sh-in + +EXTRA_DIST = $(BUILT_SOURCES) $(man_MANS) README.customs remote-cstms.c make-stds.texi texinfo.tex SCOPTIONS SMakefile Makefile.ami README.Amiga config.ami amiga.c amiga.h NMakefile README.DOS configh.dos configure.bat makefile.com README.W32 build_w32.bat config.h-W32 subproc.bat make.lnk config.h-vms makefile.vms readme.vms vmsdir.h vmsfunctions.c vmsify.c + +SUBDIRS = glob +mkinstalldirs = ${exec_prefix}/bin/gmkdir -p +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = build.sh +PROGRAMS = $(bin_PROGRAMS) + +MAKE_HOST = i386-pc-msdosdjgpp + + +DEFS = -I. -I$(srcdir) -I. +CPPFLAGS = -DHAVE_CONFIG_H +LDFLAGS = +LIBS = +make_OBJECTS = ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-$(REMOTE).o +make_DEPENDENCIES = glob/libglob.a +make_LDFLAGS = +libglob_a_LIBADD = +libglob_a_OBJECTS = fnmatch.o glob.o +noinst_LIBRARIES = glob/libglob.a +CFLAGS = -O2 -g +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +TEXI2DVI = texi2dvi +TEXINFO_TEX = $(srcdir)/config/texinfo.tex +INFO_DEPS = make.info +DVIS = make.dvi +TEXINFOS = make.texinfo +man1dir = $(mandir)/man1 +MANS = $(man_MANS) + +NROFF = nroff +DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 alloca.c build.sh-in config.h-in configure configure.in getloadavg.c + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = gtar +GZIP = --best +SOURCES = $(make_SOURCES) +OBJECTS = $(make_OBJECTS) +HEADERS = $(wildcard $(srcdir)/*.h) + +default: all + +.SUFFIXES: +.SUFFIXES: .c .dvi .info .o .obj .ps .texinfo .tex + +mostlyclean-hdr: + +clean-hdr: + +distclean-hdr: + -rm -f config.h + +maintainer-clean-hdr: + +mostlyclean-binPROGRAMS: + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +distclean-binPROGRAMS: + +maintainer-clean-binPROGRAMS: + +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do if test -f $$p; then echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p | sed '$(transform)'`"; $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p | sed '$(transform)'`; else :; fi; done + +uninstall-binPROGRAMS: + $(NORMAL_UNINSTALL) + list='$(bin_PROGRAMS)'; for p in $$list; do rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`.exe; done + +.c.o: + $(COMPILE) -c $< + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) *$(EXEEXT) make.new core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c *_tab.c + +maintainer-clean-compile: + +make$(EXEEXT): $(make_OBJECTS) $(make_DEPENDENCIES) + @command.com /c if exist make del make + @command.com /c if exist make.exe del make.exe + $(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS) + +make.info: make.texinfo +make.dvi: make.texinfo + + +DVIPS = dvips + +.texinfo.info: + @command.com /c if exist make.info* del make.info* + @command.com /c if exist make.i* del make.i* + $(MAKEINFO) -I$(srcdir) $< -o ./$@ + +.texinfo: + @command.com /c if exist make.info* del make.info* + @command.com /c if exist make.i* del make.i* + $(MAKEINFO) -I$(srcdir) $< -o ./$@ + +.texinfo.dvi: + TEXINPUTS="$(srcdir);$$TEXINPUTS" MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + + +.dvi.ps: + $(DVIPS) $< -o $@ + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(infodir) + @for file in $(INFO_DEPS) make.i; do d=$(srcdir); for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9] $$file[0-9] $$file[0-9][0-9]`; do if test -f $$d/$$ifile; then echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; else : ; fi; done; done + @$(POST_INSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then for file in $(INFO_DEPS); do echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file"; install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :; done; else : ; fi + +uninstall-info: + $(PRE_UNINSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then ii=yes; else ii=; fi; for file in $(INFO_DEPS); do test -z $ii || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; done + $(NORMAL_UNINSTALL) + for file in $(INFO_DEPS) make.i; do (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9] $$file[0-9] $$file[0-9][0-9]); done + +dist-info: $(INFO_DEPS) + for base in $(INFO_DEPS); do d=$(srcdir); for file in `cd $$d && eval echo $$base*`; do test -f $(distdir)/$$file || ln $$d/$$file $(distdir)/$$file 2> /dev/null || cp -p $$d/$$file $(distdir)/$$file; done; done + +mostlyclean-aminfo: + -rm -f make.aux make.cp make.cps make.dvi make.fn make.fns make.ky \ + make.kys make.ps make.log make.pg make.toc make.tp make.tps \ + make.vr make.vrs make.op make.tr make.cv make.cn + +clean-aminfo: + +distclean-aminfo: + +maintainer-clean-aminfo: + for i in $(INFO_DEPS) make.i; do rm -f `eval echo $$i*`; done + +install-man1: + $(mkinstalldirs) $(DESTDIR)$(man1dir) + @list='$(man1_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \ + done + +uninstall-man1: + @list='$(man1_MANS)'; \ + l2='$(man_MANS)'; for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \ + rm -f $(DESTDIR)$(man1dir)/$$inst; \ + done +install-man: $(MANS) + @$(NORMAL_INSTALL) + $(MAKE) install-man1 +uninstall-man: + @$(NORMAL_UNINSTALL) + $(MAKE) uninstall-man1 + +# Assume that the only thing to do in glob is to build libglob.a, +# but do a sanity check: if $SUBDIRS will ever have more than +# a single directory, yell bloody murder. +all-recursive: +ifeq ($(words $(SUBDIRS)), 1) + @command.com /c if not exist glob\\nul md glob + @echo Making all in $(SUBDIRS) + $(MAKE) -C $(SUBDIRS) -f ../Makefile INCLUDES='-I$(srcdir) -I$(srcdir)/glob' DEFS='-I.. -I$(srcdir)' VPATH=$(srcdir)/glob libglob.a +else + @echo FATAL: There is more than one directory in "($(SUBDIRS))" + @$(EXIT_FAIL) +endif + +$(SUBDIRS): + command.com /c md $@ + +libglob.a: $(libglob_a_OBJECTS) + command.com /c if exist libglob.a del libglob.a + $(AR) cru libglob.a $(libglob_a_OBJECTS) $(libglob_a_LIBADD) + $(RANLIB) libglob.a + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive check-recursive: +ifeq ($(words $(SUBDIRS)), 1) + @echo Making $(shell echo $@ | sed s/-recursive//) in $(SUBDIRS) + $(MAKE) -C $(SUBDIRS) -f ../Makefile $(shell echo $@ | sed s/-recursive//)-am +else + @echo FATAL: There is more than one directory in "($(SUBDIRS))" + @$(EXIT_FAIL) +endif + +tags-in-glob: $(libglob_a_SOURCES) + etags $(addprefix $(srcdir)/,$^) -o ./glob/TAGS + +tags-recursive: +ifeq ($(words $(SUBDIRS)), 1) + $(MAKE) tags-in-glob +else + @echo FATAL: There is more than one directory in "($(SUBDIRS))" + @$(EXIT_FAIL) +endif + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) + mkid $(srcdir)/$(SOURCES) $(srcdir)/$(libglob_a_SOURCES) ./config.h $(HEADERS) + +TAGS: tags-recursive $(HEADERS) $(srcdir)/$(SOURCES) config.h $(TAGS_DEPENDENCIES) + etags -i ./glob/TAGS $(ETAGS_ARGS) $(srcdir)/$(SOURCES) ./config.h $(HEADERS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; cd $(distdir)/=build && ../configure --srcdir=.. --prefix=$$dc_install_base && $(MAKE) && $(MAKE) dvi && $(MAKE) check && $(MAKE) install && $(MAKE) installcheck && $(MAKE) dist + rm -rf $(distdir) + @echo "========================"; echo "$(distdir).tar.gz is ready for distribution"; echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + rm -rf $(distdir) +distdir: $(DISTFILES) + rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do d=$(srcdir); test -f $(distdir)/$$file || ln $$d/$$file $(distdir)/$$file 2> /dev/null || cp -p $$d/$$file $(distdir)/$$file; done; for subdir in $(SUBDIRS); do test -d $(distdir)/$$subdir || mkdir $(distdir)/$$subdir || exit 1; chmod 777 $(distdir)/$$subdir; (cd $$subdir && $(MAKE) top_distdir=../$(top_distdir)/$$subdir distdir=../$(distdir)/$$subdir distdir) || exit 1; done + $(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info + $(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook + +info: $(INFO_DEPS) info-recursive +dvi: $(DVIS) dvi-recursive +check: all-am check-recursive check-local + @: +installcheck: installcheck-recursive +all-recursive-am: config.h + $(MAKE) all-recursive + +all-am: Makefile $(INFO_DEPS) $(PROGRAMS) config.h + +install-exec-am: install-binPROGRAMS + +install-data-am: install-info-am + +uninstall-am: uninstall-binPROGRAMS uninstall-info + +install-exec: install-exec-recursive install-exec-am + @$(NORMAL_INSTALL) + +install-data: install-data-recursive install-data-am + @$(NORMAL_INSTALL) + +install-recursive uninstall-recursive: + @: + +install: install-recursive install-exec-am install-data-am + @: + +uninstall: uninstall-recursive uninstall-am + +all: all-recursive-am all-am + +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: installdirs-recursive + $(mkinstalldirs) $(bindir) $(infodir) + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS mostlyclean-compile mostlyclean-aminfo mostlyclean-tags mostlyclean-generic + +clean-am: clean-hdr clean-binPROGRAMS clean-compile clean-aminfo clean-tags clean-generic mostlyclean-am + +distclean-am: distclean-hdr distclean-binPROGRAMS distclean-compile distclean-aminfo distclean-tags distclean-generic clean-am + +maintainer-clean-am: maintainer-clean-hdr maintainer-clean-binPROGRAMS maintainer-clean-compile maintainer-clean-aminfo maintainer-clean-tags maintainer-clean-generic distclean-am + +mostlyclean: mostlyclean-recursive mostlyclean-am + +clean: clean-noinstLIBRARIES clean-recursive clean-am + +distclean: distclean-recursive distclean-am + rm -f config.status + +maintainer-clean: maintainer-clean-recursive maintainer-clean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f config.status + +.PHONY: default mostlyclean-hdr distclean-hdr clean-hdr \ +maintainer-clean-hdr mostlyclean-binPROGRAMS distclean-binPROGRAMS \ +clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \ +install-binPROGRAMS mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile install-info-am uninstall-info \ +mostlyclean-aminfo distclean-aminfo clean-aminfo \ +maintainer-clean-aminfo install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive check-am \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir \ +mostlyclean-depend distclean-depend clean-depend \ +maintainer-clean-depend info dvi check-local installcheck \ +all-recursive-am all-am install-exec-am install-data-am uninstall-am \ +install-exec install-data install uninstall all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# --------------- Local DIST Section + +# Install the w32 subdirectory +# +dist-hook: + (cd $(srcdir); \ + w32=`find w32 -follow \( -name CVS -prune \) -o -type f -print`; \ + tar chf - $$w32) \ + | (cd $(distdir); tar xfBp -) + +# --------------- Local CHECK Section + +# Note: check-loadavg is NOT a prerequisite of check-local, since +# there's no uptime utility, and the test it does doesn't make sense +# on MSDOS anyway. +check-local: check-shell check-regression + @banner=" Regression PASSED: GNU Make $(VERSION) ($(MAKE_HOST)) built with $(CC) "; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + echo + +.PHONY: check-loadavg check-shell check-regression + +# > check-shell +# +# check-shell is designed to fail if they don't have a Unixy shell +# installed. The test suite requires such a shell. +check-shell: + @echo If Make says Error -1, you do not have Unix-style shell installed + @foo=bar.exe : + +# > check-loadavg +# +loadavg: loadavg.c config.h + @rm -f loadavg + $(LINK) -DTEST $(make_LDFLAGS) loadavg.c $(LIBS) +# We copy getloadavg.c into a different file rather than compiling it +# directly because some compilers clobber getloadavg.o in the process. +loadavg.c: getloadavg.c + ln $(srcdir)/getloadavg.c loadavg.c || \ + cp $(srcdir)/getloadavg.c loadavg.c +check-loadavg: loadavg + @echo The system uptime program believes the load average to be: + -uptime + @echo The GNU load average checking code believes: + -./loadavg + +# > check-regression +# +# Look for the make test suite, and run it if found. Look in MAKE_TEST if +# specified, or else in the srcdir or the distdir, their parents, and _their_ +# parents. +# +check-regression: + @if test -f "$(srcdir)/tests/run_make_tests"; then \ + if $(PERL) -v >/dev/null 2>&1; then \ + case `cd $(srcdir); pwd` in `pwd`) : ;; \ + *) test -d tests || mkdir tests; \ + for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \ + rm -rf tests/$$f; cp -pr $(srcdir)/tests/$$f tests; \ + done ;; \ + esac; \ + echo "cd tests && $(PERL) ./run_make_tests.pl -make ../make.exe $(MAKETESTFLAGS)"; \ + cd tests && $(PERL) ./run_make_tests.pl -make ../make.exe $(MAKETESTFLAGS); \ + else \ + echo "Can't find a working Perl ($(PERL)); the test suite requires Perl."; \ + fi; \ + else \ + echo "Can't find the GNU Make test suite ($(srcdir)/tests)."; \ + fi + +# --------------- Maintainer's Section + +# Note this requires GNU make. Not to worry, since it will only be included +# in the Makefile if we're in the maintainer's environment. +#include $(srcdir)/maintMakefile + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +# --------------- DEPENDENCIES +ar.o: ar.c make.h config.h gettext.h filedef.h dep.h glob/fnmatch.h +arscan.o: arscan.c make.h config.h gettext.h +commands.o: commands.c make.h config.h gettext.h dep.h filedef.h \ + variable.h job.h commands.h +default.o: default.c make.h config.h gettext.h rule.h dep.h filedef.h \ + job.h commands.h variable.h +dir.o: dir.c make.h config.h gettext.h glob/glob.h +expand.o: expand.c make.h config.h gettext.h filedef.h job.h commands.h \ + variable.h rule.h +file.o: file.c make.h config.h gettext.h dep.h filedef.h job.h \ + commands.h variable.h debug.h +function.o: function.c make.h config.h gettext.h filedef.h variable.h \ + dep.h job.h commands.h debug.h +getopt.o: getopt.c config.h gettext.h getopt.h +getopt1.o: getopt1.c config.h getopt.h +implicit.o: implicit.c make.h config.h gettext.h rule.h dep.h filedef.h \ + debug.h +job.o: job.c make.h config.h gettext.h job.h debug.h filedef.h \ + commands.h variable.h +main.o: main.c make.h config.h gettext.h dep.h filedef.h variable.h \ + job.h commands.h rule.h debug.h getopt.h +misc.o: misc.c make.h config.h gettext.h dep.h debug.h +read.o: read.c make.h config.h gettext.h glob/glob.h dep.h filedef.h \ + job.h commands.h variable.h rule.h debug.h +remake.o: remake.c make.h config.h gettext.h filedef.h job.h commands.h \ + dep.h variable.h debug.h +remote-stub.o: remote-stub.c make.h config.h gettext.h filedef.h job.h \ + commands.h +rule.o: rule.c make.h config.h gettext.h dep.h filedef.h job.h \ + commands.h variable.h rule.h +signame.o: signame.c make.h config.h gettext.h +variable.o: variable.c make.h config.h gettext.h dep.h filedef.h job.h \ + commands.h variable.h rule.h +version.o: version.c config.h +vpath.o: vpath.c make.h config.h gettext.h filedef.h variable.h + +# --------------- DEPENDENCIES +# +# dummy +# dummy +ar.o : \ + ar.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h dep.h +arscan.o : \ + arscan.c make.h config.h \ + getopt.h \ + gettext.h \ + +commands.o : \ + commands.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h variable.h job.h commands.h +default.o : \ + default.c make.h config.h \ + getopt.h \ + gettext.h rule.h \ + dep.h filedef.h hash.h job.h commands.h variable.h +dir.o : \ + dir.c make.h config.h \ + getopt.h \ + gettext.h hash.h \ + +expand.o : \ + expand.c make.h config.h \ + getopt.h \ + gettext.h \ + filedef.h hash.h job.h commands.h variable.h \ + rule.h +file.o : \ + file.c make.h config.h \ + getopt.h \ + gettext.h \ + dep.h filedef.h hash.h job.h commands.h \ + variable.h debug.h +function.o : \ + function.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h variable.h dep.h job.h commands.h debug.h +getopt.o : \ + getopt.c config.h \ + +getopt1.o : \ + getopt1.c config.h getopt.h \ + +hash.o : \ + hash.c make.h config.h \ + getopt.h \ + gettext.h hash.h +implicit.o : \ + implicit.c make.h config.h \ + getopt.h \ + gettext.h rule.h \ + dep.h filedef.h hash.h debug.h +job.o : \ + job.c make.h config.h \ + getopt.h \ + gettext.h \ + job.h debug.h filedef.h hash.h commands.h \ + variable.h \ + +loadavg-loadavg.o : \ + loadavg.c config.h \ + make.h \ + getopt.h \ + gettext.h \ + +main.o : \ + main.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h variable.h job.h commands.h rule.h debug.h \ + +misc.o : \ + misc.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + debug.h +read.o : \ + read.c make.h config.h \ + getopt.h \ + gettext.h \ + dep.h filedef.h hash.h \ + job.h commands.h variable.h rule.h debug.h +remake.o : \ + remake.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h job.h commands.h dep.h variable.h debug.h \ + +# dummy +remote-stub.o : \ + remote-stub.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h job.h commands.h +rule.o : \ + rule.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h job.h commands.h variable.h rule.h +signame.o : \ + signame.c make.h config.h \ + getopt.h \ + gettext.h +variable.o : \ + variable.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h job.h commands.h variable.h rule.h +version.o : \ + version.c config.h +vpath.o : \ + vpath.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h variable.h diff --git a/src/mkutil/make-3.80/Makefile.am b/src/mkutil/make-3.80/Makefile.am new file mode 100644 index 00000000..33b498b5 --- /dev/null +++ b/src/mkutil/make-3.80/Makefile.am @@ -0,0 +1,162 @@ +# This is a -*-Makefile-*-, or close enough + +AUTOMAKE_OPTIONS = 1.7 dist-bzip2 check-news +ACLOCAL_AMFLAGS = -I config + +SUBDIRS = glob config po doc + +bin_PROGRAMS = make + +if USE_CUSTOMS + remote = remote-cstms.c +else + remote = remote-stub.c +endif + +make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \ + function.c getopt.c getopt1.c implicit.c job.c main.c \ + misc.c read.c remake.c $(remote) rule.c signame.c \ + variable.c version.c vpath.c hash.c + +EXTRA_make_SOURCES = remote-stub.c remote-cstms.c + +noinst_HEADERS = commands.h dep.h filedef.h job.h make.h rule.h variable.h \ + debug.h getopt.h gettext.h hash.h + +make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ + +man_MANS = make.1 + +DEFS = -DLOCALEDIR=\"$(localedir)\" -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" @DEFS@ + +AM_CPPFLAGS = $(GLOBINC) + + +# Extra stuff to include in the distribution. +# Note we need all the glob stuff here, rather than in glob/Makefile.am, +# because often that directory isn't built on the systems used by the +# maintainers. + +EXTRA_DIST = README build.sh.in $(man_MANS)\ + README.customs\ + SCOPTIONS SMakefile\ + README.Amiga Makefile.ami config.ami make.lnk amiga.c amiga.h\ + README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\ + README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat\ + readme.vms makefile.vms makefile.com config.h-vms \ + vmsdir.h vmsfunctions.c vmsify.c + +MAKE_HOST = @MAKE_HOST@ + + +# Forward targets + +html: + cd doc && $(MAKE) $(AM_MAKEFLAGS) $@ + +.PHONY: html + +# --------------- Internationalization Section + +localedir = $(datadir)/locale + +# --------------- Local INSTALL Section + +# If necessary, change the gid of the app and turn on the setgid flag. +# + +# Whether or not make needs to be installed setgid. +# The value should be either `true' or `false'. +# On many systems, the getloadavg function (used to implement the `-l' +# switch) will not work unless make is installed setgid kmem. +# +inst_setgid = @NEED_SETGID@ + +# Install make setgid to this group so it can get the load average. +# +inst_group = @KMEM_GROUP@ + +install-exec-local: + @if $(inst_setgid); then \ + app=$(DESTDIR)$(bindir)/`echo $(bin_PROGRAMS)|sed '$(transform)'`; \ + if chgrp $(inst_group) $$app && chmod g+s $$app; then \ + echo "chgrp $(inst_group) $$app && chmod g+s $$app"; \ + else \ + echo "$$app needs to be owned by group $(inst_group) and setgid;"; \ + echo "otherwise the \`-l' option will probably not work."; \ + echo "You may need special privileges to complete the installation"; \ + echo "of $$app."; \ + fi; \ + else true; fi + +# --------------- Local DIST Section + +# Install the w32 and tests subdirectories +# +dist-hook: + (cd $(srcdir); \ + sub=`find w32 tests -follow \( -name CVS -prune -o -name .cvsignore -o -name work -prune \) -o \( -name \*.orig -o -name \*.rej -o -name \*~ -prune \) -o -type f -print`; \ + tar chf - $$sub) \ + | (cd $(distdir); tar xfBp -) + + +# --------------- Local CHECK Section + +check-local: check-regression check-loadavg + @banner=" Regression PASSED: GNU Make $(VERSION) ($(MAKE_HOST)) built with $(CC) "; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + echo + +.PHONY: check-loadavg check-regression + +check-loadavg: loadavg + @echo The system uptime program believes the load average to be: + -uptime + @echo The GNU load average checking code thinks: + -./loadavg + +# The loadavg function is invoked during "make check" to test getloadavg. +noinst_PROGRAMS = loadavg +loadavg_SOURCES = loadavg.c +loadavg_CFLAGS = -DTEST +loadavg_LDADD = @GETLOADAVG_LIBS@ + +loadavg.c: $(srcdir)/getloadavg.c + cp $(srcdir)/getloadavg.c loadavg.c + +# > check-regression +# +# Look for the make test suite, and run it if found and we can find perl. +# If we're building outside the tree, we use symlinks to make a local copy of +# the test suite. Unfortunately the test suite itself isn't localizable yet. +# +MAKETESTFLAGS = + +check-regression: + @if test -f "$(srcdir)/tests/run_make_tests"; then \ + if $(PERL) -v >/dev/null 2>&1; then \ + case `cd $(srcdir); pwd` in `pwd`) : ;; \ + *) test -d tests || mkdir tests; \ + rm -f srctests; \ + if ln -s "$(srcdir)/tests" srctests; then \ + for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \ + rm -f tests/$$f; ln -s ../srctests/$$f tests; \ + done; fi ;; \ + esac; \ + echo "cd tests && $(PERL) ./run_make_tests.pl -make ../make $(MAKETESTFLAGS)"; \ + cd tests && $(PERL) ./run_make_tests.pl -make ../make $(MAKETESTFLAGS); \ + else \ + echo "Can't find a working Perl ($(PERL)); the test suite requires Perl."; \ + fi; \ + else \ + echo "Can't find the GNU Make test suite ($(srcdir)/tests)."; \ + fi + + +# --------------- Maintainer's Section + +@MAINT_MAKEFILE@ diff --git a/src/mkutil/make-3.80/Makefile.ami b/src/mkutil/make-3.80/Makefile.ami new file mode 100644 index 00000000..8a71d690 --- /dev/null +++ b/src/mkutil/make-3.80/Makefile.ami @@ -0,0 +1,305 @@ +# NOTE: If you have no `make' program at all to process this makefile, run +# `build.sh' instead. +# +# Copyright (C) 1988, 89, 91, 92, 93, 94, 1995 Free Software Foundation, Inc. +# This file is part of GNU Make. +# +# GNU Make 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, or (at your option) +# any later version. +# +# GNU Make 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 GNU Make; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# +# Makefile for GNU Make +# + +CC = sc +RM = delete + +CFLAGS = +CPPFLAGS = +LDFLAGS = + +# Define these for your system as follows: +# -DNO_ARCHIVES To disable `ar' archive support. +# -DNO_FLOAT To avoid using floating-point numbers. +# -DENUM_BITFIELDS If the compiler isn't GCC but groks enum foo:2. +# Some compilers apparently accept this +# without complaint but produce losing code, +# so beware. +# NeXT 1.0a uses an old version of GCC, which required -D__inline=inline. +# See also `config.h'. +defines = + +# Which flavor of remote job execution support to use. +# The code is found in `remote-$(REMOTE).c'. +REMOTE = stub + +# If you are using the GNU C library, or have the GNU getopt functions in +# your C library, you can comment these out. +GETOPT = getopt.o getopt1.o +GETOPT_SRC = $(srcdir)getopt.c $(srcdir)getopt1.c $(srcdir)getopt.h + +# If you are using the GNU C library, or have the GNU glob functions in +# your C library, you can comment this out. GNU make uses special hooks +# into the glob functions to be more efficient (by using make's directory +# cache for globbing), so you must use the GNU functions even if your +# system's C library has the 1003.2 glob functions already. Also, the glob +# functions in the AIX and HPUX C libraries are said to be buggy. +GLOB = glob/glob.lib + +# If your system doesn't have alloca, or the one provided is bad, define this. +ALLOCA = alloca.o +ALLOCA_SRC = $(srcdir)alloca.c + +# If your system needs extra libraries loaded in, define them here. +# System V probably need -lPW for alloca. HP-UX 7.0's alloca in +# libPW.a is broken on HP9000s300 and HP9000s400 machines. Use +# alloca.c instead on those machines. +LOADLIBES = + +# Any extra object files your system needs. +extras = amiga.o + +# Common prefix for machine-independent installed files. +prefix = +# Common prefix for machine-dependent installed files. +exec_prefix = + +# Directory to install `make' in. +bindir = sc:c +# Directory to find libraries in for `-lXXX'. +libdir = lib: +# Directory to search by default for included makefiles. +includedir = include: +# Directory to install the Info files in. +infodir = doc: +# Directory to install the man page in. +mandir = t: +# Number to put on the man page filename. +manext = 1 +# Prefix to put on installed `make' binary file name. +binprefix = +# Prefix to put on installed `make' man page file name. +manprefix = $(binprefix) + +# Whether or not make needs to be installed setgid. +# The value should be either `true' or `false'. +# On many systems, the getloadavg function (used to implement the `-l' +# switch) will not work unless make is installed setgid kmem. +install_setgid = false +# Install make setgid to this group so it can read /dev/kmem. +group = sys + +# Program to install `make'. +INSTALL_PROGRAM = copy +# Program to install the man page. +INSTALL_DATA = copy +# Generic install program. +INSTALL = copy + +# Program to format Texinfo source into Info files. +MAKEINFO = makeinfo +# Program to format Texinfo source into DVI files. +TEXI2DVI = texi2dvi + +# Programs to make tags files. +ETAGS = etags -w +CTAGS = ctags -w + +objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o \ + rule.o implicit.o default.o variable.o expand.o function.o \ + vpath.o version.o ar.o arscan.o signame.o remote-$(REMOTE).o \ + $(GETOPT) $(ALLOCA) $(extras) +srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c \ + $(srcdir)file.c $(srcdir)getloadavg.c $(srcdir)misc.c \ + $(srcdir)main.c $(srcdir)read.c $(srcdir)remake.c \ + $(srcdir)rule.c $(srcdir)implicit.c $(srcdir)default.c \ + $(srcdir)variable.c $(srcdir)expand.c $(srcdir)function.c \ + $(srcdir)vpath.c $(srcdir)version.c \ + $(srcdir)remote-$(REMOTE).c \ + $(srcdir)ar.c $(srcdir)arscan.c \ + $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC) \ + $(srcdir)commands.h $(srcdir)dep.h $(srcdir)filedep.h \ + $(srcdir)job.h $(srcdir)make.h $(srcdir)rule.h \ + $(srcdir)variable.h $(ALLOCA_SRC) $(srcdir)config.h.in + + +.SUFFIXES: +.SUFFIXES: .o .c .h .ps .dvi .info .texinfo + +all: make +info: make.info +dvi: make.dvi +# Some makes apparently use .PHONY as the default goal if it is before `all'. +.PHONY: all check info dvi + +make.info: make.texinfo + $(MAKEINFO) -I$(srcdir) $(srcdir)make.texinfo -o make.info + +make.dvi: make.texinfo + $(TEXI2DVI) $(srcdir)make.texinfo + +make.ps: make.dvi + dvi2ps make.dvi > make.ps + +make: $(objs) $(GLOB) + $(CC) Link $(LDFLAGS) $(objs) Lib $(GLOB) $(LOADLIBES) To make.new + -delete make + rename make.new make + +TMPFILE = t:Make$$ + +$(GLOB): + cd glob @@\ + $(MAKE) -$(MAKEFLAGS) -f Makefile + +# -I. is needed to find config.h in the build directory. +OUTPUT_OPTION = +.c.o: + $(CC) $(defines) IDir "" IDir glob \ + $(CPPFLAGS) $(CFLAGS) $< $(OUTPUT_OPTION) + +# For some losing Unix makes. +SHELL = /bin/sh +#@SET_MAKE@ + +glob/libglob.a: FORCE config.h + cd glob; $(MAKE) libglob.a +FORCE: + +tagsrcs = $(srcs) $(srcdir)remote-*.c + +.PHONY: install installdirs +install: installdirs \ + $(bindir)$(binprefix)make $(infodir)make.info \ + $(mandir)$(manprefix)make.$(manext) + +installdirs: + $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(mandir) + +$(bindir)$(binprefix)make: make + $(INSTALL_PROGRAM) make $@.new + @if $(install_setgid); then \ + if chgrp $(group) $@.new && chmod g+s $@.new; then \ + echo "chgrp $(group) $@.new && chmod g+s $@.new"; \ + else \ + echo "$@ needs to be owned by group $(group) and setgid;"; \ + echo "otherwise the \`-l' option will probably not work."; \ + echo "You may need special privileges to install $@."; \ + fi; \ + else true; fi +# Some systems can't deal with renaming onto a running binary. + -$(RM) $@.old + -mv $@ $@.old + mv $@.new $@ + +$(infodir)make.info: make.info + if [ -r ./make.info ]; then dir=.; else dir=$(srcdir); fi; \ + for file in $${dir}/make.info*; do \ + name="`basename $$file`"; \ + $(INSTALL_DATA) $$file \ + `echo $@ | sed "s,make.info\$$,$$name,"`; \ + done +# Run install-info only if it exists. +# Use `if' instead of just prepending `-' to the +# line so we notice real errors from install-info. +# We use `$(SHELL) -c' because some shells do not +# fail gracefully when there is an unknown command. + if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ + if [ -r ./make.info ]; then dir=.; else dir=$(srcdir); fi; \ + install-info --infodir=$(infodir) $$dir/make.info; \ + else true; fi + +$(mandir)$(manprefix)make.$(manext): make.man + $(INSTALL_DATA) $(srcdir)make.man $@ + + +loadavg: loadavg.c config.h + $(CC) $(defines) -DTEST -I. -I$(srcdir) $(CFLAGS) $(LDFLAGS) \ + loadavg.c $(LOADLIBES) -o $@ +# We copy getloadavg.c into a different file rather than compiling it +# directly because some compilers clobber getloadavg.o in the process. +loadavg.c: getloadavg.c + ln $(srcdir)getloadavg.c loadavg.c || \ + cp $(srcdir)getloadavg.c loadavg.c +check-loadavg: loadavg + @echo The system uptime program believes the load average to be: + -uptime + @echo The GNU load average checking code believes: + ./loadavg +check: check-loadavg + + +.PHONY: clean realclean distclean mostlyclean +clean: glob-clean + -$(RM) make loadavg "#?.o" core make.dvi + +distclean: clean glob-realclean + -$(RM) Makefile config.h config.status build.sh + -$(RM) config.log config.cache + -$(RM) TAGS tags + -$(RM) make.?? make.??s make.log make.toc make.*aux + -$(RM) loadavg.c + +realclean: distclean + -$(RM) make.info* +mostlyclean: clean + +.PHONY: glob-clean glob-realclean +glob-clean glob-realclean: + cd glob @@\ + $(MAKE) $@ + +# This tells versions [3.59,3.63) of GNU make not to export all variables. +.NOEXPORT: + +# The automatically generated dependencies below may omit config.h +# because it is included with ``#include '' rather than +# ``#include "config.h"''. So we add the explicit dependency to make sure. +$(objs): config.h + +# Automatically generated dependencies will be put at the end of the file. + +# Automatically generated dependencies. +commands.o: commands.c make.h dep.h filedef.h variable.h job.h \ + commands.h +job.o: job.c make.h job.h filedef.h commands.h variable.h +dir.o: dir.c make.h +file.o: file.c make.h dep.h filedef.h job.h commands.h variable.h +misc.o: misc.c make.h dep.h +main.o: main.c make.h dep.h filedef.h variable.h job.h commands.h \ + getopt.h +read.o: read.c make.h dep.h filedef.h job.h commands.h variable.h \ + glob/glob.h +remake.o: remake.c make.h filedef.h job.h commands.h dep.h +rule.o: rule.c make.h dep.h filedef.h job.h commands.h variable.h \ + rule.h +implicit.o: implicit.c make.h rule.h dep.h filedef.h +default.o: default.c make.h rule.h dep.h filedef.h job.h commands.h \ + variable.h +variable.o: variable.c make.h dep.h filedef.h job.h commands.h \ + variable.h +expand.o: expand.c make.h filedef.h job.h commands.h variable.h +function.o: function.c make.h filedef.h variable.h dep.h job.h \ + commands.h amiga.h +vpath.o: vpath.c make.h filedef.h variable.h +version.o: version.c +ar.o: ar.c make.h filedef.h dep.h +arscan.o: arscan.c make.h +signame.o: signame.c signame.h +remote-stub.o: remote-stub.c make.h filedef.h job.h commands.h +getopt.o: getopt.c +getopt1.o : getopt1.c getopt.h +getloadavg.o: getloadavg.c +amiga.o: amiga.c make.h variable.h amiga.h diff --git a/src/mkutil/make-3.80/Makefile.in b/src/mkutil/make-3.80/Makefile.in new file mode 100644 index 00000000..29b4ab50 --- /dev/null +++ b/src/mkutil/make-3.80/Makefile.in @@ -0,0 +1,925 @@ +# Makefile.in generated by automake 1.7 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# This is a -*-Makefile-*-, or close enough + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = . + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ + +DEFS = -DLOCALEDIR=\"$(localedir)\" -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ +GLOBINC = @GLOBINC@ +GLOBLIB = @GLOBLIB@ +GMSGFMT = @GMSGFMT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +KMEM_GROUP = @KMEM_GROUP@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBS = @LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ + +MAKE_HOST = @MAKE_HOST@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NEED_SETGID = @NEED_SETGID@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_CUSTOMS_FALSE = @USE_CUSTOMS_FALSE@ +USE_CUSTOMS_TRUE = @USE_CUSTOMS_TRUE@ +USE_LOCAL_GLOB_FALSE = @USE_LOCAL_GLOB_FALSE@ +USE_LOCAL_GLOB_TRUE = @USE_LOCAL_GLOB_TRUE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ + +AUTOMAKE_OPTIONS = 1.7 dist-bzip2 check-news +ACLOCAL_AMFLAGS = -I config + +SUBDIRS = glob config po doc + +bin_PROGRAMS = make + +@USE_CUSTOMS_TRUE@remote = remote-cstms.c +@USE_CUSTOMS_FALSE@remote = remote-stub.c + +make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \ + function.c getopt.c getopt1.c implicit.c job.c main.c \ + misc.c read.c remake.c $(remote) rule.c signame.c \ + variable.c version.c vpath.c hash.c + + +EXTRA_make_SOURCES = remote-stub.c remote-cstms.c + +noinst_HEADERS = commands.h dep.h filedef.h job.h make.h rule.h variable.h \ + debug.h getopt.h gettext.h hash.h + + +make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ + +man_MANS = make.1 + +AM_CPPFLAGS = $(GLOBINC) + + +# Extra stuff to include in the distribution. +# Note we need all the glob stuff here, rather than in glob/Makefile.am, +# because often that directory isn't built on the systems used by the +# maintainers. +EXTRA_DIST = README build.sh.in $(man_MANS)\ + README.customs\ + SCOPTIONS SMakefile\ + README.Amiga Makefile.ami config.ami make.lnk amiga.c amiga.h\ + README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\ + README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat\ + readme.vms makefile.vms makefile.com config.h-vms \ + vmsdir.h vmsfunctions.c vmsify.c + + + +# --------------- Internationalization Section +localedir = $(datadir)/locale + +# --------------- Local INSTALL Section + +# If necessary, change the gid of the app and turn on the setgid flag. +# + +# Whether or not make needs to be installed setgid. +# The value should be either `true' or `false'. +# On many systems, the getloadavg function (used to implement the `-l' +# switch) will not work unless make is installed setgid kmem. +# +inst_setgid = @NEED_SETGID@ + +# Install make setgid to this group so it can get the load average. +# +inst_group = @KMEM_GROUP@ + +# The loadavg function is invoked during "make check" to test getloadavg. +noinst_PROGRAMS = loadavg +loadavg_SOURCES = loadavg.c +loadavg_CFLAGS = -DTEST +loadavg_LDADD = @GETLOADAVG_LIBS@ + +# > check-regression +# +# Look for the make test suite, and run it if found and we can find perl. +# If we're building outside the tree, we use symlinks to make a local copy of +# the test suite. Unfortunately the test suite itself isn't localizable yet. +# +MAKETESTFLAGS = +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = build.sh +bin_PROGRAMS = make$(EXEEXT) +noinst_PROGRAMS = loadavg$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) + +am_loadavg_OBJECTS = loadavg-loadavg.$(OBJEXT) +loadavg_OBJECTS = $(am_loadavg_OBJECTS) +loadavg_DEPENDENCIES = +loadavg_LDFLAGS = +@USE_CUSTOMS_TRUE@am__objects_1 = remote-cstms.$(OBJEXT) +@USE_CUSTOMS_FALSE@am__objects_1 = remote-stub.$(OBJEXT) +am_make_OBJECTS = ar.$(OBJEXT) arscan.$(OBJEXT) commands.$(OBJEXT) \ + default.$(OBJEXT) dir.$(OBJEXT) expand.$(OBJEXT) file.$(OBJEXT) \ + function.$(OBJEXT) getopt.$(OBJEXT) getopt1.$(OBJEXT) \ + implicit.$(OBJEXT) job.$(OBJEXT) main.$(OBJEXT) misc.$(OBJEXT) \ + read.$(OBJEXT) remake.$(OBJEXT) $(am__objects_1) rule.$(OBJEXT) \ + signame.$(OBJEXT) variable.$(OBJEXT) version.$(OBJEXT) \ + vpath.$(OBJEXT) hash.$(OBJEXT) +make_OBJECTS = $(am_make_OBJECTS) +make_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ +make_LDFLAGS = + +DEFAULT_INCLUDES = -I. -I$(srcdir) -I. +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/alloca.Po $(DEPDIR)/getloadavg.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/ar.Po ./$(DEPDIR)/arscan.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/commands.Po ./$(DEPDIR)/default.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/dir.Po ./$(DEPDIR)/expand.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/file.Po ./$(DEPDIR)/function.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/getopt.Po ./$(DEPDIR)/getopt1.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/implicit.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/job.Po ./$(DEPDIR)/loadavg-loadavg.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/misc.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/read.Po ./$(DEPDIR)/remake.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/remote-cstms.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/remote-stub.Po ./$(DEPDIR)/rule.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/signame.Po ./$(DEPDIR)/variable.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/version.Po ./$(DEPDIR)/vpath.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(loadavg_SOURCES) $(make_SOURCES) $(EXTRA_make_SOURCES) + +NROFF = nroff +MANS = $(man_MANS) +HEADERS = $(noinst_HEADERS) + + +RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ + ps-recursive install-info-recursive uninstall-info-recursive \ + all-recursive install-data-recursive install-exec-recursive \ + installdirs-recursive install-recursive uninstall-recursive \ + check-recursive installcheck-recursive +DIST_COMMON = README $(noinst_HEADERS) ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL Makefile.am Makefile.in NEWS acinclude.m4 \ + aclocal.m4 alloca.c build.sh.in config.h.in configure \ + configure.in getloadavg.c +DIST_SUBDIRS = $(SUBDIRS) +SOURCES = $(loadavg_SOURCES) $(make_SOURCES) $(EXTRA_make_SOURCES) + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .o .obj + +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) + +$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +$(ACLOCAL_M4): configure.in acinclude.m4 config/codeset.m4 config/gettext.m4 config/glibc21.m4 config/iconv.m4 config/intdiv0.m4 config/inttypes-pri.m4 config/inttypes.m4 config/inttypes_h.m4 config/isc-posix.m4 config/lcmessage.m4 config/lib-ld.m4 config/lib-link.m4 config/lib-prefix.m4 config/progtest.m4 config/stdint_h.m4 config/uintmax_t.m4 config/ulonglong.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h + +$(srcdir)/config.h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOHEADER) + touch $(srcdir)/config.h.in + +distclean-hdr: + -rm -f config.h stamp-h1 +build.sh: $(top_builddir)/config.status build.sh.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(bindir) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ + $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ + rm -f $(DESTDIR)$(bindir)/$$f; \ + done + +clean-binPROGRAMS: + -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + +clean-noinstPROGRAMS: + -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) +loadavg-loadavg.$(OBJEXT): loadavg.c +loadavg$(EXEEXT): $(loadavg_OBJECTS) $(loadavg_DEPENDENCIES) + @rm -f loadavg$(EXEEXT) + $(LINK) $(loadavg_LDFLAGS) $(loadavg_OBJECTS) $(loadavg_LDADD) $(LIBS) +make$(EXEEXT): $(make_OBJECTS) $(make_DEPENDENCIES) + @rm -f make$(EXEEXT) + $(LINK) $(make_LDFLAGS) $(make_OBJECTS) $(make_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getloadavg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ar.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arscan.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/commands.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/default.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expand.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/function.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/implicit.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/job.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadavg-loadavg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remake.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote-cstms.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote-stub.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rule.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signame.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/variable.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpath.Po@am__quote@ + +distclean-depend: + -rm -rf $(DEPDIR) ./$(DEPDIR) + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \ +@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'` + +loadavg-loadavg.o: loadavg.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(loadavg_CFLAGS) $(CFLAGS) -MT loadavg-loadavg.o -MD -MP -MF "$(DEPDIR)/loadavg-loadavg.Tpo" \ +@am__fastdepCC_TRUE@ -c -o loadavg-loadavg.o `test -f 'loadavg.c' || echo '$(srcdir)/'`loadavg.c; \ +@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/loadavg-loadavg.Tpo" "$(DEPDIR)/loadavg-loadavg.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/loadavg-loadavg.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loadavg.c' object='loadavg-loadavg.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/loadavg-loadavg.Po' tmpdepfile='$(DEPDIR)/loadavg-loadavg.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(loadavg_CFLAGS) $(CFLAGS) -c -o loadavg-loadavg.o `test -f 'loadavg.c' || echo '$(srcdir)/'`loadavg.c + +loadavg-loadavg.obj: loadavg.c +@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(loadavg_CFLAGS) $(CFLAGS) -MT loadavg-loadavg.obj -MD -MP -MF "$(DEPDIR)/loadavg-loadavg.Tpo" \ +@am__fastdepCC_TRUE@ -c -o loadavg-loadavg.obj `if test -f 'loadavg.c'; then $(CYGPATH_W) 'loadavg.c'; else $(CYGPATH_W) '$(srcdir)/loadavg.c'`; \ +@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/loadavg-loadavg.Tpo" "$(DEPDIR)/loadavg-loadavg.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/loadavg-loadavg.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='loadavg.c' object='loadavg-loadavg.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/loadavg-loadavg.Po' tmpdepfile='$(DEPDIR)/loadavg-loadavg.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(loadavg_CFLAGS) $(CFLAGS) -c -o loadavg-loadavg.obj `if test -f 'loadavg.c'; then $(CYGPATH_W) 'loadavg.c'; else $(CYGPATH_W) '$(srcdir)/loadavg.c'` +uninstall-info-am: + +man1dir = $(mandir)/man1 +install-man1: $(man1_MANS) $(man_MANS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(man1dir) + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ + else file=$$i; fi; \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + case "$$ext" in \ + 1*) ;; \ + *) ext='1' ;; \ + esac; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \ + done +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ + l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ + for i in $$l2; do \ + case "$$i" in \ + *.1*) list="$$list $$i" ;; \ + esac; \ + done; \ + for i in $$list; do \ + ext=`echo $$i | sed -e 's/^.*\\.//'`; \ + inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ + inst=`echo $$inst | sed -e 's/^.*\///'`; \ + inst=`echo $$inst | sed '$(transform)'`.$$ext; \ + echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \ + rm -f $(DESTDIR)$(man1dir)/$$inst; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ETAGS = etags +ETAGSFLAGS = + +CTAGS = ctags +CTAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = . +distdir = $(PACKAGE)-$(VERSION) + +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } + +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print + +distdir: $(DISTFILES) + @case `sed 15q $(srcdir)/NEWS` in \ + *"$(VERSION)"*) : ;; \ + *) \ + echo "NEWS not updated; not releasing" 1>&2; \ + exit 1;; \ + esac + $(am__remove_distdir) + mkdir $(distdir) + $(mkinstalldirs) $(distdir)/. $(distdir)/po + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" \ + distdir=../$(distdir)/$$subdir \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist dist-all: distdir + $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + $(am__remove_distdir) + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && $(mkinstalldirs) $$dc_destdir \ + && cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + --with-included-gettext \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ + && rm -f $(distdir).tar.gz \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @echo "$(distdir).tar.gz is ready for distribution" | \ + sed 'h;s/./=/g;p;x;p;x' +distuninstallcheck: + cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-recursive +all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS) config.h +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) + +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-binPROGRAMS clean-generic clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) +distclean-am: clean-am distclean-compile distclean-depend \ + distclean-generic distclean-hdr distclean-tags + +dvi: dvi-recursive + +dvi-am: + +info: info-recursive + +info-am: + +install-data-am: install-man + +install-exec-am: install-binPROGRAMS install-exec-local + +install-info: install-info-recursive + +install-man: install-man1 + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf autom4te.cache +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man + +uninstall-info: uninstall-info-recursive + +uninstall-man: uninstall-man1 + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ + check-local clean clean-binPROGRAMS clean-generic \ + clean-noinstPROGRAMS clean-recursive ctags ctags-recursive dist \ + dist-all dist-bzip2 dist-gzip distcheck distclean \ + distclean-compile distclean-depend distclean-generic \ + distclean-hdr distclean-recursive distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am dvi-recursive info \ + info-am info-recursive install install-am install-binPROGRAMS \ + install-data install-data-am install-data-recursive \ + install-exec install-exec-am install-exec-local \ + install-exec-recursive install-info install-info-am \ + install-info-recursive install-man install-man1 \ + install-recursive install-strip installcheck installcheck-am \ + installdirs installdirs-am installdirs-recursive \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-recursive mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-recursive pdf pdf-am \ + pdf-recursive ps ps-am ps-recursive tags tags-recursive \ + uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am \ + uninstall-info-recursive uninstall-man uninstall-man1 \ + uninstall-recursive + + +# Forward targets + +html: + cd doc && $(MAKE) $(AM_MAKEFLAGS) $@ + +.PHONY: html + +install-exec-local: + @if $(inst_setgid); then \ + app=$(DESTDIR)$(bindir)/`echo $(bin_PROGRAMS)|sed '$(transform)'`; \ + if chgrp $(inst_group) $$app && chmod g+s $$app; then \ + echo "chgrp $(inst_group) $$app && chmod g+s $$app"; \ + else \ + echo "$$app needs to be owned by group $(inst_group) and setgid;"; \ + echo "otherwise the \`-l' option will probably not work."; \ + echo "You may need special privileges to complete the installation"; \ + echo "of $$app."; \ + fi; \ + else true; fi + +# --------------- Local DIST Section + +# Install the w32 and tests subdirectories +# +dist-hook: + (cd $(srcdir); \ + sub=`find w32 tests -follow \( -name CVS -prune -o -name .cvsignore -o -name work -prune \) -o \( -name \*.orig -o -name \*.rej -o -name \*~ -prune \) -o -type f -print`; \ + tar chf - $$sub) \ + | (cd $(distdir); tar xfBp -) + +# --------------- Local CHECK Section + +check-local: check-regression check-loadavg + @banner=" Regression PASSED: GNU Make $(VERSION) ($(MAKE_HOST)) built with $(CC) "; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + echo + +.PHONY: check-loadavg check-regression + +check-loadavg: loadavg + @echo The system uptime program believes the load average to be: + -uptime + @echo The GNU load average checking code thinks: + -./loadavg + +loadavg.c: $(srcdir)/getloadavg.c + cp $(srcdir)/getloadavg.c loadavg.c + +check-regression: + @if test -f "$(srcdir)/tests/run_make_tests"; then \ + if $(PERL) -v >/dev/null 2>&1; then \ + case `cd $(srcdir); pwd` in `pwd`) : ;; \ + *) test -d tests || mkdir tests; \ + rm -f srctests; \ + if ln -s "$(srcdir)/tests" srctests; then \ + for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \ + rm -f tests/$$f; ln -s ../srctests/$$f tests; \ + done; fi ;; \ + esac; \ + echo "cd tests && $(PERL) ./run_make_tests.pl -make ../make $(MAKETESTFLAGS)"; \ + cd tests && $(PERL) ./run_make_tests.pl -make ../make $(MAKETESTFLAGS); \ + else \ + echo "Can't find a working Perl ($(PERL)); the test suite requires Perl."; \ + fi; \ + else \ + echo "Can't find the GNU Make test suite ($(srcdir)/tests)."; \ + fi + +# --------------- Maintainer's Section + +@MAINT_MAKEFILE@ +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/mkutil/make-3.80/NEWS b/src/mkutil/make-3.80/NEWS new file mode 100644 index 00000000..8a200f58 --- /dev/null +++ b/src/mkutil/make-3.80/NEWS @@ -0,0 +1,859 @@ +GNU make NEWS -*-indented-text-*- + History of user-visible changes. + 03 October 2002 + +Copyright (C) 2002 Free Software Foundation, Inc. +See the end for copying conditions. + +All changes mentioned here are more fully described in the GNU make +manual, which is contained in this distribution as the file make.texinfo. + +Please send GNU make bug reports to . +See the README file and the GNU make manual for details on sending bug +reports. + +Version 3.80 + +* A new feature exists: order-only prerequisites. These prerequisites + affect the order in which targets are built, but they do not impact + the rebuild/no-rebuild decision of their dependents. That is to say, + they allow you to require target B be built before target A, without + requiring that target A will always be rebuilt if target B is updated. + Patch for this feature provided by Greg McGary . + +* For compatibility with SysV make, GNU make now supports the peculiar + syntax $$@, $$(@D), and $$(@F) in the prerequisites list of a rule. + This syntax is only valid within explicit and static pattern rules: it + cannot be used in implicit (suffix or pattern) rules. Edouard G. Parmelan + provided a patch implementing this feature; however, I + decided to implement it in a different way. + +* The argument to the "ifdef" conditional is now expanded before it's + tested, so it can be a constructed variable name. + + Similarly, the arguments to "export" (when not used in a variable + definition context) and "unexport" are also now expanded. + +* A new function is defined: $(value ...). The argument to this + function is the _name_ of a variable. The result of the function is + the value of the variable, without having been expanded. + +* A new function is defined: $(eval ...). The arguments to this + function should expand to makefile commands, which will then be + evaluated as if they had appeared in the makefile. In combination + with define/endef multiline variable definitions this is an extremely + powerful capability. The $(value ...) function is also sometimes + useful here. + +* A new built-in variable is defined, $(MAKEFILE_LIST). It contains a + list of each makefile GNU make has read, or started to read, in the + order in which they were encountered. So, the last filename in the + list when a makefile is just being read (before any includes) is the + name of the current makefile. + +* A new built-in variable is defined: $(.VARIABLES). When it is + expanded it returns a complete list of variable names defined by all + makefiles at that moment. + +* A new command-line option is defined, -B or --always-make. If + specified GNU make will consider all targets out-of-date even if they + would otherwise not be. + +* The arguments to $(call ...) functions were being stored in $1, $2, + etc. as recursive variables, even though they are fully expanded + before assignment. This means that escaped dollar signs ($$ etc.) + were not behaving properly. Now the arguments are stored as simple + variables. This may mean that if you added extra escaping to your + $(call ...) function arguments you will need to undo it now. + +* The variable invoked by $(call ...) can now be recursive: unlike other + variables it can reference itself and this will not produce an error + when it is used as the first argument to $(call ...) (but only then). + +* New pseudo-target .LOW_RESOLUTION_TIME, superseding the configure + option --disable-nsec-timestamps. You might need this if your build + process depends on tools like "cp -p" preserving time stamps, since + "cp -p" (right now) doesn't preserve the subsecond portion of a time + stamp. + +* Updated translations for French, Galician, German, Japanese, Korean, + and Russian. New translations for Croatian, Danish, Hebrew, and + Turkish. + +* Updated internationalization support to Gettext 0.11.5. + GNU make now uses Gettext's "external" feature, and does not include + any internationalization code itself. Configure will search your + system for an existing implementation of GNU Gettext (only GNU Gettext + is acceptable) and use it if it exists. If not, NLS will be disabled. + See ABOUT-NLS for more information. + +* Updated to autoconf 2.54 and automake 1.7. Users should not be impacted. + +Version 3.79.1 + +* .SECONDARY with no prerequisites now prevents any target from being + removed because make thinks it's an intermediate file, not just those + listed in the makefile. + +* New configure option --disable-nsec-timestamps, but this was + superseded in later versions by the .LOW_RESOLUTION_TIME pseudo-target. + +Version 3.79 + +* GNU make optionally supports internationalization and locales via the + GNU gettext (or local gettext if suitable) package. See the ABOUT-NLS + file for more information on configuring GNU make for NLS. + +* Previously, GNU make quoted variables such as MAKEFLAGS and + MAKEOVERRIDES for proper parsing by the shell. This allowed them to + be used within make build scripts. However, using them there is not + proper behavior: they are meant to be passed to subshells via the + environment. Unfortunately the values were not quoted properly to be + passed through the environment. This meant that make didn't properly + pass some types of command line values to submakes. + + With this version we change that behavior: now these variables are + quoted properly for passing through the environment, which is the + correct way to do it. If you previously used these variables + explicitly within a make rule you may need to re-examine your use for + correctness given this change. + +* A new pseudo-target .NOTPARALLEL is available. If defined, the + current makefile is run serially regardless of the value of -j. + However, submakes are still eligible for parallel execution. + +* The --debug option has changed: it now allows optional flags + controlling the amount and type of debugging output. By default only + a minimal amount information is generated, displaying the names of + "normal" targets (not makefiles) that were deemed out of date and in + need of being rebuilt. + + Note that the -d option behaves as before: it takes no arguments and + all debugging information is generated. + +* The `-p' (print database) output now includes filename and linenumber + information for variable definitions, to aid debugging. + +* The wordlist function no longer reverses its arguments if the "start" + value is greater than the "end" value. If that's true, nothing is + returned. + +* Hartmut Becker provided many updates for the VMS port of GNU make. + See the readme.vms file for more details. + +Version 3.78 + +* Two new functions, $(error ...) and $(warning ...) are available. The + former will cause make to fail and exit immediately upon expansion of + the function, with the text provided as the error message. The latter + causes the text provided to be printed as a warning message, but make + proceeds normally. + +* A new function $(call ...) is available. This allows users to create + their own parameterized macros and invoke them later. Original + implementation of this function was provided by Han-Wen Nienhuys + . + +* A new function $(if ...) is available. It provides if-then-else + capabilities in a builtin function. Original implementation of this + function was provided by Han-Wen Nienhuys . + +* Make defines a new variable, .LIBPATTERNS. This variable controls how + library dependency expansion (dependencies like ``-lfoo'') is performed. + +* Make accepts CRLF sequences as well as traditional LF, for + compatibility with makefiles created on other operating systems. + +* Make accepts a new option: -R, or --no-builtin-variables. This option + disables the definition of the rule-specific builtin variables (CC, + LD, AR, etc.). Specifying this option forces -r (--no-builtin-rules) + as well. + +* A "job server" feature, suggested by Howard Chu . + + On systems that support POSIX pipe(2) semantics, GNU make can now pass + -jN options to submakes rather than forcing them all to use -j1. The + top make and all its sub-make processes use a pipe to communicate with + each other to ensure that no more than N jobs are started across all + makes. To get the old behavior of -j back, you can configure make + with the --disable-job-server option. + +* The confusing term "dependency" has been replaced by the more accurate + and standard term "prerequisite", both in the manual and in all GNU make + output. + +* GNU make supports the "big archive" library format introduced in AIX 4.3. + +* GNU make supports large files on AIX, HP-UX, and IRIX. These changes + were provided by Paul Eggert . (Large file + support for Solaris and Linux was introduced in 3.77, but the + configuration had issues: these have also been resolved). + +* The Windows 95/98/NT (W32) version of GNU make now has native support + for the Cygnus Cygwin release B20.1 shell (bash). + +* The GNU make regression test suite, long available separately "under + the table", has been integrated into the release. You can invoke it + by running "make check" in the distribution. Note that it requires + Perl (either Perl 4 or Perl 5) to run. + +Version 3.77 + +* Implement BSD make's "?=" variable assignment operator. The variable + is assigned the specified value only if that variable is not already + defined. + +* Make defines a new variable, "CURDIR", to contain the current working + directory (after the -C option, if any, has been processed). + Modifying this variable has no effect on the operation of make. + +* Make defines a new default RCS rule, for new-style master file + storage: ``% :: RCS/%'' (note no ``,v'' suffix). + + Make defines new default rules for DOS-style C++ file naming + conventions, with ``.cpp'' suffixes. All the same rules as for + ``.cc'' and ``.C'' suffixes are provided, along with LINK.cpp and + COMPILE.cpp macros (which default to the same value as LINK.cc and + COMPILE.cc). Note CPPFLAGS is still C preprocessor flags! You should + use CXXFLAGS to change C++ compiler flags. + +* A new feature, "target-specific variable values", has been added. + This is a large change so please see the appropriate sections of the + manual for full details. Briefly, syntax like this: + + TARGET: VARIABLE = VALUE + + defines VARIABLE as VALUE within the context of TARGET. This is + similar to SunOS make's "TARGET := VARIABLE = VALUE" feature. Note + that the assignment may be of any type, not just recursive, and that + the override keyword is available. + + COMPATIBILITY: This new syntax means that if you have any rules where + the first or second dependency has an equal sign (=) in its name, + you'll have to escape them with a backslash: "foo : bar\=baz". + Further, if you have any dependencies which already contain "\=", + you'll have to escape both of them: "foo : bar\\\=baz". + +* A new appendix listing the most common error and warning messages + generated by GNU make, with some explanation, has been added to the + GNU make User's Manual. + +* Updates to the GNU make Customs library support (see README.customs). + +* Updates to the Windows 95/NT port from Rob Tulloh (see README.W32), + and to the DOS port from Eli Zaretski (see README.DOS). + +Version 3.76.1 + +* Small (but serious) bug fix. Quick rollout to get into the GNU source CD. + +Version 3.76 + +* GNU make now uses automake to control Makefile.in generation. This + should make it more consistent with the GNU standards. + +* VPATH functionality has been changed to incorporate the VPATH+ patch, + previously maintained by Paul Smith . See the + manual. + +* Make defines a new variable, `MAKECMDGOALS', to contain the goals that + were specified on the command line, if any. Modifying this variable + has no effect on the operation of make. + +* A new function, `$(wordlist S,E,TEXT)', is available: it returns a + list of words from number S to number E (inclusive) of TEXT. + +* Instead of an error, detection of future modification times gives a + warning and continues. The warning is repeated just before GNU make + exits, so it is less likely to be lost. + +* Fix the $(basename) and $(suffix) functions so they only operate on + the last filename, not the entire string: + + Command Old Result New Result + ------- ---------- ---------- + $(basename a.b) a a + $(basename a.b/c) a a.b/c + $(suffix a.b) b b + $(suffix a.b/c) b/c + +* The $(strip) function now removes newlines as well as TABs and spaces. + +* The $(shell) function now changes CRLF (\r\n) pairs to a space as well + as newlines (\n). + +* Updates to the Windows 95/NT port from Rob Tulloh (see README.W32). + +* Eli Zaretskii has updated the port to 32-bit protected mode on MSDOS + and MS-Windows, building with the DJGPP v2 port of GNU C/C++ compiler + and utilities. See README.DOS for details, and direct all questions + concerning this port to Eli Zaretskii or DJ + Delorie . + +* John W. Eaton has updated the VMS port to support libraries and VPATH. + +Version 3.75 + +* The directory messages printed by `-w' and implicitly in sub-makes, + are now omitted if Make runs no commands and has no other messages to print. + +* Make now detects files that for whatever reason have modification times + in the future and gives an error. Files with such impossible timestamps + can result from unsynchronized clocks, or archived distributions + containing bogus timestamps; they confuse Make's dependency engine + thoroughly. + +* The new directive `sinclude' is now recognized as another name for + `-include', for compatibility with some other Makes. + +* Aaron Digulla has contributed a port to AmigaDOS. See README.Amiga for + details, and direct all Amiga-related questions to . + +* Rob Tulloh of Tivoli Systems has contributed a port to Windows NT or 95. + See README.W32 for details, and direct all Windows-related questions to + . + +Version 3.73 + +* Converted to use Autoconf version 2, so `configure' has some new options. + See INSTALL for details. + +* You can now send a SIGUSR1 signal to Make to toggle printing of debugging + output enabled by -d, at any time during the run. + +Version 3.72 + +* DJ Delorie has ported Make to MS-DOS using the GO32 extender. + He is maintaining the DOS port, not the GNU Make maintainer; + please direct bugs and questions for DOS to . + MS-DOS binaries are available for FTP from ftp.simtel.net in + /pub/simtelnet/gnu/djgpp/. + +* The `MAKEFLAGS' variable (in the environment or in a makefile) can now + contain variable definitions itself; these are treated just like + command-line variable definitions. Make will automatically insert any + variable definitions from the environment value of `MAKEFLAGS' or from + the command line, into the `MAKEFLAGS' value exported to children. The + `MAKEOVERRIDES' variable previously included in the value of `$(MAKE)' + for sub-makes is now included in `MAKEFLAGS' instead. As before, you can + reset `MAKEOVERRIDES' in your makefile to avoid putting all the variables + in the environment when its size is limited. + +* If `.DELETE_ON_ERROR' appears as a target, Make will delete the target of + a rule if it has changed when its commands exit with a nonzero status, + just as when the commands get a signal. + +* The automatic variable `$+' is new. It lists all the dependencies like + `$^', but preserves duplicates listed in the makefile. This is useful + for linking rules, where library files sometimes need to be listed twice + in the link order. + +* You can now specify the `.IGNORE' and `.SILENT' special targets with + dependencies to limit their effects to those files. If a file appears as + a dependency of `.IGNORE', then errors will be ignored while running the + commands to update that file. Likewise if a file appears as a dependency + of `.SILENT', then the commands to update that file will not be printed + before they are run. (This change was made to conform to POSIX.2.) + +Version 3.71 + +* The automatic variables `$(@D)', `$(%D)', `$(*D)', `$(. Please see the +section of the GNU make manual entitled `Problems and Bugs' for +information on submitting useful and complete bug reports. + +You can also use the online bug tracking system in the Savannah GNU Make +project to submit new problem reports or search for existing ones: + + http://savannah.gnu.org/bugs/?group_id=71 + +If you need help using GNU make, try these forums: + + help-make@gnu.org + help-utils@gnu.org + news:gnu.utils.help + news:gnu.utils.bug + + http://savannah.gnu.org/support/?group_id=71 + +You may also find interesting patches to GNU Make available here: + + http://savannah.gnu.org/patch/?group_id=71 + +Note these patches are provided by our users as a service and we make no +statements regarding their correctness. Please contact the authors +directly if you have a problem or suggestion for a patch available on +this page. + + +CVS Access +---------- + +The GNU make source repository is available via anonymous CVS from the +GNU Subversions CVS server; look here for details: + + http://savannah.gnu.org/cvs/?group_id=71 + +Please note: you won't be able to build GNU make from CVS without +installing appropriate maintainer's tools, such as GNU m4, automake, +autoconf, Perl, GNU make, and GCC. See the README.cvs file for hints on +how to build GNU make once these tools are available. We make no +guarantees about the contents or quality of the latest code in the CVS +repository: it is not unheard of for code that is known to be broken to +be checked in. Use at your own risk. + + +System-specific Notes +--------------------- + +It has been reported that the XLC 1.2 compiler on AIX 3.2 is buggy such +that if you compile make with `cc -O' on AIX 3.2, it will not work correctly. +It is said that using `cc' without `-O' does work. + +One area that is often a problem in configuration and porting is the code +to check the system's current load average. To make it easier to test and +debug this code, you can do `make check-loadavg' to see if it works +properly on your system. (You must run `configure' beforehand, but you +need not build Make itself to run this test.) + +Another potential source of porting problems is the support for large +files (LFS) in configure for those operating systems that provide it. +Please report any bugs that you find in this area. If you run into +difficulties, then as a workaround you should be able to disable LFS by +adding the `--disable-largefile' option to the `configure' script. + +On systems that support micro- and nano-second timestamp values and +where stat(2) provides this information, GNU make will use it when +comparing timestamps to get the most accurate possible result. However, +note that many current implementations of tools that *set* timestamps do +not preserve micro- or nano-second granularity. This means that "cp -p" +and other similar tools (tar, etc.) may not exactly duplicate timestamps +with micro- and nano-second granularity on some systems. If your build +system contains rules that depend on proper behavior of tools like "cp +-p", you should consider using the .LOW_RESOLUTION_TIME pseudo-target to +force make to treat them properly. See the manual for details. + + +Ports +----- + + - See README.customs for details on integrating GNU make with the + Customs distributed build environment from the Pmake distribution. + + - See readme.vms for details about GNU Make on OpenVMS. + + - See README.Amiga for details about GNU Make on AmigaDOS. + + - See README.W32 for details about GNU Make on Windows NT, 95, or 98. + + - See README.DOS for compilation instructions on MS-DOS and MS-Windows + using DJGPP tools. + + A precompiled binary of the MSDOS port of GNU Make is available as part + of DJGPP; see the WWW page http://www.delorie.com/djgpp/ for more + information. + +Please note there are two _separate_ ports of GNU make for Microsoft +systems: a native Windows tool built with (for example) MSVC or Cygwin, +and a DOS-based tool built with DJGPP. Please be sure you are looking +at the right README! diff --git a/src/mkutil/make-3.80/README.Amiga b/src/mkutil/make-3.80/README.Amiga new file mode 100644 index 00000000..6f08dd81 --- /dev/null +++ b/src/mkutil/make-3.80/README.Amiga @@ -0,0 +1,61 @@ +Short: Port of GNU make with SAS/C (no ixemul.library required) +Author: GNU, Amiga port by Aaron "Optimizer" Digulla +Uploader: Aaron "Optimizer" Digulla (digulla@fh-konstanz.de) +Type: dev/c + +This is a pure Amiga port of GNU make. It needs no extra libraries or +anything. It has the following features (in addition to any features of +GNU make): + +- Runs Amiga-Commands with SystemTags() (Execute) +- Can run multi-line statements +- Allows to use Device-Names in targets: + + c:make : make.o + + is ok. To distinguish between device-names and target : or ::, MAKE + looks for spaces. If there are any around :, it's taken as a target + delimiter, if there are none, it's taken as the name of a device. Note + that "make:make.o" tries to create "make.o" on the device "make:". +- Replaces @@ by a newline in any command line: + + if exists make @@\ + delete make.bak quiet @@\ + rename make make.bak @@\ + endif @@\ + $(CC) Link Make.o To make + + works. Note that the @@ must stand alone (ie. "make@@\" is illegal). + Also be carefull that there is a space after the "\" (ie, at the + beginning of the next line). +- Can be made resident to save space and time +- Amiga specific wildcards can be used in $(wildcard ...) + +BUGS: +- The line + + dummy.h : src/*.c + +tries to make dummy.h from "src/*.c" (ie. no wildcard-expansion takes +place). You have to use "$(wildcard src/*.c)" instead. + +COMPILING FROM SCRATCH +---------------------- + +To recompile, you need SAS/C 6.51. make itself is not neccessary, there +is an smakefile. + +1. Copy config.ami to config.h +2. If you use make to compie, copy Makefile.ami to Makefile and + glob/Makefile.ami to glob/Makefile. Copy make into the current + directory. + +3. Run smake/make + +INSTALLATION + +Copy make somewhere in your search path (eg. sc:c or sc:bin). +If you plan to use recursive makes, install make resident: + + Resident make Add + diff --git a/src/mkutil/make-3.80/README.DOS b/src/mkutil/make-3.80/README.DOS new file mode 100644 index 00000000..b41ecede --- /dev/null +++ b/src/mkutil/make-3.80/README.DOS @@ -0,0 +1,323 @@ +Port of GNU Make to 32-bit protected mode on MSDOS and MS-Windows. + +Builds with DJGPP v2 port of GNU C/C++ compiler and utilities. + + +New (since 3.74) DOS-specific features: + + 1. Supports long filenames when run from DOS box on Windows 9x. + + 2. Supports both stock DOS COMMAND.COM and Unix-style shells + (details in ``Notes'' below). + + 3. Supports DOS drive letters in dependencies and pattern rules. + + 4. Better support for DOS-style backslashes in pathnames (but see + ``Notes'' below). + + 5. The $(shell) built-in can run arbitrary complex commands, + including pipes and redirection, even when COMMAND.COM is your + shell. + + 6. Can be built without floating-point code (see below). + + 7. Supports signals in child programs and restores the original + directory if the child was interrupted. + + 8. Can be built without (a previous version of) Make. + + 9. The build process requires only standard tools. (Optional + targets like "install:" and "clean:" still need additional + programs, though, see below.) + + 10. Beginning with v3.78, the test suite works in the DJGPP + environment (requires Perl and auxiliary tools; see below). + + +To install a binary distribution: + + Simply unzip the makNNNb.zip file (where NNN is the version number) + preserving the directory structure (-d switch if you use PKUNZIP). + If you are installing Make on Windows 9X or Windows 2000, use an + unzip program that supports long filenames in zip files. After + unzipping, make sure the directory with make.exe is on your PATH, + and that's all you need to use Make. + + +To build from sources: + + 1. Unzip the archive, preserving the directory structure (-d switch + if you use PKUNZIP). If you build Make on Windows 9X or Windows + 2000, use an unzip program that supports long filenames in zip + files. + + If you are unpacking an official GNU source distribution, use + either DJTAR (which is part of the DJGPP development + environment), or the DJGPP port of GNU Tar. + + 2. Invoke the `configure.bat' batch file. + + If you are building Make in-place, i.e. in the same directory + where its sources are kept, just type "configure.bat" and press + [Enter]. Otherwise, you need to supply the path to the source + directory as an argument to the batch file, like this: + + c:\djgpp\gnu\make-3.80\configure.bat c:/djgpp/gnu/make-3.80 + + Note the forward slashes in the source path argument: you MUST + use them here. + + 3. If configure.bat doesn't find a working Make, it will suggest to + use the `dosbuild.bat' batch file to build Make. Either do as it + suggests or install another Make program (a pre-compiled binary + should be available from the usual DJGPP sites) and rerun + configure.bat. + + 4. If you will need to run Make on machines without an FPU, you + might consider building a version of Make which doesn't issue + floating-point instructions (they don't help much on MSDOS + anyway). To this end, edit the Makefile created by + configure.bat and add -DNO_FLOAT to the value of CPPFLAGS. + + 5. Invoke Make. + + If you are building from outside of the source directory, you + need to tell Make where the sources are, like this: + + make srcdir=c:/djgpp/gnu/make-3.80 + + (configure.bat will tell you this when it finishes). You MUST + use a full, not relative, name of the source directory here, or + else Make might fail. + + 6. After Make finishes, if you have a Unix-style shell installed, + you can use the `install' target to install the package. You + will also need GNU Fileutils and GNU Sed for this (they should + be available from the DJGPP sites). + + By default, GNU make will install into your DJGPP installation + area. If you wish to use a different directory, override the + DESTDIR variable when invoking "make install", like this: + + make install DESTDIR=c:/other/dir + + This causes the make executable to be placed in c:/other/dir/bin, + the man pages in c:/other/dir/man, etc. + + Without a Unix-style shell, you will have to install programs + and the docs manually. Copy make.exe to a directory on your + PATH, make.i* info files to your Info directory, and update the + file `dir' in your Info directory by adding the following item + to the main menu: + + * Make: (make.info). The GNU make utility. + + If you have the `install-info' program (from the GNU Texinfo + package), it will do that for you if you invoke it like this: + + install-info --info-dir=c:/djgpp/info c:/djgpp/info/make.info + + (If your Info directory is other than C:\DJGPP\INFO, change this + command accordingly.) + + 7. The `clean' targets also require Unix-style shell, and GNU Sed + and `rm' programs (the latter from Fileutils). + + 8. To run the test suite, type "make check". This requires a Unix + shell (I used the DJGPP port of Bash 2.03), Perl, Sed, Fileutils + and Sh-utils. + + +Notes: +----- + + 1. The shell issue. + + This is probably the most significant improvement, first + introduced in the port of GNU Make 3.75. + + The original behavior of GNU Make is to invoke commands + directly, as long as they don't include characters special to + the shell or internal shell commands, because that is faster. + When shell features like redirection or filename wildcards are + involved, Make calls the shell. + + This port supports both DOS shells (the stock COMMAND.COM and its + 4DOS/NDOS replacements), and Unix-style shells (tested with the + venerable Stewartson's `ms_sh' 2.3 and the DJGPP port of `bash' by + Daisuke Aoyama ). + + When the $SHELL variable points to a Unix-style shell, Make + works just like you'd expect on Unix, calling the shell for any + command that involves characters special to the shell or + internal shell commands. The only difference is that, since + there is no standard way to pass command lines longer than the + infamous DOS 126-character limit, this port of Make writes the + command line to a temporary disk file and then invokes the shell + on that file. + + If $SHELL points to a DOS-style shell, however, Make will not + call it automatically, as it does with Unix shells. Stock + COMMAND.COM is too dumb and would unnecessarily limit the + functionality of Make. For example, you would not be able to + use long command lines in commands that use redirection or + pipes. Therefore, when presented with a DOS shell, this port of + Make will emulate most of the shell functionality, like + redirection and pipes, and shall only call the shell when a + batch file or a command internal to the shell is invoked. (Even + when a command is an internal shell command, Make will first + search the $PATH for it, so that if a Makefile calls `mkdir', + you can install, say, a port of GNU `mkdir' and have it called + in that case.) + + The key to all this is the extended functionality of `spawn' and + `system' functions from the DJGPP library; this port just calls + `system' where it would invoke the shell on Unix. The most + important aspect of these functions is that they use a special + mechanism to pass long (up to 16KB) command lines to DJGPP + programs. In addition, `system' emulates some internal + commands, like `cd' (so that you can now use forward slashes + with it, and can also change the drive if the directory is on + another drive). Another aspect worth mentioning is that you can + call Unix shell scripts directly, provided that the shell whose + name is mentioned on the first line of the script is installed + anywhere along the $PATH. It is impossible to tell here + everything about these functions; refer to the DJGPP library + reference for more details. + + The $(shell) built-in is implemented in this port by calling + `popen'. Since `popen' calls `system', the above considerations + are valid for $(shell) as well. In particular, you can put + arbitrary complex commands, including pipes and redirection, + inside $(shell), which is in many cases a valid substitute for + the Unix-style command substitution (`command`) feature. + + + 2. "SHELL=/bin/sh" -- or is it? + + Many Unix Makefiles include a line which sets the SHELL, for + those versions of Make which don't have this as the default. + Since many DOS systems don't have `sh' installed (in fact, most + of them don't even have a `/bin' directory), this port takes + such directives with a grain of salt. It will only honor such a + directive if the basename of the shell name (like `sh' in the + above example) can indeed be found in the directory that is + mentioned in the SHELL= line (`/bin' in the above example), or + in the current working directory, or anywhere on the $PATH (in + that order). If the basename doesn't include a filename + extension, Make will look for any known extension that indicates + an executable file (.exe, .com, .bat, .btm, .sh, and even .sed + and .pl). If any such file is found, then $SHELL will be + defined to the exact pathname of that file, and that shell will + hence be used for the rest of processing. But if the named + shell is *not* found, the line which sets it will be effectively + ignored, leaving the value of $SHELL as it was before. Since a + lot of decisions that this port makes depend on the gender of + the shell, I feel it doesn't make any sense to tailor Make's + behavior to a shell which is nowhere to be found. + + Note that the above special handling of "SHELL=" only happens + for Makefiles; if you set $SHELL in the environment or on the + Make command line, you are expected to give the complete + pathname of the shell, including the filename extension. + + The default value of $SHELL is computed as on Unix (see the Make + manual for details), except that if $SHELL is not defined in the + environment, $COMSPEC is used. Also, if an environment variable + named $MAKESHELL is defined, it takes precedence over both + $COMSPEC and $SHELL. Note that, unlike Unix, $SHELL in the + environment *is* used to set the shell (since on MSDOS, it's + unlikely that the interactive shell will not be suitable for + Makefile processing). + + The bottom line is that you can now write Makefiles where some + of the targets require a real (i.e. Unix-like) shell, which will + nevertheless work when such shell is not available (provided, of + course, that the commands which should always work, don't + require such a shell). More important, you can convert Unix + Makefiles to MSDOS and leave the line which sets the shell + intact, so that people who do have Unixy shell could use it for + targets which aren't converted to DOS (like `install' and + `uninstall', for example). + + + 3. Default directories. + + GNU Make knows about standard directories where it searches for + library and include files mentioned in the Makefile. Since + MSDOS machines don't have standard places for these, this port + will search ${DJDIR}/lib and ${DJDIR}/include respectively. + $DJDIR is defined automatically by the DJGPP startup code as the + root of the DJGPP installation tree (unless you've tampered with + the DJGPP.ENV file). This should provide reasonable default + values, unless you moved parts of DJGPP to other directories. + + + 4. Letter-case in filenames. + + If you run Make on Windows 9x, you should be aware of the + letter-case issue. Make is internally case-sensitive, but all + file operations are case-insensitive on Windows 9x, so + e.g. files `FAQ', `faq' and `Faq' all refer to the same file, as + far as Windows is concerned. The underlying DJGPP C library + functions honor the letter-case of the filenames they get from + the OS, except that by default, they down-case 8+3 DOS filenames + which are stored in upper case in the directory and would break + many Makefiles otherwise. (The details of which filenames are + converted to lower case are explained in the DJGPP libc docs, + under the `_preserve_fncase' and `_lfn_gen_short_fname' + functions, but as a thumb rule, any filename that is stored in + upper case in the directory, is a valid DOS 8+3 filename and + doesn't include characters invalid on MSDOS FAT filesystems, + will be automatically down-cased.) User reports that I have + indicate that this default behavior is generally what you'd + expect; however, your input is most welcome. + + In any case, if you hit a situation where you must force Make to + get the 8+3 DOS filenames in upper case, set FNCASE=y in the + environment or in the Makefile. + + + 5. DOS-style pathnames. + + There are a lot of places throughout the program sources which + make implicit assumptions about the pathname syntax. In + particular, the directories are assumed to be separated by `/', + and any pathname which doesn't begin with a `/' is assumed to be + relative to the current directory. This port attempts to + support DOS-style pathnames which might include the drive letter + and use backslashes instead of forward slashes. However, this + support is not complete; I feel that pursuing this support too + far might break some more important features, particularly if + you use a Unix-style shell (where a backslash is a quote + character). I only consider support of backslashes desirable + because some Makefiles invoke non-DJGPP programs which don't + understand forward slashes. A notable example of such programs + is the standard programs which come with MSDOS. Otherwise, you + are advised to stay away from backslashes whenever possible. In + particular, filename globbing won't work on pathnames with + backslashes, because the GNU `glob' library doesn't support them + (backslash is special in filename wildcards, and I didn't want + to break that). + + One feature which *does* work with backslashes is the filename- + related built-in functions such as $(dir), $(notdir), etc. + Drive letters in pathnames are also fully supported. + + + +Bug reports: +----------- + + Bugs that are clearly related to the MSDOS/DJGPP port should be + reported first on the comp.os.msdos.djgpp news group (if you cannot + post to Usenet groups, write to the DJGPP mailing list, + , which is an email gateway into the above news + group). For other bugs, please follow the procedure explained in + the "Bugs" chapter of the Info docs. If you don't have an Info + reader, look up that chapter in the `make.i1' file with any text + browser/editor. + + + Enjoy, + Eli Zaretskii diff --git a/src/mkutil/make-3.80/README.W32 b/src/mkutil/make-3.80/README.W32 new file mode 100644 index 00000000..e605c0b4 --- /dev/null +++ b/src/mkutil/make-3.80/README.W32 @@ -0,0 +1,241 @@ +Port of GNU make to Windows NT and Windows 95 +Builds natively with MSVC 2.x or MSVC 4.x compilers. +Should also build fine with MSVC 5.x and 6.x (though not confirmed). + +This Windows 32-bit port of GNU make is maintained primarily by Rob +Tulloh, who is also the author of this README. + +To build with nmake on Windows NT, Windows 95, or Windows 98: + + 1. Make sure cl.exe is in your %Path%. Example: + + set Path=%Path%;c:/msdev/bin + + 2. Make sure %include% is set to msvc include directory. Example: + + set include=c:/msdev/include + + 3. Make sure %lib% is set to msvc lib directory. Example: + + set lib=c:/msdev/lib + + 4. nmake /f NMakefile + + + A short cut to steps 1, 2, and 3 is to run VCVARS32.bat before + invoking namke. For example: + + c: + cd \msdev\bin + VCVARS32.bat + cd \path\to\make-3.80 + nmake /f NMakefile + +There is a bat file (build_w32.bat) for folks who have fear of nmake. + +Outputs: + + WinDebug/make.exe + WinRel/make.exe + + +-- Notes/Caveats -- + +GNU make on Windows 32-bit platforms: + + This version of make is ported natively to Windows32 platforms + (Windows NT 3.51, Windows NT 4.0, Windows 95, and Windows 98). It + does not rely on any 3rd party software or add-on packages for + building. The only thing needed is a version of Visual C++, + which is the predominant compiler used on Windows32 platforms. + + Do not confuse this port of GNU make with other Windows32 projects + which provide a GNU make binary. These are separate projects + and are not connected to this port effort. + +GNU make and sh.exe: + + This port prefers you have a working sh.exe somewhere on your + system. If you don't have sh.exe, the port falls back to + MSDOS mode for launching programs (via a batch file). + The MSDOS mode style execution has not been tested that + carefully though (The author uses GNU bash as sh.exe). + + There are very few true ports of Bourne shell for NT right now. + There is a version of GNU bash available from Cygnus "Cygwin" + porting effort (http://sourceware.cygnus.com/cygwin). + Other possibilities are the MKS version of sh.exe, or building + your own with a package like NutCracker (DataFocus) or Portage + (Consensys). + +GNU make and brain-dead shells (BATCH_MODE_ONLY_SHELL): + + Some versions of Bourne shell does not behave well when invoked + as 'sh -c' from CreateProcess(). The main problem is they seem + to have a hard time handling quoted strings correctly. This can + be circumvented by writing commands to be executed to a batch + file and then executing the command by calling 'sh file'. + + To work around this difficulty, this version of make supports + a batch mode. When BATCH_MODE_ONLY_SHELL is defined at compile + time, make forces all command lines to be executed via script + files instead of by command line. + + A native Windows32 system with no Bourne shell will also run + in batch mode. All command lines will be put into batch files + and executed via $(COMSPEC) (%COMSPEC%). + +GNU make and Cygnus GNU Windows32 tools: + + Good news! Make now has native support for Cygwin sh. To enable, + define the HAVE_CYGWIN_SHELL in config.h and rebuild make + from scratch. This version of make tested with B20.1 of Cygwin. + Do not define BATCH_MODE_ONLY_SHELL if you use HAVE_CYGWIN_SHELL. + +GNU make and the MKS shell: + + There is now semi-official support for the MKS shell. To turn this + support on, define HAVE_MKS_SHELL in the config.h.W32 before you + build make. Do not define BATCH_MODE_ONLY_SHELL if you turn + on HAVE_MKS_SHELL. + +GNU make handling of drive letters in pathnames (PATH, vpath, VPATH): + + There is a caveat that should be noted with respect to handling + single character pathnames on Windows systems. When colon is + used in PATH variables, make tries to be smart about knowing when + you are using colon as a separator versus colon as a drive + letter. Unfortunately, something as simple as the string 'x:/' + could be interpreted 2 ways: (x and /) or (x:/). + + Make chooses to interpret a letter plus colon (e.g. x:/) as a + drive letter pathname. If it is necessary to use single + character directories in paths (VPATH, vpath, Path, PATH), the + user must do one of two things: + + a. Use semicolon as the separator to disambiguate colon. For + example use 'x;/' if you want to say 'x' and '/' are + separate components. + + b. Qualify the directory name so that there is more than + one character in the path(s) used. For example, none + of these settings are ambiguous: + + ./x:./y + /some/path/x:/some/path/y + x:/some/path/x:x:/some/path/y + + Please note that you are free to mix colon and semi-colon in the + specification of paths. Make is able to figure out the intended + result and convert the paths internally to the format needed + when interacting with the operating system. + + You are encouraged to use colon as the separator character. + This should ease the pain of deciding how to handle various path + problems which exist between platforms. If colon is used on + both Unix and Windows systems, then no ifdef'ing will be + necessary in the makefile source. + +GNU make test suite: + + I verified all functionality with a slightly modified version + of make-test-3.80 (modifications to get test suite to run + on Windows NT). All tests pass in an environment that includes + sh.exe. Tests were performed on both Windows NT and Windows 95. + +Building GNU make on Windows NT and Windows 95/98 with Microsoft Visual C: + + I did not provide a Visual C project file with this port as + the project file would not be considered freely distributable + (or so I think). It is easy enough to create one, though, if + you know how to use Visual C. + + I build the program statically to avoid problems locating DLL's + on machines that may not have MSVC runtime installed. If you + prefer, you can change make to build with shared libraries by + changing /MT to /MD in the NMakefile (or in build_w32.bat). + + The program has not been built for non-Intel architectures (yet). + + I have not tried to build with any other compilers than MSVC. I + have heard that this is possible though so don't be afraid to + notify me of your successes! + +Pathnames and white space: + + Unlike Unix, Windows 95/NT systems encourage pathnames which + contain white space (e.g. C:\Program Files\). These sorts of pathnames + are legal under Unix too, but are never encouraged. There is + at least one place in make (VPATH/vpath handling) where paths + containing white space will simply not work. There may be others + too. I chose to not try and port make in such a way so that + these sorts of paths could be handled. I offer these suggestions + as workarounds: + + 1. Use 8.3 notation + 2. Rename the directory so it does not contain white space. + + If you are unhappy with this choice, this is free software + and you are free to take a crack at making this work. The code + in w32/pathstuff.c and vpath.c would be the places to start. + +Pathnames and Case insensitivity: + + Unlike Unix, Windows 95/NT systems are case insensitive but case + preserving. For example if you tell the file system to create a + file named "Target", it will preserve the case. Subsequent access to + the file with other case permutations will succeed (i.e. opening a + file named "target" or "TARGET" will open the file "Target"). + + By default, GNU make retains its case sensitivity when comparing + target names and existing files or directories. It can be + configured, however, into a case preserving and case insensitive + mode by adding a define for HAVE_CASE_INSENSITIVE_FS to + config.h.W32. + + For example, the following makefile will create a file named + Target in the directory subdir which will subsequently be used + to satisfy the dependency of SUBDIR/DepTarget on SubDir/TARGET. + Without HAVE_CASE_INSENSITIVE_FS configured, the dependency link + will not be made: + + subdir/Target: + touch $@ + + SUBDIR/DepTarget: SubDir/TARGET + cp $^ $@ + + Reliance on this behavior also eliminates the ability of GNU make + to use case in comparison of matching rules. For example, it is + not possible to set up a C++ rule using %.C that is different + than a C rule using %.c. GNU make will consider these to be the + same rule and will issue a warning. + +SAMBA/NTFS/VFAT: + + I have not had any success building the debug version of this + package using SAMBA as my file server. The reason seems to be + related to the way VC++ 4.0 changes the case name of the pdb + filename it is passed on the command line. It seems to change + the name always to to lower case. I contend that + the VC++ compiler should not change the casename of files that + are passed as arguments on the command line. I don't think this + was a problem in MSVC 2.x, but I know it is a problem in MSVC 4.x. + + The package builds fine on VFAT and NTFS filesystems. + + Most all of the development I have done to date has been using + NTFS and long file names. I have not done any considerable work + under VFAT. VFAT users may wish to be aware that this port + of make does respect case sensitivity. + +FAT: + + Version 3.76 added support for FAT filesystems. Make + works around some difficulties with stat'ing of + files and caching of filenames and directories internally. + +Bug reports: + + Please submit bugs via the normal bug reporting mechanism which + is described in the GNU make manual and the base README. diff --git a/src/mkutil/make-3.80/README.customs b/src/mkutil/make-3.80/README.customs new file mode 100644 index 00000000..1976943e --- /dev/null +++ b/src/mkutil/make-3.80/README.customs @@ -0,0 +1,95 @@ + -*-indented-text-*- + +GNU make can utilize the Customs library, distributed with Pmake, to +provide builds distributed across multiple hosts. + +In order to utilize this capability, you must first download and build +the Customs library. It is contained in the Pmake distribution, which +can be obtained at: + + ftp://ftp.icsi.berkeley.edu/pub/ai/stolcke/software/ + +This integration was tested (superficially) with Pmake 2.1.33. + + +BUILDING CUSTOMS +---------------- + +First, build pmake and Customs. You need to build pmake first, because +Customs require pmake to build. Unfortunately, this is not trivial; +please see the pmake and Customs documentation for details. The best +place to look for instructions is in the pmake-2.1.33/INSTALL file. + +Note that the 2.1.33 Pmake distribution comes with a set of patches to +GNU make, distributed in the pmake-2.1.33/etc/gnumake/ directory. These +patches are based on GNU make 3.75 (there are patches for earlier +versions of GNU make, also). The parts of this patchfile which relate +directly to Customs support have already been incorporated into this +version of GNU make, so you should _NOT_ apply the patch file. + +However, there are a few non-Customs specific (as far as I could tell) +changes here which are not incorporated (for example, the modification +to try expanding -lfoo to libfoo.so). If you rely on these changes +you'll need to re-apply them by hand. + +Install the Customs library and header files according to the +documentation. You should also install the man pages (contrary to +comments in the documentation, they weren't installed automatically for +me; I had to cd to the ``pmake-2.1.33/doc'' directory and run ``pmake +install'' there directly). + + +BUILDING GNU MAKE +----------------- + +Once you've installed Customs, you can build GNU make to use it. When +configuring GNU make, merely use the ``--with-customs=DIR'' option. +Provide the directory containing the ``lib'' and ``include/customs'' +subdirectories as DIR. For example, if you installed the customs +library in /usr/local/lib and the headers in /usr/local/include/customs, +then you'd pass ``--with-customs=/usr/local'' as an option to configure. + +Run make (or use build.sh) normally to build GNU make as described in +the INSTALL file. + +See the documentation for Customs for information on starting and +configuring Customs. + + +INVOKING CUSTOMS-IZED GNU MAKE +----------------------------- + +One thing you should be aware of is that the default build environment +for Customs requires root permissions. Practically, this means that GNU +make must be installed setuid root to use Customs. + +If you don't want to do this, you can build Customs such that root +permissions are not necessary. Andreas Stolcke +writes: + + > pmake, gnumake or any other customs client program is not required to + > be suid root if customs was compiled WITHOUT the USE_RESERVED_PORTS + > option in customs/config.h. Make sure the "customs" service in + > /etc/services is defined accordingly (port 8231 instead of 1001). + + > Not using USE_RESERVED_PORTS means that a user with programming + > skills could impersonate another user by writing a fake customs + > client that pretends to be someone other than himself. See the + > discussion in etc/SECURITY. + + +PROBLEMS +-------- + +SunOS 4.1.x: + The customs/sprite.h header file #includes the header + files; this conflicts with GNU make's configuration so you'll get a + compile error if you use GCC (or any other ANSI-capable C compiler). + + I commented out the #include in sprite.h:107: + + #if defined(sun) || defined(ultrix) || defined(hpux) || defined(sgi) + /* #include */ + #else + + YMMV. diff --git a/src/mkutil/make-3.80/SCOPTIONS b/src/mkutil/make-3.80/SCOPTIONS new file mode 100644 index 00000000..f89daae1 --- /dev/null +++ b/src/mkutil/make-3.80/SCOPTIONS @@ -0,0 +1,13 @@ +ERRORREXX +OPTIMIZE +NOVERSION +OPTIMIZERTIME +OPTIMIZERALIAS +DEFINE INCLUDEDIR="include:" +DEFINE LIBDIR="lib:" +DEFINE NO_ALLOCA +DEFINE NO_FLOAT +DEFINE NO_ARCHIVES +IGNORE=161 +IGNORE=100 +STARTUP=cres diff --git a/src/mkutil/make-3.80/SMakefile b/src/mkutil/make-3.80/SMakefile new file mode 100644 index 00000000..ea4c5037 --- /dev/null +++ b/src/mkutil/make-3.80/SMakefile @@ -0,0 +1,338 @@ +# NOTE: If you have no `make' program at all to process this makefile, run +# `build.sh' instead. +# +# Copyright (C) 1988, 89, 91, 92, 93, 94, 1995 Free Software Foundation, Inc. +# This file is part of GNU Make. +# +# GNU Make 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, or (at your option) +# any later version. +# +# GNU Make 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 GNU Make; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# +# Makefile for GNU Make +# + +# Ultrix 2.2 make doesn't expand the value of VPATH. +VPATH = /make-3.80/ +# This must repeat the value, because configure will remove `VPATH = .'. +srcdir = /make-3.80/ + +CC = sc +RM = delete +MAKE = smake + +CFLAGS = +CPPFLAGS = +LDFLAGS = + +# Define these for your system as follows: +# -DNO_ARCHIVES To disable `ar' archive support. +# -DNO_FLOAT To avoid using floating-point numbers. +# -DENUM_BITFIELDS If the compiler isn't GCC but groks enum foo:2. +# Some compilers apparently accept this +# without complaint but produce losing code, +# so beware. +# NeXT 1.0a uses an old version of GCC, which required -D__inline=inline. +# See also `config.h'. +defines = + +# Which flavor of remote job execution support to use. +# The code is found in `remote-$(REMOTE).c'. +REMOTE = stub + +# If you are using the GNU C library, or have the GNU getopt functions in +# your C library, you can comment these out. +GETOPT = getopt.o getopt1.o +GETOPT_SRC = $(srcdir)getopt.c $(srcdir)getopt1.c $(srcdir)getopt.h + +# If you are using the GNU C library, or have the GNU glob functions in +# your C library, you can comment this out. GNU make uses special hooks +# into the glob functions to be more efficient (by using make's directory +# cache for globbing), so you must use the GNU functions even if your +# system's C library has the 1003.2 glob functions already. Also, the glob +# functions in the AIX and HPUX C libraries are said to be buggy. +GLOB = Lib glob/glob.lib + +# If your system doesn't have alloca, or the one provided is bad, define this. +ALLOCA = alloca.o +ALLOCA_SRC = $(srcdir)alloca.c + +# If your system needs extra libraries loaded in, define them here. +# System V probably need -lPW for alloca. HP-UX 7.0's alloca in +# libPW.a is broken on HP9000s300 and HP9000s400 machines. Use +# alloca.c instead on those machines. +LOADLIBES = + +# Any extra object files your system needs. +extras = amiga.o + +# Common prefix for machine-independent installed files. +prefix = +# Common prefix for machine-dependent installed files. +exec_prefix = + +# Directory to install `make' in. +bindir = sc:c +# Directory to find libraries in for `-lXXX'. +libdir = lib: +# Directory to search by default for included makefiles. +includedir = include: +# Directory to install the Info files in. +infodir = doc: +# Directory to install the man page in. +mandir = t: +# Number to put on the man page filename. +manext = 1 +# Prefix to put on installed `make' binary file name. +binprefix = +# Prefix to put on installed `make' man page file name. +manprefix = $(binprefix) + +# Whether or not make needs to be installed setgid. +# The value should be either `true' or `false'. +# On many systems, the getloadavg function (used to implement the `-l' +# switch) will not work unless make is installed setgid kmem. +install_setgid = false +# Install make setgid to this group so it can read /dev/kmem. +group = sys + +# Program to install `make'. +INSTALL_PROGRAM = copy +# Program to install the man page. +INSTALL_DATA = copy +# Generic install program. +INSTALL = copy + +# Program to format Texinfo source into Info files. +MAKEINFO = makeinfo +# Program to format Texinfo source into DVI files. +TEXI2DVI = texi2dvi + +# Programs to make tags files. +ETAGS = etags -w +CTAGS = ctags -w + +objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o \ + rule.o implicit.o default.o variable.o expand.o function.o \ + vpath.o version.o ar.o arscan.o signame.o remote-$(REMOTE).o \ + $(GLOB) $(GETOPT) $(ALLOCA) $(extras) +srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c \ + $(srcdir)file.c $(srcdir)getloadavg.c $(srcdir)misc.c \ + $(srcdir)main.c $(srcdir)read.c $(srcdir)remake.c \ + $(srcdir)rule.c $(srcdir)implicit.c $(srcdir)default.c \ + $(srcdir)variable.c $(srcdir)expand.c $(srcdir)function.c \ + $(srcdir)vpath.c $(srcdir)version.c \ + $(srcdir)remote-$(REMOTE).c \ + $(srcdir)ar.c $(srcdir)arscan.c \ + $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC) \ + $(srcdir)commands.h $(srcdir)dep.h $(srcdir)file.h \ + $(srcdir)job.h $(srcdir)make.h $(srcdir)rule.h \ + $(srcdir)variable.h $(ALLOCA_SRC) $(srcdir)config.h.in + + +.SUFFIXES: +.SUFFIXES: .o .c .h .ps .dvi .info .texinfo + +all: make +info: make.info +dvi: make.dvi +# Some makes apparently use .PHONY as the default goal if it is before `all'. +.PHONY: all check info dvi + +make.info: make.texinfo + $(MAKEINFO) -I$(srcdir) $(srcdir)make.texinfo -o make.info + +make.dvi: make.texinfo + $(TEXI2DVI) $(srcdir)make.texinfo + +make.ps: make.dvi + dvi2ps make.dvi > make.ps + +make: $(objs) glob/glob.lib + $(CC) Link $(LDFLAGS) $(objs) $(LOADLIBES) To make.new + -delete quiet make + rename make.new make + +# -I. is needed to find config.h in the build directory. +.c.o: + $(CC) $(defines) IDir "" IDir $(srcdir)glob \ + $(CPPFLAGS) $(CFLAGS) $< $(OUTPUT_OPTION) + +glob/glob.lib: + execute << + cd glob + smake +< + +tagsrcs = $(srcs) $(srcdir)remote-*.c +TAGS: $(tagsrcs) + $(ETAGS) $(tagsrcs) +tags: $(tagsrcs) + $(CTAGS) $(tagsrcs) + +.PHONY: install installdirs +install: + copy make sc:c + +loadavg: loadavg.c config.h + $(CC) $(defines) -DTEST -I. -I$(srcdir) $(CFLAGS) $(LDFLAGS) \ + loadavg.c $(LOADLIBES) -o $@ + +clean: glob-clean + -$(RM) -f make loadavg *.o core make.dvi + +distclean: clean glob-realclean + -$(RM) -f Makefile config.h config.status build.sh + -$(RM) -f config.log config.cache + -$(RM) -f TAGS tags + -$(RM) -f make.?? make.??s make.log make.toc make.*aux + -$(RM) -f loadavg.c + +realclean: distclean + -$(RM) -f make.info* + +mostlyclean: clean + +.PHONY: glob-clean glob-realclean + +glob-clean glob-realclean: + execute << + cd glob + smake $@ +< + +# --------------- DEPENDENCIES +# +# dummy +# dummy +ar.o : \ + ar.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h dep.h +arscan.o : \ + arscan.c make.h config.h \ + getopt.h \ + gettext.h \ + +commands.o : \ + commands.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h variable.h job.h commands.h +default.o : \ + default.c make.h config.h \ + getopt.h \ + gettext.h rule.h \ + dep.h filedef.h hash.h job.h commands.h variable.h +dir.o : \ + dir.c make.h config.h \ + getopt.h \ + gettext.h hash.h \ + +expand.o : \ + expand.c make.h config.h \ + getopt.h \ + gettext.h \ + filedef.h hash.h job.h commands.h variable.h \ + rule.h +file.o : \ + file.c make.h config.h \ + getopt.h \ + gettext.h \ + dep.h filedef.h hash.h job.h commands.h \ + variable.h debug.h +function.o : \ + function.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h variable.h dep.h job.h commands.h debug.h +getopt.o : \ + getopt.c config.h \ + +getopt1.o : \ + getopt1.c config.h getopt.h \ + +hash.o : \ + hash.c make.h config.h \ + getopt.h \ + gettext.h hash.h +implicit.o : \ + implicit.c make.h config.h \ + getopt.h \ + gettext.h rule.h \ + dep.h filedef.h hash.h debug.h +job.o : \ + job.c make.h config.h \ + getopt.h \ + gettext.h \ + job.h debug.h filedef.h hash.h commands.h \ + variable.h \ + +loadavg-loadavg.o : \ + loadavg.c config.h \ + make.h \ + getopt.h \ + gettext.h \ + +main.o : \ + main.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h variable.h job.h commands.h rule.h debug.h \ + +misc.o : \ + misc.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + debug.h +read.o : \ + read.c make.h config.h \ + getopt.h \ + gettext.h \ + dep.h filedef.h hash.h \ + job.h commands.h variable.h rule.h debug.h +remake.o : \ + remake.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h job.h commands.h dep.h variable.h debug.h \ + +# dummy +remote-stub.o : \ + remote-stub.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h job.h commands.h +rule.o : \ + rule.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h job.h commands.h variable.h rule.h +signame.o : \ + signame.c make.h config.h \ + getopt.h \ + gettext.h +variable.o : \ + variable.c make.h config.h \ + getopt.h \ + gettext.h dep.h \ + filedef.h hash.h job.h commands.h variable.h rule.h +version.o : \ + version.c config.h +vpath.o : \ + vpath.c make.h config.h \ + getopt.h \ + gettext.h filedef.h \ + hash.h variable.h diff --git a/src/mkutil/make-3.80/acinclude.m4 b/src/mkutil/make-3.80/acinclude.m4 new file mode 100644 index 00000000..cd2b9037 --- /dev/null +++ b/src/mkutil/make-3.80/acinclude.m4 @@ -0,0 +1,164 @@ +dnl acinclude.m4 -- Extra macros needed for GNU make. +dnl +dnl Automake will incorporate this into its generated aclocal.m4. + +dnl --------------------------------------------------------------------------- +dnl Got this from the lynx 2.8 distribution. +dnl by T.E.Dickey +dnl and Jim Spath +dnl and Philippe De Muyter +dnl +dnl Created: 1997/1/28 +dnl Updated: 1997/12/23 +dnl --------------------------------------------------------------------------- +dnl After checking for functions in the default $LIBS, make a further check +dnl for the functions that are netlib-related (these aren't always in the +dnl libc, etc., and have to be handled specially because there are conflicting +dnl and broken implementations. +dnl Common library requirements (in order): +dnl -lresolv -lsocket -lnsl +dnl -lnsl -lsocket +dnl -lsocket +dnl -lbsd +AC_DEFUN([CF_NETLIBS],[ +cf_test_netlibs=no +AC_MSG_CHECKING(for network libraries) +AC_CACHE_VAL(cf_cv_netlibs,[ +AC_MSG_RESULT(working...) +cf_cv_netlibs="" +cf_test_netlibs=yes +AC_CHECK_FUNCS(gethostname,,[ + CF_RECHECK_FUNC(gethostname,nsl,cf_cv_netlibs,[ + CF_RECHECK_FUNC(gethostname,socket,cf_cv_netlibs)])]) +# +# FIXME: sequent needs this library (i.e., -lsocket -linet -lnsl), but +# I don't know the entrypoints - 97/7/22 TD +AC_CHECK_LIB(inet,main,cf_cv_netlibs="-linet $cf_cv_netlibs") +# +if test "$ac_cv_func_lsocket" != no ; then +AC_CHECK_FUNCS(socket,,[ + CF_RECHECK_FUNC(socket,socket,cf_cv_netlibs,[ + CF_RECHECK_FUNC(socket,bsd,cf_cv_netlibs)])]) +fi +# +AC_CHECK_FUNCS(gethostbyname,,[ + CF_RECHECK_FUNC(gethostbyname,nsl,cf_cv_netlibs)]) +# +AC_CHECK_FUNCS(strcasecmp,,[ + CF_RECHECK_FUNC(strcasecmp,resolv,cf_cv_netlibs)]) +]) +LIBS="$LIBS $cf_cv_netlibs" +test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&AC_FD_MSG +])dnl +dnl --------------------------------------------------------------------------- +dnl Re-check on a function to see if we can pick it up by adding a library. +dnl $1 = function to check +dnl $2 = library to check in +dnl $3 = environment to update (e.g., $LIBS) +dnl $4 = what to do if this fails +dnl +dnl This uses 'unset' if the shell happens to support it, but leaves the +dnl configuration variable set to 'unknown' if not. This is a little better +dnl than the normal autoconf test, which gives misleading results if a test +dnl for the function is made (e.g., with AC_CHECK_FUNC) after this macro is +dnl used (autoconf does not distinguish between a null token and one that is +dnl set to 'no'). +AC_DEFUN([CF_RECHECK_FUNC],[ +AC_CHECK_LIB($2,$1,[ + CF_UPPER(cf_tr_func,$1) + AC_DEFINE_UNQUOTED(HAVE_$cf_tr_func,1,[Define if you have function $1]) + ac_cv_func_$1=yes + $3="-l$2 [$]$3"],[ + ac_cv_func_$1=unknown + unset ac_cv_func_$1 2>/dev/null + $4], + [[$]$3]) +])dnl +dnl --------------------------------------------------------------------------- +dnl Make an uppercase version of a variable +dnl $1=uppercase($2) +AC_DEFUN([CF_UPPER], +[ +changequote(,)dnl +$1=`echo $2 | tr '[a-z]' '[A-Z]'` +changequote([,])dnl +])dnl + + +dnl --------------------------------------------------------------------------- +dnl From Paul Eggert + +AC_DEFUN(AC_STRUCT_ST_MTIM_NSEC, + [AC_CACHE_CHECK([for nanoseconds field of struct stat.st_mtim], + ac_cv_struct_st_mtim_nsec, + [ac_save_CPPFLAGS="$CPPFLAGS" + ac_cv_struct_st_mtim_nsec=no + # tv_nsec -- the usual case + # _tv_nsec -- Solaris 2.6, if + # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1 + # && !defined __EXTENSIONS__) + # st__tim.tv_nsec -- UnixWare 2.1.2 + for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do + CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val" + AC_TRY_COMPILE([#include +#include ], [struct stat s; s.st_mtim.ST_MTIM_NSEC;], + [ac_cv_struct_st_mtim_nsec=$ac_val; break]) + done + CPPFLAGS="$ac_save_CPPFLAGS"]) + + if test $ac_cv_struct_st_mtim_nsec != no; then + AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec, [Define if 'struct stat' contains a nanoseconds field]) + fi + ] +) + + +dnl --------------------------------------------------------------------------- +dnl This will be in the next version of autoconf; take this out then! + +# make_FUNC_SETVBUF_REVERSED +# ------------------------ +AC_DEFUN([make_FUNC_SETVBUF_REVERSED], +[AC_REQUIRE([AC_C_PROTOTYPES])dnl +AC_CACHE_CHECK(whether setvbuf arguments are reversed, + ac_cv_func_setvbuf_reversed, + [ac_cv_func_setvbuf_reversed=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include +# if PROTOTYPES + int (setvbuf) (FILE *, int, char *, size_t); +# endif]], + [[char buf; return setvbuf (stdout, _IOLBF, &buf, 1);]])], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include +# if PROTOTYPES + int (setvbuf) (FILE *, int, char *, size_t); +# endif]], + [[char buf; return setvbuf (stdout, &buf, _IOLBF, 1);]])], + [# It compiles and links either way, so it must not be declared + # with a prototype and most likely this is a K&R C compiler. + # Try running it. + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[/* This call has the arguments reversed. + A reversed system may check and see that the address of buf + is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ + char buf; + if (setvbuf (stdout, _IOLBF, &buf, 1) != 0) + exit (1); + putchar ('\r'); + exit (0); /* Non-reversed systems SEGV here. */]])], + ac_cv_func_setvbuf_reversed=yes, + rm -f core core.* *.core, + [[: # Assume setvbuf is not reversed when cross-compiling.]])] + ac_cv_func_setvbuf_reversed=yes)])]) +if test $ac_cv_func_setvbuf_reversed = yes; then + AC_DEFINE(SETVBUF_REVERSED, 1, + [Define to 1 if the `setvbuf' function takes the buffering type as + its second argument and the buffer pointer as the third, as on + System V before release 3.]) +fi +])# make_FUNC_SETVBUF_REVERSED diff --git a/src/mkutil/make-3.80/aclocal.m4 b/src/mkutil/make-3.80/aclocal.m4 new file mode 100644 index 00000000..45c431aa --- /dev/null +++ b/src/mkutil/make-3.80/aclocal.m4 @@ -0,0 +1,3053 @@ +# generated automatically by aclocal 1.7 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +dnl acinclude.m4 -- Extra macros needed for GNU make. +dnl +dnl Automake will incorporate this into its generated aclocal.m4. + +dnl --------------------------------------------------------------------------- +dnl Got this from the lynx 2.8 distribution. +dnl by T.E.Dickey +dnl and Jim Spath +dnl and Philippe De Muyter +dnl +dnl Created: 1997/1/28 +dnl Updated: 1997/12/23 +dnl --------------------------------------------------------------------------- +dnl After checking for functions in the default $LIBS, make a further check +dnl for the functions that are netlib-related (these aren't always in the +dnl libc, etc., and have to be handled specially because there are conflicting +dnl and broken implementations. +dnl Common library requirements (in order): +dnl -lresolv -lsocket -lnsl +dnl -lnsl -lsocket +dnl -lsocket +dnl -lbsd +AC_DEFUN([CF_NETLIBS],[ +cf_test_netlibs=no +AC_MSG_CHECKING(for network libraries) +AC_CACHE_VAL(cf_cv_netlibs,[ +AC_MSG_RESULT(working...) +cf_cv_netlibs="" +cf_test_netlibs=yes +AC_CHECK_FUNCS(gethostname,,[ + CF_RECHECK_FUNC(gethostname,nsl,cf_cv_netlibs,[ + CF_RECHECK_FUNC(gethostname,socket,cf_cv_netlibs)])]) +# +# FIXME: sequent needs this library (i.e., -lsocket -linet -lnsl), but +# I don't know the entrypoints - 97/7/22 TD +AC_CHECK_LIB(inet,main,cf_cv_netlibs="-linet $cf_cv_netlibs") +# +if test "$ac_cv_func_lsocket" != no ; then +AC_CHECK_FUNCS(socket,,[ + CF_RECHECK_FUNC(socket,socket,cf_cv_netlibs,[ + CF_RECHECK_FUNC(socket,bsd,cf_cv_netlibs)])]) +fi +# +AC_CHECK_FUNCS(gethostbyname,,[ + CF_RECHECK_FUNC(gethostbyname,nsl,cf_cv_netlibs)]) +# +AC_CHECK_FUNCS(strcasecmp,,[ + CF_RECHECK_FUNC(strcasecmp,resolv,cf_cv_netlibs)]) +]) +LIBS="$LIBS $cf_cv_netlibs" +test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&AC_FD_MSG +])dnl +dnl --------------------------------------------------------------------------- +dnl Re-check on a function to see if we can pick it up by adding a library. +dnl $1 = function to check +dnl $2 = library to check in +dnl $3 = environment to update (e.g., $LIBS) +dnl $4 = what to do if this fails +dnl +dnl This uses 'unset' if the shell happens to support it, but leaves the +dnl configuration variable set to 'unknown' if not. This is a little better +dnl than the normal autoconf test, which gives misleading results if a test +dnl for the function is made (e.g., with AC_CHECK_FUNC) after this macro is +dnl used (autoconf does not distinguish between a null token and one that is +dnl set to 'no'). +AC_DEFUN([CF_RECHECK_FUNC],[ +AC_CHECK_LIB($2,$1,[ + CF_UPPER(cf_tr_func,$1) + AC_DEFINE_UNQUOTED(HAVE_$cf_tr_func,1,[Define if you have function $1]) + ac_cv_func_$1=yes + $3="-l$2 [$]$3"],[ + ac_cv_func_$1=unknown + unset ac_cv_func_$1 2>/dev/null + $4], + [[$]$3]) +])dnl +dnl --------------------------------------------------------------------------- +dnl Make an uppercase version of a variable +dnl $1=uppercase($2) +AC_DEFUN([CF_UPPER], +[ +changequote(,)dnl +$1=`echo $2 | tr '[a-z]' '[A-Z]'` +changequote([,])dnl +])dnl + + +dnl --------------------------------------------------------------------------- +dnl From Paul Eggert + +AC_DEFUN(AC_STRUCT_ST_MTIM_NSEC, + [AC_CACHE_CHECK([for nanoseconds field of struct stat.st_mtim], + ac_cv_struct_st_mtim_nsec, + [ac_save_CPPFLAGS="$CPPFLAGS" + ac_cv_struct_st_mtim_nsec=no + # tv_nsec -- the usual case + # _tv_nsec -- Solaris 2.6, if + # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1 + # && !defined __EXTENSIONS__) + # st__tim.tv_nsec -- UnixWare 2.1.2 + for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do + CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val" + AC_TRY_COMPILE([#include +#include ], [struct stat s; s.st_mtim.ST_MTIM_NSEC;], + [ac_cv_struct_st_mtim_nsec=$ac_val; break]) + done + CPPFLAGS="$ac_save_CPPFLAGS"]) + + if test $ac_cv_struct_st_mtim_nsec != no; then + AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec, [Define if 'struct stat' contains a nanoseconds field]) + fi + ] +) + + +dnl --------------------------------------------------------------------------- +dnl This will be in the next version of autoconf; take this out then! + +# make_FUNC_SETVBUF_REVERSED +# ------------------------ +AC_DEFUN([make_FUNC_SETVBUF_REVERSED], +[AC_REQUIRE([AC_C_PROTOTYPES])dnl +AC_CACHE_CHECK(whether setvbuf arguments are reversed, + ac_cv_func_setvbuf_reversed, + [ac_cv_func_setvbuf_reversed=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include +# if PROTOTYPES + int (setvbuf) (FILE *, int, char *, size_t); +# endif]], + [[char buf; return setvbuf (stdout, _IOLBF, &buf, 1);]])], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include +# if PROTOTYPES + int (setvbuf) (FILE *, int, char *, size_t); +# endif]], + [[char buf; return setvbuf (stdout, &buf, _IOLBF, 1);]])], + [# It compiles and links either way, so it must not be declared + # with a prototype and most likely this is a K&R C compiler. + # Try running it. + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[/* This call has the arguments reversed. + A reversed system may check and see that the address of buf + is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ + char buf; + if (setvbuf (stdout, _IOLBF, &buf, 1) != 0) + exit (1); + putchar ('\r'); + exit (0); /* Non-reversed systems SEGV here. */]])], + ac_cv_func_setvbuf_reversed=yes, + rm -f core core.* *.core, + [[: # Assume setvbuf is not reversed when cross-compiling.]])] + ac_cv_func_setvbuf_reversed=yes)])]) +if test $ac_cv_func_setvbuf_reversed = yes; then + AC_DEFINE(SETVBUF_REVERSED, 1, + [Define to 1 if the `setvbuf' function takes the buffering type as + its second argument and the buffer pointer as the third, as on + System V before release 3.]) +fi +])# make_FUNC_SETVBUF_REVERSED + +# Do all the work for Automake. -*- Autoconf -*- + +# This macro actually does too much some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. + +# 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, 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. + +# serial 8 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +AC_PREREQ([2.54]) + +# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow +# the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl + AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_MISSING_PROG(AMTAR, tar) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl + +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[_am_stamp_count=`expr ${_am_stamp_count-0} + 1` +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright 2002 Free Software Foundation, Inc. + +# 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, 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 + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.7])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright 2001, 2002 Free Software Foundation, Inc. + +# 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, 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. + +# serial 2 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# +# Check to make sure that the build environment is sane. +# + +# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. + +# 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, 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. + +# serial 3 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# -*- Autoconf -*- + + +# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. + +# 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, 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. + +# serial 3 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# AM_AUX_DIR_EXPAND + +# Copyright 2001 Free Software Foundation, Inc. + +# 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, 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. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +# Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50]) + +AC_DEFUN([AM_AUX_DIR_EXPAND], [ +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. + +# Copyright 2001 Free Software Foundation, Inc. + +# 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, 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. + +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# AM_PROG_INSTALL_STRIP + +# Copyright 2001 Free Software Foundation, Inc. + +# 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, 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. + +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# serial 4 -*- Autoconf -*- + +# Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + +# 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, 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. + + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + echo '#include "conftest.h"' > conftest.c + echo 'int i;' > conftest.h + echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=conftest.c object=conftest.o \ + depfile=conftest.Po tmpdepfile=conftest.TPo \ + $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && + grep conftest.h conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[rm -f .deps 2>/dev/null +mkdir .deps 2>/dev/null +if test -d .deps; then + DEPDIR=.deps +else + # MS-DOS does not allow filenames that begin with a dot. + DEPDIR=_deps +fi +rmdir .deps 2>/dev/null +AC_SUBST([DEPDIR]) +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking Speeds up one-time builds + --enable-dependency-tracking Do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +# 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, 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. + +#serial 2 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue + # Extract the definition of DEP_FILES from the Makefile without + # running `make'. + DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` + test -z "$DEPDIR" && continue + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n -e '/^U = / s///p' < "$mf"` + test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" + # We invoke sed twice because it is the simplest approach to + # changing $(DEPDIR) to its actual value in the expansion. + for file in `sed -n -e ' + /^DEP_FILES = .*\\\\$/ { + s/^DEP_FILES = // + :loop + s/\\\\$// + p + n + /\\\\$/ b loop + p + } + /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002 Free Software Foundation, Inc. + +# 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, 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. + +# serial 2 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +doit: + @echo done +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST(am__include) +AC_SUBST(am__quote) +AC_MSG_RESULT($_am_result) +rm -f confinc confmf +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. + +# 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, 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. + +# serial 5 + +AC_PREREQ(2.52) + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]) +fi])]) + +# isc-posix.m4 serial 2 (gettext-0.11.2) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. + +# This test replaces the one in autoconf. +# Currently this macro should have the same name as the autoconf macro +# because gettext's gettext.m4 (distributed in the automake package) +# still uses it. Otherwise, the use in gettext.m4 makes autoheader +# give these diagnostics: +# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX +# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + +undefine([AC_ISC_POSIX]) + +AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] +) + +# gettext.m4 serial 17 (gettext-0.11.5) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2002. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define(gt_included_intl, ifelse([$1], [external], [no], [yes])) + define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + dnl Add a version number to the cache macros. + define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) + define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) + define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) + + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + [AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], + gt_cv_func_gnugettext_libc=yes, + gt_cv_func_gnugettext_libc=no)]) + + if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + gt_cv_func_gnugettext_libintl, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + gt_cv_func_gnugettext_libintl=yes, + gt_cv_func_gnugettext_libintl=no) + dnl Now see whether libintl exists and depends on libiconv. + if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext_libintl=yes + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if test "$gt_cv_func_gnugettext_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + && test "$PACKAGE" != gettext; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + INTLOBJS="\$(GETTOBJS)" + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + AC_SUBST(INTLOBJS) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) +]) + + +dnl Checks for all prerequisites of the po subdirectory, +dnl except for USE_NLS. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Search for GNU xgettext 0.11 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU msgfmt. + if test "$GMSGFMT" != ":"; then + dnl If it is no GNU msgfmt we define it as : so that the + dnl Makefiles still can work. + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + AC_MSG_RESULT( + [found $GMSGFMT program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + fi + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + fi + + AC_OUTPUT_COMMANDS([ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + fi + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + GMOFILES= + UPDATEPOFILES= + DUMMYPOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it + # from automake. + eval 'ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([jm_GLIBC21])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ +stdlib.h string.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ +geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ +strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) + + AM_ICONV + AM_LANGINFO_CODESET + if test $ac_cv_header_locale_h = yes; then + AM_LC_MESSAGES + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi +]) + + +AC_DEFUN([AM_MKINSTALLDIRS], +[ + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but $(top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + +# lib-prefix.m4 serial 1 (gettext-0.11) +dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +# lib-link.m4 serial 3 (gettext-0.11.3) +dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. If found, it +dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and +dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + undefine([Name]) + undefine([NAME]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, +dnl hardcode_direct, hardcode_minus_L, +dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec. +AC_DEFUN([AC_LIB_RPATH], +[ + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" + sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH([lib$1-prefix], +[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib$1-prefix don't search for lib$1 in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +# lib-ld.m4 serial 1 (gettext-0.11) +dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + acl_cv_prog_gnu_ld=yes +else + acl_cv_prog_gnu_ld=no +fi]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-1.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_ARG_WITH(gnu-ld, +[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], +test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(acl_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) + +# iconv.m4 serial AM4 (gettext-0.11.3) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +]) + +# progtest.m4 serial 2 (gettext-0.10.40) +dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1996. + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +# Test for the GNU C Library, version 2.1 or newer. +# From Bruno Haible. + +AC_DEFUN([jm_GLIBC21], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, + ac_cv_gnu_library_2_1, + [AC_EGREP_CPP([Lucky GNU user], + [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + ], + ac_cv_gnu_library_2_1=yes, + ac_cv_gnu_library_2_1=no) + ] + ) + AC_SUBST(GLIBC21) + GLIBC21="$ac_cv_gnu_library_2_1" + ] +) + +# intdiv0.m4 serial 1 (gettext-0.11.3) +dnl Copyright (C) 2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([gt_INTDIV0], +[ + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + + AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], + gt_cv_int_divbyzero_sigfpe, + [ + AC_TRY_RUN([ +#include +#include + +static void +#ifdef __cplusplus +sigfpe_handler (int sig) +#else +sigfpe_handler (sig) int sig; +#endif +{ + /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ + exit (sig != SIGFPE); +} + +int x = 1; +int y = 0; +int z; +int nan; + +int main () +{ + signal (SIGFPE, sigfpe_handler); +/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ +#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) + signal (SIGTRAP, sigfpe_handler); +#endif +/* Linux/SPARC yields signal SIGILL. */ +#if defined (__sparc__) && defined (__linux__) + signal (SIGILL, sigfpe_handler); +#endif + + z = x / y; + nan = y / y; + exit (1); +} +], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, + [ + # Guess based on the CPU. + case "$host_cpu" in + alpha* | i[34567]86 | m68k | s390*) + gt_cv_int_divbyzero_sigfpe="guessing yes";; + *) + gt_cv_int_divbyzero_sigfpe="guessing no";; + esac + ]) + ]) + case "$gt_cv_int_divbyzero_sigfpe" in + *yes) value=1;; + *) value=0;; + esac + AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, + [Define if integer division by zero raises signal SIGFPE.]) +]) + +# uintmax_t.m4 serial 6 (gettext-0.11) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +AC_PREREQ(2.13) + +# Define uintmax_t to `unsigned long' or `unsigned long long' +# if does not exist. + +AC_DEFUN([jm_AC_TYPE_UINTMAX_T], +[ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_HEADER_STDINT_H]) + if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, + [Define to unsigned long or unsigned long long + if and don't define.]) + fi +]) + +# inttypes_h.m4 serial 4 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, +# doesn't clash with , and declares uintmax_t. + +AC_DEFUN([jm_AC_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, + [AC_TRY_COMPILE( + [#include +#include ], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_inttypes_h=yes, + jm_ac_cv_header_inttypes_h=no)]) + if test $jm_ac_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, +[Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi +]) + +# stdint_h.m4 serial 2 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_STDINT_H_WITH_UINTMAX if exists, +# doesn't clash with , and declares uintmax_t. + +AC_DEFUN([jm_AC_HEADER_STDINT_H], +[ + AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, + [AC_TRY_COMPILE( + [#include +#include ], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_stdint_h=yes, + jm_ac_cv_header_stdint_h=no)]) + if test $jm_ac_cv_header_stdint_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, +[Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi +]) + +# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) +dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], +[ + AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, + [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], + [unsigned long long ullmax = (unsigned long long) -1; + return ull << i | ull >> i | ullmax / ull | ullmax % ull;], + ac_cv_type_unsigned_long_long=yes, + ac_cv_type_unsigned_long_long=no)]) + if test $ac_cv_type_unsigned_long_long = yes; then + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, + [Define if you have the unsigned long long type.]) + fi +]) + +# inttypes.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H if exists and doesn't clash with +# . + +AC_DEFUN([gt_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, + [ + AC_TRY_COMPILE( + [#include +#include ], + [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) + ]) + if test $gt_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, + [Define if exists and doesn't clash with .]) + fi +]) + +# inttypes-pri.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +# Define PRI_MACROS_BROKEN if exists and defines the PRI* +# macros to non-string values. This is the case on AIX 4.3.3. + +AC_DEFUN([gt_INTTYPES_PRI], +[ + AC_REQUIRE([gt_HEADER_INTTYPES_H]) + if test $gt_cv_header_inttypes_h = yes; then + AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], + gt_cv_inttypes_pri_broken, + [ + AC_TRY_COMPILE([#include +#ifdef PRId32 +char *p = PRId32; +#endif +], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) + ]) + fi + if test "$gt_cv_inttypes_pri_broken" = yes; then + AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, + [Define if exists and defines unusable PRI* macros.]) + fi +]) + +# codeset.m4 serial AM1 (gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, + [AC_TRY_LINK([#include ], + [char* cs = nl_langinfo(CODESET);], + am_cv_langinfo_codeset=yes, + am_cv_langinfo_codeset=no) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have and nl_langinfo(CODESET).]) + fi +]) + +# lcmessage.m4 serial 3 (gettext-0.11.3) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995. + +# Check whether LC_MESSAGES is available in . + +AC_DEFUN([AM_LC_MESSAGES], +[ + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi +]) + +# serial 2 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. + +# Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + +# 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, 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. + +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +]) + + +# Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +# 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, 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. + +# serial 2 + +# @defmac AC_PROG_CC_STDC +# @maindex PROG_CC_STDC +# @ovindex CC +# If the C compiler in not in ANSI C mode by default, try to add an option +# to output variable @code{CC} to make it so. This macro tries various +# options that select ANSI C on some system or another. It considers the +# compiler to be in ANSI C mode if it handles function prototypes correctly. +# +# If you use this macro, you should check after calling it whether the C +# compiler has been set to accept ANSI C; if not, the shell variable +# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source +# code in ANSI C, you can make an un-ANSIfied copy of it by using the +# program @code{ansi2knr}, which comes with Ghostscript. +# @end defmac + +AC_DEFUN([AM_PROG_CC_STDC], +[AC_REQUIRE([AC_PROG_CC]) +AC_BEFORE([$0], [AC_C_INLINE]) +AC_BEFORE([$0], [AC_C_CONST]) +dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require +dnl a magic option to avoid problems with ANSI preprocessor commands +dnl like #elif. +dnl FIXME: can't do this because then AC_AIX won't work due to a +dnl circular dependency. +dnl AC_BEFORE([$0], [AC_PROG_CPP]) +AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C]) +AC_CACHE_VAL(am_cv_prog_cc_stdc, +[am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + AC_TRY_COMPILE( +[#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +], [ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; +], +[am_cv_prog_cc_stdc="$ac_arg"; break]) +done +CC="$ac_save_CC" +]) +if test -z "$am_cv_prog_cc_stdc"; then + AC_MSG_RESULT([none needed]) +else + AC_MSG_RESULT([$am_cv_prog_cc_stdc]) +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac +]) + +AU_DEFUN([fp_PROG_CC_STDC], [AM_PROG_CC_STDC]) + + +# Copyright 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +# 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, 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. + +# serial 2 + +AC_DEFUN([AM_WITH_DMALLOC], +[AC_MSG_CHECKING([if malloc debugging is wanted]) +AC_ARG_WITH(dmalloc, +[ --with-dmalloc use dmalloc, as in + http://www.dmalloc.com/dmalloc.tar.gz], +[if test "$withval" = yes; then + AC_MSG_RESULT(yes) + AC_DEFINE(WITH_DMALLOC,1, + [Define if using the dmalloc debugging malloc package]) + LIBS="$LIBS -ldmalloc" + LDFLAGS="$LDFLAGS -g" +else + AC_MSG_RESULT(no) +fi], [AC_MSG_RESULT(no)]) +]) + +AU_DEFUN([fp_WITH_DMALLOC], [AM_WITH_DMALLOC]) + diff --git a/src/mkutil/make-3.80/alloca.c b/src/mkutil/make-3.80/alloca.c new file mode 100644 index 00000000..8f98b73d --- /dev/null +++ b/src/mkutil/make-3.80/alloca.c @@ -0,0 +1,504 @@ +/* alloca.c -- allocate automatically reclaimed memory + (Mostly) portable public-domain implementation -- D A Gwyn + + This implementation of the PWB library alloca function, + which is used to allocate space off the run-time stack so + that it is automatically reclaimed upon procedure exit, + was inspired by discussions with J. Q. Johnson of Cornell. + J.Otto Tennant contributed the Cray support. + + There are some preprocessor constants that can + be defined when compiling for your specific system, for + improved efficiency; however, the defaults should be okay. + + The general concept of this implementation is to keep + track of all alloca-allocated blocks, and reclaim any + that are found to be deeper in the stack than the current + invocation. This heuristic does not reclaim storage as + soon as it becomes invalid, but it will do so eventually. + + As a special case, alloca(0) reclaims storage without + allocating any. It is a good idea to use alloca(0) in + your main control loop, etc. to force garbage collection. */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifdef HAVE_STRING_H +#include +#endif +#ifdef HAVE_STDLIB_H +#include +#endif + +#ifdef emacs +#include "blockinput.h" +#endif + +/* If compiling with GCC 2, this file's not needed. */ +#if !defined (__GNUC__) || __GNUC__ < 2 + +/* If someone has defined alloca as a macro, + there must be some other way alloca is supposed to work. */ +#ifndef alloca + +#ifdef emacs +#ifdef static +/* actually, only want this if static is defined as "" + -- this is for usg, in which emacs must undefine static + in order to make unexec workable + */ +#ifndef STACK_DIRECTION +you +lose +-- must know STACK_DIRECTION at compile-time +#endif /* STACK_DIRECTION undefined */ +#endif /* static */ +#endif /* emacs */ + +/* If your stack is a linked list of frames, you have to + provide an "address metric" ADDRESS_FUNCTION macro. */ + +#if defined (CRAY) && defined (CRAY_STACKSEG_END) +long i00afunc (); +#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) +#else +#define ADDRESS_FUNCTION(arg) &(arg) +#endif + +#if __STDC__ +typedef void *pointer; +#else +typedef char *pointer; +#endif + +#ifndef NULL +#define NULL 0 +#endif + +/* Different portions of Emacs need to call different versions of + malloc. The Emacs executable needs alloca to call xmalloc, because + ordinary malloc isn't protected from input signals. On the other + hand, the utilities in lib-src need alloca to call malloc; some of + them are very simple, and don't have an xmalloc routine. + + Non-Emacs programs expect this to call use xmalloc. + + Callers below should use malloc. */ + +#ifndef emacs +#define malloc xmalloc +#endif +extern pointer malloc (); + +/* Define STACK_DIRECTION if you know the direction of stack + growth for your system; otherwise it will be automatically + deduced at run-time. + + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ + +#ifndef STACK_DIRECTION +#define STACK_DIRECTION 0 /* Direction unknown. */ +#endif + +#if STACK_DIRECTION != 0 + +#define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ + +#else /* STACK_DIRECTION == 0; need run-time code. */ + +static int stack_dir; /* 1 or -1 once known. */ +#define STACK_DIR stack_dir + +static void +find_stack_direction () +{ + static char *addr = NULL; /* Address of first `dummy', once known. */ + auto char dummy; /* To get stack address. */ + + if (addr == NULL) + { /* Initial entry. */ + addr = ADDRESS_FUNCTION (dummy); + + find_stack_direction (); /* Recurse once. */ + } + else + { + /* Second entry. */ + if (ADDRESS_FUNCTION (dummy) > addr) + stack_dir = 1; /* Stack grew upward. */ + else + stack_dir = -1; /* Stack grew downward. */ + } +} + +#endif /* STACK_DIRECTION == 0 */ + +/* An "alloca header" is used to: + (a) chain together all alloca'ed blocks; + (b) keep track of stack depth. + + It is very important that sizeof(header) agree with malloc + alignment chunk size. The following default should work okay. */ + +#ifndef ALIGN_SIZE +#define ALIGN_SIZE sizeof(double) +#endif + +typedef union hdr +{ + char align[ALIGN_SIZE]; /* To force sizeof(header). */ + struct + { + union hdr *next; /* For chaining headers. */ + char *deep; /* For stack depth measure. */ + } h; +} header; + +static header *last_alloca_header = NULL; /* -> last alloca header. */ + +/* Return a pointer to at least SIZE bytes of storage, + which will be automatically reclaimed upon exit from + the procedure that called alloca. Originally, this space + was supposed to be taken from the current stack frame of the + caller, but that method cannot be made to work for some + implementations of C, for example under Gould's UTX/32. */ + +pointer +alloca (size) + unsigned size; +{ + auto char probe; /* Probes stack depth: */ + register char *depth = ADDRESS_FUNCTION (probe); + +#if STACK_DIRECTION == 0 + if (STACK_DIR == 0) /* Unknown growth direction. */ + find_stack_direction (); +#endif + + /* Reclaim garbage, defined as all alloca'd storage that + was allocated from deeper in the stack than currently. */ + + { + register header *hp; /* Traverses linked list. */ + +#ifdef emacs + BLOCK_INPUT; +#endif + + for (hp = last_alloca_header; hp != NULL;) + if ((STACK_DIR > 0 && hp->h.deep > depth) + || (STACK_DIR < 0 && hp->h.deep < depth)) + { + register header *np = hp->h.next; + + free ((pointer) hp); /* Collect garbage. */ + + hp = np; /* -> next header. */ + } + else + break; /* Rest are not deeper. */ + + last_alloca_header = hp; /* -> last valid storage. */ + +#ifdef emacs + UNBLOCK_INPUT; +#endif + } + + if (size == 0) + return NULL; /* No allocation required. */ + + /* Allocate combined header + user data storage. */ + + { + register pointer new = malloc (sizeof (header) + size); + /* Address of header. */ + + if (new == 0) + abort(); + + ((header *) new)->h.next = last_alloca_header; + ((header *) new)->h.deep = depth; + + last_alloca_header = (header *) new; + + /* User storage begins just after header. */ + + return (pointer) ((char *) new + sizeof (header)); + } +} + +#if defined (CRAY) && defined (CRAY_STACKSEG_END) + +#ifdef DEBUG_I00AFUNC +#include +#endif + +#ifndef CRAY_STACK +#define CRAY_STACK +#ifndef CRAY2 +/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ +struct stack_control_header + { + long shgrow:32; /* Number of times stack has grown. */ + long shaseg:32; /* Size of increments to stack. */ + long shhwm:32; /* High water mark of stack. */ + long shsize:32; /* Current size of stack (all segments). */ + }; + +/* The stack segment linkage control information occurs at + the high-address end of a stack segment. (The stack + grows from low addresses to high addresses.) The initial + part of the stack segment linkage control information is + 0200 (octal) words. This provides for register storage + for the routine which overflows the stack. */ + +struct stack_segment_linkage + { + long ss[0200]; /* 0200 overflow words. */ + long sssize:32; /* Number of words in this segment. */ + long ssbase:32; /* Offset to stack base. */ + long:32; + long sspseg:32; /* Offset to linkage control of previous + segment of stack. */ + long:32; + long sstcpt:32; /* Pointer to task common address block. */ + long sscsnm; /* Private control structure number for + microtasking. */ + long ssusr1; /* Reserved for user. */ + long ssusr2; /* Reserved for user. */ + long sstpid; /* Process ID for pid based multi-tasking. */ + long ssgvup; /* Pointer to multitasking thread giveup. */ + long sscray[7]; /* Reserved for Cray Research. */ + long ssa0; + long ssa1; + long ssa2; + long ssa3; + long ssa4; + long ssa5; + long ssa6; + long ssa7; + long sss0; + long sss1; + long sss2; + long sss3; + long sss4; + long sss5; + long sss6; + long sss7; + }; + +#else /* CRAY2 */ +/* The following structure defines the vector of words + returned by the STKSTAT library routine. */ +struct stk_stat + { + long now; /* Current total stack size. */ + long maxc; /* Amount of contiguous space which would + be required to satisfy the maximum + stack demand to date. */ + long high_water; /* Stack high-water mark. */ + long overflows; /* Number of stack overflow ($STKOFEN) calls. */ + long hits; /* Number of internal buffer hits. */ + long extends; /* Number of block extensions. */ + long stko_mallocs; /* Block allocations by $STKOFEN. */ + long underflows; /* Number of stack underflow calls ($STKRETN). */ + long stko_free; /* Number of deallocations by $STKRETN. */ + long stkm_free; /* Number of deallocations by $STKMRET. */ + long segments; /* Current number of stack segments. */ + long maxs; /* Maximum number of stack segments so far. */ + long pad_size; /* Stack pad size. */ + long current_address; /* Current stack segment address. */ + long current_size; /* Current stack segment size. This + number is actually corrupted by STKSTAT to + include the fifteen word trailer area. */ + long initial_address; /* Address of initial segment. */ + long initial_size; /* Size of initial segment. */ + }; + +/* The following structure describes the data structure which trails + any stack segment. I think that the description in 'asdef' is + out of date. I only describe the parts that I am sure about. */ + +struct stk_trailer + { + long this_address; /* Address of this block. */ + long this_size; /* Size of this block (does not include + this trailer). */ + long unknown2; + long unknown3; + long link; /* Address of trailer block of previous + segment. */ + long unknown5; + long unknown6; + long unknown7; + long unknown8; + long unknown9; + long unknown10; + long unknown11; + long unknown12; + long unknown13; + long unknown14; + }; + +#endif /* CRAY2 */ +#endif /* not CRAY_STACK */ + +#ifdef CRAY2 +/* Determine a "stack measure" for an arbitrary ADDRESS. + I doubt that "lint" will like this much. */ + +static long +i00afunc (long *address) +{ + struct stk_stat status; + struct stk_trailer *trailer; + long *block, size; + long result = 0; + + /* We want to iterate through all of the segments. The first + step is to get the stack status structure. We could do this + more quickly and more directly, perhaps, by referencing the + $LM00 common block, but I know that this works. */ + + STKSTAT (&status); + + /* Set up the iteration. */ + + trailer = (struct stk_trailer *) (status.current_address + + status.current_size + - 15); + + /* There must be at least one stack segment. Therefore it is + a fatal error if "trailer" is null. */ + + if (trailer == 0) + abort (); + + /* Discard segments that do not contain our argument address. */ + + while (trailer != 0) + { + block = (long *) trailer->this_address; + size = trailer->this_size; + if (block == 0 || size == 0) + abort (); + trailer = (struct stk_trailer *) trailer->link; + if ((block <= address) && (address < (block + size))) + break; + } + + /* Set the result to the offset in this segment and add the sizes + of all predecessor segments. */ + + result = address - block; + + if (trailer == 0) + { + return result; + } + + do + { + if (trailer->this_size <= 0) + abort (); + result += trailer->this_size; + trailer = (struct stk_trailer *) trailer->link; + } + while (trailer != 0); + + /* We are done. Note that if you present a bogus address (one + not in any segment), you will get a different number back, formed + from subtracting the address of the first block. This is probably + not what you want. */ + + return (result); +} + +#else /* not CRAY2 */ +/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. + Determine the number of the cell within the stack, + given the address of the cell. The purpose of this + routine is to linearize, in some sense, stack addresses + for alloca. */ + +static long +i00afunc (long address) +{ + long stkl = 0; + + long size, pseg, this_segment, stack; + long result = 0; + + struct stack_segment_linkage *ssptr; + + /* Register B67 contains the address of the end of the + current stack segment. If you (as a subprogram) store + your registers on the stack and find that you are past + the contents of B67, you have overflowed the segment. + + B67 also points to the stack segment linkage control + area, which is what we are really interested in. */ + + stkl = CRAY_STACKSEG_END (); + ssptr = (struct stack_segment_linkage *) stkl; + + /* If one subtracts 'size' from the end of the segment, + one has the address of the first word of the segment. + + If this is not the first segment, 'pseg' will be + nonzero. */ + + pseg = ssptr->sspseg; + size = ssptr->sssize; + + this_segment = stkl - size; + + /* It is possible that calling this routine itself caused + a stack overflow. Discard stack segments which do not + contain the target address. */ + + while (!(this_segment <= address && address <= stkl)) + { +#ifdef DEBUG_I00AFUNC + fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); +#endif + if (pseg == 0) + break; + stkl = stkl - pseg; + ssptr = (struct stack_segment_linkage *) stkl; + size = ssptr->sssize; + pseg = ssptr->sspseg; + this_segment = stkl - size; + } + + result = address - this_segment; + + /* If you subtract pseg from the current end of the stack, + you get the address of the previous stack segment's end. + This seems a little convoluted to me, but I'll bet you save + a cycle somewhere. */ + + while (pseg != 0) + { +#ifdef DEBUG_I00AFUNC + fprintf (stderr, "%011o %011o\n", pseg, size); +#endif + stkl = stkl - pseg; + ssptr = (struct stack_segment_linkage *) stkl; + size = ssptr->sssize; + pseg = ssptr->sspseg; + result += size; + } + return (result); +} + +#endif /* not CRAY2 */ +#endif /* CRAY */ + +#endif /* no alloca */ +#endif /* not GCC version 2 */ diff --git a/src/mkutil/make-3.80/amiga.c b/src/mkutil/make-3.80/amiga.c new file mode 100644 index 00000000..db8ef0df --- /dev/null +++ b/src/mkutil/make-3.80/amiga.c @@ -0,0 +1,123 @@ +/* Running commands on Amiga +Copyright (C) 1995, 1996 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA. */ + +#include "make.h" +#include "variable.h" +#include "amiga.h" +#include +#include +#include +#include +#include + +static const char Amiga_version[] = "$VER: Make 3.74.3 (12.05.96) \n" + "Amiga Port by A. Digulla (digulla@home.lake.de)"; + +int +MyExecute (argv) +char ** argv; +{ + char * buffer, * ptr; + char ** aptr; + int len = 0; + int status; + + for (aptr=argv; *aptr; aptr++) + { + len += strlen (*aptr) + 4; + } + + buffer = AllocMem (len, MEMF_ANY); + + if (!buffer) + fatal (NILF, "MyExecute: Cannot allocate space for calling a command"); + + ptr = buffer; + + for (aptr=argv; *aptr; aptr++) + { + if (((*aptr)[0] == ';' && !(*aptr)[1])) + { + *ptr ++ = '"'; + strcpy (ptr, *aptr); + ptr += strlen (ptr); + *ptr ++ = '"'; + } + else if ((*aptr)[0] == '@' && (*aptr)[1] == '@' && !(*aptr)[2]) + { + *ptr ++ = '\n'; + continue; + } + else + { + strcpy (ptr, *aptr); + ptr += strlen (ptr); + } + *ptr ++ = ' '; + *ptr = 0; + } + + ptr[-1] = '\n'; + + status = SystemTags (buffer, + SYS_UserShell, TRUE, + TAG_END); + + FreeMem (buffer, len); + + if (SetSignal(0L,0L) & SIGBREAKF_CTRL_C) + status = 20; + + /* Warnings don't count */ + if (status == 5) + status = 0; + + return status; +} + +char * +wildcard_expansion (wc, o) +char * wc, * o; +{ +# define PATH_SIZE 1024 + struct AnchorPath * apath; + + if ( (apath = AllocMem (sizeof (struct AnchorPath) + PATH_SIZE, + MEMF_CLEAR)) + ) + { + apath->ap_Strlen = PATH_SIZE; + + if (MatchFirst (wc, apath) == 0) + { + do + { + o = variable_buffer_output (o, apath->ap_Buf, + strlen (apath->ap_Buf)); + o = variable_buffer_output (o, " ",1); + } while (MatchNext (apath) == 0); + } + + MatchEnd (apath); + FreeMem (apath, sizeof (struct AnchorPath) + PATH_SIZE); + } + + return o; +} + diff --git a/src/mkutil/make-3.80/amiga.h b/src/mkutil/make-3.80/amiga.h new file mode 100644 index 00000000..99a1c598 --- /dev/null +++ b/src/mkutil/make-3.80/amiga.h @@ -0,0 +1,22 @@ +/* Definitions for amiga specific things +Copyright (C) 1995, 1996 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA. */ + +extern int MyExecute PARAMS ((char ** argv)); +extern char * wildcard_expansion PARAMS ((char * wc, char * o)); + diff --git a/src/mkutil/make-3.80/ar.c b/src/mkutil/make-3.80/ar.c new file mode 100644 index 00000000..286be55f --- /dev/null +++ b/src/mkutil/make-3.80/ar.c @@ -0,0 +1,329 @@ +/* Interface to `ar' archives for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" + +#ifndef NO_ARCHIVES + +#include "filedef.h" +#include "dep.h" +#include + +/* Defined in arscan.c. */ +extern long int ar_scan PARAMS ((char *archive, long int (*function) (), long int arg)); +extern int ar_name_equal PARAMS ((char *name, char *mem, int truncated)); +#ifndef VMS +extern int ar_member_touch PARAMS ((char *arname, char *memname)); +#endif + +/* Return nonzero if NAME is an archive-member reference, zero if not. + An archive-member reference is a name like `lib(member)'. + If a name like `lib((entry))' is used, a fatal error is signaled at + the attempt to use this unsupported feature. */ + +int +ar_name (name) + char *name; +{ + char *p = strchr (name, '('); + char *end; + + if (p == 0 || p == name) + return 0; + + end = p + strlen (p) - 1; + if (*end != ')') + return 0; + + if (p[1] == '(' && end[-1] == ')') + fatal (NILF, _("attempt to use unsupported feature: `%s'"), name); + + return 1; +} + + +/* Parse the archive-member reference NAME into the archive and member names. + Put the malloc'd archive name in *ARNAME_P if ARNAME_P is non-nil; + put the malloc'd member name in *MEMNAME_P if MEMNAME_P is non-nil. */ + +void +ar_parse_name (name, arname_p, memname_p) + char *name, **arname_p, **memname_p; +{ + char *p = strchr (name, '('), *end = name + strlen (name) - 1; + + if (arname_p != 0) + *arname_p = savestring (name, p - name); + + if (memname_p != 0) + *memname_p = savestring (p + 1, end - (p + 1)); +} + +static long int ar_member_date_1 PARAMS ((int desc, char *mem, int truncated, long int hdrpos, + long int datapos, long int size, long int date, int uid, int gid, int mode, char *name)); + +/* Return the modtime of NAME. */ + +time_t +ar_member_date (name) + char *name; +{ + char *arname; + int arname_used = 0; + char *memname; + long int val; + + ar_parse_name (name, &arname, &memname); + + /* Make sure we know the modtime of the archive itself because we are + likely to be called just before commands to remake a member are run, + and they will change the archive itself. + + But we must be careful not to enter_file the archive itself if it does + not exist, because pattern_search assumes that files found in the data + base exist or can be made. */ + { + struct file *arfile; + arfile = lookup_file (arname); + if (arfile == 0 && file_exists_p (arname)) + { + arfile = enter_file (arname); + arname_used = 1; + } + + if (arfile != 0) + (void) f_mtime (arfile, 0); + } + + val = ar_scan (arname, ar_member_date_1, (long int) memname); + + if (!arname_used) + free (arname); + free (memname); + + return (val <= 0 ? (time_t) -1 : (time_t) val); +} + +/* This function is called by `ar_scan' to find which member to look at. */ + +/* ARGSUSED */ +static long int +ar_member_date_1 (desc, mem, truncated, + hdrpos, datapos, size, date, uid, gid, mode, name) + int desc; + char *mem; + int truncated; + long int hdrpos, datapos, size, date; + int uid, gid, mode; + char *name; +{ + return ar_name_equal (name, mem, truncated) ? date : 0; +} + +/* Set the archive-member NAME's modtime to now. */ + +#ifdef VMS +int +ar_touch (name) + char *name; +{ + error (NILF, _("touch archive member is not available on VMS")); + return -1; +} +#else +int +ar_touch (name) + char *name; +{ + char *arname, *memname; + int arname_used = 0; + register int val; + + ar_parse_name (name, &arname, &memname); + + /* Make sure we know the modtime of the archive itself before we + touch the member, since this will change the archive itself. */ + { + struct file *arfile; + arfile = lookup_file (arname); + if (arfile == 0) + { + arfile = enter_file (arname); + arname_used = 1; + } + + (void) f_mtime (arfile, 0); + } + + val = 1; + switch (ar_member_touch (arname, memname)) + { + case -1: + error (NILF, _("touch: Archive `%s' does not exist"), arname); + break; + case -2: + error (NILF, _("touch: `%s' is not a valid archive"), arname); + break; + case -3: + perror_with_name ("touch: ", arname); + break; + case 1: + error (NILF, + _("touch: Member `%s' does not exist in `%s'"), memname, arname); + break; + case 0: + val = 0; + break; + default: + error (NILF, + _("touch: Bad return code from ar_member_touch on `%s'"), name); + } + + if (!arname_used) + free (arname); + free (memname); + + return val; +} +#endif /* !VMS */ + +/* State of an `ar_glob' run, passed to `ar_glob_match'. */ + +struct ar_glob_state + { + char *arname; + char *pattern; + unsigned int size; + struct nameseq *chain; + unsigned int n; + }; + +/* This function is called by `ar_scan' to match one archive + element against the pattern in STATE. */ + +static long int +ar_glob_match (desc, mem, truncated, + hdrpos, datapos, size, date, uid, gid, mode, + state) + int desc; + char *mem; + int truncated; + long int hdrpos, datapos, size, date; + int uid, gid, mode; + struct ar_glob_state *state; +{ + if (fnmatch (state->pattern, mem, FNM_PATHNAME|FNM_PERIOD) == 0) + { + /* We have a match. Add it to the chain. */ + struct nameseq *new = (struct nameseq *) xmalloc (state->size); + new->name = concat (state->arname, mem, ")"); + new->next = state->chain; + state->chain = new; + ++state->n; + } + + return 0L; +} + +/* Return nonzero if PATTERN contains any metacharacters. + Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ +static int +glob_pattern_p (pattern, quote) + const char *pattern; + const int quote; +{ + register const char *p; + int open = 0; + + for (p = pattern; *p != '\0'; ++p) + switch (*p) + { + case '?': + case '*': + return 1; + + case '\\': + if (quote) + ++p; + break; + + case '[': + open = 1; + break; + + case ']': + if (open) + return 1; + break; + } + + return 0; +} + +/* Glob for MEMBER_PATTERN in archive ARNAME. + Return a malloc'd chain of matching elements (or nil if none). */ + +struct nameseq * +ar_glob (arname, member_pattern, size) + char *arname, *member_pattern; + unsigned int size; +{ + struct ar_glob_state state; + char **names; + struct nameseq *n; + unsigned int i; + + if (! glob_pattern_p (member_pattern, 1)) + return 0; + + /* Scan the archive for matches. + ar_glob_match will accumulate them in STATE.chain. */ + i = strlen (arname); + state.arname = (char *) alloca (i + 2); + bcopy (arname, state.arname, i); + state.arname[i] = '('; + state.arname[i + 1] = '\0'; + state.pattern = member_pattern; + state.size = size; + state.chain = 0; + state.n = 0; + (void) ar_scan (arname, ar_glob_match, (long int) &state); + + if (state.chain == 0) + return 0; + + /* Now put the names into a vector for sorting. */ + names = (char **) alloca (state.n * sizeof (char *)); + i = 0; + for (n = state.chain; n != 0; n = n->next) + names[i++] = n->name; + + /* Sort them alphabetically. */ + qsort ((char *) names, i, sizeof (*names), alpha_compare); + + /* Put them back into the chain in the sorted order. */ + i = 0; + for (n = state.chain; n != 0; n = n->next) + n->name = names[i++]; + + return state.chain; +} + +#endif /* Not NO_ARCHIVES. */ diff --git a/src/mkutil/make-3.80/arscan.c b/src/mkutil/make-3.80/arscan.c new file mode 100644 index 00000000..fc003e99 --- /dev/null +++ b/src/mkutil/make-3.80/arscan.c @@ -0,0 +1,861 @@ +/* Library function for scanning an archive file. +Copyright (C) 1987,89,91,92,93,94,95,97 Free Software Foundation, Inc. + +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, 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 "make.h" + +#ifdef HAVE_FCNTL_H +#include +#else +#include +#endif + +#ifndef NO_ARCHIVES + +#ifdef VMS +#include +#include +#include +#include +#include +#if __DECC +#include +#include +#endif + +static void *VMS_lib_idx; + +static char *VMS_saved_memname; + +static time_t VMS_member_date; + +static long int (*VMS_function) (); + +static int +VMS_get_member_info (module, rfa) + struct dsc$descriptor_s *module; + unsigned long *rfa; +{ + int status, i; + long int fnval; + + time_t val; + + static struct dsc$descriptor_s bufdesc = + { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL }; + + struct mhddef *mhd; + char filename[128]; + + bufdesc.dsc$a_pointer = filename; + bufdesc.dsc$w_length = sizeof (filename); + + status = lbr$set_module (&VMS_lib_idx, rfa, &bufdesc, + &bufdesc.dsc$w_length, 0); + if (! (status & 1)) + { + error (NILF, _("lbr$set_module failed to extract module info, status = %d"), + status); + + lbr$close (&VMS_lib_idx); + + return 0; + } + + mhd = (struct mhddef *) filename; + +#ifdef __DECC + /* John Fowler writes this is needed in his environment, + * but that decc$fix_time() isn't documented to work this way. Let me + * know if this causes problems in other VMS environments. + */ + val = decc$fix_time (&mhd->mhd$l_datim) + timezone - daylight*3600; +#endif + + for (i = 0; i < module->dsc$w_length; i++) + filename[i] = _tolower ((unsigned char)module->dsc$a_pointer[i]); + + filename[i] = '\0'; + + VMS_member_date = (time_t) -1; + + fnval = + (*VMS_function) (-1, filename, 0, 0, 0, 0, val, 0, 0, 0, + VMS_saved_memname); + + if (fnval) + { + VMS_member_date = fnval; + return 0; + } + else + return 1; +} + +/* Takes three arguments ARCHIVE, FUNCTION and ARG. + + Open the archive named ARCHIVE, find its members one by one, + and for each one call FUNCTION with the following arguments: + archive file descriptor for reading the data, + member name, + member name might be truncated flag, + member header position in file, + member data position in file, + member data size, + member date, + member uid, + member gid, + member protection mode, + ARG. + + NOTE: on VMS systems, only name, date, and arg are meaningful! + + The descriptor is poised to read the data of the member + when FUNCTION is called. It does not matter how much + data FUNCTION reads. + + If FUNCTION returns nonzero, we immediately return + what FUNCTION returned. + + Returns -1 if archive does not exist, + Returns -2 if archive has invalid format. + Returns 0 if have scanned successfully. */ + +long int +ar_scan (archive, function, arg) + char *archive; + long int (*function) (); + long int arg; +{ + char *p; + + static struct dsc$descriptor_s libdesc = + { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL }; + + unsigned long func = LBR$C_READ; + unsigned long type = LBR$C_TYP_UNK; + unsigned long index = 1; + + int status; + + status = lbr$ini_control (&VMS_lib_idx, &func, &type, 0); + + if (! (status & 1)) + { + error (NILF, _("lbr$ini_control failed with status = %d"),status); + return -2; + } + + libdesc.dsc$a_pointer = archive; + libdesc.dsc$w_length = strlen (archive); + + status = lbr$open (&VMS_lib_idx, &libdesc, 0, 0, 0, 0, 0); + + if (! (status & 1)) + { + error (NILF, _("unable to open library `%s' to lookup member `%s'"), + archive, (char *)arg); + return -1; + } + + VMS_saved_memname = (char *)arg; + + /* For comparison, delete .obj from arg name. */ + + p = strrchr (VMS_saved_memname, '.'); + if (p) + *p = '\0'; + + VMS_function = function; + + VMS_member_date = (time_t) -1; + lbr$get_index (&VMS_lib_idx, &index, VMS_get_member_info, 0); + + /* Undo the damage. */ + if (p) + *p = '.'; + + lbr$close (&VMS_lib_idx); + + return VMS_member_date > 0 ? VMS_member_date : 0; +} + +#else /* !VMS */ + +/* SCO Unix's compiler defines both of these. */ +#ifdef M_UNIX +#undef M_XENIX +#endif + +/* On the sun386i and in System V rel 3, ar.h defines two different archive + formats depending upon whether you have defined PORTAR (normal) or PORT5AR + (System V Release 1). There is no default, one or the other must be defined + to have a nonzero value. */ + +#if (!defined (PORTAR) || PORTAR == 0) && (!defined (PORT5AR) || PORT5AR == 0) +#undef PORTAR +#ifdef M_XENIX +/* According to Jim Sievert , for SCO XENIX defining + PORTAR to 1 gets the wrong archive format, and defining it to 0 gets the + right one. */ +#define PORTAR 0 +#else +#define PORTAR 1 +#endif +#endif + +/* On AIX, define these symbols to be sure to get both archive formats. + AIX 4.3 introduced the "big" archive format to support 64-bit object + files, so on AIX 4.3 systems we need to support both the "normal" and + "big" archive formats. An archive's format is indicated in the + "fl_magic" field of the "FL_HDR" structure. For a normal archive, + this field will be the string defined by the AIAMAG symbol. For a + "big" archive, it will be the string defined by the AIAMAGBIG symbol + (at least on AIX it works this way). + + Note: we'll define these symbols regardless of which AIX version + we're compiling on, but this is okay since we'll use the new symbols + only if they're present. */ +#ifdef _AIX +# define __AR_SMALL__ +# define __AR_BIG__ +#endif + +#ifndef WINDOWS32 +# ifndef __BEOS__ +# include +# else + /* BeOS 5 doesn't have but has archives in the same format + * as many other Unices. This was taken from GNU binutils for BeOS. + */ +# define ARMAG "!\n" /* String that begins an archive file. */ +# define SARMAG 8 /* Size of that string. */ +# define ARFMAG "`\n" /* String in ar_fmag at end of each header. */ +struct ar_hdr + { + char ar_name[16]; /* Member file name, sometimes / terminated. */ + char ar_date[12]; /* File date, decimal seconds since Epoch. */ + char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */ + char ar_mode[8]; /* File mode, in ASCII octal. */ + char ar_size[10]; /* File size, in ASCII decimal. */ + char ar_fmag[2]; /* Always contains ARFMAG. */ + }; +# endif +#else +/* These should allow us to read Windows (VC++) libraries (according to Frank + * Libbrecht ) + */ +# include +# include +# include +# define ARMAG IMAGE_ARCHIVE_START +# define SARMAG IMAGE_ARCHIVE_START_SIZE +# define ar_hdr _IMAGE_ARCHIVE_MEMBER_HEADER +# define ar_name Name +# define ar_mode Mode +# define ar_size Size +# define ar_date Date +# define ar_uid UserID +# define ar_gid GroupID +#endif + +/* Cray's apparently defines this. */ +#ifndef AR_HDR_SIZE +# define AR_HDR_SIZE (sizeof (struct ar_hdr)) +#endif + +/* Takes three arguments ARCHIVE, FUNCTION and ARG. + + Open the archive named ARCHIVE, find its members one by one, + and for each one call FUNCTION with the following arguments: + archive file descriptor for reading the data, + member name, + member name might be truncated flag, + member header position in file, + member data position in file, + member data size, + member date, + member uid, + member gid, + member protection mode, + ARG. + + The descriptor is poised to read the data of the member + when FUNCTION is called. It does not matter how much + data FUNCTION reads. + + If FUNCTION returns nonzero, we immediately return + what FUNCTION returned. + + Returns -1 if archive does not exist, + Returns -2 if archive has invalid format. + Returns 0 if have scanned successfully. */ + +long int +ar_scan (archive, function, arg) + char *archive; + long int (*function) (); + long int arg; +{ +#ifdef AIAMAG + FL_HDR fl_header; +#ifdef AIAMAGBIG + int big_archive = 0; + FL_HDR_BIG fl_header_big; +#endif +#else + int long_name = 0; +#endif + char *namemap = 0; + register int desc = open (archive, O_RDONLY, 0); + if (desc < 0) + return -1; +#ifdef SARMAG + { + char buf[SARMAG]; + register int nread = read (desc, buf, SARMAG); + if (nread != SARMAG || bcmp (buf, ARMAG, SARMAG)) + { + (void) close (desc); + return -2; + } + } +#else +#ifdef AIAMAG + { + register int nread = read (desc, (char *) &fl_header, FL_HSZ); + + if (nread != FL_HSZ) + { + (void) close (desc); + return -2; + } +#ifdef AIAMAGBIG + /* If this is a "big" archive, then set the flag and + re-read the header into the "big" structure. */ + if (!bcmp (fl_header.fl_magic, AIAMAGBIG, SAIAMAG)) + { + big_archive = 1; + + /* seek back to beginning of archive */ + if (lseek (desc, 0, 0) < 0) + { + (void) close (desc); + return -2; + } + + /* re-read the header into the "big" structure */ + nread = read (desc, (char *) &fl_header_big, FL_HSZ_BIG); + if (nread != FL_HSZ_BIG) + { + (void) close (desc); + return -2; + } + } + else +#endif + /* Check to make sure this is a "normal" archive. */ + if (bcmp (fl_header.fl_magic, AIAMAG, SAIAMAG)) + { + (void) close (desc); + return -2; + } + } +#else + { +#ifndef M_XENIX + int buf; +#else + unsigned short int buf; +#endif + register int nread = read(desc, &buf, sizeof (buf)); + if (nread != sizeof (buf) || buf != ARMAG) + { + (void) close (desc); + return -2; + } + } +#endif +#endif + + /* Now find the members one by one. */ + { +#ifdef SARMAG + register long int member_offset = SARMAG; +#else +#ifdef AIAMAG + long int member_offset; + long int last_member_offset; + +#ifdef AIAMAGBIG + if ( big_archive ) + { + sscanf (fl_header_big.fl_fstmoff, "%20ld", &member_offset); + sscanf (fl_header_big.fl_lstmoff, "%20ld", &last_member_offset); + } + else +#endif + { + sscanf (fl_header.fl_fstmoff, "%12ld", &member_offset); + sscanf (fl_header.fl_lstmoff, "%12ld", &last_member_offset); + } + + if (member_offset == 0) + { + /* Empty archive. */ + close (desc); + return 0; + } +#else +#ifndef M_XENIX + register long int member_offset = sizeof (int); +#else /* Xenix. */ + register long int member_offset = sizeof (unsigned short int); +#endif /* Not Xenix. */ +#endif +#endif + + while (1) + { + register int nread; + struct ar_hdr member_header; +#ifdef AIAMAGBIG + struct ar_hdr_big member_header_big; +#endif +#ifdef AIAMAG + char name[256]; + int name_len; + long int dateval; + int uidval, gidval; + long int data_offset; +#else + char namebuf[sizeof member_header.ar_name + 1]; + char *name; + int is_namemap; /* Nonzero if this entry maps long names. */ +#endif + long int eltsize; + int eltmode; + long int fnval; + + if (lseek (desc, member_offset, 0) < 0) + { + (void) close (desc); + return -2; + } + +#ifdef AIAMAG +#define AR_MEMHDR_SZ(x) (sizeof(x) - sizeof (x._ar_name)) + +#ifdef AIAMAGBIG + if (big_archive) + { + nread = read (desc, (char *) &member_header_big, + AR_MEMHDR_SZ(member_header_big) ); + + if (nread != AR_MEMHDR_SZ(member_header_big)) + { + (void) close (desc); + return -2; + } + + sscanf (member_header_big.ar_namlen, "%4d", &name_len); + nread = read (desc, name, name_len); + + if (nread != name_len) + { + (void) close (desc); + return -2; + } + + name[name_len] = 0; + + sscanf (member_header_big.ar_date, "%12ld", &dateval); + sscanf (member_header_big.ar_uid, "%12d", &uidval); + sscanf (member_header_big.ar_gid, "%12d", &gidval); + sscanf (member_header_big.ar_mode, "%12o", &eltmode); + sscanf (member_header_big.ar_size, "%20ld", &eltsize); + + data_offset = (member_offset + AR_MEMHDR_SZ(member_header_big) + + name_len + 2); + } + else +#endif + { + nread = read (desc, (char *) &member_header, + AR_MEMHDR_SZ(member_header) ); + + if (nread != AR_MEMHDR_SZ(member_header)) + { + (void) close (desc); + return -2; + } + + sscanf (member_header.ar_namlen, "%4d", &name_len); + nread = read (desc, name, name_len); + + if (nread != name_len) + { + (void) close (desc); + return -2; + } + + name[name_len] = 0; + + sscanf (member_header.ar_date, "%12ld", &dateval); + sscanf (member_header.ar_uid, "%12d", &uidval); + sscanf (member_header.ar_gid, "%12d", &gidval); + sscanf (member_header.ar_mode, "%12o", &eltmode); + sscanf (member_header.ar_size, "%12ld", &eltsize); + + data_offset = (member_offset + AR_MEMHDR_SZ(member_header) + + name_len + 2); + } + data_offset += data_offset % 2; + + fnval = + (*function) (desc, name, 0, + member_offset, data_offset, eltsize, + dateval, uidval, gidval, + eltmode, arg); + +#else /* Not AIAMAG. */ + nread = read (desc, (char *) &member_header, AR_HDR_SIZE); + if (nread == 0) + /* No data left means end of file; that is OK. */ + break; + + if (nread != AR_HDR_SIZE +#if defined(ARFMAG) || defined(ARFZMAG) + || ( +# ifdef ARFMAG + bcmp (member_header.ar_fmag, ARFMAG, 2) +# else + 1 +# endif + && +# ifdef ARFZMAG + bcmp (member_header.ar_fmag, ARFZMAG, 2) +# else + 1 +# endif + ) +#endif + ) + { + (void) close (desc); + return -2; + } + + name = namebuf; + bcopy (member_header.ar_name, name, sizeof member_header.ar_name); + { + register char *p = name + sizeof member_header.ar_name; + do + *p = '\0'; + while (p > name && *--p == ' '); + +#ifndef AIAMAG + /* If the member name is "//" or "ARFILENAMES/" this may be + a list of file name mappings. The maximum file name + length supported by the standard archive format is 14 + characters. This member will actually always be the + first or second entry in the archive, but we don't check + that. */ + is_namemap = (!strcmp (name, "//") + || !strcmp (name, "ARFILENAMES/")); +#endif /* Not AIAMAG. */ + /* On some systems, there is a slash after each member name. */ + if (*p == '/') + *p = '\0'; + +#ifndef AIAMAG + /* If the member name starts with a space or a slash, this + is an index into the file name mappings (used by GNU ar). + Otherwise if the member name looks like #1/NUMBER the + real member name appears in the element data (used by + 4.4BSD). */ + if (! is_namemap + && (name[0] == ' ' || name[0] == '/') + && namemap != 0) + { + name = namemap + atoi (name + 1); + long_name = 1; + } + else if (name[0] == '#' + && name[1] == '1' + && name[2] == '/') + { + int namesize = atoi (name + 3); + + name = (char *) alloca (namesize + 1); + nread = read (desc, name, namesize); + if (nread != namesize) + { + close (desc); + return -2; + } + name[namesize] = '\0'; + + long_name = 1; + } +#endif /* Not AIAMAG. */ + } + +#ifndef M_XENIX + sscanf (member_header.ar_mode, "%o", &eltmode); + eltsize = atol (member_header.ar_size); +#else /* Xenix. */ + eltmode = (unsigned short int) member_header.ar_mode; + eltsize = member_header.ar_size; +#endif /* Not Xenix. */ + + fnval = + (*function) (desc, name, ! long_name, member_offset, + member_offset + AR_HDR_SIZE, eltsize, +#ifndef M_XENIX + atol (member_header.ar_date), + atoi (member_header.ar_uid), + atoi (member_header.ar_gid), +#else /* Xenix. */ + member_header.ar_date, + member_header.ar_uid, + member_header.ar_gid, +#endif /* Not Xenix. */ + eltmode, arg); + +#endif /* AIAMAG. */ + + if (fnval) + { + (void) close (desc); + return fnval; + } + +#ifdef AIAMAG + if (member_offset == last_member_offset) + /* End of the chain. */ + break; + +#ifdef AIAMAGBIG + if (big_archive) + sscanf (member_header_big.ar_nxtmem, "%20ld", &member_offset); + else +#endif + sscanf (member_header.ar_nxtmem, "%12ld", &member_offset); + + if (lseek (desc, member_offset, 0) != member_offset) + { + (void) close (desc); + return -2; + } +#else + + /* If this member maps archive names, we must read it in. The + name map will always precede any members whose names must + be mapped. */ + if (is_namemap) + { + char *clear; + char *limit; + + namemap = (char *) alloca (eltsize); + nread = read (desc, namemap, eltsize); + if (nread != eltsize) + { + (void) close (desc); + return -2; + } + + /* The names are separated by newlines. Some formats have + a trailing slash. Null terminate the strings for + convenience. */ + limit = namemap + eltsize; + for (clear = namemap; clear < limit; clear++) + { + if (*clear == '\n') + { + *clear = '\0'; + if (clear[-1] == '/') + clear[-1] = '\0'; + } + } + + is_namemap = 0; + } + + member_offset += AR_HDR_SIZE + eltsize; + if (member_offset % 2 != 0) + member_offset++; +#endif + } + } + + close (desc); + return 0; +} +#endif /* !VMS */ + +/* Return nonzero iff NAME matches MEM. + If TRUNCATED is nonzero, MEM may be truncated to + sizeof (struct ar_hdr.ar_name) - 1. */ + +int +ar_name_equal (name, mem, truncated) + char *name, *mem; + int truncated; +{ + char *p; + + p = strrchr (name, '/'); + if (p != 0) + name = p + 1; + +#ifndef VMS + if (truncated) + { +#ifdef AIAMAG + /* TRUNCATED should never be set on this system. */ + abort (); +#else + struct ar_hdr hdr; +#if !defined (__hpux) && !defined (cray) + return strneq (name, mem, sizeof(hdr.ar_name) - 1); +#else + return strneq (name, mem, sizeof(hdr.ar_name) - 2); +#endif /* !__hpux && !cray */ +#endif /* !AIAMAG */ + } +#endif /* !VMS */ + + return !strcmp (name, mem); +} + +#ifndef VMS +/* ARGSUSED */ +static long int +ar_member_pos (desc, mem, truncated, + hdrpos, datapos, size, date, uid, gid, mode, name) + int desc; + char *mem; + int truncated; + long int hdrpos, datapos, size, date; + int uid, gid, mode; + char *name; +{ + if (!ar_name_equal (name, mem, truncated)) + return 0; + return hdrpos; +} + +/* Set date of member MEMNAME in archive ARNAME to current time. + Returns 0 if successful, + -1 if file ARNAME does not exist, + -2 if not a valid archive, + -3 if other random system call error (including file read-only), + 1 if valid but member MEMNAME does not exist. */ + +int +ar_member_touch (arname, memname) + char *arname, *memname; +{ + register long int pos = ar_scan (arname, ar_member_pos, (long int) memname); + register int fd; + struct ar_hdr ar_hdr; + register int i; + struct stat statbuf; + + if (pos < 0) + return (int) pos; + if (!pos) + return 1; + + fd = open (arname, O_RDWR, 0666); + if (fd < 0) + return -3; + /* Read in this member's header */ + if (lseek (fd, pos, 0) < 0) + goto lose; + if (AR_HDR_SIZE != read (fd, (char *) &ar_hdr, AR_HDR_SIZE)) + goto lose; + /* Write back the header, thus touching the archive file. */ + if (lseek (fd, pos, 0) < 0) + goto lose; + if (AR_HDR_SIZE != write (fd, (char *) &ar_hdr, AR_HDR_SIZE)) + goto lose; + /* The file's mtime is the time we we want. */ + if (fstat (fd, &statbuf) < 0) + goto lose; +#if defined(ARFMAG) || defined(ARFZMAG) || defined(AIAMAG) || defined(WINDOWS32) + /* Advance member's time to that time */ + for (i = 0; i < sizeof ar_hdr.ar_date; i++) + ar_hdr.ar_date[i] = ' '; + sprintf (ar_hdr.ar_date, "%ld", (long int) statbuf.st_mtime); +#ifdef AIAMAG + ar_hdr.ar_date[strlen(ar_hdr.ar_date)] = ' '; +#endif +#else + ar_hdr.ar_date = statbuf.st_mtime; +#endif + /* Write back this member's header */ + if (lseek (fd, pos, 0) < 0) + goto lose; + if (AR_HDR_SIZE != write (fd, (char *) &ar_hdr, AR_HDR_SIZE)) + goto lose; + close (fd); + return 0; + + lose: + i = errno; + close (fd); + errno = i; + return -3; +} +#endif + +#ifdef TEST + +long int +describe_member (desc, name, truncated, + hdrpos, datapos, size, date, uid, gid, mode) + int desc; + char *name; + int truncated; + long int hdrpos, datapos, size, date; + int uid, gid, mode; +{ + extern char *ctime (); + + printf (_("Member `%s'%s: %ld bytes at %ld (%ld).\n"), + name, truncated ? _(" (name might be truncated)") : "", + size, hdrpos, datapos); + printf (_(" Date %s"), ctime (&date)); + printf (_(" uid = %d, gid = %d, mode = 0%o.\n"), uid, gid, mode); + + return 0; +} + +main (argc, argv) + int argc; + char **argv; +{ + ar_scan (argv[1], describe_member); + return 0; +} + +#endif /* TEST. */ + +#endif /* NO_ARCHIVES. */ diff --git a/src/mkutil/make-3.80/build.sh.in b/src/mkutil/make-3.80/build.sh.in new file mode 100644 index 00000000..b8a925f8 --- /dev/null +++ b/src/mkutil/make-3.80/build.sh.in @@ -0,0 +1,80 @@ +#!/bin/sh +# Shell script to build GNU Make in the absence of any `make' program. +# @configure_input@ + +# Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc. +# This file is part of GNU Make. +# +# GNU Make 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, or (at your option) +# any later version. +# +# GNU Make 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 GNU Make; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# See Makefile.in for comments describing these variables. + +srcdir='@srcdir@' +CC='@CC@' +CFLAGS='@CFLAGS@' +CPPFLAGS='@CPPFLAGS@' +LDFLAGS='@LDFLAGS@' +ALLOCA='@ALLOCA@' +LOADLIBES='@LIBS@' +extras='@LIBOBJS@' +REMOTE='@REMOTE@' +GLOBLIB='@GLOBLIB@' + +# Common prefix for machine-independent installed files. +prefix='@prefix@' +# Common prefix for machine-dependent installed files. +exec_prefix=`eval echo @exec_prefix@` +# Directory to find libraries in for `-lXXX'. +libdir=${exec_prefix}/lib +# Directory to search by default for included makefiles. +includedir=${prefix}/include + +localedir=${prefix}/share/locale +aliaspath=${localedir}:. + +defines="-DALIASPATH=\"${aliaspath}\" -DLOCALEDIR=\"${localedir}\" -DLIBDIR=\"${libdir}\" -DINCLUDEDIR=\"${includedir}\""' @DEFS@' + +# Exit as soon as any command fails. +set -e + +# These are all the objects we need to link together. +objs="ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o variable.o version.o vpath.o hash.o remote-${REMOTE}.o ${extras} ${ALLOCA}" + +if [ x"$GLOBLIB" != x ]; then + objs="$objs glob/fnmatch.o glob/glob.o" + globinc=-I${srcdir}/glob +fi + +# Compile the source files into those objects. +for file in `echo ${objs} | sed 's/\.o/.c/g'`; do + echo compiling ${file}... + $CC $defines $CPPFLAGS $CFLAGS \ + -c -I. -I${srcdir} ${globinc} ${srcdir}/$file +done + +# The object files were actually all put in the current directory. +# Remove the source directory names from the list. +srcobjs="$objs" +objs= +for obj in $srcobjs; do + objs="$objs `basename $obj`" +done + +# Link all the objects together. +echo linking make... +$CC $LDFLAGS $objs $LOADLIBES -o make.new +echo done +mv -f make.new make diff --git a/src/mkutil/make-3.80/build_w32.bat b/src/mkutil/make-3.80/build_w32.bat new file mode 100644 index 00000000..559fe8d3 --- /dev/null +++ b/src/mkutil/make-3.80/build_w32.bat @@ -0,0 +1,138 @@ +set make=gnumake ++if not exist config.h copy config.h.W32 config.h +cd w32\subproc +echo "Creating the subproc library" +%ComSpec% /c build.bat +cd ..\.. +del link.dbg link.rel +del config.h +copy config.h.W32 config.h +echo off +echo "Creating GNU make for Windows 95/NT" +echo on +if not exist .\WinDebug\nul mkdir .\WinDebug +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D TIVOLI /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c variable.c +echo WinDebug\variable.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c rule.c +echo WinDebug\rule.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c remote-stub.c +echo WinDebug\remote-stub.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c commands.c +echo WinDebug\commands.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c file.c +echo WinDebug\file.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getloadavg.c +echo WinDebug\getloadavg.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c default.c +echo WinDebug\default.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c signame.c +echo WinDebug\signame.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c expand.c +echo WinDebug\expand.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c dir.c +echo WinDebug\dir.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c main.c +echo WinDebug\main.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt1.c +echo WinDebug\getopt1.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c job.c +echo WinDebug\job.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c read.c +echo WinDebug\read.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c version.c +echo WinDebug\version.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt.c +echo WinDebug\getopt.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c arscan.c +echo WinDebug\arscan.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c remake.c +echo WinDebug\remake.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c misc.c +echo WinDebug\misc.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c ar.c +echo WinDebug\ar.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c function.c +echo WinDebug\function.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c vpath.c +echo WinDebug\vpath.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c implicit.c +echo WinDebug\implicit.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\w32\compat\dirent.c +echo WinDebug\dirent.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\glob\glob.c +echo WinDebug\glob.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\glob\fnmatch.c +echo WinDebug\fnmatch.obj >>link.dbg +cl.exe /nologo /MT /W3 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\w32\pathstuff.c +echo WinDebug\pathstuff.obj >>link.dbg +echo off +echo "Linking WinDebug/%make%.exe" +rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /MACHINE:I386 /OUT:.\WinDebug/%make%.exe .\WinDebug/variable.obj .\WinDebug/rule.obj .\WinDebug/remote-stub.obj .\WinDebug/commands.obj .\WinDebug/file.obj .\WinDebug/getloadavg.obj .\WinDebug/default.obj .\WinDebug/signame.obj .\WinDebug/expand.obj .\WinDebug/dir.obj .\WinDebug/main.obj .\WinDebug/getopt1.obj .\WinDebug/job.obj .\WinDebug/read.obj .\WinDebug/version.obj .\WinDebug/getopt.obj .\WinDebug/arscan.obj .\WinDebug/remake.obj .\WinDebug/misc.obj .\WinDebug/ar.obj .\WinDebug/function.obj .\WinDebug/vpath.obj .\WinDebug/implicit.obj .\WinDebug/dirent.obj .\WinDebug/glob.obj .\WinDebug/fnmatch.obj .\WinDebug/pathstuff.obj +echo kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib >>link.dbg +link.exe /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /MACHINE:I386 /OUT:.\WinDebug/%make%.exe @link.dbg +if not exist .\WinDebug/%make%.exe echo "WinDebug build failed" +if exist .\WinDebug/%make%.exe echo "WinDebug build succeeded!" +if not exist .\WinRel\nul mkdir .\WinRel +echo on +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /D TIVOLI /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c variable.c +echo WinRel\variable.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c rule.c +echo WinRel\rule.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c remote-stub.c +echo WinRel\remote-stub.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c commands.c +echo WinRel\commands.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c file.c +echo WinRel\file.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getloadavg.c +echo WinRel\getloadavg.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c default.c +echo WinRel\default.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c signame.c +echo WinRel\signame.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c expand.c +echo WinRel\expand.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c dir.c +echo WinRel\dir.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c main.c +echo WinRel\main.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt1.c +echo WinRel\getopt1.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c job.c +echo WinRel\job.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c read.c +echo WinRel\read.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c version.c +echo WinRel\version.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt.c +echo WinRel\getopt.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c arscan.c +echo WinRel\arscan.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c remake.c +echo WinRel\remake.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c misc.c +echo WinRel\misc.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c ar.c +echo WinRel\ar.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c function.c +echo WinRel\function.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c vpath.c +echo WinRel\vpath.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c implicit.c +echo WinRel\implicit.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\w32\compat\dirent.c +echo WinRel\dirent.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\glob\glob.c +echo WinRel\glob.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\glob\fnmatch.c +echo WinRel\fnmatch.obj >>link.rel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\w32\pathstuff.c +echo WinRel\pathstuff.obj >>link.rel +echo off +echo "Linking WinRel/%make%.exe" +rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /MACHINE:I386 /OUT:.\WinRel/%make%.exe .\WinRel/variable.obj .\WinRel/rule.obj .\WinRel/remote-stub.obj .\WinRel/commands.obj .\WinRel/file.obj .\WinRel/getloadavg.obj .\WinRel/default.obj .\WinRel/signame.obj .\WinRel/expand.obj .\WinRel/dir.obj .\WinRel/main.obj .\WinRel/getopt1.obj .\WinRel/job.obj .\WinRel/read.obj .\WinRel/version.obj .\WinRel/getopt.obj .\WinRel/arscan.obj .\WinRel/remake.obj .\WinRel/misc.obj .\WinRel/ar.obj .\WinRel/function.obj .\WinRel/vpath.obj .\WinRel/implicit.obj .\WinRel/dirent.obj .\WinRel/glob.obj .\WinRel/fnmatch.obj .\WinRel/pathstuff.obj +echo kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib >>link.rel +link.exe /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /MACHINE:I386 /OUT:.\WinRel/%make%.exe @link.rel +if not exist .\WinRel/%make%.exe echo "WinRel build failed" +if exist .\WinRel/%make%.exe echo "WinRel build succeeded!" +echo on diff --git a/src/mkutil/make-3.80/commands.c b/src/mkutil/make-3.80/commands.c new file mode 100644 index 00000000..84b58de5 --- /dev/null +++ b/src/mkutil/make-3.80/commands.c @@ -0,0 +1,584 @@ +/* Command processing for GNU Make. +Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "dep.h" +#include "filedef.h" +#include "variable.h" +#include "job.h" +#include "commands.h" + +#if VMS +# define FILE_LIST_SEPARATOR ',' +#else +# define FILE_LIST_SEPARATOR ' ' +#endif + +extern int remote_kill PARAMS ((int id, int sig)); + +#ifndef HAVE_UNISTD_H +extern int getpid (); +#endif + +/* Set FILE's automatic variables up. */ + +static void +set_file_variables (file) + register struct file *file; +{ + char *at, *percent, *star, *less; + +#ifndef NO_ARCHIVES + /* If the target is an archive member `lib(member)', + then $@ is `lib' and $% is `member'. */ + + if (ar_name (file->name)) + { + unsigned int len; + char *p; + + p = strchr (file->name, '('); + at = (char *) alloca (p - file->name + 1); + bcopy (file->name, at, p - file->name); + at[p - file->name] = '\0'; + len = strlen (p + 1); + percent = (char *) alloca (len); + bcopy (p + 1, percent, len - 1); + percent[len - 1] = '\0'; + } + else +#endif /* NO_ARCHIVES. */ + { + at = file->name; + percent = ""; + } + + /* $* is the stem from an implicit or static pattern rule. */ + if (file->stem == 0) + { + /* In Unix make, $* is set to the target name with + any suffix in the .SUFFIXES list stripped off for + explicit rules. We store this in the `stem' member. */ + register struct dep *d; + char *name; + unsigned int len; + +#ifndef NO_ARCHIVES + if (ar_name (file->name)) + { + name = strchr (file->name, '(') + 1; + len = strlen (name) - 1; + } + else +#endif + { + name = file->name; + len = strlen (name); + } + + for (d = enter_file (".SUFFIXES")->deps; d != 0; d = d->next) + { + unsigned int slen = strlen (dep_name (d)); + if (len > slen && strneq (dep_name (d), name + (len - slen), slen)) + { + file->stem = savestring (name, len - slen); + break; + } + } + if (d == 0) + file->stem = ""; + } + star = file->stem; + + /* $< is the first dependency. */ + less = file->deps != 0 ? dep_name (file->deps) : ""; + + if (file->cmds == default_file->cmds) + /* This file got its commands from .DEFAULT. + In this case $< is the same as $@. */ + less = at; + +#define DEFINE_VARIABLE(name, len, value) \ + (void) define_variable_for_file (name,len,value,o_automatic,0,file) + + /* Define the variables. */ + + DEFINE_VARIABLE ("<", 1, less); + DEFINE_VARIABLE ("*", 1, star); + DEFINE_VARIABLE ("@", 1, at); + DEFINE_VARIABLE ("%", 1, percent); + + /* Compute the values for $^, $+, $?, and $|. */ + + { + unsigned int qmark_len, plus_len, bar_len; + char *caret_value, *plus_value; + char *cp; + char *qmark_value; + char *bar_value; + char *qp; + char *bp; + struct dep *d; + unsigned int len; + + /* Compute first the value for $+, which is supposed to contain + duplicate dependencies as they were listed in the makefile. */ + + plus_len = 0; + for (d = file->deps; d != 0; d = d->next) + if (! d->ignore_mtime) + plus_len += strlen (dep_name (d)) + 1; + if (plus_len == 0) + plus_len++; + + cp = plus_value = (char *) alloca (plus_len); + + qmark_len = plus_len + 1; /* Will be this or less. */ + for (d = file->deps; d != 0; d = d->next) + if (! d->ignore_mtime) + { + char *c = dep_name (d); + +#ifndef NO_ARCHIVES + if (ar_name (c)) + { + c = strchr (c, '(') + 1; + len = strlen (c) - 1; + } + else +#endif + len = strlen (c); + + bcopy (c, cp, len); + cp += len; + *cp++ = FILE_LIST_SEPARATOR; + if (! d->changed) + qmark_len -= len + 1; /* Don't space in $? for this one. */ + } + + /* Kill the last space and define the variable. */ + + cp[cp > plus_value ? -1 : 0] = '\0'; + DEFINE_VARIABLE ("+", 1, plus_value); + + /* Make sure that no dependencies are repeated. This does not + really matter for the purpose of updating targets, but it + might make some names be listed twice for $^ and $?. */ + + uniquize_deps (file->deps); + + bar_len = 0; + for (d = file->deps; d != 0; d = d->next) + if (d->ignore_mtime) + bar_len += strlen (dep_name (d)) + 1; + if (bar_len == 0) + bar_len++; + + /* Compute the values for $^, $?, and $|. */ + + cp = caret_value = plus_value; /* Reuse the buffer; it's big enough. */ + qp = qmark_value = (char *) alloca (qmark_len); + bp = bar_value = (char *) alloca (bar_len); + + for (d = file->deps; d != 0; d = d->next) + { + char *c = dep_name (d); + +#ifndef NO_ARCHIVES + if (ar_name (c)) + { + c = strchr (c, '(') + 1; + len = strlen (c) - 1; + } + else +#endif + len = strlen (c); + + if (d->ignore_mtime) + { + bcopy (c, bp, len); + bp += len; + *bp++ = FILE_LIST_SEPARATOR; + } + else + { + bcopy (c, cp, len); + cp += len; + *cp++ = FILE_LIST_SEPARATOR; + if (d->changed) + { + bcopy (c, qp, len); + qp += len; + *qp++ = FILE_LIST_SEPARATOR; + } + } + } + + /* Kill the last spaces and define the variables. */ + + cp[cp > caret_value ? -1 : 0] = '\0'; + DEFINE_VARIABLE ("^", 1, caret_value); + + qp[qp > qmark_value ? -1 : 0] = '\0'; + DEFINE_VARIABLE ("?", 1, qmark_value); + + bp[bp > bar_value ? -1 : 0] = '\0'; + DEFINE_VARIABLE ("|", 1, bar_value); + } + +#undef DEFINE_VARIABLE +} + +/* Chop CMDS up into individual command lines if necessary. + Also set the `lines_flags' and `any_recurse' members. */ + +void +chop_commands (cmds) + register struct commands *cmds; +{ + register char *p; + unsigned int nlines, idx; + char **lines; + + /* If we don't have any commands, + or we already parsed them, never mind. */ + + if (!cmds || cmds->command_lines != 0) + return; + + /* Chop CMDS->commands up into lines in CMDS->command_lines. + Also set the corresponding CMDS->lines_flags elements, + and the CMDS->any_recurse flag. */ + + nlines = 5; + lines = (char **) xmalloc (5 * sizeof (char *)); + idx = 0; + p = cmds->commands; + while (*p != '\0') + { + char *end = p; + find_end:; + end = strchr (end, '\n'); + if (end == 0) + end = p + strlen (p); + else if (end > p && end[-1] == '\\') + { + int backslash = 1; + register char *b; + for (b = end - 2; b >= p && *b == '\\'; --b) + backslash = !backslash; + if (backslash) + { + ++end; + goto find_end; + } + } + + if (idx == nlines) + { + nlines += 2; + lines = (char **) xrealloc ((char *) lines, + nlines * sizeof (char *)); + } + lines[idx++] = savestring (p, end - p); + p = end; + if (*p != '\0') + ++p; + } + + if (idx != nlines) + { + nlines = idx; + lines = (char **) xrealloc ((char *) lines, + nlines * sizeof (char *)); + } + + cmds->ncommand_lines = nlines; + cmds->command_lines = lines; + + cmds->any_recurse = 0; + cmds->lines_flags = (char *) xmalloc (nlines); + for (idx = 0; idx < nlines; ++idx) + { + int flags = 0; + + for (p = lines[idx]; + isblank ((unsigned char)*p) || *p == '-' || *p == '@' || *p == '+'; + ++p) + switch (*p) + { + case '+': + flags |= COMMANDS_RECURSE; + break; + case '@': + flags |= COMMANDS_SILENT; + break; + case '-': + flags |= COMMANDS_NOERROR; + break; + } + if (!(flags & COMMANDS_RECURSE)) + { + unsigned int len = strlen (p); + if (sindex (p, len, "$(MAKE)", 7) != 0 + || sindex (p, len, "${MAKE}", 7) != 0) + flags |= COMMANDS_RECURSE; + } + + cmds->lines_flags[idx] = flags; + cmds->any_recurse |= flags & COMMANDS_RECURSE; + } +} + +/* Execute the commands to remake FILE. If they are currently executing, + return or have already finished executing, just return. Otherwise, + fork off a child process to run the first command line in the sequence. */ + +void +execute_file_commands (file) + struct file *file; +{ + register char *p; + + /* Don't go through all the preparations if + the commands are nothing but whitespace. */ + + for (p = file->cmds->commands; *p != '\0'; ++p) + if (!isspace ((unsigned char)*p) && *p != '-' && *p != '@') + break; + if (*p == '\0') + { + /* If there are no commands, assume everything worked. */ + set_command_state (file, cs_running); + file->update_status = 0; + notice_finished_file (file); + return; + } + + /* First set the automatic variables according to this file. */ + + initialize_file_variables (file, 0); + + set_file_variables (file); + + /* Start the commands running. */ + new_job (file); +} + +/* This is set while we are inside fatal_error_signal, + so things can avoid nonreentrant operations. */ + +int handling_fatal_signal = 0; + +/* Handle fatal signals. */ + +RETSIGTYPE +fatal_error_signal (sig) + int sig; +{ +#ifdef __MSDOS__ + extern int dos_status, dos_command_running; + + if (dos_command_running) + { + /* That was the child who got the signal, not us. */ + dos_status |= (sig << 8); + return; + } + remove_intermediates (1); + exit (EXIT_FAILURE); +#else /* not __MSDOS__ */ +#ifdef _AMIGA + remove_intermediates (1); + if (sig == SIGINT) + fputs (_("*** Break.\n"), stderr); + + exit (10); +#else /* not Amiga */ + handling_fatal_signal = 1; + + /* Set the handling for this signal to the default. + It is blocked now while we run this handler. */ + signal (sig, SIG_DFL); + + /* A termination signal won't be sent to the entire + process group, but it means we want to kill the children. */ + + if (sig == SIGTERM) + { + register struct child *c; + for (c = children; c != 0; c = c->next) + if (!c->remote) + (void) kill (c->pid, SIGTERM); + } + + /* If we got a signal that means the user + wanted to kill make, remove pending targets. */ + + if (sig == SIGTERM || sig == SIGINT +#ifdef SIGHUP + || sig == SIGHUP +#endif +#ifdef SIGQUIT + || sig == SIGQUIT +#endif + ) + { + register struct child *c; + + /* Remote children won't automatically get signals sent + to the process group, so we must send them. */ + for (c = children; c != 0; c = c->next) + if (c->remote) + (void) remote_kill (c->pid, sig); + + for (c = children; c != 0; c = c->next) + delete_child_targets (c); + + /* Clean up the children. We don't just use the call below because + we don't want to print the "Waiting for children" message. */ + while (job_slots_used > 0) + reap_children (1, 0); + } + else + /* Wait for our children to die. */ + while (job_slots_used > 0) + reap_children (1, 1); + + /* Delete any non-precious intermediate files that were made. */ + + remove_intermediates (1); + +#ifdef SIGQUIT + if (sig == SIGQUIT) + /* We don't want to send ourselves SIGQUIT, because it will + cause a core dump. Just exit instead. */ + exit (EXIT_FAILURE); +#endif + + /* Signal the same code; this time it will really be fatal. The signal + will be unblocked when we return and arrive then to kill us. */ + if (kill (getpid (), sig) < 0) + pfatal_with_name ("kill"); +#endif /* not Amiga */ +#endif /* not __MSDOS__ */ +} + +/* Delete FILE unless it's precious or not actually a file (phony), + and it has changed on disk since we last stat'd it. */ + +static void +delete_target (file, on_behalf_of) + struct file *file; + char *on_behalf_of; +{ + struct stat st; + + if (file->precious || file->phony) + return; + +#ifndef NO_ARCHIVES + if (ar_name (file->name)) + { + time_t file_date = (file->last_mtime == NONEXISTENT_MTIME + ? (time_t) -1 + : (time_t) FILE_TIMESTAMP_S (file->last_mtime)); + if (ar_member_date (file->name) != file_date) + { + if (on_behalf_of) + error (NILF, _("*** [%s] Archive member `%s' may be bogus; not deleted"), + on_behalf_of, file->name); + else + error (NILF, _("*** Archive member `%s' may be bogus; not deleted"), + file->name); + } + return; + } +#endif + + if (stat (file->name, &st) == 0 + && S_ISREG (st.st_mode) + && FILE_TIMESTAMP_STAT_MODTIME (file->name, st) != file->last_mtime) + { + if (on_behalf_of) + error (NILF, _("*** [%s] Deleting file `%s'"), on_behalf_of, file->name); + else + error (NILF, _("*** Deleting file `%s'"), file->name); + if (unlink (file->name) < 0 + && errno != ENOENT) /* It disappeared; so what. */ + perror_with_name ("unlink: ", file->name); + } +} + + +/* Delete all non-precious targets of CHILD unless they were already deleted. + Set the flag in CHILD to say they've been deleted. */ + +void +delete_child_targets (child) + struct child *child; +{ + struct dep *d; + + if (child->deleted) + return; + + /* Delete the target file if it changed. */ + delete_target (child->file, (char *) 0); + + /* Also remove any non-precious targets listed in the `also_make' member. */ + for (d = child->file->also_make; d != 0; d = d->next) + delete_target (d->file, child->file->name); + + child->deleted = 1; +} + +/* Print out the commands in CMDS. */ + +void +print_commands (cmds) + register struct commands *cmds; +{ + register char *s; + + fputs (_("# commands to execute"), stdout); + + if (cmds->fileinfo.filenm == 0) + puts (_(" (built-in):")); + else + printf (_(" (from `%s', line %lu):\n"), + cmds->fileinfo.filenm, cmds->fileinfo.lineno); + + s = cmds->commands; + while (*s != '\0') + { + char *end; + + while (isspace ((unsigned char)*s)) + ++s; + + end = strchr (s, '\n'); + if (end == 0) + end = s + strlen (s); + + printf ("\t%.*s\n", (int) (end - s), s); + + s = end; + } +} diff --git a/src/mkutil/make-3.80/commands.h b/src/mkutil/make-3.80/commands.h new file mode 100644 index 00000000..edec9103 --- /dev/null +++ b/src/mkutil/make-3.80/commands.h @@ -0,0 +1,42 @@ +/* Definition of data structures describing shell commands for GNU Make. +Copyright (C) 1988, 1989, 1991, 1993 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Structure that gives the commands to make a file + and information about where these commands came from. */ + +struct commands + { + struct floc fileinfo; /* Where commands were defined. */ + char *commands; /* Commands text. */ + unsigned int ncommand_lines;/* Number of command lines. */ + char **command_lines; /* Commands chopped up into lines. */ + char *lines_flags; /* One set of flag bits for each line. */ + int any_recurse; /* Nonzero if any `lines_recurse' elt has */ + /* the COMMANDS_RECURSE bit set. */ + }; + +/* Bits in `lines_flags'. */ +#define COMMANDS_RECURSE 1 /* Recurses: + or $(MAKE). */ +#define COMMANDS_SILENT 2 /* Silent: @. */ +#define COMMANDS_NOERROR 4 /* No errors: -. */ + +extern void execute_file_commands PARAMS ((struct file *file)); +extern void print_commands PARAMS ((struct commands *cmds)); +extern void delete_child_targets PARAMS ((struct child *child)); +extern void chop_commands PARAMS ((struct commands *cmds)); diff --git a/src/mkutil/make-3.80/config.ami b/src/mkutil/make-3.80/config.ami new file mode 100644 index 00000000..3431794a --- /dev/null +++ b/src/mkutil/make-3.80/config.ami @@ -0,0 +1,317 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +/* #undef _ALL_SOURCE */ +#endif + +/* Define if using alloca.c. */ +#define C_ALLOCA + +/* Define if the closedir function returns void instead of int. */ +/* #undef CLOSEDIR_VOID */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define for DGUX with . */ +/* #undef DGUX */ + +/* Define if the `getloadavg' function needs to be run setuid or setgid. */ +/* #undef GETLOADAVG_PRIVILEGED */ + +/* Define to `unsigned long' or `unsigned long long' + if doesn't define. */ +#define uintmax_t unsigned long + +/* Define to `int' if doesn't define. */ +#define gid_t int + +/* Define if you have alloca, as a function or macro. */ +/* #undef HAVE_ALLOCA */ + +/* Define if you have and it should be used (not on Ultrix). */ +/* #undef HAVE_ALLOCA_H */ + +/* Define if you don't have vprintf but do have _doprnt. */ +/* #undef HAVE_DOPRNT */ + +/* Define if your system has a working fnmatch function. */ +/* #undef HAVE_FNMATCH */ + +/* Define if your system has its own `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the getmntent function. */ +/* #undef HAVE_GETMNTENT */ + +/* Define if the `long double' type works. */ +/* #undef HAVE_LONG_DOUBLE */ + +/* Define if you support file names longer than 14 characters. */ +#define HAVE_LONG_FILE_NAMES 1 + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define if system calls automatically restart after interruption + by a signal. */ +/* #undef HAVE_RESTARTABLE_SYSCALLS */ + +/* Define if your struct stat has st_blksize. */ +/* #undef HAVE_ST_BLKSIZE */ + +/* Define if your struct stat has st_blocks. */ +/* #undef HAVE_ST_BLOCKS */ + +/* Define if you have the strcoll function and it is properly defined. */ +#define HAVE_STRCOLL 1 + +/* Define if your struct stat has st_rdev. */ +#define HAVE_ST_RDEV 1 + +/* Define if you have the strftime function. */ +#define HAVE_STRFTIME 1 + +/* Define if you have that is POSIX.1 compatible. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if your struct tm has tm_zone. */ +/* #undef HAVE_TM_ZONE */ + +/* Define if you don't have tm_zone but do have the external array + tzname. */ +#define HAVE_TZNAME 1 + +/* Define if you have . */ +#define HAVE_UNISTD_H 1 + +/* Define if utime(file, NULL) sets file's timestamp to the present. */ +/* #undef HAVE_UTIME_NULL */ + +/* Define if you have . */ +/* #undef HAVE_VFORK_H */ + +/* Define if you have the vprintf function. */ +#define HAVE_VPRINTF 1 + +/* Define if you have the wait3 system call. */ +/* #undef HAVE_WAIT3 */ + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define if your struct nlist has an n_un member. */ +/* #undef NLIST_NAME_UNION */ + +/* Define if you have . */ +/* #undef NLIST_STRUCT */ + +/* Define if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Define to `int' if doesn't define. */ +#define pid_t int + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +#define STACK_DIRECTION -1 + +/* Define if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS + +/* Define on System V Release 4. */ +/* #undef SVR4 */ + +/* Define if `sys_siglist' is declared by . */ +/* #undef SYS_SIGLIST_DECLARED */ + +/* Define to `int' if doesn't define. */ +#define uid_t int + +/* Define for Encore UMAX. */ +/* #undef UMAX */ + +/* Define for Encore UMAX 4.3 that has + instead of . */ +/* #undef UMAX4_3 */ + +/* Define vfork as fork if vfork does not work. */ +/* #undef vfork */ + +/* Name of this package (needed by automake) */ +#define PACKAGE "make" + +/* Version of this package (needed by automake) */ +#define VERSION "3.80" + +/* Define to the name of the SCCS `get' command. */ +#define SCCS_GET "get" + +/* Define this if the SCCS `get' command understands the `-G' option. */ +/* #undef SCCS_GET_MINUS_G */ + +/* Define this to enable job server support in GNU make. */ +/* #undef MAKE_JOBSERVER */ + +/* Define to be the nanoseconds member of struct stat's st_mtim, + if it exists. */ +/* #undef ST_MTIM_NSEC */ + +/* Define this if the C library defines the variable `sys_siglist'. */ +/* #undef HAVE_SYS_SIGLIST */ + +/* Define this if the C library defines the variable `_sys_siglist'. */ +/* #undef HAVE__SYS_SIGLIST */ + +/* Define this if you have the `union wait' type in . */ +/* #undef HAVE_UNION_WAIT */ + +/* Define if you have the dup2 function. */ +/* #undef HAVE_DUP2 */ + +/* Define if you have the getcwd function. */ +#define HAVE_GETCWD 1 + +/* Define if you have the getgroups function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the gethostbyname function. */ +/* #undef HAVE_GETHOSTBYNAME */ + +/* Define if you have the gethostname function. */ +/* #undef HAVE_GETHOSTNAME */ + +/* Define if you have the memmove function. */ +#define HAVE_MEMMOVE 1 + +/* Define if you have the mktemp function. */ +#define HAVE_MKTEMP 1 + +/* Define if you have the psignal function. */ +/* #undef HAVE_PSIGNAL */ + +/* Define if you have the pstat_getdynamic function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define if you have the setegid function. */ +/* #undef HAVE_SETEGID */ + +/* Define if you have the seteuid function. */ +/* #undef HAVE_SETEUID */ + +/* Define if you have the setlinebuf function. */ +/* #undef HAVE_SETLINEBUF */ + +/* Define if you have the setregid function. */ +/* #undef HAVE_SETREGID */ + +/* Define if you have the setreuid function. */ +/* #undef HAVE_SETREUID */ + +/* Define if you have the sigsetmask function. */ +/* #undef HAVE_SIGSETMASK */ + +/* Define if you have the socket function. */ +/* #undef HAVE_SOCKET */ + +/* Define if you have the strcasecmp function. */ +/* #undef HAVE_STRCASECMP */ + +/* Define if you have the strerror function. */ +#define HAVE_STRERROR 1 + +/* Define if you have the strsignal function. */ +/* #undef HAVE_STRSIGNAL */ + +/* Define if you have the wait3 function. */ +/* #undef HAVE_WAIT3 */ + +/* Define if you have the waitpid function. */ +/* #undef HAVE_WAITPID */ + +/* Define if you have the header file. */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_MEMORY_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_NDIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_STDLIB_H */ + +/* Define if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +#define HAVE_SYS_DIR_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_TIMEB_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if you have the dgc library (-ldgc). */ +/* #undef HAVE_LIBDGC */ + +/* Define if you have the kstat library (-lkstat). */ +/* #undef HAVE_LIBKSTAT */ + +/* Define if you have the sun library (-lsun). */ +/* #undef HAVE_LIBSUN */ + +/* Define for Case Insensitve behavior */ +#define HAVE_CASE_INSENSITIVE_FS + +/* Build host information. */ +#define MAKE_HOST "Amiga" diff --git a/src/mkutil/make-3.80/config.h b/src/mkutil/make-3.80/config.h new file mode 100644 index 00000000..1ba9b87e --- /dev/null +++ b/src/mkutil/make-3.80/config.h @@ -0,0 +1,399 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +/* #undef _ALL_SOURCE */ +#endif + +/* Define if using alloca.c. */ +/* #undef C_ALLOCA */ + +/* Define if the closedir function returns void instead of int. */ +/* #undef CLOSEDIR_VOID */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define for DGUX with . */ +/* #undef DGUX */ + +/* Define if the `getloadavg' function needs to be run setuid or setgid. */ +/* #undef GETLOADAVG_PRIVILEGED */ + +/* Define to `unsigned long' or `unsigned long long' + if doesn't define. */ +#define uintmax_t unsigned long + +/* Define to `int' if doesn't define. */ +#undef gid_t +#define gid_t int + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA +#define HAVE_ALLOCA 1 + +/* Define if you have and it should be used (not on Ultrix). */ +/* #undef HAVE_ALLOCA_H */ + +/* Define if you don't have vprintf but do have _doprnt. */ +/* #undef HAVE_DOPRNT */ + +/* Define if your system has a working fnmatch function. */ +/* #undef HAVE_FNMATCH */ + +/* Define if your system has its own `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the getmntent function. */ +/* #undef HAVE_GETMNTENT */ + +/* Define if the `long double' type works. */ +/* #undef HAVE_LONG_DOUBLE */ + +/* Define if you support file names longer than 14 characters. */ +#undef HAVE_LONG_FILE_NAMES +#define HAVE_LONG_FILE_NAMES 1 + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define if system calls automatically restart after interruption + by a signal. */ +/* #undef HAVE_RESTARTABLE_SYSCALLS */ + +/* Define if your struct stat has st_blksize. */ +/* #undef HAVE_ST_BLKSIZE */ + +/* Define if your struct stat has st_blocks. */ +/* #undef HAVE_ST_BLOCKS */ + +/* Define if you have the strcoll function and it is properly defined. */ +#undef HAVE_STRCOLL +#define HAVE_STRCOLL 1 + +/* Define if your struct stat has st_rdev. */ +#undef HAVE_ST_RDEV +#define HAVE_ST_RDEV 1 + +/* Define if you have the strftime function. */ +#undef HAVE_STRFTIME +#define HAVE_STRFTIME 1 + +/* Define if you have that is POSIX.1 compatible. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if your struct tm has tm_zone. */ +/* #undef HAVE_TM_ZONE */ + +/* Define if you don't have tm_zone but do have the external array + tzname. */ +#undef HAVE_TZNAME +#define HAVE_TZNAME 1 + +/* Define if you have . */ +/* #undef HAVE_UNISTD_H */ + +/* Define if utime(file, NULL) sets file's timestamp to the present. */ +#undef HAVE_UTIME_NULL +#define HAVE_UTIME_NULL 1 + +/* Define if you have . */ +/* #undef HAVE_VFORK_H */ + +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF +#define HAVE_VPRINTF 1 + +/* Define if you have the wait3 system call. */ +/* #undef HAVE_WAIT3 */ + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define if your struct nlist has an n_un member. */ +/* #undef NLIST_NAME_UNION */ + +/* Define if you have . */ +/* #undef NLIST_STRUCT */ + +/* Define if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Define to `int' if doesn't define. */ +#undef pid_t +#define pid_t int + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE +#define _POSIX_SOURCE 1 + +/* Define as the return type of signal handlers (int or void). */ +#undef RETSIGTYPE +#define RETSIGTYPE void + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS +#define STDC_HEADERS 1 + +/* Define on System V Release 4. */ +/* #undef SVR4 */ + +/* Define if `sys_siglist' is declared by . */ +/* #undef SYS_SIGLIST_DECLARED */ + +/* Define to `int' if doesn't define. */ +#undef uid_t +#define uid_t int + +/* Define for Encore UMAX. */ +/* #undef UMAX */ + +/* Define for Encore UMAX 4.3 that has + instead of . */ +/* #undef UMAX4_3 */ + +/* Define vfork as fork if vfork does not work. */ +/* #undef vfork */ + +/* Name of this package (needed by automake) */ +#define PACKAGE "make" + +/* Version of this package (needed by automake) */ +#define VERSION "3.80" + +/* Define to the name of the SCCS `get' command. */ +#undef SCCS_GET +#define SCCS_GET "echo no sccs get" + +/* Define to 1 if NLS is requested. */ +/* #undef ENABLE_NLS */ + +/* Define as 1 if you have dcgettext. */ +/* #undef HAVE_DCGETTEXT */ + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +/* #undef HAVE_GETTEXT */ + +/* Define if your locale.h file contains LC_MESSAGES. */ +/* #undef HAVE_LC_MESSAGES */ + +/* Define to the installation directory for locales. */ +#define LOCALEDIR "" + +/* Define this if the SCCS `get' command understands the `-G' option. */ +/* #undef SCCS_GET_MINUS_G */ + +/* Define this to enable job server support in GNU make. */ +/* #undef MAKE_JOBSERVER */ + +/* Define to be the nanoseconds member of struct stat's st_mtim, + if it exists. */ +/* #undef ST_MTIM_NSEC */ + +/* Define this if the C library defines the variable `sys_siglist'. */ +/* #undef HAVE_SYS_SIGLIST */ + +/* Define this if the C library defines the variable `_sys_siglist'. */ +/* #undef HAVE__SYS_SIGLIST */ + +/* Define this if you have the `union wait' type in . */ +/* #undef HAVE_UNION_WAIT */ + +/* Define if you have the dup2 function. */ +#undef HAVE_DUP2 +#define HAVE_DUP2 1 + +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD +#define HAVE_GETCWD 1 + +/* Define if you have the getgroups function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the gethostbyname function. */ +/* #undef HAVE_GETHOSTBYNAME */ + +/* Define if you have the gethostname function. */ +/* #undef HAVE_GETHOSTNAME */ + +/* Define if you have the getloadavg function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the memmove function. */ +#undef HAVE_MEMMOVE +#define HAVE_MEMMOVE 1 + +/* Define if you have the mktemp function. */ +#undef HAVE_MKTEMP +#define HAVE_MKTEMP 1 + +/* Define if you have the psignal function. */ +/* #undef HAVE_PSIGNAL */ + +/* Define if you have the pstat_getdynamic function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define if you have the setegid function. */ +/* #undef HAVE_SETEGID */ + +/* Define if you have the seteuid function. */ +/* #undef HAVE_SETEUID */ + +/* Define if you have the setlinebuf function. */ +/* #undef HAVE_SETLINEBUF */ + +/* Define if you have the setregid function. */ +/* #undef HAVE_SETREGID */ + +/* Define if you have the setreuid function. */ +/* #undef HAVE_SETREUID */ + +/* Define if you have the sigsetmask function. */ +/* #undef HAVE_SIGSETMASK */ + +/* Define if you have the socket function. */ +/* #undef HAVE_SOCKET */ + +/* Define if you have the strcasecmp function. */ +/* #undef HAVE_STRCASECMP */ + +/* Define if you have the strerror function. */ +#undef HAVE_STRERROR +#define HAVE_STRERROR 1 + +/* Define if you have the strsignal function. */ +/* #undef HAVE_STRSIGNAL */ + +/* Define if you have the wait3 function. */ +/* #undef HAVE_WAIT3 */ + +/* Define if you have the waitpid function. */ +/* #undef HAVE_WAITPID */ + +/* Define if you have the header file. */ +#undef HAVE_DIRENT_H +#define HAVE_DIRENT_H 1 + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H +#define HAVE_FCNTL_H 1 + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define if you have the header file. */ +#undef HAVE_MEMORY_H +#define HAVE_MEMORY_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_NDIR_H */ + +/* Define if you have the header file. */ +#undef HAVE_STRING_H +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIMEB_H +#define HAVE_SYS_TIMEB_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_UNISTD_H */ + +/* Define if you have the dgc library (-ldgc). */ +/* #undef HAVE_LIBDGC */ + +/* Define if you have the kstat library (-lkstat). */ +/* #undef HAVE_LIBKSTAT */ + +/* Define if you have the sun library (-lsun). */ +/* #undef HAVE_LIBSUN */ + +/* Use high resolution file timestamps if nonzero. */ +#define FILE_TIMESTAMP_HI_RES 0 + +/* Build host information. */ +#define MAKE_HOST "Windows32" + +/* Grok DOS paths (drive specs and backslash path element separators) */ +#define HAVE_DOS_PATHS + +/* + * Refer to README.W32 for info on the following settings + */ + +/* + * If you have a shell that does not grok 'sh -c quoted-command-line' + * correctly, you need this setting. Please see below for specific + * shell support. + */ +#undef BATCH_MODE_ONLY_SHELL +#define BATCH_MODE_ONLY_SHELL 1 + +/* + * Define if you have the Cygnus "Cygwin" GNU Windows32 tool set. + * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL + */ +#undef HAVE_CYGWIN_SHELL + +/* + * Define if you have the MKS tool set or shell. Do NOT define + * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL + */ +#undef HAVE_MKS_SHELL + +/* + * Enforce the mutual exclusivity restriction. + */ +#ifdef HAVE_MKS_SHELL +#undef BATCH_MODE_ONLY_SHELL +#endif + +#ifdef HAVE_CYGWIN_SHELL +#undef BATCH_MODE_ONLY_SHELL +#endif + +/* Define if you prefer Case Insensitive behavior */ +#undef HAVE_CASE_INSENSITIVE_FS diff --git a/src/mkutil/make-3.80/config.h-vms b/src/mkutil/make-3.80/config.h-vms new file mode 100644 index 00000000..19f80765 --- /dev/null +++ b/src/mkutil/make-3.80/config.h-vms @@ -0,0 +1,403 @@ +/* config.h-vms. Generated by hand by Klaus Kämpf */ +/* config.h. Generated automatically by configure. */ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +/* #undef _ALL_SOURCE */ +#endif + +/* Define to 1 if NLS is requested. */ +/* #undef ENABLE_NLS */ + +/* Define as 1 if you have dcgettext. */ +/* #undef HAVE_DCGETTEXT */ + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +/* #undef HAVE_GETTEXT */ + +/* Define if your locale.h file contains LC_MESSAGES. */ +/* #undef HAVE_LC_MESSAGES */ + +/* Define to the installation directory for locales. */ +#define LOCALEDIR "" + +/* Define as 1 if you have the stpcpy function. */ +/* #undef HAVE_STPCPY */ + +/* Define if the closedir function returns void instead of int. */ +/* #undef CLOSEDIR_VOID */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define for DGUX with . */ +/* #undef DGUX */ + +/* Define if the `getloadavg' function needs to be run setuid or setgid. */ +/* #undef GETLOADAVG_PRIVILEGED */ + +/* Define to `unsigned long' or `unsigned long long' + if doesn't define. */ +#define uintmax_t unsigned long + +/* Define to `int' if doesn't define. */ +/* #undef gid_t */ + +/* Define if you have alloca, as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define if you have and it should be used (not on Ultrix). */ +/* #undef HAVE_ALLOCA_H */ + +/* Define if you don't have vprintf but do have _doprnt. */ +/* #undef HAVE_DOPRNT */ + +/* Define if your system has a working fnmatch function. */ +/* #undef HAVE_FNMATCH */ + +/* Define if your system has its own `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the getmntent function. */ +/* #undef HAVE_GETMNTENT */ + +/* Define if the `long double' type works. */ +/* #undef HAVE_LONG_DOUBLE */ + +/* Define if you support file names longer than 14 characters. */ +#define HAVE_LONG_FILE_NAMES 1 + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define if system calls automatically restart after interruption + by a signal. */ +/* #undef HAVE_RESTARTABLE_SYSCALLS */ + +/* Define if your struct stat has st_blksize. */ +/* #undef HAVE_ST_BLKSIZE */ + +/* Define if your struct stat has st_blocks. */ +/* #undef HAVE_ST_BLOCKS */ + +/* Define if you have the strcoll function and it is properly defined. */ +/* #undef HAVE_STRCOLL */ + +/* Define if your struct stat has st_rdev. */ +/* #undef HAVE_ST_RDEV */ + +/* Define if you have the strftime function. */ +/* #undef HAVE_STRFTIME */ + +/* Define if you have that is POSIX.1 compatible. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if your struct tm has tm_zone. */ +/* #undef HAVE_TM_ZONE */ + +/* Define if you don't have tm_zone but do have the external array + tzname. */ +/* #undef HAVE_TZNAME */ + +/* Define if you have . */ +#ifdef __DECC +#define HAVE_UNISTD_H 1 +#endif + +/* Define if utime(file, NULL) sets file's timestamp to the present. */ +/* #undef HAVE_UTIME_NULL */ + +/* Define if you have . */ +/* #undef HAVE_VFORK_H */ + +/* Define if you have the vprintf function. */ +#define HAVE_VPRINTF 1 + +/* Define if you have the wait3 system call. */ +/* #undef HAVE_WAIT3 */ + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define if your struct nlist has an n_un member. */ +/* #undef NLIST_NAME_UNION */ + +/* Define if you have . */ +/* #undef NLIST_STRUCT */ + +/* Define if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Define to `int' if doesn't define. */ +/* I assume types.h is available for all 5.0 cc/cxx compilers */ +#if __DECC_VER < 50090000 +#define pid_t int +#endif + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define as the return type of signal handlers (int or void). */ +#define RETSIGTYPE void + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define if you have the ANSI C header files. */ +/* #undef STDC_HEADERS */ + +/* Define on System V Release 4. */ +/* #undef SVR4 */ + +/* Define if `sys_siglist' is declared by . */ +/* #undef SYS_SIGLIST_DECLARED */ + +/* Define to `int' if doesn't define. */ +#if __DECC_VER < 50090000 +#define uid_t int +#endif + +/* Define for Encore UMAX. */ +/* #undef UMAX */ + +/* Define for Encore UMAX 4.3 that has + instead of . */ +/* #undef UMAX4_3 */ + +/* Define vfork as fork if vfork does not work. */ +/* #undef vfork */ + +/* Name of this package (needed by automake) */ +#define PACKAGE "make" + +/* Version of this package (needed by automake) */ +#define VERSION "3.80" + +/* Define to the name of the SCCS `get' command. */ +/* #undef SCCS_GET */ + +/* Define this if the SCCS `get' command understands the `-G' option. */ +/* #undef SCCS_GET_MINUS_G */ + +/* Define this to enable job server support in GNU make. */ +/* #undef MAKE_JOBSERVER */ + +/* Define to be the nanoseconds member of struct stat's st_mtim, + if it exists. */ +/* #undef ST_MTIM_NSEC */ + +/* Define this if the C library defines the variable `sys_siglist'. */ +/* #undefine HAVE_SYS_SIGLIST */ + +/* Define this if the C library defines the variable `_sys_siglist'. */ +/* #undef HAVE__SYS_SIGLIST */ + +/* Define this if you have the `union wait' type in . */ +/* #undef HAVE_UNION_WAIT */ + +/* Define if you have the dup2 function. */ +#define HAVE_DUP2 1 + +/* Define if you have the getcwd function. */ +#define HAVE_GETCWD 1 + +/* Define if you have the getgroups function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the gethostbyname function. */ +/* #undef HAVE_GETHOSTBYNAME */ + +/* Define if you have the gethostname function. */ +/* #undef HAVE_GETHOSTNAME */ + +/* Define if you have the getloadavg function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the memmove function. */ +#define HAVE_MEMMOVE 1 + +/* Define if you have the mktemp function. */ +#define HAVE_MKTEMP 1 + +/* Define if you have the psignal function. */ +/* #undef HAVE_PSIGNAL */ + +/* Define if you have the pstat_getdynamic function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define if you have the setegid function. */ +/* #undef HAVE_SETEGID */ + +/* Define if you have the seteuid function. */ +/* #undef HAVE_SETEUID */ + +/* Define if you have the setlinebuf function. */ +/* #undef HAVE_SETLINEBUF */ + +/* Define if you have the setregid function. */ +/* #undefine HAVE_SETREGID */ + +/* Define if you have the setreuid function. */ +/* #define HAVE_SETREUID */ + +/* Define if you have the sigsetmask function. */ +#define HAVE_SIGSETMASK 1 + +/* Define if you have the socket function. */ +/* #undef HAVE_SOCKET */ + +/* Define if you have the strcasecmp function. */ +/* #undef HAVE_STRCASECMP */ + +/* Define if you have the strerror function. */ +#define HAVE_STRERROR 1 + +/* Define if you have the strsignal function. */ +/* #undef HAVE_STRSIGNAL */ + +/* Define if you have the wait3 function. */ +/* #undef HAVE_WAIT3 */ + +/* Define if you have the waitpid function. */ +/* #undef HAVE_WAITPID */ + +/* Define if you have the header file. */ +#define HAVE_DIRENT_H 1 + +/* Define if you have the header file. */ +#ifdef __DECC +#define HAVE_FCNTL_H 1 +#endif + +/* Define if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_MEMORY_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_NDIR_H */ + +/* Define if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the header file. */ +#ifndef __GNUC__ +#define HAVE_SYS_TIMEB_H 1 +#endif + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if you have the dgc library (-ldgc). */ +/* #undef HAVE_LIBDGC */ + +/* Define if you have the kstat library (-lkstat). */ +/* #undef HAVE_LIBKSTAT * + +/* Define if you have the sun library (-lsun). */ +/* #undef HAVE_LIBSUN */ + +/* Use high resolution file timestamps if nonzero. */ +#define FILE_TIMESTAMP_HI_RES 0 + +/* Define for case insensitve filenames */ +#define HAVE_CASE_INSENSITIVE_FS 1 + +/* VMS specific, define it if you want to use case sensitve targets */ +/* #undef WANT_CASE_SENSITIVE_TARGETS */ + +/* VMS specific, V7.0 has opendir() and friends, so it's undefined */ +/* If you want to use non-VMS code for opendir() etc. on V7.0 and greater + define the first or both macros AND change the compile command to get the + non-VMS versions linked: (prefix=(all,except=(opendir,... */ +/* #undef HAVE_VMSDIR_H */ +/* #undef _DIRENT_HAVE_D_NAMLEN */ + +/* On older systems without 7.0 backport of CRTL the first one is defined */ +#ifdef __CRTL_VER +# if __CRTL_VER < 70000000 +# define HAVE_VMSDIR_H 1 +# endif +#else +# if __VMS_VER < 70000000 +# define HAVE_VMSDIR_H 1 +# endif +#endif + +#if defined(HAVE_VMSDIR_H) && defined(HAVE_DIRENT_H) +#undef HAVE_DIRENT_H +#endif + +#define HAVE_STDLIB_H 1 +#define INCLUDEDIR "sys$sysroot:[syslib]" +#define LIBDIR "sys$sysroot:[syslib]" + +/* Don't use RTL functions of OpenVMS */ +#ifdef __DECC +#include +#include +#define getopt gnu_getopt +#define optarg gnu_optarg +#define optopt gnu_optopt +#define optind gnu_optind +#define opterr gnu_opterr +#endif + +#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +#undef PARAMS +#define PARAMS(protos) protos +#else /* Not C++ or ANSI C. */ +#undef PARAMS +#define PARAMS(protos) () +#endif /* C++ or ANSI C. */ + +/* Define if using alloca.c. */ +/* #undef C_ALLOCA */ +/* maybe this should be placed into make.h */ +#if defined(__VAX) && defined(__DECC) +#define alloca(n) __ALLOCA(n) +#endif + +/* Build host information. */ +#define MAKE_HOST "VMS" diff --git a/src/mkutil/make-3.80/config.h.W32 b/src/mkutil/make-3.80/config.h.W32 new file mode 100644 index 00000000..1ba9b87e --- /dev/null +++ b/src/mkutil/make-3.80/config.h.W32 @@ -0,0 +1,399 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +/* #undef _ALL_SOURCE */ +#endif + +/* Define if using alloca.c. */ +/* #undef C_ALLOCA */ + +/* Define if the closedir function returns void instead of int. */ +/* #undef CLOSEDIR_VOID */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. + This function is required for alloca.c support on those systems. */ +/* #undef CRAY_STACKSEG_END */ + +/* Define for DGUX with . */ +/* #undef DGUX */ + +/* Define if the `getloadavg' function needs to be run setuid or setgid. */ +/* #undef GETLOADAVG_PRIVILEGED */ + +/* Define to `unsigned long' or `unsigned long long' + if doesn't define. */ +#define uintmax_t unsigned long + +/* Define to `int' if doesn't define. */ +#undef gid_t +#define gid_t int + +/* Define if you have alloca, as a function or macro. */ +#undef HAVE_ALLOCA +#define HAVE_ALLOCA 1 + +/* Define if you have and it should be used (not on Ultrix). */ +/* #undef HAVE_ALLOCA_H */ + +/* Define if you don't have vprintf but do have _doprnt. */ +/* #undef HAVE_DOPRNT */ + +/* Define if your system has a working fnmatch function. */ +/* #undef HAVE_FNMATCH */ + +/* Define if your system has its own `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the getmntent function. */ +/* #undef HAVE_GETMNTENT */ + +/* Define if the `long double' type works. */ +/* #undef HAVE_LONG_DOUBLE */ + +/* Define if you support file names longer than 14 characters. */ +#undef HAVE_LONG_FILE_NAMES +#define HAVE_LONG_FILE_NAMES 1 + +/* Define if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define if system calls automatically restart after interruption + by a signal. */ +/* #undef HAVE_RESTARTABLE_SYSCALLS */ + +/* Define if your struct stat has st_blksize. */ +/* #undef HAVE_ST_BLKSIZE */ + +/* Define if your struct stat has st_blocks. */ +/* #undef HAVE_ST_BLOCKS */ + +/* Define if you have the strcoll function and it is properly defined. */ +#undef HAVE_STRCOLL +#define HAVE_STRCOLL 1 + +/* Define if your struct stat has st_rdev. */ +#undef HAVE_ST_RDEV +#define HAVE_ST_RDEV 1 + +/* Define if you have the strftime function. */ +#undef HAVE_STRFTIME +#define HAVE_STRFTIME 1 + +/* Define if you have that is POSIX.1 compatible. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if your struct tm has tm_zone. */ +/* #undef HAVE_TM_ZONE */ + +/* Define if you don't have tm_zone but do have the external array + tzname. */ +#undef HAVE_TZNAME +#define HAVE_TZNAME 1 + +/* Define if you have . */ +/* #undef HAVE_UNISTD_H */ + +/* Define if utime(file, NULL) sets file's timestamp to the present. */ +#undef HAVE_UTIME_NULL +#define HAVE_UTIME_NULL 1 + +/* Define if you have . */ +/* #undef HAVE_VFORK_H */ + +/* Define if you have the vprintf function. */ +#undef HAVE_VPRINTF +#define HAVE_VPRINTF 1 + +/* Define if you have the wait3 system call. */ +/* #undef HAVE_WAIT3 */ + +/* Define if on MINIX. */ +/* #undef _MINIX */ + +/* Define if your struct nlist has an n_un member. */ +/* #undef NLIST_NAME_UNION */ + +/* Define if you have . */ +/* #undef NLIST_STRUCT */ + +/* Define if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Define to `int' if doesn't define. */ +#undef pid_t +#define pid_t int + +/* Define if the system does not provide POSIX.1 features except + with this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE +#define _POSIX_SOURCE 1 + +/* Define as the return type of signal handlers (int or void). */ +#undef RETSIGTYPE +#define RETSIGTYPE void + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown + */ +/* #undef STACK_DIRECTION */ + +/* Define if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS +#define STDC_HEADERS 1 + +/* Define on System V Release 4. */ +/* #undef SVR4 */ + +/* Define if `sys_siglist' is declared by . */ +/* #undef SYS_SIGLIST_DECLARED */ + +/* Define to `int' if doesn't define. */ +#undef uid_t +#define uid_t int + +/* Define for Encore UMAX. */ +/* #undef UMAX */ + +/* Define for Encore UMAX 4.3 that has + instead of . */ +/* #undef UMAX4_3 */ + +/* Define vfork as fork if vfork does not work. */ +/* #undef vfork */ + +/* Name of this package (needed by automake) */ +#define PACKAGE "make" + +/* Version of this package (needed by automake) */ +#define VERSION "3.80" + +/* Define to the name of the SCCS `get' command. */ +#undef SCCS_GET +#define SCCS_GET "echo no sccs get" + +/* Define to 1 if NLS is requested. */ +/* #undef ENABLE_NLS */ + +/* Define as 1 if you have dcgettext. */ +/* #undef HAVE_DCGETTEXT */ + +/* Define as 1 if you have gettext and don't want to use GNU gettext. */ +/* #undef HAVE_GETTEXT */ + +/* Define if your locale.h file contains LC_MESSAGES. */ +/* #undef HAVE_LC_MESSAGES */ + +/* Define to the installation directory for locales. */ +#define LOCALEDIR "" + +/* Define this if the SCCS `get' command understands the `-G' option. */ +/* #undef SCCS_GET_MINUS_G */ + +/* Define this to enable job server support in GNU make. */ +/* #undef MAKE_JOBSERVER */ + +/* Define to be the nanoseconds member of struct stat's st_mtim, + if it exists. */ +/* #undef ST_MTIM_NSEC */ + +/* Define this if the C library defines the variable `sys_siglist'. */ +/* #undef HAVE_SYS_SIGLIST */ + +/* Define this if the C library defines the variable `_sys_siglist'. */ +/* #undef HAVE__SYS_SIGLIST */ + +/* Define this if you have the `union wait' type in . */ +/* #undef HAVE_UNION_WAIT */ + +/* Define if you have the dup2 function. */ +#undef HAVE_DUP2 +#define HAVE_DUP2 1 + +/* Define if you have the getcwd function. */ +#undef HAVE_GETCWD +#define HAVE_GETCWD 1 + +/* Define if you have the getgroups function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define if you have the gethostbyname function. */ +/* #undef HAVE_GETHOSTBYNAME */ + +/* Define if you have the gethostname function. */ +/* #undef HAVE_GETHOSTNAME */ + +/* Define if you have the getloadavg function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define if you have the memmove function. */ +#undef HAVE_MEMMOVE +#define HAVE_MEMMOVE 1 + +/* Define if you have the mktemp function. */ +#undef HAVE_MKTEMP +#define HAVE_MKTEMP 1 + +/* Define if you have the psignal function. */ +/* #undef HAVE_PSIGNAL */ + +/* Define if you have the pstat_getdynamic function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define if you have the setegid function. */ +/* #undef HAVE_SETEGID */ + +/* Define if you have the seteuid function. */ +/* #undef HAVE_SETEUID */ + +/* Define if you have the setlinebuf function. */ +/* #undef HAVE_SETLINEBUF */ + +/* Define if you have the setregid function. */ +/* #undef HAVE_SETREGID */ + +/* Define if you have the setreuid function. */ +/* #undef HAVE_SETREUID */ + +/* Define if you have the sigsetmask function. */ +/* #undef HAVE_SIGSETMASK */ + +/* Define if you have the socket function. */ +/* #undef HAVE_SOCKET */ + +/* Define if you have the strcasecmp function. */ +/* #undef HAVE_STRCASECMP */ + +/* Define if you have the strerror function. */ +#undef HAVE_STRERROR +#define HAVE_STRERROR 1 + +/* Define if you have the strsignal function. */ +/* #undef HAVE_STRSIGNAL */ + +/* Define if you have the wait3 function. */ +/* #undef HAVE_WAIT3 */ + +/* Define if you have the waitpid function. */ +/* #undef HAVE_WAITPID */ + +/* Define if you have the header file. */ +#undef HAVE_DIRENT_H +#define HAVE_DIRENT_H 1 + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H +#define HAVE_FCNTL_H 1 + +/* Define if you have the header file. */ +#undef HAVE_LIMITS_H +#define HAVE_LIMITS_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define if you have the header file. */ +#undef HAVE_MEMORY_H +#define HAVE_MEMORY_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_NDIR_H */ + +/* Define if you have the header file. */ +#undef HAVE_STRING_H +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIMEB_H +#define HAVE_SYS_TIMEB_H 1 + +/* Define if you have the header file. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define if you have the header file. */ +/* #undef HAVE_UNISTD_H */ + +/* Define if you have the dgc library (-ldgc). */ +/* #undef HAVE_LIBDGC */ + +/* Define if you have the kstat library (-lkstat). */ +/* #undef HAVE_LIBKSTAT */ + +/* Define if you have the sun library (-lsun). */ +/* #undef HAVE_LIBSUN */ + +/* Use high resolution file timestamps if nonzero. */ +#define FILE_TIMESTAMP_HI_RES 0 + +/* Build host information. */ +#define MAKE_HOST "Windows32" + +/* Grok DOS paths (drive specs and backslash path element separators) */ +#define HAVE_DOS_PATHS + +/* + * Refer to README.W32 for info on the following settings + */ + +/* + * If you have a shell that does not grok 'sh -c quoted-command-line' + * correctly, you need this setting. Please see below for specific + * shell support. + */ +#undef BATCH_MODE_ONLY_SHELL +#define BATCH_MODE_ONLY_SHELL 1 + +/* + * Define if you have the Cygnus "Cygwin" GNU Windows32 tool set. + * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL + */ +#undef HAVE_CYGWIN_SHELL + +/* + * Define if you have the MKS tool set or shell. Do NOT define + * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL + */ +#undef HAVE_MKS_SHELL + +/* + * Enforce the mutual exclusivity restriction. + */ +#ifdef HAVE_MKS_SHELL +#undef BATCH_MODE_ONLY_SHELL +#endif + +#ifdef HAVE_CYGWIN_SHELL +#undef BATCH_MODE_ONLY_SHELL +#endif + +/* Define if you prefer Case Insensitive behavior */ +#undef HAVE_CASE_INSENSITIVE_FS diff --git a/src/mkutil/make-3.80/config.h.in b/src/mkutil/make-3.80/config.h.in new file mode 100644 index 00000000..d33b8d32 --- /dev/null +++ b/src/mkutil/make-3.80/config.h.in @@ -0,0 +1,391 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if the `closedir' function returns void instead of `int'. */ +#undef CLOSEDIR_VOID + +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +#undef CRAY_STACKSEG_END + +/* Define to 1 if using `alloca.c'. */ +#undef C_ALLOCA + +/* Define to 1 if using `getloadavg.c'. */ +#undef C_GETLOADAVG + +/* Define to 1 for DGUX with . */ +#undef DGUX + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Use high resolution file timestamps if nonzero. */ +#undef FILE_TIMESTAMP_HI_RES + +/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid. + */ +#undef GETLOADAVG_PRIVILEGED + +/* Define to 1 if you have `alloca', as a function or macro. */ +#undef HAVE_ALLOCA + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#undef HAVE_ALLOCA_H + +/* This system has SA_RESTART, but it doesn't work properly. */ +#undef HAVE_BROKEN_RESTART + +/* Define to 1 if you have the `bsd_signal' function. */ +#undef HAVE_BSD_SIGNAL + +/* Define if you have the clock_gettime function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +#undef HAVE_DOPRNT + +/* Define to 1 if you have the `dup2' function. */ +#undef HAVE_DUP2 + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `fdopen' function. */ +#undef HAVE_FDOPEN + +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + +/* Define to 1 if you have the `getcwd' function. */ +#undef HAVE_GETCWD + +/* Define to 1 if you have the `getgroups' function. */ +#undef HAVE_GETGROUPS + +/* Define to 1 if you have the `gethostbyname' function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define to 1 if you have the `gethostname' function. */ +#undef HAVE_GETHOSTNAME + +/* Define to 1 if you have the `getloadavg' function. */ +#undef HAVE_GETLOADAVG + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have a standard gettimeofday function */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the iconv() function. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the `dgc' library (-ldgc). */ +#undef HAVE_LIBDGC + +/* Define to 1 if you have the `kstat' library (-lkstat). */ +#undef HAVE_LIBKSTAT + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MACH_MACH_H + +/* Define to 1 if you have the `memcpy' function. */ +#undef HAVE_MEMCPY + +/* Define to 1 if you have the `memmove' function. */ +#undef HAVE_MEMMOVE + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `mkstemp' function. */ +#undef HAVE_MKSTEMP + +/* Define to 1 if you have the `mktemp' function. */ +#undef HAVE_MKTEMP + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +#undef HAVE_NDIR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NLIST_H + +/* Define to 1 if you have the `pipe' function. */ +#undef HAVE_PIPE + +/* Define to 1 if you have the `pstat_getdynamic' function. */ +#undef HAVE_PSTAT_GETDYNAMIC + +/* Define if defines the SA_RESTART constant. */ +#undef HAVE_SA_RESTART + +/* Define to 1 if you have the `setegid' function. */ +#undef HAVE_SETEGID + +/* Define to 1 if you have the `seteuid' function. */ +#undef HAVE_SETEUID + +/* Define to 1 if you have the `setlinebuf' function. */ +#undef HAVE_SETLINEBUF + +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + +/* Define to 1 if you have the `setregid' function. */ +#undef HAVE_SETREGID + +/* Define to 1 if you have the `setreuid' function. */ +#undef HAVE_SETREUID + +/* Define to 1 if you have the `setvbuf' function. */ +#undef HAVE_SETVBUF + +/* Define to 1 if you have the `sigaction' function. */ +#undef HAVE_SIGACTION + +/* Define to 1 if you have the `sigsetmask' function. */ +#undef HAVE_SIGSETMASK + +/* Define to 1 if you have the `socket' function. */ +#undef HAVE_SOCKET + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strcasecmp' function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + +/* Define to 1 if you have the `strcoll' function and it is properly defined. + */ +#undef HAVE_STRCOLL + +/* Define to 1 if you have the `strdup' function. */ +#undef HAVE_STRDUP + +/* Define to 1 if you have the `strerror' function. */ +#undef HAVE_STRERROR + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strsignal' function. */ +#undef HAVE_STRSIGNAL + +/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */ +#undef HAVE_STRUCT_NLIST_N_UN_N_NAME + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_H + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#undef HAVE_SYS_NDIR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIMEB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_WAIT_H + +/* Define this if you have the `union wait' type in . */ +#undef HAVE_UNION_WAIT + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vfork' function. */ +#undef HAVE_VFORK + +/* Define to 1 if you have the header file. */ +#undef HAVE_VFORK_H + +/* Define to 1 if you have the `vprintf' function. */ +#undef HAVE_VPRINTF + +/* Define to 1 if you have the `wait3' function. */ +#undef HAVE_WAIT3 + +/* Define to 1 if you have the `waitpid' function. */ +#undef HAVE_WAITPID + +/* Define to 1 if `fork' works. */ +#undef HAVE_WORKING_FORK + +/* Define to 1 if `vfork' works. */ +#undef HAVE_WORKING_VFORK + +/* Build host information. */ +#undef MAKE_HOST + +/* Define this to enable job server support in GNU make. */ +#undef MAKE_JOBSERVER + +/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend + on `HAVE_STRUCT_NLIST_N_UN_N_NAME */ +#undef NLIST_NAME_UNION + +/* Define if struct nlist.n_name is a pointer rather than an array. */ +#undef NLIST_STRUCT + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if the C compiler supports function prototypes. */ +#undef PROTOTYPES + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* Define to the name of the SCCS 'get' command. */ +#undef SCCS_GET + +/* Define this if the SCCS 'get' command understands the '-G' option. */ +#undef SCCS_GET_MINUS_G + +/* Define to 1 if the `setvbuf' function takes the buffering type as its + second argument and the buffer pointer as the third, as on System V before + release 3. */ +#undef SETVBUF_REVERSED + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#undef STACK_DIRECTION + +/* Define to 1 if the `S_IS*' macros in do not work properly. */ +#undef STAT_MACROS_BROKEN + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if 'struct stat' contains a nanoseconds field */ +#undef ST_MTIM_NSEC + +/* Define to 1 on System V Release 4. */ +#undef SVR4 + +/* Define to 1 if `sys_siglist' is declared by or . */ +#undef SYS_SIGLIST_DECLARED + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define to 1 for Encore UMAX. */ +#undef UMAX + +/* Define to 1 for Encore UMAX 4.3 that has instead of + . */ +#undef UMAX4_3 + +/* Version number of package */ +#undef VERSION + +/* Define if using the dmalloc debugging malloc package */ +#undef WITH_DMALLOC + +/* Define to 1 if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +/* Define like PROTOTYPES; this can be used by system headers. */ +#undef __PROTOTYPES + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `int' if doesn't define. */ +#undef gid_t + +/* Define to `int' if does not define. */ +#undef pid_t + +/* Define to `int' if doesn't define. */ +#undef uid_t + +/* Define uintmax_t if not defined in or . */ +#undef uintmax_t + +/* Define as `fork' if `vfork' does not work. */ +#undef vfork diff --git a/src/mkutil/make-3.80/configh.dos b/src/mkutil/make-3.80/configh.dos new file mode 100644 index 00000000..c8184af8 --- /dev/null +++ b/src/mkutil/make-3.80/configh.dos @@ -0,0 +1,94 @@ + +/* Many things are defined already by a system header. */ +#include + +#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 1 + +/* Define if `sys_siglist' is declared by . */ +# define SYS_SIGLIST_DECLARED 1 + +/* Define this if the C library defines the variable `_sys_siglist'. */ +# define HAVE_SYS_SIGLIST 1 + +#else + +/* Define NSIG. */ +# define NSIG SIGMAX + +#endif + +/* Use high resolution file timestamps if nonzero. */ +#define FILE_TIMESTAMP_HI_RES 0 + +/* Define to 1 if you have `alloca', as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define if you have the fdopen function. */ +#define HAVE_FDOPEN 1 + +/* Define to 1 if you have the `getgroups' function. */ +#define HAVE_GETGROUPS 1 + +/* Define if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define if you have the mkstemp function. */ +#define HAVE_MKSTEMP 1 + +/* Define to 1 if you have the `mktemp' function. */ +#define HAVE_MKTEMP 1 + +/* Define to 1 if you have the `setlinebuf' function. */ +#define HAVE_SETLINEBUF 1 + +/* Define to 1 if you have the `setvbuf' function. */ +#define HAVE_SETVBUF 1 + +#define SCCS_GET "get" + +/* Define to `unsigned long' or `unsigned long long' + if doesn't define. */ +#define uintmax_t unsigned long long + +/* Define the type of the first arg to select(). */ +#define fd_set_size_t int + +/* Define if you have the select function. */ +#define HAVE_SELECT 1 + +/* Define if you have the vprintf library function. */ +#undef HAVE_VPRINTF +#define HAVE_VPRINTF 1 + +/* Name of the package */ +#define PACKAGE "make" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "bug-make@gnu.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU make" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU make 3.80" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "make" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "3.80" + +/* Define to 1 if the C compiler supports function prototypes. */ +#define PROTOTYPES 1 + +/* Define to 1 if `sys_siglist' is declared by or . */ +#define SYS_SIGLIST_DECLARED 1 + +/* Version number of package */ +#define VERSION "3.80" + +/* Build host information. */ +#define MAKE_HOST "i386-pc-msdosdjgpp" + +/* Grok DOS paths (drive specs and backslash path element separators) */ +#define HAVE_DOS_PATHS diff --git a/src/mkutil/make-3.80/configure b/src/mkutil/make-3.80/configure new file mode 100644 index 00000000..e2332983 --- /dev/null +++ b/src/mkutil/make-3.80/configure @@ -0,0 +1,12603 @@ +#! /bin/sh +# From configure.in Id: configure.in,v 1.114 2002/10/03 05:46:12 psmith Exp . +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.54 for GNU make 3.80. +# +# Report bugs to . +# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conftest.sh + echo "exit 0" >>conftest.sh + chmod +x conftest.sh + if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conftest.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME='GNU make' +PACKAGE_TARNAME='make' +PACKAGE_VERSION='3.80' +PACKAGE_STRING='GNU make 3.80' +PACKAGE_BUGREPORT='bug-make@gnu.org' + +ac_unique_file="vpath.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE RANLIB ac_ct_RANLIB CPP AR PERL build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE USE_NLS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB ALLOCA LIBOBJS NEED_SETGID KMEM_GROUP GETLOADAVG_LIBS USE_CUSTOMS_TRUE USE_CUSTOMS_FALSE GLOBINC GLOBLIB USE_LOCAL_GLOB_TRUE USE_LOCAL_GLOB_FALSE MAKE_HOST LTLIBOBJS' +ac_subst_files='MAINT_MAKEFILE' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures GNU make 3.80 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of GNU make 3.80:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-dependency-tracking Speeds up one-time builds + --enable-dependency-tracking Do not reject slow dependency extractors + --disable-rpath do not hardcode runtime library paths + --disable-nls do not use Native Language Support + --disable-largefile omit support for large files + --disable-job-server disallow recursive make communication during -jN + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix=DIR search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + --with-customs=DIR enable remote jobs via Customs--see README.customs + --with-dmalloc use dmalloc, as in + http://www.dmalloc.com/dmalloc.tar.gz + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF +GNU make configure 3.80 +generated by GNU Autoconf 2.54 + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by GNU make $as_me 3.80, which was +generated by GNU Autoconf 2.54. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell meta-characters. +ac_configure_args= +ac_sep= +for ac_arg +do + case $ac_arg in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n ) continue ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " +done + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core core.* *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Autoconf setup +ac_aux_dir= +for ac_dir in config $srcdir/config; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config $srcdir/config" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in config $srcdir/config" >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + + + ac_config_headers="$ac_config_headers config.h" + + +# Automake setup +am__api_version="1.7" +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +test "$program_prefix" != NONE && + program_transform_name="s,^,$program_prefix,;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$,$program_suffix,;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm conftest.sed + + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$AWK" && break +done + +echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +all: + @echo 'ac_maketemp="${MAKE}"' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + # test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE=make + VERSION=3.80 + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +install_sh=${install_sh-"$am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + STRIP=$ac_ct_STRIP +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. + + + +echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +all: + @echo 'ac_maketemp="${MAKE}"' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftest.make +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + SET_MAKE= +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + + +# Checks for programs. +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +echo "$as_me:$LINENO: checking for C compiler default output" >&5 +echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + a.out ) # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool --akim. + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +check \`config.log' for details." >&5 +echo "$as_me: error: C compiler cannot create executables +check \`config.log' for details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_compiler_gnu=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_prog_cc_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ + '#include ' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +rm -f .deps 2>/dev/null +mkdir .deps 2>/dev/null +if test -d .deps; then + DEPDIR=.deps +else + # MS-DOS does not allow filenames that begin with a dot. + DEPDIR=_deps +fi +rmdir .deps 2>/dev/null + + + ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +doit: + @echo done +END +# If we don't find an include directive, just comment out the code. +echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6 +rm -f confinc confmf + +# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval="$enable_dependency_tracking" + +fi; +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + + +if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + + +depcc="$CC" am_compiler_list= + +echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + echo '#include "conftest.h"' > conftest.c + echo 'int i;' > conftest.h + echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=conftest.c object=conftest.o \ + depfile=conftest.Po tmpdepfile=conftest.TPo \ + $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && + grep conftest.h conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + + +if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +# Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +# Perl is needed for the test suite (only) +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_PERL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$PERL"; then + ac_cv_prog_PERL="$PERL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PERL="perl" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_PERL" && ac_cv_prog_PERL="perl" +fi +fi +PERL=$ac_cv_prog_PERL +if test -n "$PERL"; then + echo "$as_me:$LINENO: result: $PERL" >&5 +echo "${ECHO_T}$PERL" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + +# Specialized system macros +# Make sure we can run config.sub. +$ac_config_sub sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 +echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } + +echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6 +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_build_alias=$build_alias +test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` +test -z "$ac_cv_build_alias" && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6 +build=$ac_cv_build +build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + +echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6 +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_host_alias=$host_alias +test -z "$ac_cv_host_alias" && + ac_cv_host_alias=$ac_cv_build_alias +ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6 +host=$ac_cv_host +host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + + + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + + +echo "$as_me:$LINENO: checking for AIX" >&5 +echo $ECHO_N "checking for AIX... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#ifdef _AIX + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +cat >>confdefs.h <<\_ACEOF +#define _ALL_SOURCE 1 +_ACEOF + +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +rm -f conftest* + + + + echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 +echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 +if test "${ac_cv_lib_cposix_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcposix $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strerror (); +int +main () +{ +strerror (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_cposix_strerror=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_cposix_strerror=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 +echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 +if test $ac_cv_lib_cposix_strerror = yes; then + LIBS="$LIBS -lcposix" +fi + + + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +#include +#include + +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_Header=no" +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "${ac_cv_header_minix_config_h+set}" = set; then + echo "$as_me:$LINENO: checking for minix/config.h" >&5 +echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 +if test "${ac_cv_header_minix_config_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking minix/config.h usability" >&5 +echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking minix/config.h presence" >&5 +echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for minix/config.h" >&5 +echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 +if test "${ac_cv_header_minix_config_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_minix_config_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 + +fi +if test $ac_cv_header_minix_config_h = yes; then + MINIX=yes +else + MINIX= +fi + + +if test "$MINIX" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define _POSIX_SOURCE 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define _POSIX_1_SOURCE 2 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define _MINIX 1 +_ACEOF + +fi + + +# Enable gettext, in "external" mode. + + + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + + + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_GMSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT + +if test -n "$GMSGFMT"; then + echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +echo "${ECHO_T}$GMSGFMT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_XGETTEXT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +echo "${ECHO_T}$XGETTEXT" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + rm -f messages.po + + # Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_MSGMERGE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGMERGE" in + /*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +echo "${ECHO_T}$MSGMERGE" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + + if test "$GMSGFMT" != ":"; then + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 +echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 + GMSGFMT=":" + fi + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 +echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 + XGETTEXT=":" + fi + rm -f messages.po + fi + + ac_config_commands="$ac_config_commands default-1" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + +# Check whether --with-gnu-ld or --without-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval="$with_gnu_ld" + test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi; +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 +fi +if test "${acl_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 +if test "${acl_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +if $LD -v 2>&1 &5; then + acl_cv_prog_gnu_ld=yes +else + acl_cv_prog_gnu_ld=no +fi +fi +echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 +echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 +if test "${acl_cv_rpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +echo "${ECHO_T}$acl_cv_rpath" >&6 + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" + sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" + # Check whether --enable-rpath or --disable-rpath was given. +if test "${enable_rpath+set}" = set; then + enableval="$enable_rpath" + : +else + enable_rpath=yes +fi; + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then + withval="$with_libiconv_prefix" + + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi; + LIBICONV= + LTLIBICONV= + INCICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 + # Check whether --enable-nls or --disable-nls was given. +if test "${enable_nls+set}" = set; then + enableval="$enable_nls" + USE_NLS=$enableval +else + USE_NLS=yes +fi; + echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6 + + + + LIBINTL= + LTLIBINTL= + POSUB= + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + + + + + echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 +if test "${gt_cv_func_gnugettext1_libc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_gnugettext1_libc=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +gt_cv_func_gnugettext1_libc=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6 + + if test "$gt_cv_func_gnugettext1_libc" != "yes"; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + echo "$as_me:$LINENO: checking for iconv" >&5 +echo $ECHO_N "checking for iconv... $ECHO_C" >&6 +if test "${am_cv_func_iconv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +echo "${ECHO_T}$am_cv_func_iconv" >&6 + if test "$am_cv_func_iconv" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV 1 +_ACEOF + + fi + if test "$am_cv_lib_iconv" = yes; then + echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $LIBICONV" >&5 +echo "${ECHO_T}$LIBICONV" >&6 + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix or --without-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then + withval="$with_libintl_prefix" + + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + +fi; + LIBINTL= + LTLIBINTL= + INCINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 +if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (); +int +main () +{ +bindtextdomain ("", ""); +return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gt_cv_func_gnugettext1_libintl=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +gt_cv_func_gnugettext1_libintl=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (); +int +main () +{ +bindtextdomain ("", ""); +return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext1_libintl=yes + +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5 +echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6 + fi + + if test "$gt_cv_func_gnugettext1_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ + && test "$PACKAGE" != gettext; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + else + USE_NLS=no + fi + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then + echo "$as_me:$LINENO: checking how to link with libintl" >&5 +echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: $LIBINTL" >&5 +echo "${ECHO_T}$LIBINTL" >&6 + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + +# This test must come as early as possible after the compiler configuration +# tests, because the choice of the file model can (in principle) affect +# whether functions and headers are available, whether they work, etc. +# Check whether --enable-largefile or --disable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval="$enable_largefile" + +fi; +if test "$enable_largefile" != no; then + + echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_largefile_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_largefile_CC=' -n32'; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + ac_cv_sys_file_offset_bits=no + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_file_offset_bits=64; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + break +done +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 +if test "$ac_cv_sys_file_offset_bits" != no; then + +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF + +fi +rm -f conftest* + echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + ac_cv_sys_large_files=no + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sys_large_files=1; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + break +done +fi +echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6 +if test "$ac_cv_sys_large_files" != no; then + +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF + +fi +rm -f conftest* +fi + + +# Checks for libraries. +echo "$as_me:$LINENO: checking for library containing getpwnam" >&5 +echo $ECHO_N "checking for library containing getpwnam... $ECHO_C" >&6 +if test "${ac_cv_search_getpwnam+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_getpwnam=no +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getpwnam (); +int +main () +{ +getpwnam (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_getpwnam="none required" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_getpwnam" = no; then + for ac_lib in sun; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getpwnam (); +int +main () +{ +getpwnam (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_getpwnam="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_getpwnam" >&5 +echo "${ECHO_T}$ac_cv_search_getpwnam" >&6 +if test "$ac_cv_search_getpwnam" != no; then + test "$ac_cv_search_getpwnam" = "none required" || LIBS="$ac_cv_search_getpwnam $LIBS" + +fi + + +# Checks for header files. +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +#include +#include + +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_header_stdc=no +fi +rm -f conftest.err conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + + + + + + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 +echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include <$ac_hdr> + +int +main () +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_Header=no" +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in dir; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +else + echo "$as_me:$LINENO: checking for library containing opendir" >&5 +echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 +if test "${ac_cv_search_opendir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_opendir=no +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="none required" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_opendir" = no; then + for ac_lib in x; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main () +{ +opendir (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_opendir="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 +echo "${ECHO_T}$ac_cv_search_opendir" >&6 +if test "$ac_cv_search_opendir" != no; then + test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" + +fi + +fi + +echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 +echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 +if test "${ac_cv_header_stat_broken+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include + +#if defined(S_ISBLK) && defined(S_IFDIR) +# if S_ISBLK (S_IFDIR) +You lose. +# endif +#endif + +#if defined(S_ISBLK) && defined(S_IFCHR) +# if S_ISBLK (S_IFCHR) +You lose. +# endif +#endif + +#if defined(S_ISLNK) && defined(S_IFREG) +# if S_ISLNK (S_IFREG) +You lose. +# endif +#endif + +#if defined(S_ISSOCK) && defined(S_IFREG) +# if S_ISSOCK (S_IFREG) +You lose. +# endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "You lose" >/dev/null 2>&1; then + ac_cv_header_stat_broken=yes +else + ac_cv_header_stat_broken=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 +echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 +if test $ac_cv_header_stat_broken = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STAT_MACROS_BROKEN 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_time=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_header_time=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6 +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + + + + + + + + + + + +for ac_header in stdlib.h locale.h unistd.h limits.h fcntl.h string.h \ + memory.h sys/param.h sys/time.h sys/timeb.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "x$CC" != xcc; then + echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5 +echo $ECHO_N "checking whether $CC and cc understand -c and -o together... $ECHO_C" >&6 +else + echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5 +echo $ECHO_N "checking whether cc understands -c and -o together... $ECHO_C" >&6 +fi +set dummy $CC; ac_cc=`echo $2 | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest.$ac_objext >&5' +if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest.$ac_objext >&5' + if { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + test -f conftest.$ac_objext && { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f conftest* + +fi +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = yes"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + +cat >>confdefs.h <<\_ACEOF +#define NO_MINUS_C_MINUS_O 1 +_ACEOF + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + + + + +echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5 +echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6 +if test "${am_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_prog_cc_stdc=no +ac_save_CC="$CC" +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; + +int +main () +{ + +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + am_cv_prog_cc_stdc="$ac_arg"; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +CC="$ac_save_CC" + +fi + +if test -z "$am_cv_prog_cc_stdc"; then + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 +else + echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6 +fi +case "x$am_cv_prog_cc_stdc" in + x|xno) ;; + *) CC="$CC $am_cv_prog_cc_stdc" ;; +esac + +echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset x; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *ccp; + char **p; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + ccp = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++ccp; + p = (char**) ccp; + ccp = (char const *const *) p; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + } +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_c_const=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6 +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + +echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +#ifdef signal +# undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_signal=void +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_signal=int +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6 + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + +echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6 +if test "${ac_cv_type_uid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +echo "${ECHO_T}$ac_cv_type_uid_t" >&6 +if test $ac_cv_type_uid_t = no; then + +cat >>confdefs.h <<\_ACEOF +#define uid_t int +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define gid_t int +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for pid_t" >&5 +echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 +if test "${ac_cv_type_pid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((pid_t *) 0) + return 0; +if (sizeof (pid_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_pid_t=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_pid_t=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +echo "${ECHO_T}$ac_cv_type_pid_t" >&6 +if test $ac_cv_type_pid_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF + +fi + + +# Find some definition for uintmax_t + +echo "$as_me:$LINENO: checking for uintmax_t" >&5 +echo $ECHO_N "checking for uintmax_t... $ECHO_C" >&6 +if test "${ac_cv_type_uintmax_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((uintmax_t *) 0) + return 0; +if (sizeof (uintmax_t)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_uintmax_t=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_uintmax_t=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_uintmax_t" >&5 +echo "${ECHO_T}$ac_cv_type_uintmax_t" >&6 +if test $ac_cv_type_uintmax_t = yes; then + : +else + + uintmax_t="unsigned long" + echo "$as_me:$LINENO: checking for unsigned long long" >&5 +echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 +if test "${ac_cv_type_unsigned_long_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +if ((unsigned long long *) 0) + return 0; +if (sizeof (unsigned long long)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_unsigned_long_long=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_type_unsigned_long_long=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6 +if test $ac_cv_type_unsigned_long_long = yes; then + uintmax_t="unsigned long long" +fi + + +cat >>confdefs.h <<_ACEOF +#define uintmax_t $uintmax_t +_ACEOF + +fi + + +# Find out whether our struct stat returns nanosecond resolution timestamps. + +echo "$as_me:$LINENO: checking for nanoseconds field of struct stat.st_mtim" >&5 +echo $ECHO_N "checking for nanoseconds field of struct stat.st_mtim... $ECHO_C" >&6 +if test "${ac_cv_struct_st_mtim_nsec+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_CPPFLAGS="$CPPFLAGS" + ac_cv_struct_st_mtim_nsec=no + # tv_nsec -- the usual case + # _tv_nsec -- Solaris 2.6, if + # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1 + # && !defined __EXTENSIONS__) + # st__tim.tv_nsec -- UnixWare 2.1.2 + for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do + CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +int +main () +{ +struct stat s; s.st_mtim.ST_MTIM_NSEC; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_struct_st_mtim_nsec=$ac_val; break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done + CPPFLAGS="$ac_save_CPPFLAGS" +fi +echo "$as_me:$LINENO: result: $ac_cv_struct_st_mtim_nsec" >&5 +echo "${ECHO_T}$ac_cv_struct_st_mtim_nsec" >&6 + + if test $ac_cv_struct_st_mtim_nsec != no; then + +cat >>confdefs.h <<_ACEOF +#define ST_MTIM_NSEC $ac_cv_struct_st_mtim_nsec +_ACEOF + + fi + + +echo "$as_me:$LINENO: checking whether to use high resolution file timestamps" >&5 +echo $ECHO_N "checking whether to use high resolution file timestamps... $ECHO_C" >&6 +if test "${make_cv_file_timestamp_hi_res+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + make_cv_file_timestamp_hi_res=no + if test "$ac_cv_struct_st_mtim_nsec" != no; then + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +# if HAVE_INTTYPES_H +# include +# endif +int +main () +{ +char a[0x7fffffff < (uintmax_t) -1 >> 30 ? 1 : -1]; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + make_cv_file_timestamp_hi_res=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest.$ac_ext + fi +fi + +echo "$as_me:$LINENO: result: $make_cv_file_timestamp_hi_res" >&5 +echo "${ECHO_T}$make_cv_file_timestamp_hi_res" >&6 +if test "$make_cv_file_timestamp_hi_res" = yes; then + val=1 +else + val=0 +fi + +cat >>confdefs.h <<_ACEOF +#define FILE_TIMESTAMP_HI_RES $val +_ACEOF + + +if test "$make_cv_file_timestamp_hi_res" = yes; then + # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5 +echo $ECHO_N "checking for library containing clock_gettime... $ECHO_C" >&6 +if test "${ac_cv_search_clock_gettime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +ac_cv_search_clock_gettime=no +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char clock_gettime (); +int +main () +{ +clock_gettime (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_clock_gettime="none required" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +if test "$ac_cv_search_clock_gettime" = no; then + for ac_lib in rt posix4; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char clock_gettime (); +int +main () +{ +clock_gettime (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_search_clock_gettime="-l$ac_lib" +break +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + done +fi +LIBS=$ac_func_search_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5 +echo "${ECHO_T}$ac_cv_search_clock_gettime" >&6 +if test "$ac_cv_search_clock_gettime" != no; then + test "$ac_cv_search_clock_gettime" = "none required" || LIBS="$ac_cv_search_clock_gettime $LIBS" + +fi + + if test "$ac_cv_search_clock_gettime" != no; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CLOCK_GETTIME 1 +_ACEOF + + fi +fi + + +# See if we have a standard version of gettimeofday(). Since actual +# implementations can differ, just make sure we have the most common +# one. +echo "$as_me:$LINENO: checking for standard gettimeofday" >&5 +echo $ECHO_N "checking for standard gettimeofday... $ECHO_C" >&6 +if test "${ac_cv_func_gettimeofday+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_func_gettimeofday=no + if test "$cross_compiling" = yes; then + ac_cv_func_gettimeofday="no (cross-compiling)" +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + int main () + { + struct timeval t; t.tv_sec = -1; t.tv_usec = -1; + exit (gettimeofday (&t, 0) != 0 + || t.tv_sec < 0 || t.tv_usec < 0); + } +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_gettimeofday=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_func_gettimeofday=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_gettimeofday" >&5 +echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6 +if test "$ac_cv_func_gettimeofday" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTIMEOFDAY 1 +_ACEOF + +fi + + + + + + + + + + + + + + + + + + + + + + + +for ac_func in memcpy memmove strchr strdup mkstemp mktemp fdopen \ + bsd_signal dup2 getcwd sigsetmask sigaction getgroups \ + seteuid setegid setlinebuf setreuid setregid setvbuf pipe \ + strerror strsignal +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +echo "$as_me:$LINENO: checking for function prototypes" >&5 +echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 +if test "$ac_cv_prog_cc_stdc" != no; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define PROTOTYPES 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define __PROTOTYPES 1 +_ACEOF + +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +echo "$as_me:$LINENO: checking whether setvbuf arguments are reversed" >&5 +echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6 +if test "${ac_cv_func_setvbuf_reversed+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_func_setvbuf_reversed=no + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +# if PROTOTYPES + int (setvbuf) (FILE *, int, char *, size_t); +# endif +int +main () +{ +char buf; return setvbuf (stdout, _IOLBF, &buf, 1); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +# if PROTOTYPES + int (setvbuf) (FILE *, int, char *, size_t); +# endif +int +main () +{ +char buf; return setvbuf (stdout, &buf, _IOLBF, 1); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + # It compiles and links either way, so it must not be declared + # with a prototype and most likely this is a K&R C compiler. + # Try running it. + if test "$cross_compiling" = yes; then + : # Assume setvbuf is not reversed when cross-compiling. +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +int +main () +{ +/* This call has the arguments reversed. + A reversed system may check and see that the address of buf + is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ + char buf; + if (setvbuf (stdout, _IOLBF, &buf, 1) != 0) + exit (1); + putchar ('\r'); + exit (0); /* Non-reversed systems SEGV here. */ + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_setvbuf_reversed=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +rm -f core core.* *.core +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + ac_cv_func_setvbuf_reversed=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_setvbuf_reversed" >&5 +echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6 +if test $ac_cv_func_setvbuf_reversed = yes; then + +cat >>confdefs.h <<\_ACEOF +#define SETVBUF_REVERSED 1 +_ACEOF + +fi + + +# strcoll() is used by the GNU glob library +echo "$as_me:$LINENO: checking for working strcoll" >&5 +echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6 +if test "${ac_cv_func_strcoll_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_strcoll_works=no +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +int +main () +{ +exit (strcoll ("abc", "def") >= 0 || + strcoll ("ABC", "DEF") >= 0 || + strcoll ("123", "456") >= 0) + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_strcoll_works=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_func_strcoll_works=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5 +echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6 +if test $ac_cv_func_strcoll_works = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRCOLL 1 +_ACEOF + +fi + + +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +# for constant arguments. Useless! +echo "$as_me:$LINENO: checking for working alloca.h" >&5 +echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 +if test "${ac_cv_working_alloca_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +int +main () +{ +char *p = (char *) alloca (2 * sizeof (int)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_working_alloca_h=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_working_alloca_h=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 +echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +if test $ac_cv_working_alloca_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA_H 1 +_ACEOF + +fi + +echo "$as_me:$LINENO: checking for alloca" >&5 +echo $ECHO_N "checking for alloca... $ECHO_C" >&6 +if test "${ac_cv_func_alloca_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#ifdef __GNUC__ +# define alloca __builtin_alloca +#else +# ifdef _MSC_VER +# include +# define alloca _alloca +# else +# if HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +# endif +#endif + +int +main () +{ +char *p = (char *) alloca (1); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_alloca_works=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_func_alloca_works=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 +echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 + +if test $ac_cv_func_alloca_works = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ALLOCA 1 +_ACEOF + +else + # The SVR3 libPW and SVR4 libucb both contain incompatible functions +# that cause trouble. Some versions do not even contain alloca or +# contain a buggy version. If you still want to use their alloca, +# use ar to extract alloca.o from them instead of compiling alloca.c. + +ALLOCA=alloca.$ac_objext + +cat >>confdefs.h <<\_ACEOF +#define C_ALLOCA 1 +_ACEOF + + +echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 +echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 +if test "${ac_cv_os_cray+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#if defined(CRAY) && ! defined(CRAY2) +webecray +#else +wenotbecray +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "webecray" >/dev/null 2>&1; then + ac_cv_os_cray=yes +else + ac_cv_os_cray=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 +echo "${ECHO_T}$ac_cv_os_cray" >&6 +if test $ac_cv_os_cray = yes; then + for ac_func in _getb67 GETB67 getb67; do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + +cat >>confdefs.h <<_ACEOF +#define CRAY_STACKSEG_END $ac_func +_ACEOF + + break +fi + + done +fi + +echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 +echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 +if test "${ac_cv_c_stack_direction+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_c_stack_direction=0 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +int +find_stack_direction () +{ + static char *addr = 0; + auto char dummy; + if (addr == 0) + { + addr = &dummy; + return find_stack_direction (); + } + else + return (&dummy > addr) ? 1 : -1; +} + +int +main () +{ + exit (find_stack_direction () < 0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_stack_direction=1 +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_c_stack_direction=-1 +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 + +cat >>confdefs.h <<_ACEOF +#define STACK_DIRECTION $ac_cv_c_stack_direction +_ACEOF + + +fi + + + +for ac_header in unistd.h vfork.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_func in fork vfork +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_fork" = xyes; then + echo "$as_me:$LINENO: checking for working fork" >&5 +echo $ECHO_N "checking for working fork... $ECHO_C" >&6 +if test "${ac_cv_func_fork_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_fork_works=cross +else + cat >conftest.$ac_ext <<_ACEOF +/* By Ruediger Kuhlmann. */ + #include + #if HAVE_UNISTD_H + # include + #endif + /* Some systems only have a dummy stub for fork() */ + int main () + { + if (fork() < 0) + exit (1); + exit (0); + } +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_fork_works=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_func_fork_works=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5 +echo "${ECHO_T}$ac_cv_func_fork_works" >&6 + +else + ac_cv_func_fork_works=$ac_cv_func_fork +fi +if test "x$ac_cv_func_fork_works" = xcross; then + case $host in + *-*-amigaos* | *-*-msdosdjgpp*) + # Override, as these systems have only a dummy fork() stub + ac_cv_func_fork_works=no + ;; + *) + ac_cv_func_fork_works=yes + ;; + esac + { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 +echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} +fi +ac_cv_func_vfork_works=$ac_cv_func_vfork +if test "x$ac_cv_func_vfork" = xyes; then + echo "$as_me:$LINENO: checking for working vfork" >&5 +echo $ECHO_N "checking for working vfork... $ECHO_C" >&6 +if test "${ac_cv_func_vfork_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_vfork_works=cross +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* Thanks to Paul Eggert for this test. */ +#include +#include +#include +#if HAVE_UNISTD_H +# include +#endif +#if HAVE_VFORK_H +# include +#endif +/* On some sparc systems, changes by the child to local and incoming + argument registers are propagated back to the parent. The compiler + is told about this with #include , but some compilers + (e.g. gcc -O) don't grok . Test for this by using a + static variable whose address is put into a register that is + clobbered by the vfork. */ +static +#ifdef __cplusplus +sparc_address_test (int arg) +# else +sparc_address_test (arg) int arg; +#endif +{ + static pid_t child; + if (!child) { + child = vfork (); + if (child < 0) { + perror ("vfork"); + _exit(2); + } + if (!child) { + arg = getpid(); + write(-1, "", 0); + _exit (arg); + } + } +} + +int +main () +{ + pid_t parent = getpid (); + pid_t child; + + sparc_address_test (); + + child = vfork (); + + if (child == 0) { + /* Here is another test for sparc vfork register problems. This + test uses lots of local variables, at least as many local + variables as main has allocated so far including compiler + temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris + 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should + reuse the register of parent for one of the local variables, + since it will think that parent can't possibly be used any more + in this routine. Assigning to the local variable will thus + munge parent in the parent process. */ + pid_t + p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), + p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); + /* Convince the compiler that p..p7 are live; otherwise, it might + use the same hardware register for all 8 local variables. */ + if (p != p1 || p != p2 || p != p3 || p != p4 + || p != p5 || p != p6 || p != p7) + _exit(1); + + /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent + from child file descriptors. If the child closes a descriptor + before it execs or exits, this munges the parent's descriptor + as well. Test for this by closing stdout in the child. */ + _exit(close(fileno(stdout)) != 0); + } else { + int status; + struct stat st; + + while (wait(&status) != child) + ; + exit( + /* Was there some problem with vforking? */ + child < 0 + + /* Did the child fail? (This shouldn't happen.) */ + || status + + /* Did the vfork/compiler bug occur? */ + || parent != getpid() + + /* Did the file descriptor bug occur? */ + || fstat(fileno(stdout), &st) != 0 + ); + } +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_vfork_works=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_func_vfork_works=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5 +echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 + +fi; +if test "x$ac_cv_func_fork_works" = xcross; then + ac_cv_func_vfork_works=ac_cv_func_vfork + { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 +echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} +fi + +if test "x$ac_cv_func_vfork_works" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WORKING_VFORK 1 +_ACEOF + +else + +cat >>confdefs.h <<\_ACEOF +#define vfork fork +_ACEOF + +fi +if test "x$ac_cv_func_fork_works" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WORKING_FORK 1 +_ACEOF + +fi + + +for ac_func in vprintf +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +echo "$as_me:$LINENO: checking for _doprnt" >&5 +echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 +if test "${ac_cv_func__doprnt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char _doprnt (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub__doprnt) || defined (__stub____doprnt) +choke me +#else +f = _doprnt; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func__doprnt=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_func__doprnt=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 +echo "${ECHO_T}$ac_cv_func__doprnt" >&6 +if test $ac_cv_func__doprnt = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DOPRNT 1 +_ACEOF + +fi + +fi +done + + +echo "$as_me:$LINENO: checking whether closedir returns void" >&5 +echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6 +if test "${ac_cv_func_closedir_void+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_closedir_void=yes +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header_dirent> +#ifndef __cplusplus +int closedir (); +#endif + +int +main () +{ +exit (closedir (opendir (".")) != 0); + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_closedir_void=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +( exit $ac_status ) +ac_cv_func_closedir_void=yes +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 +echo "${ECHO_T}$ac_cv_func_closedir_void" >&6 +if test $ac_cv_func_closedir_void = yes; then + +cat >>confdefs.h <<\_ACEOF +#define CLOSEDIR_VOID 1 +_ACEOF + +fi + + +ac_have_func=no # yes means we've found a way to get the load average. + +# Make sure getloadavg.c is where it belongs, at configure-time. +test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" || + { { echo "$as_me:$LINENO: error: $srcdir/$ac_config_libobj_dir/getloadavg.c is missing" >&5 +echo "$as_me: error: $srcdir/$ac_config_libobj_dir/getloadavg.c is missing" >&2;} + { (exit 1); exit 1; }; } + +ac_save_LIBS=$LIBS + +# Check for getloadavg, but be sure not to touch the cache variable. +(echo "$as_me:$LINENO: checking for getloadavg" >&5 +echo $ECHO_N "checking for getloadavg... $ECHO_C" >&6 +if test "${ac_cv_func_getloadavg+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getloadavg (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getloadavg (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_getloadavg) || defined (__stub___getloadavg) +choke me +#else +f = getloadavg; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_getloadavg=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_func_getloadavg=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_getloadavg" >&5 +echo "${ECHO_T}$ac_cv_func_getloadavg" >&6 +if test $ac_cv_func_getloadavg = yes; then + exit 0 +else + exit 1 +fi +) && ac_have_func=yes + +# On HPUX9, an unprivileged user can get load averages through this function. + +for ac_func in pstat_getdynamic +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# Solaris has libkstat which does not require root. + +echo "$as_me:$LINENO: checking for kstat_open in -lkstat" >&5 +echo $ECHO_N "checking for kstat_open in -lkstat... $ECHO_C" >&6 +if test "${ac_cv_lib_kstat_kstat_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkstat $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char kstat_open (); +int +main () +{ +kstat_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_kstat_kstat_open=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_kstat_kstat_open=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_kstat_kstat_open" >&5 +echo "${ECHO_T}$ac_cv_lib_kstat_kstat_open" >&6 +if test $ac_cv_lib_kstat_kstat_open = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBKSTAT 1 +_ACEOF + + LIBS="-lkstat $LIBS" + +fi + +test $ac_cv_lib_kstat_kstat_open = yes && ac_have_func=yes + +# Some systems with -lutil have (and need) -lkvm as well, some do not. +# On Solaris, -lkvm requires nlist from -lelf, so check that first +# to get the right answer into the cache. +# For kstat on solaris, we need libelf to force the definition of SVR4 below. +if test $ac_have_func = no; then + echo "$as_me:$LINENO: checking for elf_begin in -lelf" >&5 +echo $ECHO_N "checking for elf_begin in -lelf... $ECHO_C" >&6 +if test "${ac_cv_lib_elf_elf_begin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lelf $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char elf_begin (); +int +main () +{ +elf_begin (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_elf_elf_begin=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_elf_elf_begin=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_elf_elf_begin" >&5 +echo "${ECHO_T}$ac_cv_lib_elf_elf_begin" >&6 +if test $ac_cv_lib_elf_elf_begin = yes; then + LIBS="-lelf $LIBS" +fi + +fi +if test $ac_have_func = no; then + echo "$as_me:$LINENO: checking for kvm_open in -lkvm" >&5 +echo $ECHO_N "checking for kvm_open in -lkvm... $ECHO_C" >&6 +if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lkvm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char kvm_open (); +int +main () +{ +kvm_open (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_kvm_kvm_open=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_kvm_kvm_open=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_open" >&5 +echo "${ECHO_T}$ac_cv_lib_kvm_kvm_open" >&6 +if test $ac_cv_lib_kvm_kvm_open = yes; then + LIBS="-lkvm $LIBS" +fi + + # Check for the 4.4BSD definition of getloadavg. + echo "$as_me:$LINENO: checking for getloadavg in -lutil" >&5 +echo $ECHO_N "checking for getloadavg in -lutil... $ECHO_C" >&6 +if test "${ac_cv_lib_util_getloadavg+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getloadavg (); +int +main () +{ +getloadavg (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_util_getloadavg=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_util_getloadavg=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_util_getloadavg" >&5 +echo "${ECHO_T}$ac_cv_lib_util_getloadavg" >&6 +if test $ac_cv_lib_util_getloadavg = yes; then + LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes +fi + +fi + +if test $ac_have_func = no; then + # There is a commonly available library for RS/6000 AIX. + # Since it is not a standard part of AIX, it might be installed locally. + ac_getloadavg_LIBS=$LIBS + LIBS="-L/usr/local/lib $LIBS" + echo "$as_me:$LINENO: checking for getloadavg in -lgetloadavg" >&5 +echo $ECHO_N "checking for getloadavg in -lgetloadavg... $ECHO_C" >&6 +if test "${ac_cv_lib_getloadavg_getloadavg+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgetloadavg $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char getloadavg (); +int +main () +{ +getloadavg (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_getloadavg_getloadavg=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_getloadavg_getloadavg=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_getloadavg_getloadavg" >&5 +echo "${ECHO_T}$ac_cv_lib_getloadavg_getloadavg" >&6 +if test $ac_cv_lib_getloadavg_getloadavg = yes; then + LIBS="-lgetloadavg $LIBS" +else + LIBS=$ac_getloadavg_LIBS +fi + +fi + +# Make sure it is really in the library, if we think we found it, +# otherwise set up the replacement function. + +for ac_func in getloadavg +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + LIBOBJS="$LIBOBJS getloadavg.$ac_objext" + +cat >>confdefs.h <<\_ACEOF +#define C_GETLOADAVG 1 +_ACEOF + +# Figure out what our getloadavg.c needs. +ac_have_func=no +if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 +echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_dg_sys_info_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5 +echo $ECHO_N "checking sys/dg_sys_info.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5 +echo $ECHO_N "checking sys/dg_sys_info.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 +echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_dg_sys_info_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_dg_sys_info_h" >&6 + +fi +if test $ac_cv_header_sys_dg_sys_info_h = yes; then + ac_have_func=yes + +cat >>confdefs.h <<\_ACEOF +#define DGUX 1 +_ACEOF + + +echo "$as_me:$LINENO: checking for dg_sys_info in -ldgc" >&5 +echo $ECHO_N "checking for dg_sys_info in -ldgc... $ECHO_C" >&6 +if test "${ac_cv_lib_dgc_dg_sys_info+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldgc $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char dg_sys_info (); +int +main () +{ +dg_sys_info (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dgc_dg_sys_info=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_dgc_dg_sys_info=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_dgc_dg_sys_info" >&5 +echo "${ECHO_T}$ac_cv_lib_dgc_dg_sys_info" >&6 +if test $ac_cv_lib_dgc_dg_sys_info = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDGC 1 +_ACEOF + + LIBS="-ldgc $LIBS" + +fi + +fi + + + +if test "${ac_cv_header_locale_h+set}" = set; then + echo "$as_me:$LINENO: checking for locale.h" >&5 +echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 +if test "${ac_cv_header_locale_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_locale_h" >&5 +echo "${ECHO_T}$ac_cv_header_locale_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking locale.h usability" >&5 +echo $ECHO_N "checking locale.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking locale.h presence" >&5 +echo $ECHO_N "checking locale.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for locale.h" >&5 +echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 +if test "${ac_cv_header_locale_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_locale_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_locale_h" >&5 +echo "${ECHO_T}$ac_cv_header_locale_h" >&6 + +fi + + + +for ac_func in setlocale +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +# We cannot check for , because Solaris 2 does not use dwarf (it +# uses stabs), but it is still SVR4. We cannot check for because +# Irix 4.0.5F has the header but not the library. +if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then + ac_have_func=yes + +cat >>confdefs.h <<\_ACEOF +#define SVR4 1 +_ACEOF + +fi + +if test $ac_have_func = no; then + if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then + echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 +echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_inq_stats_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_inq_stats_cpustats_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking inq_stats/cpustats.h usability" >&5 +echo $ECHO_N "checking inq_stats/cpustats.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking inq_stats/cpustats.h presence" >&5 +echo $ECHO_N "checking inq_stats/cpustats.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 +echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_inq_stats_cpustats_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_inq_stats_cpustats_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_inq_stats_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_inq_stats_cpustats_h" >&6 + +fi +if test $ac_cv_header_inq_stats_cpustats_h = yes; then + ac_have_func=yes + +cat >>confdefs.h <<\_ACEOF +#define UMAX 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define UMAX4_3 1 +_ACEOF + +fi + + +fi + +if test $ac_have_func = no; then + if test "${ac_cv_header_sys_cpustats_h+set}" = set; then + echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 +echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_cpustats_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_cpustats_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking sys/cpustats.h usability" >&5 +echo $ECHO_N "checking sys/cpustats.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking sys/cpustats.h presence" >&5 +echo $ECHO_N "checking sys/cpustats.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 +echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 +if test "${ac_cv_header_sys_cpustats_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_sys_cpustats_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_sys_cpustats_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_cpustats_h" >&6 + +fi +if test $ac_cv_header_sys_cpustats_h = yes; then + ac_have_func=yes; cat >>confdefs.h <<\_ACEOF +#define UMAX 1 +_ACEOF + +fi + + +fi + +if test $ac_have_func = no; then + +for ac_header in mach/mach.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +fi + + +for ac_header in nlist.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + echo "$as_me:$LINENO: checking for struct nlist.n_un.n_name" >&5 +echo $ECHO_N "checking for struct nlist.n_un.n_name... $ECHO_C" >&6 +if test "${ac_cv_member_struct_nlist_n_un_n_name+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +int +main () +{ +static struct nlist ac_aggr; +if (ac_aggr.n_un.n_name) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_nlist_n_un_n_name=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include + +int +main () +{ +static struct nlist ac_aggr; +if (sizeof ac_aggr.n_un.n_name) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_member_struct_nlist_n_un_n_name=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_member_struct_nlist_n_un_n_name=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_member_struct_nlist_n_un_n_name" >&5 +echo "${ECHO_T}$ac_cv_member_struct_nlist_n_un_n_name" >&6 +if test $ac_cv_member_struct_nlist_n_un_n_name = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_NLIST_N_UN_N_NAME 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define NLIST_NAME_UNION 1 +_ACEOF + +fi + + +fi + +done + +fi +done + + +# Some definitions of getloadavg require that the program be installed setgid. +echo "$as_me:$LINENO: checking whether getloadavg requires setgid" >&5 +echo $ECHO_N "checking whether getloadavg requires setgid... $ECHO_C" >&6 +if test "${ac_cv_func_getloadavg_setgid+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include "$srcdir/$ac_config_libobj_dir/getloadavg.c" +#ifdef LDAV_PRIVILEGED +Yowza Am I SETGID yet +#endif +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "Yowza Am I SETGID yet" >/dev/null 2>&1; then + ac_cv_func_getloadavg_setgid=yes +else + ac_cv_func_getloadavg_setgid=no +fi +rm -f conftest* + +fi +echo "$as_me:$LINENO: result: $ac_cv_func_getloadavg_setgid" >&5 +echo "${ECHO_T}$ac_cv_func_getloadavg_setgid" >&6 +if test $ac_cv_func_getloadavg_setgid = yes; then + NEED_SETGID=true + +cat >>confdefs.h <<\_ACEOF +#define GETLOADAVG_PRIVILEGED 1 +_ACEOF + +else + NEED_SETGID=false +fi + +if test $ac_cv_func_getloadavg_setgid = yes; then + echo "$as_me:$LINENO: checking group of /dev/kmem" >&5 +echo $ECHO_N "checking group of /dev/kmem... $ECHO_C" >&6 +if test "${ac_cv_group_kmem+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # On Solaris, /dev/kmem is a symlink. Get info on the real file. + ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null` + # If we got an error (system does not support symlinks), try without -L. + test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` + ac_cv_group_kmem=`echo $ac_ls_output \ + | sed -ne 's/[ ][ ]*/ /g; + s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; + / /s/.* //;p;'` + +fi +echo "$as_me:$LINENO: result: $ac_cv_group_kmem" >&5 +echo "${ECHO_T}$ac_cv_group_kmem" >&6 + KMEM_GROUP=$ac_cv_group_kmem +fi +if test "x$ac_save_LIBS" = x; then + GETLOADAVG_LIBS=$LIBS +else + GETLOADAVG_LIBS=`echo "$LIBS" | sed "s!$ac_save_LIBS!!"` +fi +LIBS=$ac_save_LIBS + + + +# AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it +# doesn't. So, we will. + +if test "$ac_cv_header_nlist_h" = yes; then + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +int +main () +{ +struct nlist nl; + nl.n_name = "string"; + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + make_cv_nlist_struct=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +make_cv_nlist_struct=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext + if test "$make_cv_nlist_struct" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define NLIST_STRUCT 1 +_ACEOF + + fi +fi + +echo "$as_me:$LINENO: checking for sys_siglist declaration in signal.h or unistd.h" >&5 +echo $ECHO_N "checking for sys_siglist declaration in signal.h or unistd.h... $ECHO_C" >&6 +if test "${ac_cv_decl_sys_siglist+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +/* NetBSD declares sys_siglist in unistd.h. */ +#if HAVE_UNISTD_H +# include +#endif + +int +main () +{ +char *msg = *(sys_siglist + 1); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_decl_sys_siglist=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_decl_sys_siglist=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_decl_sys_siglist" >&5 +echo "${ECHO_T}$ac_cv_decl_sys_siglist" >&6 +if test $ac_cv_decl_sys_siglist = yes; then + +cat >>confdefs.h <<\_ACEOF +#define SYS_SIGLIST_DECLARED 1 +_ACEOF + +fi + + +# Check out the wait reality. + +for ac_header in sys/wait.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_func in waitpid wait3 +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +echo "$as_me:$LINENO: checking for union wait" >&5 +echo $ECHO_N "checking for union wait... $ECHO_C" >&6 +if test "${make_cv_union_wait+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +#include +int +main () +{ +union wait status; int pid; pid = wait (&status); +#ifdef WEXITSTATUS +/* Some POSIXoid systems have both the new-style macros and the old + union wait type, and they do not work together. If union wait + conflicts with WEXITSTATUS et al, we don't want to use it at all. */ +if (WEXITSTATUS (status) != 0) pid = -1; +#ifdef WTERMSIG +/* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */ +-- blow chunks here -- +#endif +#endif +#ifdef HAVE_WAITPID +/* Make sure union wait works with waitpid. */ +pid = waitpid (-1, &status, 0); +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + make_cv_union_wait=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +make_cv_union_wait=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi + +if test "$make_cv_union_wait" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UNION_WAIT 1 +_ACEOF + +fi +echo "$as_me:$LINENO: result: $make_cv_union_wait" >&5 +echo "${ECHO_T}$make_cv_union_wait" >&6 + + +# See if the user wants to use pmake's "customs" distributed build capability + +use_customs=false + +# Check whether --with-customs or --without-customs was given. +if test "${with_customs+set}" = set; then + withval="$with_customs" + case $withval in + n|no) : ;; + *) make_cppflags="$CPPFLAGS" + case $withval in + y|ye|yes) : ;; + *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs" + make_ldflags="$LDFLAGS -L$with_customs/lib" ;; + esac + +cf_test_netlibs=no +echo "$as_me:$LINENO: checking for network libraries" >&5 +echo $ECHO_N "checking for network libraries... $ECHO_C" >&6 +if test "${cf_cv_netlibs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +echo "$as_me:$LINENO: result: working..." >&5 +echo "${ECHO_T}working..." >&6 +cf_cv_netlibs="" +cf_test_netlibs=yes + +for ac_func in gethostname +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + + +echo "$as_me:$LINENO: checking for gethostname in -lnsl" >&5 +echo $ECHO_N "checking for gethostname in -lnsl... $ECHO_C" >&6 +if test "${ac_cv_lib_nsl_gethostname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $cf_cv_netlibs $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostname (); +int +main () +{ +gethostname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_gethostname=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_nsl_gethostname=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostname" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostname" >&6 +if test $ac_cv_lib_nsl_gethostname = yes; then + + +cf_tr_func=`echo gethostname | tr '[a-z]' '[A-Z]'` + + +cat >>confdefs.h <<_ACEOF +#define HAVE_$cf_tr_func 1 +_ACEOF + + ac_cv_func_gethostname=yes + cf_cv_netlibs="-lnsl $cf_cv_netlibs" +else + + ac_cv_func_gethostname=unknown + unset ac_cv_func_gethostname 2>/dev/null + + +echo "$as_me:$LINENO: checking for gethostname in -lsocket" >&5 +echo $ECHO_N "checking for gethostname in -lsocket... $ECHO_C" >&6 +if test "${ac_cv_lib_socket_gethostname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $cf_cv_netlibs $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostname (); +int +main () +{ +gethostname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_gethostname=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_socket_gethostname=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostname" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_gethostname" >&6 +if test $ac_cv_lib_socket_gethostname = yes; then + + +cf_tr_func=`echo gethostname | tr '[a-z]' '[A-Z]'` + + +cat >>confdefs.h <<_ACEOF +#define HAVE_$cf_tr_func 1 +_ACEOF + + ac_cv_func_gethostname=yes + cf_cv_netlibs="-lsocket $cf_cv_netlibs" +else + + ac_cv_func_gethostname=unknown + unset ac_cv_func_gethostname 2>/dev/null + +fi + + +fi + + +fi +done + +# +# FIXME: sequent needs this library (i.e., -lsocket -linet -lnsl), but +# I don't know the entrypoints - 97/7/22 TD +echo "$as_me:$LINENO: checking for main in -linet" >&5 +echo $ECHO_N "checking for main in -linet... $ECHO_C" >&6 +if test "${ac_cv_lib_inet_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-linet $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_inet_main=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_inet_main=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_inet_main" >&5 +echo "${ECHO_T}$ac_cv_lib_inet_main" >&6 +if test $ac_cv_lib_inet_main = yes; then + cf_cv_netlibs="-linet $cf_cv_netlibs" +fi + +# +if test "$ac_cv_func_lsocket" != no ; then + +for ac_func in socket +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + + +echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 +echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 +if test "${ac_cv_lib_socket_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $cf_cv_netlibs $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +int +main () +{ +socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_socket_socket=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_socket_socket=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 +if test $ac_cv_lib_socket_socket = yes; then + + +cf_tr_func=`echo socket | tr '[a-z]' '[A-Z]'` + + +cat >>confdefs.h <<_ACEOF +#define HAVE_$cf_tr_func 1 +_ACEOF + + ac_cv_func_socket=yes + cf_cv_netlibs="-lsocket $cf_cv_netlibs" +else + + ac_cv_func_socket=unknown + unset ac_cv_func_socket 2>/dev/null + + +echo "$as_me:$LINENO: checking for socket in -lbsd" >&5 +echo $ECHO_N "checking for socket in -lbsd... $ECHO_C" >&6 +if test "${ac_cv_lib_bsd_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $cf_cv_netlibs $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char socket (); +int +main () +{ +socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_bsd_socket=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_bsd_socket=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_bsd_socket" >&6 +if test $ac_cv_lib_bsd_socket = yes; then + + +cf_tr_func=`echo socket | tr '[a-z]' '[A-Z]'` + + +cat >>confdefs.h <<_ACEOF +#define HAVE_$cf_tr_func 1 +_ACEOF + + ac_cv_func_socket=yes + cf_cv_netlibs="-lbsd $cf_cv_netlibs" +else + + ac_cv_func_socket=unknown + unset ac_cv_func_socket 2>/dev/null + +fi + + +fi + + +fi +done + +fi +# + +for ac_func in gethostbyname +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + + +echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $cf_cv_netlibs $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main () +{ +gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_nsl_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_nsl_gethostbyname=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 +if test $ac_cv_lib_nsl_gethostbyname = yes; then + + +cf_tr_func=`echo gethostbyname | tr '[a-z]' '[A-Z]'` + + +cat >>confdefs.h <<_ACEOF +#define HAVE_$cf_tr_func 1 +_ACEOF + + ac_cv_func_gethostbyname=yes + cf_cv_netlibs="-lnsl $cf_cv_netlibs" +else + + ac_cv_func_gethostbyname=unknown + unset ac_cv_func_gethostbyname 2>/dev/null + +fi + + +fi +done + +# + +for ac_func in strcasecmp +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +char (*f) (); + +int +main () +{ +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +f = $ac_func; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + + +echo "$as_me:$LINENO: checking for strcasecmp in -lresolv" >&5 +echo $ECHO_N "checking for strcasecmp in -lresolv... $ECHO_C" >&6 +if test "${ac_cv_lib_resolv_strcasecmp+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolv $cf_cv_netlibs $LIBS" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strcasecmp (); +int +main () +{ +strcasecmp (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_resolv_strcasecmp=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_lib_resolv_strcasecmp=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_strcasecmp" >&5 +echo "${ECHO_T}$ac_cv_lib_resolv_strcasecmp" >&6 +if test $ac_cv_lib_resolv_strcasecmp = yes; then + + +cf_tr_func=`echo strcasecmp | tr '[a-z]' '[A-Z]'` + + +cat >>confdefs.h <<_ACEOF +#define HAVE_$cf_tr_func 1 +_ACEOF + + ac_cv_func_strcasecmp=yes + cf_cv_netlibs="-lresolv $cf_cv_netlibs" +else + + ac_cv_func_strcasecmp=unknown + unset ac_cv_func_strcasecmp 2>/dev/null + +fi + + +fi +done + + +fi + +LIBS="$LIBS $cf_cv_netlibs" +test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6 + + if test "${ac_cv_header_customs_h+set}" = set; then + echo "$as_me:$LINENO: checking for customs.h" >&5 +echo $ECHO_N "checking for customs.h... $ECHO_C" >&6 +if test "${ac_cv_header_customs_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_customs_h" >&5 +echo "${ECHO_T}$ac_cv_header_customs_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking customs.h usability" >&5 +echo $ECHO_N "checking customs.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking customs.h presence" >&5 +echo $ECHO_N "checking customs.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: customs.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: customs.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: customs.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: customs.h: proceeding with the preprocessor's result" >&2;};; + no:yes ) + { echo "$as_me:$LINENO: WARNING: customs.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: customs.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: customs.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: customs.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: customs.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: customs.h: proceeding with the preprocessor's result" >&2;};; +esac +echo "$as_me:$LINENO: checking for customs.h" >&5 +echo $ECHO_N "checking for customs.h... $ECHO_C" >&6 +if test "${ac_cv_header_customs_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_customs_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_customs_h" >&5 +echo "${ECHO_T}$ac_cv_header_customs_h" >&6 + +fi +if test $ac_cv_header_customs_h = yes; then + use_customs=true + LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags" +else + with_customs=no + CPPFLAGS="$make_cppflags" make_badcust=yes +fi + + + ;; + esac +fi; +# Tell automake about this, so it can include the right .c files. + + +if test "$use_customs" = true; then + USE_CUSTOMS_TRUE= + USE_CUSTOMS_FALSE='#' +else + USE_CUSTOMS_TRUE='#' + USE_CUSTOMS_FALSE= +fi + + +# See if we can handle the job server feature, and if the user wants it. + +# Check whether --enable-job-server or --disable-job-server was given. +if test "${enable_job_server+set}" = set; then + enableval="$enable_job_server" + make_cv_job_server="$enableval" user_job_server="$enableval" +else + make_cv_job_server="yes" +fi; + +has_wait_nohang=yes +case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in + no/no) has_wait_nohang=no ;; +esac + +echo "$as_me:$LINENO: checking for SA_RESTART" >&5 +echo $ECHO_N "checking for SA_RESTART... $ECHO_C" >&6 +if test "${make_cv_sa_restart+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" +#include +int +main () +{ +return SA_RESTART; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + make_cv_sa_restart=yes +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +make_cv_sa_restart=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $make_cv_sa_restart" >&5 +echo "${ECHO_T}$make_cv_sa_restart" >&6 +if test "$make_cv_sa_restart" != no; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SA_RESTART 1 +_ACEOF + +fi + +case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in + yes/yes/yes/yes/yes) + +cat >>confdefs.h <<\_ACEOF +#define MAKE_JOBSERVER 1 +_ACEOF +;; +esac + +# Find the SCCS commands, so we can include them in our default rules. + +echo "$as_me:$LINENO: checking for location of SCCS get command" >&5 +echo $ECHO_N "checking for location of SCCS get command... $ECHO_C" >&6 +if test "${make_cv_path_sccs_get+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test -f /usr/sccs/get; then + make_cv_path_sccs_get=/usr/sccs/get +else + make_cv_path_sccs_get=get +fi +fi +echo "$as_me:$LINENO: result: $make_cv_path_sccs_get" >&5 +echo "${ECHO_T}$make_cv_path_sccs_get" >&6 + +cat >>confdefs.h <<_ACEOF +#define SCCS_GET "$make_cv_path_sccs_get" +_ACEOF + + +ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later. +if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 && + test -f s.conftest; then + # We successfully created an SCCS file. + echo "$as_me:$LINENO: checking if SCCS get command understands -G" >&5 +echo $ECHO_N "checking if SCCS get command understands -G... $ECHO_C" >&6 +if test "${make_cv_sys_get_minus_G+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 && + test -f conftoast; then + make_cv_sys_get_minus_G=yes + else + make_cv_sys_get_minus_G=no + fi +fi +echo "$as_me:$LINENO: result: $make_cv_sys_get_minus_G" >&5 +echo "${ECHO_T}$make_cv_sys_get_minus_G" >&6 + case "$make_cv_sys_get_minus_G" in + yes) +cat >>confdefs.h <<\_ACEOF +#define SCCS_GET_MINUS_G 1 +_ACEOF +;; + esac +fi +rm -f s.conftest conftoast + +# Check the system to see if it provides GNU glob. If not, use our +# local version. + +echo "$as_me:$LINENO: checking if system libc has GNU glob" >&5 +echo $ECHO_N "checking if system libc has GNU glob... $ECHO_C" >&6 +if test "${make_cv_sys_gnu_glob+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +#include +#include +#include + +#define GLOB_INTERFACE_VERSION 1 +#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 +# include +# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION + gnu glob +# endif +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gnu glob" >/dev/null 2>&1; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 +make_cv_sys_gnu_glob=yes +else + echo "$as_me:$LINENO: result: no; using local copy" >&5 +echo "${ECHO_T}no; using local copy" >&6 + GLOBINC='-I$(srcdir)/glob' + GLOBLIB=glob/libglob.a +make_cv_sys_gnu_glob=no +fi +rm -f conftest* + +fi + +# Tell automake about this, so it can build the right .c files. + + +if test "$make_cv_sys_gnu_glob" = no; then + USE_LOCAL_GLOB_TRUE= + USE_LOCAL_GLOB_FALSE='#' +else + USE_LOCAL_GLOB_TRUE='#' + USE_LOCAL_GLOB_FALSE= +fi + + +# PTX systems have a broken implementation of SA_RESTART. I know of +# no way to test for this behavior, so I'll just test for PTX + +case "$host" in + i386-sequent-sysv4) + +cat >>confdefs.h <<\_ACEOF +#define HAVE_BROKEN_RESTART 1 +_ACEOF + + echo "" + echo "WARNING: The SA_RESTART sigaction() flag does not work on PTX." + echo " This causes 'make -j' to fail at random times." + echo " I am installing a workaround, which is mostly but not 100%" + echo " effective. If you see random failures during 'make -j'" + echo " you should either contact the bug list, or not use -j." + echo "" ;; +esac + +# Let the makefile know what our build host is + + +cat >>confdefs.h <<_ACEOF +#define MAKE_HOST "$host" +_ACEOF + +MAKE_HOST="$host" + + +# Include the Maintainer's Makefile section, if it's here. + +MAINT_MAKEFILE=/dev/null +if test -r "$srcdir/maintMakefile"; then + MAINT_MAKEFILE="$srcdir/maintMakefile" +fi + + +# Allow building with dmalloc +echo "$as_me:$LINENO: checking if malloc debugging is wanted" >&5 +echo $ECHO_N "checking if malloc debugging is wanted... $ECHO_C" >&6 + +# Check whether --with-dmalloc or --without-dmalloc was given. +if test "${with_dmalloc+set}" = set; then + withval="$with_dmalloc" + if test "$withval" = yes; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +cat >>confdefs.h <<\_ACEOF +#define WITH_DMALLOC 1 +_ACEOF + + LIBS="$LIBS -ldmalloc" + LDFLAGS="$LDFLAGS -g" +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi; + + + +# Sanity check and inform the user of what we found + +case "$make_badcust" in + yes) echo + echo "WARNING: --with-customs specified but no customs.h could be found;" + echo " disabling Customs support." + echo ;; +esac + +case "$with_customs" in + ""|n|no|y|ye|yes) ;; + *) if test -f "$with_customs/lib/libcustoms.a"; then + : + else + echo + echo "WARNING: '$with_customs/lib' does not appear to contain the" + echo " Customs library. You must build and install Customs" + echo " before compiling GNU make." + echo + fi ;; +esac + +case "$has_wait_nohang" in + no) echo + echo "WARNING: Your system has neither waitpid() nor wait3()." + echo " Without one of these, signal handling is unreliable." + echo " You should be aware that running GNU make with -j" + echo " could result in erratic behavior." + echo ;; +esac + +case "$make_cv_job_server/$user_job_server" in + no/yes) echo + echo "WARNING: Make job server requires a POSIX-ish system that" + echo " supports the pipe(), sigaction(), and either" + echo " waitpid() or wait3() functions. Your system doesn't" + echo " appear to provide one or more of those." + echo " Disabling job server support." + echo ;; +esac + + +# Specify what files are to be created. +# We only generate the build.sh if we have a build.sh.in; we won't have +# one before we've created a distribution. + + ac_config_files="$ac_config_files Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile" + + +if test -f $srcdir/build.sh.in; then + ac_config_files="$ac_config_files build.sh" + +fi + + +# OK, do it! + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if cmp -s $cache_file confcache; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${USE_CUSTOMS_TRUE}" && test -z "${USE_CUSTOMS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"USE_CUSTOMS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"USE_CUSTOMS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${USE_LOCAL_GLOB_TRUE}" && test -z "${USE_LOCAL_GLOB_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"USE_LOCAL_GLOB\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"USE_LOCAL_GLOB\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conftest.sh + echo "exit 0" >>conftest.sh + chmod +x conftest.sh + if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conftest.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by GNU make $as_me 3.80, which was +generated by GNU Autoconf 2.54. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +GNU make config.status 3.80 +configured by $0, generated by GNU Autoconf 2.54, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" + exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS section. +# + +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it + # from automake. + eval 'ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "glob/Makefile" ) CONFIG_FILES="$CONFIG_FILES glob/Makefile" ;; + "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;; + "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "build.sh" ) CONFIG_FILES="$CONFIG_FILES build.sh" ;; + "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. +: ${TMPDIR=/tmp} +{ + tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=$TMPDIR/cs$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@CYGPATH_W@,$CYGPATH_W,;t t +s,@PACKAGE@,$PACKAGE,;t t +s,@VERSION@,$VERSION,;t t +s,@ACLOCAL@,$ACLOCAL,;t t +s,@AUTOCONF@,$AUTOCONF,;t t +s,@AUTOMAKE@,$AUTOMAKE,;t t +s,@AUTOHEADER@,$AUTOHEADER,;t t +s,@MAKEINFO@,$MAKEINFO,;t t +s,@AMTAR@,$AMTAR,;t t +s,@install_sh@,$install_sh,;t t +s,@STRIP@,$STRIP,;t t +s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t +s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t +s,@AWK@,$AWK,;t t +s,@SET_MAKE@,$SET_MAKE,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@DEPDIR@,$DEPDIR,;t t +s,@am__include@,$am__include,;t t +s,@am__quote@,$am__quote,;t t +s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t +s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t +s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t +s,@CCDEPMODE@,$CCDEPMODE,;t t +s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t +s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@CPP@,$CPP,;t t +s,@AR@,$AR,;t t +s,@PERL@,$PERL,;t t +s,@build@,$build,;t t +s,@build_cpu@,$build_cpu,;t t +s,@build_vendor@,$build_vendor,;t t +s,@build_os@,$build_os,;t t +s,@host@,$host,;t t +s,@host_cpu@,$host_cpu,;t t +s,@host_vendor@,$host_vendor,;t t +s,@host_os@,$host_os,;t t +s,@EGREP@,$EGREP,;t t +s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t +s,@MSGFMT@,$MSGFMT,;t t +s,@GMSGFMT@,$GMSGFMT,;t t +s,@XGETTEXT@,$XGETTEXT,;t t +s,@MSGMERGE@,$MSGMERGE,;t t +s,@USE_NLS@,$USE_NLS,;t t +s,@LIBICONV@,$LIBICONV,;t t +s,@LTLIBICONV@,$LTLIBICONV,;t t +s,@INTLLIBS@,$INTLLIBS,;t t +s,@LIBINTL@,$LIBINTL,;t t +s,@LTLIBINTL@,$LTLIBINTL,;t t +s,@POSUB@,$POSUB,;t t +s,@ALLOCA@,$ALLOCA,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@NEED_SETGID@,$NEED_SETGID,;t t +s,@KMEM_GROUP@,$KMEM_GROUP,;t t +s,@GETLOADAVG_LIBS@,$GETLOADAVG_LIBS,;t t +s,@USE_CUSTOMS_TRUE@,$USE_CUSTOMS_TRUE,;t t +s,@USE_CUSTOMS_FALSE@,$USE_CUSTOMS_FALSE,;t t +s,@GLOBINC@,$GLOBINC,;t t +s,@GLOBLIB@,$GLOBLIB,;t t +s,@USE_LOCAL_GLOB_TRUE@,$USE_LOCAL_GLOB_TRUE,;t t +s,@USE_LOCAL_GLOB_FALSE@,$USE_LOCAL_GLOB_FALSE,;t t +s,@MAKE_HOST@,$MAKE_HOST,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +/@MAINT_MAKEFILE@/r $MAINT_MAKEFILE +s,@MAINT_MAKEFILE@,,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_HEADER section. +# + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' +ac_uC=' ' +ac_uD=',;t' + +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + +_ACEOF + +# Transform confdefs.h into two sed scripts, `conftest.defines' and +# `conftest.undefs', that substitutes the proper values into +# config.h.in to produce config.h. The first handles `#define' +# templates, and the second `#undef' templates. +# And first: Protect against being on the right side of a sed subst in +# config.status. Protect against being in an unquoted here document +# in config.status. +rm -f conftest.defines conftest.undefs +# Using a here document instead of a string reduces the quoting nightmare. +# Putting comments in sed scripts is not portable. +# +# `end' is used to avoid that the second main sed command (meant for +# 0-ary CPP macros) applies to n-ary macro definitions. +# See the Autoconf documentation for `clear'. +cat >confdef2sed.sed <<\_ACEOF +s/[\\&,]/\\&/g +s,[\\$`],\\&,g +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +t end +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +: end +_ACEOF +# If some macros were called several times there might be several times +# the same #defines, which is useless. Nevertheless, we may not want to +# sort them, since we want the *last* AC-DEFINE to be honored. +uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines +sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs +rm -f confdef2sed.sed + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >>conftest.undefs <<\_ACEOF +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +_ACEOF + +# Break up conftest.defines because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS +echo ' :' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.defines >/dev/null +do + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/defines.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines +echo ' fi # grep' >>$CONFIG_STATUS +echo >>$CONFIG_STATUS + +# Break up conftest.undefs because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #undef templates' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.undefs >/dev/null +do + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/undefs.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail + rm -f conftest.undefs + mv conftest.tail conftest.undefs +done +rm -f conftest.undefs + +cat >>$CONFIG_STATUS <<\_ACEOF + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h + else + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h + fi + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in + if test x"$ac_file" != x-; then + if cmp -s $ac_file $tmp/config.h 2>/dev/null; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + rm -f $ac_file + mv $tmp/config.h $ac_file + fi + else + cat $tmp/config.h + rm -f $tmp/config.h + fi +_am_stamp_count=`expr ${_am_stamp_count-0} + 1` +echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || +$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X$ac_file : 'X\(//\)[^/]' \| \ + X$ac_file : 'X\(//\)$' \| \ + X$ac_file : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X$ac_file | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'`/stamp-h$_am_stamp_count +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_COMMANDS section. +# +for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue + ac_dest=`echo "$ac_file" | sed 's,:.*,,'` + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || +$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +echo "$as_me: executing $ac_dest commands" >&6;} + case $ac_dest in + depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`(dirname "$mf") 2>/dev/null || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + else + continue + fi + grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue + # Extract the definition of DEP_FILES from the Makefile without + # running `make'. + DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` + test -z "$DEPDIR" && continue + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n -e '/^U = / s///p' < "$mf"` + test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" + # We invoke sed twice because it is the simplest approach to + # changing $(DEPDIR) to its actual value in the expansion. + for file in `sed -n -e ' + /^DEP_FILES = .*\\\\$/ { + s/^DEP_FILES = // + :loop + s/\\\\$// + p + n + /\\\\$/ b loop + p + } + /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`(dirname "$file") 2>/dev/null || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p $dirpart/$fdir + else + as_dir=$dirpart/$fdir + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 +echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} + { (exit 1); exit 1; }; }; } + + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + default-1 ) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + fi + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + GMOFILES= + UPDATEPOFILES= + DUMMYPOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + esac +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + exec 5>/dev/null + $SHELL $CONFIG_STATUS || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + + diff --git a/src/mkutil/make-3.80/configure.bat b/src/mkutil/make-3.80/configure.bat new file mode 100644 index 00000000..a3579239 --- /dev/null +++ b/src/mkutil/make-3.80/configure.bat @@ -0,0 +1,44 @@ +@echo off +echo Configuring MAKE for DJGPP + +rem The SmallEnv trick protects against too small environment block, +rem in which case the values will be truncated and the whole thing +rem goes awry. COMMAND.COM will say "Out of environment space", but +rem many people don't care, so we force them to care by refusing to go. + +rem Where is the srcdir? +set XSRC=. +if not "%XSRC%"=="." goto SmallEnv +if "%1%"=="" goto SrcDone +set XSRC=%1 +if not "%XSRC%"=="%1" goto SmallEnv + +:SrcDone + +update %XSRC%/configh.dos ./config.h + +rem Do they have Make? +redir -o junk.$$$ -eo make -n -f NUL +rem REDIR will return 1 if it cannot run Make. +rem If it can run Make, it will usually return 2, +rem but 0 is also OK with us. +if errorlevel 2 goto MakeOk +if not errorlevel 1 goto MakeOk +if exist junk.$$$ del junk.$$$ +echo No Make program found--use DOSBUILD.BAT to build Make. +goto End + +rem They do have Make. Generate the Makefile. + +:MakeOk +del junk.$$$ +update %XSRC%/Makefile.DOS ./Makefile +echo Done. +if not "%XSRC%"=="." echo Invoke Make thus: "make srcdir=%XSRC%" +goto End + +:SmallEnv +echo Your environment is too small. Please enlarge it and run me again. + +:End +set XRSC= diff --git a/src/mkutil/make-3.80/configure.in b/src/mkutil/make-3.80/configure.in new file mode 100644 index 00000000..bca2bd38 --- /dev/null +++ b/src/mkutil/make-3.80/configure.in @@ -0,0 +1,390 @@ +# Process this file with autoconf to produce a configure script. + +AC_INIT(GNU make,3.80,bug-make@gnu.org) + +AC_PREREQ(2.54) + +AC_REVISION([[$Id: configure.in,v 1.114 2002/10/03 05:46:12 psmith Exp $]]) + +# Autoconf setup +AC_CONFIG_AUX_DIR(config) +AC_CONFIG_SRCDIR(vpath.c) +AC_CONFIG_HEADERS(config.h) + +# Automake setup +AM_INIT_AUTOMAKE +AC_PROG_MAKE_SET + +# Checks for programs. +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_RANLIB +AC_PROG_CPP +AC_CHECK_PROG(AR, ar, ar, ar) +# Perl is needed for the test suite (only) +AC_CHECK_PROG(PERL, perl, perl, perl) + +# Specialized system macros +AC_CANONICAL_HOST +AC_AIX +AC_ISC_POSIX +AC_MINIX + +# Enable gettext, in "external" mode. + +AM_GNU_GETTEXT_VERSION(0.11.5) +AM_GNU_GETTEXT([external]) + +# This test must come as early as possible after the compiler configuration +# tests, because the choice of the file model can (in principle) affect +# whether functions and headers are available, whether they work, etc. +AC_SYS_LARGEFILE + +# Checks for libraries. +AC_SEARCH_LIBS(getpwnam, [sun]) + +# Checks for header files. +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_HEADER_STAT +AC_HEADER_TIME +AC_CHECK_HEADERS(stdlib.h locale.h unistd.h limits.h fcntl.h string.h \ + memory.h sys/param.h sys/time.h sys/timeb.h) + +AM_PROG_CC_C_O +AM_PROG_CC_STDC +AC_C_CONST +AC_TYPE_SIGNAL +AC_TYPE_UID_T +AC_TYPE_PID_T + +# Find some definition for uintmax_t + +AC_CHECK_TYPE(uintmax_t,,[ + uintmax_t="unsigned long" + AC_CHECK_TYPE(unsigned long long,[uintmax_t="unsigned long long"]) + AC_DEFINE_UNQUOTED(uintmax_t,$uintmax_t,[Define uintmax_t if not defined in or .])]) + +# Find out whether our struct stat returns nanosecond resolution timestamps. + +AC_STRUCT_ST_MTIM_NSEC +AC_MSG_CHECKING([whether to use high resolution file timestamps]) +AC_CACHE_VAL(make_cv_file_timestamp_hi_res, [ + make_cv_file_timestamp_hi_res=no + if test "$ac_cv_struct_st_mtim_nsec" != no; then + AC_TRY_COMPILE([ +# if HAVE_INTTYPES_H +# include +# endif], + [char a[0x7fffffff < (uintmax_t) -1 >> 30 ? 1 : -1];], + make_cv_file_timestamp_hi_res=yes) + fi]) +AC_MSG_RESULT($make_cv_file_timestamp_hi_res) +if test "$make_cv_file_timestamp_hi_res" = yes; then + val=1 +else + val=0 +fi +AC_DEFINE_UNQUOTED(FILE_TIMESTAMP_HI_RES, $val, + [Use high resolution file timestamps if nonzero.]) + +if test "$make_cv_file_timestamp_hi_res" = yes; then + # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function. + # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4. + AC_SEARCH_LIBS(clock_gettime, [rt posix4]) + if test "$ac_cv_search_clock_gettime" != no; then + AC_DEFINE(HAVE_CLOCK_GETTIME, 1, + [Define if you have the clock_gettime function.]) + fi +fi + + +# See if we have a standard version of gettimeofday(). Since actual +# implementations can differ, just make sure we have the most common +# one. +AC_CACHE_CHECK([for standard gettimeofday], ac_cv_func_gettimeofday, + [ac_cv_func_gettimeofday=no + AC_TRY_RUN([#include + int main () + { + struct timeval t; t.tv_sec = -1; t.tv_usec = -1; + exit (gettimeofday (&t, 0) != 0 + || t.tv_sec < 0 || t.tv_usec < 0); + }], + ac_cv_func_gettimeofday=yes, + ac_cv_func_gettimeofday=no, + ac_cv_func_gettimeofday="no (cross-compiling)")]) +if test "$ac_cv_func_gettimeofday" = yes; then + AC_DEFINE(HAVE_GETTIMEOFDAY, 1, + [Define if you have a standard gettimeofday function]) +fi + +AC_CHECK_FUNCS( memcpy memmove strchr strdup mkstemp mktemp fdopen \ + bsd_signal dup2 getcwd sigsetmask sigaction getgroups \ + seteuid setegid setlinebuf setreuid setregid setvbuf pipe \ + strerror strsignal) + +make_FUNC_SETVBUF_REVERSED + +# strcoll() is used by the GNU glob library +AC_FUNC_STRCOLL + +AC_FUNC_ALLOCA +AC_FUNC_VFORK +AC_FUNC_VPRINTF +AC_FUNC_CLOSEDIR_VOID + +AC_FUNC_GETLOADAVG + +# AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it +# doesn't. So, we will. + +if test "$ac_cv_header_nlist_h" = yes; then + AC_TRY_COMPILE([#include ], + [struct nlist nl; + nl.n_name = "string"; + return 0;], + make_cv_nlist_struct=yes, + make_cv_nlist_struct=no) + if test "$make_cv_nlist_struct" = yes; then + AC_DEFINE(NLIST_STRUCT, 1, + [Define if struct nlist.n_name is a pointer rather than an array.]) + fi +fi + +AC_DECL_SYS_SIGLIST + +# Check out the wait reality. +AC_CHECK_HEADERS(sys/wait.h) +AC_CHECK_FUNCS(waitpid wait3) +AC_MSG_CHECKING(for union wait) +AC_CACHE_VAL(make_cv_union_wait, [dnl +AC_TRY_LINK([#include +#include ], + [union wait status; int pid; pid = wait (&status); +#ifdef WEXITSTATUS +/* Some POSIXoid systems have both the new-style macros and the old + union wait type, and they do not work together. If union wait + conflicts with WEXITSTATUS et al, we don't want to use it at all. */ +if (WEXITSTATUS (status) != 0) pid = -1; +#ifdef WTERMSIG +/* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */ +-- blow chunks here -- +#endif +#endif +#ifdef HAVE_WAITPID +/* Make sure union wait works with waitpid. */ +pid = waitpid (-1, &status, 0); +#endif +], + [make_cv_union_wait=yes], [make_cv_union_wait=no])]) +if test "$make_cv_union_wait" = yes; then + AC_DEFINE(HAVE_UNION_WAIT, 1, [Define this if you have the \`union wait' type in .]) +fi +AC_MSG_RESULT($make_cv_union_wait) + + +# See if the user wants to use pmake's "customs" distributed build capability + +use_customs=false +AC_ARG_WITH(customs, + AC_HELP_STRING([--with-customs=DIR], + [enable remote jobs via Customs--see README.customs]), + [case $withval in + n|no) : ;; + *) make_cppflags="$CPPFLAGS" + case $withval in + y|ye|yes) : ;; + *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs" + make_ldflags="$LDFLAGS -L$with_customs/lib" ;; + esac + CF_NETLIBS + AC_CHECK_HEADER(customs.h, + [use_customs=true + LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"], + [with_customs=no + CPPFLAGS="$make_cppflags" make_badcust=yes]) + ;; + esac]) +# Tell automake about this, so it can include the right .c files. +AM_CONDITIONAL(USE_CUSTOMS, test "$use_customs" = true) + +# See if we can handle the job server feature, and if the user wants it. + +AC_ARG_ENABLE(job-server, + AC_HELP_STRING([--disable-job-server], + [disallow recursive make communication during -jN]), + [make_cv_job_server="$enableval" user_job_server="$enableval"], + [make_cv_job_server="yes"]) + +has_wait_nohang=yes +case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in + no/no) has_wait_nohang=no ;; +esac + +AC_CACHE_CHECK(for SA_RESTART, make_cv_sa_restart, [ + AC_TRY_COMPILE([#include ], + [return SA_RESTART;], + make_cv_sa_restart=yes, + make_cv_sa_restart=no)]) +if test "$make_cv_sa_restart" != no; then + AC_DEFINE(HAVE_SA_RESTART, 1, + [Define if defines the SA_RESTART constant.]) +fi + +case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in + yes/yes/yes/yes/yes) + AC_DEFINE(MAKE_JOBSERVER, 1, + [Define this to enable job server support in GNU make.]);; +esac + +# Find the SCCS commands, so we can include them in our default rules. + +AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [ +if test -f /usr/sccs/get; then + make_cv_path_sccs_get=/usr/sccs/get +else + make_cv_path_sccs_get=get +fi]) +AC_DEFINE_UNQUOTED(SCCS_GET, ["$make_cv_path_sccs_get"], [Define to the name of the SCCS 'get' command.]) + +ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later. +if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 && + test -f s.conftest; then + # We successfully created an SCCS file. + AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [ + if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 && + test -f conftoast; then + make_cv_sys_get_minus_G=yes + else + make_cv_sys_get_minus_G=no + fi]) + case "$make_cv_sys_get_minus_G" in + yes) AC_DEFINE(SCCS_GET_MINUS_G, 1, + [Define this if the SCCS 'get' command understands the '-G' option.]);; + esac +fi +rm -f s.conftest conftoast + +# Check the system to see if it provides GNU glob. If not, use our +# local version. + +AC_MSG_CHECKING(if system libc has GNU glob) +AC_CACHE_VAL(make_cv_sys_gnu_glob, [ + AC_EGREP_CPP(gnu glob,[ +#include +#include +#include + +#define GLOB_INTERFACE_VERSION 1 +#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 +# include +# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION + gnu glob +# endif +#endif + ], [AC_MSG_RESULT(yes) +make_cv_sys_gnu_glob=yes], [AC_MSG_RESULT([no; using local copy]) +AC_SUBST(GLOBINC) GLOBINC='-I$(srcdir)/glob' +AC_SUBST(GLOBLIB) GLOBLIB=glob/libglob.a +make_cv_sys_gnu_glob=no])]) +# Tell automake about this, so it can build the right .c files. +AM_CONDITIONAL(USE_LOCAL_GLOB, test "$make_cv_sys_gnu_glob" = no) + +# PTX systems have a broken implementation of SA_RESTART. I know of +# no way to test for this behavior, so I'll just test for PTX + +case "$host" in + i386-sequent-sysv4) + AC_DEFINE(HAVE_BROKEN_RESTART, 1, [This system has SA_RESTART, but it doesn't work properly.]) + echo "" + echo "WARNING: The SA_RESTART sigaction() flag does not work on PTX." + echo " This causes 'make -j' to fail at random times." + echo " I am installing a workaround, which is mostly but not 100%" + echo " effective. If you see random failures during 'make -j'" + echo " you should either contact the bug list, or not use -j." + echo "" ;; +esac + +# Let the makefile know what our build host is + +AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.]) +MAKE_HOST="$host" +AC_SUBST(MAKE_HOST) + +# Include the Maintainer's Makefile section, if it's here. + +MAINT_MAKEFILE=/dev/null +if test -r "$srcdir/maintMakefile"; then + MAINT_MAKEFILE="$srcdir/maintMakefile" +fi +AC_SUBST_FILE(MAINT_MAKEFILE) + +# Allow building with dmalloc +AM_WITH_DMALLOC + + +# Sanity check and inform the user of what we found + +case "$make_badcust" in + yes) echo + echo "WARNING: --with-customs specified but no customs.h could be found;" + echo " disabling Customs support." + echo ;; +esac + +case "$with_customs" in + ""|n|no|y|ye|yes) ;; + *) if test -f "$with_customs/lib/libcustoms.a"; then + : + else + echo + echo "WARNING: '$with_customs/lib' does not appear to contain the" + echo " Customs library. You must build and install Customs" + echo " before compiling GNU make." + echo + fi ;; +esac + +case "$has_wait_nohang" in + no) echo + echo "WARNING: Your system has neither waitpid() nor wait3()." + echo " Without one of these, signal handling is unreliable." + echo " You should be aware that running GNU make with -j" + echo " could result in erratic behavior." + echo ;; +esac + +case "$make_cv_job_server/$user_job_server" in + no/yes) echo + echo "WARNING: Make job server requires a POSIX-ish system that" + echo " supports the pipe(), sigaction(), and either" + echo " waitpid() or wait3() functions. Your system doesn't" + echo " appear to provide one or more of those." + echo " Disabling job server support." + echo ;; +esac + + +# Specify what files are to be created. +# We only generate the build.sh if we have a build.sh.in; we won't have +# one before we've created a distribution. + +AC_CONFIG_FILES(Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile) + +if test -f $srcdir/build.sh.in; then + AC_CONFIG_FILES(build.sh) +fi + + +# OK, do it! + +AC_OUTPUT + + +dnl Local Variables: +dnl comment-start: "dnl " +dnl comment-end: "" +dnl comment-start-skip: "\\bdnl\\b\\s *" +dnl compile-command: "make configure config.h.in" +dnl End: diff --git a/src/mkutil/make-3.80/debug.h b/src/mkutil/make-3.80/debug.h new file mode 100644 index 00000000..30c2d627 --- /dev/null +++ b/src/mkutil/make-3.80/debug.h @@ -0,0 +1,41 @@ +/* Debugging macros and interface. +Copyright (C) 1999 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +#define DB_NONE (0x000) +#define DB_BASIC (0x001) +#define DB_VERBOSE (0x002) +#define DB_JOBS (0x004) +#define DB_IMPLICIT (0x008) +#define DB_MAKEFILES (0x100) + +#define DB_ALL (0xfff) + +extern int db_level; + +#define ISDB(_l) ((_l)&db_level) + +#define DBS(_l,_x) do{ if(ISDB(_l)) {print_spaces (depth); \ + printf _x; fflush (stdout);} }while(0) + +#define DBF(_l,_x) do{ if(ISDB(_l)) {print_spaces (depth); \ + printf (_x, file->name); \ + fflush (stdout);} }while(0) + +#define DB(_l,_x) do{ if(ISDB(_l)) {printf _x; fflush (stdout);} }while(0) diff --git a/src/mkutil/make-3.80/default.c b/src/mkutil/make-3.80/default.c new file mode 100644 index 00000000..5d981b98 --- /dev/null +++ b/src/mkutil/make-3.80/default.c @@ -0,0 +1,585 @@ +/* Data base of default implicit rules for GNU Make. +Copyright (C) 1988,89,90,91,92,93,94,95,96 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "rule.h" +#include "dep.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "variable.h" + +/* Define GCC_IS_NATIVE if gcc is the native development environment on + your system (gcc/bison/flex vs cc/yacc/lex). */ +#ifdef __MSDOS__ +#define GCC_IS_NATIVE +#endif + + +/* This is the default list of suffixes for suffix rules. + `.s' must come last, so that a `.o' file will be made from + a `.c' or `.p' or ... file rather than from a .s file. */ + +static char default_suffixes[] +#ifdef VMS + = ".exe .olb .ln .obj .c .cxx .cc .pas .p .for .f .r .y .l .mar \ +.s .ss .i .ii .mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo \ +.w .ch .cweb .web .com .sh .elc .el"; +#else + = ".out .a .ln .o .c .cc .C .cpp .p .f .F .r .y .l .s .S \ +.mod .sym .def .h .info .dvi .tex .texinfo .texi .txinfo \ +.w .ch .web .sh .elc .el"; +#endif + +static struct pspec default_pattern_rules[] = + { + { "(%)", "%", + "$(AR) $(ARFLAGS) $@ $<" }, + + /* The X.out rules are only in BSD's default set because + BSD Make has no null-suffix rules, so `foo.out' and + `foo' are the same thing. */ +#ifdef VMS + { "%.exe", "%", + "copy $< $@" }, +#else + { "%.out", "%", + "@rm -f $@ \n cp $< $@" }, +#endif + /* Syntax is "ctangle foo.w foo.ch foo.c". */ + { "%.c", "%.w %.ch", + "$(CTANGLE) $^ $@" }, + { "%.tex", "%.w %.ch", + "$(CWEAVE) $^ $@" }, + + { 0, 0, 0 } + }; + +static struct pspec default_terminal_rules[] = + { +#ifdef VMS + /* RCS. */ + { "%", "%$$5lv", /* Multinet style */ + "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" }, + { "%", "[.$$rcs]%$$5lv", /* Multinet style */ + "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" }, + { "%", "%_v", /* Normal style */ + "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" }, + { "%", "[.rcs]%_v", /* Normal style */ + "if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" }, + + /* SCCS. */ + /* ain't no SCCS on vms */ +#else + /* RCS. */ + { "%", "%,v", + "$(CHECKOUT,v)" }, + { "%", "RCS/%,v", + "$(CHECKOUT,v)" }, + { "%", "RCS/%", + "$(CHECKOUT,v)" }, + + /* SCCS. */ + { "%", "s.%", + "$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<" }, + { "%", "SCCS/s.%", + "$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<" }, +#endif /* !VMS */ + { 0, 0, 0 } + }; + +static char *default_suffix_rules[] = + { +#ifdef VMS + ".obj.exe", + "$(LINK.obj) $^ $(LOADLIBES) $(LDLIBS) $(CRT0) /exe=$@", + ".mar.exe", + "$(COMPILE.mar) $^ \n $(LINK.obj) $(subst .mar,.obj,$^) $(LOADLIBES) $(LDLIBS) $(CRT0) /exe=$@", + ".s.exe", + "$(COMPILE.s) $^ \n $(LINK.obj) $(subst .s,.obj,$^) $(LOADLIBES) $(LDLIBS) $(CRT0) /exe=$@", + ".c.exe", + "$(COMPILE.c) $^ \n $(LINK.obj) $(subst .c,.obj,$^) $(LOADLIBES) $(LDLIBS) $(CRT0) /exe=$@", + ".cc.exe", +#ifdef GCC_IS_NATIVE + "$(COMPILE.cc) $^ \n $(LINK.obj) $(CXXSTARTUP),sys$$disk:[]$(subst .cc,.obj,$^) $(LOADLIBES) $(LXLIBS) $(LDLIBS) $(CXXRT0) /exe=$@", +#else + "$(COMPILE.cc) $^ \n $(CXXLINK.obj) $(subst .cc,.obj,$^) $(LOADLIBES) $(LXLIBS) $(LDLIBS) $(CXXRT0) /exe=$@", + ".cxx.exe", + "$(COMPILE.cxx) $^ \n $(CXXLINK.obj) $(subst .cxx,.obj,$^) $(LOADLIBES) $(LXLIBS) $(LDLIBS) $(CXXRT0) /exe=$@", +#endif + ".for.exe", + "$(COMPILE.for) $^ \n $(LINK.obj) $(subst .for,.obj,$^) $(LOADLIBES) $(LDLIBS) /exe=$@", + ".pas.exe", + "$(COMPILE.pas) $^ \n $(LINK.obj) $(subst .pas,.obj,$^) $(LOADLIBES) $(LDLIBS) /exe=$@", + + ".com", + "copy $< >$@", + + ".mar.obj", + "$(COMPILE.mar) /obj=$@ $<", + ".s.obj", + "$(COMPILE.s) /obj=$@ $<", + ".ss.obj", + "$(COMPILE.s) /obj=$@ $<", + ".c.i", + "$(COMPILE.c)/prep /list=$@ $<", + ".c.s", + "$(COMPILE.c)/noobj/machine /list=$@ $<", + ".i.s", + "$(COMPILE.c)/noprep/noobj/machine /list=$@ $<", + ".c.obj", + "$(COMPILE.c) /obj=$@ $<", + ".cc.ii", + "$(COMPILE.cc)/prep /list=$@ $<", + ".cc.ss", + "$(COMPILE.cc)/noobj/machine /list=$@ $<", + ".ii.ss", + "$(COMPILE.cc)/noprep/noobj/machine /list=$@ $<", + ".cc.obj", + "$(COMPILE.cc) /obj=$@ $<", + ".for.obj", + "$(COMPILE.for) /obj=$@ $<", + ".pas.obj", + "$(COMPILE.pas) /obj=$@ $<", + + ".y.c", + "$(YACC.y) $< \n rename y_tab.c $@", + ".l.c", + "$(LEX.l) $< \n rename lexyy.c $@", + + ".texinfo.info", + "$(MAKEINFO) $<", + + ".tex.dvi", + "$(TEX) $<", + +#else /* ! VMS */ + + ".o", + "$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".s", + "$(LINK.s) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".S", + "$(LINK.S) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".c", + "$(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".cc", + "$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".C", + "$(LINK.C) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".cpp", + "$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".f", + "$(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".p", + "$(LINK.p) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".F", + "$(LINK.F) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".r", + "$(LINK.r) $^ $(LOADLIBES) $(LDLIBS) -o $@", + ".mod", + "$(COMPILE.mod) -o $@ -e $@ $^", + + ".def.sym", + "$(COMPILE.def) -o $@ $<", + + ".sh", + "cat $< >$@ \n chmod a+x $@", + + ".s.o", + "$(COMPILE.s) -o $@ $<", + ".S.o", + "$(COMPILE.S) -o $@ $<", + ".c.o", + "$(COMPILE.c) $(OUTPUT_OPTION) $<", + ".cc.o", + "$(COMPILE.cc) $(OUTPUT_OPTION) $<", + ".C.o", + "$(COMPILE.C) $(OUTPUT_OPTION) $<", + ".cpp.o", + "$(COMPILE.cpp) $(OUTPUT_OPTION) $<", + ".f.o", + "$(COMPILE.f) $(OUTPUT_OPTION) $<", + ".p.o", + "$(COMPILE.p) $(OUTPUT_OPTION) $<", + ".F.o", + "$(COMPILE.F) $(OUTPUT_OPTION) $<", + ".r.o", + "$(COMPILE.r) $(OUTPUT_OPTION) $<", + ".mod.o", + "$(COMPILE.mod) -o $@ $<", + + ".c.ln", + "$(LINT.c) -C$* $<", + ".y.ln", +#ifndef __MSDOS__ + "$(YACC.y) $< \n $(LINT.c) -C$* y.tab.c \n $(RM) y.tab.c", +#else + "$(YACC.y) $< \n $(LINT.c) -C$* y_tab.c \n $(RM) y_tab.c", +#endif + ".l.ln", + "@$(RM) $*.c\n $(LEX.l) $< > $*.c\n$(LINT.c) -i $*.c -o $@\n $(RM) $*.c", + + ".y.c", +#ifndef __MSDOS__ + "$(YACC.y) $< \n mv -f y.tab.c $@", +#else + "$(YACC.y) $< \n mv -f y_tab.c $@", +#endif + ".l.c", + "@$(RM) $@ \n $(LEX.l) $< > $@", + + ".F.f", + "$(PREPROCESS.F) $(OUTPUT_OPTION) $<", + ".r.f", + "$(PREPROCESS.r) $(OUTPUT_OPTION) $<", + + /* This might actually make lex.yy.c if there's no %R% + directive in $*.l, but in that case why were you + trying to make $*.r anyway? */ + ".l.r", + "$(LEX.l) $< > $@ \n mv -f lex.yy.r $@", + + ".S.s", + "$(PREPROCESS.S) $< > $@", + + ".texinfo.info", + "$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@", + + ".texi.info", + "$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@", + + ".txinfo.info", + "$(MAKEINFO) $(MAKEINFO_FLAGS) $< -o $@", + + ".tex.dvi", + "$(TEX) $<", + + ".texinfo.dvi", + "$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<", + + ".texi.dvi", + "$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<", + + ".txinfo.dvi", + "$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<", + + ".w.c", + "$(CTANGLE) $< - $@", /* The `-' says there is no `.ch' file. */ + + ".web.p", + "$(TANGLE) $<", + + ".w.tex", + "$(CWEAVE) $< - $@", /* The `-' says there is no `.ch' file. */ + + ".web.tex", + "$(WEAVE) $<", + +#endif /* !VMS */ + + 0, 0, + }; + +static char *default_variables[] = + { +#ifdef VMS +#ifdef __ALPHA + "ARCH", "ALPHA", +#else + "ARCH", "VAX", +#endif + "AR", "library/obj", + "ARFLAGS", "/replace", + "AS", "macro", + "MACRO", "macro", +#ifdef GCC_IS_NATIVE + "CC", "gcc", +#else + "CC", "cc", +#endif + "CD", "builtin_cd", + "MAKE", "make", + "ECHO", "write sys$$output \"", +#ifdef GCC_IS_NATIVE + "C++", "gcc/plus", + "CXX", "gcc/plus", +#else + "C++", "cxx", + "CXX", "cxx", + "CXXLD", "cxxlink", +#endif + "CO", "co", + "CPP", "$(CC) /preprocess_only", + "FC", "fortran", + /* System V uses these, so explicit rules using them should work. + However, there is no way to make implicit rules use them and FC. */ + "F77", "$(FC)", + "F77FLAGS", "$(FFLAGS)", + "LD", "link", + "LEX", "lex", + "PC", "pascal", + "YACC", "bison/yacc", + "YFLAGS", "/Define/Verbose", + "BISON", "bison", + "MAKEINFO", "makeinfo", + "TEX", "tex", + "TEXINDEX", "texindex", + + "RM", "delete/nolog", + + "CSTARTUP", "", +#ifdef GCC_IS_NATIVE + "CRT0", ",sys$$library:vaxcrtl.olb/lib,gnu_cc_library:crt0.obj", + "CXXSTARTUP", "gnu_cc_library:crtbegin.obj", + "CXXRT0", ",sys$$library:vaxcrtl.olb/lib,gnu_cc_library:crtend.obj,gnu_cc_library:gxx_main.obj", + "LXLIBS", ",gnu_cc_library:libstdcxx.olb/lib,gnu_cc_library:libgccplus.olb/lib", + "LDLIBS", ",gnu_cc_library:libgcc.olb/lib", +#else + "CRT0", "", + "CXXSTARTUP", "", + "CXXRT0", "", + "LXLIBS", "", + "LDLIBS", "", +#endif + + "LINK.obj", "$(LD) $(LDFLAGS)", +#ifndef GCC_IS_NATIVE + "CXXLINK.obj", "$(CXXLD) $(LDFLAGS)", + "COMPILE.cxx", "$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH)", +#endif + "COMPILE.c", "$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH)", + "COMPILE.cc", "$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH)", + "YACC.y", "$(YACC) $(YFLAGS)", + "LEX.l", "$(LEX) $(LFLAGS)", + "COMPILE.for", "$(FC) $(FFLAGS) $(TARGET_ARCH)", + "COMPILE.pas", "$(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH)", + "COMPILE.mar", "$(MACRO) $(MACROFLAGS)", + "COMPILE.s", "$(AS) $(ASFLAGS) $(TARGET_MACH)", + "LINT.c", "$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)", + + "MV", "rename/new_version", + "CP", "copy", + +#else /* !VMS */ + + "AR", "ar", + "ARFLAGS", "rv", + "AS", "as", +#ifdef GCC_IS_NATIVE + "CC", "gcc", +# ifdef __MSDOS__ + "CXX", "gpp", /* g++ is an invalid name on MSDOS */ +# else + "CXX", "gcc", +# endif /* __MSDOS__ */ +#else + "CC", "cc", + "CXX", "g++", +#endif + + /* This expands to $(CO) $(COFLAGS) $< $@ if $@ does not exist, + and to the empty string if $@ does exist. */ + "CHECKOUT,v", "+$(if $(wildcard $@),,$(CO) $(COFLAGS) $< $@)", + "CO", "co", + "COFLAGS", "", + + "CPP", "$(CC) -E", +#ifdef CRAY + "CF77PPFLAGS", "-P", + "CF77PP", "/lib/cpp", + "CFT", "cft77", + "CF", "cf77", + "FC", "$(CF)", +#else /* Not CRAY. */ +#ifdef _IBMR2 + "FC", "xlf", +#else +#ifdef __convex__ + "FC", "fc", +#else + "FC", "f77", +#endif /* __convex__ */ +#endif /* _IBMR2 */ + /* System V uses these, so explicit rules using them should work. + However, there is no way to make implicit rules use them and FC. */ + "F77", "$(FC)", + "F77FLAGS", "$(FFLAGS)", +#endif /* Cray. */ + "GET", SCCS_GET, + "LD", "ld", +#ifdef GCC_IS_NATIVE + "LEX", "flex", +#else + "LEX", "lex", +#endif + "LINT", "lint", + "M2C", "m2c", +#ifdef pyr + "PC", "pascal", +#else +#ifdef CRAY + "PC", "PASCAL", + "SEGLDR", "segldr", +#else + "PC", "pc", +#endif /* CRAY. */ +#endif /* pyr. */ +#ifdef GCC_IS_NATIVE + "YACC", "bison -y", +#else + "YACC", "yacc", /* Or "bison -y" */ +#endif + "MAKEINFO", "makeinfo", + "TEX", "tex", + "TEXI2DVI", "texi2dvi", + "WEAVE", "weave", + "CWEAVE", "cweave", + "TANGLE", "tangle", + "CTANGLE", "ctangle", + + "RM", "rm -f", + + "LINK.o", "$(CC) $(LDFLAGS) $(TARGET_ARCH)", + "COMPILE.c", "$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c", + "LINK.c", "$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)", + "COMPILE.cc", "$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c", + "COMPILE.C", "$(COMPILE.cc)", + "COMPILE.cpp", "$(COMPILE.cc)", + "LINK.cc", "$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)", + "LINK.C", "$(LINK.cc)", + "LINK.cpp", "$(LINK.cc)", + "YACC.y", "$(YACC) $(YFLAGS)", + "LEX.l", "$(LEX) $(LFLAGS) -t", + "COMPILE.f", "$(FC) $(FFLAGS) $(TARGET_ARCH) -c", + "LINK.f", "$(FC) $(FFLAGS) $(LDFLAGS) $(TARGET_ARCH)", + "COMPILE.F", "$(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c", + "LINK.F", "$(FC) $(FFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)", + "COMPILE.r", "$(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -c", + "LINK.r", "$(FC) $(FFLAGS) $(RFLAGS) $(LDFLAGS) $(TARGET_ARCH)", + "COMPILE.def", "$(M2C) $(M2FLAGS) $(DEFFLAGS) $(TARGET_ARCH)", + "COMPILE.mod", "$(M2C) $(M2FLAGS) $(MODFLAGS) $(TARGET_ARCH)", + "COMPILE.p", "$(PC) $(PFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c", + "LINK.p", "$(PC) $(PFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)", + "LINK.s", "$(CC) $(ASFLAGS) $(LDFLAGS) $(TARGET_MACH)", + "COMPILE.s", "$(AS) $(ASFLAGS) $(TARGET_MACH)", + "LINK.S", "$(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_MACH)", + "COMPILE.S", "$(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c", + "PREPROCESS.S", "$(CC) -E $(CPPFLAGS)", + "PREPROCESS.F", "$(FC) $(FFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -F", + "PREPROCESS.r", "$(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F", + "LINT.c", "$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)", + +#ifndef NO_MINUS_C_MINUS_O + "OUTPUT_OPTION", "-o $@", +#endif + +#ifdef SCCS_GET_MINUS_G + "SCCS_OUTPUT_OPTION", "-G$@", +#endif + +#ifdef _AMIGA + ".LIBPATTERNS", "%.lib", +#else +#ifdef __MSDOS__ + ".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a", +#else + ".LIBPATTERNS", "lib%.so lib%.a", +#endif +#endif + +#endif /* !VMS */ + 0, 0 + }; + +/* Set up the default .SUFFIXES list. */ + +void +set_default_suffixes () +{ + suffix_file = enter_file (".SUFFIXES"); + + if (no_builtin_rules_flag) + (void) define_variable ("SUFFIXES", 8, "", o_default, 0); + else + { + char *p = default_suffixes; + suffix_file->deps = (struct dep *) + multi_glob (parse_file_seq (&p, '\0', sizeof (struct dep), 1), + sizeof (struct dep)); + (void) define_variable ("SUFFIXES", 8, default_suffixes, o_default, 0); + } +} + +/* Enter the default suffix rules as file rules. This used to be done in + install_default_implicit_rules, but that loses because we want the + suffix rules installed before reading makefiles, and thee pattern rules + installed after. */ + +void +install_default_suffix_rules () +{ + register char **s; + + if (no_builtin_rules_flag) + return; + + for (s = default_suffix_rules; *s != 0; s += 2) + { + register struct file *f = enter_file (s[0]); + /* Don't clobber cmds given in a makefile if there were any. */ + if (f->cmds == 0) + { + f->cmds = (struct commands *) xmalloc (sizeof (struct commands)); + f->cmds->fileinfo.filenm = 0; + f->cmds->commands = s[1]; + f->cmds->command_lines = 0; + } + } +} + + +/* Install the default pattern rules. */ + +void +install_default_implicit_rules () +{ + register struct pspec *p; + + if (no_builtin_rules_flag) + return; + + for (p = default_pattern_rules; p->target != 0; ++p) + install_pattern_rule (p, 0); + + for (p = default_terminal_rules; p->target != 0; ++p) + install_pattern_rule (p, 1); +} + +void +define_default_variables () +{ + register char **s; + + if (no_builtin_variables_flag) + return; + + for (s = default_variables; *s != 0; s += 2) + (void) define_variable (s[0], strlen (s[0]), s[1], o_default, 1); +} diff --git a/src/mkutil/make-3.80/dep.h b/src/mkutil/make-3.80/dep.h new file mode 100644 index 00000000..7f4380b7 --- /dev/null +++ b/src/mkutil/make-3.80/dep.h @@ -0,0 +1,78 @@ +/* Definitions of dependency data structures for GNU Make. +Copyright (C) 1988, 1989, 1991, 1992, 1993, 1996 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Flag bits for the second argument to `read_makefile'. + These flags are saved in the `changed' field of each + `struct dep' in the chain returned by `read_all_makefiles'. */ + +#define RM_NO_DEFAULT_GOAL (1 << 0) /* Do not set default goal. */ +#define RM_INCLUDED (1 << 1) /* Search makefile search path. */ +#define RM_DONTCARE (1 << 2) /* No error if it doesn't exist. */ +#define RM_NO_TILDE (1 << 3) /* Don't expand ~ in file name. */ +#define RM_NOFLAG 0 + +/* Structure representing one dependency of a file. + Each struct file's `deps' points to a chain of these, + chained through the `next'. + + Note that the first two words of this match a struct nameseq. */ + +struct dep + { + struct dep *next; + char *name; + struct file *file; + unsigned int changed : 8; + unsigned int ignore_mtime : 1; + }; + + +/* Structure used in chains of names, for parsing and globbing. */ + +struct nameseq + { + struct nameseq *next; + char *name; + }; + + +extern struct nameseq *multi_glob PARAMS ((struct nameseq *chain, unsigned int size)); +#ifdef VMS +extern struct nameseq *parse_file_seq (); +#else +extern struct nameseq *parse_file_seq PARAMS ((char **stringp, int stopchar, unsigned int size, int strip)); +#endif +extern char *tilde_expand PARAMS ((char *name)); + +#ifndef NO_ARCHIVES +extern struct nameseq *ar_glob PARAMS ((char *arname, char *member_pattern, unsigned int size)); +#endif + +#ifndef iAPX286 +#define dep_name(d) ((d)->name == 0 ? (d)->file->name : (d)->name) +#else +/* Buggy compiler can't hack this. */ +extern char *dep_name (); +#endif + +extern struct dep *copy_dep_chain PARAMS ((struct dep *d)); +extern struct dep *read_all_makefiles PARAMS ((char **makefiles)); +extern int eval_buffer PARAMS ((char *buffer)); +extern int update_goal_chain PARAMS ((struct dep *goals, int makefiles)); +extern void uniquize_deps PARAMS ((struct dep *)); diff --git a/src/mkutil/make-3.80/dir.c b/src/mkutil/make-3.80/dir.c new file mode 100644 index 00000000..e862b9d0 --- /dev/null +++ b/src/mkutil/make-3.80/dir.c @@ -0,0 +1,1212 @@ +/* Directory hashing for GNU Make. +Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "hash.h" + +#ifdef HAVE_DIRENT_H +# include +# define NAMLEN(dirent) strlen((dirent)->d_name) +# ifdef VMS +extern char *vmsify PARAMS ((char *name, int type)); +# endif +#else +# define dirent direct +# define NAMLEN(dirent) (dirent)->d_namlen +# ifdef HAVE_SYS_NDIR_H +# include +# endif +# ifdef HAVE_SYS_DIR_H +# include +# endif +# ifdef HAVE_NDIR_H +# include +# endif +# ifdef HAVE_VMSDIR_H +# include "vmsdir.h" +# endif /* HAVE_VMSDIR_H */ +#endif + +/* In GNU systems, defines this macro for us. */ +#ifdef _D_NAMLEN +# undef NAMLEN +# define NAMLEN(d) _D_NAMLEN(d) +#endif + +#if (defined (POSIX) || defined (VMS) || defined (WINDOWS32)) && !defined (__GNU_LIBRARY__) +/* Posix does not require that the d_ino field be present, and some + systems do not provide it. */ +# define REAL_DIR_ENTRY(dp) 1 +# define FAKE_DIR_ENTRY(dp) +#else +# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) +# define FAKE_DIR_ENTRY(dp) (dp->d_ino = 1) +#endif /* POSIX */ + +#ifdef __MSDOS__ +#include +#include + +/* If it's MSDOS that doesn't have _USE_LFN, disable LFN support. */ +#ifndef _USE_LFN +#define _USE_LFN 0 +#endif + +static char * +dosify (filename) + char *filename; +{ + static char dos_filename[14]; + char *df; + int i; + + if (filename == 0 || _USE_LFN) + return filename; + + /* FIXME: what about filenames which violate + 8+3 constraints, like "config.h.in", or ".emacs"? */ + if (strpbrk (filename, "\"*+,;<=>?[\\]|") != 0) + return filename; + + df = dos_filename; + + /* First, transform the name part. */ + for (i = 0; *filename != '\0' && i < 8 && *filename != '.'; ++i) + *df++ = tolower ((unsigned char)*filename++); + + /* Now skip to the next dot. */ + while (*filename != '\0' && *filename != '.') + ++filename; + if (*filename != '\0') + { + *df++ = *filename++; + for (i = 0; *filename != '\0' && i < 3 && *filename != '.'; ++i) + *df++ = tolower ((unsigned char)*filename++); + } + + /* Look for more dots. */ + while (*filename != '\0' && *filename != '.') + ++filename; + if (*filename == '.') + return filename; + *df = 0; + return dos_filename; +} +#endif /* __MSDOS__ */ + +#ifdef WINDOWS32 +#include "pathstuff.h" +#endif + +#ifdef _AMIGA +#include +#endif + +#ifdef HAVE_CASE_INSENSITIVE_FS +static char * +downcase (filename) + char *filename; +{ +#ifdef _AMIGA + static char new_filename[136]; +#else + static char new_filename[PATH_MAX]; +#endif + char *df; + int i; + + if (filename == 0) + return 0; + + df = new_filename; + + /* First, transform the name part. */ + for (i = 0; *filename != '\0'; ++i) + { + *df++ = tolower ((unsigned char)*filename); + ++filename; + } + + *df = 0; + + return new_filename; +} +#endif /* HAVE_CASE_INSENSITIVE_FS */ + +#ifdef VMS + +static int +vms_hash (name) + char *name; +{ + int h = 0; + int g; + + while (*name) + { + unsigned char uc = *name; + h = (h << 4) + (isupper (uc) ? tolower (uc) : uc); + name++; + g = h & 0xf0000000; + if (g) + { + h = h ^ (g >> 24); + h = h ^ g; + } + } + return h; +} + +/* fake stat entry for a directory */ +static int +vmsstat_dir (name, st) + char *name; + struct stat *st; +{ + char *s; + int h; + DIR *dir; + + dir = opendir (name); + if (dir == 0) + return -1; + closedir (dir); + s = strchr (name, ':'); /* find device */ + if (s) + { + *s++ = 0; + st->st_dev = (char *)vms_hash (name); + h = vms_hash (s); + *(s-1) = ':'; + } + else + { + st->st_dev = 0; + s = name; + h = vms_hash (s); + } + + st->st_ino[0] = h & 0xff; + st->st_ino[1] = h & 0xff00; + st->st_ino[2] = h >> 16; + + return 0; +} +#endif /* VMS */ + +/* Hash table of directories. */ + +#ifndef DIRECTORY_BUCKETS +#define DIRECTORY_BUCKETS 199 +#endif + +struct directory_contents + { + dev_t dev; /* Device and inode numbers of this dir. */ +#ifdef WINDOWS32 + /* + * Inode means nothing on WINDOWS32. Even file key information is + * unreliable because it is random per file open and undefined + * for remote filesystems. The most unique attribute I can + * come up with is the fully qualified name of the directory. Beware + * though, this is also unreliable. I'm open to suggestion on a better + * way to emulate inode. + */ + char *path_key; + int ctime; + int mtime; /* controls check for stale directory cache */ + int fs_flags; /* FS_FAT, FS_NTFS, ... */ +#define FS_FAT 0x1 +#define FS_NTFS 0x2 +#define FS_UNKNOWN 0x4 +#else +#ifdef VMS + ino_t ino[3]; +#else + ino_t ino; +#endif +#endif /* WINDOWS32 */ + struct hash_table dirfiles; /* Files in this directory. */ + DIR *dirstream; /* Stream reading this directory. */ + }; + +static unsigned long +directory_contents_hash_1 (key_0) + const void *key_0; +{ + struct directory_contents const *key = (struct directory_contents const *) key_0; + unsigned long hash; + +#ifdef WINDOWS32 + ISTRING_HASH_1 (key->path_key, hash); + hash ^= ((unsigned int) key->dev << 4) ^ (unsigned int) key->ctime; +#else +# ifdef VMS + hash = (((unsigned int) key->dev << 4) + ^ ((unsigned int) key->ino[0] + + (unsigned int) key->ino[1] + + (unsigned int) key->ino[2])); +# else + hash = ((unsigned int) key->dev << 4) ^ (unsigned int) key->ino; +# endif +#endif /* WINDOWS32 */ + return hash; +} + +static unsigned long +directory_contents_hash_2 (key_0) + const void *key_0; +{ + struct directory_contents const *key = (struct directory_contents const *) key_0; + unsigned long hash; + +#ifdef WINDOWS32 + ISTRING_HASH_2 (key->path_key, hash); + hash ^= ((unsigned int) key->dev << 4) ^ (unsigned int) ~key->ctime; +#else +# ifdef VMS + hash = (((unsigned int) key->dev << 4) + ^ ~((unsigned int) key->ino[0] + + (unsigned int) key->ino[1] + + (unsigned int) key->ino[2])); +# else + hash = ((unsigned int) key->dev << 4) ^ (unsigned int) ~key->ino; +# endif +#endif /* WINDOWS32 */ + + return hash; +} + +static int +directory_contents_hash_cmp (xv, yv) + const void *xv; + const void *yv; +{ + struct directory_contents const *x = (struct directory_contents const *) xv; + struct directory_contents const *y = (struct directory_contents const *) yv; + int result; + +#ifdef WINDOWS32 + ISTRING_COMPARE (x->path_key, y->path_key, result); + if (result) + return result; + result = x->ctime - y->ctime; + if (result) + return result; +#else +# ifdef VMS + result = x->ino[0] - y->ino[0]; + if (result) + return result; + result = x->ino[1] - y->ino[1]; + if (result) + return result; + result = x->ino[2] - y->ino[2]; + if (result) + return result; +# else + result = x->ino - y->ino; + if (result) + return result; +# endif +#endif /* WINDOWS32 */ + + return x->dev - y->dev; +} + +/* Table of directory contents hashed by device and inode number. */ +static struct hash_table directory_contents; + +struct directory + { + char *name; /* Name of the directory. */ + + /* The directory's contents. This data may be shared by several + entries in the hash table, which refer to the same directory + (identified uniquely by `dev' and `ino') under different names. */ + struct directory_contents *contents; + }; + +static unsigned long +directory_hash_1 (key) + const void *key; +{ + return_ISTRING_HASH_1 (((struct directory const *) key)->name); +} + +static unsigned long +directory_hash_2 (key) + const void *key; +{ + return_ISTRING_HASH_2 (((struct directory const *) key)->name); +} + +static int +directory_hash_cmp (x, y) + const void *x; + const void *y; +{ + return_ISTRING_COMPARE (((struct directory const *) x)->name, + ((struct directory const *) y)->name); +} + +/* Table of directories hashed by name. */ +static struct hash_table directories; + +/* Never have more than this many directories open at once. */ + +#define MAX_OPEN_DIRECTORIES 10 + +static unsigned int open_directories = 0; + + +/* Hash table of files in each directory. */ + +struct dirfile + { + char *name; /* Name of the file. */ + short length; + short impossible; /* This file is impossible. */ + }; + +static unsigned long +dirfile_hash_1 (key) + const void *key; +{ + return_ISTRING_HASH_1 (((struct dirfile const *) key)->name); +} + +static unsigned long +dirfile_hash_2 (key) + const void *key; +{ + return_ISTRING_HASH_2 (((struct dirfile const *) key)->name); +} + +static int +dirfile_hash_cmp (xv, yv) + const void *xv; + const void *yv; +{ + struct dirfile const *x = ((struct dirfile const *) xv); + struct dirfile const *y = ((struct dirfile const *) yv); + int result = x->length - y->length; + if (result) + return result; + return_ISTRING_COMPARE (x->name, y->name); +} + +#ifndef DIRFILE_BUCKETS +#define DIRFILE_BUCKETS 107 +#endif + +static int dir_contents_file_exists_p PARAMS ((struct directory_contents *dir, char *filename)); +static struct directory *find_directory PARAMS ((char *name)); + +/* Find the directory named NAME and return its `struct directory'. */ + +static struct directory * +find_directory (name) + register char *name; +{ + register char *p; + register struct directory *dir; + register struct directory **dir_slot; + struct directory dir_key; + int r; +#ifdef WINDOWS32 + char* w32_path; + char fs_label[BUFSIZ]; + char fs_type[BUFSIZ]; + long fs_serno; + long fs_flags; + long fs_len; +#endif +#ifdef VMS + if ((*name == '.') && (*(name+1) == 0)) + name = "[]"; + else + name = vmsify (name,1); +#endif + + dir_key.name = name; + dir_slot = (struct directory **) hash_find_slot (&directories, &dir_key); + dir = *dir_slot; + + if (HASH_VACANT (dir)) + { + struct stat st; + + /* The directory was not found. Create a new entry for it. */ + + p = name + strlen (name); + dir = (struct directory *) xmalloc (sizeof (struct directory)); + dir->name = savestring (name, p - name); + hash_insert_at (&directories, dir, dir_slot); + /* The directory is not in the name hash table. + Find its device and inode numbers, and look it up by them. */ + +#ifdef WINDOWS32 + /* Remove any trailing '\'. Windows32 stat fails even on valid + directories if they end in '\'. */ + if (p[-1] == '\\') + p[-1] = '\0'; +#endif + +#ifdef VMS + r = vmsstat_dir (name, &st); +#else + r = stat (name, &st); +#endif + +#ifdef WINDOWS32 + /* Put back the trailing '\'. If we don't, we're permanently + truncating the value! */ + if (p[-1] == '\0') + p[-1] = '\\'; +#endif + + if (r < 0) + { + /* Couldn't stat the directory. Mark this by + setting the `contents' member to a nil pointer. */ + dir->contents = 0; + } + else + { + /* Search the contents hash table; device and inode are the key. */ + + struct directory_contents *dc; + struct directory_contents **dc_slot; + struct directory_contents dc_key; + + dc_key.dev = st.st_dev; +#ifdef WINDOWS32 + dc_key.path_key = w32_path = w32ify (name, 1); + dc_key.ctime = st.st_ctime; +#else +# ifdef VMS + dc_key.ino[0] = st.st_ino[0]; + dc_key.ino[1] = st.st_ino[1]; + dc_key.ino[2] = st.st_ino[2]; +# else + dc_key.ino = st.st_ino; +# endif +#endif + dc_slot = (struct directory_contents **) hash_find_slot (&directory_contents, &dc_key); + dc = *dc_slot; + + if (HASH_VACANT (dc)) + { + /* Nope; this really is a directory we haven't seen before. */ + + dc = (struct directory_contents *) + xmalloc (sizeof (struct directory_contents)); + + /* Enter it in the contents hash table. */ + dc->dev = st.st_dev; +#ifdef WINDOWS32 + dc->path_key = xstrdup (w32_path); + dc->ctime = st.st_ctime; + dc->mtime = st.st_mtime; + + /* + * NTFS is the only WINDOWS32 filesystem that bumps mtime + * on a directory when files are added/deleted from + * a directory. + */ + w32_path[3] = '\0'; + if (GetVolumeInformation(w32_path, + fs_label, sizeof (fs_label), + &fs_serno, &fs_len, + &fs_flags, fs_type, sizeof (fs_type)) == FALSE) + dc->fs_flags = FS_UNKNOWN; + else if (!strcmp(fs_type, "FAT")) + dc->fs_flags = FS_FAT; + else if (!strcmp(fs_type, "NTFS")) + dc->fs_flags = FS_NTFS; + else + dc->fs_flags = FS_UNKNOWN; +#else +# ifdef VMS + dc->ino[0] = st.st_ino[0]; + dc->ino[1] = st.st_ino[1]; + dc->ino[2] = st.st_ino[2]; +# else + dc->ino = st.st_ino; +# endif +#endif /* WINDOWS32 */ + hash_insert_at (&directory_contents, dc, dc_slot); + dc->dirstream = opendir (name); + if (dc->dirstream == 0) + /* Couldn't open the directory. Mark this by + setting the `files' member to a nil pointer. */ + dc->dirfiles.ht_vec = 0; + else + { + hash_init (&dc->dirfiles, DIRFILE_BUCKETS, + dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp); + /* Keep track of how many directories are open. */ + ++open_directories; + if (open_directories == MAX_OPEN_DIRECTORIES) + /* We have too many directories open already. + Read the entire directory and then close it. */ + (void) dir_contents_file_exists_p (dc, (char *) 0); + } + } + + /* Point the name-hashed entry for DIR at its contents data. */ + dir->contents = dc; + } + } + + return dir; +} + +/* Return 1 if the name FILENAME is entered in DIR's hash table. + FILENAME must contain no slashes. */ + +static int +dir_contents_file_exists_p (dir, filename) + register struct directory_contents *dir; + register char *filename; +{ + unsigned int hash; + struct dirfile *df; + struct dirent *d; +#ifdef WINDOWS32 + struct stat st; + int rehash = 0; +#endif + + if (dir == 0 || dir->dirfiles.ht_vec == 0) + { + /* The directory could not be stat'd or opened. */ + return 0; + } +#ifdef __MSDOS__ + filename = dosify (filename); +#endif + +#ifdef HAVE_CASE_INSENSITIVE_FS + filename = downcase (filename); +#endif + +#ifdef VMS + filename = vmsify (filename,0); +#endif + + hash = 0; + if (filename != 0) + { + struct dirfile dirfile_key; + + if (*filename == '\0') + { + /* Checking if the directory exists. */ + return 1; + } + dirfile_key.name = filename; + dirfile_key.length = strlen (filename); + df = (struct dirfile *) hash_find_item (&dir->dirfiles, &dirfile_key); + if (df) + { + return !df->impossible; + } + } + + /* The file was not found in the hashed list. + Try to read the directory further. */ + + if (dir->dirstream == 0) + { +#ifdef WINDOWS32 + /* + * Check to see if directory has changed since last read. FAT + * filesystems force a rehash always as mtime does not change + * on directories (ugh!). + */ + if (dir->path_key + && (dir->fs_flags & FS_FAT + || (stat(dir->path_key, &st) == 0 + && st.st_mtime > dir->mtime))) + { + /* reset date stamp to show most recent re-process */ + dir->mtime = st.st_mtime; + + /* make sure directory can still be opened */ + dir->dirstream = opendir(dir->path_key); + + if (dir->dirstream) + rehash = 1; + else + return 0; /* couldn't re-read - fail */ + } + else +#endif + /* The directory has been all read in. */ + return 0; + } + + while ((d = readdir (dir->dirstream)) != 0) + { + /* Enter the file in the hash table. */ + unsigned int len; + struct dirfile dirfile_key; + struct dirfile **dirfile_slot; + +#if defined(VMS) && defined(HAVE_DIRENT_H) + /* In VMS we get file versions too, which have to be stripped off */ + { + char *p = strrchr (d->d_name, ';'); + if (p) + *p = '\0'; + } +#endif + if (!REAL_DIR_ENTRY (d)) + continue; + + len = NAMLEN (d); + dirfile_key.name = d->d_name; + dirfile_key.length = len; + dirfile_slot = (struct dirfile **) hash_find_slot (&dir->dirfiles, &dirfile_key); +#ifdef WINDOWS32 + /* + * If re-reading a directory, don't cache files that have + * already been discovered. + */ + if (! rehash || HASH_VACANT (*dirfile_slot)) +#endif + { + df = (struct dirfile *) xmalloc (sizeof (struct dirfile)); + df->name = savestring (d->d_name, len); + df->length = len; + df->impossible = 0; + hash_insert_at (&dir->dirfiles, df, dirfile_slot); + } + /* Check if the name matches the one we're searching for. */ + if (filename != 0 && strieq (d->d_name, filename)) + { + return 1; + } + } + + /* If the directory has been completely read in, + close the stream and reset the pointer to nil. */ + if (d == 0) + { + --open_directories; + closedir (dir->dirstream); + dir->dirstream = 0; + } + return 0; +} + +/* Return 1 if the name FILENAME in directory DIRNAME + is entered in the dir hash table. + FILENAME must contain no slashes. */ + +int +dir_file_exists_p (dirname, filename) + register char *dirname; + register char *filename; +{ + return dir_contents_file_exists_p (find_directory (dirname)->contents, + filename); +} + +/* Return 1 if the file named NAME exists. */ + +int +file_exists_p (name) + register char *name; +{ + char *dirend; + char *dirname; + char *slash; + +#ifndef NO_ARCHIVES + if (ar_name (name)) + return ar_member_date (name) != (time_t) -1; +#endif + +#ifdef VMS + dirend = strrchr (name, ']'); + if (dirend == 0) + dirend = strrchr (name, ':'); + dirend++; + if (dirend == (char *)1) + return dir_file_exists_p ("[]", name); +#else /* !VMS */ + dirend = strrchr (name, '/'); +#ifdef HAVE_DOS_PATHS + /* Forward and backslashes might be mixed. We need the rightmost one. */ + { + char *bslash = strrchr(name, '\\'); + if (!dirend || bslash > dirend) + dirend = bslash; + /* The case of "d:file". */ + if (!dirend && name[0] && name[1] == ':') + dirend = name + 1; + } +#endif /* HAVE_DOS_PATHS */ + if (dirend == 0) +#ifndef _AMIGA + return dir_file_exists_p (".", name); +#else /* !VMS && !AMIGA */ + return dir_file_exists_p ("", name); +#endif /* AMIGA */ +#endif /* VMS */ + + slash = dirend; + if (dirend == name) + dirname = "/"; + else + { +#ifdef HAVE_DOS_PATHS + /* d:/ and d: are *very* different... */ + if (dirend < name + 3 && name[1] == ':' && + (*dirend == '/' || *dirend == '\\' || *dirend == ':')) + dirend++; +#endif + dirname = (char *) alloca (dirend - name + 1); + bcopy (name, dirname, dirend - name); + dirname[dirend - name] = '\0'; + } + return dir_file_exists_p (dirname, slash + 1); +} + +/* Mark FILENAME as `impossible' for `file_impossible_p'. + This means an attempt has been made to search for FILENAME + as an intermediate file, and it has failed. */ + +void +file_impossible (filename) + register char *filename; +{ + char *dirend; + register char *p = filename; + register struct directory *dir; + register struct dirfile *new; + +#ifdef VMS + dirend = strrchr (p, ']'); + if (dirend == 0) + dirend = strrchr (p, ':'); + dirend++; + if (dirend == (char *)1) + dir = find_directory ("[]"); +#else + dirend = strrchr (p, '/'); +# ifdef HAVE_DOS_PATHS + /* Forward and backslashes might be mixed. We need the rightmost one. */ + { + char *bslash = strrchr(p, '\\'); + if (!dirend || bslash > dirend) + dirend = bslash; + /* The case of "d:file". */ + if (!dirend && p[0] && p[1] == ':') + dirend = p + 1; + } +# endif /* HAVE_DOS_PATHS */ + if (dirend == 0) +# ifdef _AMIGA + dir = find_directory (""); +# else /* !VMS && !AMIGA */ + dir = find_directory ("."); +# endif /* AMIGA */ +#endif /* VMS */ + else + { + char *dirname; + char *slash = dirend; + if (dirend == p) + dirname = "/"; + else + { +#ifdef HAVE_DOS_PATHS + /* d:/ and d: are *very* different... */ + if (dirend < p + 3 && p[1] == ':' && + (*dirend == '/' || *dirend == '\\' || *dirend == ':')) + dirend++; +#endif + dirname = (char *) alloca (dirend - p + 1); + bcopy (p, dirname, dirend - p); + dirname[dirend - p] = '\0'; + } + dir = find_directory (dirname); + filename = p = slash + 1; + } + + if (dir->contents == 0) + { + /* The directory could not be stat'd. We allocate a contents + structure for it, but leave it out of the contents hash table. */ + dir->contents = (struct directory_contents *) + xmalloc (sizeof (struct directory_contents)); + bzero ((char *) dir->contents, sizeof (struct directory_contents)); + } + + if (dir->contents->dirfiles.ht_vec == 0) + { + hash_init (&dir->contents->dirfiles, DIRFILE_BUCKETS, + dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp); + } + + /* Make a new entry and put it in the table. */ + + new = (struct dirfile *) xmalloc (sizeof (struct dirfile)); + new->name = xstrdup (filename); + new->length = strlen (filename); + new->impossible = 1; + hash_insert (&dir->contents->dirfiles, new); +} + +/* Return nonzero if FILENAME has been marked impossible. */ + +int +file_impossible_p (filename) + char *filename; +{ + char *dirend; + register char *p = filename; + register struct directory_contents *dir; + register struct dirfile *dirfile; + struct dirfile dirfile_key; + +#ifdef VMS + dirend = strrchr (filename, ']'); + if (dirend == 0) + dir = find_directory ("[]")->contents; +#else + dirend = strrchr (filename, '/'); +#ifdef HAVE_DOS_PATHS + /* Forward and backslashes might be mixed. We need the rightmost one. */ + { + char *bslash = strrchr(filename, '\\'); + if (!dirend || bslash > dirend) + dirend = bslash; + /* The case of "d:file". */ + if (!dirend && filename[0] && filename[1] == ':') + dirend = filename + 1; + } +#endif /* HAVE_DOS_PATHS */ + if (dirend == 0) +#ifdef _AMIGA + dir = find_directory ("")->contents; +#else /* !VMS && !AMIGA */ + dir = find_directory (".")->contents; +#endif /* AMIGA */ +#endif /* VMS */ + else + { + char *dirname; + char *slash = dirend; + if (dirend == filename) + dirname = "/"; + else + { +#ifdef HAVE_DOS_PATHS + /* d:/ and d: are *very* different... */ + if (dirend < filename + 3 && filename[1] == ':' && + (*dirend == '/' || *dirend == '\\' || *dirend == ':')) + dirend++; +#endif + dirname = (char *) alloca (dirend - filename + 1); + bcopy (p, dirname, dirend - p); + dirname[dirend - p] = '\0'; + } + dir = find_directory (dirname)->contents; + p = filename = slash + 1; + } + + if (dir == 0 || dir->dirfiles.ht_vec == 0) + /* There are no files entered for this directory. */ + return 0; + +#ifdef __MSDOS__ + filename = dosify (p); +#endif +#ifdef HAVE_CASE_INSENSITIVE_FS + filename = downcase (p); +#endif +#ifdef VMS + filename = vmsify (p, 1); +#endif + + dirfile_key.name = filename; + dirfile_key.length = strlen (filename); + dirfile = (struct dirfile *) hash_find_item (&dir->dirfiles, &dirfile_key); + if (dirfile) + return dirfile->impossible; + + return 0; +} + +/* Return the already allocated name in the + directory hash table that matches DIR. */ + +char * +dir_name (dir) + char *dir; +{ + return find_directory (dir)->name; +} + +/* Print the data base of directories. */ + +void +print_dir_data_base () +{ + register unsigned int files; + register unsigned int impossible; + register struct directory **dir_slot; + register struct directory **dir_end; + + puts (_("\n# Directories\n")); + + files = impossible = 0; + + dir_slot = (struct directory **) directories.ht_vec; + dir_end = dir_slot + directories.ht_size; + for ( ; dir_slot < dir_end; dir_slot++) + { + register struct directory *dir = *dir_slot; + if (! HASH_VACANT (dir)) + { + if (dir->contents == 0) + printf (_("# %s: could not be stat'd.\n"), dir->name); + else if (dir->contents->dirfiles.ht_vec == 0) + { +#ifdef WINDOWS32 + printf (_("# %s (key %s, mtime %d): could not be opened.\n"), + dir->name, dir->contents->path_key,dir->contents->mtime); +#else /* WINDOWS32 */ +#ifdef VMS + printf (_("# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"), + dir->name, dir->contents->dev, + dir->contents->ino[0], dir->contents->ino[1], + dir->contents->ino[2]); +#else + printf (_("# %s (device %ld, inode %ld): could not be opened.\n"), + dir->name, (long int) dir->contents->dev, + (long int) dir->contents->ino); +#endif +#endif /* WINDOWS32 */ + } + else + { + register unsigned int f = 0; + register unsigned int im = 0; + register struct dirfile **files_slot; + register struct dirfile **files_end; + + files_slot = (struct dirfile **) dir->contents->dirfiles.ht_vec; + files_end = files_slot + dir->contents->dirfiles.ht_size; + for ( ; files_slot < files_end; files_slot++) + { + register struct dirfile *df = *files_slot; + if (! HASH_VACANT (df)) + { + if (df->impossible) + ++im; + else + ++f; + } + } +#ifdef WINDOWS32 + printf (_("# %s (key %s, mtime %d): "), + dir->name, dir->contents->path_key, dir->contents->mtime); +#else /* WINDOWS32 */ +#ifdef VMS + printf (_("# %s (device %d, inode [%d,%d,%d]): "), + dir->name, dir->contents->dev, + dir->contents->ino[0], dir->contents->ino[1], + dir->contents->ino[2]); +#else + printf (_("# %s (device %ld, inode %ld): "), + dir->name, + (long)dir->contents->dev, (long)dir->contents->ino); +#endif +#endif /* WINDOWS32 */ + if (f == 0) + fputs (_("No"), stdout); + else + printf ("%u", f); + fputs (_(" files, "), stdout); + if (im == 0) + fputs (_("no"), stdout); + else + printf ("%u", im); + fputs (_(" impossibilities"), stdout); + if (dir->contents->dirstream == 0) + puts ("."); + else + puts (_(" so far.")); + files += f; + impossible += im; + } + } + } + + fputs ("\n# ", stdout); + if (files == 0) + fputs (_("No"), stdout); + else + printf ("%u", files); + fputs (_(" files, "), stdout); + if (impossible == 0) + fputs (_("no"), stdout); + else + printf ("%u", impossible); + printf (_(" impossibilities in %lu directories.\n"), directories.ht_fill); +} + +/* Hooks for globbing. */ + +#include + +/* Structure describing state of iterating through a directory hash table. */ + +struct dirstream + { + struct directory_contents *contents; /* The directory being read. */ + struct dirfile **dirfile_slot; /* Current slot in table. */ + }; + +/* Forward declarations. */ +static __ptr_t open_dirstream PARAMS ((const char *)); +static struct dirent *read_dirstream PARAMS ((__ptr_t)); + +static __ptr_t +open_dirstream (directory) + const char *directory; +{ + struct dirstream *new; + struct directory *dir = find_directory ((char *)directory); + + if (dir->contents == 0 || dir->contents->dirfiles.ht_vec == 0) + /* DIR->contents is nil if the directory could not be stat'd. + DIR->contents->dirfiles is nil if it could not be opened. */ + return 0; + + /* Read all the contents of the directory now. There is no benefit + in being lazy, since glob will want to see every file anyway. */ + + (void) dir_contents_file_exists_p (dir->contents, (char *) 0); + + new = (struct dirstream *) xmalloc (sizeof (struct dirstream)); + new->contents = dir->contents; + new->dirfile_slot = (struct dirfile **) new->contents->dirfiles.ht_vec; + + return (__ptr_t) new; +} + +static struct dirent * +read_dirstream (stream) + __ptr_t stream; +{ + struct dirstream *const ds = (struct dirstream *) stream; + struct directory_contents *dc = ds->contents; + struct dirfile **dirfile_end = (struct dirfile **) dc->dirfiles.ht_vec + dc->dirfiles.ht_size; + static char *buf; + static unsigned int bufsz; + + while (ds->dirfile_slot < dirfile_end) + { + register struct dirfile *df = *ds->dirfile_slot++; + if (! HASH_VACANT (df) && !df->impossible) + { + /* The glob interface wants a `struct dirent', + so mock one up. */ + struct dirent *d; + unsigned int len = df->length + 1; + if (sizeof *d - sizeof d->d_name + len > bufsz) + { + if (buf != 0) + free (buf); + bufsz *= 2; + if (sizeof *d - sizeof d->d_name + len > bufsz) + bufsz = sizeof *d - sizeof d->d_name + len; + buf = xmalloc (bufsz); + } + d = (struct dirent *) buf; + FAKE_DIR_ENTRY (d); +#ifdef _DIRENT_HAVE_D_NAMLEN + d->d_namlen = len - 1; +#endif +#ifdef _DIRENT_HAVE_D_TYPE + d->d_type = DT_UNKNOWN; +#endif + memcpy (d->d_name, df->name, len); + return d; + } + } + + return 0; +} + +static void +ansi_free(p) + void *p; +{ + if (p) + free(p); +} + +/* On 64 bit ReliantUNIX (5.44 and above) in LFS mode, stat() is actually a + * macro for stat64(). If stat is a macro, make a local wrapper function to + * invoke it. + */ +#ifndef stat +# ifndef VMS +extern int stat (); +# endif +# define local_stat stat +#else +static int local_stat (path, buf) + char *path; + struct stat *buf; +{ + return stat (path, buf); +} +#endif + +void +dir_setup_glob (gl) + glob_t *gl; +{ + /* Bogus sunos4 compiler complains (!) about & before functions. */ + gl->gl_opendir = open_dirstream; + gl->gl_readdir = read_dirstream; + gl->gl_closedir = ansi_free; + gl->gl_stat = local_stat; + /* We don't bother setting gl_lstat, since glob never calls it. + The slot is only there for compatibility with 4.4 BSD. */ +} + +void +hash_init_directories () +{ + hash_init (&directories, DIRECTORY_BUCKETS, + directory_hash_1, directory_hash_2, directory_hash_cmp); + hash_init (&directory_contents, DIRECTORY_BUCKETS, + directory_contents_hash_1, directory_contents_hash_2, directory_contents_hash_cmp); +} diff --git a/src/mkutil/make-3.80/dosbuild.bat b/src/mkutil/make-3.80/dosbuild.bat new file mode 100644 index 00000000..ac1e6cd6 --- /dev/null +++ b/src/mkutil/make-3.80/dosbuild.bat @@ -0,0 +1,42 @@ +@echo Building Make for MSDOS +@rem Echo ON so they will see what is going on. +@echo on +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g commands.c -o commands.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g job.c -o job.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g dir.c -o dir.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g file.c -o file.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g misc.c -o misc.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g main.c -o main.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -DINCLUDEDIR=\"c:/djgpp/include\" -O2 -g read.c -o read.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -DLIBDIR=\"c:/djgpp/lib\" -O2 -g remake.c -o remake.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g rule.c -o rule.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g implicit.c -o implicit.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g default.c -o default.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g variable.c -o variable.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g expand.c -o expand.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g function.c -o function.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g vpath.c -o vpath.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g version.c -o version.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g ar.c -o ar.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g arscan.c -o arscan.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g signame.c -o signame.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g remote-stub.c -o remote-stub.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g getopt.c -o getopt.o +gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g getopt1.c -o getopt1.o +@cd glob +@if exist libglob.a del libglob.a +gcc -I. -c -DHAVE_CONFIG_H -I.. -O2 -g glob.c -o glob.o +gcc -I. -c -DHAVE_CONFIG_H -I.. -O2 -g fnmatch.c -o fnmatch.o +ar rv libglob.a glob.o fnmatch.o +@echo off +cd .. +echo commands.o > respf.$$$ +for %%f in (job dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$ +for %%f in (expand function vpath version ar arscan signame remote-stub getopt getopt1) do echo %%f.o >> respf.$$$ +echo glob/libglob.a >> respf.$$$ +@echo Linking... +@echo on +gcc -o make.new @respf.$$$ +@if exist make.exe echo Make.exe is now built! +@if not exist make.exe echo Make.exe build failed... +@if exist make.exe del respf.$$$ diff --git a/src/mkutil/make-3.80/expand.c b/src/mkutil/make-3.80/expand.c new file mode 100644 index 00000000..6722e1b3 --- /dev/null +++ b/src/mkutil/make-3.80/expand.c @@ -0,0 +1,566 @@ +/* Variable expansion functions for GNU Make. +Copyright (C) 1988, 89, 91, 92, 93, 95 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" + +#include + +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "variable.h" +#include "rule.h" + +/* The next two describe the variable output buffer. + This buffer is used to hold the variable-expansion of a line of the + makefile. It is made bigger with realloc whenever it is too small. + variable_buffer_length is the size currently allocated. + variable_buffer is the address of the buffer. + + For efficiency, it's guaranteed that the buffer will always have + VARIABLE_BUFFER_ZONE extra bytes allocated. This allows you to add a few + extra chars without having to call a function. Note you should never use + these bytes unless you're _sure_ you have room (you know when the buffer + length was last checked. */ + +#define VARIABLE_BUFFER_ZONE 5 + +static unsigned int variable_buffer_length; +char *variable_buffer; + +/* Subroutine of variable_expand and friends: + The text to add is LENGTH chars starting at STRING to the variable_buffer. + The text is added to the buffer at PTR, and the updated pointer into + the buffer is returned as the value. Thus, the value returned by + each call to variable_buffer_output should be the first argument to + the following call. */ + +char * +variable_buffer_output (ptr, string, length) + char *ptr, *string; + unsigned int length; +{ + register unsigned int newlen = length + (ptr - variable_buffer); + + if ((newlen + VARIABLE_BUFFER_ZONE) > variable_buffer_length) + { + unsigned int offset = ptr - variable_buffer; + variable_buffer_length = (newlen + 100 > 2 * variable_buffer_length + ? newlen + 100 + : 2 * variable_buffer_length); + variable_buffer = (char *) xrealloc (variable_buffer, + variable_buffer_length); + ptr = variable_buffer + offset; + } + + bcopy (string, ptr, length); + return ptr + length; +} + +/* Return a pointer to the beginning of the variable buffer. */ + +static char * +initialize_variable_output () +{ + /* If we don't have a variable output buffer yet, get one. */ + + if (variable_buffer == 0) + { + variable_buffer_length = 200; + variable_buffer = (char *) xmalloc (variable_buffer_length); + variable_buffer[0] = '\0'; + } + + return variable_buffer; +} + +/* Recursively expand V. The returned string is malloc'd. */ + +static char *allocated_variable_append PARAMS ((const struct variable *v)); + +char * +recursively_expand_for_file (v, file) + struct variable *v; + struct file *file; +{ + char *value; + struct variable_set_list *save = 0; + + if (v->expanding) + { + if (!v->exp_count) + /* Expanding V causes infinite recursion. Lose. */ + fatal (reading_file, + _("Recursive variable `%s' references itself (eventually)"), + v->name); + --v->exp_count; + } + + if (file) + { + save = current_variable_set_list; + current_variable_set_list = file->variables; + } + + v->expanding = 1; + if (v->append) + value = allocated_variable_append (v); + else + value = allocated_variable_expand (v->value); + v->expanding = 0; + + if (file) + current_variable_set_list = save; + + return value; +} + +/* Expand a simple reference to variable NAME, which is LENGTH chars long. */ + +#ifdef __GNUC__ +__inline +#endif +static char * +reference_variable (o, name, length) + char *o; + char *name; + unsigned int length; +{ + register struct variable *v; + char *value; + + v = lookup_variable (name, length); + + if (v == 0) + warn_undefined (name, length); + + if (v == 0 || *v->value == '\0') + return o; + + value = (v->recursive ? recursively_expand (v) : v->value); + + o = variable_buffer_output (o, value, strlen (value)); + + if (v->recursive) + free (value); + + return o; +} + +/* Scan STRING for variable references and expansion-function calls. Only + LENGTH bytes of STRING are actually scanned. If LENGTH is -1, scan until + a null byte is found. + + Write the results to LINE, which must point into `variable_buffer'. If + LINE is NULL, start at the beginning of the buffer. + Return a pointer to LINE, or to the beginning of the buffer if LINE is + NULL. */ + +char * +variable_expand_string (line, string, length) + register char *line; + char *string; + long length; +{ + register struct variable *v; + register char *p, *o, *p1; + char save_char = '\0'; + unsigned int line_offset; + + if (!line) + line = initialize_variable_output(); + + p = string; + o = line; + line_offset = line - variable_buffer; + + if (length >= 0) + { + save_char = string[length]; + string[length] = '\0'; + } + + while (1) + { + /* Copy all following uninteresting chars all at once to the + variable output buffer, and skip them. Uninteresting chars end + at the next $ or the end of the input. */ + + p1 = strchr (p, '$'); + + o = variable_buffer_output (o, p, p1 != 0 ? p1 - p : strlen (p) + 1); + + if (p1 == 0) + break; + p = p1 + 1; + + /* Dispatch on the char that follows the $. */ + + switch (*p) + { + case '$': + /* $$ seen means output one $ to the variable output buffer. */ + o = variable_buffer_output (o, p, 1); + break; + + case '(': + case '{': + /* $(...) or ${...} is the general case of substitution. */ + { + char openparen = *p; + char closeparen = (openparen == '(') ? ')' : '}'; + register char *beg = p + 1; + int free_beg = 0; + char *op, *begp; + char *end, *colon; + + op = o; + begp = p; + if (handle_function (&op, &begp)) + { + o = op; + p = begp; + break; + } + + /* Is there a variable reference inside the parens or braces? + If so, expand it before expanding the entire reference. */ + + end = strchr (beg, closeparen); + if (end == 0) + /* Unterminated variable reference. */ + fatal (reading_file, _("unterminated variable reference")); + p1 = lindex (beg, end, '$'); + if (p1 != 0) + { + /* BEG now points past the opening paren or brace. + Count parens or braces until it is matched. */ + int count = 0; + for (p = beg; *p != '\0'; ++p) + { + if (*p == openparen) + ++count; + else if (*p == closeparen && --count < 0) + break; + } + /* If COUNT is >= 0, there were unmatched opening parens + or braces, so we go to the simple case of a variable name + such as `$($(a)'. */ + if (count < 0) + { + beg = expand_argument (beg, p); /* Expand the name. */ + free_beg = 1; /* Remember to free BEG when finished. */ + end = strchr (beg, '\0'); + } + } + else + /* Advance P to the end of this reference. After we are + finished expanding this one, P will be incremented to + continue the scan. */ + p = end; + + /* This is not a reference to a built-in function and + any variable references inside are now expanded. + Is the resultant text a substitution reference? */ + + colon = lindex (beg, end, ':'); + if (colon) + { + /* This looks like a substitution reference: $(FOO:A=B). */ + char *subst_beg, *subst_end, *replace_beg, *replace_end; + + subst_beg = colon + 1; + subst_end = strchr (subst_beg, '='); + if (subst_end == 0) + /* There is no = in sight. Punt on the substitution + reference and treat this as a variable name containing + a colon, in the code below. */ + colon = 0; + else + { + replace_beg = subst_end + 1; + replace_end = end; + + /* Extract the variable name before the colon + and look up that variable. */ + v = lookup_variable (beg, colon - beg); + if (v == 0) + warn_undefined (beg, colon - beg); + + if (v != 0 && *v->value != '\0') + { + char *value = (v->recursive ? recursively_expand (v) + : v->value); + char *pattern, *percent; + if (free_beg) + { + *subst_end = '\0'; + pattern = subst_beg; + } + else + { + pattern = (char *) alloca (subst_end - subst_beg + + 1); + bcopy (subst_beg, pattern, subst_end - subst_beg); + pattern[subst_end - subst_beg] = '\0'; + } + percent = find_percent (pattern); + if (percent != 0) + { + char *replace; + if (free_beg) + { + *replace_end = '\0'; + replace = replace_beg; + } + else + { + replace = (char *) alloca (replace_end + - replace_beg + + 1); + bcopy (replace_beg, replace, + replace_end - replace_beg); + replace[replace_end - replace_beg] = '\0'; + } + + o = patsubst_expand (o, value, pattern, replace, + percent, (char *) 0); + } + else + o = subst_expand (o, value, + pattern, replace_beg, + strlen (pattern), + end - replace_beg, + 0, 1); + if (v->recursive) + free (value); + } + } + } + + if (colon == 0) + /* This is an ordinary variable reference. + Look up the value of the variable. */ + o = reference_variable (o, beg, end - beg); + + if (free_beg) + free (beg); + } + break; + + case '\0': + break; + + default: + if (isblank ((unsigned char)p[-1])) + break; + + /* A $ followed by a random char is a variable reference: + $a is equivalent to $(a). */ + { + /* We could do the expanding here, but this way + avoids code repetition at a small performance cost. */ + char name[5]; + name[0] = '$'; + name[1] = '('; + name[2] = *p; + name[3] = ')'; + name[4] = '\0'; + p1 = allocated_variable_expand (name); + o = variable_buffer_output (o, p1, strlen (p1)); + free (p1); + } + + break; + } + + if (*p == '\0') + break; + else + ++p; + } + + if (save_char) + string[length] = save_char; + + (void)variable_buffer_output (o, "", 1); + return (variable_buffer + line_offset); +} + +/* Scan LINE for variable references and expansion-function calls. + Build in `variable_buffer' the result of expanding the references and calls. + Return the address of the resulting string, which is null-terminated + and is valid only until the next time this function is called. */ + +char * +variable_expand (line) + char *line; +{ + return variable_expand_string(NULL, line, (long)-1); +} + +/* Expand an argument for an expansion function. + The text starting at STR and ending at END is variable-expanded + into a null-terminated string that is returned as the value. + This is done without clobbering `variable_buffer' or the current + variable-expansion that is in progress. */ + +char * +expand_argument (str, end) + char *str, *end; +{ + char *tmp; + + if (str == end) + return xstrdup(""); + + if (!end || *end == '\0') + tmp = str; + else + { + tmp = (char *) alloca (end - str + 1); + bcopy (str, tmp, end - str); + tmp[end - str] = '\0'; + } + + return allocated_variable_expand (tmp); +} + +/* Expand LINE for FILE. Error messages refer to the file and line where + FILE's commands were found. Expansion uses FILE's variable set list. */ + +static char * +variable_expand_for_file (line, file) + char *line; + register struct file *file; +{ + char *result; + struct variable_set_list *save; + + if (file == 0) + return variable_expand (line); + + save = current_variable_set_list; + current_variable_set_list = file->variables; + if (file->cmds && file->cmds->fileinfo.filenm) + reading_file = &file->cmds->fileinfo; + else + reading_file = 0; + result = variable_expand (line); + current_variable_set_list = save; + reading_file = 0; + + return result; +} + +/* Like allocated_variable_expand, but for += target-specific variables. + First recursively construct the variable value from its appended parts in + any upper variable sets. Then expand the resulting value. */ + +static char * +variable_append (name, length, set) + const char *name; + unsigned int length; + const struct variable_set_list *set; +{ + const struct variable *v; + char *buf = 0; + + /* If there's nothing left to check, return the empty buffer. */ + if (!set) + return initialize_variable_output (); + + /* Try to find the variable in this variable set. */ + v = lookup_variable_in_set (name, length, set->set); + + /* If there isn't one, look to see if there's one in a set above us. */ + if (!v) + return variable_append (name, length, set->next); + + /* If this variable type is append, first get any upper values. + If not, initialize the buffer. */ + if (v->append) + buf = variable_append (name, length, set->next); + else + buf = initialize_variable_output (); + + /* Append this value to the buffer, and return it. + If we already have a value, first add a space. */ + if (buf > variable_buffer) + buf = variable_buffer_output (buf, " ", 1); + + return variable_buffer_output (buf, v->value, strlen (v->value)); +} + + +static char * +allocated_variable_append (v) + const struct variable *v; +{ + char *val, *retval; + + /* Construct the appended variable value. */ + + char *obuf = variable_buffer; + unsigned int olen = variable_buffer_length; + + variable_buffer = 0; + + val = variable_append (v->name, strlen (v->name), current_variable_set_list); + variable_buffer_output (val, "", 1); + val = variable_buffer; + + variable_buffer = obuf; + variable_buffer_length = olen; + + /* Now expand it and return that. */ + + retval = allocated_variable_expand (val); + + free (val); + return retval; +} + +/* Like variable_expand_for_file, but the returned string is malloc'd. + This function is called a lot. It wants to be efficient. */ + +char * +allocated_variable_expand_for_file (line, file) + char *line; + struct file *file; +{ + char *value; + + char *obuf = variable_buffer; + unsigned int olen = variable_buffer_length; + + variable_buffer = 0; + + value = variable_expand_for_file (line, file); + +#if 0 + /* Waste a little memory and save time. */ + value = xrealloc (value, strlen (value)) +#endif + + variable_buffer = obuf; + variable_buffer_length = olen; + + return value; +} diff --git a/src/mkutil/make-3.80/file.c b/src/mkutil/make-3.80/file.c new file mode 100644 index 00000000..ce1a0f9f --- /dev/null +++ b/src/mkutil/make-3.80/file.c @@ -0,0 +1,827 @@ +/* Target file hash table management for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" + +#include + +#include "dep.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "variable.h" +#include "debug.h" +#include "hash.h" + + +/* Hash table of files the makefile knows how to make. */ + +static unsigned long +file_hash_1 (key) + const void *key; +{ + return_ISTRING_HASH_1 (((struct file const *) key)->hname); +} + +static unsigned long +file_hash_2 (key) + const void *key; +{ + return_ISTRING_HASH_2 (((struct file const *) key)->hname); +} + +static int +file_hash_cmp (x, y) + const void *x; + const void *y; +{ + return_ISTRING_COMPARE (((struct file const *) x)->hname, + ((struct file const *) y)->hname); +} + +#ifndef FILE_BUCKETS +#define FILE_BUCKETS 1007 +#endif +static struct hash_table files; + +/* Whether or not .SECONDARY with no prerequisites was given. */ +static int all_secondary = 0; + +/* Access the hash table of all file records. + lookup_file given a name, return the struct file * for that name, + or nil if there is none. + enter_file similar, but create one if there is none. */ + +struct file * +lookup_file (name) + char *name; +{ + register struct file *f; + struct file file_key; +#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS) + register char *lname, *ln; +#endif + + assert (*name != '\0'); + + /* This is also done in parse_file_seq, so this is redundant + for names read from makefiles. It is here for names passed + on the command line. */ +#ifdef VMS +# ifndef WANT_CASE_SENSITIVE_TARGETS + { + register char *n; + lname = (char *) malloc (strlen (name) + 1); + for (n = name, ln = lname; *n != '\0'; ++n, ++ln) + *ln = isupper ((unsigned char)*n) ? tolower ((unsigned char)*n) : *n; + *ln = '\0'; + name = lname; + } +# endif + + while (name[0] == '[' && name[1] == ']' && name[2] != '\0') + name += 2; +#endif + while (name[0] == '.' && name[1] == '/' && name[2] != '\0') + { + name += 2; + while (*name == '/') + /* Skip following slashes: ".//foo" is "foo", not "/foo". */ + ++name; + } + + if (*name == '\0') + /* It was all slashes after a dot. */ +#ifdef VMS + name = "[]"; +#else +#ifdef _AMIGA + name = ""; +#else + name = "./"; +#endif /* AMIGA */ +#endif /* VMS */ + + file_key.hname = name; + f = (struct file *) hash_find_item (&files, &file_key); +#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS) + free (lname); +#endif + return f; +} + +struct file * +enter_file (name) + char *name; +{ + register struct file *f; + register struct file *new; + register struct file **file_slot; + struct file file_key; +#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS) + char *lname, *ln; +#endif + + assert (*name != '\0'); + +#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS) + { + register char *n; + lname = (char *) malloc (strlen (name) + 1); + for (n = name, ln = lname; *n != '\0'; ++n, ++ln) + { + if (isupper ((unsigned char)*n)) + *ln = tolower ((unsigned char)*n); + else + *ln = *n; + } + + *ln = 0; + /* Creates a possible leak, old value of name is unreachable, but I + currently don't know how to fix it. */ + name = lname; + } +#endif + + file_key.hname = name; + file_slot = (struct file **) hash_find_slot (&files, &file_key); + f = *file_slot; + if (! HASH_VACANT (f) && !f->double_colon) + { +#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS) + free(lname); +#endif + return f; + } + + new = (struct file *) xmalloc (sizeof (struct file)); + bzero ((char *) new, sizeof (struct file)); + new->name = new->hname = name; + new->update_status = -1; + + if (HASH_VACANT (f)) + hash_insert_at (&files, new, file_slot); + else + { + /* There is already a double-colon entry for this file. */ + new->double_colon = f; + while (f->prev != 0) + f = f->prev; + f->prev = new; + } + + return new; +} + +/* Rename FILE to NAME. This is not as simple as resetting + the `name' member, since it must be put in a new hash bucket, + and possibly merged with an existing file called NAME. */ + +void +rename_file (from_file, to_hname) + register struct file *from_file; + char *to_hname; +{ + rehash_file (from_file, to_hname); + while (from_file) + { + from_file->name = from_file->hname; + from_file = from_file->prev; + } +} + +/* Rehash FILE to NAME. This is not as simple as resetting + the `hname' member, since it must be put in a new hash bucket, + and possibly merged with an existing file called NAME. */ + +void +rehash_file (from_file, to_hname) + register struct file *from_file; + char *to_hname; +{ + struct file file_key; + struct file **file_slot; + struct file *to_file; + struct file *deleted_file; + struct file *f; + + file_key.hname = to_hname; + if (0 == file_hash_cmp (from_file, &file_key)) + return; + + file_key.hname = from_file->hname; + while (from_file->renamed != 0) + from_file = from_file->renamed; + if (file_hash_cmp (from_file, &file_key)) + /* hname changed unexpectedly */ + abort (); + + deleted_file = hash_delete (&files, from_file); + if (deleted_file != from_file) + /* from_file isn't the one stored in files */ + abort (); + + file_key.hname = to_hname; + file_slot = (struct file **) hash_find_slot (&files, &file_key); + to_file = *file_slot; + + from_file->hname = to_hname; + for (f = from_file->double_colon; f != 0; f = f->prev) + f->hname = to_hname; + + if (HASH_VACANT (to_file)) + hash_insert_at (&files, from_file, file_slot); + else + { + /* TO_FILE already exists under TO_HNAME. + We must retain TO_FILE and merge FROM_FILE into it. */ + + if (from_file->cmds != 0) + { + if (to_file->cmds == 0) + to_file->cmds = from_file->cmds; + else if (from_file->cmds != to_file->cmds) + { + /* We have two sets of commands. We will go with the + one given in the rule explicitly mentioning this name, + but give a message to let the user know what's going on. */ + if (to_file->cmds->fileinfo.filenm != 0) + error (&from_file->cmds->fileinfo, + _("Commands were specified for file `%s' at %s:%lu,"), + from_file->name, to_file->cmds->fileinfo.filenm, + to_file->cmds->fileinfo.lineno); + else + error (&from_file->cmds->fileinfo, + _("Commands for file `%s' were found by implicit rule search,"), + from_file->name); + error (&from_file->cmds->fileinfo, + _("but `%s' is now considered the same file as `%s'."), + from_file->name, to_hname); + error (&from_file->cmds->fileinfo, + _("Commands for `%s' will be ignored in favor of those for `%s'."), + to_hname, from_file->name); + } + } + + /* Merge the dependencies of the two files. */ + + if (to_file->deps == 0) + to_file->deps = from_file->deps; + else + { + register struct dep *deps = to_file->deps; + while (deps->next != 0) + deps = deps->next; + deps->next = from_file->deps; + } + + merge_variable_set_lists (&to_file->variables, from_file->variables); + + if (to_file->double_colon && from_file->is_target && !from_file->double_colon) + fatal (NILF, _("can't rename single-colon `%s' to double-colon `%s'"), + from_file->name, to_hname); + if (!to_file->double_colon && from_file->double_colon) + { + if (to_file->is_target) + fatal (NILF, _("can't rename double-colon `%s' to single-colon `%s'"), + from_file->name, to_hname); + else + to_file->double_colon = from_file->double_colon; + } + + if (from_file->last_mtime > to_file->last_mtime) + /* %%% Kludge so -W wins on a file that gets vpathized. */ + to_file->last_mtime = from_file->last_mtime; + + to_file->mtime_before_update = from_file->mtime_before_update; + +#define MERGE(field) to_file->field |= from_file->field + MERGE (precious); + MERGE (tried_implicit); + MERGE (updating); + MERGE (updated); + MERGE (is_target); + MERGE (cmd_target); + MERGE (phony); + MERGE (ignore_vpath); +#undef MERGE + + from_file->renamed = to_file; + } +} + +/* Remove all nonprecious intermediate files. + If SIG is nonzero, this was caused by a fatal signal, + meaning that a different message will be printed, and + the message will go to stderr rather than stdout. */ + +void +remove_intermediates (sig) + int sig; +{ + register struct file **file_slot; + register struct file **file_end; + int doneany = 0; + + /* If there's no way we will ever remove anything anyway, punt early. */ + if (question_flag || touch_flag || all_secondary) + return; + + if (sig && just_print_flag) + return; + + file_slot = (struct file **) files.ht_vec; + file_end = file_slot + files.ht_size; + for ( ; file_slot < file_end; file_slot++) + if (! HASH_VACANT (*file_slot)) + { + register struct file *f = *file_slot; + if (f->intermediate && (f->dontcare || !f->precious) + && !f->secondary && !f->cmd_target) + { + int status; + if (f->update_status == -1) + /* If nothing would have created this file yet, + don't print an "rm" command for it. */ + continue; + if (just_print_flag) + status = 0; + else + { + status = unlink (f->name); + if (status < 0 && errno == ENOENT) + continue; + } + if (!f->dontcare) + { + if (sig) + error (NILF, _("*** Deleting intermediate file `%s'"), f->name); + else + { + if (! doneany) + DB (DB_BASIC, (_("Removing intermediate files...\n"))); + if (!silent_flag) + { + if (! doneany) + { + fputs ("rm ", stdout); + doneany = 1; + } + else + putchar (' '); + fputs (f->name, stdout); + fflush (stdout); + } + } + if (status < 0) + perror_with_name ("unlink: ", f->name); + } + } + } + + if (doneany && !sig) + { + putchar ('\n'); + fflush (stdout); + } +} + +/* For each dependency of each file, make the `struct dep' point + at the appropriate `struct file' (which may have to be created). + + Also mark the files depended on by .PRECIOUS, .PHONY, .SILENT, + and various other special targets. */ + +void +snap_deps () +{ + register struct file *f; + register struct file *f2; + register struct dep *d; + register struct file **file_slot_0; + register struct file **file_slot; + register struct file **file_end; + + /* Enter each dependency name as a file. */ + /* We must use hash_dump (), because within this loop + we might add new files to the table, possibly causing + an in-situ table expansion. */ + file_slot_0 = (struct file **) hash_dump (&files, 0, 0); + file_end = file_slot_0 + files.ht_fill; + for (file_slot = file_slot_0; file_slot < file_end; file_slot++) + for (f2 = *file_slot; f2 != 0; f2 = f2->prev) + for (d = f2->deps; d != 0; d = d->next) + if (d->name != 0) + { + d->file = lookup_file (d->name); + if (d->file == 0) + d->file = enter_file (d->name); + else + free (d->name); + d->name = 0; + } + free (file_slot_0); + + for (f = lookup_file (".PRECIOUS"); f != 0; f = f->prev) + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + f2->precious = 1; + + for (f = lookup_file (".LOW_RESOLUTION_TIME"); f != 0; f = f->prev) + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + f2->low_resolution_time = 1; + + for (f = lookup_file (".PHONY"); f != 0; f = f->prev) + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + { + /* Mark this file as phony and nonexistent. */ + f2->phony = 1; + f2->last_mtime = NONEXISTENT_MTIME; + f2->mtime_before_update = NONEXISTENT_MTIME; + } + + for (f = lookup_file (".INTERMEDIATE"); f != 0; f = f->prev) + { + /* .INTERMEDIATE with deps listed + marks those deps as intermediate files. */ + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + f2->intermediate = 1; + /* .INTERMEDIATE with no deps does nothing. + Marking all files as intermediates is useless + since the goal targets would be deleted after they are built. */ + } + + for (f = lookup_file (".SECONDARY"); f != 0; f = f->prev) + { + /* .SECONDARY with deps listed + marks those deps as intermediate files + in that they don't get rebuilt if not actually needed; + but unlike real intermediate files, + these are not deleted after make finishes. */ + if (f->deps) + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + f2->intermediate = f2->secondary = 1; + /* .SECONDARY with no deps listed marks *all* files that way. */ + else + all_secondary = 1; + } + + f = lookup_file (".EXPORT_ALL_VARIABLES"); + if (f != 0 && f->is_target) + export_all_variables = 1; + + f = lookup_file (".IGNORE"); + if (f != 0 && f->is_target) + { + if (f->deps == 0) + ignore_errors_flag = 1; + else + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + f2->command_flags |= COMMANDS_NOERROR; + } + + f = lookup_file (".SILENT"); + if (f != 0 && f->is_target) + { + if (f->deps == 0) + silent_flag = 1; + else + for (d = f->deps; d != 0; d = d->next) + for (f2 = d->file; f2 != 0; f2 = f2->prev) + f2->command_flags |= COMMANDS_SILENT; + } + + f = lookup_file (".POSIX"); + if (f != 0 && f->is_target) + posix_pedantic = 1; + + f = lookup_file (".NOTPARALLEL"); + if (f != 0 && f->is_target) + not_parallel = 1; +} + +/* Set the `command_state' member of FILE and all its `also_make's. */ + +void +set_command_state (file, state) + struct file *file; + int state; +{ + struct dep *d; + + file->command_state = state; + + for (d = file->also_make; d != 0; d = d->next) + d->file->command_state = state; +} + +/* Convert an external file timestamp to internal form. */ + +FILE_TIMESTAMP +file_timestamp_cons (fname, s, ns) + char const *fname; + time_t s; + int ns; +{ + int offset = ORDINARY_MTIME_MIN + (FILE_TIMESTAMP_HI_RES ? ns : 0); + FILE_TIMESTAMP product = (FILE_TIMESTAMP) s << FILE_TIMESTAMP_LO_BITS; + FILE_TIMESTAMP ts = product + offset; + + if (! (s <= FILE_TIMESTAMP_S (ORDINARY_MTIME_MAX) + && product <= ts && ts <= ORDINARY_MTIME_MAX)) + { + char buf[FILE_TIMESTAMP_PRINT_LEN_BOUND + 1]; + ts = s <= OLD_MTIME ? ORDINARY_MTIME_MIN : ORDINARY_MTIME_MAX; + file_timestamp_sprintf (buf, ts); + error (NILF, _("%s: Timestamp out of range; substituting %s"), + fname ? fname : _("Current time"), buf); + } + + return ts; +} + +/* Return the current time as a file timestamp, setting *RESOLUTION to + its resolution. */ +FILE_TIMESTAMP +file_timestamp_now (resolution) + int *resolution; +{ + int r; + time_t s; + int ns; + + /* Don't bother with high-resolution clocks if file timestamps have + only one-second resolution. The code below should work, but it's + not worth the hassle of debugging it on hosts where it fails. */ +#if FILE_TIMESTAMP_HI_RES +# if HAVE_CLOCK_GETTIME && defined CLOCK_REALTIME + { + struct timespec timespec; + if (clock_gettime (CLOCK_REALTIME, ×pec) == 0) + { + r = 1; + s = timespec.tv_sec; + ns = timespec.tv_nsec; + goto got_time; + } + } +# endif +# if HAVE_GETTIMEOFDAY + { + struct timeval timeval; + if (gettimeofday (&timeval, 0) == 0) + { + r = 1000; + s = timeval.tv_sec; + ns = timeval.tv_usec * 1000; + goto got_time; + } + } +# endif +#endif + + r = 1000000000; + s = time ((time_t *) 0); + ns = 0; + + got_time: + *resolution = r; + return file_timestamp_cons (0, s, ns); +} + +/* Place into the buffer P a printable representation of the file + timestamp TS. */ +void +file_timestamp_sprintf (p, ts) + char *p; + FILE_TIMESTAMP ts; +{ + time_t t = FILE_TIMESTAMP_S (ts); + struct tm *tm = localtime (&t); + + if (tm) + sprintf (p, "%04d-%02d-%02d %02d:%02d:%02d", + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec); + else if (t < 0) + sprintf (p, "%ld", (long) t); + else + sprintf (p, "%lu", (unsigned long) t); + p += strlen (p); + + /* Append nanoseconds as a fraction, but remove trailing zeros. + We don't know the actual timestamp resolution, since clock_getres + applies only to local times, whereas this timestamp might come + from a remote filesystem. So removing trailing zeros is the + best guess that we can do. */ + sprintf (p, ".%09d", FILE_TIMESTAMP_NS (ts)); + p += strlen (p) - 1; + while (*p == '0') + p--; + p += *p != '.'; + + *p = '\0'; +} + +/* Print the data base of files. */ + +static void +print_file (f) + struct file *f; +{ + struct dep *d; + struct dep *ood = 0; + + putchar ('\n'); + if (!f->is_target) + puts (_("# Not a target:")); + printf ("%s:%s", f->name, f->double_colon ? ":" : ""); + + /* Print all normal dependencies; note any order-only deps. */ + for (d = f->deps; d != 0; d = d->next) + if (! d->ignore_mtime) + printf (" %s", dep_name (d)); + else if (! ood) + ood = d; + + /* Print order-only deps, if we have any. */ + if (ood) + { + printf (" | %s", dep_name (ood)); + for (d = ood->next; d != 0; d = d->next) + if (d->ignore_mtime) + printf (" %s", dep_name (d)); + } + + putchar ('\n'); + + if (f->precious) + puts (_("# Precious file (prerequisite of .PRECIOUS).")); + if (f->phony) + puts (_("# Phony target (prerequisite of .PHONY).")); + if (f->cmd_target) + puts (_("# Command-line target.")); + if (f->dontcare) + puts (_("# A default or MAKEFILES makefile.")); + puts (f->tried_implicit + ? _("# Implicit rule search has been done.") + : _("# Implicit rule search has not been done.")); + if (f->stem != 0) + printf (_("# Implicit/static pattern stem: `%s'\n"), f->stem); + if (f->intermediate) + puts (_("# File is an intermediate prerequisite.")); + if (f->also_make != 0) + { + fputs (_("# Also makes:"), stdout); + for (d = f->also_make; d != 0; d = d->next) + printf (" %s", dep_name (d)); + putchar ('\n'); + } + if (f->last_mtime == UNKNOWN_MTIME) + puts (_("# Modification time never checked.")); + else if (f->last_mtime == NONEXISTENT_MTIME) + puts (_("# File does not exist.")); + else if (f->last_mtime == OLD_MTIME) + puts (_("# File is very old.")); + else + { + char buf[FILE_TIMESTAMP_PRINT_LEN_BOUND + 1]; + file_timestamp_sprintf (buf, f->last_mtime); + printf (_("# Last modified %s\n"), buf); + } + puts (f->updated + ? _("# File has been updated.") : _("# File has not been updated.")); + switch (f->command_state) + { + case cs_running: + puts (_("# Commands currently running (THIS IS A BUG).")); + break; + case cs_deps_running: + puts (_("# Dependencies commands running (THIS IS A BUG).")); + break; + case cs_not_started: + case cs_finished: + switch (f->update_status) + { + case -1: + break; + case 0: + puts (_("# Successfully updated.")); + break; + case 1: + assert (question_flag); + puts (_("# Needs to be updated (-q is set).")); + break; + case 2: + puts (_("# Failed to be updated.")); + break; + default: + puts (_("# Invalid value in `update_status' member!")); + fflush (stdout); + fflush (stderr); + abort (); + } + break; + default: + puts (_("# Invalid value in `command_state' member!")); + fflush (stdout); + fflush (stderr); + abort (); + } + + if (f->variables != 0) + print_file_variables (f); + + if (f->cmds != 0) + print_commands (f->cmds); +} + +void +print_file_data_base () +{ + puts (_("\n# Files")); + + hash_map (&files, print_file); + + fputs (_("\n# files hash-table stats:\n# "), stdout); + hash_print_stats (&files, stdout); +} + +#define EXPANSION_INCREMENT(_l) ((((_l) / 500) + 1) * 500) + +char * +build_target_list (value) + char *value; +{ + static unsigned long last_targ_count = 0; + + if (files.ht_fill != last_targ_count) + { + unsigned long max = EXPANSION_INCREMENT (strlen (value)); + unsigned long len; + char *p; + struct file **fp = (struct file **) files.ht_vec; + struct file **end = &fp[files.ht_size]; + + /* Make sure we have at least MAX bytes in the allocated buffer. */ + value = xrealloc (value, max); + + p = value; + len = 0; + for (; fp < end; ++fp) + if (!HASH_VACANT (*fp) && (*fp)->is_target) + { + struct file *f = *fp; + int l = strlen (f->name); + + len += l + 1; + if (len > max) + { + unsigned long off = p - value; + + max += EXPANSION_INCREMENT (l + 1); + value = xrealloc (value, max); + p = &value[off]; + } + + bcopy (f->name, p, l); + p += l; + *(p++) = ' '; + } + *(p-1) = '\0'; + + last_targ_count = files.ht_fill; + } + + return value; +} + +void +init_hash_files () +{ + hash_init (&files, 1000, file_hash_1, file_hash_2, file_hash_cmp); +} + +/* EOF */ diff --git a/src/mkutil/make-3.80/filedef.h b/src/mkutil/make-3.80/filedef.h new file mode 100644 index 00000000..b7d6e676 --- /dev/null +++ b/src/mkutil/make-3.80/filedef.h @@ -0,0 +1,199 @@ +/* Definition of target file data structures for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +/* Structure that represents the info on one file + that the makefile says how to make. + All of these are chained together through `next'. */ + +#include "hash.h" + +struct file + { + char *name; + char *hname; /* Hashed filename */ + char *vpath; /* VPATH/vpath pathname */ + struct dep *deps; /* all dependencies, including duplicates */ + struct commands *cmds; /* Commands to execute for this target. */ + int command_flags; /* Flags OR'd in for cmds; see commands.h. */ + char *stem; /* Implicit stem, if an implicit + rule has been used */ + struct dep *also_make; /* Targets that are made by making this. */ + FILE_TIMESTAMP last_mtime; /* File's modtime, if already known. */ + FILE_TIMESTAMP mtime_before_update; /* File's modtime before any updating + has been performed. */ + struct file *prev; /* Previous entry for same file name; + used when there are multiple double-colon + entries for the same file. */ + + /* File that this file was renamed to. After any time that a + file could be renamed, call `check_renamed' (below). */ + struct file *renamed; + + /* List of variable sets used for this file. */ + struct variable_set_list *variables; + + /* Pattern-specific variable reference for this target, or null if there + isn't one. Also see the pat_searched flag, below. */ + struct variable_set_list *pat_variables; + + /* Immediate dependent that caused this target to be remade, + or nil if there isn't one. */ + struct file *parent; + + /* For a double-colon entry, this is the first double-colon entry for + the same file. Otherwise this is null. */ + struct file *double_colon; + + short int update_status; /* Status of the last attempt to update, + or -1 if none has been made. */ + + enum /* State of the commands. */ + { /* Note: It is important that cs_not_started be zero. */ + cs_not_started, /* Not yet started. */ + cs_deps_running, /* Dep commands running. */ + cs_running, /* Commands running. */ + cs_finished /* Commands finished. */ + } command_state ENUM_BITFIELD (2); + + unsigned int precious:1; /* Non-0 means don't delete file on quit */ + unsigned int low_resolution_time:1; /* Nonzero if this file's time stamp + has only one-second resolution. */ + unsigned int tried_implicit:1; /* Nonzero if have searched + for implicit rule for making + this file; don't search again. */ + unsigned int updating:1; /* Nonzero while updating deps of this file */ + unsigned int updated:1; /* Nonzero if this file has been remade. */ + unsigned int is_target:1; /* Nonzero if file is described as target. */ + unsigned int cmd_target:1; /* Nonzero if file was given on cmd line. */ + unsigned int phony:1; /* Nonzero if this is a phony file + i.e., a dependency of .PHONY. */ + unsigned int intermediate:1;/* Nonzero if this is an intermediate file. */ + /* Nonzero, for an intermediate file, + means remove_intermediates should not delete it. */ + unsigned int secondary:1; + unsigned int dontcare:1; /* Nonzero if no complaint is to be made if + this target cannot be remade. */ + unsigned int ignore_vpath:1;/* Nonzero if we threw out VPATH name. */ + unsigned int pat_searched:1;/* Nonzero if we already searched for + pattern-specific variables. */ + unsigned int considered:1; /* equal to `considered' if file has been + considered on current scan of goal chain */ + }; + + +extern struct file *default_goal_file, *suffix_file, *default_file; + + +extern struct file *lookup_file PARAMS ((char *name)); +extern struct file *enter_file PARAMS ((char *name)); +extern void remove_intermediates PARAMS ((int sig)); +extern void snap_deps PARAMS ((void)); +extern void rename_file PARAMS ((struct file *file, char *name)); +extern void rehash_file PARAMS ((struct file *file, char *name)); +extern void set_command_state PARAMS ((struct file *file, int state)); +extern void notice_finished_file PARAMS ((struct file *file)); +extern void init_hash_files PARAMS ((void)); +extern char *build_target_list PARAMS ((char *old_list)); + +#if FILE_TIMESTAMP_HI_RES +# define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \ + file_timestamp_cons (fname, (st).st_mtime, (st).st_mtim.ST_MTIM_NSEC) +#else +# define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \ + file_timestamp_cons (fname, (st).st_mtime, 0) +#endif + +/* If FILE_TIMESTAMP is 64 bits (or more), use nanosecond resolution. + (Multiply by 2**30 instead of by 10**9 to save time at the cost of + slightly decreasing the number of available timestamps.) With + 64-bit FILE_TIMESTAMP, this stops working on 2514-05-30 01:53:04 + UTC, but by then uintmax_t should be larger than 64 bits. */ +#define FILE_TIMESTAMPS_PER_S (FILE_TIMESTAMP_HI_RES ? 1000000000 : 1) +#define FILE_TIMESTAMP_LO_BITS (FILE_TIMESTAMP_HI_RES ? 30 : 0) + +#define FILE_TIMESTAMP_S(ts) (((ts) - ORDINARY_MTIME_MIN) \ + >> FILE_TIMESTAMP_LO_BITS) +#define FILE_TIMESTAMP_NS(ts) ((int) (((ts) - ORDINARY_MTIME_MIN) \ + & ((1 << FILE_TIMESTAMP_LO_BITS) - 1))) + +/* Upper bound on length of string "YYYY-MM-DD HH:MM:SS.NNNNNNNNN" + representing a file timestamp. The upper bound is not necessarily 19, + since the year might be less than -999 or greater than 9999. + + Subtract one for the sign bit if in case file timestamps can be negative; + subtract FLOOR_LOG2_SECONDS_PER_YEAR to yield an upper bound on how many + file timestamp bits might affect the year; + 302 / 1000 is log10 (2) rounded up; + add one for integer division truncation; + add one more for a minus sign if file timestamps can be negative; + add 4 to allow for any 4-digit epoch year (e.g. 1970); + add 25 to allow for "-MM-DD HH:MM:SS.NNNNNNNNN". */ +#define FLOOR_LOG2_SECONDS_PER_YEAR 24 +#define FILE_TIMESTAMP_PRINT_LEN_BOUND \ + (((sizeof (FILE_TIMESTAMP) * CHAR_BIT - 1 - FLOOR_LOG2_SECONDS_PER_YEAR) \ + * 302 / 1000) \ + + 1 + 1 + 4 + 25) + +extern FILE_TIMESTAMP file_timestamp_cons PARAMS ((char const *, + time_t, int)); +extern FILE_TIMESTAMP file_timestamp_now PARAMS ((int *)); +extern void file_timestamp_sprintf PARAMS ((char *p, FILE_TIMESTAMP ts)); + +/* Return the mtime of file F (a struct file *), caching it. + The value is NONEXISTENT_MTIME if the file does not exist. */ +#define file_mtime(f) file_mtime_1 ((f), 1) +/* Return the mtime of file F (a struct file *), caching it. + Don't search using vpath for the file--if it doesn't actually exist, + we don't find it. + The value is NONEXISTENT_MTIME if the file does not exist. */ +#define file_mtime_no_search(f) file_mtime_1 ((f), 0) +extern FILE_TIMESTAMP f_mtime PARAMS ((struct file *file, int search)); +#define file_mtime_1(f, v) \ + ((f)->last_mtime == UNKNOWN_MTIME ? f_mtime ((f), v) : (f)->last_mtime) + +/* Special timestamp values. */ + +/* The file's timestamp is not yet known. */ +#define UNKNOWN_MTIME 0 + +/* The file does not exist. */ +#define NONEXISTENT_MTIME 1 + +/* The file does not exist, and we assume that it is older than any + actual file. */ +#define OLD_MTIME 2 + +/* The smallest and largest ordinary timestamps. */ +#define ORDINARY_MTIME_MIN (OLD_MTIME + 1) +#define ORDINARY_MTIME_MAX ((FILE_TIMESTAMP_S (NEW_MTIME) \ + << FILE_TIMESTAMP_LO_BITS) \ + + ORDINARY_MTIME_MIN + FILE_TIMESTAMPS_PER_S - 1) + +/* Modtime value to use for `infinitely new'. We used to get the current time + from the system and use that whenever we wanted `new'. But that causes + trouble when the machine running make and the machine holding a file have + different ideas about what time it is; and can also lose for `force' + targets, which need to be considered newer than anything that depends on + them, even if said dependents' modtimes are in the future. */ +#define NEW_MTIME INTEGER_TYPE_MAXIMUM (FILE_TIMESTAMP) + +#define check_renamed(file) \ + while ((file)->renamed != 0) (file) = (file)->renamed /* No ; here. */ diff --git a/src/mkutil/make-3.80/function.c b/src/mkutil/make-3.80/function.c new file mode 100644 index 00000000..cf646d6f --- /dev/null +++ b/src/mkutil/make-3.80/function.c @@ -0,0 +1,2076 @@ +/* Builtin function expansion for GNU Make. +Copyright (C) 1988, 1989, 1991-1997, 1999, 2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "filedef.h" +#include "variable.h" +#include "dep.h" +#include "job.h" +#include "commands.h" +#include "debug.h" + +#ifdef _AMIGA +#include "amiga.h" +#endif + + +struct function_table_entry + { + const char *name; + unsigned char len; + unsigned char minimum_args; + unsigned char maximum_args; + char expand_args; + char *(*func_ptr) PARAMS ((char *output, char **argv, const char *fname)); + }; + +static unsigned long +function_table_entry_hash_1 (keyv) + const void *keyv; +{ + struct function_table_entry const *key = (struct function_table_entry const *) keyv; + return_STRING_N_HASH_1 (key->name, key->len); +} + +static unsigned long +function_table_entry_hash_2 (keyv) + const void *keyv; +{ + struct function_table_entry const *key = (struct function_table_entry const *) keyv; + return_STRING_N_HASH_2 (key->name, key->len); +} + +static int +function_table_entry_hash_cmp (xv, yv) + const void *xv; + const void *yv; +{ + struct function_table_entry const *x = (struct function_table_entry const *) xv; + struct function_table_entry const *y = (struct function_table_entry const *) yv; + int result = x->len - y->len; + if (result) + return result; + return_STRING_N_COMPARE (x->name, y->name, x->len); +} + +static struct hash_table function_table; + + +/* Store into VARIABLE_BUFFER at O the result of scanning TEXT and replacing + each occurrence of SUBST with REPLACE. TEXT is null-terminated. SLEN is + the length of SUBST and RLEN is the length of REPLACE. If BY_WORD is + nonzero, substitutions are done only on matches which are complete + whitespace-delimited words. If SUFFIX_ONLY is nonzero, substitutions are + done only at the ends of whitespace-delimited words. */ + +char * +subst_expand (o, text, subst, replace, slen, rlen, by_word, suffix_only) + char *o; + char *text; + char *subst, *replace; + unsigned int slen, rlen; + int by_word, suffix_only; +{ + register char *t = text; + register char *p; + + if (slen == 0 && !by_word && !suffix_only) + { + /* The first occurrence of "" in any string is its end. */ + o = variable_buffer_output (o, t, strlen (t)); + if (rlen > 0) + o = variable_buffer_output (o, replace, rlen); + return o; + } + + do + { + if ((by_word | suffix_only) && slen == 0) + /* When matching by words, the empty string should match + the end of each word, rather than the end of the whole text. */ + p = end_of_token (next_token (t)); + else + { + p = sindex (t, 0, subst, slen); + if (p == 0) + { + /* No more matches. Output everything left on the end. */ + o = variable_buffer_output (o, t, strlen (t)); + return o; + } + } + + /* Output everything before this occurrence of the string to replace. */ + if (p > t) + o = variable_buffer_output (o, t, p - t); + + /* If we're substituting only by fully matched words, + or only at the ends of words, check that this case qualifies. */ + if ((by_word + && ((p > t && !isblank ((unsigned char)p[-1])) + || (p[slen] != '\0' && !isblank ((unsigned char)p[slen])))) + || (suffix_only + && (p[slen] != '\0' && !isblank ((unsigned char)p[slen])))) + /* Struck out. Output the rest of the string that is + no longer to be replaced. */ + o = variable_buffer_output (o, subst, slen); + else if (rlen > 0) + /* Output the replacement string. */ + o = variable_buffer_output (o, replace, rlen); + + /* Advance T past the string to be replaced. */ + t = p + slen; + } while (*t != '\0'); + + return o; +} + + +/* Store into VARIABLE_BUFFER at O the result of scanning TEXT + and replacing strings matching PATTERN with REPLACE. + If PATTERN_PERCENT is not nil, PATTERN has already been + run through find_percent, and PATTERN_PERCENT is the result. + If REPLACE_PERCENT is not nil, REPLACE has already been + run through find_percent, and REPLACE_PERCENT is the result. */ + +char * +patsubst_expand (o, text, pattern, replace, pattern_percent, replace_percent) + char *o; + char *text; + register char *pattern, *replace; + register char *pattern_percent, *replace_percent; +{ + unsigned int pattern_prepercent_len, pattern_postpercent_len; + unsigned int replace_prepercent_len, replace_postpercent_len = 0; + char *t; + unsigned int len; + int doneany = 0; + + /* We call find_percent on REPLACE before checking PATTERN so that REPLACE + will be collapsed before we call subst_expand if PATTERN has no %. */ + if (replace_percent == 0) + replace_percent = find_percent (replace); + if (replace_percent != 0) + { + /* Record the length of REPLACE before and after the % so + we don't have to compute these lengths more than once. */ + replace_prepercent_len = replace_percent - replace; + replace_postpercent_len = strlen (replace_percent + 1); + } + else + /* We store the length of the replacement + so we only need to compute it once. */ + replace_prepercent_len = strlen (replace); + + if (pattern_percent == 0) + pattern_percent = find_percent (pattern); + if (pattern_percent == 0) + /* With no % in the pattern, this is just a simple substitution. */ + return subst_expand (o, text, pattern, replace, + strlen (pattern), strlen (replace), 1, 0); + + /* Record the length of PATTERN before and after the % + so we don't have to compute it more than once. */ + pattern_prepercent_len = pattern_percent - pattern; + pattern_postpercent_len = strlen (pattern_percent + 1); + + while ((t = find_next_token (&text, &len)) != 0) + { + int fail = 0; + + /* Is it big enough to match? */ + if (len < pattern_prepercent_len + pattern_postpercent_len) + fail = 1; + + /* Does the prefix match? */ + if (!fail && pattern_prepercent_len > 0 + && (*t != *pattern + || t[pattern_prepercent_len - 1] != pattern_percent[-1] + || !strneq (t + 1, pattern + 1, pattern_prepercent_len - 1))) + fail = 1; + + /* Does the suffix match? */ + if (!fail && pattern_postpercent_len > 0 + && (t[len - 1] != pattern_percent[pattern_postpercent_len] + || t[len - pattern_postpercent_len] != pattern_percent[1] + || !strneq (&t[len - pattern_postpercent_len], + &pattern_percent[1], pattern_postpercent_len - 1))) + fail = 1; + + if (fail) + /* It didn't match. Output the string. */ + o = variable_buffer_output (o, t, len); + else + { + /* It matched. Output the replacement. */ + + /* Output the part of the replacement before the %. */ + o = variable_buffer_output (o, replace, replace_prepercent_len); + + if (replace_percent != 0) + { + /* Output the part of the matched string that + matched the % in the pattern. */ + o = variable_buffer_output (o, t + pattern_prepercent_len, + len - (pattern_prepercent_len + + pattern_postpercent_len)); + /* Output the part of the replacement after the %. */ + o = variable_buffer_output (o, replace_percent + 1, + replace_postpercent_len); + } + } + + /* Output a space, but not if the replacement is "". */ + if (fail || replace_prepercent_len > 0 + || (replace_percent != 0 && len + replace_postpercent_len > 0)) + { + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + } + if (doneany) + /* Kill the last space. */ + --o; + + return o; +} + + +/* Look up a function by name. */ + +static const struct function_table_entry * +lookup_function (s) + const char *s; +{ + const char *e = s; + + while (*e && ( (*e >= 'a' && *e <= 'z') || *e == '-')) + e++; + if (*e == '\0' || isblank ((unsigned char) *e)) + { + struct function_table_entry function_table_entry_key; + function_table_entry_key.name = s; + function_table_entry_key.len = e - s; + + return hash_find_item (&function_table, &function_table_entry_key); + } + return 0; +} + + +/* Return 1 if PATTERN matches STR, 0 if not. */ + +int +pattern_matches (pattern, percent, str) + register char *pattern, *percent, *str; +{ + unsigned int sfxlen, strlength; + + if (percent == 0) + { + unsigned int len = strlen (pattern) + 1; + char *new_chars = (char *) alloca (len); + bcopy (pattern, new_chars, len); + pattern = new_chars; + percent = find_percent (pattern); + if (percent == 0) + return streq (pattern, str); + } + + sfxlen = strlen (percent + 1); + strlength = strlen (str); + + if (strlength < (percent - pattern) + sfxlen + || !strneq (pattern, str, percent - pattern)) + return 0; + + return !strcmp (percent + 1, str + (strlength - sfxlen)); +} + + +/* Find the next comma or ENDPAREN (counting nested STARTPAREN and + ENDPARENtheses), starting at PTR before END. Return a pointer to + next character. + + If no next argument is found, return NULL. +*/ + +static char * +find_next_argument (startparen, endparen, ptr, end) + char startparen; + char endparen; + const char *ptr; + const char *end; +{ + int count = 0; + + for (; ptr < end; ++ptr) + if (*ptr == startparen) + ++count; + + else if (*ptr == endparen) + { + --count; + if (count < 0) + return NULL; + } + + else if (*ptr == ',' && !count) + return (char *)ptr; + + /* We didn't find anything. */ + return NULL; +} + + +/* Glob-expand LINE. The returned pointer is + only good until the next call to string_glob. */ + +static char * +string_glob (line) + char *line; +{ + static char *result = 0; + static unsigned int length; + register struct nameseq *chain; + register unsigned int idx; + + chain = multi_glob (parse_file_seq + (&line, '\0', sizeof (struct nameseq), + /* We do not want parse_file_seq to strip `./'s. + That would break examples like: + $(patsubst ./%.c,obj/%.o,$(wildcard ./?*.c)). */ + 0), + sizeof (struct nameseq)); + + if (result == 0) + { + length = 100; + result = (char *) xmalloc (100); + } + + idx = 0; + while (chain != 0) + { + register char *name = chain->name; + unsigned int len = strlen (name); + + struct nameseq *next = chain->next; + free ((char *) chain); + chain = next; + + /* multi_glob will pass names without globbing metacharacters + through as is, but we want only files that actually exist. */ + if (file_exists_p (name)) + { + if (idx + len + 1 > length) + { + length += (len + 1) * 2; + result = (char *) xrealloc (result, length); + } + bcopy (name, &result[idx], len); + idx += len; + result[idx++] = ' '; + } + + free (name); + } + + /* Kill the last space and terminate the string. */ + if (idx == 0) + result[0] = '\0'; + else + result[idx - 1] = '\0'; + + return result; +} + +/* + Builtin functions + */ + +static char * +func_patsubst (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + o = patsubst_expand (o, argv[2], argv[0], argv[1], (char *) 0, (char *) 0); + return o; +} + + +static char * +func_join (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + int doneany = 0; + + /* Write each word of the first argument directly followed + by the corresponding word of the second argument. + If the two arguments have a different number of words, + the excess words are just output separated by blanks. */ + register char *tp; + register char *pp; + char *list1_iterator = argv[0]; + char *list2_iterator = argv[1]; + do + { + unsigned int len1, len2; + + tp = find_next_token (&list1_iterator, &len1); + if (tp != 0) + o = variable_buffer_output (o, tp, len1); + + pp = find_next_token (&list2_iterator, &len2); + if (pp != 0) + o = variable_buffer_output (o, pp, len2); + + if (tp != 0 || pp != 0) + { + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + } + while (tp != 0 || pp != 0); + if (doneany) + /* Kill the last blank. */ + --o; + + return o; +} + + +static char * +func_origin (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + /* Expand the argument. */ + register struct variable *v = lookup_variable (argv[0], strlen (argv[0])); + if (v == 0) + o = variable_buffer_output (o, "undefined", 9); + else + switch (v->origin) + { + default: + case o_invalid: + abort (); + break; + case o_default: + o = variable_buffer_output (o, "default", 7); + break; + case o_env: + o = variable_buffer_output (o, "environment", 11); + break; + case o_file: + o = variable_buffer_output (o, "file", 4); + break; + case o_env_override: + o = variable_buffer_output (o, "environment override", 20); + break; + case o_command: + o = variable_buffer_output (o, "command line", 12); + break; + case o_override: + o = variable_buffer_output (o, "override", 8); + break; + case o_automatic: + o = variable_buffer_output (o, "automatic", 9); + break; + } + + return o; +} + +#ifdef VMS +# define IS_PATHSEP(c) ((c) == ']') +#else +# ifdef HAVE_DOS_PATHS +# define IS_PATHSEP(c) ((c) == '/' || (c) == '\\') +# else +# define IS_PATHSEP(c) ((c) == '/') +# endif +#endif + + +static char * +func_notdir_suffix (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + /* Expand the argument. */ + char *list_iterator = argv[0]; + char *p2 =0; + int doneany =0; + unsigned int len=0; + + int is_suffix = streq (funcname, "suffix"); + int is_notdir = !is_suffix; + while ((p2 = find_next_token (&list_iterator, &len)) != 0) + { + char *p = p2 + len; + + + while (p >= p2 && (!is_suffix || *p != '.')) + { + if (IS_PATHSEP (*p)) + break; + --p; + } + + if (p >= p2) + { + if (is_notdir) + ++p; + else if (*p != '.') + continue; + o = variable_buffer_output (o, p, len - (p - p2)); + } +#ifdef HAVE_DOS_PATHS + /* Handle the case of "d:foo/bar". */ + else if (streq (funcname, "notdir") && p2[0] && p2[1] == ':') + { + p = p2 + 2; + o = variable_buffer_output (o, p, len - (p - p2)); + } +#endif + else if (is_notdir) + o = variable_buffer_output (o, p2, len); + + if (is_notdir || p >= p2) + { + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + } + if (doneany) + /* Kill last space. */ + --o; + + + return o; + +} + + +static char * +func_basename_dir (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + /* Expand the argument. */ + char *p3 = argv[0]; + char *p2=0; + int doneany=0; + unsigned int len=0; + char *p=0; + int is_basename= streq (funcname, "basename"); + int is_dir= !is_basename; + + while ((p2 = find_next_token (&p3, &len)) != 0) + { + p = p2 + len; + while (p >= p2 && (!is_basename || *p != '.')) + { + if (IS_PATHSEP (*p)) + break; + --p; + } + + if (p >= p2 && (is_dir)) + o = variable_buffer_output (o, p2, ++p - p2); + else if (p >= p2 && (*p == '.')) + o = variable_buffer_output (o, p2, p - p2); +#ifdef HAVE_DOS_PATHS + /* Handle the "d:foobar" case */ + else if (p2[0] && p2[1] == ':' && is_dir) + o = variable_buffer_output (o, p2, 2); +#endif + else if (is_dir) +#ifdef VMS + o = variable_buffer_output (o, "[]", 2); +#else +#ifndef _AMIGA + o = variable_buffer_output (o, "./", 2); +#else + ; /* Just a nop... */ +#endif /* AMIGA */ +#endif /* !VMS */ + else + /* The entire name is the basename. */ + o = variable_buffer_output (o, p2, len); + + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + if (doneany) + /* Kill last space. */ + --o; + + + return o; +} + +static char * +func_addsuffix_addprefix (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + int fixlen = strlen (argv[0]); + char *list_iterator = argv[1]; + int is_addprefix = streq (funcname, "addprefix"); + int is_addsuffix = !is_addprefix; + + int doneany = 0; + char *p; + unsigned int len; + + while ((p = find_next_token (&list_iterator, &len)) != 0) + { + if (is_addprefix) + o = variable_buffer_output (o, argv[0], fixlen); + o = variable_buffer_output (o, p, len); + if (is_addsuffix) + o = variable_buffer_output (o, argv[0], fixlen); + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + + if (doneany) + /* Kill last space. */ + --o; + + return o; +} + +static char * +func_subst (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + o = subst_expand (o, argv[2], argv[0], argv[1], strlen (argv[0]), + strlen (argv[1]), 0, 0); + + return o; +} + + +static char * +func_firstword (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + unsigned int i; + char *words = argv[0]; /* Use a temp variable for find_next_token */ + char *p = find_next_token (&words, &i); + + if (p != 0) + o = variable_buffer_output (o, p, i); + + return o; +} + + +static char * +func_words (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + int i = 0; + char *word_iterator = argv[0]; + char buf[20]; + + while (find_next_token (&word_iterator, (unsigned int *) 0) != 0) + ++i; + + sprintf (buf, "%d", i); + o = variable_buffer_output (o, buf, strlen (buf)); + + + return o; +} + +char * +strip_whitespace (begpp, endpp) + char **begpp; + char **endpp; +{ + while (isspace ((unsigned char)**begpp) && *begpp <= *endpp) + (*begpp) ++; + while (isspace ((unsigned char)**endpp) && *endpp >= *begpp) + (*endpp) --; + return *begpp; +} + +int +is_numeric (p) + char *p; +{ + char *end = p + strlen (p) - 1; + char *beg = p; + strip_whitespace (&p, &end); + + while (p <= end) + if (!ISDIGIT (*(p++))) /* ISDIGIT only evals its arg once: see make.h. */ + return 0; + + return (end - beg >= 0); +} + +void +check_numeric (s, message) + char *s; + char *message; +{ + if (!is_numeric (s)) + fatal (reading_file, message); +} + + + +static char * +func_word (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char *end_p=0; + int i=0; + char *p=0; + + /* Check the first argument. */ + check_numeric (argv[0], _("non-numeric first argument to `word' function")); + i = atoi (argv[0]); + + if (i == 0) + fatal (reading_file, _("first argument to `word' function must be greater than 0")); + + + end_p = argv[1]; + while ((p = find_next_token (&end_p, 0)) != 0) + if (--i == 0) + break; + + if (i == 0) + o = variable_buffer_output (o, p, end_p - p); + + return o; +} + +static char * +func_wordlist (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + int start, count; + + /* Check the arguments. */ + check_numeric (argv[0], + _("non-numeric first argument to `wordlist' function")); + check_numeric (argv[1], + _("non-numeric second argument to `wordlist' function")); + + start = atoi (argv[0]); + count = atoi (argv[1]) - start + 1; + + if (count > 0) + { + char *p; + char *end_p = argv[2]; + + /* Find the beginning of the "start"th word. */ + while (((p = find_next_token (&end_p, 0)) != 0) && --start) + ; + + if (p) + { + /* Find the end of the "count"th word from start. */ + while (--count && (find_next_token (&end_p, 0) != 0)) + ; + + /* Return the stuff in the middle. */ + o = variable_buffer_output (o, p, end_p - p); + } + } + + return o; +} + +static char* +func_findstring (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + /* Find the first occurrence of the first string in the second. */ + int i = strlen (argv[0]); + if (sindex (argv[1], 0, argv[0], i) != 0) + o = variable_buffer_output (o, argv[0], i); + + return o; +} + +static char * +func_foreach (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + /* expand only the first two. */ + char *varname = expand_argument (argv[0], NULL); + char *list = expand_argument (argv[1], NULL); + char *body = argv[2]; + + int doneany = 0; + char *list_iterator = list; + char *p; + unsigned int len; + register struct variable *var; + + push_new_variable_scope (); + var = define_variable (varname, strlen (varname), "", o_automatic, 0); + + /* loop through LIST, put the value in VAR and expand BODY */ + while ((p = find_next_token (&list_iterator, &len)) != 0) + { + char *result = 0; + + { + char save = p[len]; + + p[len] = '\0'; + free (var->value); + var->value = (char *) xstrdup ((char*) p); + p[len] = save; + } + + result = allocated_variable_expand (body); + + o = variable_buffer_output (o, result, strlen (result)); + o = variable_buffer_output (o, " ", 1); + doneany = 1; + free (result); + } + + if (doneany) + /* Kill the last space. */ + --o; + + pop_variable_scope (); + free (varname); + free (list); + + return o; +} + +struct a_word +{ + struct a_word *next; + struct a_word *chain; + char *str; + int length; + int matched; +}; + +static unsigned long +a_word_hash_1 (key) + const void *key; +{ + return_STRING_HASH_1 (((struct a_word const *) key)->str); +} + +static unsigned long +a_word_hash_2 (key) + const void *key; +{ + return_STRING_HASH_2 (((struct a_word const *) key)->str); +} + +static int +a_word_hash_cmp (x, y) + const void *x; + const void *y; +{ + int result = ((struct a_word const *) x)->length - ((struct a_word const *) y)->length; + if (result) + return result; + return_STRING_COMPARE (((struct a_word const *) x)->str, + ((struct a_word const *) y)->str); +} + +struct a_pattern +{ + struct a_pattern *next; + char *str; + char *percent; + int length; + int save_c; +}; + +static char * +func_filter_filterout (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + struct a_word *wordhead; + struct a_word **wordtail; + struct a_word *wp; + struct a_pattern *pathead; + struct a_pattern **pattail; + struct a_pattern *pp; + + struct hash_table a_word_table; + int is_filter = streq (funcname, "filter"); + char *pat_iterator = argv[0]; + char *word_iterator = argv[1]; + int literals = 0; + int words = 0; + int hashing = 0; + char *p; + unsigned int len; + + /* Chop ARGV[0] up into patterns to match against the words. */ + + pattail = &pathead; + while ((p = find_next_token (&pat_iterator, &len)) != 0) + { + struct a_pattern *pat = (struct a_pattern *) alloca (sizeof (struct a_pattern)); + + *pattail = pat; + pattail = &pat->next; + + if (*pat_iterator != '\0') + ++pat_iterator; + + pat->str = p; + pat->length = len; + pat->save_c = p[len]; + p[len] = '\0'; + pat->percent = find_percent (p); + if (pat->percent == 0) + literals++; + } + *pattail = 0; + + /* Chop ARGV[1] up into words to match against the patterns. */ + + wordtail = &wordhead; + while ((p = find_next_token (&word_iterator, &len)) != 0) + { + struct a_word *word = (struct a_word *) alloca (sizeof (struct a_word)); + + *wordtail = word; + wordtail = &word->next; + + if (*word_iterator != '\0') + ++word_iterator; + + p[len] = '\0'; + word->str = p; + word->length = len; + word->matched = 0; + word->chain = 0; + words++; + } + *wordtail = 0; + + /* Only use a hash table if arg list lengths justifies the cost. */ + hashing = (literals >= 2 && (literals * words) >= 10); + if (hashing) + { + hash_init (&a_word_table, words, a_word_hash_1, a_word_hash_2, a_word_hash_cmp); + for (wp = wordhead; wp != 0; wp = wp->next) + { + struct a_word *owp = hash_insert (&a_word_table, wp); + if (owp) + wp->chain = owp; + } + } + + if (words) + { + int doneany = 0; + + /* Run each pattern through the words, killing words. */ + for (pp = pathead; pp != 0; pp = pp->next) + { + if (pp->percent) + for (wp = wordhead; wp != 0; wp = wp->next) + wp->matched |= pattern_matches (pp->str, pp->percent, wp->str); + else if (hashing) + { + struct a_word a_word_key; + a_word_key.str = pp->str; + a_word_key.length = pp->length; + wp = (struct a_word *) hash_find_item (&a_word_table, &a_word_key); + while (wp) + { + wp->matched |= 1; + wp = wp->chain; + } + } + else + for (wp = wordhead; wp != 0; wp = wp->next) + wp->matched |= (wp->length == pp->length + && strneq (pp->str, wp->str, wp->length)); + } + + /* Output the words that matched (or didn't, for filter-out). */ + for (wp = wordhead; wp != 0; wp = wp->next) + if (is_filter ? wp->matched : !wp->matched) + { + o = variable_buffer_output (o, wp->str, strlen (wp->str)); + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + + if (doneany) + /* Kill the last space. */ + --o; + } + + for (pp = pathead; pp != 0; pp = pp->next) + pp->str[pp->length] = pp->save_c; + + if (hashing) + hash_free (&a_word_table, 0); + + return o; +} + + +static char * +func_strip (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char *p = argv[0]; + int doneany =0; + + while (*p != '\0') + { + int i=0; + char *word_start=0; + + while (isspace ((unsigned char)*p)) + ++p; + word_start = p; + for (i=0; *p != '\0' && !isspace ((unsigned char)*p); ++p, ++i) + {} + if (!i) + break; + o = variable_buffer_output (o, word_start, i); + o = variable_buffer_output (o, " ", 1); + doneany = 1; + } + + if (doneany) + /* Kill the last space. */ + --o; + return o; +} + +/* + Print a warning or fatal message. +*/ +static char * +func_error (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char **argvp; + char *msg, *p; + int len; + + /* The arguments will be broken on commas. Rather than create yet + another special case where function arguments aren't broken up, + just create a format string that puts them back together. */ + for (len=0, argvp=argv; *argvp != 0; ++argvp) + len += strlen (*argvp) + 2; + + p = msg = (char *) alloca (len + 1); + + for (argvp=argv; argvp[1] != 0; ++argvp) + { + strcpy (p, *argvp); + p += strlen (*argvp); + *(p++) = ','; + *(p++) = ' '; + } + strcpy (p, *argvp); + + if (*funcname == 'e') + fatal (reading_file, "%s", msg); + + /* The warning function expands to the empty string. */ + error (reading_file, "%s", msg); + + return o; +} + + +/* + chop argv[0] into words, and sort them. + */ +static char * +func_sort (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char **words = 0; + int nwords = 0; + register int wordi = 0; + + /* Chop ARGV[0] into words and put them in WORDS. */ + char *t = argv[0]; + char *p; + unsigned int len; + int i; + + while ((p = find_next_token (&t, &len)) != 0) + { + if (wordi >= nwords - 1) + { + nwords = (2 * nwords) + 5; + words = (char **) xrealloc ((char *) words, + nwords * sizeof (char *)); + } + words[wordi++] = savestring (p, len); + } + + if (!wordi) + return o; + + /* Now sort the list of words. */ + qsort ((char *) words, wordi, sizeof (char *), alpha_compare); + + /* Now write the sorted list. */ + for (i = 0; i < wordi; ++i) + { + len = strlen (words[i]); + if (i == wordi - 1 || strlen (words[i + 1]) != len + || strcmp (words[i], words[i + 1])) + { + o = variable_buffer_output (o, words[i], len); + o = variable_buffer_output (o, " ", 1); + } + free (words[i]); + } + /* Kill the last space. */ + --o; + + free (words); + + return o; +} + +/* + $(if condition,true-part[,false-part]) + + CONDITION is false iff it evaluates to an empty string. White + space before and after condition are stripped before evaluation. + + If CONDITION is true, then TRUE-PART is evaluated, otherwise FALSE-PART is + evaluated (if it exists). Because only one of the two PARTs is evaluated, + you can use $(if ...) to create side-effects (with $(shell ...), for + example). +*/ + +static char * +func_if (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char *begp = argv[0]; + char *endp = begp + strlen (argv[0]); + int result = 0; + + /* Find the result of the condition: if we have a value, and it's not + empty, the condition is true. If we don't have a value, or it's the + empty string, then it's false. */ + + strip_whitespace (&begp, &endp); + + if (begp < endp) + { + char *expansion = expand_argument (begp, NULL); + + result = strlen (expansion); + free (expansion); + } + + /* If the result is true (1) we want to eval the first argument, and if + it's false (0) we want to eval the second. If the argument doesn't + exist we do nothing, otherwise expand it and add to the buffer. */ + + argv += 1 + !result; + + if (argv[0]) + { + char *expansion; + + expansion = expand_argument (argv[0], NULL); + + o = variable_buffer_output (o, expansion, strlen (expansion)); + + free (expansion); + } + + return o; +} + +static char * +func_wildcard (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + +#ifdef _AMIGA + o = wildcard_expansion (argv[0], o); +#else + char *p = string_glob (argv[0]); + o = variable_buffer_output (o, p, strlen (p)); +#endif + return o; +} + +/* + $(eval ) + + Always resolves to the empty string. + + Treat the arguments as a segment of makefile, and parse them. +*/ + +static char * +func_eval (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + eval_buffer (argv[0]); + + return o; +} + + +static char * +func_value (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + /* Look up the variable. */ + struct variable *v = lookup_variable (argv[0], strlen (argv[0])); + + /* Copy its value into the output buffer without expanding it. */ + if (v) + o = variable_buffer_output (o, v->value, strlen(v->value)); + + return o; +} + +/* + \r is replaced on UNIX as well. Is this desirable? + */ +void +fold_newlines (buffer, length) + char *buffer; + int *length; +{ + char *dst = buffer; + char *src = buffer; + char *last_nonnl = buffer -1; + src[*length] = 0; + for (; *src != '\0'; ++src) + { + if (src[0] == '\r' && src[1] == '\n') + continue; + if (*src == '\n') + { + *dst++ = ' '; + } + else + { + last_nonnl = dst; + *dst++ = *src; + } + } + *(++last_nonnl) = '\0'; + *length = last_nonnl - buffer; +} + + + +int shell_function_pid = 0, shell_function_completed; + + +#ifdef WINDOWS32 +/*untested*/ + +#include +#include +#include "sub_proc.h" + + +void +windows32_openpipe (int *pipedes, int *pid_p, char **command_argv, char **envp) +{ + SECURITY_ATTRIBUTES saAttr; + HANDLE hIn; + HANDLE hErr; + HANDLE hChildOutRd; + HANDLE hChildOutWr; + HANDLE hProcess; + + + saAttr.nLength = sizeof (SECURITY_ATTRIBUTES); + saAttr.bInheritHandle = TRUE; + saAttr.lpSecurityDescriptor = NULL; + + if (DuplicateHandle (GetCurrentProcess(), + GetStdHandle(STD_INPUT_HANDLE), + GetCurrentProcess(), + &hIn, + 0, + TRUE, + DUPLICATE_SAME_ACCESS) == FALSE) { + fatal (NILF, _("create_child_process: DuplicateHandle(In) failed (e=%d)\n"), + GetLastError()); + + } + if (DuplicateHandle(GetCurrentProcess(), + GetStdHandle(STD_ERROR_HANDLE), + GetCurrentProcess(), + &hErr, + 0, + TRUE, + DUPLICATE_SAME_ACCESS) == FALSE) { + fatal (NILF, _("create_child_process: DuplicateHandle(Err) failed (e=%d)\n"), + GetLastError()); + } + + if (!CreatePipe(&hChildOutRd, &hChildOutWr, &saAttr, 0)) + fatal (NILF, _("CreatePipe() failed (e=%d)\n"), GetLastError()); + + hProcess = process_init_fd(hIn, hChildOutWr, hErr); + + if (!hProcess) + fatal (NILF, _("windows32_openpipe (): process_init_fd() failed\n")); + + /* make sure that CreateProcess() has Path it needs */ + sync_Path_environment(); + + if (!process_begin(hProcess, command_argv, envp, command_argv[0], NULL)) { + /* register process for wait */ + process_register(hProcess); + + /* set the pid for returning to caller */ + *pid_p = (int) hProcess; + + /* set up to read data from child */ + pipedes[0] = _open_osfhandle((long) hChildOutRd, O_RDONLY); + + /* this will be closed almost right away */ + pipedes[1] = _open_osfhandle((long) hChildOutWr, O_APPEND); + } else { + /* reap/cleanup the failed process */ + process_cleanup(hProcess); + + /* close handles which were duplicated, they weren't used */ + CloseHandle(hIn); + CloseHandle(hErr); + + /* close pipe handles, they won't be used */ + CloseHandle(hChildOutRd); + CloseHandle(hChildOutWr); + + /* set status for return */ + pipedes[0] = pipedes[1] = -1; + *pid_p = -1; + } +} +#endif + + +#ifdef __MSDOS__ +FILE * +msdos_openpipe (int* pipedes, int *pidp, char *text) +{ + FILE *fpipe=0; + /* MSDOS can't fork, but it has `popen'. */ + struct variable *sh = lookup_variable ("SHELL", 5); + int e; + extern int dos_command_running, dos_status; + + /* Make sure not to bother processing an empty line. */ + while (isblank ((unsigned char)*text)) + ++text; + if (*text == '\0') + return 0; + + if (sh) + { + char buf[PATH_MAX + 7]; + /* This makes sure $SHELL value is used by $(shell), even + though the target environment is not passed to it. */ + sprintf (buf, "SHELL=%s", sh->value); + putenv (buf); + } + + e = errno; + errno = 0; + dos_command_running = 1; + dos_status = 0; + /* If dos_status becomes non-zero, it means the child process + was interrupted by a signal, like SIGINT or SIGQUIT. See + fatal_error_signal in commands.c. */ + fpipe = popen (text, "rt"); + dos_command_running = 0; + if (!fpipe || dos_status) + { + pipedes[0] = -1; + *pidp = -1; + if (dos_status) + errno = EINTR; + else if (errno == 0) + errno = ENOMEM; + shell_function_completed = -1; + } + else + { + pipedes[0] = fileno (fpipe); + *pidp = 42; /* Yes, the Meaning of Life, the Universe, and Everything! */ + errno = e; + shell_function_completed = 1; + } + return fpipe; +} +#endif + +/* + Do shell spawning, with the naughty bits for different OSes. + */ + +#ifdef VMS + +/* VMS can't do $(shell ...) */ +#define func_shell 0 + +#else +#ifndef _AMIGA +static char * +func_shell (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char* batch_filename = NULL; + int i; + +#ifdef __MSDOS__ + FILE *fpipe; +#endif + char **command_argv; + char *error_prefix; + char **envp; + int pipedes[2]; + int pid; + +#ifndef __MSDOS__ + /* Construct the argument list. */ + command_argv = construct_command_argv (argv[0], + (char **) NULL, (struct file *) 0, + &batch_filename); + if (command_argv == 0) + return o; +#endif + + /* Using a target environment for `shell' loses in cases like: + export var = $(shell echo foobie) + because target_environment hits a loop trying to expand $(var) + to put it in the environment. This is even more confusing when + var was not explicitly exported, but just appeared in the + calling environment. */ + + envp = environ; + + /* For error messages. */ + if (reading_file != 0) + { + error_prefix = (char *) alloca (strlen (reading_file->filenm)+11+4); + sprintf (error_prefix, + "%s:%lu: ", reading_file->filenm, reading_file->lineno); + } + else + error_prefix = ""; + +#ifdef WINDOWS32 + windows32_openpipe (pipedes, &pid, command_argv, envp); + + if (pipedes[0] < 0) { + /* open of the pipe failed, mark as failed execution */ + shell_function_completed = -1; + + return o; + } else +#else /* WINDOWS32 */ + +# ifdef __MSDOS__ + fpipe = msdos_openpipe (pipedes, &pid, argv[0]); + if (pipedes[0] < 0) + { + perror_with_name (error_prefix, "pipe"); + return o; + } +# else + if (pipe (pipedes) < 0) + { + perror_with_name (error_prefix, "pipe"); + return o; + } + + pid = vfork (); + if (pid < 0) + perror_with_name (error_prefix, "fork"); + else if (pid == 0) + child_execute_job (0, pipedes[1], command_argv, envp); + else +# endif /* ! __MSDOS__ */ + +#endif /* WINDOWS32 */ + { + /* We are the parent. */ + + char *buffer; + unsigned int maxlen; + int cc; + + /* Record the PID for reap_children. */ + shell_function_pid = pid; +#ifndef __MSDOS__ + shell_function_completed = 0; + + /* Free the storage only the child needed. */ + free (command_argv[0]); + free ((char *) command_argv); + + /* Close the write side of the pipe. */ + (void) close (pipedes[1]); +#endif + + /* Set up and read from the pipe. */ + + maxlen = 200; + buffer = (char *) xmalloc (maxlen + 1); + + /* Read from the pipe until it gets EOF. */ + for (i = 0; ; i += cc) + { + if (i == maxlen) + { + maxlen += 512; + buffer = (char *) xrealloc (buffer, maxlen + 1); + } + + cc = read (pipedes[0], &buffer[i], maxlen - i); + if (cc <= 0) + break; + } + buffer[i] = '\0'; + + /* Close the read side of the pipe. */ +#ifdef __MSDOS__ + if (fpipe) + (void) pclose (fpipe); +#else + (void) close (pipedes[0]); +#endif + + /* Loop until child_handler sets shell_function_completed + to the status of our child shell. */ + while (shell_function_completed == 0) + reap_children (1, 0); + + if (batch_filename) { + DB (DB_VERBOSE, (_("Cleaning up temporary batch file %s\n"), + batch_filename)); + remove (batch_filename); + free (batch_filename); + } + shell_function_pid = 0; + + /* The child_handler function will set shell_function_completed + to 1 when the child dies normally, or to -1 if it + dies with status 127, which is most likely an exec fail. */ + + if (shell_function_completed == -1) + { + /* This most likely means that the execvp failed, + so we should just write out the error message + that came in over the pipe from the child. */ + fputs (buffer, stderr); + fflush (stderr); + } + else + { + /* The child finished normally. Replace all + newlines in its output with spaces, and put + that in the variable output buffer. */ + fold_newlines (buffer, &i); + o = variable_buffer_output (o, buffer, i); + } + + free (buffer); + } + + return o; +} + +#else /* _AMIGA */ + +/* Do the Amiga version of func_shell. */ + +static char * +func_shell (char *o, char **argv, const char *funcname) +{ + /* Amiga can't fork nor spawn, but I can start a program with + redirection of my choice. However, this means that we + don't have an opportunity to reopen stdout to trap it. Thus, + we save our own stdout onto a new descriptor and dup a temp + file's descriptor onto our stdout temporarily. After we + spawn the shell program, we dup our own stdout back to the + stdout descriptor. The buffer reading is the same as above, + except that we're now reading from a file. */ + +#include +#include + + BPTR child_stdout; + char tmp_output[FILENAME_MAX]; + unsigned int maxlen = 200; + int cc, i; + char * buffer, * ptr; + char ** aptr; + int len = 0; + char* batch_filename = NULL; + + /* Construct the argument list. */ + command_argv = construct_command_argv (argv[0], (char **) NULL, + (struct file *) 0, &batch_filename); + if (command_argv == 0) + return o; + + /* Note the mktemp() is a security hole, but this only runs on Amiga. + Ideally we would use main.c:open_tmpfile(), but this uses a special + Open(), not fopen(), and I'm not familiar enough with the code to mess + with it. */ + strcpy (tmp_output, "t:MakeshXXXXXXXX"); + mktemp (tmp_output); + child_stdout = Open (tmp_output, MODE_NEWFILE); + + for (aptr=command_argv; *aptr; aptr++) + len += strlen (*aptr) + 1; + + buffer = xmalloc (len + 1); + ptr = buffer; + + for (aptr=command_argv; *aptr; aptr++) + { + strcpy (ptr, *aptr); + ptr += strlen (ptr) + 1; + *ptr ++ = ' '; + *ptr = 0; + } + + ptr[-1] = '\n'; + + Execute (buffer, NULL, child_stdout); + free (buffer); + + Close (child_stdout); + + child_stdout = Open (tmp_output, MODE_OLDFILE); + + buffer = xmalloc (maxlen); + i = 0; + do + { + if (i == maxlen) + { + maxlen += 512; + buffer = (char *) xrealloc (buffer, maxlen + 1); + } + + cc = Read (child_stdout, &buffer[i], maxlen - i); + if (cc > 0) + i += cc; + } while (cc > 0); + + Close (child_stdout); + + fold_newlines (buffer, &i); + o = variable_buffer_output (o, buffer, i); + free (buffer); + return o; +} +#endif /* _AMIGA */ +#endif /* !VMS */ + +#ifdef EXPERIMENTAL + +/* + equality. Return is string-boolean, ie, the empty string is false. + */ +static char * +func_eq (char* o, char **argv, char *funcname) +{ + int result = ! strcmp (argv[0], argv[1]); + o = variable_buffer_output (o, result ? "1" : "", result); + return o; +} + + +/* + string-boolean not operator. + */ +static char * +func_not (char* o, char **argv, char *funcname) +{ + char * s = argv[0]; + int result = 0; + while (isspace ((unsigned char)*s)) + s++; + result = ! (*s); + o = variable_buffer_output (o, result ? "1" : "", result); + return o; +} +#endif + + +/* Lookup table for builtin functions. + + This doesn't have to be sorted; we use a straight lookup. We might gain + some efficiency by moving most often used functions to the start of the + table. + + If MAXIMUM_ARGS is 0, that means there is no maximum and all + comma-separated values are treated as arguments. + + EXPAND_ARGS means that all arguments should be expanded before invocation. + Functions that do namespace tricks (foreach) don't automatically expand. */ + +static char *func_call PARAMS ((char *o, char **argv, const char *funcname)); + + +static struct function_table_entry function_table_init[] = +{ + /* Name/size */ /* MIN MAX EXP? Function */ + { STRING_SIZE_TUPLE("addprefix"), 2, 2, 1, func_addsuffix_addprefix}, + { STRING_SIZE_TUPLE("addsuffix"), 2, 2, 1, func_addsuffix_addprefix}, + { STRING_SIZE_TUPLE("basename"), 0, 1, 1, func_basename_dir}, + { STRING_SIZE_TUPLE("dir"), 0, 1, 1, func_basename_dir}, + { STRING_SIZE_TUPLE("notdir"), 0, 1, 1, func_notdir_suffix}, + { STRING_SIZE_TUPLE("subst"), 3, 3, 1, func_subst}, + { STRING_SIZE_TUPLE("suffix"), 0, 1, 1, func_notdir_suffix}, + { STRING_SIZE_TUPLE("filter"), 2, 2, 1, func_filter_filterout}, + { STRING_SIZE_TUPLE("filter-out"), 2, 2, 1, func_filter_filterout}, + { STRING_SIZE_TUPLE("findstring"), 2, 2, 1, func_findstring}, + { STRING_SIZE_TUPLE("firstword"), 0, 1, 1, func_firstword}, + { STRING_SIZE_TUPLE("join"), 2, 2, 1, func_join}, + { STRING_SIZE_TUPLE("patsubst"), 3, 3, 1, func_patsubst}, + { STRING_SIZE_TUPLE("shell"), 0, 1, 1, func_shell}, + { STRING_SIZE_TUPLE("sort"), 0, 1, 1, func_sort}, + { STRING_SIZE_TUPLE("strip"), 0, 1, 1, func_strip}, + { STRING_SIZE_TUPLE("wildcard"), 0, 1, 1, func_wildcard}, + { STRING_SIZE_TUPLE("word"), 2, 2, 1, func_word}, + { STRING_SIZE_TUPLE("wordlist"), 3, 3, 1, func_wordlist}, + { STRING_SIZE_TUPLE("words"), 0, 1, 1, func_words}, + { STRING_SIZE_TUPLE("origin"), 0, 1, 1, func_origin}, + { STRING_SIZE_TUPLE("foreach"), 3, 3, 0, func_foreach}, + { STRING_SIZE_TUPLE("call"), 1, 0, 1, func_call}, + { STRING_SIZE_TUPLE("error"), 0, 1, 1, func_error}, + { STRING_SIZE_TUPLE("warning"), 0, 1, 1, func_error}, + { STRING_SIZE_TUPLE("if"), 2, 3, 0, func_if}, + { STRING_SIZE_TUPLE("value"), 0, 1, 1, func_value}, + { STRING_SIZE_TUPLE("eval"), 0, 1, 1, func_eval}, +#ifdef EXPERIMENTAL + { STRING_SIZE_TUPLE("eq"), 2, 2, 1, func_eq}, + { STRING_SIZE_TUPLE("not"), 0, 1, 1, func_not}, +#endif +}; + +#define FUNCTION_TABLE_ENTRIES (sizeof (function_table_init) / sizeof (struct function_table_entry)) + + +/* These must come after the definition of function_table. */ + +static char * +expand_builtin_function (o, argc, argv, entry_p) + char *o; + int argc; + char **argv; + struct function_table_entry *entry_p; +{ + if (argc < (int)entry_p->minimum_args) + fatal (reading_file, + _("Insufficient number of arguments (%d) to function `%s'"), + argc, entry_p->name); + + /* I suppose technically some function could do something with no + arguments, but so far none do, so just test it for all functions here + rather than in each one. We can change it later if necessary. */ + + if (!argc) + return o; + + if (!entry_p->func_ptr) + fatal (reading_file, _("Unimplemented on this platform: function `%s'"), + entry_p->name); + + return entry_p->func_ptr (o, argv, entry_p->name); +} + +/* Check for a function invocation in *STRINGP. *STRINGP points at the + opening ( or { and is not null-terminated. If a function invocation + is found, expand it into the buffer at *OP, updating *OP, incrementing + *STRINGP past the reference and returning nonzero. If not, return zero. */ + +int +handle_function (op, stringp) + char **op; + char **stringp; +{ + const struct function_table_entry *entry_p; + char openparen = (*stringp)[0]; + char closeparen = openparen == '(' ? ')' : '}'; + char *beg; + char *end; + int count = 0; + register char *p; + char **argv, **argvp; + int nargs; + + beg = *stringp + 1; + + entry_p = lookup_function (beg); + + if (!entry_p) + return 0; + + /* We found a builtin function. Find the beginning of its arguments (skip + whitespace after the name). */ + + beg = next_token (beg + entry_p->len); + + /* Find the end of the function invocation, counting nested use of + whichever kind of parens we use. Since we're looking, count commas + to get a rough estimate of how many arguments we might have. The + count might be high, but it'll never be low. */ + + for (nargs=1, end=beg; *end != '\0'; ++end) + if (*end == ',') + ++nargs; + else if (*end == openparen) + ++count; + else if (*end == closeparen && --count < 0) + break; + + if (count >= 0) + fatal (reading_file, + _("unterminated call to function `%s': missing `%c'"), + entry_p->name, closeparen); + + *stringp = end; + + /* Get some memory to store the arg pointers. */ + argvp = argv = (char **) alloca (sizeof (char *) * (nargs + 2)); + + /* Chop the string into arguments, then a nul. As soon as we hit + MAXIMUM_ARGS (if it's >0) assume the rest of the string is part of the + last argument. + + If we're expanding, store pointers to the expansion of each one. If + not, make a duplicate of the string and point into that, nul-terminating + each argument. */ + + if (!entry_p->expand_args) + { + int len = end - beg; + + p = xmalloc (len+1); + memcpy (p, beg, len); + p[len] = '\0'; + beg = p; + end = beg + len; + } + + for (p=beg, nargs=0; p <= end; ++argvp) + { + char *next; + + ++nargs; + + if (nargs == entry_p->maximum_args + || (! (next = find_next_argument (openparen, closeparen, p, end)))) + next = end; + + if (entry_p->expand_args) + *argvp = expand_argument (p, next); + else + { + *argvp = p; + *next = '\0'; + } + + p = next + 1; + } + *argvp = NULL; + + /* Finally! Run the function... */ + *op = expand_builtin_function (*op, nargs, argv, entry_p); + + /* Free memory. */ + if (entry_p->expand_args) + for (argvp=argv; *argvp != 0; ++argvp) + free (*argvp); + else + free (beg); + + return 1; +} + + +/* User-defined functions. Expand the first argument as either a builtin + function or a make variable, in the context of the rest of the arguments + assigned to $1, $2, ... $N. $0 is the name of the function. */ + +static char * +func_call (o, argv, funcname) + char *o; + char **argv; + const char *funcname; +{ + char *fname; + char *cp; + char *body; + int flen; + int i; + const struct function_table_entry *entry_p; + struct variable *v; + + /* There is no way to define a variable with a space in the name, so strip + leading and trailing whitespace as a favor to the user. */ + fname = argv[0]; + while (*fname != '\0' && isspace ((unsigned char)*fname)) + ++fname; + + cp = fname + strlen (fname) - 1; + while (cp > fname && isspace ((unsigned char)*cp)) + --cp; + cp[1] = '\0'; + + /* Calling nothing is a no-op */ + if (*fname == '\0') + return o; + + /* Are we invoking a builtin function? */ + + entry_p = lookup_function (fname); + + if (entry_p) + { + /* How many arguments do we have? */ + for (i=0; argv[i+1]; ++i) + ; + + return expand_builtin_function (o, i, argv+1, entry_p); + } + + /* Not a builtin, so the first argument is the name of a variable to be + expanded and interpreted as a function. Find it. */ + flen = strlen (fname); + + v = lookup_variable (fname, flen); + + if (v == 0) + warn_undefined (fname, flen); + + if (v == 0 || *v->value == '\0') + return o; + + body = (char *) alloca (flen + 4); + body[0] = '$'; + body[1] = '('; + memcpy (body + 2, fname, flen); + body[flen+2] = ')'; + body[flen+3] = '\0'; + + /* Set up arguments $(1) .. $(N). $(0) is the function name. */ + + push_new_variable_scope (); + + for (i=0; *argv; ++i, ++argv) + { + char num[11]; + + sprintf (num, "%d", i); + define_variable (num, strlen (num), *argv, o_automatic, 0); + } + + /* Expand the body in the context of the arguments, adding the result to + the variable buffer. */ + + v->exp_count = EXP_COUNT_MAX; + + o = variable_expand_string (o, body, flen+3); + + v->exp_count = 0; + + pop_variable_scope (); + + return o + strlen (o); +} + +void +hash_init_function_table () +{ + hash_init (&function_table, FUNCTION_TABLE_ENTRIES * 2, + function_table_entry_hash_1, function_table_entry_hash_2, + function_table_entry_hash_cmp); + hash_load (&function_table, function_table_init, + FUNCTION_TABLE_ENTRIES, sizeof (struct function_table_entry)); +} diff --git a/src/mkutil/make-3.80/getloadavg.c b/src/mkutil/make-3.80/getloadavg.c new file mode 100644 index 00000000..7d575cd6 --- /dev/null +++ b/src/mkutil/make-3.80/getloadavg.c @@ -0,0 +1,1034 @@ +/* Get the system load averages. + Copyright (C) 1985, 86, 87, 88, 89, 91, 92, 93, 1994, 1995, 1997 + Free Software Foundation, Inc. + + 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, 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. */ + +/* Compile-time symbols that this file uses: + + HAVE_PSTAT_GETDYNAMIC Define this if your system has the + pstat_getdynamic function. I think it + is unique to HPUX9. The best way to get the + definition is through the AC_FUNC_GETLOADAVG + macro that comes with autoconf 2.13 or newer. + If that isn't an option, then just put + AC_CHECK_FUNCS(pstat_getdynamic) in your + configure.in file. + FIXUP_KERNEL_SYMBOL_ADDR() Adjust address in returned struct nlist. + KERNEL_FILE Pathname of the kernel to nlist. + LDAV_CVT() Scale the load average from the kernel. + Returns a double. + LDAV_SYMBOL Name of kernel symbol giving load average. + LOAD_AVE_TYPE Type of the load average array in the kernel. + Must be defined unless one of + apollo, DGUX, NeXT, or UMAX is defined; + or we have libkstat; + otherwise, no load average is available. + NLIST_STRUCT Include nlist.h, not a.out.h, and + the nlist n_name element is a pointer, + not an array. + HAVE_STRUCT_NLIST_N_UN_N_NAME struct nlist has an n_un member, not n_name. + LINUX_LDAV_FILE [__linux__]: File containing load averages. + + Specific system predefines this file uses, aside from setting + default values if not emacs: + + apollo + BSD Real BSD, not just BSD-like. + convex + DGUX + eunice UNIX emulator under VMS. + hpux + __MSDOS__ No-op for MSDOS. + NeXT + sgi + sequent Sequent Dynix 3.x.x (BSD) + _SEQUENT_ Sequent DYNIX/ptx 1.x.x (SYSV) + sony_news NEWS-OS (works at least for 4.1C) + UMAX + UMAX4_3 + VMS + WINDOWS32 No-op for Windows95/NT. + __linux__ Linux: assumes /proc filesystem mounted. + Support from Michael K. Johnson. + __NetBSD__ NetBSD: assumes /kern filesystem mounted. + + In addition, to avoid nesting many #ifdefs, we internally set + LDAV_DONE to indicate that the load average has been computed. + + We also #define LDAV_PRIVILEGED if a program will require + special installation to be able to call getloadavg. */ + +/* This should always be first. */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +/* Both the Emacs and non-Emacs sections want this. Some + configuration files' definitions for the LOAD_AVE_CVT macro (like + sparc.h's) use macros like FSCALE, defined here. */ +#if defined (unix) || defined (__unix) +# include +#endif + + +/* Exclude all the code except the test program at the end + if the system has its own `getloadavg' function. + + The declaration of `errno' is needed by the test program + as well as the function itself, so it comes first. */ + +#include + +#ifndef errno +extern int errno; +#endif + +#if HAVE_LOCALE_H +# include +#endif +#if !HAVE_SETLOCALE +# define setlocale(Category, Locale) /* empty */ +#endif + +#ifndef HAVE_GETLOADAVG + + +/* The existing Emacs configuration files define a macro called + LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and + returns the load average multiplied by 100. What we actually want + is a macro called LDAV_CVT, which returns the load average as an + unmultiplied double. + + For backwards compatibility, we'll define LDAV_CVT in terms of + LOAD_AVE_CVT, but future machine config files should just define + LDAV_CVT directly. */ + +# if !defined(LDAV_CVT) && defined(LOAD_AVE_CVT) +# define LDAV_CVT(n) (LOAD_AVE_CVT (n) / 100.0) +# endif + +# if !defined (BSD) && defined (ultrix) +/* Ultrix behaves like BSD on Vaxen. */ +# define BSD +# endif + +# ifdef NeXT +/* NeXT in the 2.{0,1,2} releases defines BSD in , which + conflicts with the definition understood in this file, that this + really is BSD. */ +# undef BSD + +/* NeXT defines FSCALE in . However, we take FSCALE being + defined to mean that the nlist method should be used, which is not true. */ +# undef FSCALE +# endif + +/* Same issues as for NeXT apply to the HURD-based GNU system. */ +# ifdef __GNU__ +# undef BSD +# undef FSCALE +# endif /* __GNU__ */ + +/* Set values that are different from the defaults, which are + set a little farther down with #ifndef. */ + + +/* Some shorthands. */ + +# if defined (HPUX) && !defined (hpux) +# define hpux +# endif + +# if defined (__hpux) && !defined (hpux) +# define hpux +# endif + +# if defined (__sun) && !defined (sun) +# define sun +# endif + +# if defined(hp300) && !defined(hpux) +# define MORE_BSD +# endif + +# if defined(ultrix) && defined(mips) +# define decstation +# endif + +# if defined (__SVR4) && !defined (SVR4) +# define SVR4 +# endif + +# if (defined(sun) && defined(SVR4)) || defined (SOLARIS2) +# define SUNOS_5 +# endif + +# if defined (__osf__) && (defined (__alpha) || defined (__alpha__)) +# define OSF_ALPHA +# include +# include +# include +# include +# endif + +# if defined (__osf__) && (defined (mips) || defined (__mips__)) +# define OSF_MIPS +# include +# endif + +/* UTek's /bin/cc on the 4300 has no architecture specific cpp define by + default, but _MACH_IND_SYS_TYPES is defined in . Combine + that with a couple of other things and we'll have a unique match. */ +# if !defined (tek4300) && defined (unix) && defined (m68k) && defined (mc68000) && defined (mc68020) && defined (_MACH_IND_SYS_TYPES) +# define tek4300 /* Define by emacs, but not by other users. */ +# endif + +/* AC_FUNC_GETLOADAVG thinks QNX is SVR4, but it isn't. */ +# if defined(__QNX__) +# undef SVR4 +# endif + +/* VAX C can't handle multi-line #ifs, or lines longer than 256 chars. */ +# ifndef LOAD_AVE_TYPE + +# ifdef MORE_BSD +# define LOAD_AVE_TYPE long +# endif + +# ifdef sun +# define LOAD_AVE_TYPE long +# endif + +# ifdef decstation +# define LOAD_AVE_TYPE long +# endif + +# ifdef _SEQUENT_ +# define LOAD_AVE_TYPE long +# endif + +# ifdef sgi +# define LOAD_AVE_TYPE long +# endif + +# ifdef SVR4 +# define LOAD_AVE_TYPE long +# endif + +# ifdef sony_news +# define LOAD_AVE_TYPE long +# endif + +# ifdef sequent +# define LOAD_AVE_TYPE long +# endif + +# ifdef OSF_ALPHA +# define LOAD_AVE_TYPE long +# endif + +# if defined (ardent) && defined (titan) +# define LOAD_AVE_TYPE long +# endif + +# ifdef tek4300 +# define LOAD_AVE_TYPE long +# endif + +# if defined(alliant) && defined(i860) /* Alliant FX/2800 */ +# define LOAD_AVE_TYPE long +# endif + +# ifdef _AIX +# define LOAD_AVE_TYPE long +# endif + +# ifdef convex +# define LOAD_AVE_TYPE double +# ifndef LDAV_CVT +# define LDAV_CVT(n) (n) +# endif +# endif + +# endif /* No LOAD_AVE_TYPE. */ + +# ifdef OSF_ALPHA +/* defines an incorrect value for FSCALE on Alpha OSF/1, + according to ghazi@noc.rutgers.edu. */ +# undef FSCALE +# define FSCALE 1024.0 +# endif + +# if defined(alliant) && defined(i860) /* Alliant FX/2800 */ +/* defines an incorrect value for FSCALE on an + Alliant FX/2800 Concentrix 2.2, according to ghazi@noc.rutgers.edu. */ +# undef FSCALE +# define FSCALE 100.0 +# endif + + +# ifndef FSCALE + +/* SunOS and some others define FSCALE in sys/param.h. */ + +# ifdef MORE_BSD +# define FSCALE 2048.0 +# endif + +# if defined(MIPS) || defined(SVR4) || defined(decstation) +# define FSCALE 256 +# endif + +# if defined (sgi) || defined (sequent) +/* Sometimes both MIPS and sgi are defined, so FSCALE was just defined + above under #ifdef MIPS. But we want the sgi value. */ +# undef FSCALE +# define FSCALE 1000.0 +# endif + +# if defined (ardent) && defined (titan) +# define FSCALE 65536.0 +# endif + +# ifdef tek4300 +# define FSCALE 100.0 +# endif + +# ifdef _AIX +# define FSCALE 65536.0 +# endif + +# endif /* Not FSCALE. */ + +# if !defined (LDAV_CVT) && defined (FSCALE) +# define LDAV_CVT(n) (((double) (n)) / FSCALE) +# endif + + +# if defined(sgi) || (defined(mips) && !defined(BSD)) +# define FIXUP_KERNEL_SYMBOL_ADDR(nl) ((nl)[0].n_value &= ~(1 << 31)) +# endif + + +# if !defined (KERNEL_FILE) && defined (sequent) +# define KERNEL_FILE "/dynix" +# endif + +# if !defined (KERNEL_FILE) && defined (hpux) +# define KERNEL_FILE "/hp-ux" +# endif + +# if !defined(KERNEL_FILE) && (defined(_SEQUENT_) || defined(MIPS) || defined(SVR4) || defined(ISC) || defined (sgi) || (defined (ardent) && defined (titan))) +# define KERNEL_FILE "/unix" +# endif + + +# if !defined (LDAV_SYMBOL) && defined (alliant) +# define LDAV_SYMBOL "_Loadavg" +# endif + +# if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan)) || defined (_AIX)) +# define LDAV_SYMBOL "avenrun" +# endif + +# ifdef HAVE_UNISTD_H +# include +# endif + +# include + +/* LOAD_AVE_TYPE should only get defined if we're going to use the + nlist method. */ +# if !defined(LOAD_AVE_TYPE) && (defined(BSD) || defined(LDAV_CVT) || defined(KERNEL_FILE) || defined(LDAV_SYMBOL)) +# define LOAD_AVE_TYPE double +# endif + +# ifdef LOAD_AVE_TYPE + +# ifndef VMS +# ifndef __linux__ +# ifdef HAVE_NLIST_H +# include +# else +# include +# endif + +# ifdef SUNOS_5 +# include +# include +# include +# endif + +# if defined (hpux) && defined (HAVE_PSTAT_GETDYNAMIC) +# include +# endif + +# ifndef KERNEL_FILE +# define KERNEL_FILE "/vmunix" +# endif /* KERNEL_FILE */ + +# ifndef LDAV_SYMBOL +# define LDAV_SYMBOL "_avenrun" +# endif /* LDAV_SYMBOL */ +# endif /* __linux__ */ + +# else /* VMS */ + +# ifndef eunice +# include +# include +# else /* eunice */ +# include +# endif /* eunice */ +# endif /* VMS */ + +# ifndef LDAV_CVT +# define LDAV_CVT(n) ((double) (n)) +# endif /* !LDAV_CVT */ + +# endif /* LOAD_AVE_TYPE */ + +# if defined(__GNU__) && !defined (NeXT) +/* Note that NeXT Openstep defines __GNU__ even though it should not. */ +/* GNU system acts much like NeXT, for load average purposes, + but not exactly. */ +# define NeXT +# define host_self mach_host_self +# endif + +# ifdef NeXT +# ifdef HAVE_MACH_MACH_H +# include +# else +# include +# endif +# endif /* NeXT */ + +# ifdef sgi +# include +# endif /* sgi */ + +# ifdef UMAX +# include +# include +# include +# include +# include + +# ifdef UMAX_43 +# include +# include +# include +# include +# include +# else /* Not UMAX_43. */ +# include +# include +# include +# include +# include +# include +# endif /* Not UMAX_43. */ +# endif /* UMAX */ + +# ifdef DGUX +# include +# endif + +# if defined(HAVE_FCNTL_H) || defined(_POSIX_VERSION) +# include +# else +# include +# endif + + +/* Avoid static vars inside a function since in HPUX they dump as pure. */ + +# ifdef NeXT +static processor_set_t default_set; +static int getloadavg_initialized; +# endif /* NeXT */ + +# ifdef UMAX +static unsigned int cpus = 0; +static unsigned int samples; +# endif /* UMAX */ + +# ifdef DGUX +static struct dg_sys_info_load_info load_info; /* what-a-mouthful! */ +# endif /* DGUX */ + +#if !defined(HAVE_LIBKSTAT) && defined(LOAD_AVE_TYPE) +/* File descriptor open to /dev/kmem or VMS load ave driver. */ +static int channel; +/* Nonzero iff channel is valid. */ +static int getloadavg_initialized; +/* Offset in kmem to seek to read load average, or 0 means invalid. */ +static long offset; + +#if !defined(VMS) && !defined(sgi) && !defined(__linux__) +static struct nlist nl[2]; +#endif /* Not VMS or sgi */ + +#ifdef SUNOS_5 +static kvm_t *kd; +#endif /* SUNOS_5 */ + +#endif /* LOAD_AVE_TYPE && !HAVE_LIBKSTAT */ + +/* Put the 1 minute, 5 minute and 15 minute load averages + into the first NELEM elements of LOADAVG. + Return the number written (never more than 3, but may be less than NELEM), + or -1 if an error occurred. */ + +int +getloadavg (loadavg, nelem) + double loadavg[]; + int nelem; +{ + int elem = 0; /* Return value. */ + +# ifdef NO_GET_LOAD_AVG +# define LDAV_DONE + /* Set errno to zero to indicate that there was no particular error; + this function just can't work at all on this system. */ + errno = 0; + elem = -1; +# endif + +# if !defined (LDAV_DONE) && defined (HAVE_LIBKSTAT) +/* Use libkstat because we don't have to be root. */ +# define LDAV_DONE + kstat_ctl_t *kc; + kstat_t *ksp; + kstat_named_t *kn; + + kc = kstat_open (); + if (kc == 0) + return -1; + ksp = kstat_lookup (kc, "unix", 0, "system_misc"); + if (ksp == 0 ) + return -1; + if (kstat_read (kc, ksp, 0) == -1) + return -1; + + + kn = kstat_data_lookup (ksp, "avenrun_1min"); + if (kn == 0) + { + /* Return -1 if no load average information is available. */ + nelem = 0; + elem = -1; + } + + if (nelem >= 1) + loadavg[elem++] = (double) kn->value.ul/FSCALE; + + if (nelem >= 2) + { + kn = kstat_data_lookup (ksp, "avenrun_5min"); + if (kn != 0) + { + loadavg[elem++] = (double) kn->value.ul/FSCALE; + + if (nelem >= 3) + { + kn = kstat_data_lookup (ksp, "avenrun_15min"); + if (kn != 0) + loadavg[elem++] = (double) kn->value.ul/FSCALE; + } + } + } + + kstat_close (kc); +# endif /* HAVE_LIBKSTAT */ + +# if !defined (LDAV_DONE) && defined (hpux) && defined (HAVE_PSTAT_GETDYNAMIC) +/* Use pstat_getdynamic() because we don't have to be root. */ +# define LDAV_DONE +# undef LOAD_AVE_TYPE + + struct pst_dynamic dyn_info; + if (pstat_getdynamic (&dyn_info, sizeof (dyn_info), 0, 0) < 0) + return -1; + if (nelem > 0) + loadavg[elem++] = dyn_info.psd_avg_1_min; + if (nelem > 1) + loadavg[elem++] = dyn_info.psd_avg_5_min; + if (nelem > 2) + loadavg[elem++] = dyn_info.psd_avg_15_min; + +# endif /* hpux && HAVE_PSTAT_GETDYNAMIC */ + +# if !defined (LDAV_DONE) && defined (__linux__) +# define LDAV_DONE +# undef LOAD_AVE_TYPE + +# ifndef LINUX_LDAV_FILE +# define LINUX_LDAV_FILE "/proc/loadavg" +# endif + + char ldavgbuf[40]; + double load_ave[3]; + int fd, count; + + fd = open (LINUX_LDAV_FILE, O_RDONLY); + if (fd == -1) + return -1; + count = read (fd, ldavgbuf, 40); + (void) close (fd); + if (count <= 0) + return -1; + + /* The following sscanf must use the C locale. */ + setlocale (LC_NUMERIC, "C"); + count = sscanf (ldavgbuf, "%lf %lf %lf", + &load_ave[0], &load_ave[1], &load_ave[2]); + setlocale (LC_NUMERIC, ""); + if (count < 1) + return -1; + + for (elem = 0; elem < nelem && elem < count; elem++) + loadavg[elem] = load_ave[elem]; + + return elem; + +# endif /* __linux__ */ + +# if !defined (LDAV_DONE) && defined (__NetBSD__) +# define LDAV_DONE +# undef LOAD_AVE_TYPE + +# ifndef NETBSD_LDAV_FILE +# define NETBSD_LDAV_FILE "/kern/loadavg" +# endif + + unsigned long int load_ave[3], scale; + int count; + FILE *fp; + + fp = fopen (NETBSD_LDAV_FILE, "r"); + if (fp == NULL) + return -1; + count = fscanf (fp, "%lu %lu %lu %lu\n", + &load_ave[0], &load_ave[1], &load_ave[2], + &scale); + (void) fclose (fp); + if (count != 4) + return -1; + + for (elem = 0; elem < nelem; elem++) + loadavg[elem] = (double) load_ave[elem] / (double) scale; + + return elem; + +# endif /* __NetBSD__ */ + +# if !defined (LDAV_DONE) && defined (NeXT) +# define LDAV_DONE + /* The NeXT code was adapted from iscreen 3.2. */ + + host_t host; + struct processor_set_basic_info info; + unsigned info_count; + + /* We only know how to get the 1-minute average for this system, + so even if the caller asks for more than 1, we only return 1. */ + + if (!getloadavg_initialized) + { + if (processor_set_default (host_self (), &default_set) == KERN_SUCCESS) + getloadavg_initialized = 1; + } + + if (getloadavg_initialized) + { + info_count = PROCESSOR_SET_BASIC_INFO_COUNT; + if (processor_set_info (default_set, PROCESSOR_SET_BASIC_INFO, &host, + (processor_set_info_t) &info, &info_count) + != KERN_SUCCESS) + getloadavg_initialized = 0; + else + { + if (nelem > 0) + loadavg[elem++] = (double) info.load_average / LOAD_SCALE; + } + } + + if (!getloadavg_initialized) + return -1; +# endif /* NeXT */ + +# if !defined (LDAV_DONE) && defined (UMAX) +# define LDAV_DONE +/* UMAX 4.2, which runs on the Encore Multimax multiprocessor, does not + have a /dev/kmem. Information about the workings of the running kernel + can be gathered with inq_stats system calls. + We only know how to get the 1-minute average for this system. */ + + struct proc_summary proc_sum_data; + struct stat_descr proc_info; + double load; + register unsigned int i, j; + + if (cpus == 0) + { + register unsigned int c, i; + struct cpu_config conf; + struct stat_descr desc; + + desc.sd_next = 0; + desc.sd_subsys = SUBSYS_CPU; + desc.sd_type = CPUTYPE_CONFIG; + desc.sd_addr = (char *) &conf; + desc.sd_size = sizeof conf; + + if (inq_stats (1, &desc)) + return -1; + + c = 0; + for (i = 0; i < conf.config_maxclass; ++i) + { + struct class_stats stats; + bzero ((char *) &stats, sizeof stats); + + desc.sd_type = CPUTYPE_CLASS; + desc.sd_objid = i; + desc.sd_addr = (char *) &stats; + desc.sd_size = sizeof stats; + + if (inq_stats (1, &desc)) + return -1; + + c += stats.class_numcpus; + } + cpus = c; + samples = cpus < 2 ? 3 : (2 * cpus / 3); + } + + proc_info.sd_next = 0; + proc_info.sd_subsys = SUBSYS_PROC; + proc_info.sd_type = PROCTYPE_SUMMARY; + proc_info.sd_addr = (char *) &proc_sum_data; + proc_info.sd_size = sizeof (struct proc_summary); + proc_info.sd_sizeused = 0; + + if (inq_stats (1, &proc_info) != 0) + return -1; + + load = proc_sum_data.ps_nrunnable; + j = 0; + for (i = samples - 1; i > 0; --i) + { + load += proc_sum_data.ps_nrun[j]; + if (j++ == PS_NRUNSIZE) + j = 0; + } + + if (nelem > 0) + loadavg[elem++] = load / samples / cpus; +# endif /* UMAX */ + +# if !defined (LDAV_DONE) && defined (DGUX) +# define LDAV_DONE + /* This call can return -1 for an error, but with good args + it's not supposed to fail. The first argument is for no + apparent reason of type `long int *'. */ + dg_sys_info ((long int *) &load_info, + DG_SYS_INFO_LOAD_INFO_TYPE, + DG_SYS_INFO_LOAD_VERSION_0); + + if (nelem > 0) + loadavg[elem++] = load_info.one_minute; + if (nelem > 1) + loadavg[elem++] = load_info.five_minute; + if (nelem > 2) + loadavg[elem++] = load_info.fifteen_minute; +# endif /* DGUX */ + +# if !defined (LDAV_DONE) && defined (apollo) +# define LDAV_DONE +/* Apollo code from lisch@mentorg.com (Ray Lischner). + + This system call is not documented. The load average is obtained as + three long integers, for the load average over the past minute, + five minutes, and fifteen minutes. Each value is a scaled integer, + with 16 bits of integer part and 16 bits of fraction part. + + I'm not sure which operating system first supported this system call, + but I know that SR10.2 supports it. */ + + extern void proc1_$get_loadav (); + unsigned long load_ave[3]; + + proc1_$get_loadav (load_ave); + + if (nelem > 0) + loadavg[elem++] = load_ave[0] / 65536.0; + if (nelem > 1) + loadavg[elem++] = load_ave[1] / 65536.0; + if (nelem > 2) + loadavg[elem++] = load_ave[2] / 65536.0; +# endif /* apollo */ + +# if !defined (LDAV_DONE) && defined (OSF_MIPS) +# define LDAV_DONE + + struct tbl_loadavg load_ave; + table (TBL_LOADAVG, 0, &load_ave, 1, sizeof (load_ave)); + loadavg[elem++] + = (load_ave.tl_lscale == 0 + ? load_ave.tl_avenrun.d[0] + : (load_ave.tl_avenrun.l[0] / (double) load_ave.tl_lscale)); +# endif /* OSF_MIPS */ + +# if !defined (LDAV_DONE) && (defined (__MSDOS__) || defined (WINDOWS32)) +# define LDAV_DONE + + /* A faithful emulation is going to have to be saved for a rainy day. */ + for ( ; elem < nelem; elem++) + { + loadavg[elem] = 0.0; + } +# endif /* __MSDOS__ || WINDOWS32 */ + +# if !defined (LDAV_DONE) && defined (OSF_ALPHA) +# define LDAV_DONE + + struct tbl_loadavg load_ave; + table (TBL_LOADAVG, 0, &load_ave, 1, sizeof (load_ave)); + for (elem = 0; elem < nelem; elem++) + loadavg[elem] + = (load_ave.tl_lscale == 0 + ? load_ave.tl_avenrun.d[elem] + : (load_ave.tl_avenrun.l[elem] / (double) load_ave.tl_lscale)); +# endif /* OSF_ALPHA */ + +# if !defined (LDAV_DONE) && defined (VMS) + /* VMS specific code -- read from the Load Ave driver. */ + + LOAD_AVE_TYPE load_ave[3]; + static int getloadavg_initialized = 0; +# ifdef eunice + struct + { + int dsc$w_length; + char *dsc$a_pointer; + } descriptor; +# endif + + /* Ensure that there is a channel open to the load ave device. */ + if (!getloadavg_initialized) + { + /* Attempt to open the channel. */ +# ifdef eunice + descriptor.dsc$w_length = 18; + descriptor.dsc$a_pointer = "$$VMS_LOAD_AVERAGE"; +# else + $DESCRIPTOR (descriptor, "LAV0:"); +# endif + if (sys$assign (&descriptor, &channel, 0, 0) & 1) + getloadavg_initialized = 1; + } + + /* Read the load average vector. */ + if (getloadavg_initialized + && !(sys$qiow (0, channel, IO$_READVBLK, 0, 0, 0, + load_ave, 12, 0, 0, 0, 0) & 1)) + { + sys$dassgn (channel); + getloadavg_initialized = 0; + } + + if (!getloadavg_initialized) + return -1; +# endif /* VMS */ + +# if !defined (LDAV_DONE) && defined(LOAD_AVE_TYPE) && !defined(VMS) + + /* UNIX-specific code -- read the average from /dev/kmem. */ + +# define LDAV_PRIVILEGED /* This code requires special installation. */ + + LOAD_AVE_TYPE load_ave[3]; + + /* Get the address of LDAV_SYMBOL. */ + if (offset == 0) + { +# ifndef sgi +# ifndef NLIST_STRUCT + strcpy (nl[0].n_name, LDAV_SYMBOL); + strcpy (nl[1].n_name, ""); +# else /* NLIST_STRUCT */ +# ifdef HAVE_STRUCT_NLIST_N_UN_N_NAME + nl[0].n_un.n_name = LDAV_SYMBOL; + nl[1].n_un.n_name = 0; +# else /* not HAVE_STRUCT_NLIST_N_UN_N_NAME */ + nl[0].n_name = LDAV_SYMBOL; + nl[1].n_name = 0; +# endif /* not HAVE_STRUCT_NLIST_N_UN_N_NAME */ +# endif /* NLIST_STRUCT */ + +# ifndef SUNOS_5 + if ( +# if !(defined (_AIX) && !defined (ps2)) + nlist (KERNEL_FILE, nl) +# else /* _AIX */ + knlist (nl, 1, sizeof (nl[0])) +# endif + >= 0) + /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */ + { +# ifdef FIXUP_KERNEL_SYMBOL_ADDR + FIXUP_KERNEL_SYMBOL_ADDR (nl); +# endif + offset = nl[0].n_value; + } +# endif /* !SUNOS_5 */ +# else /* sgi */ + int ldav_off; + + ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN); + if (ldav_off != -1) + offset = (long) ldav_off & 0x7fffffff; +# endif /* sgi */ + } + + /* Make sure we have /dev/kmem open. */ + if (!getloadavg_initialized) + { +# ifndef SUNOS_5 + channel = open ("/dev/kmem", 0); + if (channel >= 0) + { + /* Set the channel to close on exec, so it does not + litter any child's descriptor table. */ +# ifdef F_SETFD +# ifndef FD_CLOEXEC +# define FD_CLOEXEC 1 +# endif + (void) fcntl (channel, F_SETFD, FD_CLOEXEC); +# endif + getloadavg_initialized = 1; + } +# else /* SUNOS_5 */ + /* We pass 0 for the kernel, corefile, and swapfile names + to use the currently running kernel. */ + kd = kvm_open (0, 0, 0, O_RDONLY, 0); + if (kd != 0) + { + /* nlist the currently running kernel. */ + kvm_nlist (kd, nl); + offset = nl[0].n_value; + getloadavg_initialized = 1; + } +# endif /* SUNOS_5 */ + } + + /* If we can, get the load average values. */ + if (offset && getloadavg_initialized) + { + /* Try to read the load. */ +# ifndef SUNOS_5 + if (lseek (channel, offset, 0) == -1L + || read (channel, (char *) load_ave, sizeof (load_ave)) + != sizeof (load_ave)) + { + close (channel); + getloadavg_initialized = 0; + } +# else /* SUNOS_5 */ + if (kvm_read (kd, offset, (char *) load_ave, sizeof (load_ave)) + != sizeof (load_ave)) + { + kvm_close (kd); + getloadavg_initialized = 0; + } +# endif /* SUNOS_5 */ + } + + if (offset == 0 || !getloadavg_initialized) + return -1; +# endif /* LOAD_AVE_TYPE and not VMS */ + +# if !defined (LDAV_DONE) && defined (LOAD_AVE_TYPE) /* Including VMS. */ + if (nelem > 0) + loadavg[elem++] = LDAV_CVT (load_ave[0]); + if (nelem > 1) + loadavg[elem++] = LDAV_CVT (load_ave[1]); + if (nelem > 2) + loadavg[elem++] = LDAV_CVT (load_ave[2]); + +# define LDAV_DONE +# endif /* !LDAV_DONE && LOAD_AVE_TYPE */ + +# ifdef LDAV_DONE + return elem; +# else + /* Set errno to zero to indicate that there was no particular error; + this function just can't work at all on this system. */ + errno = 0; + return -1; +# endif +} + +#endif /* ! HAVE_GETLOADAVG */ + +#ifdef TEST +#include "make.h" + +int +main (argc, argv) + int argc; + char **argv; +{ + int naptime = 0; + + if (argc > 1) + naptime = atoi (argv[1]); + + while (1) + { + double avg[3]; + int loads; + + errno = 0; /* Don't be misled if it doesn't set errno. */ + loads = getloadavg (avg, 3); + if (loads == -1) + { + perror ("Error getting load average"); + exit (1); + } + if (loads > 0) + printf ("1-minute: %f ", avg[0]); + if (loads > 1) + printf ("5-minute: %f ", avg[1]); + if (loads > 2) + printf ("15-minute: %f ", avg[2]); + if (loads > 0) + putchar ('\n'); + + if (naptime == 0) + break; + sleep (naptime); + } + + exit (0); +} +#endif /* TEST */ diff --git a/src/mkutil/make-3.80/getopt.c b/src/mkutil/make-3.80/getopt.c new file mode 100644 index 00000000..cd774190 --- /dev/null +++ b/src/mkutil/make-3.80/getopt.c @@ -0,0 +1,1047 @@ +/* Getopt for GNU. + NOTE: getopt is now part of the C library, so if you don't know what + "Keep this file name-space clean" means, talk to drepper@gnu.org + before changing it! + + Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98 + Free Software Foundation, Inc. + + NOTE: The canonical source of this file is maintained with the GNU C Library. + Bugs can be reported to bug-glibc@gnu.org. + + 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, 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. */ + +/* This tells Alpha OSF/1 not to define a getopt prototype in . + Ditto for AIX 3.2 and . */ +#ifndef _NO_PROTO +# define _NO_PROTO +#endif + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if !defined __STDC__ || !__STDC__ +/* This is a separate conditional since some stdc systems + reject `defined (const)'. */ +# ifndef const +# define const +# endif +#endif + +#include + +/* Comment out all this code if we are using the GNU C Library, and are not + actually compiling the library itself. This code is part of the GNU C + Library, but also included in many other GNU distributions. Compiling + and linking in this code is a waste when using the GNU C library + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, + it is simpler to just do this in the source for each such file. */ + +#define GETOPT_INTERFACE_VERSION 2 +#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 +# include +# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION +# define ELIDE_CODE +# endif +#endif + +#ifndef ELIDE_CODE + + +/* This needs to come after some library #include + to get __GNU_LIBRARY__ defined. */ +#ifdef __GNU_LIBRARY__ +/* Don't include stdlib.h for non-GNU C libraries because some of them + contain conflicting prototypes for getopt. */ +# include +# include +#endif /* GNU C library. */ + +#ifdef VMS +# include +# if HAVE_STRING_H - 0 +# include +# endif +#endif + +/* This is for other GNU distributions with internationalized messages. + When compiling libc, the _ macro is predefined. */ +#include "gettext.h" +#define _(msgid) gettext (msgid) + + +/* This version of `getopt' appears to the caller like standard Unix `getopt' + but it behaves differently for the user, since it allows the user + to intersperse the options with the other arguments. + + As `getopt' works, it permutes the elements of ARGV so that, + when it is done, all the options precede everything else. Thus + all application programs are extended to handle flexible argument order. + + Setting the environment variable POSIXLY_CORRECT disables permutation. + Then the behavior is completely standard. + + GNU application programs can use a third alternative mode in which + they can distinguish the relative order of options and other arguments. */ + +#include "getopt.h" + +/* For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +char *optarg = NULL; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + + On entry to `getopt', zero means this is the first call; initialize. + + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +/* 1003.2 says this must be 1 before any call. */ +int optind = 1; + +/* Formerly, initialization of getopt depended on optind==0, which + causes problems with re-calling getopt as programs generally don't + know that. */ + +int __getopt_initialized = 0; + +/* The next char to be scanned in the option-element + in which the last option character we returned was found. + This allows us to pick up the scan where we left off. + + If this is zero, or a null string, it means resume the scan + by advancing to the next ARGV-element. */ + +static char *nextchar; + +/* Callers store zero here to inhibit the error message + for unrecognized options. */ + +int opterr = 1; + +/* Set to an option character which was unrecognized. + This must be initialized on some systems to avoid linking in the + system's own getopt implementation. */ + +int optopt = '?'; + +/* Describe how to deal with options that follow non-option ARGV-elements. + + If the caller did not specify anything, + the default is REQUIRE_ORDER if the environment variable + POSIXLY_CORRECT is defined, PERMUTE otherwise. + + REQUIRE_ORDER means don't recognize them as options; + stop option processing when the first non-option is seen. + This is what Unix does. + This mode of operation is selected by either setting the environment + variable POSIXLY_CORRECT, or using `+' as the first character + of the list of option characters. + + PERMUTE is the default. We permute the contents of ARGV as we scan, + so that eventually all the non-options are at the end. This allows options + to be given in any order, even with programs that were not written to + expect this. + + RETURN_IN_ORDER is an option available to programs that were written + to expect options and other ARGV-elements in any order and that care about + the ordering of the two. We describe each non-option ARGV-element + as if it were the argument of an option with character code 1. + Using `-' as the first character of the list of option characters + selects this mode of operation. + + The special argument `--' forces an end of option-scanning regardless + of the value of `ordering'. In the case of RETURN_IN_ORDER, only + `--' can cause `getopt' to return -1 with `optind' != ARGC. */ + +static enum +{ + REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER +} ordering; + +/* Value of POSIXLY_CORRECT environment variable. */ +static char *posixly_correct; + +#ifdef __GNU_LIBRARY__ +/* We want to avoid inclusion of string.h with non-GNU libraries + because there are many ways it can cause trouble. + On some systems, it contains special magic macros that don't work + in GCC. */ +# include +# define my_index strchr +#else + +# if HAVE_STRING_H +# include +# else +# include +# endif + +/* Avoid depending on library functions or files + whose names are inconsistent. */ + +#ifndef getenv +extern char *getenv (); +#endif + +static char * +my_index (str, chr) + const char *str; + int chr; +{ + while (*str) + { + if (*str == chr) + return (char *) str; + str++; + } + return 0; +} + +/* If using GCC, we can safely declare strlen this way. + If not using GCC, it is ok not to declare it. */ +#ifdef __GNUC__ +/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. + That was relevant to code that was here before. */ +# if (!defined __STDC__ || !__STDC__) && !defined strlen +/* gcc with -traditional declares the built-in strlen to return int, + and has done so at least since version 2.4.5. -- rms. */ +extern int strlen (const char *); +# endif /* not __STDC__ */ +#endif /* __GNUC__ */ + +#endif /* not __GNU_LIBRARY__ */ + +/* Handle permutation of arguments. */ + +/* Describe the part of ARGV that contains non-options that have + been skipped. `first_nonopt' is the index in ARGV of the first of them; + `last_nonopt' is the index after the last of them. */ + +static int first_nonopt; +static int last_nonopt; + +#ifdef _LIBC +/* Bash 2.0 gives us an environment variable containing flags + indicating ARGV elements that should not be considered arguments. */ + +/* Defined in getopt_init.c */ +extern char *__getopt_nonoption_flags; + +static int nonoption_flags_max_len; +static int nonoption_flags_len; + +static int original_argc; +static char *const *original_argv; + +/* Make sure the environment variable bash 2.0 puts in the environment + is valid for the getopt call we must make sure that the ARGV passed + to getopt is that one passed to the process. */ +static void +__attribute__ ((unused)) +store_args_and_env (int argc, char *const *argv) +{ + /* XXX This is no good solution. We should rather copy the args so + that we can compare them later. But we must not use malloc(3). */ + original_argc = argc; + original_argv = argv; +} +# ifdef text_set_element +text_set_element (__libc_subinit, store_args_and_env); +# endif /* text_set_element */ + +# define SWAP_FLAGS(ch1, ch2) \ + if (nonoption_flags_len > 0) \ + { \ + char __tmp = __getopt_nonoption_flags[ch1]; \ + __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ + __getopt_nonoption_flags[ch2] = __tmp; \ + } +#else /* !_LIBC */ +# define SWAP_FLAGS(ch1, ch2) +#endif /* _LIBC */ + +/* Exchange two adjacent subsequences of ARGV. + One subsequence is elements [first_nonopt,last_nonopt) + which contains all the non-options that have been skipped so far. + The other is elements [last_nonopt,optind), which contains all + the options processed since those non-options were skipped. + + `first_nonopt' and `last_nonopt' are relocated so that they describe + the new indices of the non-options in ARGV after they are moved. */ + +#if defined __STDC__ && __STDC__ +static void exchange (char **); +#endif + +static void +exchange (argv) + char **argv; +{ + int bottom = first_nonopt; + int middle = last_nonopt; + int top = optind; + char *tem; + + /* Exchange the shorter segment with the far end of the longer segment. + That puts the shorter segment into the right place. + It leaves the longer segment in the right place overall, + but it consists of two parts that need to be swapped next. */ + +#ifdef _LIBC + /* First make sure the handling of the `__getopt_nonoption_flags' + string can work normally. Our top argument must be in the range + of the string. */ + if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) + { + /* We must extend the array. The user plays games with us and + presents new arguments. */ + char *new_str = malloc (top + 1); + if (new_str == NULL) + nonoption_flags_len = nonoption_flags_max_len = 0; + else + { + memset (__mempcpy (new_str, __getopt_nonoption_flags, + nonoption_flags_max_len), + '\0', top + 1 - nonoption_flags_max_len); + nonoption_flags_max_len = top + 1; + __getopt_nonoption_flags = new_str; + } + } +#endif + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + /* Bottom segment is the short one. */ + int len = middle - bottom; + register int i; + + /* Swap it with the top part of the top segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); + } + /* Exclude the moved bottom segment from further swapping. */ + top -= len; + } + else + { + /* Top segment is the short one. */ + int len = top - middle; + register int i; + + /* Swap it with the bottom part of the bottom segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + SWAP_FLAGS (bottom + i, middle + i); + } + /* Exclude the moved top segment from further swapping. */ + bottom += len; + } + } + + /* Update records for the slots the non-options now occupy. */ + + first_nonopt += (optind - last_nonopt); + last_nonopt = optind; +} + +/* Initialize the internal data when the first call is made. */ + +#if defined __STDC__ && __STDC__ +static const char *_getopt_initialize (int, char *const *, const char *); +#endif +static const char * +_getopt_initialize (argc, argv, optstring) + int argc; + char *const *argv; + const char *optstring; +{ + /* Start processing options with ARGV-element 1 (since ARGV-element 0 + is the program name); the sequence of previously skipped + non-option ARGV-elements is empty. */ + + first_nonopt = last_nonopt = optind; + + nextchar = NULL; + + posixly_correct = getenv ("POSIXLY_CORRECT"); + + /* Determine how to handle the ordering of options and nonoptions. */ + + if (optstring[0] == '-') + { + ordering = RETURN_IN_ORDER; + ++optstring; + } + else if (optstring[0] == '+') + { + ordering = REQUIRE_ORDER; + ++optstring; + } + else if (posixly_correct != NULL) + ordering = REQUIRE_ORDER; + else + ordering = PERMUTE; + +#ifdef _LIBC + if (posixly_correct == NULL + && argc == original_argc && argv == original_argv) + { + if (nonoption_flags_max_len == 0) + { + if (__getopt_nonoption_flags == NULL + || __getopt_nonoption_flags[0] == '\0') + nonoption_flags_max_len = -1; + else + { + const char *orig_str = __getopt_nonoption_flags; + int len = nonoption_flags_max_len = strlen (orig_str); + if (nonoption_flags_max_len < argc) + nonoption_flags_max_len = argc; + __getopt_nonoption_flags = + (char *) malloc (nonoption_flags_max_len); + if (__getopt_nonoption_flags == NULL) + nonoption_flags_max_len = -1; + else + memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), + '\0', nonoption_flags_max_len - len); + } + } + nonoption_flags_len = nonoption_flags_max_len; + } + else + nonoption_flags_len = 0; +#endif + + return optstring; +} + +/* Scan elements of ARGV (whose length is ARGC) for option characters + given in OPTSTRING. + + If an element of ARGV starts with '-', and is not exactly "-" or "--", + then it is an option element. The characters of this element + (aside from the initial '-') are option characters. If `getopt' + is called repeatedly, it returns successively each of the option characters + from each of the option elements. + + If `getopt' finds another option character, it returns that character, + updating `optind' and `nextchar' so that the next call to `getopt' can + resume the scan with the following option character or ARGV-element. + + If there are no more option characters, `getopt' returns -1. + Then `optind' is the index in ARGV of the first ARGV-element + that is not an option. (The ARGV-elements have been permuted + so that those that are not options now come last.) + + OPTSTRING is a string containing the legitimate option characters. + If an option character is seen that is not listed in OPTSTRING, + return '?' after printing an error message. If you set `opterr' to + zero, the error message is suppressed but we still return '?'. + + If a char in OPTSTRING is followed by a colon, that means it wants an arg, + so the following text in the same ARGV-element, or the text of the following + ARGV-element, is returned in `optarg'. Two colons mean an option that + wants an optional arg; if there is text in the current ARGV-element, + it is returned in `optarg', otherwise `optarg' is set to zero. + + If OPTSTRING starts with `-' or `+', it requests different methods of + handling the non-option ARGV-elements. + See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. + + Long-named options begin with `--' instead of `-'. + Their names may be abbreviated as long as the abbreviation is unique + or is an exact match for some defined option. If they have an + argument, it follows the option name in the same ARGV-element, separated + from the option name by a `=', or else the in next ARGV-element. + When `getopt' finds a long-named option, it returns 0 if that option's + `flag' field is nonzero, the value of the option's `val' field + if the `flag' field is zero. + + The elements of ARGV aren't really const, because we permute them. + But we pretend they're const in the prototype to be compatible + with other systems. + + LONGOPTS is a vector of `struct option' terminated by an + element containing a name which is zero. + + LONGIND returns the index in LONGOPT of the long-named option found. + It is only valid when a long-named option has been found by the most + recent call. + + If LONG_ONLY is nonzero, '-' as well as '--' can introduce + long-named options. */ + +int +_getopt_internal (argc, argv, optstring, longopts, longind, long_only) + int argc; + char *const *argv; + const char *optstring; + const struct option *longopts; + int *longind; + int long_only; +{ + optarg = NULL; + + if (optind == 0 || !__getopt_initialized) + { + if (optind == 0) + optind = 1; /* Don't scan ARGV[0], the program name. */ + optstring = _getopt_initialize (argc, argv, optstring); + __getopt_initialized = 1; + } + + /* Test whether ARGV[optind] points to a non-option argument. + Either it does not have option syntax, or there is an environment flag + from the shell indicating it is not an option. The later information + is only used when the used in the GNU libc. */ +#ifdef _LIBC +# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ + || (optind < nonoption_flags_len \ + && __getopt_nonoption_flags[optind] == '1')) +#else +# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') +#endif + + if (nextchar == NULL || *nextchar == '\0') + { + /* Advance to the next ARGV-element. */ + + /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been + moved back by the user (who may also have changed the arguments). */ + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + + if (ordering == PERMUTE) + { + /* If we have just processed some options following some non-options, + exchange them so that the options come first. */ + + if (first_nonopt != last_nonopt && last_nonopt != optind) + exchange ((char **) argv); + else if (last_nonopt != optind) + first_nonopt = optind; + + /* Skip any additional non-options + and extend the range of non-options previously skipped. */ + + while (optind < argc && NONOPTION_P) + optind++; + last_nonopt = optind; + } + + /* The special ARGV-element `--' means premature end of options. + Skip it like a null option, + then exchange with previous non-options as if it were an option, + then skip everything else like a non-option. */ + + if (optind != argc && !strcmp (argv[optind], "--")) + { + optind++; + + if (first_nonopt != last_nonopt && last_nonopt != optind) + exchange ((char **) argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + last_nonopt = argc; + + optind = argc; + } + + /* If we have done all the ARGV-elements, stop the scan + and back over any non-options that we skipped and permuted. */ + + if (optind == argc) + { + /* Set the next-arg-index to point at the non-options + that we previously skipped, so the caller will digest them. */ + if (first_nonopt != last_nonopt) + optind = first_nonopt; + return -1; + } + + /* If we have come to a non-option and did not permute it, + either stop the scan or describe it to the caller and pass it by. */ + + if (NONOPTION_P) + { + if (ordering == REQUIRE_ORDER) + return -1; + optarg = argv[optind++]; + return 1; + } + + /* We have found another option-ARGV-element. + Skip the initial punctuation. */ + + nextchar = (argv[optind] + 1 + + (longopts != NULL && argv[optind][1] == '-')); + } + + /* Decode the current option-ARGV-element. */ + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + + if (longopts != NULL + && (argv[optind][1] == '-' + || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) + { + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = -1; + int option_index; + + for (nameend = nextchar; *nameend && *nameend != '='; nameend++) + /* Do nothing. */ ; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, nextchar, nameend - nextchar)) + { + if ((unsigned int) (nameend - nextchar) + == (unsigned int) strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else + /* Second or later nonexact match found. */ + ambig = 1; + } + + if (ambig && !exact) + { + if (opterr) + fprintf (stderr, _("%s: option `%s' is ambiguous\n"), + argv[0], argv[optind]); + nextchar += strlen (nextchar); + optind++; + optopt = 0; + return '?'; + } + + if (pfound != NULL) + { + option_index = indfound; + optind++; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + optarg = nameend + 1; + else + { + if (opterr) + if (argv[optind - 1][1] == '-') + /* --option */ + fprintf (stderr, + _("%s: option `--%s' doesn't allow an argument\n"), + argv[0], pfound->name); + else + /* +option or -option */ + fprintf (stderr, + _("%s: option `%c%s' doesn't allow an argument\n"), + argv[0], argv[optind - 1][0], pfound->name); + + nextchar += strlen (nextchar); + + optopt = pfound->val; + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (optind < argc) + optarg = argv[optind++]; + else + { + if (opterr) + fprintf (stderr, + _("%s: option `%s' requires an argument\n"), + argv[0], argv[optind - 1]); + nextchar += strlen (nextchar); + optopt = pfound->val; + return optstring[0] == ':' ? ':' : '?'; + } + } + nextchar += strlen (nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + + /* Can't find it as a long option. If this is not getopt_long_only, + or the option starts with '--' or is not a valid short + option, then it's an error. + Otherwise interpret it as a short option. */ + if (!long_only || argv[optind][1] == '-' + || my_index (optstring, *nextchar) == NULL) + { + if (opterr) + { + if (argv[optind][1] == '-') + /* --option */ + fprintf (stderr, _("%s: unrecognized option `--%s'\n"), + argv[0], nextchar); + else + /* +option or -option */ + fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), + argv[0], argv[optind][0], nextchar); + } + nextchar = (char *) ""; + optind++; + optopt = 0; + return '?'; + } + } + + /* Look at and handle the next short option-character. */ + + { + char c = *nextchar++; + char *temp = my_index (optstring, c); + + /* Increment `optind' when we start to process its last character. */ + if (*nextchar == '\0') + ++optind; + + if (temp == NULL || c == ':') + { + if (opterr) + { + if (posixly_correct) + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, _("%s: illegal option -- %c\n"), + argv[0], c); + else + fprintf (stderr, _("%s: invalid option -- %c\n"), + argv[0], c); + } + optopt = c; + return '?'; + } + /* Convenience. Treat POSIX -W foo same as long option --foo */ + if (temp[0] == 'W' && temp[1] == ';') + { + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = 0; + int option_index; + + /* This is an option that requires an argument. */ + if (*nextchar != '\0') + { + optarg = nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + optind++; + } + else if (optind == argc) + { + if (opterr) + { + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, _("%s: option requires an argument -- %c\n"), + argv[0], c); + } + optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + return c; + } + else + /* We already incremented `optind' once; + increment it again when taking next ARGV-elt as argument. */ + optarg = argv[optind++]; + + /* optarg is now the argument, see if it's in the + table of longopts. */ + + for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) + /* Do nothing. */ ; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, nextchar, nameend - nextchar)) + { + if ((unsigned int) (nameend - nextchar) == strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else + /* Second or later nonexact match found. */ + ambig = 1; + } + if (ambig && !exact) + { + if (opterr) + fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), + argv[0], argv[optind]); + nextchar += strlen (nextchar); + optind++; + return '?'; + } + if (pfound != NULL) + { + option_index = indfound; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + optarg = nameend + 1; + else + { + if (opterr) + fprintf (stderr, _("\ +%s: option `-W %s' doesn't allow an argument\n"), + argv[0], pfound->name); + + nextchar += strlen (nextchar); + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (optind < argc) + optarg = argv[optind++]; + else + { + if (opterr) + fprintf (stderr, + _("%s: option `%s' requires an argument\n"), + argv[0], argv[optind - 1]); + nextchar += strlen (nextchar); + return optstring[0] == ':' ? ':' : '?'; + } + } + nextchar += strlen (nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + nextchar = NULL; + return 'W'; /* Let the application handle it. */ + } + if (temp[1] == ':') + { + if (temp[2] == ':') + { + /* This is an option that accepts an argument optionally. */ + if (*nextchar != '\0') + { + optarg = nextchar; + optind++; + } + else + optarg = NULL; + nextchar = NULL; + } + else + { + /* This is an option that requires an argument. */ + if (*nextchar != '\0') + { + optarg = nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + optind++; + } + else if (optind == argc) + { + if (opterr) + { + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, + _("%s: option requires an argument -- %c\n"), + argv[0], c); + } + optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + } + else + /* We already incremented `optind' once; + increment it again when taking next ARGV-elt as argument. */ + optarg = argv[optind++]; + nextchar = NULL; + } + } + return c; + } +} + +int +getopt (argc, argv, optstring) + int argc; + char *const *argv; + const char *optstring; +{ + return _getopt_internal (argc, argv, optstring, + (const struct option *) 0, + (int *) 0, + 0); +} + +#endif /* Not ELIDE_CODE. */ + +#ifdef TEST + +/* Compile with -DTEST to make an executable for use in testing + the above definition of `getopt'. */ + +int +main (argc, argv) + int argc; + char **argv; +{ + int c; + int digit_optind = 0; + + while (1) + { + int this_option_optind = optind ? optind : 1; + + c = getopt (argc, argv, "abc:d:0123456789"); + if (c == -1) + break; + + switch (c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } + } + + if (optind < argc) + { + printf ("non-option ARGV-elements: "); + while (optind < argc) + printf ("%s ", argv[optind++]); + printf ("\n"); + } + + exit (0); +} + +#endif /* TEST */ diff --git a/src/mkutil/make-3.80/getopt.h b/src/mkutil/make-3.80/getopt.h new file mode 100644 index 00000000..fb30719a --- /dev/null +++ b/src/mkutil/make-3.80/getopt.h @@ -0,0 +1,133 @@ +/* Declarations for getopt. + Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc. + + NOTE: The canonical source of this file is maintained with the GNU C Library. + Bugs can be reported to bug-glibc@gnu.org. + + 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, 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 _GETOPT_H +#define _GETOPT_H 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +extern char *optarg; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + + On entry to `getopt', zero means this is the first call; initialize. + + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +extern int optind; + +/* Callers store zero here to inhibit the error message `getopt' prints + for unrecognized options. */ + +extern int opterr; + +/* Set to an option character which was unrecognized. */ + +extern int optopt; + +/* Describe the long-named options requested by the application. + The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector + of `struct option' terminated by an element containing a name which is + zero. + + The field `has_arg' is: + no_argument (or 0) if the option does not take an argument, + required_argument (or 1) if the option requires an argument, + optional_argument (or 2) if the option takes an optional argument. + + If the field `flag' is not NULL, it points to a variable that is set + to the value given in the field `val' when the option is found, but + left unchanged if the option is not found. + + To have a long-named option do something other than set an `int' to + a compiled-in constant, such as set a value from `optarg', set the + option's `flag' field to zero and its `val' field to a nonzero + value (the equivalent single-letter option character, if there is + one). For long options that have a zero `flag' field, `getopt' + returns the contents of the `val' field. */ + +struct option +{ +#if defined (__STDC__) && __STDC__ + const char *name; +#else + char *name; +#endif + /* has_arg can't be an enum because some compilers complain about + type mismatches in all the code that assumes it is an int. */ + int has_arg; + int *flag; + int val; +}; + +/* Names for the values of the `has_arg' field of `struct option'. */ + +#define no_argument 0 +#define required_argument 1 +#define optional_argument 2 + +#if defined (__STDC__) && __STDC__ +#ifdef __GNU_LIBRARY__ +/* Many other libraries have conflicting prototypes for getopt, with + differences in the consts, in stdlib.h. To avoid compilation + errors, only prototype getopt for the GNU C library. */ +extern int getopt (int argc, char *const *argv, const char *shortopts); +#else /* not __GNU_LIBRARY__ */ +extern int getopt (); +#endif /* __GNU_LIBRARY__ */ +extern int getopt_long (int argc, char *const *argv, const char *shortopts, + const struct option *longopts, int *longind); +extern int getopt_long_only (int argc, char *const *argv, + const char *shortopts, + const struct option *longopts, int *longind); + +/* Internal only. Users should not call this directly. */ +extern int _getopt_internal (int argc, char *const *argv, + const char *shortopts, + const struct option *longopts, int *longind, + int long_only); +#else /* not __STDC__ */ +extern int getopt (); +extern int getopt_long (); +extern int getopt_long_only (); + +extern int _getopt_internal (); +#endif /* __STDC__ */ + +#ifdef __cplusplus +} +#endif + +#endif /* getopt.h */ diff --git a/src/mkutil/make-3.80/getopt1.c b/src/mkutil/make-3.80/getopt1.c new file mode 100644 index 00000000..ff257374 --- /dev/null +++ b/src/mkutil/make-3.80/getopt1.c @@ -0,0 +1,190 @@ +/* getopt_long and getopt_long_only entry points for GNU getopt. + Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 + Free Software Foundation, Inc. + + NOTE: The canonical source of this file is maintained with the GNU C Library. + Bugs can be reported to bug-glibc@gnu.org. + + 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, 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. */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "getopt.h" + +#if !defined __STDC__ || !__STDC__ +/* This is a separate conditional since some stdc systems + reject `defined (const)'. */ +#ifndef const +#define const +#endif +#endif + +#include + +/* Comment out all this code if we are using the GNU C Library, and are not + actually compiling the library itself. This code is part of the GNU C + Library, but also included in many other GNU distributions. Compiling + and linking in this code is a waste when using the GNU C library + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, + it is simpler to just do this in the source for each such file. */ + +#define GETOPT_INTERFACE_VERSION 2 +#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 +#include +#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION +#define ELIDE_CODE +#endif +#endif + +#ifndef ELIDE_CODE + + +/* This needs to come after some library #include + to get __GNU_LIBRARY__ defined. */ +#ifdef __GNU_LIBRARY__ +#include +#endif + +#ifndef NULL +#define NULL 0 +#endif + +int +getopt_long (argc, argv, options, long_options, opt_index) + int argc; + char *const *argv; + const char *options; + const struct option *long_options; + int *opt_index; +{ + return _getopt_internal (argc, argv, options, long_options, opt_index, 0); +} + +/* Like getopt_long, but '-' as well as '--' can indicate a long option. + If an option that starts with '-' (not '--') doesn't match a long option, + but does match a short option, it is parsed as a short option + instead. */ + +int +getopt_long_only (argc, argv, options, long_options, opt_index) + int argc; + char *const *argv; + const char *options; + const struct option *long_options; + int *opt_index; +{ + return _getopt_internal (argc, argv, options, long_options, opt_index, 1); +} + + +#endif /* Not ELIDE_CODE. */ + +#ifdef TEST + +#include + +int +main (argc, argv) + int argc; + char **argv; +{ + int c; + int digit_optind = 0; + + while (1) + { + int this_option_optind = optind ? optind : 1; + int option_index = 0; + static struct option long_options[] = + { + {"add", 1, 0, 0}, + {"append", 0, 0, 0}, + {"delete", 1, 0, 0}, + {"verbose", 0, 0, 0}, + {"create", 0, 0, 0}, + {"file", 1, 0, 0}, + {0, 0, 0, 0} + }; + + c = getopt_long (argc, argv, "abc:d:0123456789", + long_options, &option_index); + if (c == -1) + break; + + switch (c) + { + case 0: + printf ("option %s", long_options[option_index].name); + if (optarg) + printf (" with arg %s", optarg); + printf ("\n"); + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case 'd': + printf ("option d with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } + } + + if (optind < argc) + { + printf ("non-option ARGV-elements: "); + while (optind < argc) + printf ("%s ", argv[optind++]); + printf ("\n"); + } + + exit (0); +} + +#endif /* TEST */ diff --git a/src/mkutil/make-3.80/gettext.h b/src/mkutil/make-3.80/gettext.h new file mode 100644 index 00000000..ea67f308 --- /dev/null +++ b/src/mkutil/make-3.80/gettext.h @@ -0,0 +1,59 @@ +/* Convenience header for conditional use of GNU . + Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published + by the Free Software Foundation; either version 2, 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library 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 _LIBGETTEXT_H +#define _LIBGETTEXT_H 1 + +/* NLS can be disabled through the configure --disable-nls option. */ +#if ENABLE_NLS + +/* Get declarations of GNU message catalog functions. */ +# include + +#else + +/* Disabled NLS. + The casts to 'const char *' serve the purpose of producing warnings + for invalid uses of the value returned from these functions. + On pre-ANSI systems without 'const', the config.h file is supposed to + contain "#define const". */ +# define gettext(Msgid) ((const char *) (Msgid)) +# define dgettext(Domainname, Msgid) ((const char *) (Msgid)) +# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) +# define ngettext(Msgid1, Msgid2, N) \ + ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) +# define dngettext(Domainname, Msgid1, Msgid2, N) \ + ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) +# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ + ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) +# define textdomain(Domainname) ((const char *) (Domainname)) +# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) +# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) + +#endif + +/* A pseudo function call that serves as a marker for the automated + extraction of messages, but does not call gettext(). The run-time + translation is done at a different place in the code. + The argument, String, should be a literal string. Concatenated strings + and other string expressions won't work. + The macro's expansion is not parenthesized, so that it is suitable as + initializer for static 'char[]' or 'const char[]' variables. */ +#define gettext_noop(String) String + +#endif /* _LIBGETTEXT_H */ diff --git a/src/mkutil/make-3.80/glob/COPYING.LIB b/src/mkutil/make-3.80/glob/COPYING.LIB new file mode 100644 index 00000000..bbe3fe19 --- /dev/null +++ b/src/mkutil/make-3.80/glob/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/src/mkutil/make-3.80/glob/ChangeLog b/src/mkutil/make-3.80/glob/ChangeLog new file mode 100644 index 00000000..1ebf879b --- /dev/null +++ b/src/mkutil/make-3.80/glob/ChangeLog @@ -0,0 +1,136 @@ +2002-04-22 Paul D. Smith + + * Makefile.am: Use automake 1.6. + Use new automake condition USE_LOCAL_GLOB to decide whether or not + to build the local GNU glob library or use the system one. + +1999-09-12 Paul D. Smith + + * fnmatch.c: Last GLIBC version wouldn't compile outside of GLIBC + (undefined reference to internal_function). Update to the latest + version + +1999-09-11 Paul Eggert + + * glob.h (glob): If #defining to glob64, do this before + declaring it, so that all declarations and uses match, and + do not declare glob64, to avoid a declaration clash. + (globfree): Likewise with globfree64. + +1999-09-08 Eli Zaretskii + + * glob.c (prefix_array) [__MSDOS__,WINDOWS32]: Keep the trailing + slash unless DIRNAME is just "x:/". + +1999-09-06 Paul D. Smith + + * fnmatch.c: Update to latest version from GLIBC. + +1999-07-21 Paul D. Smith + + * glob.c, glob.h, fnmatch.c, fnmatch.h: Update to latest version + from GLIBC. + + * fnmatch.c (internal_fnmatch): Use K&R definition syntax, not ANSI. + (__strchrnul): This won't exist outside GLIBC, so create one. + + * glob.c: Move getlogin{,_r} prototypes below glob.h to get __P() + macro. + +1998-08-05 Paul D. Smith + + * configure.in: Remove; configuration for glob is handled by the + make configure.in. + +1998-07-29 Paul D. Smith + + * glob.c, fnmatch.c: New versions from the GLIBC folks (Ulrich + Drepper). Fixes a bug reported by Eli Zaretski. Integrates + DOS/Windows32 support. + +1998-07-27 Kaveh R. Ghazi + + * glob.c (glob): Cast away const on assignment of pattern to dirname. + Cast the return type of __alloca() for traditional C compilers. + +1998-07-23 Paul D. Smith + + * glob.c, fnmatch.c: New versions of these files from the GLIBC + folks (Ulrich Drepper). Had to re-integrate some DOS/Windows + code. + +1998-07-10 Paul D. Smith + + * glob.c (glob_in_dir): If no meta chars exist in PATTERN and + GLOB_NOCHECK is present, don't look for the file--whether it's + found or not, we'll always return it, so why bother searching? + + Also, if we are searching and there are no meta chars, don't + bother trying fnmatch() if the strcmp() fails. + +1998-05-30 Eli Zaretskii + + * glob.c (glob) [__MSDOS__, WINDOWS32]: Compute the directory and + filename parts of the pattern correctly when it includes a drive + spec. Disallow wildcards in the drive spec. Prevent recursion + when dirname is of the form "d:/" or "d:". + (prefix_array) [__MSDOS__, WINDOWS32]: Don't append a slash to + "d:/" and "d:". + +1998-05-13 Paul D. Smith + + * SMakefile, Makefile.ami, glob.c, glob.h, fnmatch.c: Updated from + the latest glibc version. + +1998-04-17 Paul D. Smith + + * configure.in: Create a config.h file instead of setting things + on the compile line. This is because when build.sh runs it merely + passes -DHAVE_CONFIG_H to the glob files, just as it does to the + make files. + * config.h.in: Created by autoheader. + +Tue Aug 12 10:52:34 1997 Paul D. Smith + + * configure.in: Require autoconf 2.12. + + * glob: Updates from latest GNU libc glob code. + + * glob.c,glob.h,fnmatch.h: Change all WIN32 references to WINDOWS32. + + * glob.h: OSF4 defines macros in such a way that GLOB_ALTDIRFUNC + is not defined. Added a test to the #if which defines it if + _GNU_SOURCE is defined; that's set by both glob.c and GNU make. + + * glob.c: SunOS4 w/ cc needs #include , since assert.h + requires stderr but doesn't include stdio.h :-/. + (next_brace_sub): De-protoize function definition. + (glob): Cast __alloca(); on SunOS4 it uses the default return type + of int. + (glob): Irix defines getlogin_r() to return a char*; move the + extern for that into the _LIBC area since it isn't used except in + LIBC anyway. Likewise, move extern getlogin() into the "else". + +Sat Jul 20 21:55:31 1996 Roland McGrath + + Win32 hacks from . + * posix/glob.c [WIN32]: Don't include ; don't use d_ino; + use void * for my_realloc; include for alloca. + (glob) [WIN32]: Use "c:/users/default" for ~ if no HOME variable. + * posix/fnmatch.h [WIN32]: Use prototypes even if [!__STDC__]. + * posix/glob.h: Likewise. + +Fri Jul 19 16:56:41 1996 Roland McGrath + + * posix/glob.h [!_AMIGA && !VMS]: Check this instead of just [!_AMIGA] + for `struct stat;' forward decl. + +Sat Jun 22 10:44:09 1996 Roland McGrath + + * posix/glob.c: Include only [HAVE_ALLOCA_H], not [sparc]. + +Fri Jun 21 00:27:51 1996 Roland McGrath + + * posix/fnmatch.c (fnmatch): Fix \*[*?]+ case to increment name ptr + only for ?s, not for *s. Fix from Chet Ramey. + diff --git a/src/mkutil/make-3.80/glob/Makefile.am b/src/mkutil/make-3.80/glob/Makefile.am new file mode 100644 index 00000000..7623ffe7 --- /dev/null +++ b/src/mkutil/make-3.80/glob/Makefile.am @@ -0,0 +1,14 @@ +# -*-Makefile-*-, or close enough + +AUTOMAKE_OPTIONS = 1.7 foreign + +# Only build the library when the system doesn't already have GNU glob. +if USE_LOCAL_GLOB + noinst_LIBRARIES = libglob.a +endif + +libglob_a_SOURCES = glob.c glob.h fnmatch.c fnmatch.h + + +EXTRA_DIST = COPYING.LIB Makefile.ami SCOPTIONS SMakefile \ + configure.bat diff --git a/src/mkutil/make-3.80/glob/Makefile.ami b/src/mkutil/make-3.80/glob/Makefile.ami new file mode 100644 index 00000000..d3e3d40c --- /dev/null +++ b/src/mkutil/make-3.80/glob/Makefile.ami @@ -0,0 +1,69 @@ +# Makefile for standalone distribution of libglob.a (fnmatch, glob). + +# Copyright (C) 1991, 92, 93, 94, 95, 97, 98 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public License +# as published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. + +# This library 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 +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public +# License along with this library; see the file COPYING.LIB. If +# not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Ultrix 2.2 make doesn't expand the value of VPATH. +VPATH = /glob/ +# This must repeat the value, because configure will remove `VPATH = .'. +srcdir = /glob/ + +CC = sc +RM = delete +CPPFLAGS = +CFLAGS = + +# Information determined by configure. +DEFS = Define HAVE_HEADER_STDC Define HAVE_UNISTD_H Define HAVE_STRING_H \ + Define HAVE_DIRENT_H + +# How to invoke ar. +AR = join +ARFLAGS = as + +# How to invoke ranlib. +RANLIB = ; + +.PHONY: all +all: glob.lib + +glob.lib : glob.o fnmatch.o + $(AR) $(ARFLAGS) $@ glob.o fnmatch.o + $(RANLIB) $@ + +# For some reason, Unix make wants the dependencies on the source files. +# Otherwise it refuses to use an implicit rule! +# And, get this: it doesn't work to use $(srcdir)foo.c!! +glob.o: $(srcdir)glob.h $(srcdir)fnmatch.h glob.c +fnmatch.o: $(srcdir)fnmatch.h fnmatch.c + +OUTPUT_OPTION = +.c.o: + $(CC) IDir "" \ + $(DEFS) $(CPPFLAGS) $(CFLAGS) $< $(OUTPUT_OPTION) + +.PHONY: clean realclean glob-clean glob-realclean distclean +clean glob-clean: + -$(RM) glob.lib "#?.o" core +distclean glob-realclean: clean + -$(RM) TAGS tags Makefile config.status config.h config.log +realcean: distclean + +# For inside the C library. +glob.tar glob.tar.Z: + $(MAKE) -C .. $@ diff --git a/src/mkutil/make-3.80/glob/Makefile.in b/src/mkutil/make-3.80/glob/Makefile.in new file mode 100644 index 00000000..8ab6ce2f --- /dev/null +++ b/src/mkutil/make-3.80/glob/Makefile.in @@ -0,0 +1,399 @@ +# Makefile.in generated by automake 1.7 from Makefile.am. +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*-Makefile-*-, or close enough + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_triplet = @host@ +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ +GLOBINC = @GLOBINC@ +GLOBLIB = @GLOBLIB@ +GMSGFMT = @GMSGFMT@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +KMEM_GROUP = @KMEM_GROUP@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBS = @LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKE_HOST = @MAKE_HOST@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NEED_SETGID = @NEED_SETGID@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_CUSTOMS_FALSE = @USE_CUSTOMS_FALSE@ +USE_CUSTOMS_TRUE = @USE_CUSTOMS_TRUE@ +USE_LOCAL_GLOB_FALSE = @USE_LOCAL_GLOB_FALSE@ +USE_LOCAL_GLOB_TRUE = @USE_LOCAL_GLOB_TRUE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +oldincludedir = @oldincludedir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ + +AUTOMAKE_OPTIONS = 1.7 foreign + +# Only build the library when the system doesn't already have GNU glob. +@USE_LOCAL_GLOB_TRUE@noinst_LIBRARIES = libglob.a + +libglob_a_SOURCES = glob.c glob.h fnmatch.c fnmatch.h + +EXTRA_DIST = COPYING.LIB Makefile.ami SCOPTIONS SMakefile \ + configure.bat + +subdir = glob +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + +libglob_a_AR = $(AR) cru +libglob_a_LIBADD = +am_libglob_a_OBJECTS = glob.$(OBJEXT) fnmatch.$(OBJEXT) +libglob_a_OBJECTS = $(am_libglob_a_OBJECTS) + +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/fnmatch.Po ./$(DEPDIR)/glob.Po +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(libglob_a_SOURCES) +DIST_COMMON = COPYING.LIB ChangeLog Makefile.am Makefile.in +SOURCES = $(libglob_a_SOURCES) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .o .obj +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign glob/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libglob.a: $(libglob_a_OBJECTS) $(libglob_a_DEPENDENCIES) + -rm -f libglob.a + $(libglob_a_AR) libglob.a $(libglob_a_OBJECTS) $(libglob_a_LIBADD) + $(RANLIB) libglob.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob.Po@am__quote@ + +distclean-depend: + -rm -rf ./$(DEPDIR) + +.c.o: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + +.c.obj: +@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'`; \ +@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCC_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'` +uninstall-info-am: + +ETAGS = etags +ETAGSFLAGS = + +CTAGS = ctags +CTAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = .. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LIBRARIES) + +installdirs: + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-compile distclean-depend \ + distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-info-am + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-noinstLIBRARIES ctags distclean distclean-compile \ + distclean-depend distclean-generic distclean-tags distdir dvi \ + dvi-am info info-am install install-am install-data \ + install-data-am install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-info-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/mkutil/make-3.80/glob/SCOPTIONS b/src/mkutil/make-3.80/glob/SCOPTIONS new file mode 100644 index 00000000..f89daae1 --- /dev/null +++ b/src/mkutil/make-3.80/glob/SCOPTIONS @@ -0,0 +1,13 @@ +ERRORREXX +OPTIMIZE +NOVERSION +OPTIMIZERTIME +OPTIMIZERALIAS +DEFINE INCLUDEDIR="include:" +DEFINE LIBDIR="lib:" +DEFINE NO_ALLOCA +DEFINE NO_FLOAT +DEFINE NO_ARCHIVES +IGNORE=161 +IGNORE=100 +STARTUP=cres diff --git a/src/mkutil/make-3.80/glob/SMakefile b/src/mkutil/make-3.80/glob/SMakefile new file mode 100644 index 00000000..9dcb90b3 --- /dev/null +++ b/src/mkutil/make-3.80/glob/SMakefile @@ -0,0 +1,69 @@ +# Makefile for standalone distribution of libglob.a (fnmatch, glob). + +# Copyright (C) 1991, 92, 93, 94, 95, 97, 98 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public License +# as published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. + +# This library 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 +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public +# License along with this library; see the file COPYING.LIB. If +# not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# Ultrix 2.2 make doesn't expand the value of VPATH. +VPATH = /glob/ +# This must repeat the value, because configure will remove `VPATH = .'. +srcdir = /glob/ + +CC = sc +CPPFLAGS = +CFLAGS = +MAKE = smake +RM = delete + +# Information determined by configure. +DEFS = Define HAVE_HEADER_STDC Define HAVE_UNISTD_H Define HAVE_STRING_H \ + Define HAVE_DIRENT_H + +# How to invoke ar. +AR = join +ARFLAGS = as + +# How to invoke ranlib. +RANLIB = ; + +.PHONY: all +all: glob.lib + +glob.lib : glob.o fnmatch.o + $(AR) $(ARFLAGS) $@ glob.o fnmatch.o + $(RANLIB) $@ + +# For some reason, Unix make wants the dependencies on the source files. +# Otherwise it refuses to use an implicit rule! +# And, get this: it doesn't work to use $(srcdir)foo.c!! +glob.o: $(srcdir)glob.h $(srcdir)fnmatch.h glob.c +fnmatch.o: $(srcdir)fnmatch.h fnmatch.c + +.c.o: + $(CC) IDir "" \ + $(DEFS) $(CPPFLAGS) $(CFLAGS) $< $(OUTPUT_OPTION) + +.PHONY: clean realclean glob-clean glob-realclean distclean +clean glob-clean: + -$(RM) -f glob.lib *.o core +distclean glob-realclean: clean + -$(RM) -f TAGS tags Makefile config.status config.h config.log +realcean: distclean + +# For inside the C library. +glob.tar glob.tar.Z: + $(MAKE) -C .. $@ diff --git a/src/mkutil/make-3.80/glob/configure.bat b/src/mkutil/make-3.80/glob/configure.bat new file mode 100644 index 00000000..b6104e13 --- /dev/null +++ b/src/mkutil/make-3.80/glob/configure.bat @@ -0,0 +1,26 @@ +@echo off +echo Configuring glob for DJGPP +rem This batch file assumes a unix-type "sed" program + +echo # Makefile generated by "configure.bat"> Makefile + +if exist config.sed del config.sed + +echo "s/@srcdir@/./ ">> config.sed +echo "s/@CC@/gcc/ ">> config.sed +echo "s/@CFLAGS@/-O2 -g/ ">> config.sed +echo "s/@CPPFLAGS@/-DHAVE_CONFIG_H -I../ ">> config.sed +echo "s/@AR@/ar/ ">> config.sed +echo "s/@RANLIB@/ranlib/ ">> config.sed +echo "s/@LDFLAGS@// ">> config.sed +echo "s/@DEFS@// ">> config.sed +echo "s/@ALLOCA@// ">> config.sed +echo "s/@LIBS@// ">> config.sed +echo "s/@LIBOBJS@// ">> config.sed +echo "s/^Makefile *:/_Makefile:/ ">> config.sed +echo "s/^config.h *:/_config.h:/ ">> config.sed + +sed -e "s/^\"//" -e "s/\"$//" -e "s/[ ]*$//" config.sed > config2.sed +sed -f config2.sed Makefile.in >> Makefile +del config.sed +del config2.sed diff --git a/src/mkutil/make-3.80/glob/fnmatch.c b/src/mkutil/make-3.80/glob/fnmatch.c new file mode 100644 index 00000000..1f4ead5f --- /dev/null +++ b/src/mkutil/make-3.80/glob/fnmatch.c @@ -0,0 +1,488 @@ +/* Copyright (C) 1991, 92, 93, 96, 97, 98, 99 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#if HAVE_CONFIG_H +# include +#endif + +/* Enable GNU extensions in fnmatch.h. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif + +#include +#include +#include + +#if HAVE_STRING_H || defined _LIBC +# include +#else +# include +#endif + +#if defined STDC_HEADERS || defined _LIBC +# include +#endif + +/* For platform which support the ISO C amendement 1 functionality we + support user defined character classes. */ +#if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +/* Solaris 2.5 has a bug: must be included before . */ +# include +# include +#endif + +/* Comment out all this code if we are using the GNU C Library, and are not + actually compiling the library itself. This code is part of the GNU C + Library, but also included in many other GNU distributions. Compiling + and linking in this code is a waste when using the GNU C library + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, + it is simpler to just do this in the source for each such file. */ + +#if defined _LIBC || !defined __GNU_LIBRARY__ + + +# if defined STDC_HEADERS || !defined isascii +# define ISASCII(c) 1 +# else +# define ISASCII(c) isascii(c) +# endif + +# ifdef isblank +# define ISBLANK(c) (ISASCII (c) && isblank (c)) +# else +# define ISBLANK(c) ((c) == ' ' || (c) == '\t') +# endif +# ifdef isgraph +# define ISGRAPH(c) (ISASCII (c) && isgraph (c)) +# else +# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) +# endif + +# define ISPRINT(c) (ISASCII (c) && isprint (c)) +# define ISDIGIT(c) (ISASCII (c) && isdigit (c)) +# define ISALNUM(c) (ISASCII (c) && isalnum (c)) +# define ISALPHA(c) (ISASCII (c) && isalpha (c)) +# define ISCNTRL(c) (ISASCII (c) && iscntrl (c)) +# define ISLOWER(c) (ISASCII (c) && islower (c)) +# define ISPUNCT(c) (ISASCII (c) && ispunct (c)) +# define ISSPACE(c) (ISASCII (c) && isspace (c)) +# define ISUPPER(c) (ISASCII (c) && isupper (c)) +# define ISXDIGIT(c) (ISASCII (c) && isxdigit (c)) + +# define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) + +# if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +/* The GNU C library provides support for user-defined character classes + and the functions from ISO C amendement 1. */ +# ifdef CHARCLASS_NAME_MAX +# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX +# else +/* This shouldn't happen but some implementation might still have this + problem. Use a reasonable default value. */ +# define CHAR_CLASS_MAX_LENGTH 256 +# endif + +# ifdef _LIBC +# define IS_CHAR_CLASS(string) __wctype (string) +# else +# define IS_CHAR_CLASS(string) wctype (string) +# endif +# else +# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ + +# define IS_CHAR_CLASS(string) \ + (STREQ (string, "alpha") || STREQ (string, "upper") \ + || STREQ (string, "lower") || STREQ (string, "digit") \ + || STREQ (string, "alnum") || STREQ (string, "xdigit") \ + || STREQ (string, "space") || STREQ (string, "print") \ + || STREQ (string, "punct") || STREQ (string, "graph") \ + || STREQ (string, "cntrl") || STREQ (string, "blank")) +# endif + +/* Avoid depending on library functions or files + whose names are inconsistent. */ + +# if !defined _LIBC && !defined getenv +extern char *getenv (); +# endif + +# ifndef errno +extern int errno; +# endif + +/* This function doesn't exist on most systems. */ + +# if !defined HAVE___STRCHRNUL && !defined _LIBC +static char * +__strchrnul (s, c) + const char *s; + int c; +{ + char *result = strchr (s, c); + if (result == NULL) + result = strchr (s, '\0'); + return result; +} +# endif + +# ifndef internal_function +/* Inside GNU libc we mark some function in a special way. In other + environments simply ignore the marking. */ +# define internal_function +# endif + +/* Match STRING against the filename pattern PATTERN, returning zero if + it matches, nonzero if not. */ +static int internal_fnmatch __P ((const char *pattern, const char *string, + int no_leading_period, int flags)) + internal_function; +static int +internal_function +internal_fnmatch (pattern, string, no_leading_period, flags) + const char *pattern; + const char *string; + int no_leading_period; + int flags; +{ + register const char *p = pattern, *n = string; + register unsigned char c; + +/* Note that this evaluates C many times. */ +# ifdef _LIBC +# define FOLD(c) ((flags & FNM_CASEFOLD) ? tolower (c) : (c)) +# else +# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c)) +# endif + + while ((c = *p++) != '\0') + { + c = FOLD (c); + + switch (c) + { + case '?': + if (*n == '\0') + return FNM_NOMATCH; + else if (*n == '/' && (flags & FNM_FILE_NAME)) + return FNM_NOMATCH; + else if (*n == '.' && no_leading_period + && (n == string + || (n[-1] == '/' && (flags & FNM_FILE_NAME)))) + return FNM_NOMATCH; + break; + + case '\\': + if (!(flags & FNM_NOESCAPE)) + { + c = *p++; + if (c == '\0') + /* Trailing \ loses. */ + return FNM_NOMATCH; + c = FOLD (c); + } + if (FOLD ((unsigned char) *n) != c) + return FNM_NOMATCH; + break; + + case '*': + if (*n == '.' && no_leading_period + && (n == string + || (n[-1] == '/' && (flags & FNM_FILE_NAME)))) + return FNM_NOMATCH; + + for (c = *p++; c == '?' || c == '*'; c = *p++) + { + if (*n == '/' && (flags & FNM_FILE_NAME)) + /* A slash does not match a wildcard under FNM_FILE_NAME. */ + return FNM_NOMATCH; + else if (c == '?') + { + /* A ? needs to match one character. */ + if (*n == '\0') + /* There isn't another character; no match. */ + return FNM_NOMATCH; + else + /* One character of the string is consumed in matching + this ? wildcard, so *??? won't match if there are + less than three characters. */ + ++n; + } + } + + if (c == '\0') + /* The wildcard(s) is/are the last element of the pattern. + If the name is a file name and contains another slash + this does mean it cannot match. */ + return ((flags & FNM_FILE_NAME) && strchr (n, '/') != NULL + ? FNM_NOMATCH : 0); + else + { + const char *endp; + + endp = __strchrnul (n, (flags & FNM_FILE_NAME) ? '/' : '\0'); + + if (c == '[') + { + int flags2 = ((flags & FNM_FILE_NAME) + ? flags : (flags & ~FNM_PERIOD)); + + for (--p; n < endp; ++n) + if (internal_fnmatch (p, n, + (no_leading_period + && (n == string + || (n[-1] == '/' + && (flags + & FNM_FILE_NAME)))), + flags2) + == 0) + return 0; + } + else if (c == '/' && (flags & FNM_FILE_NAME)) + { + while (*n != '\0' && *n != '/') + ++n; + if (*n == '/' + && (internal_fnmatch (p, n + 1, flags & FNM_PERIOD, + flags) == 0)) + return 0; + } + else + { + int flags2 = ((flags & FNM_FILE_NAME) + ? flags : (flags & ~FNM_PERIOD)); + + if (c == '\\' && !(flags & FNM_NOESCAPE)) + c = *p; + c = FOLD (c); + for (--p; n < endp; ++n) + if (FOLD ((unsigned char) *n) == c + && (internal_fnmatch (p, n, + (no_leading_period + && (n == string + || (n[-1] == '/' + && (flags + & FNM_FILE_NAME)))), + flags2) == 0)) + return 0; + } + } + + /* If we come here no match is possible with the wildcard. */ + return FNM_NOMATCH; + + case '[': + { + /* Nonzero if the sense of the character class is inverted. */ + static int posixly_correct; + register int not; + char cold; + + if (posixly_correct == 0) + posixly_correct = getenv ("POSIXLY_CORRECT") != NULL ? 1 : -1; + + if (*n == '\0') + return FNM_NOMATCH; + + if (*n == '.' && no_leading_period && (n == string + || (n[-1] == '/' + && (flags + & FNM_FILE_NAME)))) + return FNM_NOMATCH; + + if (*n == '/' && (flags & FNM_FILE_NAME)) + /* `/' cannot be matched. */ + return FNM_NOMATCH; + + not = (*p == '!' || (posixly_correct < 0 && *p == '^')); + if (not) + ++p; + + c = *p++; + for (;;) + { + unsigned char fn = FOLD ((unsigned char) *n); + + if (!(flags & FNM_NOESCAPE) && c == '\\') + { + if (*p == '\0') + return FNM_NOMATCH; + c = FOLD ((unsigned char) *p); + ++p; + + if (c == fn) + goto matched; + } + else if (c == '[' && *p == ':') + { + /* Leave room for the null. */ + char str[CHAR_CLASS_MAX_LENGTH + 1]; + size_t c1 = 0; +# if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) + wctype_t wt; +# endif + const char *startp = p; + + for (;;) + { + if (c1 == CHAR_CLASS_MAX_LENGTH) + /* The name is too long and therefore the pattern + is ill-formed. */ + return FNM_NOMATCH; + + c = *++p; + if (c == ':' && p[1] == ']') + { + p += 2; + break; + } + if (c < 'a' || c >= 'z') + { + /* This cannot possibly be a character class name. + Match it as a normal range. */ + p = startp; + c = '['; + goto normal_bracket; + } + str[c1++] = c; + } + str[c1] = '\0'; + +# if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) + wt = IS_CHAR_CLASS (str); + if (wt == 0) + /* Invalid character class name. */ + return FNM_NOMATCH; + + if (__iswctype (__btowc ((unsigned char) *n), wt)) + goto matched; +# else + if ((STREQ (str, "alnum") && ISALNUM ((unsigned char) *n)) + || (STREQ (str, "alpha") && ISALPHA ((unsigned char) *n)) + || (STREQ (str, "blank") && ISBLANK ((unsigned char) *n)) + || (STREQ (str, "cntrl") && ISCNTRL ((unsigned char) *n)) + || (STREQ (str, "digit") && ISDIGIT ((unsigned char) *n)) + || (STREQ (str, "graph") && ISGRAPH ((unsigned char) *n)) + || (STREQ (str, "lower") && ISLOWER ((unsigned char) *n)) + || (STREQ (str, "print") && ISPRINT ((unsigned char) *n)) + || (STREQ (str, "punct") && ISPUNCT ((unsigned char) *n)) + || (STREQ (str, "space") && ISSPACE ((unsigned char) *n)) + || (STREQ (str, "upper") && ISUPPER ((unsigned char) *n)) + || (STREQ (str, "xdigit") && ISXDIGIT ((unsigned char) *n))) + goto matched; +# endif + } + else if (c == '\0') + /* [ (unterminated) loses. */ + return FNM_NOMATCH; + else + { + normal_bracket: + if (FOLD (c) == fn) + goto matched; + + cold = c; + c = *p++; + + if (c == '-' && *p != ']') + { + /* It is a range. */ + unsigned char cend = *p++; + if (!(flags & FNM_NOESCAPE) && cend == '\\') + cend = *p++; + if (cend == '\0') + return FNM_NOMATCH; + + if (cold <= fn && fn <= FOLD (cend)) + goto matched; + + c = *p++; + } + } + + if (c == ']') + break; + } + + if (!not) + return FNM_NOMATCH; + break; + + matched: + /* Skip the rest of the [...] that already matched. */ + while (c != ']') + { + if (c == '\0') + /* [... (unterminated) loses. */ + return FNM_NOMATCH; + + c = *p++; + if (!(flags & FNM_NOESCAPE) && c == '\\') + { + if (*p == '\0') + return FNM_NOMATCH; + /* XXX 1003.2d11 is unclear if this is right. */ + ++p; + } + else if (c == '[' && *p == ':') + { + do + if (*++p == '\0') + return FNM_NOMATCH; + while (*p != ':' || p[1] == ']'); + p += 2; + c = *p; + } + } + if (not) + return FNM_NOMATCH; + } + break; + + default: + if (c != FOLD ((unsigned char) *n)) + return FNM_NOMATCH; + } + + ++n; + } + + if (*n == '\0') + return 0; + + if ((flags & FNM_LEADING_DIR) && *n == '/') + /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */ + return 0; + + return FNM_NOMATCH; + +# undef FOLD +} + + +int +fnmatch (pattern, string, flags) + const char *pattern; + const char *string; + int flags; +{ + return internal_fnmatch (pattern, string, flags & FNM_PERIOD, flags); +} + +#endif /* _LIBC or not __GNU_LIBRARY__. */ diff --git a/src/mkutil/make-3.80/glob/fnmatch.h b/src/mkutil/make-3.80/glob/fnmatch.h new file mode 100644 index 00000000..cc3ec379 --- /dev/null +++ b/src/mkutil/make-3.80/glob/fnmatch.h @@ -0,0 +1,84 @@ +/* Copyright (C) 1991, 92, 93, 96, 97, 98, 99 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _FNMATCH_H +#define _FNMATCH_H 1 + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32 +# if !defined __GLIBC__ || !defined __P +# undef __P +# define __P(protos) protos +# endif +#else /* Not C++ or ANSI C. */ +# undef __P +# define __P(protos) () +/* We can get away without defining `const' here only because in this file + it is used only inside the prototype for `fnmatch', which is elided in + non-ANSI C where `const' is problematical. */ +#endif /* C++ or ANSI C. */ + +#ifndef const +# if (defined __STDC__ && __STDC__) || defined __cplusplus +# define __const const +# else +# define __const +# endif +#endif + +/* We #undef these before defining them because some losing systems + (HP-UX A.08.07 for example) define these in . */ +#undef FNM_PATHNAME +#undef FNM_NOESCAPE +#undef FNM_PERIOD + +/* Bits set in the FLAGS argument to `fnmatch'. */ +#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ +#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ +#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ + +#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE +# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ +# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ +# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ +#endif + +/* Value returned by `fnmatch' if STRING does not match PATTERN. */ +#define FNM_NOMATCH 1 + +/* This value is returned if the implementation does not support + `fnmatch'. Since this is not the case here it will never be + returned but the conformance test suites still require the symbol + to be defined. */ +#ifdef _XOPEN_SOURCE +# define FNM_NOSYS (-1) +#endif + +/* Match NAME against the filename pattern PATTERN, + returning zero if it matches, FNM_NOMATCH if not. */ +extern int fnmatch __P ((__const char *__pattern, __const char *__name, + int __flags)); + +#ifdef __cplusplus +} +#endif + +#endif /* fnmatch.h */ diff --git a/src/mkutil/make-3.80/glob/glob.c b/src/mkutil/make-3.80/glob/glob.c new file mode 100644 index 00000000..4bbf7bb0 --- /dev/null +++ b/src/mkutil/make-3.80/glob/glob.c @@ -0,0 +1,1428 @@ +/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* AIX requires this to be the first thing in the file. */ +#if defined _AIX && !defined __GNUC__ + #pragma alloca +#endif + +#ifdef HAVE_CONFIG_H +# include +#endif + +/* Enable GNU extensions in glob.h. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif + +#include +#include +#include + +/* Outcomment the following line for production quality code. */ +/* #define NDEBUG 1 */ +#include + +#include /* Needed on stupid SunOS for assert. */ + + +/* Comment out all this code if we are using the GNU C Library, and are not + actually compiling the library itself. This code is part of the GNU C + Library, but also included in many other GNU distributions. Compiling + and linking in this code is a waste when using the GNU C library + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, + it is simpler to just do this in the source for each such file. */ + +#define GLOB_INTERFACE_VERSION 1 +#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 +# include +# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION +# define ELIDE_CODE +# endif +#endif + +#ifndef ELIDE_CODE + +#if defined STDC_HEADERS || defined __GNU_LIBRARY__ +# include +#endif + +#if defined HAVE_UNISTD_H || defined _LIBC +# include +# ifndef POSIX +# ifdef _POSIX_VERSION +# define POSIX +# endif +# endif +#endif + +#if !defined _AMIGA && !defined VMS && !defined WINDOWS32 +# include +#endif + +#if !defined __GNU_LIBRARY__ && !defined STDC_HEADERS +extern int errno; +#endif +#ifndef __set_errno +# define __set_errno(val) errno = (val) +#endif + +#ifndef NULL +# define NULL 0 +#endif + + +#if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__ +# include +# define NAMLEN(dirent) strlen((dirent)->d_name) +#else +# define dirent direct +# define NAMLEN(dirent) (dirent)->d_namlen +# ifdef HAVE_SYS_NDIR_H +# include +# endif +# ifdef HAVE_SYS_DIR_H +# include +# endif +# ifdef HAVE_NDIR_H +# include +# endif +# ifdef HAVE_VMSDIR_H +# include "vmsdir.h" +# endif /* HAVE_VMSDIR_H */ +#endif + + +/* In GNU systems, defines this macro for us. */ +#ifdef _D_NAMLEN +# undef NAMLEN +# define NAMLEN(d) _D_NAMLEN(d) +#endif + +/* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available + if the `d_type' member for `struct dirent' is available. */ +#ifdef _DIRENT_HAVE_D_TYPE +# define HAVE_D_TYPE 1 +#endif + + +#if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ +/* Posix does not require that the d_ino field be present, and some + systems do not provide it. */ +# define REAL_DIR_ENTRY(dp) 1 +#else +# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) +#endif /* POSIX */ + +#if defined STDC_HEADERS || defined __GNU_LIBRARY__ +# include +# include +# define ANSI_STRING +#else /* No standard headers. */ + +extern char *getenv (); + +# ifdef HAVE_STRING_H +# include +# define ANSI_STRING +# else +# include +# endif +# ifdef HAVE_MEMORY_H +# include +# endif + +extern char *malloc (), *realloc (); +extern void free (); + +extern void qsort (); +extern void abort (), exit (); + +#endif /* Standard headers. */ + +#ifndef ANSI_STRING + +# ifndef bzero +extern void bzero (); +# endif +# ifndef bcopy +extern void bcopy (); +# endif + +# define memcpy(d, s, n) bcopy ((s), (d), (n)) +# define strrchr rindex +/* memset is only used for zero here, but let's be paranoid. */ +# define memset(s, better_be_zero, n) \ + ((void) ((better_be_zero) == 0 ? (bzero((s), (n)), 0) : (abort(), 0))) +#endif /* Not ANSI_STRING. */ + +#if !defined HAVE_STRCOLL && !defined _LIBC +# define strcoll strcmp +#endif + +#if !defined HAVE_MEMPCPY && __GLIBC__ - 0 == 2 && __GLIBC_MINOR__ >= 1 +# define HAVE_MEMPCPY 1 +# undef mempcpy +# define mempcpy(Dest, Src, Len) __mempcpy (Dest, Src, Len) +#endif + +#ifndef __GNU_LIBRARY__ +# ifdef __GNUC__ +__inline +# endif +# ifndef __SASC +# ifdef WINDOWS32 +static void * +# else +static char * +# endif +my_realloc (p, n) + char *p; + unsigned int n; +{ + /* These casts are the for sake of the broken Ultrix compiler, + which warns of illegal pointer combinations otherwise. */ + if (p == NULL) + return (char *) malloc (n); + return (char *) realloc (p, n); +} +# define realloc my_realloc +# endif /* __SASC */ +#endif /* __GNU_LIBRARY__ */ + + +#if !defined __alloca && !defined __GNU_LIBRARY__ + +# ifdef __GNUC__ +# undef alloca +# define alloca(n) __builtin_alloca (n) +# else /* Not GCC. */ +# ifdef HAVE_ALLOCA_H +# include +# else /* Not HAVE_ALLOCA_H. */ +# ifndef _AIX +# ifdef WINDOWS32 +# include +# else +extern char *alloca (); +# endif /* WINDOWS32 */ +# endif /* Not _AIX. */ +# endif /* sparc or HAVE_ALLOCA_H. */ +# endif /* GCC. */ + +# define __alloca alloca + +#endif + +#ifndef __GNU_LIBRARY__ +# define __stat stat +# ifdef STAT_MACROS_BROKEN +# undef S_ISDIR +# endif +# ifndef S_ISDIR +# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +# endif +#endif + +#ifdef _LIBC +# undef strdup +# define strdup(str) __strdup (str) +# define sysconf(id) __sysconf (id) +# define closedir(dir) __closedir (dir) +# define opendir(name) __opendir (name) +# define readdir(str) __readdir (str) +# define getpwnam_r(name, bufp, buf, len, res) \ + __getpwnam_r (name, bufp, buf, len, res) +# ifndef __stat +# define __stat(fname, buf) __xstat (_STAT_VER, fname, buf) +# endif +#endif + +#if !(defined STDC_HEADERS || defined __GNU_LIBRARY__) +# undef size_t +# define size_t unsigned int +#endif + +/* Some system header files erroneously define these. + We want our own definitions from to take precedence. */ +#ifndef __GNU_LIBRARY__ +# undef FNM_PATHNAME +# undef FNM_NOESCAPE +# undef FNM_PERIOD +#endif +#include + +/* Some system header files erroneously define these. + We want our own definitions from to take precedence. */ +#ifndef __GNU_LIBRARY__ +# undef GLOB_ERR +# undef GLOB_MARK +# undef GLOB_NOSORT +# undef GLOB_DOOFFS +# undef GLOB_NOCHECK +# undef GLOB_APPEND +# undef GLOB_NOESCAPE +# undef GLOB_PERIOD +#endif +#include + +#ifdef HAVE_GETLOGIN_R +extern int getlogin_r __P ((char *, size_t)); +#else +extern char *getlogin __P ((void)); +#endif + +static +#if __GNUC__ - 0 >= 2 +inline +#endif +const char *next_brace_sub __P ((const char *begin)); +static int glob_in_dir __P ((const char *pattern, const char *directory, + int flags, + int (*errfunc) (const char *, int), + glob_t *pglob)); +static int prefix_array __P ((const char *prefix, char **array, size_t n)); +static int collated_compare __P ((const __ptr_t, const __ptr_t)); + +#ifdef VMS +/* these compilers like prototypes */ +#if !defined _LIBC || !defined NO_GLOB_PATTERN_P +int __glob_pattern_p (const char *pattern, int quote); +#endif +#endif + +/* Find the end of the sub-pattern in a brace expression. We define + this as an inline function if the compiler permits. */ +static +#if __GNUC__ - 0 >= 2 +inline +#endif +const char * +next_brace_sub (begin) + const char *begin; +{ + unsigned int depth = 0; + const char *cp = begin; + + while (1) + { + if (depth == 0) + { + if (*cp != ',' && *cp != '}' && *cp != '\0') + { + if (*cp == '{') + ++depth; + ++cp; + continue; + } + } + else + { + while (*cp != '\0' && (*cp != '}' || depth > 0)) + { + if (*cp == '}') + --depth; + ++cp; + } + if (*cp == '\0') + /* An incorrectly terminated brace expression. */ + return NULL; + + continue; + } + break; + } + + return cp; +} + +/* Do glob searching for PATTERN, placing results in PGLOB. + The bits defined above may be set in FLAGS. + If a directory cannot be opened or read and ERRFUNC is not nil, + it is called with the pathname that caused the error, and the + `errno' value from the failing call; if it returns non-zero + `glob' returns GLOB_ABORTED; if it returns zero, the error is ignored. + If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. + Otherwise, `glob' returns zero. */ +int +glob (pattern, flags, errfunc, pglob) + const char *pattern; + int flags; + int (*errfunc) __P ((const char *, int)); + glob_t *pglob; +{ + const char *filename; + const char *dirname; + size_t dirlen; + int status; + int oldcount; + + if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) + { + __set_errno (EINVAL); + return -1; + } + + if (flags & GLOB_BRACE) + { + const char *begin = strchr (pattern, '{'); + if (begin != NULL) + { + /* Allocate working buffer large enough for our work. Note that + we have at least an opening and closing brace. */ + int firstc; + char *alt_start; + const char *p; + const char *next; + const char *rest; + size_t rest_len; +#ifdef __GNUC__ + char onealt[strlen (pattern) - 1]; +#else + char *onealt = (char *) malloc (strlen (pattern) - 1); + if (onealt == NULL) + { + if (!(flags & GLOB_APPEND)) + globfree (pglob); + return GLOB_NOSPACE; + } +#endif + + /* We know the prefix for all sub-patterns. */ +#ifdef HAVE_MEMPCPY + alt_start = mempcpy (onealt, pattern, begin - pattern); +#else + memcpy (onealt, pattern, begin - pattern); + alt_start = &onealt[begin - pattern]; +#endif + + /* Find the first sub-pattern and at the same time find the + rest after the closing brace. */ + next = next_brace_sub (begin + 1); + if (next == NULL) + { + /* It is an illegal expression. */ +#ifndef __GNUC__ + free (onealt); +#endif + return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob); + } + + /* Now find the end of the whole brace expression. */ + rest = next; + while (*rest != '}') + { + rest = next_brace_sub (rest + 1); + if (rest == NULL) + { + /* It is an illegal expression. */ +#ifndef __GNUC__ + free (onealt); +#endif + return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob); + } + } + /* Please note that we now can be sure the brace expression + is well-formed. */ + rest_len = strlen (++rest) + 1; + + /* We have a brace expression. BEGIN points to the opening {, + NEXT points past the terminator of the first element, and END + points past the final }. We will accumulate result names from + recursive runs for each brace alternative in the buffer using + GLOB_APPEND. */ + + if (!(flags & GLOB_APPEND)) + { + /* This call is to set a new vector, so clear out the + vector so we can append to it. */ + pglob->gl_pathc = 0; + pglob->gl_pathv = NULL; + } + firstc = pglob->gl_pathc; + + p = begin + 1; + while (1) + { + int result; + + /* Construct the new glob expression. */ +#ifdef HAVE_MEMPCPY + mempcpy (mempcpy (alt_start, p, next - p), rest, rest_len); +#else + memcpy (alt_start, p, next - p); + memcpy (&alt_start[next - p], rest, rest_len); +#endif + + result = glob (onealt, + ((flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC)) + | GLOB_APPEND), errfunc, pglob); + + /* If we got an error, return it. */ + if (result && result != GLOB_NOMATCH) + { +#ifndef __GNUC__ + free (onealt); +#endif + if (!(flags & GLOB_APPEND)) + globfree (pglob); + return result; + } + + if (*next == '}') + /* We saw the last entry. */ + break; + + p = next + 1; + next = next_brace_sub (p); + assert (next != NULL); + } + +#ifndef __GNUC__ + free (onealt); +#endif + + if (pglob->gl_pathc != firstc) + /* We found some entries. */ + return 0; + else if (!(flags & (GLOB_NOCHECK|GLOB_NOMAGIC))) + return GLOB_NOMATCH; + } + } + + /* Find the filename. */ + filename = strrchr (pattern, '/'); +#if defined __MSDOS__ || defined WINDOWS32 + /* The case of "d:pattern". Since `:' is not allowed in + file names, we can safely assume that wherever it + happens in pattern, it signals the filename part. This + is so we could some day support patterns like "[a-z]:foo". */ + if (filename == NULL) + filename = strchr (pattern, ':'); +#endif /* __MSDOS__ || WINDOWS32 */ + if (filename == NULL) + { + /* This can mean two things: a simple name or "~name". The later + case is nothing but a notation for a directory. */ + if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern[0] == '~') + { + dirname = pattern; + dirlen = strlen (pattern); + + /* Set FILENAME to NULL as a special flag. This is ugly but + other solutions would require much more code. We test for + this special case below. */ + filename = NULL; + } + else + { + filename = pattern; +#ifdef _AMIGA + dirname = ""; +#else + dirname = "."; +#endif + dirlen = 0; + } + } + else if (filename == pattern) + { + /* "/pattern". */ + dirname = "/"; + dirlen = 1; + ++filename; + } + else + { + char *newp; + dirlen = filename - pattern; +#if defined __MSDOS__ || defined WINDOWS32 + if (*filename == ':' + || (filename > pattern + 1 && filename[-1] == ':')) + { + char *drive_spec; + + ++dirlen; + drive_spec = (char *) __alloca (dirlen + 1); +#ifdef HAVE_MEMPCPY + *((char *) mempcpy (drive_spec, pattern, dirlen)) = '\0'; +#else + memcpy (drive_spec, pattern, dirlen); + drive_spec[dirlen] = '\0'; +#endif + /* For now, disallow wildcards in the drive spec, to + prevent infinite recursion in glob. */ + if (__glob_pattern_p (drive_spec, !(flags & GLOB_NOESCAPE))) + return GLOB_NOMATCH; + /* If this is "d:pattern", we need to copy `:' to DIRNAME + as well. If it's "d:/pattern", don't remove the slash + from "d:/", since "d:" and "d:/" are not the same.*/ + } +#endif + newp = (char *) __alloca (dirlen + 1); +#ifdef HAVE_MEMPCPY + *((char *) mempcpy (newp, pattern, dirlen)) = '\0'; +#else + memcpy (newp, pattern, dirlen); + newp[dirlen] = '\0'; +#endif + dirname = newp; + ++filename; + + if (filename[0] == '\0' +#if defined __MSDOS__ || defined WINDOWS32 + && dirname[dirlen - 1] != ':' + && (dirlen < 3 || dirname[dirlen - 2] != ':' + || dirname[dirlen - 1] != '/') +#endif + && dirlen > 1) + /* "pattern/". Expand "pattern", appending slashes. */ + { + int val = glob (dirname, flags | GLOB_MARK, errfunc, pglob); + if (val == 0) + pglob->gl_flags = ((pglob->gl_flags & ~GLOB_MARK) + | (flags & GLOB_MARK)); + return val; + } + } + + if (!(flags & GLOB_APPEND)) + { + pglob->gl_pathc = 0; + pglob->gl_pathv = NULL; + } + + oldcount = pglob->gl_pathc; + +#ifndef VMS + if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && dirname[0] == '~') + { + if (dirname[1] == '\0' || dirname[1] == '/') + { + /* Look up home directory. */ +#ifdef VMS +/* This isn't obvious, RTLs of DECC and VAXC know about "HOME" */ + const char *home_dir = getenv ("SYS$LOGIN"); +#else + const char *home_dir = getenv ("HOME"); +#endif +# ifdef _AMIGA + if (home_dir == NULL || home_dir[0] == '\0') + home_dir = "SYS:"; +# else +# ifdef WINDOWS32 + if (home_dir == NULL || home_dir[0] == '\0') + home_dir = "c:/users/default"; /* poor default */ +# else +# ifdef VMS +/* Again, this isn't obvious, if "HOME" isn't known "SYS$LOGIN" should be set */ + if (home_dir == NULL || home_dir[0] == '\0') + home_dir = "SYS$DISK:[]"; +# else + if (home_dir == NULL || home_dir[0] == '\0') + { + int success; + char *name; +# if defined HAVE_GETLOGIN_R || defined _LIBC + size_t buflen = sysconf (_SC_LOGIN_NAME_MAX) + 1; + + if (buflen == 0) + /* `sysconf' does not support _SC_LOGIN_NAME_MAX. Try + a moderate value. */ + buflen = 20; + name = (char *) __alloca (buflen); + + success = getlogin_r (name, buflen) >= 0; +# else + success = (name = getlogin ()) != NULL; +# endif + if (success) + { + struct passwd *p; +# if defined HAVE_GETPWNAM_R || defined _LIBC + size_t pwbuflen = sysconf (_SC_GETPW_R_SIZE_MAX); + char *pwtmpbuf; + struct passwd pwbuf; + int save = errno; + + if (pwbuflen == -1) + /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. + Try a moderate value. */ + pwbuflen = 1024; + pwtmpbuf = (char *) __alloca (pwbuflen); + + while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p) + != 0) + { + if (errno != ERANGE) + { + p = NULL; + break; + } + pwbuflen *= 2; + pwtmpbuf = (char *) __alloca (pwbuflen); + __set_errno (save); + } +# else + p = getpwnam (name); +# endif + if (p != NULL) + home_dir = p->pw_dir; + } + } + if (home_dir == NULL || home_dir[0] == '\0') + { + if (flags & GLOB_TILDE_CHECK) + return GLOB_NOMATCH; + else + home_dir = "~"; /* No luck. */ + } +# endif /* VMS */ +# endif /* WINDOWS32 */ +# endif + /* Now construct the full directory. */ + if (dirname[1] == '\0') + dirname = home_dir; + else + { + char *newp; + size_t home_len = strlen (home_dir); + newp = (char *) __alloca (home_len + dirlen); +# ifdef HAVE_MEMPCPY + mempcpy (mempcpy (newp, home_dir, home_len), + &dirname[1], dirlen); +# else + memcpy (newp, home_dir, home_len); + memcpy (&newp[home_len], &dirname[1], dirlen); +# endif + dirname = newp; + } + } +# if !defined _AMIGA && !defined WINDOWS32 && !defined VMS + else + { + char *end_name = strchr (dirname, '/'); + const char *user_name; + const char *home_dir; + + if (end_name == NULL) + user_name = dirname + 1; + else + { + char *newp; + newp = (char *) __alloca (end_name - dirname); +# ifdef HAVE_MEMPCPY + *((char *) mempcpy (newp, dirname + 1, end_name - dirname)) + = '\0'; +# else + memcpy (newp, dirname + 1, end_name - dirname); + newp[end_name - dirname - 1] = '\0'; +# endif + user_name = newp; + } + + /* Look up specific user's home directory. */ + { + struct passwd *p; +# if defined HAVE_GETPWNAM_R || defined _LIBC + size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX); + char *pwtmpbuf; + struct passwd pwbuf; + int save = errno; + + if (buflen == -1) + /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a + moderate value. */ + buflen = 1024; + pwtmpbuf = (char *) __alloca (buflen); + + while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0) + { + if (errno != ERANGE) + { + p = NULL; + break; + } + buflen *= 2; + pwtmpbuf = __alloca (buflen); + __set_errno (save); + } +# else + p = getpwnam (user_name); +# endif + if (p != NULL) + home_dir = p->pw_dir; + else + home_dir = NULL; + } + /* If we found a home directory use this. */ + if (home_dir != NULL) + { + char *newp; + size_t home_len = strlen (home_dir); + size_t rest_len = end_name == NULL ? 0 : strlen (end_name); + newp = (char *) __alloca (home_len + rest_len + 1); +# ifdef HAVE_MEMPCPY + *((char *) mempcpy (mempcpy (newp, home_dir, home_len), + end_name, rest_len)) = '\0'; +# else + memcpy (newp, home_dir, home_len); + memcpy (&newp[home_len], end_name, rest_len); + newp[home_len + rest_len] = '\0'; +# endif + dirname = newp; + } + else + if (flags & GLOB_TILDE_CHECK) + /* We have to regard it as an error if we cannot find the + home directory. */ + return GLOB_NOMATCH; + } +# endif /* Not Amiga && not WINDOWS32 && not VMS. */ + } +#endif /* Not VMS. */ + + /* Now test whether we looked for "~" or "~NAME". In this case we + can give the answer now. */ + if (filename == NULL) + { + struct stat st; + + /* Return the directory if we don't check for error or if it exists. */ + if ((flags & GLOB_NOCHECK) + || (((flags & GLOB_ALTDIRFUNC) + ? (*pglob->gl_stat) (dirname, &st) + : __stat (dirname, &st)) == 0 + && S_ISDIR (st.st_mode))) + { + pglob->gl_pathv + = (char **) realloc (pglob->gl_pathv, + (pglob->gl_pathc + + ((flags & GLOB_DOOFFS) ? + pglob->gl_offs : 0) + + 1 + 1) * + sizeof (char *)); + if (pglob->gl_pathv == NULL) + return GLOB_NOSPACE; + + if (flags & GLOB_DOOFFS) + while (pglob->gl_pathc < pglob->gl_offs) + pglob->gl_pathv[pglob->gl_pathc++] = NULL; + +#if defined HAVE_STRDUP || defined _LIBC + pglob->gl_pathv[pglob->gl_pathc] = strdup (dirname); +#else + { + size_t len = strlen (dirname) + 1; + char *dircopy = malloc (len); + if (dircopy != NULL) + pglob->gl_pathv[pglob->gl_pathc] = memcpy (dircopy, dirname, + len); + } +#endif + if (pglob->gl_pathv[pglob->gl_pathc] == NULL) + { + free (pglob->gl_pathv); + return GLOB_NOSPACE; + } + pglob->gl_pathv[++pglob->gl_pathc] = NULL; + pglob->gl_flags = flags; + + return 0; + } + + /* Not found. */ + return GLOB_NOMATCH; + } + + if (__glob_pattern_p (dirname, !(flags & GLOB_NOESCAPE))) + { + /* The directory name contains metacharacters, so we + have to glob for the directory, and then glob for + the pattern in each directory found. */ + glob_t dirs; + register int i; + + status = glob (dirname, + ((flags & (GLOB_ERR | GLOB_NOCHECK | GLOB_NOESCAPE)) + | GLOB_NOSORT | GLOB_ONLYDIR), + errfunc, &dirs); + if (status != 0) + return status; + + /* We have successfully globbed the preceding directory name. + For each name we found, call glob_in_dir on it and FILENAME, + appending the results to PGLOB. */ + for (i = 0; i < dirs.gl_pathc; ++i) + { + int old_pathc; + +#ifdef SHELL + { + /* Make globbing interruptible in the bash shell. */ + extern int interrupt_state; + + if (interrupt_state) + { + globfree (&dirs); + globfree (&files); + return GLOB_ABORTED; + } + } +#endif /* SHELL. */ + + old_pathc = pglob->gl_pathc; + status = glob_in_dir (filename, dirs.gl_pathv[i], + ((flags | GLOB_APPEND) + & ~(GLOB_NOCHECK | GLOB_ERR)), + errfunc, pglob); + if (status == GLOB_NOMATCH) + /* No matches in this directory. Try the next. */ + continue; + + if (status != 0) + { + globfree (&dirs); + globfree (pglob); + return status; + } + + /* Stick the directory on the front of each name. */ + if (prefix_array (dirs.gl_pathv[i], + &pglob->gl_pathv[old_pathc], + pglob->gl_pathc - old_pathc)) + { + globfree (&dirs); + globfree (pglob); + return GLOB_NOSPACE; + } + } + + flags |= GLOB_MAGCHAR; + + /* We have ignored the GLOB_NOCHECK flag in the `glob_in_dir' calls. + But if we have not found any matching entry and thie GLOB_NOCHECK + flag was set we must return the list consisting of the disrectory + names followed by the filename. */ + if (pglob->gl_pathc == oldcount) + { + /* No matches. */ + if (flags & GLOB_NOCHECK) + { + size_t filename_len = strlen (filename) + 1; + char **new_pathv; + struct stat st; + + /* This is an pessimistic guess about the size. */ + pglob->gl_pathv + = (char **) realloc (pglob->gl_pathv, + (pglob->gl_pathc + + ((flags & GLOB_DOOFFS) ? + pglob->gl_offs : 0) + + dirs.gl_pathc + 1) * + sizeof (char *)); + if (pglob->gl_pathv == NULL) + { + globfree (&dirs); + return GLOB_NOSPACE; + } + + if (flags & GLOB_DOOFFS) + while (pglob->gl_pathc < pglob->gl_offs) + pglob->gl_pathv[pglob->gl_pathc++] = NULL; + + for (i = 0; i < dirs.gl_pathc; ++i) + { + const char *dir = dirs.gl_pathv[i]; + size_t dir_len = strlen (dir); + + /* First check whether this really is a directory. */ + if (((flags & GLOB_ALTDIRFUNC) + ? (*pglob->gl_stat) (dir, &st) : __stat (dir, &st)) != 0 + || !S_ISDIR (st.st_mode)) + /* No directory, ignore this entry. */ + continue; + + pglob->gl_pathv[pglob->gl_pathc] = malloc (dir_len + 1 + + filename_len); + if (pglob->gl_pathv[pglob->gl_pathc] == NULL) + { + globfree (&dirs); + globfree (pglob); + return GLOB_NOSPACE; + } + +#ifdef HAVE_MEMPCPY + mempcpy (mempcpy (mempcpy (pglob->gl_pathv[pglob->gl_pathc], + dir, dir_len), + "/", 1), + filename, filename_len); +#else + memcpy (pglob->gl_pathv[pglob->gl_pathc], dir, dir_len); + pglob->gl_pathv[pglob->gl_pathc][dir_len] = '/'; + memcpy (&pglob->gl_pathv[pglob->gl_pathc][dir_len + 1], + filename, filename_len); +#endif + ++pglob->gl_pathc; + } + + pglob->gl_pathv[pglob->gl_pathc] = NULL; + pglob->gl_flags = flags; + + /* Now we know how large the gl_pathv vector must be. */ + new_pathv = (char **) realloc (pglob->gl_pathv, + ((pglob->gl_pathc + 1) + * sizeof (char *))); + if (new_pathv != NULL) + pglob->gl_pathv = new_pathv; + } + else + return GLOB_NOMATCH; + } + + globfree (&dirs); + } + else + { + status = glob_in_dir (filename, dirname, flags, errfunc, pglob); + if (status != 0) + return status; + + if (dirlen > 0) + { + /* Stick the directory on the front of each name. */ + int ignore = oldcount; + + if ((flags & GLOB_DOOFFS) && ignore < pglob->gl_offs) + ignore = pglob->gl_offs; + + if (prefix_array (dirname, + &pglob->gl_pathv[ignore], + pglob->gl_pathc - ignore)) + { + globfree (pglob); + return GLOB_NOSPACE; + } + } + } + + if (flags & GLOB_MARK) + { + /* Append slashes to directory names. */ + int i; + struct stat st; + for (i = oldcount; i < pglob->gl_pathc; ++i) + if (((flags & GLOB_ALTDIRFUNC) + ? (*pglob->gl_stat) (pglob->gl_pathv[i], &st) + : __stat (pglob->gl_pathv[i], &st)) == 0 + && S_ISDIR (st.st_mode)) + { + size_t len = strlen (pglob->gl_pathv[i]) + 2; + char *new = realloc (pglob->gl_pathv[i], len); + if (new == NULL) + { + globfree (pglob); + return GLOB_NOSPACE; + } + strcpy (&new[len - 2], "/"); + pglob->gl_pathv[i] = new; + } + } + + if (!(flags & GLOB_NOSORT)) + { + /* Sort the vector. */ + int non_sort = oldcount; + + if ((flags & GLOB_DOOFFS) && pglob->gl_offs > oldcount) + non_sort = pglob->gl_offs; + + qsort ((__ptr_t) &pglob->gl_pathv[non_sort], + pglob->gl_pathc - non_sort, + sizeof (char *), collated_compare); + } + + return 0; +} + + +/* Free storage allocated in PGLOB by a previous `glob' call. */ +void +globfree (pglob) + register glob_t *pglob; +{ + if (pglob->gl_pathv != NULL) + { + register int i; + for (i = 0; i < pglob->gl_pathc; ++i) + if (pglob->gl_pathv[i] != NULL) + free ((__ptr_t) pglob->gl_pathv[i]); + free ((__ptr_t) pglob->gl_pathv); + } +} + + +/* Do a collated comparison of A and B. */ +static int +collated_compare (a, b) + const __ptr_t a; + const __ptr_t b; +{ + const char *const s1 = *(const char *const * const) a; + const char *const s2 = *(const char *const * const) b; + + if (s1 == s2) + return 0; + if (s1 == NULL) + return 1; + if (s2 == NULL) + return -1; + return strcoll (s1, s2); +} + + +/* Prepend DIRNAME to each of N members of ARRAY, replacing ARRAY's + elements in place. Return nonzero if out of memory, zero if successful. + A slash is inserted between DIRNAME and each elt of ARRAY, + unless DIRNAME is just "/". Each old element of ARRAY is freed. */ +static int +prefix_array (dirname, array, n) + const char *dirname; + char **array; + size_t n; +{ + register size_t i; + size_t dirlen = strlen (dirname); +#if defined __MSDOS__ || defined WINDOWS32 + int sep_char = '/'; +# define DIRSEP_CHAR sep_char +#else +# define DIRSEP_CHAR '/' +#endif + + if (dirlen == 1 && dirname[0] == '/') + /* DIRNAME is just "/", so normal prepending would get us "//foo". + We want "/foo" instead, so don't prepend any chars from DIRNAME. */ + dirlen = 0; +#if defined __MSDOS__ || defined WINDOWS32 + else if (dirlen > 1) + { + if (dirname[dirlen - 1] == '/' && dirname[dirlen - 2] == ':') + /* DIRNAME is "d:/". Don't prepend the slash from DIRNAME. */ + --dirlen; + else if (dirname[dirlen - 1] == ':') + { + /* DIRNAME is "d:". Use `:' instead of `/'. */ + --dirlen; + sep_char = ':'; + } + } +#endif + + for (i = 0; i < n; ++i) + { + size_t eltlen = strlen (array[i]) + 1; + char *new = (char *) malloc (dirlen + 1 + eltlen); + if (new == NULL) + { + while (i > 0) + free ((__ptr_t) array[--i]); + return 1; + } + +#ifdef HAVE_MEMPCPY + { + char *endp = (char *) mempcpy (new, dirname, dirlen); + *endp++ = DIRSEP_CHAR; + mempcpy (endp, array[i], eltlen); + } +#else + memcpy (new, dirname, dirlen); + new[dirlen] = DIRSEP_CHAR; + memcpy (&new[dirlen + 1], array[i], eltlen); +#endif + free ((__ptr_t) array[i]); + array[i] = new; + } + + return 0; +} + + +/* We must not compile this function twice. */ +#if !defined _LIBC || !defined NO_GLOB_PATTERN_P +/* Return nonzero if PATTERN contains any metacharacters. + Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ +int +__glob_pattern_p (pattern, quote) + const char *pattern; + int quote; +{ + register const char *p; + int open = 0; + + for (p = pattern; *p != '\0'; ++p) + switch (*p) + { + case '?': + case '*': + return 1; + + case '\\': + if (quote && p[1] != '\0') + ++p; + break; + + case '[': + open = 1; + break; + + case ']': + if (open) + return 1; + break; + } + + return 0; +} +# ifdef _LIBC +weak_alias (__glob_pattern_p, glob_pattern_p) +# endif +#endif + + +/* Like `glob', but PATTERN is a final pathname component, + and matches are searched for in DIRECTORY. + The GLOB_NOSORT bit in FLAGS is ignored. No sorting is ever done. + The GLOB_APPEND flag is assumed to be set (always appends). */ +static int +glob_in_dir (pattern, directory, flags, errfunc, pglob) + const char *pattern; + const char *directory; + int flags; + int (*errfunc) __P ((const char *, int)); + glob_t *pglob; +{ + __ptr_t stream = NULL; + + struct globlink + { + struct globlink *next; + char *name; + }; + struct globlink *names = NULL; + size_t nfound; + int meta; + int save; + +#ifdef VMS + if (*directory == 0) + directory = "[]"; +#endif + meta = __glob_pattern_p (pattern, !(flags & GLOB_NOESCAPE)); + if (meta == 0) + { + if (flags & (GLOB_NOCHECK|GLOB_NOMAGIC)) + /* We need not do any tests. The PATTERN contains no meta + characters and we must not return an error therefore the + result will always contain exactly one name. */ + flags |= GLOB_NOCHECK; + else + { + /* Since we use the normal file functions we can also use stat() + to verify the file is there. */ + struct stat st; + size_t patlen = strlen (pattern); + size_t dirlen = strlen (directory); + char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1); + +# ifdef HAVE_MEMPCPY + mempcpy (mempcpy (mempcpy (fullname, directory, dirlen), + "/", 1), + pattern, patlen + 1); +# else + memcpy (fullname, directory, dirlen); + fullname[dirlen] = '/'; + memcpy (&fullname[dirlen + 1], pattern, patlen + 1); +# endif + if (((flags & GLOB_ALTDIRFUNC) + ? (*pglob->gl_stat) (fullname, &st) + : __stat (fullname, &st)) == 0) + /* We found this file to be existing. Now tell the rest + of the function to copy this name into the result. */ + flags |= GLOB_NOCHECK; + } + + nfound = 0; + } + else + { + if (pattern[0] == '\0') + { + /* This is a special case for matching directories like in + "*a/". */ + names = (struct globlink *) __alloca (sizeof (struct globlink)); + names->name = (char *) malloc (1); + if (names->name == NULL) + goto memory_error; + names->name[0] = '\0'; + names->next = NULL; + nfound = 1; + meta = 0; + } + else + { + stream = ((flags & GLOB_ALTDIRFUNC) + ? (*pglob->gl_opendir) (directory) + : (__ptr_t) opendir (directory)); + if (stream == NULL) + { + if (errno != ENOTDIR + && ((errfunc != NULL && (*errfunc) (directory, errno)) + || (flags & GLOB_ERR))) + return GLOB_ABORTED; + nfound = 0; + meta = 0; + } + else + { + int fnm_flags = ((!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0) + | ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0) +#if defined _AMIGA || defined VMS + | FNM_CASEFOLD +#endif + ); + nfound = 0; + flags |= GLOB_MAGCHAR; + + while (1) + { + const char *name; + size_t len; + struct dirent *d = ((flags & GLOB_ALTDIRFUNC) + ? (*pglob->gl_readdir) (stream) + : readdir ((DIR *) stream)); + if (d == NULL) + break; + if (! REAL_DIR_ENTRY (d)) + continue; + +#ifdef HAVE_D_TYPE + /* If we shall match only directories use the information + provided by the dirent call if possible. */ + if ((flags & GLOB_ONLYDIR) + && d->d_type != DT_UNKNOWN && d->d_type != DT_DIR) + continue; +#endif + + name = d->d_name; + + if (fnmatch (pattern, name, fnm_flags) == 0) + { + struct globlink *new = (struct globlink *) + __alloca (sizeof (struct globlink)); + len = NAMLEN (d); + new->name = (char *) malloc (len + 1); + if (new->name == NULL) + goto memory_error; +#ifdef HAVE_MEMPCPY + *((char *) mempcpy ((__ptr_t) new->name, name, len)) + = '\0'; +#else + memcpy ((__ptr_t) new->name, name, len); + new->name[len] = '\0'; +#endif + new->next = names; + names = new; + ++nfound; + } + } + } + } + } + + if (nfound == 0 && (flags & GLOB_NOCHECK)) + { + size_t len = strlen (pattern); + nfound = 1; + names = (struct globlink *) __alloca (sizeof (struct globlink)); + names->next = NULL; + names->name = (char *) malloc (len + 1); + if (names->name == NULL) + goto memory_error; +#ifdef HAVE_MEMPCPY + *((char *) mempcpy (names->name, pattern, len)) = '\0'; +#else + memcpy (names->name, pattern, len); + names->name[len] = '\0'; +#endif + } + + if (nfound != 0) + { + pglob->gl_pathv + = (char **) realloc (pglob->gl_pathv, + (pglob->gl_pathc + + ((flags & GLOB_DOOFFS) ? pglob->gl_offs : 0) + + nfound + 1) * + sizeof (char *)); + if (pglob->gl_pathv == NULL) + goto memory_error; + + if (flags & GLOB_DOOFFS) + while (pglob->gl_pathc < pglob->gl_offs) + pglob->gl_pathv[pglob->gl_pathc++] = NULL; + + for (; names != NULL; names = names->next) + pglob->gl_pathv[pglob->gl_pathc++] = names->name; + pglob->gl_pathv[pglob->gl_pathc] = NULL; + + pglob->gl_flags = flags; + } + + save = errno; + if (stream != NULL) + { + if (flags & GLOB_ALTDIRFUNC) + (*pglob->gl_closedir) (stream); + else + closedir ((DIR *) stream); + } + __set_errno (save); + + return nfound == 0 ? GLOB_NOMATCH : 0; + + memory_error: + { + int save = errno; + if (flags & GLOB_ALTDIRFUNC) + (*pglob->gl_closedir) (stream); + else + closedir ((DIR *) stream); + __set_errno (save); + } + while (names != NULL) + { + if (names->name != NULL) + free ((__ptr_t) names->name); + names = names->next; + } + return GLOB_NOSPACE; +} + +#endif /* Not ELIDE_CODE. */ diff --git a/src/mkutil/make-3.80/glob/glob.h b/src/mkutil/make-3.80/glob/glob.h new file mode 100644 index 00000000..9f735fe8 --- /dev/null +++ b/src/mkutil/make-3.80/glob/glob.h @@ -0,0 +1,205 @@ +/* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _GLOB_H +#define _GLOB_H 1 + +#ifdef __cplusplus +extern "C" { +#endif + +#undef __ptr_t +#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32 +# if !defined __GLIBC__ || !defined __P +# undef __P +# undef __PMT +# define __P(protos) protos +# define __PMT(protos) protos +# if !defined __GNUC__ || __GNUC__ < 2 +# undef __const +# define __const const +# endif +# endif +# define __ptr_t void * +#else /* Not C++ or ANSI C. */ +# undef __P +# undef __PMT +# define __P(protos) () +# define __PMT(protos) () +# undef __const +# define __const +# define __ptr_t char * +#endif /* C++ or ANSI C. */ + +/* We need `size_t' for the following definitions. */ +#ifndef __size_t +# if defined __GNUC__ && __GNUC__ >= 2 +typedef __SIZE_TYPE__ __size_t; +# else +/* This is a guess. */ +/*hb + * Conflicts with DECCs aready defined type __size_t. + * Defining an own type with a name beginning with '__' is no good. + * Anyway if DECC is used and __SIZE_T is defined then __size_t is + * already defined (and I hope it's exactly the one we need here). + */ +#if !(defined __DECC && defined __SIZE_T) +typedef unsigned long int __size_t; +#endif +# endif +#else +/* The GNU CC stddef.h version defines __size_t as empty. We need a real + definition. */ +# undef __size_t +# define __size_t size_t +#endif + +/* Bits set in the FLAGS argument to `glob'. */ +#define GLOB_ERR (1 << 0)/* Return on read errors. */ +#define GLOB_MARK (1 << 1)/* Append a slash to each name. */ +#define GLOB_NOSORT (1 << 2)/* Don't sort the names. */ +#define GLOB_DOOFFS (1 << 3)/* Insert PGLOB->gl_offs NULLs. */ +#define GLOB_NOCHECK (1 << 4)/* If nothing matches, return the pattern. */ +#define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */ +#define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */ +#define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */ + +#if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE \ + || defined _GNU_SOURCE) +# define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ +# define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */ +# define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */ +# define GLOB_NOMAGIC (1 << 11)/* If no magic chars, return the pattern. */ +# define GLOB_TILDE (1 << 12)/* Expand ~user and ~ to home directories. */ +# define GLOB_ONLYDIR (1 << 13)/* Match only directories. */ +# define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an error + if the user name is not available. */ +# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ + GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \ + GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \ + GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK) +#else +# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ + GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \ + GLOB_PERIOD) +#endif + +/* Error returns from `glob'. */ +#define GLOB_NOSPACE 1 /* Ran out of memory. */ +#define GLOB_ABORTED 2 /* Read error. */ +#define GLOB_NOMATCH 3 /* No matches found. */ +#define GLOB_NOSYS 4 /* Not implemented. */ +#ifdef _GNU_SOURCE +/* Previous versions of this file defined GLOB_ABEND instead of + GLOB_ABORTED. Provide a compatibility definition here. */ +# define GLOB_ABEND GLOB_ABORTED +#endif + +/* Structure describing a globbing run. */ +#if !defined _AMIGA && !defined VMS /* Buggy compiler. */ +struct stat; +#endif +typedef struct + { + __size_t gl_pathc; /* Count of paths matched by the pattern. */ + char **gl_pathv; /* List of matched pathnames. */ + __size_t gl_offs; /* Slots to reserve in `gl_pathv'. */ + int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */ + + /* If the GLOB_ALTDIRFUNC flag is set, the following functions + are used instead of the normal file access functions. */ + void (*gl_closedir) __PMT ((void *)); + struct dirent *(*gl_readdir) __PMT ((void *)); + __ptr_t (*gl_opendir) __PMT ((__const char *)); + int (*gl_lstat) __PMT ((__const char *, struct stat *)); +#if defined(VMS) && defined(__DECC) && !defined(_POSIX_C_SOURCE) + int (*gl_stat) __PMT ((__const char *, struct stat *, ...)); +#else + int (*gl_stat) __PMT ((__const char *, struct stat *)); +#endif + } glob_t; + +#ifdef _LARGEFILE64_SOURCE +struct stat64; +typedef struct + { + __size_t gl_pathc; + char **gl_pathv; + __size_t gl_offs; + int gl_flags; + + /* If the GLOB_ALTDIRFUNC flag is set, the following functions + are used instead of the normal file access functions. */ + void (*gl_closedir) __PMT ((void *)); + struct dirent64 *(*gl_readdir) __PMT ((void *)); + __ptr_t (*gl_opendir) __PMT ((__const char *)); + int (*gl_lstat) __PMT ((__const char *, struct stat64 *)); + int (*gl_stat) __PMT ((__const char *, struct stat64 *)); + } glob64_t; +#endif + +#if _FILE_OFFSET_BITS == 64 && __GNUC__ < 2 +# define glob glob64 +# define globfree globfree64 +#else +# ifdef _LARGEFILE64_SOURCE +extern int glob64 __P ((__const char *__pattern, int __flags, + int (*__errfunc) (__const char *, int), + glob64_t *__pglob)); + +extern void globfree64 __P ((glob64_t *__pglob)); +# endif +#endif + +/* Do glob searching for PATTERN, placing results in PGLOB. + The bits defined above may be set in FLAGS. + If a directory cannot be opened or read and ERRFUNC is not nil, + it is called with the pathname that caused the error, and the + `errno' value from the failing call; if it returns non-zero + `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. + If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. + Otherwise, `glob' returns zero. */ +#if _FILE_OFFSET_BITS != 64 || __GNUC__ < 2 +extern int glob __P ((__const char *__pattern, int __flags, + int (*__errfunc) (__const char *, int), + glob_t *__pglob)); + +/* Free storage allocated in PGLOB by a previous `glob' call. */ +extern void globfree __P ((glob_t *__pglob)); +#else +extern int glob __P ((__const char *__pattern, int __flags, + int (*__errfunc) (__const char *, int), + glob_t *__pglob)) __asm__ ("glob64"); + +extern void globfree __P ((glob_t *__pglob)) __asm__ ("globfree64"); +#endif + + +#ifdef _GNU_SOURCE +/* Return nonzero if PATTERN contains any metacharacters. + Metacharacters can be quoted with backslashes if QUOTE is nonzero. + + This function is not part of the interface specified by POSIX.2 + but several programs want to use it. */ +extern int glob_pattern_p __P ((__const char *__pattern, int __quote)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* glob.h */ diff --git a/src/mkutil/make-3.80/hash.c b/src/mkutil/make-3.80/hash.c new file mode 100644 index 00000000..9083b60a --- /dev/null +++ b/src/mkutil/make-3.80/hash.c @@ -0,0 +1,369 @@ +/* hash.c -- hash table maintenance + Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc. + Written by Greg McGary + + 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, 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 "make.h" +#include "hash.h" + +#define CALLOC(t, n) ((t *) calloc (sizeof (t), (n))) +#define MALLOC(t, n) ((t *) xmalloc (sizeof (t) * (n))) +#define REALLOC(o, t, n) ((t *) xrealloc ((o), sizeof (t) * (n))) +#define CLONE(o, t, n) ((t *) memcpy (MALLOC (t, (n)), (o), sizeof (t) * (n))) + +static void hash_rehash __P((struct hash_table* ht)); +static unsigned long round_up_2 __P((unsigned long rough)); + +/* Implement double hashing with open addressing. The table size is + always a power of two. The secondary (`increment') hash function + is forced to return an odd-value, in order to be relatively prime + to the table size. This guarantees that the increment can + potentially hit every slot in the table during collision + resolution. */ + +void *hash_deleted_item = &hash_deleted_item; + +/* Force the table size to be a power of two, possibly rounding up the + given size. */ + +void +hash_init (ht, size, hash_1, hash_2, hash_cmp) + struct hash_table* ht; + unsigned long size; + hash_func_t hash_1; + hash_func_t hash_2; + hash_cmp_func_t hash_cmp; +{ + ht->ht_size = round_up_2 (size); + ht->ht_empty_slots = ht->ht_size; + ht->ht_vec = (void**) CALLOC (struct token *, ht->ht_size); + if (ht->ht_vec == 0) + { + fprintf (stderr, _("can't allocate %ld bytes for hash table: memory exhausted"), + ht->ht_size * sizeof(struct token *)); + exit (1); + } + + ht->ht_capacity = ht->ht_size - (ht->ht_size / 16); /* 93.75% loading factor */ + ht->ht_fill = 0; + ht->ht_collisions = 0; + ht->ht_lookups = 0; + ht->ht_rehashes = 0; + ht->ht_hash_1 = hash_1; + ht->ht_hash_2 = hash_2; + ht->ht_compare = hash_cmp; +} + +/* Load an array of items into `ht'. */ + +void +hash_load (ht, item_table, cardinality, size) + struct hash_table* ht; + void *item_table; + unsigned long cardinality; + unsigned long size; +{ + char *items = (char *) item_table; + while (cardinality--) + { + hash_insert (ht, items); + items += size; + } +} + +/* Returns the address of the table slot matching `key'. If `key' is + not found, return the address of an empty slot suitable for + inserting `key'. The caller is responsible for incrementing + ht_fill on insertion. */ + +void ** +hash_find_slot (ht, key) + struct hash_table* ht; + void const *key; +{ + void **slot; + void **deleted_slot = 0; + unsigned int hash_2 = 0; + unsigned int hash_1 = (*ht->ht_hash_1) (key); + + ht->ht_lookups++; + for (;;) + { + hash_1 &= (ht->ht_size - 1); + slot = &ht->ht_vec[hash_1]; + + if (*slot == 0) + return (deleted_slot ? deleted_slot : slot); + if (*slot == hash_deleted_item) + { + if (deleted_slot == 0) + deleted_slot = slot; + } + else + { + if (key == *slot) + return slot; + if ((*ht->ht_compare) (key, *slot) == 0) + return slot; + ht->ht_collisions++; + } + if (!hash_2) + hash_2 = (*ht->ht_hash_2) (key) | 1; + hash_1 += hash_2; + } +} + +void * +hash_find_item (ht, key) + struct hash_table* ht; + void const *key; +{ + void **slot = hash_find_slot (ht, key); + return ((HASH_VACANT (*slot)) ? 0 : *slot); +} + +void * +hash_insert (ht, item) + struct hash_table* ht; + void *item; +{ + void **slot = hash_find_slot (ht, item); + void *old_item = slot ? *slot : 0; + hash_insert_at (ht, item, slot); + return ((HASH_VACANT (old_item)) ? 0 : old_item); +} + +void * +hash_insert_at (ht, item, slot) + struct hash_table* ht; + void *item; + void const *slot; +{ + void *old_item = *(void **) slot; + if (HASH_VACANT (old_item)) + { + ht->ht_fill++; + if (old_item == 0) + ht->ht_empty_slots--; + old_item = item; + } + *(void const **) slot = item; + if (ht->ht_empty_slots < ht->ht_size - ht->ht_capacity) + { + hash_rehash (ht); + return (void *) hash_find_slot (ht, item); + } + else + return (void *) slot; +} + +void * +hash_delete (ht, item) + struct hash_table* ht; + void const *item; +{ + void **slot = hash_find_slot (ht, item); + return hash_delete_at (ht, slot); +} + +void * +hash_delete_at (ht, slot) + struct hash_table* ht; + void const *slot; +{ + void *item = *(void **) slot; + if (!HASH_VACANT (item)) + { + *(void const **) slot = hash_deleted_item; + ht->ht_fill--; + return item; + } + else + return 0; +} + +void +hash_free_items (ht) + struct hash_table* ht; +{ + void **vec = ht->ht_vec; + void **end = &vec[ht->ht_size]; + for (; vec < end; vec++) + { + void *item = *vec; + if (!HASH_VACANT (item)) + free (item); + *vec = 0; + } + ht->ht_fill = 0; + ht->ht_empty_slots = ht->ht_size; +} + +void +hash_delete_items (ht) + struct hash_table* ht; +{ + void **vec = ht->ht_vec; + void **end = &vec[ht->ht_size]; + for (; vec < end; vec++) + *vec = 0; + ht->ht_fill = 0; + ht->ht_collisions = 0; + ht->ht_lookups = 0; + ht->ht_rehashes = 0; + ht->ht_empty_slots = ht->ht_size; +} + +void +hash_free (ht, free_items) + struct hash_table* ht; + int free_items; +{ + if (free_items) + hash_free_items (ht); + else + { + ht->ht_fill = 0; + ht->ht_empty_slots = ht->ht_size; + } + free (ht->ht_vec); + ht->ht_vec = 0; + ht->ht_capacity = 0; +} + +void +hash_map (ht, map) + struct hash_table *ht; + hash_map_func_t map; +{ + void **slot; + void **end = &ht->ht_vec[ht->ht_size]; + + for (slot = ht->ht_vec; slot < end; slot++) + { + if (!HASH_VACANT (*slot)) + (*map) (*slot); + } +} + +void +hash_map_arg (ht, map, arg) + struct hash_table *ht; + hash_map_arg_func_t map; + void *arg; +{ + void **slot; + void **end = &ht->ht_vec[ht->ht_size]; + + for (slot = ht->ht_vec; slot < end; slot++) + { + if (!HASH_VACANT (*slot)) + (*map) (*slot, arg); + } +} + +/* Double the size of the hash table in the event of overflow... */ + +static void +hash_rehash (ht) + struct hash_table* ht; +{ + unsigned long old_ht_size = ht->ht_size; + void **old_vec = ht->ht_vec; + void **ovp; + + if (ht->ht_fill >= ht->ht_capacity) + { + ht->ht_size *= 2; + ht->ht_capacity = ht->ht_size - (ht->ht_size >> 4); + } + ht->ht_rehashes++; + ht->ht_vec = (void **) CALLOC (struct token *, ht->ht_size); + + for (ovp = old_vec; ovp < &old_vec[old_ht_size]; ovp++) + { + if (! HASH_VACANT (*ovp)) + { + void **slot = hash_find_slot (ht, *ovp); + *slot = *ovp; + } + } + ht->ht_empty_slots = ht->ht_size - ht->ht_fill; + free (old_vec); +} + +void +hash_print_stats (ht, out_FILE) + struct hash_table *ht; + FILE *out_FILE; +{ + /* GKM FIXME: honor NO_FLOAT */ + fprintf (out_FILE, _("Load=%ld/%ld=%.0f%%, "), ht->ht_fill, ht->ht_size, + 100.0 * (double) ht->ht_fill / (double) ht->ht_size); + fprintf (out_FILE, _("Rehash=%d, "), ht->ht_rehashes); + fprintf (out_FILE, _("Collisions=%ld/%ld=%.0f%%"), ht->ht_collisions, ht->ht_lookups, + (ht->ht_lookups + ? (100.0 * (double) ht->ht_collisions / (double) ht->ht_lookups) + : 0)); +} + +/* Dump all items into a NULL-terminated vector. Use the + user-supplied vector, or malloc one. */ + +void ** +hash_dump (ht, vector_0, compare) + struct hash_table *ht; + void **vector_0; + qsort_cmp_t compare; +{ + void **vector; + void **slot; + void **end = &ht->ht_vec[ht->ht_size]; + + if (vector_0 == 0) + vector_0 = MALLOC (void *, ht->ht_fill + 1); + vector = vector_0; + + for (slot = ht->ht_vec; slot < end; slot++) + if (!HASH_VACANT (*slot)) + *vector++ = *slot; + *vector = 0; + + if (compare) + qsort (vector_0, ht->ht_fill, sizeof (void *), compare); + return vector_0; +} + +/* Round a given number up to the nearest power of 2. */ + +static unsigned long +round_up_2 (n) + unsigned long n; +{ + n |= (n >> 1); + n |= (n >> 2); + n |= (n >> 4); + n |= (n >> 8); + n |= (n >> 16); + +#if !defined(HAVE_LIMITS_H) || ULONG_MAX > 4294967295 + /* We only need this on systems where unsigned long is >32 bits. */ + n |= (n >> 32); +#endif + + return n + 1; +} diff --git a/src/mkutil/make-3.80/hash.h b/src/mkutil/make-3.80/hash.h new file mode 100644 index 00000000..405f1dab --- /dev/null +++ b/src/mkutil/make-3.80/hash.h @@ -0,0 +1,233 @@ +/* hash.h -- decls for hash table + Copyright (C) 1995, 1999, 2002 Free Software Foundation, Inc. + Written by Greg McGary + + 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, 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 _hash_h_ +#define _hash_h_ + +#include +#include + +#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32 +# if !defined __GLIBC__ || !defined __P +# undef __P +# define __P(protos) protos +# endif +#else /* Not C++ or ANSI C. */ +# undef __P +# define __P(protos) () +/* We can get away without defining `const' here only because in this file + it is used only inside the prototype for `fnmatch', which is elided in + non-ANSI C where `const' is problematical. */ +#endif /* C++ or ANSI C. */ + +typedef unsigned long (*hash_func_t) __P((void const *key)); +typedef int (*hash_cmp_func_t) __P((void const *x, void const *y)); +typedef void (*hash_map_func_t) __P((void const *item)); +typedef void (*hash_map_arg_func_t) __P((void const *item, void *arg)); + +struct hash_table +{ + void **ht_vec; + unsigned long ht_size; /* total number of slots (power of 2) */ + unsigned long ht_capacity; /* usable slots, limited by loading-factor */ + unsigned long ht_fill; /* items in table */ + unsigned long ht_empty_slots; /* empty slots not including deleted slots */ + unsigned long ht_collisions; /* # of failed calls to comparison function */ + unsigned long ht_lookups; /* # of queries */ + unsigned int ht_rehashes; /* # of times we've expanded table */ + hash_func_t ht_hash_1; /* primary hash function */ + hash_func_t ht_hash_2; /* secondary hash function */ + hash_cmp_func_t ht_compare; /* comparison function */ +}; + +typedef int (*qsort_cmp_t) __P((void const *, void const *)); + +void hash_init __P((struct hash_table *ht, unsigned long size, + hash_func_t hash_1, hash_func_t hash_2, hash_cmp_func_t hash_cmp)); +void hash_load __P((struct hash_table *ht, void *item_table, + unsigned long cardinality, unsigned long size)); +void **hash_find_slot __P((struct hash_table *ht, void const *key)); +void *hash_find_item __P((struct hash_table *ht, void const *key)); +void *hash_insert __P((struct hash_table *ht, void *item)); +void *hash_insert_at __P((struct hash_table *ht, void *item, void const *slot)); +void *hash_delete __P((struct hash_table *ht, void const *item)); +void *hash_delete_at __P((struct hash_table *ht, void const *slot)); +void hash_delete_items __P((struct hash_table *ht)); +void hash_free_items __P((struct hash_table *ht)); +void hash_free __P((struct hash_table *ht, int free_items)); +void hash_map __P((struct hash_table *ht, hash_map_func_t map)); +void hash_map_arg __P((struct hash_table *ht, hash_map_arg_func_t map, void *arg)); +void hash_print_stats __P((struct hash_table *ht, FILE *out_FILE)); +void **hash_dump __P((struct hash_table *ht, void **vector_0, qsort_cmp_t compare)); + +extern void *hash_deleted_item; +#define HASH_VACANT(item) ((item) == 0 || (void *) (item) == hash_deleted_item) + + +/* hash and comparison macros for case-sensitive string keys. */ + +#define STRING_HASH_1(KEY, RESULT) do { \ + unsigned char const *_key_ = (unsigned char const *) (KEY) - 1; \ + while (*++_key_) \ + (RESULT) += (*_key_ << (_key_[1] & 0xf)); \ +} while (0) +#define return_STRING_HASH_1(KEY) do { \ + unsigned long _result_ = 0; \ + STRING_HASH_1 ((KEY), _result_); \ + return _result_; \ +} while (0) + +#define STRING_HASH_2(KEY, RESULT) do { \ + unsigned char const *_key_ = (unsigned char const *) (KEY) - 1; \ + while (*++_key_) \ + (RESULT) += (*_key_ << (_key_[1] & 0x7)); \ +} while (0) +#define return_STRING_HASH_2(KEY) do { \ + unsigned long _result_ = 0; \ + STRING_HASH_2 ((KEY), _result_); \ + return _result_; \ +} while (0) + +#define STRING_COMPARE(X, Y, RESULT) do { \ + RESULT = strcmp ((X), (Y)); \ +} while (0) +#define return_STRING_COMPARE(X, Y) do { \ + return strcmp ((X), (Y)); \ +} while (0) + + +#define STRING_N_HASH_1(KEY, N, RESULT) do { \ + unsigned char const *_key_ = (unsigned char const *) (KEY) - 1; \ + int _n_ = (N); \ + if (_n_) \ + while (--_n_ && *++_key_) \ + (RESULT) += (*_key_ << (_key_[1] & 0xf)); \ + (RESULT) += *++_key_; \ +} while (0) +#define return_STRING_N_HASH_1(KEY, N) do { \ + unsigned long _result_ = 0; \ + STRING_N_HASH_1 ((KEY), (N), _result_); \ + return _result_; \ +} while (0) + +#define STRING_N_HASH_2(KEY, N, RESULT) do { \ + unsigned char const *_key_ = (unsigned char const *) (KEY) - 1; \ + int _n_ = (N); \ + if (_n_) \ + while (--_n_ && *++_key_) \ + (RESULT) += (*_key_ << (_key_[1] & 0x7)); \ + (RESULT) += *++_key_; \ +} while (0) +#define return_STRING_N_HASH_2(KEY, N) do { \ + unsigned long _result_ = 0; \ + STRING_N_HASH_2 ((KEY), (N), _result_); \ + return _result_; \ +} while (0) + +#define STRING_N_COMPARE(X, Y, N, RESULT) do { \ + RESULT = strncmp ((X), (Y), (N)); \ +} while (0) +#define return_STRING_N_COMPARE(X, Y, N) do { \ + return strncmp ((X), (Y), (N)); \ +} while (0) + +#ifdef HAVE_CASE_INSENSITIVE_FS + +/* hash and comparison macros for case-insensitive string _key_s. */ + +#define ISTRING_HASH_1(KEY, RESULT) do { \ + unsigned char const *_key_ = (unsigned char const *) (KEY) - 1; \ + while (*++_key_) \ + (RESULT) += ((isupper (*_key_) ? tolower (*_key_) : *_key_) << (_key_[1] & 0xf)); \ +} while (0) +#define return_ISTRING_HASH_1(KEY) do { \ + unsigned long _result_ = 0; \ + ISTRING_HASH_1 ((KEY), _result_); \ + return _result_; \ +} while (0) + +#define ISTRING_HASH_2(KEY, RESULT) do { \ + unsigned char const *_key_ = (unsigned char const *) (KEY) - 1; \ + while (*++_key_) \ + (RESULT) += ((isupper (*_key_) ? tolower (*_key_) : *_key_) << (_key_[1] & 0x7)); \ +} while (0) +#define return_ISTRING_HASH_2(KEY) do { \ + unsigned long _result_ = 0; \ + ISTRING_HASH_2 ((KEY), _result_); \ + return _result_; \ +} while (0) + +#define ISTRING_COMPARE(X, Y, RESULT) do { \ + RESULT = strcmpi ((X), (Y)); \ +} while (0) +#define return_ISTRING_COMPARE(X, Y) do { \ + return strcmpi ((X), (Y)); \ +} while (0) + +#else + +#define ISTRING_HASH_1(KEY, RESULT) STRING_HASH_1 ((KEY), (RESULT)) +#define return_ISTRING_HASH_1(KEY) return_STRING_HASH_1 (KEY) + +#define ISTRING_HASH_2(KEY, RESULT) STRING_HASH_2 ((KEY), (RESULT)) +#define return_ISTRING_HASH_2(KEY) return_STRING_HASH_2 (KEY) + +#define ISTRING_COMPARE(X, Y, RESULT) STRING_COMPARE ((X), (Y), (RESULT)) +#define return_ISTRING_COMPARE(X, Y) return_STRING_COMPARE ((X), (Y)) + +#endif + +/* hash and comparison macros for integer _key_s. */ + +#define INTEGER_HASH_1(KEY, RESULT) do { \ + (RESULT) += ((unsigned long)(KEY)); \ +} while (0) +#define return_INTEGER_HASH_1(KEY) do { \ + unsigned long _result_ = 0; \ + INTEGER_HASH_1 ((KEY), _result_); \ + return _result_; \ +} while (0) + +#define INTEGER_HASH_2(KEY, RESULT) do { \ + (RESULT) += ~((unsigned long)(KEY)); \ +} while (0) +#define return_INTEGER_HASH_2(KEY) do { \ + unsigned long _result_ = 0; \ + INTEGER_HASH_2 ((KEY), _result_); \ + return _result_; \ +} while (0) + +#define INTEGER_COMPARE(X, Y, RESULT) do { \ + (RESULT) = X - Y; \ +} while (0) +#define return_INTEGER_COMPARE(X, Y) do { \ + int _result_; \ + INTEGER_COMPARE (X, Y, _result_); \ + return _result_; \ +} while (0) + +/* hash and comparison macros for address keys. */ + +#define ADDRESS_HASH_1(KEY, RESULT) INTEGER_HASH_1 (((unsigned long)(KEY)) >> 3, (RESULT)) +#define ADDRESS_HASH_2(KEY, RESULT) INTEGER_HASH_2 (((unsigned long)(KEY)) >> 3, (RESULT)) +#define ADDRESS_COMPARE(X, Y, RESULT) INTEGER_COMPARE ((X), (Y), (RESULT)) +#define return_ADDRESS_HASH_1(KEY) return_INTEGER_HASH_1 (((unsigned long)(KEY)) >> 3) +#define return_ADDRESS_HASH_2(KEY) return_INTEGER_HASH_2 (((unsigned long)(KEY)) >> 3) +#define return_ADDRESS_COMPARE(X, Y) return_INTEGER_COMPARE ((X), (Y)) + +#endif /* not _hash_h_ */ diff --git a/src/mkutil/make-3.80/implicit.c b/src/mkutil/make-3.80/implicit.c new file mode 100644 index 00000000..857895d7 --- /dev/null +++ b/src/mkutil/make-3.80/implicit.c @@ -0,0 +1,635 @@ +/* Implicit rule searching for GNU Make. +Copyright (C) 1988,89,90,91,92,93,94,97,2000 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "rule.h" +#include "dep.h" +#include "filedef.h" +#include "debug.h" + +static int pattern_search PARAMS ((struct file *file, int archive, unsigned int depth, + unsigned int recursions)); + +/* For a FILE which has no commands specified, try to figure out some + from the implicit pattern rules. + Returns 1 if a suitable implicit rule was found, + after modifying FILE to contain the appropriate commands and deps, + or returns 0 if no implicit rule was found. */ + +int +try_implicit_rule (file, depth) + struct file *file; + unsigned int depth; +{ + DBF (DB_IMPLICIT, _("Looking for an implicit rule for `%s'.\n")); + + /* The order of these searches was previously reversed. My logic now is + that since the non-archive search uses more information in the target + (the archive search omits the archive name), it is more specific and + should come first. */ + + if (pattern_search (file, 0, depth, 0)) + return 1; + +#ifndef NO_ARCHIVES + /* If this is an archive member reference, use just the + archive member name to search for implicit rules. */ + if (ar_name (file->name)) + { + DBF (DB_IMPLICIT, + _("Looking for archive-member implicit rule for `%s'.\n")); + if (pattern_search (file, 1, depth, 0)) + return 1; + } +#endif + + return 0; +} + + +/* Search the pattern rules for a rule with an existing dependency to make + FILE. If a rule is found, the appropriate commands and deps are put in FILE + and 1 is returned. If not, 0 is returned. + + If ARCHIVE is nonzero, FILE->name is of the form "LIB(MEMBER)". A rule for + "(MEMBER)" will be searched for, and "(MEMBER)" will not be chopped up into + directory and filename parts. + + If an intermediate file is found by pattern search, the intermediate file + is set up as a target by the recursive call and is also made a dependency + of FILE. + + DEPTH is used for debugging messages. */ + +static int +pattern_search (file, archive, depth, recursions) + struct file *file; + int archive; + unsigned int depth; + unsigned int recursions; +{ + /* Filename we are searching for a rule for. */ + char *filename = archive ? strchr (file->name, '(') : file->name; + + /* Length of FILENAME. */ + unsigned int namelen = strlen (filename); + + /* The last slash in FILENAME (or nil if there is none). */ + char *lastslash; + + /* This is a file-object used as an argument in + recursive calls. It never contains any data + except during a recursive call. */ + struct file *intermediate_file = 0; + + /* List of dependencies found recursively. */ + struct file **intermediate_files + = (struct file **) xmalloc (max_pattern_deps * sizeof (struct file *)); + + /* List of the patterns used to find intermediate files. */ + char **intermediate_patterns + = (char **) alloca (max_pattern_deps * sizeof (char *)); + + /* This buffer records all the dependencies actually found for a rule. */ + char **found_files = (char **) alloca (max_pattern_deps * sizeof (char *)); + /* Number of dep names now in FOUND_FILES. */ + unsigned int deps_found = 0; + + /* Names of possible dependencies are constructed in this buffer. */ + register char *depname = (char *) alloca (namelen + max_pattern_dep_length); + + /* The start and length of the stem of FILENAME for the current rule. */ + register char *stem = 0; + register unsigned int stemlen = 0; + register unsigned int fullstemlen = 0; + + /* Buffer in which we store all the rules that are possibly applicable. */ + struct rule **tryrules + = (struct rule **) xmalloc (num_pattern_rules * max_pattern_targets + * sizeof (struct rule *)); + + /* Number of valid elements in TRYRULES. */ + unsigned int nrules; + + /* The numbers of the rule targets of each rule + in TRYRULES that matched the target file. */ + unsigned int *matches + = (unsigned int *) alloca (num_pattern_rules * sizeof (unsigned int)); + + /* Each element is nonzero if LASTSLASH was used in + matching the corresponding element of TRYRULES. */ + char *checked_lastslash + = (char *) alloca (num_pattern_rules * sizeof (char)); + + /* The index in TRYRULES of the rule we found. */ + unsigned int foundrule; + + /* Nonzero if should consider intermediate files as dependencies. */ + int intermed_ok; + + /* Nonzero if we have matched a pattern-rule target + that is not just `%'. */ + int specific_rule_matched = 0; + + register unsigned int i = 0; /* uninit checks OK */ + register struct rule *rule; + register struct dep *dep; + + char *p, *vp; + +#ifndef NO_ARCHIVES + if (archive || ar_name (filename)) + lastslash = 0; + else +#endif + { + /* Set LASTSLASH to point at the last slash in FILENAME + but not counting any slash at the end. (foo/bar/ counts as + bar/ in directory foo/, not empty in directory foo/bar/.) */ +#ifdef VMS + lastslash = strrchr (filename, ']'); + if (lastslash == 0) + lastslash = strrchr (filename, ':'); +#else + lastslash = strrchr (filename, '/'); +#ifdef HAVE_DOS_PATHS + /* Handle backslashes (possibly mixed with forward slashes) + and the case of "d:file". */ + { + char *bslash = strrchr (filename, '\\'); + if (lastslash == 0 || bslash > lastslash) + lastslash = bslash; + if (lastslash == 0 && filename[0] && filename[1] == ':') + lastslash = filename + 1; + } +#endif +#endif + if (lastslash != 0 && lastslash[1] == '\0') + lastslash = 0; + } + + /* First see which pattern rules match this target + and may be considered. Put them in TRYRULES. */ + + nrules = 0; + for (rule = pattern_rules; rule != 0; rule = rule->next) + { + /* If the pattern rule has deps but no commands, ignore it. + Users cancel built-in rules by redefining them without commands. */ + if (rule->deps != 0 && rule->cmds == 0) + continue; + + /* If this rule is in use by a parent pattern_search, + don't use it here. */ + if (rule->in_use) + { + DBS (DB_IMPLICIT, (_("Avoiding implicit rule recursion.\n"))); + continue; + } + + for (i = 0; rule->targets[i] != 0; ++i) + { + char *target = rule->targets[i]; + char *suffix = rule->suffixes[i]; + int check_lastslash; + + /* Rules that can match any filename and are not terminal + are ignored if we're recursing, so that they cannot be + intermediate files. */ + if (recursions > 0 && target[1] == '\0' && !rule->terminal) + continue; + + if (rule->lens[i] > namelen) + /* It can't possibly match. */ + continue; + + /* From the lengths of the filename and the pattern parts, + find the stem: the part of the filename that matches the %. */ + stem = filename + (suffix - target - 1); + stemlen = namelen - rule->lens[i] + 1; + + /* Set CHECK_LASTSLASH if FILENAME contains a directory + prefix and the target pattern does not contain a slash. */ + +#ifdef VMS + check_lastslash = lastslash != 0 + && ((strchr (target, ']') == 0) + && (strchr (target, ':') == 0)); +#else + check_lastslash = lastslash != 0 && strchr (target, '/') == 0; +#endif + if (check_lastslash) + { + /* In that case, don't include the + directory prefix in STEM here. */ + unsigned int difference = lastslash - filename + 1; + if (difference > stemlen) + continue; + stemlen -= difference; + stem += difference; + } + + /* Check that the rule pattern matches the text before the stem. */ + if (check_lastslash) + { + if (stem > (lastslash + 1) + && !strneq (target, lastslash + 1, stem - lastslash - 1)) + continue; + } + else if (stem > filename + && !strneq (target, filename, stem - filename)) + continue; + + /* Check that the rule pattern matches the text after the stem. + We could test simply use streq, but this way we compare the + first two characters immediately. This saves time in the very + common case where the first character matches because it is a + period. */ + if (*suffix != stem[stemlen] + || (*suffix != '\0' && !streq (&suffix[1], &stem[stemlen + 1]))) + continue; + + /* Record if we match a rule that not all filenames will match. */ + if (target[1] != '\0') + specific_rule_matched = 1; + + /* A rule with no dependencies and no commands exists solely to set + specific_rule_matched when it matches. Don't try to use it. */ + if (rule->deps == 0 && rule->cmds == 0) + continue; + + /* Record this rule in TRYRULES and the index of the matching + target in MATCHES. If several targets of the same rule match, + that rule will be in TRYRULES more than once. */ + tryrules[nrules] = rule; + matches[nrules] = i; + checked_lastslash[nrules] = check_lastslash; + ++nrules; + } + } + + /* If we have found a matching rule that won't match all filenames, + retroactively reject any non-"terminal" rules that do always match. */ + if (specific_rule_matched) + for (i = 0; i < nrules; ++i) + if (!tryrules[i]->terminal) + { + register unsigned int j; + for (j = 0; tryrules[i]->targets[j] != 0; ++j) + if (tryrules[i]->targets[j][1] == '\0') + break; + if (tryrules[i]->targets[j] != 0) + tryrules[i] = 0; + } + + /* Try each rule once without intermediate files, then once with them. */ + for (intermed_ok = 0; intermed_ok == !!intermed_ok; ++intermed_ok) + { + /* Try each pattern rule till we find one that applies. + If it does, copy the names of its dependencies (as substituted) + and store them in FOUND_FILES. DEPS_FOUND is the number of them. */ + + for (i = 0; i < nrules; i++) + { + int check_lastslash; + + rule = tryrules[i]; + + /* RULE is nil when we discover that a rule, + already placed in TRYRULES, should not be applied. */ + if (rule == 0) + continue; + + /* Reject any terminal rules if we're + looking to make intermediate files. */ + if (intermed_ok && rule->terminal) + continue; + + /* Mark this rule as in use so a recursive + pattern_search won't try to use it. */ + rule->in_use = 1; + + /* From the lengths of the filename and the matching pattern parts, + find the stem: the part of the filename that matches the %. */ + stem = filename + + (rule->suffixes[matches[i]] - rule->targets[matches[i]]) - 1; + stemlen = namelen - rule->lens[matches[i]] + 1; + check_lastslash = checked_lastslash[i]; + if (check_lastslash) + { + stem += lastslash - filename + 1; + stemlen -= (lastslash - filename) + 1; + } + + DBS (DB_IMPLICIT, (_("Trying pattern rule with stem `%.*s'.\n"), + (int) stemlen, stem)); + + /* Try each dependency; see if it "exists". */ + + deps_found = 0; + for (dep = rule->deps; dep != 0; dep = dep->next) + { + /* If the dependency name has a %, substitute the stem. */ + p = strchr (dep_name (dep), '%'); + if (p != 0) + { + register unsigned int i; + if (check_lastslash) + { + /* Copy directory name from the original FILENAME. */ + i = lastslash - filename + 1; + bcopy (filename, depname, i); + } + else + i = 0; + bcopy (dep_name (dep), depname + i, p - dep_name (dep)); + i += p - dep_name (dep); + bcopy (stem, depname + i, stemlen); + i += stemlen; + strcpy (depname + i, p + 1); + p = depname; + } + else + p = dep_name (dep); + + /* P is now the actual dependency name as substituted. */ + + if (file_impossible_p (p)) + { + /* If this dependency has already been ruled + "impossible", then the rule fails and don't + bother trying it on the second pass either + since we know that will fail too. */ + DBS (DB_IMPLICIT, + (p == depname + ? _("Rejecting impossible implicit prerequisite `%s'.\n") + : _("Rejecting impossible rule prerequisite `%s'.\n"), + p)); + tryrules[i] = 0; + break; + } + + intermediate_files[deps_found] = 0; + + DBS (DB_IMPLICIT, + (p == depname + ? _("Trying implicit prerequisite `%s'.\n") + : _("Trying rule prerequisite `%s'.\n"), p)); + + /* The DEP->changed flag says that this dependency resides in a + nonexistent directory. So we normally can skip looking for + the file. However, if CHECK_LASTSLASH is set, then the + dependency file we are actually looking for is in a different + directory (the one gotten by prepending FILENAME's directory), + so it might actually exist. */ + + if (lookup_file (p) != 0 + || ((!dep->changed || check_lastslash) && file_exists_p (p))) + { + found_files[deps_found++] = xstrdup (p); + continue; + } + /* This code, given FILENAME = "lib/foo.o", dependency name + "lib/foo.c", and VPATH=src, searches for "src/lib/foo.c". */ + vp = p; + if (vpath_search (&vp, (FILE_TIMESTAMP *) 0)) + { + DBS (DB_IMPLICIT, + (_("Found prerequisite `%s' as VPATH `%s'\n"), p, vp)); + strcpy (vp, p); + found_files[deps_found++] = vp; + continue; + } + + /* We could not find the file in any place we should look. + Try to make this dependency as an intermediate file, + but only on the second pass. */ + + if (intermed_ok) + { + if (intermediate_file == 0) + intermediate_file + = (struct file *) alloca (sizeof (struct file)); + + DBS (DB_IMPLICIT, + (_("Looking for a rule with intermediate file `%s'.\n"), + p)); + + bzero ((char *) intermediate_file, sizeof (struct file)); + intermediate_file->name = p; + if (pattern_search (intermediate_file, 0, depth + 1, + recursions + 1)) + { + p = xstrdup (p); + intermediate_patterns[deps_found] + = intermediate_file->name; + intermediate_file->name = p; + intermediate_files[deps_found] = intermediate_file; + intermediate_file = 0; + /* Allocate an extra copy to go in FOUND_FILES, + because every elt of FOUND_FILES is consumed + or freed later. */ + found_files[deps_found] = xstrdup (p); + ++deps_found; + continue; + } + + /* If we have tried to find P as an intermediate + file and failed, mark that name as impossible + so we won't go through the search again later. */ + file_impossible (p); + } + + /* A dependency of this rule does not exist. + Therefore, this rule fails. */ + break; + } + + /* This rule is no longer `in use' for recursive searches. */ + rule->in_use = 0; + + if (dep != 0) + { + /* This pattern rule does not apply. + If some of its dependencies succeeded, + free the data structure describing them. */ + while (deps_found-- > 0) + { + register struct file *f = intermediate_files[deps_found]; + free (found_files[deps_found]); + if (f != 0 + && (f->stem < f->name + || f->stem > f->name + strlen (f->name))) + free (f->stem); + } + } + else + /* This pattern rule does apply. Stop looking for one. */ + break; + } + + /* If we found an applicable rule without + intermediate files, don't try with them. */ + if (i < nrules) + break; + + rule = 0; + } + + /* RULE is nil if the loop went all the way + through the list and everything failed. */ + if (rule == 0) + goto done; + + foundrule = i; + + /* If we are recursing, store the pattern that matched + FILENAME in FILE->name for use in upper levels. */ + + if (recursions > 0) + /* Kludge-o-matic */ + file->name = rule->targets[matches[foundrule]]; + + /* FOUND_FILES lists the dependencies for the rule we found. + This includes the intermediate files, if any. + Convert them into entries on the deps-chain of FILE. */ + + while (deps_found-- > 0) + { + register char *s; + + if (intermediate_files[deps_found] != 0) + { + /* If we need to use an intermediate file, + make sure it is entered as a target, with the info that was + found for it in the recursive pattern_search call. + We know that the intermediate file did not already exist as + a target; therefore we can assume that the deps and cmds + of F below are null before we change them. */ + + struct file *imf = intermediate_files[deps_found]; + register struct file *f = enter_file (imf->name); + f->deps = imf->deps; + f->cmds = imf->cmds; + f->stem = imf->stem; + f->also_make = imf->also_make; + imf = lookup_file (intermediate_patterns[deps_found]); + if (imf != 0 && imf->precious) + f->precious = 1; + f->intermediate = 1; + f->tried_implicit = 1; + for (dep = f->deps; dep != 0; dep = dep->next) + { + dep->file = enter_file (dep->name); + /* enter_file uses dep->name _if_ we created a new file. */ + if (dep->name != dep->file->name) + free (dep->name); + dep->name = 0; + dep->file->tried_implicit |= dep->changed; + } + } + + dep = (struct dep *) xmalloc (sizeof (struct dep)); + dep->ignore_mtime = 0; + s = found_files[deps_found]; + if (recursions == 0) + { + dep->name = 0; + dep->file = lookup_file (s); + if (dep->file == 0) + /* enter_file consumes S's storage. */ + dep->file = enter_file (s); + else + /* A copy of S is already allocated in DEP->file->name. + So we can free S. */ + free (s); + } + else + { + dep->name = s; + dep->file = 0; + dep->changed = 0; + } + if (intermediate_files[deps_found] == 0 && tryrules[foundrule]->terminal) + { + /* If the file actually existed (was not an intermediate file), + and the rule that found it was a terminal one, then we want + to mark the found file so that it will not have implicit rule + search done for it. If we are not entering a `struct file' for + it now, we indicate this with the `changed' flag. */ + if (dep->file == 0) + dep->changed = 1; + else + dep->file->tried_implicit = 1; + } + dep->next = file->deps; + file->deps = dep; + } + + if (!checked_lastslash[foundrule]) + { + /* Always allocate new storage, since STEM might be + on the stack for an intermediate file. */ + file->stem = savestring (stem, stemlen); + fullstemlen = stemlen; + } + else + { + int dirlen = (lastslash + 1) - filename; + + /* We want to prepend the directory from + the original FILENAME onto the stem. */ + fullstemlen = dirlen + stemlen; + file->stem = (char *) xmalloc (fullstemlen + 1); + bcopy (filename, file->stem, dirlen); + bcopy (stem, file->stem + dirlen, stemlen); + file->stem[fullstemlen] = '\0'; + } + + file->cmds = rule->cmds; + + /* If this rule builds other targets, too, put the others into FILE's + `also_make' member. */ + + if (rule->targets[1] != 0) + for (i = 0; rule->targets[i] != 0; ++i) + if (i != matches[foundrule]) + { + struct dep *new = (struct dep *) xmalloc (sizeof (struct dep)); + /* GKM FIMXE: handle '|' here too */ + new->ignore_mtime = 0; + new->name = p = (char *) xmalloc (rule->lens[i] + fullstemlen + 1); + bcopy (rule->targets[i], p, + rule->suffixes[i] - rule->targets[i] - 1); + p += rule->suffixes[i] - rule->targets[i] - 1; + bcopy (file->stem, p, fullstemlen); + p += fullstemlen; + bcopy (rule->suffixes[i], p, + rule->lens[i] - (rule->suffixes[i] - rule->targets[i]) + 1); + new->file = enter_file (new->name); + new->next = file->also_make; + file->also_make = new; + } + + done: + free (intermediate_files); + free (tryrules); + + return rule != 0; +} diff --git a/src/mkutil/make-3.80/job.c b/src/mkutil/make-3.80/job.c new file mode 100644 index 00000000..63456a7a --- /dev/null +++ b/src/mkutil/make-3.80/job.c @@ -0,0 +1,3110 @@ +/* Job execution and handling for GNU Make. +Copyright (C) 1988,89,90,91,92,93,94,95,96,97,99 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" + +#include + +#include "job.h" +#include "debug.h" +#include "filedef.h" +#include "commands.h" +#include "variable.h" +#include "debug.h" + +#include + +/* Default shell to use. */ +#ifdef WINDOWS32 +char *default_shell = "sh.exe"; +int no_default_sh_exe = 1; +int batch_mode_shell = 1; +#else /* WINDOWS32 */ +# ifdef _AMIGA +char default_shell[] = ""; +extern int MyExecute (char **); +# else /* _AMIGA */ +# ifdef __MSDOS__ +/* The default shell is a pointer so we can change it if Makefile + says so. It is without an explicit path so we get a chance + to search the $PATH for it (since MSDOS doesn't have standard + directories we could trust). */ +char *default_shell = "command.com"; +# else /* __MSDOS__ */ +# ifdef VMS +# include +char default_shell[] = ""; +# else +char default_shell[] = "/bin/sh"; +# endif /* VMS */ +# endif /* __MSDOS__ */ +int batch_mode_shell = 0; +# endif /* _AMIGA */ +#endif /* WINDOWS32 */ + +#ifdef __MSDOS__ +# include +static int execute_by_shell; +static int dos_pid = 123; +int dos_status; +int dos_command_running; +#endif /* __MSDOS__ */ + +#ifdef _AMIGA +# include +static int amiga_pid = 123; +static int amiga_status; +static char amiga_bname[32]; +static int amiga_batch_file; +#endif /* Amiga. */ + +#ifdef VMS +# ifndef __GNUC__ +# include +# endif +# include +# include +#endif + +#ifdef WINDOWS32 +# include +# include +# include +# include "sub_proc.h" +# include "w32err.h" +# include "pathstuff.h" +#endif /* WINDOWS32 */ + +#ifdef HAVE_FCNTL_H +# include +#else +# include +#endif + +#if defined (HAVE_SYS_WAIT_H) || defined (HAVE_UNION_WAIT) +# include +#endif + +#ifdef HAVE_WAITPID +# define WAIT_NOHANG(status) waitpid (-1, (status), WNOHANG) +#else /* Don't have waitpid. */ +# ifdef HAVE_WAIT3 +# ifndef wait3 +extern int wait3 (); +# endif +# define WAIT_NOHANG(status) wait3 ((status), WNOHANG, (struct rusage *) 0) +# endif /* Have wait3. */ +#endif /* Have waitpid. */ + +#if !defined (wait) && !defined (POSIX) +extern int wait (); +#endif + +#ifndef HAVE_UNION_WAIT + +# define WAIT_T int + +# ifndef WTERMSIG +# define WTERMSIG(x) ((x) & 0x7f) +# endif +# ifndef WCOREDUMP +# define WCOREDUMP(x) ((x) & 0x80) +# endif +# ifndef WEXITSTATUS +# define WEXITSTATUS(x) (((x) >> 8) & 0xff) +# endif +# ifndef WIFSIGNALED +# define WIFSIGNALED(x) (WTERMSIG (x) != 0) +# endif +# ifndef WIFEXITED +# define WIFEXITED(x) (WTERMSIG (x) == 0) +# endif + +#else /* Have `union wait'. */ + +# define WAIT_T union wait +# ifndef WTERMSIG +# define WTERMSIG(x) ((x).w_termsig) +# endif +# ifndef WCOREDUMP +# define WCOREDUMP(x) ((x).w_coredump) +# endif +# ifndef WEXITSTATUS +# define WEXITSTATUS(x) ((x).w_retcode) +# endif +# ifndef WIFSIGNALED +# define WIFSIGNALED(x) (WTERMSIG(x) != 0) +# endif +# ifndef WIFEXITED +# define WIFEXITED(x) (WTERMSIG(x) == 0) +# endif + +#endif /* Don't have `union wait'. */ + +/* How to set close-on-exec for a file descriptor. */ + +#if !defined F_SETFD +# define CLOSE_ON_EXEC(_d) +#else +# ifndef FD_CLOEXEC +# define FD_CLOEXEC 1 +# endif +# define CLOSE_ON_EXEC(_d) (void) fcntl ((_d), F_SETFD, FD_CLOEXEC) +#endif + +#ifdef VMS +static int vms_jobsefnmask = 0; +#endif /* !VMS */ + +#ifndef HAVE_UNISTD_H +extern int dup2 (); +extern int execve (); +extern void _exit (); +# ifndef VMS +extern int geteuid (); +extern int getegid (); +extern int setgid (); +extern int getgid (); +# endif +#endif + +extern char *allocated_variable_expand_for_file PARAMS ((char *line, struct file *file)); + +extern int getloadavg PARAMS ((double loadavg[], int nelem)); +extern int start_remote_job PARAMS ((char **argv, char **envp, int stdin_fd, + int *is_remote, int *id_ptr, int *used_stdin)); +extern int start_remote_job_p PARAMS ((int)); +extern int remote_status PARAMS ((int *exit_code_ptr, int *signal_ptr, + int *coredump_ptr, int block)); + +RETSIGTYPE child_handler PARAMS ((int)); +static void free_child PARAMS ((struct child *)); +static void start_job_command PARAMS ((struct child *child)); +static int load_too_high PARAMS ((void)); +static int job_next_command PARAMS ((struct child *)); +static int start_waiting_job PARAMS ((struct child *)); +#ifdef VMS +static void vmsWaitForChildren PARAMS ((int *)); +#endif + +/* Chain of all live (or recently deceased) children. */ + +struct child *children = 0; + +/* Number of children currently running. */ + +unsigned int job_slots_used = 0; + +/* Nonzero if the `good' standard input is in use. */ + +static int good_stdin_used = 0; + +/* Chain of children waiting to run until the load average goes down. */ + +static struct child *waiting_jobs = 0; + +/* Non-zero if we use a *real* shell (always so on Unix). */ + +int unixy_shell = 1; + + +#ifdef WINDOWS32 +/* + * The macro which references this function is defined in make.h. + */ +int w32_kill(int pid, int sig) +{ + return ((process_kill(pid, sig) == TRUE) ? 0 : -1); +} +#endif /* WINDOWS32 */ + +/* Write an error message describing the exit status given in + EXIT_CODE, EXIT_SIG, and COREDUMP, for the target TARGET_NAME. + Append "(ignored)" if IGNORED is nonzero. */ + +static void +child_error (target_name, exit_code, exit_sig, coredump, ignored) + char *target_name; + int exit_code, exit_sig, coredump; + int ignored; +{ + if (ignored && silent_flag) + return; + +#ifdef VMS + if (!(exit_code & 1)) + error (NILF, + (ignored ? _("*** [%s] Error 0x%x (ignored)") + : _("*** [%s] Error 0x%x")), + target_name, exit_code); +#else + if (exit_sig == 0) + error (NILF, ignored ? _("[%s] Error %d (ignored)") : + _("*** [%s] Error %d"), + target_name, exit_code); + else + error (NILF, "*** [%s] %s%s", + target_name, strsignal (exit_sig), + coredump ? _(" (core dumped)") : ""); +#endif /* VMS */ +} + +#ifdef VMS +/* Wait for nchildren children to terminate */ +static void +vmsWaitForChildren(int *status) +{ + while (1) + { + if (!vms_jobsefnmask) + { + *status = 0; + return; + } + + *status = sys$wflor (32, vms_jobsefnmask); + } + return; +} + +/* Set up IO redirection. */ + +char * +vms_redirect (desc, fname, ibuf) + struct dsc$descriptor_s *desc; + char *fname; + char *ibuf; +{ + char *fptr; + extern char *vmsify (); + + ibuf++; + while (isspace ((unsigned char)*ibuf)) + ibuf++; + fptr = ibuf; + while (*ibuf && !isspace ((unsigned char)*ibuf)) + ibuf++; + *ibuf = 0; + if (strcmp (fptr, "/dev/null") != 0) + { + strcpy (fname, vmsify (fptr, 0)); + if (strchr (fname, '.') == 0) + strcat (fname, "."); + } + desc->dsc$w_length = strlen(fname); + desc->dsc$a_pointer = fname; + desc->dsc$b_dtype = DSC$K_DTYPE_T; + desc->dsc$b_class = DSC$K_CLASS_S; + + if (*fname == 0) + printf (_("Warning: Empty redirection\n")); + return ibuf; +} + + +/* + found apostrophe at (p-1) + + inc p until after closing apostrophe. */ + +static char * +handle_apos (char *p) +{ + int alast; + int inside; + +#define SEPCHARS ",/()= " + + inside = 0; + + while (*p != 0) + { + if (*p == '"') + { + if (inside) + { + while ((alast > 0) + && (*p == '"')) + { + p++; + alast--; + } + if (alast == 0) + inside = 0; + else + { + fprintf (stderr, _("Syntax error, still inside '\"'\n")); + exit (3); + } + } + else + { + p++; + if (strchr (SEPCHARS, *p)) + break; + inside = 1; + alast = 1; + while (*p == '"') + { + alast++; + p++; + } + } + } + else + p++; + } + + return p; +} + +#endif + + +/* Handle a dead child. This handler may or may not ever be installed. + + If we're using the jobserver feature, we need it. First, installing it + ensures the read will interrupt on SIGCHLD. Second, we close the dup'd + read FD to ensure we don't enter another blocking read without reaping all + the dead children. In this case we don't need the dead_children count. + + If we don't have either waitpid or wait3, then make is unreliable, but we + use the dead_children count to reap children as best we can. */ + +static unsigned int dead_children = 0; + +RETSIGTYPE +child_handler (sig) + int sig; +{ + ++dead_children; + + if (job_rfd >= 0) + { + close (job_rfd); + job_rfd = -1; + } + + DB (DB_JOBS, (_("Got a SIGCHLD; %u unreaped children.\n"), dead_children)); +} + + +extern int shell_function_pid, shell_function_completed; + +/* Reap all dead children, storing the returned status and the new command + state (`cs_finished') in the `file' member of the `struct child' for the + dead child, and removing the child from the chain. In addition, if BLOCK + nonzero, we block in this function until we've reaped at least one + complete child, waiting for it to die if necessary. If ERR is nonzero, + print an error message first. */ + +void +reap_children (block, err) + int block, err; +{ + WAIT_T status; + /* Initially, assume we have some. */ + int reap_more = 1; + +#ifdef WAIT_NOHANG +# define REAP_MORE reap_more +#else +# define REAP_MORE dead_children +#endif + + /* As long as: + + We have at least one child outstanding OR a shell function in progress, + AND + We're blocking for a complete child OR there are more children to reap + + we'll keep reaping children. */ + + while ((children != 0 || shell_function_pid != 0) + && (block || REAP_MORE)) + { + int remote = 0; + register int pid; + int exit_code, exit_sig, coredump; + register struct child *lastc, *c; + int child_failed; + int any_remote, any_local; + + if (err && block) + { + /* We might block for a while, so let the user know why. */ + fflush (stdout); + error (NILF, _("*** Waiting for unfinished jobs....")); + } + + /* We have one less dead child to reap. As noted in + child_handler() above, this count is completely unimportant for + all modern, POSIX-y systems that support wait3() or waitpid(). + The rest of this comment below applies only to early, broken + pre-POSIX systems. We keep the count only because... it's there... + + The test and decrement are not atomic; if it is compiled into: + register = dead_children - 1; + dead_children = register; + a SIGCHLD could come between the two instructions. + child_handler increments dead_children. + The second instruction here would lose that increment. But the + only effect of dead_children being wrong is that we might wait + longer than necessary to reap a child, and lose some parallelism; + and we might print the "Waiting for unfinished jobs" message above + when not necessary. */ + + if (dead_children > 0) + --dead_children; + + any_remote = 0; + any_local = shell_function_pid != 0; + for (c = children; c != 0; c = c->next) + { + any_remote |= c->remote; + any_local |= ! c->remote; + DB (DB_JOBS, (_("Live child 0x%08lx (%s) PID %ld %s\n"), + (unsigned long int) c, c->file->name, + (long) c->pid, c->remote ? _(" (remote)") : "")); +#ifdef VMS + break; +#endif + } + + /* First, check for remote children. */ + if (any_remote) + pid = remote_status (&exit_code, &exit_sig, &coredump, 0); + else + pid = 0; + + if (pid > 0) + /* We got a remote child. */ + remote = 1; + else if (pid < 0) + { + /* A remote status command failed miserably. Punt. */ + remote_status_lose: + pfatal_with_name ("remote_status"); + } + else + { + /* No remote children. Check for local children. */ +#if !defined(__MSDOS__) && !defined(_AMIGA) && !defined(WINDOWS32) + if (any_local) + { +#ifdef VMS + vmsWaitForChildren (&status); + pid = c->pid; +#else +#ifdef WAIT_NOHANG + if (!block) + pid = WAIT_NOHANG (&status); + else +#endif + pid = wait (&status); +#endif /* !VMS */ + } + else + pid = 0; + + if (pid < 0) + { + /* The wait*() failed miserably. Punt. */ + pfatal_with_name ("wait"); + } + else if (pid > 0) + { + /* We got a child exit; chop the status word up. */ + exit_code = WEXITSTATUS (status); + exit_sig = WIFSIGNALED (status) ? WTERMSIG (status) : 0; + coredump = WCOREDUMP (status); + } + else + { + /* No local children are dead. */ + reap_more = 0; + + if (!block || !any_remote) + break; + + /* Now try a blocking wait for a remote child. */ + pid = remote_status (&exit_code, &exit_sig, &coredump, 1); + if (pid < 0) + goto remote_status_lose; + else if (pid == 0) + /* No remote children either. Finally give up. */ + break; + + /* We got a remote child. */ + remote = 1; + } +#endif /* !__MSDOS__, !Amiga, !WINDOWS32. */ + +#ifdef __MSDOS__ + /* Life is very different on MSDOS. */ + pid = dos_pid - 1; + status = dos_status; + exit_code = WEXITSTATUS (status); + if (exit_code == 0xff) + exit_code = -1; + exit_sig = WIFSIGNALED (status) ? WTERMSIG (status) : 0; + coredump = 0; +#endif /* __MSDOS__ */ +#ifdef _AMIGA + /* Same on Amiga */ + pid = amiga_pid - 1; + status = amiga_status; + exit_code = amiga_status; + exit_sig = 0; + coredump = 0; +#endif /* _AMIGA */ +#ifdef WINDOWS32 + { + HANDLE hPID; + int err; + + /* wait for anything to finish */ + if (hPID = process_wait_for_any()) { + + /* was an error found on this process? */ + err = process_last_err(hPID); + + /* get exit data */ + exit_code = process_exit_code(hPID); + + if (err) + fprintf(stderr, "make (e=%d): %s", + exit_code, map_windows32_error_to_string(exit_code)); + + /* signal */ + exit_sig = process_signal(hPID); + + /* cleanup process */ + process_cleanup(hPID); + + coredump = 0; + } + pid = (int) hPID; + } +#endif /* WINDOWS32 */ + } + + /* Check if this is the child of the `shell' function. */ + if (!remote && pid == shell_function_pid) + { + /* It is. Leave an indicator for the `shell' function. */ + if (exit_sig == 0 && exit_code == 127) + shell_function_completed = -1; + else + shell_function_completed = 1; + break; + } + + child_failed = exit_sig != 0 || exit_code != 0; + + /* Search for a child matching the deceased one. */ + lastc = 0; + for (c = children; c != 0; lastc = c, c = c->next) + if (c->remote == remote && c->pid == pid) + break; + + if (c == 0) + /* An unknown child died. + Ignore it; it was inherited from our invoker. */ + continue; + + DB (DB_JOBS, (child_failed + ? _("Reaping losing child 0x%08lx PID %ld %s\n") + : _("Reaping winning child 0x%08lx PID %ld %s\n"), + (unsigned long int) c, (long) c->pid, + c->remote ? _(" (remote)") : "")); + + if (c->sh_batch_file) { + DB (DB_JOBS, (_("Cleaning up temp batch file %s\n"), + c->sh_batch_file)); + + /* just try and remove, don't care if this fails */ + remove (c->sh_batch_file); + + /* all done with memory */ + free (c->sh_batch_file); + c->sh_batch_file = NULL; + } + + /* If this child had the good stdin, say it is now free. */ + if (c->good_stdin) + good_stdin_used = 0; + + if (child_failed && !c->noerror && !ignore_errors_flag) + { + /* The commands failed. Write an error message, + delete non-precious targets, and abort. */ + static int delete_on_error = -1; + child_error (c->file->name, exit_code, exit_sig, coredump, 0); + c->file->update_status = 2; + if (delete_on_error == -1) + { + struct file *f = lookup_file (".DELETE_ON_ERROR"); + delete_on_error = f != 0 && f->is_target; + } + if (exit_sig != 0 || delete_on_error) + delete_child_targets (c); + } + else + { + if (child_failed) + { + /* The commands failed, but we don't care. */ + child_error (c->file->name, + exit_code, exit_sig, coredump, 1); + child_failed = 0; + } + + /* If there are more commands to run, try to start them. */ + if (job_next_command (c)) + { + if (handling_fatal_signal) + { + /* Never start new commands while we are dying. + Since there are more commands that wanted to be run, + the target was not completely remade. So we treat + this as if a command had failed. */ + c->file->update_status = 2; + } + else + { + /* Check again whether to start remotely. + Whether or not we want to changes over time. + Also, start_remote_job may need state set up + by start_remote_job_p. */ + c->remote = start_remote_job_p (0); + start_job_command (c); + /* Fatal signals are left blocked in case we were + about to put that child on the chain. But it is + already there, so it is safe for a fatal signal to + arrive now; it will clean up this child's targets. */ + unblock_sigs (); + if (c->file->command_state == cs_running) + /* We successfully started the new command. + Loop to reap more children. */ + continue; + } + + if (c->file->update_status != 0) + /* We failed to start the commands. */ + delete_child_targets (c); + } + else + /* There are no more commands. We got through them all + without an unignored error. Now the target has been + successfully updated. */ + c->file->update_status = 0; + } + + /* When we get here, all the commands for C->file are finished + (or aborted) and C->file->update_status contains 0 or 2. But + C->file->command_state is still cs_running if all the commands + ran; notice_finish_file looks for cs_running to tell it that + it's interesting to check the file's modtime again now. */ + + if (! handling_fatal_signal) + /* Notice if the target of the commands has been changed. + This also propagates its values for command_state and + update_status to its also_make files. */ + notice_finished_file (c->file); + + DB (DB_JOBS, (_("Removing child 0x%08lx PID %ld%s from chain.\n"), + (unsigned long int) c, (long) c->pid, + c->remote ? _(" (remote)") : "")); + + /* Block fatal signals while frobnicating the list, so that + children and job_slots_used are always consistent. Otherwise + a fatal signal arriving after the child is off the chain and + before job_slots_used is decremented would believe a child was + live and call reap_children again. */ + block_sigs (); + + /* There is now another slot open. */ + if (job_slots_used > 0) + --job_slots_used; + + /* Remove the child from the chain and free it. */ + if (lastc == 0) + children = c->next; + else + lastc->next = c->next; + + free_child (c); + + unblock_sigs (); + + /* If the job failed, and the -k flag was not given, die, + unless we are already in the process of dying. */ + if (!err && child_failed && !keep_going_flag && + /* fatal_error_signal will die with the right signal. */ + !handling_fatal_signal) + die (2); + + /* Only block for one child. */ + block = 0; + } + + return; +} + +/* Free the storage allocated for CHILD. */ + +static void +free_child (child) + register struct child *child; +{ + /* If this child is the only one it was our "free" job, so don't put a + token back for it. This child has already been removed from the list, + so if there any left this wasn't the last one. */ + + if (job_fds[1] >= 0 && children) + { + char token = '+'; + + /* Write a job token back to the pipe. */ + + if (write (job_fds[1], &token, 1) != 1) + pfatal_with_name (_("write jobserver")); + + DB (DB_JOBS, (_("Released token for child 0x%08lx (%s).\n"), + (unsigned long int) child, child->file->name)); + } + + if (handling_fatal_signal) /* Don't bother free'ing if about to die. */ + return; + + if (child->command_lines != 0) + { + register unsigned int i; + for (i = 0; i < child->file->cmds->ncommand_lines; ++i) + free (child->command_lines[i]); + free ((char *) child->command_lines); + } + + if (child->environment != 0) + { + register char **ep = child->environment; + while (*ep != 0) + free (*ep++); + free ((char *) child->environment); + } + + free ((char *) child); +} + +#ifdef POSIX +extern sigset_t fatal_signal_set; +#endif + +void +block_sigs () +{ +#ifdef POSIX + (void) sigprocmask (SIG_BLOCK, &fatal_signal_set, (sigset_t *) 0); +#else +# ifdef HAVE_SIGSETMASK + (void) sigblock (fatal_signal_mask); +# endif +#endif +} + +#ifdef POSIX +void +unblock_sigs () +{ + sigset_t empty; + sigemptyset (&empty); + sigprocmask (SIG_SETMASK, &empty, (sigset_t *) 0); +} +#endif + +#ifdef MAKE_JOBSERVER +/* Set the child handler action flags to FLAGS. */ +static void +set_child_handler_action_flags (flags) + int flags; +{ + struct sigaction sa; + bzero ((char *) &sa, sizeof sa); + sa.sa_handler = child_handler; + sa.sa_flags = flags; +#if defined SIGCHLD + sigaction (SIGCHLD, &sa, NULL); +#endif +#if defined SIGCLD && SIGCLD != SIGCHLD + sigaction (SIGCLD, &sa, NULL); +#endif +} +#endif + + +/* Start a job to run the commands specified in CHILD. + CHILD is updated to reflect the commands and ID of the child process. + + NOTE: On return fatal signals are blocked! The caller is responsible + for calling `unblock_sigs', once the new child is safely on the chain so + it can be cleaned up in the event of a fatal signal. */ + +static void +start_job_command (child) + register struct child *child; +{ +#ifndef _AMIGA + static int bad_stdin = -1; +#endif + register char *p; + int flags; +#ifdef VMS + char *argv; +#else + char **argv; +#endif + + /* If we have a completely empty commandset, stop now. */ + if (!child->command_ptr) + goto next_command; + + /* Combine the flags parsed for the line itself with + the flags specified globally for this target. */ + flags = (child->file->command_flags + | child->file->cmds->lines_flags[child->command_line - 1]); + + p = child->command_ptr; + child->noerror = flags & COMMANDS_NOERROR; + + while (*p != '\0') + { + if (*p == '@') + flags |= COMMANDS_SILENT; + else if (*p == '+') + flags |= COMMANDS_RECURSE; + else if (*p == '-') + child->noerror = 1; + else if (!isblank ((unsigned char)*p)) + break; + ++p; + } + + /* Update the file's command flags with any new ones we found. We only + keep the COMMANDS_RECURSE setting. Even this isn't 100% correct; we are + now marking more commands recursive than should be in the case of + multiline define/endef scripts where only one line is marked "+". In + order to really fix this, we'll have to keep a lines_flags for every + actual line, after expansion. */ + child->file->cmds->lines_flags[child->command_line - 1] + |= flags & COMMANDS_RECURSE; + + /* Figure out an argument list from this command line. */ + + { + char *end = 0; +#ifdef VMS + argv = p; +#else + argv = construct_command_argv (p, &end, child->file, &child->sh_batch_file); +#endif + if (end == NULL) + child->command_ptr = NULL; + else + { + *end++ = '\0'; + child->command_ptr = end; + } + } + + /* If -q was given, say that updating `failed' if there was any text on the + command line, or `succeeded' otherwise. The exit status of 1 tells the + user that -q is saying `something to do'; the exit status for a random + error is 2. */ + if (argv != 0 && question_flag && !(flags & COMMANDS_RECURSE)) + { +#ifndef VMS + free (argv[0]); + free ((char *) argv); +#endif + child->file->update_status = 1; + notice_finished_file (child->file); + return; + } + + if (touch_flag && !(flags & COMMANDS_RECURSE)) + { + /* Go on to the next command. It might be the recursive one. + We construct ARGV only to find the end of the command line. */ +#ifndef VMS + if (argv) + { + free (argv[0]); + free ((char *) argv); + } +#endif + argv = 0; + } + + if (argv == 0) + { + next_command: +#ifdef __MSDOS__ + execute_by_shell = 0; /* in case construct_command_argv sets it */ +#endif + /* This line has no commands. Go to the next. */ + if (job_next_command (child)) + start_job_command (child); + else + { + /* No more commands. Make sure we're "running"; we might not be if + (e.g.) all commands were skipped due to -n. */ + set_command_state (child->file, cs_running); + child->file->update_status = 0; + notice_finished_file (child->file); + } + return; + } + + /* Print out the command. If silent, we call `message' with null so it + can log the working directory before the command's own error messages + appear. */ + + message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag)) + ? "%s" : (char *) 0, p); + + /* Tell update_goal_chain that a command has been started on behalf of + this target. It is important that this happens here and not in + reap_children (where we used to do it), because reap_children might be + reaping children from a different target. We want this increment to + guaranteedly indicate that a command was started for the dependency + chain (i.e., update_file recursion chain) we are processing. */ + + ++commands_started; + + /* Optimize an empty command. People use this for timestamp rules, + so avoid forking a useless shell. Do this after we increment + commands_started so make still treats this special case as if it + performed some action (makes a difference as to what messages are + printed, etc. */ + +#if !defined(VMS) && !defined(_AMIGA) + if ( +#ifdef __MSDOS__ + unixy_shell /* the test is complicated and we already did it */ +#else + (argv[0] && !strcmp (argv[0], "/bin/sh")) +#endif + && (argv[1] + && argv[1][0] == '-' && argv[1][1] == 'c' && argv[1][2] == '\0') + && (argv[2] && argv[2][0] == ':' && argv[2][1] == '\0') + && argv[3] == NULL) + { + free (argv[0]); + free ((char *) argv); + goto next_command; + } +#endif /* !VMS && !_AMIGA */ + + /* If -n was given, recurse to get the next line in the sequence. */ + + if (just_print_flag && !(flags & COMMANDS_RECURSE)) + { +#ifndef VMS + free (argv[0]); + free ((char *) argv); +#endif + goto next_command; + } + + /* Flush the output streams so they won't have things written twice. */ + + fflush (stdout); + fflush (stderr); + +#ifndef VMS +#if !defined(WINDOWS32) && !defined(_AMIGA) && !defined(__MSDOS__) + + /* Set up a bad standard input that reads from a broken pipe. */ + + if (bad_stdin == -1) + { + /* Make a file descriptor that is the read end of a broken pipe. + This will be used for some children's standard inputs. */ + int pd[2]; + if (pipe (pd) == 0) + { + /* Close the write side. */ + (void) close (pd[1]); + /* Save the read side. */ + bad_stdin = pd[0]; + + /* Set the descriptor to close on exec, so it does not litter any + child's descriptor table. When it is dup2'd onto descriptor 0, + that descriptor will not close on exec. */ + CLOSE_ON_EXEC (bad_stdin); + } + } + +#endif /* !WINDOWS32 && !_AMIGA && !__MSDOS__ */ + + /* Decide whether to give this child the `good' standard input + (one that points to the terminal or whatever), or the `bad' one + that points to the read side of a broken pipe. */ + + child->good_stdin = !good_stdin_used; + if (child->good_stdin) + good_stdin_used = 1; + +#endif /* !VMS */ + + child->deleted = 0; + +#ifndef _AMIGA + /* Set up the environment for the child. */ + if (child->environment == 0) + child->environment = target_environment (child->file); +#endif + +#if !defined(__MSDOS__) && !defined(_AMIGA) && !defined(WINDOWS32) + +#ifndef VMS + /* start_waiting_job has set CHILD->remote if we can start a remote job. */ + if (child->remote) + { + int is_remote, id, used_stdin; + if (start_remote_job (argv, child->environment, + child->good_stdin ? 0 : bad_stdin, + &is_remote, &id, &used_stdin)) + /* Don't give up; remote execution may fail for various reasons. If + so, simply run the job locally. */ + goto run_local; + else + { + if (child->good_stdin && !used_stdin) + { + child->good_stdin = 0; + good_stdin_used = 0; + } + child->remote = is_remote; + child->pid = id; + } + } + else +#endif /* !VMS */ + { + /* Fork the child process. */ + + char **parent_environ; + + run_local: + block_sigs (); + + child->remote = 0; + +#ifdef VMS + + if (!child_execute_job (argv, child)) { + /* Fork failed! */ + perror_with_name ("vfork", ""); + goto error; + } + +#else + + parent_environ = environ; + child->pid = vfork (); + environ = parent_environ; /* Restore value child may have clobbered. */ + if (child->pid == 0) + { + /* We are the child side. */ + unblock_sigs (); + + /* If we aren't running a recursive command and we have a jobserver + pipe, close it before exec'ing. */ + if (!(flags & COMMANDS_RECURSE) && job_fds[0] >= 0) + { + close (job_fds[0]); + close (job_fds[1]); + } + if (job_rfd >= 0) + close (job_rfd); + + child_execute_job (child->good_stdin ? 0 : bad_stdin, 1, + argv, child->environment); + } + else if (child->pid < 0) + { + /* Fork failed! */ + unblock_sigs (); + perror_with_name ("vfork", ""); + goto error; + } +#endif /* !VMS */ + } + +#else /* __MSDOS__ or Amiga or WINDOWS32 */ +#ifdef __MSDOS__ + { + int proc_return; + + block_sigs (); + dos_status = 0; + + /* We call `system' to do the job of the SHELL, since stock DOS + shell is too dumb. Our `system' knows how to handle long + command lines even if pipes/redirection is needed; it will only + call COMMAND.COM when its internal commands are used. */ + if (execute_by_shell) + { + char *cmdline = argv[0]; + /* We don't have a way to pass environment to `system', + so we need to save and restore ours, sigh... */ + char **parent_environ = environ; + + environ = child->environment; + + /* If we have a *real* shell, tell `system' to call + it to do everything for us. */ + if (unixy_shell) + { + /* A *real* shell on MSDOS may not support long + command lines the DJGPP way, so we must use `system'. */ + cmdline = argv[2]; /* get past "shell -c" */ + } + + dos_command_running = 1; + proc_return = system (cmdline); + environ = parent_environ; + execute_by_shell = 0; /* for the next time */ + } + else + { + dos_command_running = 1; + proc_return = spawnvpe (P_WAIT, argv[0], argv, child->environment); + } + + /* Need to unblock signals before turning off + dos_command_running, so that child's signals + will be treated as such (see fatal_error_signal). */ + unblock_sigs (); + dos_command_running = 0; + + /* If the child got a signal, dos_status has its + high 8 bits set, so be careful not to alter them. */ + if (proc_return == -1) + dos_status |= 0xff; + else + dos_status |= (proc_return & 0xff); + ++dead_children; + child->pid = dos_pid++; + } +#endif /* __MSDOS__ */ +#ifdef _AMIGA + amiga_status = MyExecute (argv); + + ++dead_children; + child->pid = amiga_pid++; + if (amiga_batch_file) + { + amiga_batch_file = 0; + DeleteFile (amiga_bname); /* Ignore errors. */ + } +#endif /* Amiga */ +#ifdef WINDOWS32 + { + HANDLE hPID; + char* arg0; + + /* make UNC paths safe for CreateProcess -- backslash format */ + arg0 = argv[0]; + if (arg0 && arg0[0] == '/' && arg0[1] == '/') + for ( ; arg0 && *arg0; arg0++) + if (*arg0 == '/') + *arg0 = '\\'; + + /* make sure CreateProcess() has Path it needs */ + sync_Path_environment(); + + hPID = process_easy(argv, child->environment); + + if (hPID != INVALID_HANDLE_VALUE) + child->pid = (int) hPID; + else { + int i; + unblock_sigs(); + fprintf(stderr, + _("process_easy() failed failed to launch process (e=%d)\n"), + process_last_err(hPID)); + for (i = 0; argv[i]; i++) + fprintf(stderr, "%s ", argv[i]); + fprintf(stderr, _("\nCounted %d args in failed launch\n"), i); + } + } +#endif /* WINDOWS32 */ +#endif /* __MSDOS__ or Amiga or WINDOWS32 */ + + /* We are the parent side. Set the state to + say the commands are running and return. */ + + set_command_state (child->file, cs_running); + + /* Free the storage used by the child's argument list. */ +#ifndef VMS + free (argv[0]); + free ((char *) argv); +#endif + + return; + + error: + child->file->update_status = 2; + notice_finished_file (child->file); + return; +} + +/* Try to start a child running. + Returns nonzero if the child was started (and maybe finished), or zero if + the load was too high and the child was put on the `waiting_jobs' chain. */ + +static int +start_waiting_job (c) + struct child *c; +{ + struct file *f = c->file; + + /* If we can start a job remotely, we always want to, and don't care about + the local load average. We record that the job should be started + remotely in C->remote for start_job_command to test. */ + + c->remote = start_remote_job_p (1); + + /* If we are running at least one job already and the load average + is too high, make this one wait. */ + if (!c->remote && job_slots_used > 0 && load_too_high ()) + { + /* Put this child on the chain of children waiting for the load average + to go down. */ + set_command_state (f, cs_running); + c->next = waiting_jobs; + waiting_jobs = c; + return 0; + } + + /* Start the first command; reap_children will run later command lines. */ + start_job_command (c); + + switch (f->command_state) + { + case cs_running: + c->next = children; + DB (DB_JOBS, (_("Putting child 0x%08lx (%s) PID %ld%s on the chain.\n"), + (unsigned long int) c, c->file->name, + (long) c->pid, c->remote ? _(" (remote)") : "")); + children = c; + /* One more job slot is in use. */ + ++job_slots_used; + unblock_sigs (); + break; + + case cs_not_started: + /* All the command lines turned out to be empty. */ + f->update_status = 0; + /* FALLTHROUGH */ + + case cs_finished: + notice_finished_file (f); + free_child (c); + break; + + default: + assert (f->command_state == cs_finished); + break; + } + + return 1; +} + +/* Create a `struct child' for FILE and start its commands running. */ + +void +new_job (file) + register struct file *file; +{ + register struct commands *cmds = file->cmds; + register struct child *c; + char **lines; + register unsigned int i; + + /* Let any previously decided-upon jobs that are waiting + for the load to go down start before this new one. */ + start_waiting_jobs (); + + /* Reap any children that might have finished recently. */ + reap_children (0, 0); + + /* Chop the commands up into lines if they aren't already. */ + chop_commands (cmds); + + /* Expand the command lines and store the results in LINES. */ + lines = (char **) xmalloc (cmds->ncommand_lines * sizeof (char *)); + for (i = 0; i < cmds->ncommand_lines; ++i) + { + /* Collapse backslash-newline combinations that are inside variable + or function references. These are left alone by the parser so + that they will appear in the echoing of commands (where they look + nice); and collapsed by construct_command_argv when it tokenizes. + But letting them survive inside function invocations loses because + we don't want the functions to see them as part of the text. */ + + char *in, *out, *ref; + + /* IN points to where in the line we are scanning. + OUT points to where in the line we are writing. + When we collapse a backslash-newline combination, + IN gets ahead of OUT. */ + + in = out = cmds->command_lines[i]; + while ((ref = strchr (in, '$')) != 0) + { + ++ref; /* Move past the $. */ + + if (out != in) + /* Copy the text between the end of the last chunk + we processed (where IN points) and the new chunk + we are about to process (where REF points). */ + bcopy (in, out, ref - in); + + /* Move both pointers past the boring stuff. */ + out += ref - in; + in = ref; + + if (*ref == '(' || *ref == '{') + { + char openparen = *ref; + char closeparen = openparen == '(' ? ')' : '}'; + int count; + char *p; + + *out++ = *in++; /* Copy OPENPAREN. */ + /* IN now points past the opening paren or brace. + Count parens or braces until it is matched. */ + count = 0; + while (*in != '\0') + { + if (*in == closeparen && --count < 0) + break; + else if (*in == '\\' && in[1] == '\n') + { + /* We have found a backslash-newline inside a + variable or function reference. Eat it and + any following whitespace. */ + + int quoted = 0; + for (p = in - 1; p > ref && *p == '\\'; --p) + quoted = !quoted; + + if (quoted) + /* There were two or more backslashes, so this is + not really a continuation line. We don't collapse + the quoting backslashes here as is done in + collapse_continuations, because the line will + be collapsed again after expansion. */ + *out++ = *in++; + else + { + /* Skip the backslash, newline and + any following whitespace. */ + in = next_token (in + 2); + + /* Discard any preceding whitespace that has + already been written to the output. */ + while (out > ref + && isblank ((unsigned char)out[-1])) + --out; + + /* Replace it all with a single space. */ + *out++ = ' '; + } + } + else + { + if (*in == openparen) + ++count; + + *out++ = *in++; + } + } + } + } + + /* There are no more references in this line to worry about. + Copy the remaining uninteresting text to the output. */ + if (out != in) + strcpy (out, in); + + /* Finally, expand the line. */ + lines[i] = allocated_variable_expand_for_file (cmds->command_lines[i], + file); + } + + /* Start the command sequence, record it in a new + `struct child', and add that to the chain. */ + + c = (struct child *) xmalloc (sizeof (struct child)); + bzero ((char *)c, sizeof (struct child)); + c->file = file; + c->command_lines = lines; + c->sh_batch_file = NULL; + + /* Fetch the first command line to be run. */ + job_next_command (c); + + /* Wait for a job slot to be freed up. If we allow an infinite number + don't bother; also job_slots will == 0 if we're using the jobserver. */ + + if (job_slots != 0) + while (job_slots_used == job_slots) + reap_children (1, 0); + +#ifdef MAKE_JOBSERVER + /* If we are controlling multiple jobs make sure we have a token before + starting the child. */ + + /* This can be inefficient. There's a decent chance that this job won't + actually have to run any subprocesses: the command script may be empty + or otherwise optimized away. It would be nice if we could defer + obtaining a token until just before we need it, in start_job_command. + To do that we'd need to keep track of whether we'd already obtained a + token (since start_job_command is called for each line of the job, not + just once). Also more thought needs to go into the entire algorithm; + this is where the old parallel job code waits, so... */ + + else if (job_fds[0] >= 0) + while (1) + { + char token; + int got_token; + int saved_errno; + + DB (DB_JOBS, ("Need a job token; we %shave children\n", + children ? "" : "don't ")); + + /* If we don't already have a job started, use our "free" token. */ + if (!children) + break; + + /* Read a token. As long as there's no token available we'll block. + We enable interruptible system calls before the read(2) so that if + we get a SIGCHLD while we're waiting, we'll return with EINTR and + we can process the death(s) and return tokens to the free pool. + + Once we return from the read, we immediately reinstate restartable + system calls. This allows us to not worry about checking for + EINTR on all the other system calls in the program. + + There is one other twist: there is a span between the time + reap_children() does its last check for dead children and the time + the read(2) call is entered, below, where if a child dies we won't + notice. This is extremely serious as it could cause us to + deadlock, given the right set of events. + + To avoid this, we do the following: before we reap_children(), we + dup(2) the read FD on the jobserver pipe. The read(2) call below + uses that new FD. In the signal handler, we close that FD. That + way, if a child dies during the section mentioned above, the + read(2) will be invoked with an invalid FD and will return + immediately with EBADF. */ + + /* Make sure we have a dup'd FD. */ + if (job_rfd < 0) + { + DB (DB_JOBS, ("Duplicate the job FD\n")); + job_rfd = dup (job_fds[0]); + } + + /* Reap anything that's currently waiting. */ + reap_children (0, 0); + + /* If our "free" token has become available, use it. */ + if (!children) + break; + + /* Set interruptible system calls, and read() for a job token. */ + set_child_handler_action_flags (0); + got_token = read (job_rfd, &token, 1); + saved_errno = errno; + set_child_handler_action_flags (SA_RESTART); + + /* If we got one, we're done here. */ + if (got_token == 1) + { + DB (DB_JOBS, (_("Obtained token for child 0x%08lx (%s).\n"), + (unsigned long int) c, c->file->name)); + break; + } + + /* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise, + go back and reap_children(), and try again. */ + errno = saved_errno; + if (errno != EINTR && errno != EBADF) + pfatal_with_name (_("read jobs pipe")); + if (errno == EBADF) + DB (DB_JOBS, ("Read returned EBADF.\n")); + } +#endif + + /* The job is now primed. Start it running. + (This will notice if there are in fact no commands.) */ + (void) start_waiting_job (c); + + if (job_slots == 1 || not_parallel) + /* Since there is only one job slot, make things run linearly. + Wait for the child to die, setting the state to `cs_finished'. */ + while (file->command_state == cs_running) + reap_children (1, 0); + + return; +} + +/* Move CHILD's pointers to the next command for it to execute. + Returns nonzero if there is another command. */ + +static int +job_next_command (child) + struct child *child; +{ + while (child->command_ptr == 0 || *child->command_ptr == '\0') + { + /* There are no more lines in the expansion of this line. */ + if (child->command_line == child->file->cmds->ncommand_lines) + { + /* There are no more lines to be expanded. */ + child->command_ptr = 0; + return 0; + } + else + /* Get the next line to run. */ + child->command_ptr = child->command_lines[child->command_line++]; + } + return 1; +} + +static int +load_too_high () +{ +#if defined(__MSDOS__) || defined(VMS) || defined(_AMIGA) + return 1; +#else + double load; + + if (max_load_average < 0) + return 0; + + make_access (); + if (getloadavg (&load, 1) != 1) + { + static int lossage = -1; + /* Complain only once for the same error. */ + if (lossage == -1 || errno != lossage) + { + if (errno == 0) + /* An errno value of zero means getloadavg is just unsupported. */ + error (NILF, + _("cannot enforce load limits on this operating system")); + else + perror_with_name (_("cannot enforce load limit: "), "getloadavg"); + } + lossage = errno; + load = 0; + } + user_access (); + + DB (DB_JOBS, ("Current system load = %f (max requested = %f)\n", + load, max_load_average)); + return load >= max_load_average; +#endif +} + +/* Start jobs that are waiting for the load to be lower. */ + +void +start_waiting_jobs () +{ + struct child *job; + + if (waiting_jobs == 0) + return; + + do + { + /* Check for recently deceased descendants. */ + reap_children (0, 0); + + /* Take a job off the waiting list. */ + job = waiting_jobs; + waiting_jobs = job->next; + + /* Try to start that job. We break out of the loop as soon + as start_waiting_job puts one back on the waiting list. */ + } + while (start_waiting_job (job) && waiting_jobs != 0); + + return; +} + +#ifndef WINDOWS32 +#ifdef VMS +#include +#include + +/* This is called as an AST when a child process dies (it won't get + interrupted by anything except a higher level AST). +*/ +int vmsHandleChildTerm(struct child *child) +{ + int status; + register struct child *lastc, *c; + int child_failed; + + vms_jobsefnmask &= ~(1 << (child->efn - 32)); + + lib$free_ef(&child->efn); + + (void) sigblock (fatal_signal_mask); + + child_failed = !(child->cstatus & 1 || ((child->cstatus & 7) == 0)); + + /* Search for a child matching the deceased one. */ + lastc = 0; +#if defined(RECURSIVEJOBS) /* I've had problems with recursive stuff and process handling */ + for (c = children; c != 0 && c != child; lastc = c, c = c->next); +#else + c = child; +#endif + + if (child_failed && !c->noerror && !ignore_errors_flag) + { + /* The commands failed. Write an error message, + delete non-precious targets, and abort. */ + child_error (c->file->name, c->cstatus, 0, 0, 0); + c->file->update_status = 1; + delete_child_targets (c); + } + else + { + if (child_failed) + { + /* The commands failed, but we don't care. */ + child_error (c->file->name, c->cstatus, 0, 0, 1); + child_failed = 0; + } + +#if defined(RECURSIVEJOBS) /* I've had problems with recursive stuff and process handling */ + /* If there are more commands to run, try to start them. */ + start_job (c); + + switch (c->file->command_state) + { + case cs_running: + /* Successfully started. */ + break; + + case cs_finished: + if (c->file->update_status != 0) { + /* We failed to start the commands. */ + delete_child_targets (c); + } + break; + + default: + error (NILF, _("internal error: `%s' command_state"), + c->file->name); + abort (); + break; + } +#endif /* RECURSIVEJOBS */ + } + + /* Set the state flag to say the commands have finished. */ + c->file->command_state = cs_finished; + notice_finished_file (c->file); + +#if defined(RECURSIVEJOBS) /* I've had problems with recursive stuff and process handling */ + /* Remove the child from the chain and free it. */ + if (lastc == 0) + children = c->next; + else + lastc->next = c->next; + free_child (c); +#endif /* RECURSIVEJOBS */ + + /* There is now another slot open. */ + if (job_slots_used > 0) + --job_slots_used; + + /* If the job failed, and the -k flag was not given, die. */ + if (child_failed && !keep_going_flag) + die (EXIT_FAILURE); + + (void) sigsetmask (sigblock (0) & ~(fatal_signal_mask)); + + return 1; +} + +/* VMS: + Spawn a process executing the command in ARGV and return its pid. */ + +#define MAXCMDLEN 200 + +/* local helpers to make ctrl+c and ctrl+y working, see below */ +#include +#include +#include + +static int ctrlMask= LIB$M_CLI_CTRLY; +static int oldCtrlMask; +static int setupYAstTried= 0; +static int pidToAbort= 0; +static int chan= 0; + +static void reEnableAst(void) { + lib$enable_ctrl (&oldCtrlMask,0); +} + +static astHandler (void) { + if (pidToAbort) { + sys$forcex (&pidToAbort, 0, SS$_ABORT); + pidToAbort= 0; + } + kill (getpid(),SIGQUIT); +} + +static void tryToSetupYAst(void) { + $DESCRIPTOR(inputDsc,"SYS$COMMAND"); + int status; + struct { + short int status, count; + int dvi; + } iosb; + + setupYAstTried++; + + if (!chan) { + status= sys$assign(&inputDsc,&chan,0,0); + if (!(status&SS$_NORMAL)) { + lib$signal(status); + return; + } + } + status= sys$qiow (0, chan, IO$_SETMODE|IO$M_CTRLYAST,&iosb,0,0, + astHandler,0,0,0,0,0); + if (status==SS$_ILLIOFUNC) { + sys$dassgn(chan); +#ifdef CTRLY_ENABLED_ANYWAY + fprintf (stderr, + _("-warning, CTRL-Y will leave sub-process(es) around.\n")); +#else + return; +#endif + } + if (status==SS$_NORMAL) + status= iosb.status; + if (!(status&SS$_NORMAL)) { + lib$signal(status); + return; + } + + /* called from AST handler ? */ + if (setupYAstTried>1) + return; + if (atexit(reEnableAst)) + fprintf (stderr, + _("-warning, you may have to re-enable CTRL-Y handling from DCL.\n")); + status= lib$disable_ctrl (&ctrlMask, &oldCtrlMask); + if (!(status&SS$_NORMAL)) { + lib$signal(status); + return; + } +} +int +child_execute_job (argv, child) + char *argv; + struct child *child; +{ + int i; + static struct dsc$descriptor_s cmddsc; + static struct dsc$descriptor_s pnamedsc; + static struct dsc$descriptor_s ifiledsc; + static struct dsc$descriptor_s ofiledsc; + static struct dsc$descriptor_s efiledsc; + int have_redirection = 0; + int have_newline = 0; + + int spflags = CLI$M_NOWAIT; + int status; + char *cmd = alloca (strlen (argv) + 512), *p, *q; + char ifile[256], ofile[256], efile[256]; + char *comname = 0; + char procname[100]; + + /* Parse IO redirection. */ + + ifile[0] = 0; + ofile[0] = 0; + efile[0] = 0; + + DB (DB_JOBS, ("child_execute_job (%s)\n", argv)); + + while (isspace ((unsigned char)*argv)) + argv++; + + if (*argv == 0) + return 0; + + sprintf (procname, "GMAKE_%05x", getpid () & 0xfffff); + pnamedsc.dsc$w_length = strlen(procname); + pnamedsc.dsc$a_pointer = procname; + pnamedsc.dsc$b_dtype = DSC$K_DTYPE_T; + pnamedsc.dsc$b_class = DSC$K_CLASS_S; + + /* Handle comments and redirection. */ + for (p = argv, q = cmd; *p; p++, q++) + { + switch (*p) + { + case '#': + *p-- = 0; + *q-- = 0; + break; + case '\\': + p++; + if (*p == '\n') + p++; + if (isspace ((unsigned char)*p)) + { + do { p++; } while (isspace ((unsigned char)*p)); + p--; + } + *q = *p; + break; + case '<': + p = vms_redirect (&ifiledsc, ifile, p); + *q = ' '; + have_redirection = 1; + break; + case '>': + have_redirection = 1; + if (*(p-1) == '2') + { + q--; + if (strncmp (p, ">&1", 3) == 0) + { + p += 3; + strcpy (efile, "sys$output"); + efiledsc.dsc$w_length = strlen(efile); + efiledsc.dsc$a_pointer = efile; + efiledsc.dsc$b_dtype = DSC$K_DTYPE_T; + efiledsc.dsc$b_class = DSC$K_CLASS_S; + } + else + { + p = vms_redirect (&efiledsc, efile, p); + } + } + else + { + p = vms_redirect (&ofiledsc, ofile, p); + } + *q = ' '; + break; + case '\n': + have_newline = 1; + default: + *q = *p; + break; + } + } + *q = *p; + + if (strncmp (cmd, "builtin_", 8) == 0) + { + child->pid = 270163; + child->efn = 0; + child->cstatus = 1; + + DB (DB_JOBS, (_("BUILTIN [%s][%s]\n"), cmd, cmd+8)); + + p = cmd + 8; + + if ((*(p) == 'c') + && (*(p+1) == 'd') + && ((*(p+2) == ' ') || (*(p+2) == '\t'))) + { + p += 3; + while ((*p == ' ') || (*p == '\t')) + p++; + DB (DB_JOBS, (_("BUILTIN CD %s\n"), p)); + if (chdir (p)) + return 0; + else + return 1; + } + else if ((*(p) == 'r') + && (*(p+1) == 'm') + && ((*(p+2) == ' ') || (*(p+2) == '\t'))) + { + int in_arg; + + /* rm */ + p += 3; + while ((*p == ' ') || (*p == '\t')) + p++; + in_arg = 1; + + DB (DB_JOBS, (_("BUILTIN RM %s\n"), p)); + while (*p) + { + switch (*p) + { + case ' ': + case '\t': + if (in_arg) + { + *p++ = ';'; + in_arg = 0; + } + break; + default: + break; + } + p++; + } + } + else + { + printf(_("Unknown builtin command '%s'\n"), cmd); + fflush(stdout); + return 0; + } + } + + /* Create a *.com file if either the command is too long for + lib$spawn, or the command contains a newline, or if redirection + is desired. Forcing commands with newlines into DCLs allows to + store search lists on user mode logicals. */ + + if (strlen (cmd) > MAXCMDLEN + || (have_redirection != 0) + || (have_newline != 0)) + { + FILE *outfile; + char c; + char *sep; + int alevel = 0; /* apostrophe level */ + + if (strlen (cmd) == 0) + { + printf (_("Error, empty command\n")); + fflush (stdout); + return 0; + } + + outfile = open_tmpfile (&comname, "sys$scratch:CMDXXXXXX.COM"); + if (outfile == 0) + pfatal_with_name (_("fopen (temporary file)")); + + if (ifile[0]) + { + fprintf (outfile, "$ assign/user %s sys$input\n", ifile); + DB (DB_JOBS, (_("Redirected input from %s\n"), ifile)); + ifiledsc.dsc$w_length = 0; + } + + if (efile[0]) + { + fprintf (outfile, "$ define sys$error %s\n", efile); + DB (DB_JOBS, (_("Redirected error to %s\n"), efile)); + efiledsc.dsc$w_length = 0; + } + + if (ofile[0]) + { + fprintf (outfile, "$ define sys$output %s\n", ofile); + DB (DB_JOBS, (_("Redirected output to %s\n"), ofile)); + ofiledsc.dsc$w_length = 0; + } + + p = sep = q = cmd; + for (c = '\n'; c; c = *q++) + { + switch (c) + { + case '\n': + /* At a newline, skip any whitespace around a leading $ + from the command and issue exactly one $ into the DCL. */ + while (isspace ((unsigned char)*p)) + p++; + if (*p == '$') + p++; + while (isspace ((unsigned char)*p)) + p++; + fwrite (p, 1, q - p, outfile); + fputc ('$', outfile); + fputc (' ', outfile); + /* Reset variables. */ + p = sep = q; + break; + + /* Nice places for line breaks are after strings, after + comma or space and before slash. */ + case '"': + q = handle_apos (q + 1); + sep = q; + break; + case ',': + case ' ': + sep = q; + break; + case '/': + case '\0': + sep = q - 1; + break; + default: + break; + } + if (sep - p > 78) + { + /* Enough stuff for a line. */ + fwrite (p, 1, sep - p, outfile); + p = sep; + if (*sep) + { + /* The command continues. */ + fputc ('-', outfile); + } + fputc ('\n', outfile); + } + } + + fwrite (p, 1, q - p, outfile); + fputc ('\n', outfile); + + fclose (outfile); + + sprintf (cmd, "$ @%s", comname); + + DB (DB_JOBS, (_("Executing %s instead\n"), cmd)); + } + + cmddsc.dsc$w_length = strlen(cmd); + cmddsc.dsc$a_pointer = cmd; + cmddsc.dsc$b_dtype = DSC$K_DTYPE_T; + cmddsc.dsc$b_class = DSC$K_CLASS_S; + + child->efn = 0; + while (child->efn < 32 || child->efn > 63) + { + status = lib$get_ef ((unsigned long *)&child->efn); + if (!(status & 1)) + return 0; + } + + sys$clref (child->efn); + + vms_jobsefnmask |= (1 << (child->efn - 32)); + +/* + LIB$SPAWN [command-string] + [,input-file] + [,output-file] + [,flags] + [,process-name] + [,process-id] [,completion-status-address] [,byte-integer-event-flag-num] + [,AST-address] [,varying-AST-argument] + [,prompt-string] [,cli] [,table] +*/ + +#ifndef DONTWAITFORCHILD +/* + * Code to make ctrl+c and ctrl+y working. + * The problem starts with the synchronous case where after lib$spawn is + * called any input will go to the child. But with input re-directed, + * both control characters won't make it to any of the programs, neither + * the spawning nor to the spawned one. Hence the caller needs to spawn + * with CLI$M_NOWAIT to NOT give up the input focus. A sys$waitfr + * has to follow to simulate the wanted synchronous behaviour. + * The next problem is ctrl+y which isn't caught by the crtl and + * therefore isn't converted to SIGQUIT (for a signal handler which is + * already established). The only way to catch ctrl+y, is an AST + * assigned to the input channel. But ctrl+y handling of DCL needs to be + * disabled, otherwise it will handle it. Not to mention the previous + * ctrl+y handling of DCL needs to be re-established before make exits. + * One more: At the time of LIB$SPAWN signals are blocked. SIGQUIT will + * make it to the signal handler after the child "normally" terminates. + * This isn't enough. It seems reasonable for simple command lines like + * a 'cc foobar.c' spawned in a subprocess but it is unacceptable for + * spawning make. Therefore we need to abort the process in the AST. + * + * Prior to the spawn it is checked if an AST is already set up for + * ctrl+y, if not one is set up for a channel to SYS$COMMAND. In general + * this will work except if make is run in a batch environment, but there + * nobody can press ctrl+y. During the setup the DCL handling of ctrl+y + * is disabled and an exit handler is established to re-enable it. + * If the user interrupts with ctrl+y, the assigned AST will fire, force + * an abort to the subprocess and signal SIGQUIT, which will be caught by + * the already established handler and will bring us back to common code. + * After the spawn (now /nowait) a sys$waitfr simulates the /wait and + * enables the ctrl+y be delivered to this code. And the ctrl+c too, + * which the crtl converts to SIGINT and which is caught by the common + * signal handler. Because signals were blocked before entering this code + * sys$waitfr will always complete and the SIGQUIT will be processed after + * it (after termination of the current block, somewhere in common code). + * And SIGINT too will be delayed. That is ctrl+c can only abort when the + * current command completes. Anyway it's better than nothing :-) + */ + + if (!setupYAstTried) + tryToSetupYAst(); + status = lib$spawn (&cmddsc, /* cmd-string */ + (ifiledsc.dsc$w_length == 0)?0:&ifiledsc, /* input-file */ + (ofiledsc.dsc$w_length == 0)?0:&ofiledsc, /* output-file */ + &spflags, /* flags */ + &pnamedsc, /* proc name */ + &child->pid, &child->cstatus, &child->efn, + 0, 0, + 0, 0, 0); + pidToAbort= child->pid; + status= sys$waitfr (child->efn); + pidToAbort= 0; + vmsHandleChildTerm(child); +#else + status = lib$spawn (&cmddsc, + (ifiledsc.dsc$w_length == 0)?0:&ifiledsc, + (ofiledsc.dsc$w_length == 0)?0:&ofiledsc, + &spflags, + &pnamedsc, + &child->pid, &child->cstatus, &child->efn, + vmsHandleChildTerm, child, + 0, 0, 0); +#endif + + if (!(status & 1)) + { + printf (_("Error spawning, %d\n") ,status); + fflush (stdout); + } + + if (comname && !ISDB (DB_JOBS)) + unlink (comname); + + return (status & 1); +} + +#else /* !VMS */ + +#if !defined (_AMIGA) && !defined (__MSDOS__) +/* UNIX: + Replace the current process with one executing the command in ARGV. + STDIN_FD and STDOUT_FD are used as the process's stdin and stdout; ENVP is + the environment of the new program. This function does not return. */ + +void +child_execute_job (stdin_fd, stdout_fd, argv, envp) + int stdin_fd, stdout_fd; + char **argv, **envp; +{ + if (stdin_fd != 0) + (void) dup2 (stdin_fd, 0); + if (stdout_fd != 1) + (void) dup2 (stdout_fd, 1); + if (stdin_fd != 0) + (void) close (stdin_fd); + if (stdout_fd != 1) + (void) close (stdout_fd); + + /* Run the command. */ + exec_command (argv, envp); +} +#endif /* !AMIGA && !__MSDOS__ */ +#endif /* !VMS */ +#endif /* !WINDOWS32 */ + +#ifndef _AMIGA +/* Replace the current process with one running the command in ARGV, + with environment ENVP. This function does not return. */ + +void +exec_command (argv, envp) + char **argv, **envp; +{ +#ifdef VMS + /* to work around a problem with signals and execve: ignore them */ +#ifdef SIGCHLD + signal (SIGCHLD,SIG_IGN); +#endif + /* Run the program. */ + execve (argv[0], argv, envp); + perror_with_name ("execve: ", argv[0]); + _exit (EXIT_FAILURE); +#else +#ifdef WINDOWS32 + HANDLE hPID; + HANDLE hWaitPID; + int err = 0; + int exit_code = EXIT_FAILURE; + + /* make sure CreateProcess() has Path it needs */ + sync_Path_environment(); + + /* launch command */ + hPID = process_easy(argv, envp); + + /* make sure launch ok */ + if (hPID == INVALID_HANDLE_VALUE) + { + int i; + fprintf(stderr, + _("process_easy() failed failed to launch process (e=%d)\n"), + process_last_err(hPID)); + for (i = 0; argv[i]; i++) + fprintf(stderr, "%s ", argv[i]); + fprintf(stderr, _("\nCounted %d args in failed launch\n"), i); + exit(EXIT_FAILURE); + } + + /* wait and reap last child */ + while (hWaitPID = process_wait_for_any()) + { + /* was an error found on this process? */ + err = process_last_err(hWaitPID); + + /* get exit data */ + exit_code = process_exit_code(hWaitPID); + + if (err) + fprintf(stderr, "make (e=%d, rc=%d): %s", + err, exit_code, map_windows32_error_to_string(err)); + + /* cleanup process */ + process_cleanup(hWaitPID); + + /* expect to find only last pid, warn about other pids reaped */ + if (hWaitPID == hPID) + break; + else + fprintf(stderr, + _("make reaped child pid %d, still waiting for pid %d\n"), + hWaitPID, hPID); + } + + /* return child's exit code as our exit code */ + exit(exit_code); + +#else /* !WINDOWS32 */ + + /* Be the user, permanently. */ + child_access (); + + /* Run the program. */ + environ = envp; + execvp (argv[0], argv); + + switch (errno) + { + case ENOENT: + error (NILF, _("%s: Command not found"), argv[0]); + break; + case ENOEXEC: + { + /* The file is not executable. Try it as a shell script. */ + extern char *getenv (); + char *shell; + char **new_argv; + int argc; + + shell = getenv ("SHELL"); + if (shell == 0) + shell = default_shell; + + argc = 1; + while (argv[argc] != 0) + ++argc; + + new_argv = (char **) alloca ((1 + argc + 1) * sizeof (char *)); + new_argv[0] = shell; + new_argv[1] = argv[0]; + while (argc > 0) + { + new_argv[1 + argc] = argv[argc]; + --argc; + } + + execvp (shell, new_argv); + if (errno == ENOENT) + error (NILF, _("%s: Shell program not found"), shell); + else + perror_with_name ("execvp: ", shell); + break; + } + + default: + perror_with_name ("execvp: ", argv[0]); + break; + } + + _exit (127); +#endif /* !WINDOWS32 */ +#endif /* !VMS */ +} +#else /* On Amiga */ +void exec_command (argv) + char **argv; +{ + MyExecute (argv); +} + +void clean_tmp (void) +{ + DeleteFile (amiga_bname); +} + +#endif /* On Amiga */ + +#ifndef VMS +/* Figure out the argument list necessary to run LINE as a command. Try to + avoid using a shell. This routine handles only ' quoting, and " quoting + when no backslash, $ or ` characters are seen in the quotes. Starting + quotes may be escaped with a backslash. If any of the characters in + sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[] + is the first word of a line, the shell is used. + + If RESTP is not NULL, *RESTP is set to point to the first newline in LINE. + If *RESTP is NULL, newlines will be ignored. + + SHELL is the shell to use, or nil to use the default shell. + IFS is the value of $IFS, or nil (meaning the default). */ + +static char ** +construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr) + char *line, **restp; + char *shell, *ifs; + char **batch_filename_ptr; +{ +#ifdef __MSDOS__ + /* MSDOS supports both the stock DOS shell and ports of Unixy shells. + We call `system' for anything that requires ``slow'' processing, + because DOS shells are too dumb. When $SHELL points to a real + (unix-style) shell, `system' just calls it to do everything. When + $SHELL points to a DOS shell, `system' does most of the work + internally, calling the shell only for its internal commands. + However, it looks on the $PATH first, so you can e.g. have an + external command named `mkdir'. + + Since we call `system', certain characters and commands below are + actually not specific to COMMAND.COM, but to the DJGPP implementation + of `system'. In particular: + + The shell wildcard characters are in DOS_CHARS because they will + not be expanded if we call the child via `spawnXX'. + + The `;' is in DOS_CHARS, because our `system' knows how to run + multiple commands on a single line. + + DOS_CHARS also include characters special to 4DOS/NDOS, so we + won't have to tell one from another and have one more set of + commands and special characters. */ + static char sh_chars_dos[] = "*?[];|<>%^&()"; + static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls", + "copy", "ctty", "date", "del", "dir", "echo", + "erase", "exit", "for", "goto", "if", "md", + "mkdir", "path", "pause", "prompt", "rd", + "rmdir", "rem", "ren", "rename", "set", + "shift", "time", "type", "ver", "verify", + "vol", ":", 0 }; + + static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^"; + static char *sh_cmds_sh[] = { "cd", "echo", "eval", "exec", "exit", "login", + "logout", "set", "umask", "wait", "while", + "for", "case", "if", ":", ".", "break", + "continue", "export", "read", "readonly", + "shift", "times", "trap", "switch", "unset", + 0 }; + + char *sh_chars; + char **sh_cmds; +#else +#ifdef _AMIGA + static char sh_chars[] = "#;\"|<>()?*$`"; + static char *sh_cmds[] = { "cd", "eval", "if", "delete", "echo", "copy", + "rename", "set", "setenv", "date", "makedir", + "skip", "else", "endif", "path", "prompt", + "unset", "unsetenv", "version", + 0 }; +#else +#ifdef WINDOWS32 + static char sh_chars_dos[] = "\"|&<>"; + static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls", + "copy", "ctty", "date", "del", "dir", "echo", + "erase", "exit", "for", "goto", "if", "if", "md", + "mkdir", "path", "pause", "prompt", "rd", "rem", + "ren", "rename", "rmdir", "set", "shift", "time", + "type", "ver", "verify", "vol", ":", 0 }; + static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^"; + static char *sh_cmds_sh[] = { "cd", "eval", "exec", "exit", "login", + "logout", "set", "umask", "wait", "while", "for", + "case", "if", ":", ".", "break", "continue", + "export", "read", "readonly", "shift", "times", + "trap", "switch", "test", +#ifdef BATCH_MODE_ONLY_SHELL + "echo", +#endif + 0 }; + char* sh_chars; + char** sh_cmds; +#else /* must be UNIX-ish */ + static char sh_chars[] = "#;\"*?[]&|<>(){}$`^~"; + static char *sh_cmds[] = { "cd", "eval", "exec", "exit", "login", + "logout", "set", "umask", "wait", "while", "for", + "case", "if", ":", ".", "break", "continue", + "export", "read", "readonly", "shift", "times", + "trap", "switch", 0 }; +#endif /* WINDOWS32 */ +#endif /* Amiga */ +#endif /* __MSDOS__ */ + register int i; + register char *p; + register char *ap; + char *end; + int instring, word_has_equals, seen_nonequals, last_argument_was_empty; + char **new_argv = 0; +#ifdef WINDOWS32 + int slow_flag = 0; + + if (no_default_sh_exe) { + sh_cmds = sh_cmds_dos; + sh_chars = sh_chars_dos; + } else { + sh_cmds = sh_cmds_sh; + sh_chars = sh_chars_sh; + } +#endif /* WINDOWS32 */ + + if (restp != NULL) + *restp = NULL; + + /* Make sure not to bother processing an empty line. */ + while (isblank ((unsigned char)*line)) + ++line; + if (*line == '\0') + return 0; + + /* See if it is safe to parse commands internally. */ + if (shell == 0) + shell = default_shell; +#ifdef WINDOWS32 + else if (strcmp (shell, default_shell)) + { + char *s1 = _fullpath(NULL, shell, 0); + char *s2 = _fullpath(NULL, default_shell, 0); + + slow_flag = strcmp((s1 ? s1 : ""), (s2 ? s2 : "")); + + if (s1) + free (s1); + if (s2) + free (s2); + } + if (slow_flag) + goto slow; +#else /* not WINDOWS32 */ +#ifdef __MSDOS__ + else if (stricmp (shell, default_shell)) + { + extern int _is_unixy_shell (const char *_path); + + message (1, _("$SHELL changed (was `%s', now `%s')"), default_shell, shell); + unixy_shell = _is_unixy_shell (shell); + default_shell = shell; + } + if (unixy_shell) + { + sh_chars = sh_chars_sh; + sh_cmds = sh_cmds_sh; + } + else + { + sh_chars = sh_chars_dos; + sh_cmds = sh_cmds_dos; + } +#else /* not __MSDOS__ */ + else if (strcmp (shell, default_shell)) + goto slow; +#endif /* not __MSDOS__ */ +#endif /* not WINDOWS32 */ + + if (ifs != 0) + for (ap = ifs; *ap != '\0'; ++ap) + if (*ap != ' ' && *ap != '\t' && *ap != '\n') + goto slow; + + i = strlen (line) + 1; + + /* More than 1 arg per character is impossible. */ + new_argv = (char **) xmalloc (i * sizeof (char *)); + + /* All the args can fit in a buffer as big as LINE is. */ + ap = new_argv[0] = (char *) xmalloc (i); + end = ap + i; + + /* I is how many complete arguments have been found. */ + i = 0; + instring = word_has_equals = seen_nonequals = last_argument_was_empty = 0; + for (p = line; *p != '\0'; ++p) + { + if (ap > end) + abort (); + + if (instring) + { + string_char: + /* Inside a string, just copy any char except a closing quote + or a backslash-newline combination. */ + if (*p == instring) + { + instring = 0; + if (ap == new_argv[0] || *(ap-1) == '\0') + last_argument_was_empty = 1; + } + else if (*p == '\\' && p[1] == '\n') + goto swallow_escaped_newline; + else if (*p == '\n' && restp != NULL) + { + /* End of the command line. */ + *restp = p; + goto end_of_line; + } + /* Backslash, $, and ` are special inside double quotes. + If we see any of those, punt. + But on MSDOS, if we use COMMAND.COM, double and single + quotes have the same effect. */ + else if (instring == '"' && strchr ("\\$`", *p) != 0 && unixy_shell) + goto slow; + else + *ap++ = *p; + } + else if (strchr (sh_chars, *p) != 0) + /* Not inside a string, but it's a special char. */ + goto slow; +#ifdef __MSDOS__ + else if (*p == '.' && p[1] == '.' && p[2] == '.' && p[3] != '.') + /* `...' is a wildcard in DJGPP. */ + goto slow; +#endif + else + /* Not a special char. */ + switch (*p) + { + case '=': + /* Equals is a special character in leading words before the + first word with no equals sign in it. This is not the case + with sh -k, but we never get here when using nonstandard + shell flags. */ + if (! seen_nonequals && unixy_shell) + goto slow; + word_has_equals = 1; + *ap++ = '='; + break; + + case '\\': + /* Backslash-newline combinations are eaten. */ + if (p[1] == '\n') + { + swallow_escaped_newline: + + /* Eat the backslash, the newline, and following whitespace, + replacing it all with a single space. */ + p += 2; + + /* If there is a tab after a backslash-newline, + remove it from the source line which will be echoed, + since it was most likely used to line + up the continued line with the previous one. */ + if (*p == '\t') + /* Note these overlap and strcpy() is undefined for + overlapping objects in ANSI C. The strlen() _IS_ right, + since we need to copy the nul byte too. */ + bcopy (p + 1, p, strlen (p)); + + if (instring) + goto string_char; + else + { + if (ap != new_argv[i]) + /* Treat this as a space, ending the arg. + But if it's at the beginning of the arg, it should + just get eaten, rather than becoming an empty arg. */ + goto end_of_arg; + else + p = next_token (p) - 1; + } + } + else if (p[1] != '\0') + { +#ifdef HAVE_DOS_PATHS + /* Only remove backslashes before characters special + to Unixy shells. All other backslashes are copied + verbatim, since they are probably DOS-style + directory separators. This still leaves a small + window for problems, but at least it should work + for the vast majority of naive users. */ + +#ifdef __MSDOS__ + /* A dot is only special as part of the "..." + wildcard. */ + if (strneq (p + 1, ".\\.\\.", 5)) + { + *ap++ = '.'; + *ap++ = '.'; + p += 4; + } + else +#endif + if (p[1] != '\\' && p[1] != '\'' + && !isspace ((unsigned char)p[1]) + && (strchr (sh_chars_sh, p[1]) == 0)) + /* back up one notch, to copy the backslash */ + --p; +#endif /* HAVE_DOS_PATHS */ + + /* Copy and skip the following char. */ + *ap++ = *++p; + } + break; + + case '\'': + case '"': + instring = *p; + break; + + case '\n': + if (restp != NULL) + { + /* End of the command line. */ + *restp = p; + goto end_of_line; + } + else + /* Newlines are not special. */ + *ap++ = '\n'; + break; + + case ' ': + case '\t': + end_of_arg: + /* We have the end of an argument. + Terminate the text of the argument. */ + *ap++ = '\0'; + new_argv[++i] = ap; + last_argument_was_empty = 0; + + /* Update SEEN_NONEQUALS, which tells us if every word + heretofore has contained an `='. */ + seen_nonequals |= ! word_has_equals; + if (word_has_equals && ! seen_nonequals) + /* An `=' in a word before the first + word without one is magical. */ + goto slow; + word_has_equals = 0; /* Prepare for the next word. */ + + /* If this argument is the command name, + see if it is a built-in shell command. + If so, have the shell handle it. */ + if (i == 1) + { + register int j; + for (j = 0; sh_cmds[j] != 0; ++j) + if (streq (sh_cmds[j], new_argv[0])) + goto slow; + } + + /* Ignore multiple whitespace chars. */ + p = next_token (p); + /* Next iteration should examine the first nonwhite char. */ + --p; + break; + + default: + *ap++ = *p; + break; + } + } + end_of_line: + + if (instring) + /* Let the shell deal with an unterminated quote. */ + goto slow; + + /* Terminate the last argument and the argument list. */ + + *ap = '\0'; + if (new_argv[i][0] != '\0' || last_argument_was_empty) + ++i; + new_argv[i] = 0; + + if (i == 1) + { + register int j; + for (j = 0; sh_cmds[j] != 0; ++j) + if (streq (sh_cmds[j], new_argv[0])) + goto slow; + } + + if (new_argv[0] == 0) + /* Line was empty. */ + return 0; + else + return new_argv; + + slow:; + /* We must use the shell. */ + + if (new_argv != 0) + { + /* Free the old argument list we were working on. */ + free (new_argv[0]); + free ((void *)new_argv); + } + +#ifdef __MSDOS__ + execute_by_shell = 1; /* actually, call `system' if shell isn't unixy */ +#endif + +#ifdef _AMIGA + { + char *ptr; + char *buffer; + char *dptr; + + buffer = (char *)xmalloc (strlen (line)+1); + + ptr = line; + for (dptr=buffer; *ptr; ) + { + if (*ptr == '\\' && ptr[1] == '\n') + ptr += 2; + else if (*ptr == '@') /* Kludge: multiline commands */ + { + ptr += 2; + *dptr++ = '\n'; + } + else + *dptr++ = *ptr++; + } + *dptr = 0; + + new_argv = (char **) xmalloc (2 * sizeof (char *)); + new_argv[0] = buffer; + new_argv[1] = 0; + } +#else /* Not Amiga */ +#ifdef WINDOWS32 + /* + * Not eating this whitespace caused things like + * + * sh -c "\n" + * + * which gave the shell fits. I think we have to eat + * whitespace here, but this code should be considered + * suspicious if things start failing.... + */ + + /* Make sure not to bother processing an empty line. */ + while (isspace ((unsigned char)*line)) + ++line; + if (*line == '\0') + return 0; +#endif /* WINDOWS32 */ + { + /* SHELL may be a multi-word command. Construct a command line + "SHELL -c LINE", with all special chars in LINE escaped. + Then recurse, expanding this command line to get the final + argument list. */ + + unsigned int shell_len = strlen (shell); +#ifndef VMS + static char minus_c[] = " -c "; +#else + static char minus_c[] = ""; +#endif + unsigned int line_len = strlen (line); + + char *new_line = (char *) alloca (shell_len + (sizeof (minus_c) - 1) + + (line_len * 2) + 1); + char *command_ptr = NULL; /* used for batch_mode_shell mode */ + + ap = new_line; + bcopy (shell, ap, shell_len); + ap += shell_len; + bcopy (minus_c, ap, sizeof (minus_c) - 1); + ap += sizeof (minus_c) - 1; + command_ptr = ap; + for (p = line; *p != '\0'; ++p) + { + if (restp != NULL && *p == '\n') + { + *restp = p; + break; + } + else if (*p == '\\' && p[1] == '\n') + { + /* Eat the backslash, the newline, and following whitespace, + replacing it all with a single space (which is escaped + from the shell). */ + p += 2; + + /* If there is a tab after a backslash-newline, + remove it from the source line which will be echoed, + since it was most likely used to line + up the continued line with the previous one. */ + if (*p == '\t') + bcopy (p + 1, p, strlen (p)); + + p = next_token (p); + --p; + if (unixy_shell && !batch_mode_shell) + *ap++ = '\\'; + *ap++ = ' '; + continue; + } + + /* DOS shells don't know about backslash-escaping. */ + if (unixy_shell && !batch_mode_shell && + (*p == '\\' || *p == '\'' || *p == '"' + || isspace ((unsigned char)*p) + || strchr (sh_chars, *p) != 0)) + *ap++ = '\\'; +#ifdef __MSDOS__ + else if (unixy_shell && strneq (p, "...", 3)) + { + /* The case of `...' wildcard again. */ + strcpy (ap, "\\.\\.\\"); + ap += 5; + p += 2; + } +#endif + *ap++ = *p; + } + if (ap == new_line + shell_len + sizeof (minus_c) - 1) + /* Line was empty. */ + return 0; + *ap = '\0'; + +#ifdef WINDOWS32 + /* Some shells do not work well when invoked as 'sh -c xxx' to run a + command line (e.g. Cygnus GNUWIN32 sh.exe on WIN32 systems). In these + cases, run commands via a script file. */ + if ((no_default_sh_exe || batch_mode_shell) && batch_filename_ptr) { + FILE* batch = NULL; + int id = GetCurrentProcessId(); + PATH_VAR(fbuf); + char* fname = NULL; + + /* create a file name */ + sprintf(fbuf, "make%d", id); + fname = tempnam(".", fbuf); + + /* create batch file name */ + *batch_filename_ptr = xmalloc(strlen(fname) + 5); + strcpy(*batch_filename_ptr, fname); + + /* make sure path name is in DOS backslash format */ + if (!unixy_shell) { + fname = *batch_filename_ptr; + for (i = 0; fname[i] != '\0'; ++i) + if (fname[i] == '/') + fname[i] = '\\'; + strcat(*batch_filename_ptr, ".bat"); + } else { + strcat(*batch_filename_ptr, ".sh"); + } + + DB (DB_JOBS, (_("Creating temporary batch file %s\n"), + *batch_filename_ptr)); + + /* create batch file to execute command */ + batch = fopen (*batch_filename_ptr, "w"); + if (!unixy_shell) + fputs ("@echo off\n", batch); + fputs (command_ptr, batch); + fputc ('\n', batch); + fclose (batch); + + /* create argv */ + new_argv = (char **) xmalloc(3 * sizeof (char *)); + if (unixy_shell) { + new_argv[0] = xstrdup (shell); + new_argv[1] = *batch_filename_ptr; /* only argv[0] gets freed later */ + } else { + new_argv[0] = xstrdup (*batch_filename_ptr); + new_argv[1] = NULL; + } + new_argv[2] = NULL; + } else +#endif /* WINDOWS32 */ + if (unixy_shell) + new_argv = construct_command_argv_internal (new_line, (char **) NULL, + (char *) 0, (char *) 0, + (char **) 0); +#ifdef __MSDOS__ + else + { + /* With MSDOS shells, we must construct the command line here + instead of recursively calling ourselves, because we + cannot backslash-escape the special characters (see above). */ + new_argv = (char **) xmalloc (sizeof (char *)); + line_len = strlen (new_line) - shell_len - sizeof (minus_c) + 1; + new_argv[0] = xmalloc (line_len + 1); + strncpy (new_argv[0], + new_line + shell_len + sizeof (minus_c) - 1, line_len); + new_argv[0][line_len] = '\0'; + } +#else + else + fatal (NILF, _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"), + __FILE__, __LINE__); +#endif + } +#endif /* ! AMIGA */ + + return new_argv; +} +#endif /* !VMS */ + +/* Figure out the argument list necessary to run LINE as a command. Try to + avoid using a shell. This routine handles only ' quoting, and " quoting + when no backslash, $ or ` characters are seen in the quotes. Starting + quotes may be escaped with a backslash. If any of the characters in + sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[] + is the first word of a line, the shell is used. + + If RESTP is not NULL, *RESTP is set to point to the first newline in LINE. + If *RESTP is NULL, newlines will be ignored. + + FILE is the target whose commands these are. It is used for + variable expansion for $(SHELL) and $(IFS). */ + +char ** +construct_command_argv (line, restp, file, batch_filename_ptr) + char *line, **restp; + struct file *file; + char** batch_filename_ptr; +{ + char *shell, *ifs; + char **argv; + +#ifdef VMS + char *cptr; + int argc; + + argc = 0; + cptr = line; + for (;;) + { + while ((*cptr != 0) + && (isspace ((unsigned char)*cptr))) + cptr++; + if (*cptr == 0) + break; + while ((*cptr != 0) + && (!isspace((unsigned char)*cptr))) + cptr++; + argc++; + } + + argv = (char **)malloc (argc * sizeof (char *)); + if (argv == 0) + abort (); + + cptr = line; + argc = 0; + for (;;) + { + while ((*cptr != 0) + && (isspace ((unsigned char)*cptr))) + cptr++; + if (*cptr == 0) + break; + DB (DB_JOBS, ("argv[%d] = [%s]\n", argc, cptr)); + argv[argc++] = cptr; + while ((*cptr != 0) + && (!isspace((unsigned char)*cptr))) + cptr++; + if (*cptr != 0) + *cptr++ = 0; + } +#else + { + /* Turn off --warn-undefined-variables while we expand SHELL and IFS. */ + int save = warn_undefined_variables_flag; + warn_undefined_variables_flag = 0; + + shell = allocated_variable_expand_for_file ("$(SHELL)", file); +#ifdef WINDOWS32 + /* + * Convert to forward slashes so that construct_command_argv_internal() + * is not confused. + */ + if (shell) { + char *p = w32ify(shell, 0); + strcpy(shell, p); + } +#endif + ifs = allocated_variable_expand_for_file ("$(IFS)", file); + + warn_undefined_variables_flag = save; + } + + argv = construct_command_argv_internal (line, restp, shell, ifs, batch_filename_ptr); + + free (shell); + free (ifs); +#endif /* !VMS */ + return argv; +} + +#if !defined(HAVE_DUP2) && !defined(_AMIGA) +int +dup2 (old, new) + int old, new; +{ + int fd; + + (void) close (new); + fd = dup (old); + if (fd != new) + { + (void) close (fd); + errno = EMFILE; + return -1; + } + + return fd; +} +#endif /* !HAPE_DUP2 && !_AMIGA */ diff --git a/src/mkutil/make-3.80/job.h b/src/mkutil/make-3.80/job.h new file mode 100644 index 00000000..00e9599c --- /dev/null +++ b/src/mkutil/make-3.80/job.h @@ -0,0 +1,83 @@ +/* Definitions for managing subprocesses in GNU Make. +Copyright (C) 1992, 1993, 1996, 1999 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#ifndef SEEN_JOB_H +#define SEEN_JOB_H + +/* Structure describing a running or dead child process. */ + +struct child + { + struct child *next; /* Link in the chain. */ + + struct file *file; /* File being remade. */ + + char **environment; /* Environment for commands. */ + + char **command_lines; /* Array of variable-expanded cmd lines. */ + unsigned int command_line; /* Index into above. */ + char *command_ptr; /* Ptr into command_lines[command_line]. */ + + pid_t pid; /* Child process's ID number. */ +#ifdef VMS + int efn; /* Completion event flag number */ + int cstatus; /* Completion status */ +#endif + char *sh_batch_file; /* Script file for shell commands */ + unsigned int remote:1; /* Nonzero if executing remotely. */ + + unsigned int noerror:1; /* Nonzero if commands contained a `-'. */ + + unsigned int good_stdin:1; /* Nonzero if this child has a good stdin. */ + unsigned int deleted:1; /* Nonzero if targets have been deleted. */ + }; + +extern struct child *children; + +extern void new_job PARAMS ((struct file *file)); +extern void reap_children PARAMS ((int block, int err)); +extern void start_waiting_jobs PARAMS ((void)); + +extern char **construct_command_argv PARAMS ((char *line, char **restp, struct file *file, char** batch_file)); +#ifdef VMS +extern int child_execute_job PARAMS ((char *argv, struct child *child)); +#else +extern void child_execute_job PARAMS ((int stdin_fd, int stdout_fd, char **argv, char **envp)); +#endif +#ifdef _AMIGA +extern void exec_command PARAMS ((char **argv)); +#else +extern void exec_command PARAMS ((char **argv, char **envp)); +#endif + +extern unsigned int job_slots_used; + +extern void block_sigs PARAMS ((void)); +#ifdef POSIX +extern void unblock_sigs PARAMS ((void)); +#else +#ifdef HAVE_SIGSETMASK +extern int fatal_signal_mask; +#define unblock_sigs() sigsetmask (0) +#else +#define unblock_sigs() +#endif +#endif + +#endif /* SEEN_JOB_H */ diff --git a/src/mkutil/make-3.80/link.dbg b/src/mkutil/make-3.80/link.dbg new file mode 100644 index 00000000..98bcbc25 --- /dev/null +++ b/src/mkutil/make-3.80/link.dbg @@ -0,0 +1,28 @@ +WinDebug\variable.obj +WinDebug\rule.obj +WinDebug\remote-stub.obj +WinDebug\commands.obj +WinDebug\file.obj +WinDebug\getloadavg.obj +WinDebug\default.obj +WinDebug\signame.obj +WinDebug\expand.obj +WinDebug\dir.obj +WinDebug\main.obj +WinDebug\getopt1.obj +WinDebug\job.obj +WinDebug\read.obj +WinDebug\version.obj +WinDebug\getopt.obj +WinDebug\arscan.obj +WinDebug\remake.obj +WinDebug\misc.obj +WinDebug\ar.obj +WinDebug\function.obj +WinDebug\vpath.obj +WinDebug\implicit.obj +WinDebug\dirent.obj +WinDebug\glob.obj +WinDebug\fnmatch.obj +WinDebug\pathstuff.obj +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib diff --git a/src/mkutil/make-3.80/loadavg.c b/src/mkutil/make-3.80/loadavg.c new file mode 100644 index 00000000..7d575cd6 --- /dev/null +++ b/src/mkutil/make-3.80/loadavg.c @@ -0,0 +1,1034 @@ +/* Get the system load averages. + Copyright (C) 1985, 86, 87, 88, 89, 91, 92, 93, 1994, 1995, 1997 + Free Software Foundation, Inc. + + 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, 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. */ + +/* Compile-time symbols that this file uses: + + HAVE_PSTAT_GETDYNAMIC Define this if your system has the + pstat_getdynamic function. I think it + is unique to HPUX9. The best way to get the + definition is through the AC_FUNC_GETLOADAVG + macro that comes with autoconf 2.13 or newer. + If that isn't an option, then just put + AC_CHECK_FUNCS(pstat_getdynamic) in your + configure.in file. + FIXUP_KERNEL_SYMBOL_ADDR() Adjust address in returned struct nlist. + KERNEL_FILE Pathname of the kernel to nlist. + LDAV_CVT() Scale the load average from the kernel. + Returns a double. + LDAV_SYMBOL Name of kernel symbol giving load average. + LOAD_AVE_TYPE Type of the load average array in the kernel. + Must be defined unless one of + apollo, DGUX, NeXT, or UMAX is defined; + or we have libkstat; + otherwise, no load average is available. + NLIST_STRUCT Include nlist.h, not a.out.h, and + the nlist n_name element is a pointer, + not an array. + HAVE_STRUCT_NLIST_N_UN_N_NAME struct nlist has an n_un member, not n_name. + LINUX_LDAV_FILE [__linux__]: File containing load averages. + + Specific system predefines this file uses, aside from setting + default values if not emacs: + + apollo + BSD Real BSD, not just BSD-like. + convex + DGUX + eunice UNIX emulator under VMS. + hpux + __MSDOS__ No-op for MSDOS. + NeXT + sgi + sequent Sequent Dynix 3.x.x (BSD) + _SEQUENT_ Sequent DYNIX/ptx 1.x.x (SYSV) + sony_news NEWS-OS (works at least for 4.1C) + UMAX + UMAX4_3 + VMS + WINDOWS32 No-op for Windows95/NT. + __linux__ Linux: assumes /proc filesystem mounted. + Support from Michael K. Johnson. + __NetBSD__ NetBSD: assumes /kern filesystem mounted. + + In addition, to avoid nesting many #ifdefs, we internally set + LDAV_DONE to indicate that the load average has been computed. + + We also #define LDAV_PRIVILEGED if a program will require + special installation to be able to call getloadavg. */ + +/* This should always be first. */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +/* Both the Emacs and non-Emacs sections want this. Some + configuration files' definitions for the LOAD_AVE_CVT macro (like + sparc.h's) use macros like FSCALE, defined here. */ +#if defined (unix) || defined (__unix) +# include +#endif + + +/* Exclude all the code except the test program at the end + if the system has its own `getloadavg' function. + + The declaration of `errno' is needed by the test program + as well as the function itself, so it comes first. */ + +#include + +#ifndef errno +extern int errno; +#endif + +#if HAVE_LOCALE_H +# include +#endif +#if !HAVE_SETLOCALE +# define setlocale(Category, Locale) /* empty */ +#endif + +#ifndef HAVE_GETLOADAVG + + +/* The existing Emacs configuration files define a macro called + LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and + returns the load average multiplied by 100. What we actually want + is a macro called LDAV_CVT, which returns the load average as an + unmultiplied double. + + For backwards compatibility, we'll define LDAV_CVT in terms of + LOAD_AVE_CVT, but future machine config files should just define + LDAV_CVT directly. */ + +# if !defined(LDAV_CVT) && defined(LOAD_AVE_CVT) +# define LDAV_CVT(n) (LOAD_AVE_CVT (n) / 100.0) +# endif + +# if !defined (BSD) && defined (ultrix) +/* Ultrix behaves like BSD on Vaxen. */ +# define BSD +# endif + +# ifdef NeXT +/* NeXT in the 2.{0,1,2} releases defines BSD in , which + conflicts with the definition understood in this file, that this + really is BSD. */ +# undef BSD + +/* NeXT defines FSCALE in . However, we take FSCALE being + defined to mean that the nlist method should be used, which is not true. */ +# undef FSCALE +# endif + +/* Same issues as for NeXT apply to the HURD-based GNU system. */ +# ifdef __GNU__ +# undef BSD +# undef FSCALE +# endif /* __GNU__ */ + +/* Set values that are different from the defaults, which are + set a little farther down with #ifndef. */ + + +/* Some shorthands. */ + +# if defined (HPUX) && !defined (hpux) +# define hpux +# endif + +# if defined (__hpux) && !defined (hpux) +# define hpux +# endif + +# if defined (__sun) && !defined (sun) +# define sun +# endif + +# if defined(hp300) && !defined(hpux) +# define MORE_BSD +# endif + +# if defined(ultrix) && defined(mips) +# define decstation +# endif + +# if defined (__SVR4) && !defined (SVR4) +# define SVR4 +# endif + +# if (defined(sun) && defined(SVR4)) || defined (SOLARIS2) +# define SUNOS_5 +# endif + +# if defined (__osf__) && (defined (__alpha) || defined (__alpha__)) +# define OSF_ALPHA +# include +# include +# include +# include +# endif + +# if defined (__osf__) && (defined (mips) || defined (__mips__)) +# define OSF_MIPS +# include +# endif + +/* UTek's /bin/cc on the 4300 has no architecture specific cpp define by + default, but _MACH_IND_SYS_TYPES is defined in . Combine + that with a couple of other things and we'll have a unique match. */ +# if !defined (tek4300) && defined (unix) && defined (m68k) && defined (mc68000) && defined (mc68020) && defined (_MACH_IND_SYS_TYPES) +# define tek4300 /* Define by emacs, but not by other users. */ +# endif + +/* AC_FUNC_GETLOADAVG thinks QNX is SVR4, but it isn't. */ +# if defined(__QNX__) +# undef SVR4 +# endif + +/* VAX C can't handle multi-line #ifs, or lines longer than 256 chars. */ +# ifndef LOAD_AVE_TYPE + +# ifdef MORE_BSD +# define LOAD_AVE_TYPE long +# endif + +# ifdef sun +# define LOAD_AVE_TYPE long +# endif + +# ifdef decstation +# define LOAD_AVE_TYPE long +# endif + +# ifdef _SEQUENT_ +# define LOAD_AVE_TYPE long +# endif + +# ifdef sgi +# define LOAD_AVE_TYPE long +# endif + +# ifdef SVR4 +# define LOAD_AVE_TYPE long +# endif + +# ifdef sony_news +# define LOAD_AVE_TYPE long +# endif + +# ifdef sequent +# define LOAD_AVE_TYPE long +# endif + +# ifdef OSF_ALPHA +# define LOAD_AVE_TYPE long +# endif + +# if defined (ardent) && defined (titan) +# define LOAD_AVE_TYPE long +# endif + +# ifdef tek4300 +# define LOAD_AVE_TYPE long +# endif + +# if defined(alliant) && defined(i860) /* Alliant FX/2800 */ +# define LOAD_AVE_TYPE long +# endif + +# ifdef _AIX +# define LOAD_AVE_TYPE long +# endif + +# ifdef convex +# define LOAD_AVE_TYPE double +# ifndef LDAV_CVT +# define LDAV_CVT(n) (n) +# endif +# endif + +# endif /* No LOAD_AVE_TYPE. */ + +# ifdef OSF_ALPHA +/* defines an incorrect value for FSCALE on Alpha OSF/1, + according to ghazi@noc.rutgers.edu. */ +# undef FSCALE +# define FSCALE 1024.0 +# endif + +# if defined(alliant) && defined(i860) /* Alliant FX/2800 */ +/* defines an incorrect value for FSCALE on an + Alliant FX/2800 Concentrix 2.2, according to ghazi@noc.rutgers.edu. */ +# undef FSCALE +# define FSCALE 100.0 +# endif + + +# ifndef FSCALE + +/* SunOS and some others define FSCALE in sys/param.h. */ + +# ifdef MORE_BSD +# define FSCALE 2048.0 +# endif + +# if defined(MIPS) || defined(SVR4) || defined(decstation) +# define FSCALE 256 +# endif + +# if defined (sgi) || defined (sequent) +/* Sometimes both MIPS and sgi are defined, so FSCALE was just defined + above under #ifdef MIPS. But we want the sgi value. */ +# undef FSCALE +# define FSCALE 1000.0 +# endif + +# if defined (ardent) && defined (titan) +# define FSCALE 65536.0 +# endif + +# ifdef tek4300 +# define FSCALE 100.0 +# endif + +# ifdef _AIX +# define FSCALE 65536.0 +# endif + +# endif /* Not FSCALE. */ + +# if !defined (LDAV_CVT) && defined (FSCALE) +# define LDAV_CVT(n) (((double) (n)) / FSCALE) +# endif + + +# if defined(sgi) || (defined(mips) && !defined(BSD)) +# define FIXUP_KERNEL_SYMBOL_ADDR(nl) ((nl)[0].n_value &= ~(1 << 31)) +# endif + + +# if !defined (KERNEL_FILE) && defined (sequent) +# define KERNEL_FILE "/dynix" +# endif + +# if !defined (KERNEL_FILE) && defined (hpux) +# define KERNEL_FILE "/hp-ux" +# endif + +# if !defined(KERNEL_FILE) && (defined(_SEQUENT_) || defined(MIPS) || defined(SVR4) || defined(ISC) || defined (sgi) || (defined (ardent) && defined (titan))) +# define KERNEL_FILE "/unix" +# endif + + +# if !defined (LDAV_SYMBOL) && defined (alliant) +# define LDAV_SYMBOL "_Loadavg" +# endif + +# if !defined(LDAV_SYMBOL) && ((defined(hpux) && !defined(hp9000s300)) || defined(_SEQUENT_) || defined(SVR4) || defined(ISC) || defined(sgi) || (defined (ardent) && defined (titan)) || defined (_AIX)) +# define LDAV_SYMBOL "avenrun" +# endif + +# ifdef HAVE_UNISTD_H +# include +# endif + +# include + +/* LOAD_AVE_TYPE should only get defined if we're going to use the + nlist method. */ +# if !defined(LOAD_AVE_TYPE) && (defined(BSD) || defined(LDAV_CVT) || defined(KERNEL_FILE) || defined(LDAV_SYMBOL)) +# define LOAD_AVE_TYPE double +# endif + +# ifdef LOAD_AVE_TYPE + +# ifndef VMS +# ifndef __linux__ +# ifdef HAVE_NLIST_H +# include +# else +# include +# endif + +# ifdef SUNOS_5 +# include +# include +# include +# endif + +# if defined (hpux) && defined (HAVE_PSTAT_GETDYNAMIC) +# include +# endif + +# ifndef KERNEL_FILE +# define KERNEL_FILE "/vmunix" +# endif /* KERNEL_FILE */ + +# ifndef LDAV_SYMBOL +# define LDAV_SYMBOL "_avenrun" +# endif /* LDAV_SYMBOL */ +# endif /* __linux__ */ + +# else /* VMS */ + +# ifndef eunice +# include +# include +# else /* eunice */ +# include +# endif /* eunice */ +# endif /* VMS */ + +# ifndef LDAV_CVT +# define LDAV_CVT(n) ((double) (n)) +# endif /* !LDAV_CVT */ + +# endif /* LOAD_AVE_TYPE */ + +# if defined(__GNU__) && !defined (NeXT) +/* Note that NeXT Openstep defines __GNU__ even though it should not. */ +/* GNU system acts much like NeXT, for load average purposes, + but not exactly. */ +# define NeXT +# define host_self mach_host_self +# endif + +# ifdef NeXT +# ifdef HAVE_MACH_MACH_H +# include +# else +# include +# endif +# endif /* NeXT */ + +# ifdef sgi +# include +# endif /* sgi */ + +# ifdef UMAX +# include +# include +# include +# include +# include + +# ifdef UMAX_43 +# include +# include +# include +# include +# include +# else /* Not UMAX_43. */ +# include +# include +# include +# include +# include +# include +# endif /* Not UMAX_43. */ +# endif /* UMAX */ + +# ifdef DGUX +# include +# endif + +# if defined(HAVE_FCNTL_H) || defined(_POSIX_VERSION) +# include +# else +# include +# endif + + +/* Avoid static vars inside a function since in HPUX they dump as pure. */ + +# ifdef NeXT +static processor_set_t default_set; +static int getloadavg_initialized; +# endif /* NeXT */ + +# ifdef UMAX +static unsigned int cpus = 0; +static unsigned int samples; +# endif /* UMAX */ + +# ifdef DGUX +static struct dg_sys_info_load_info load_info; /* what-a-mouthful! */ +# endif /* DGUX */ + +#if !defined(HAVE_LIBKSTAT) && defined(LOAD_AVE_TYPE) +/* File descriptor open to /dev/kmem or VMS load ave driver. */ +static int channel; +/* Nonzero iff channel is valid. */ +static int getloadavg_initialized; +/* Offset in kmem to seek to read load average, or 0 means invalid. */ +static long offset; + +#if !defined(VMS) && !defined(sgi) && !defined(__linux__) +static struct nlist nl[2]; +#endif /* Not VMS or sgi */ + +#ifdef SUNOS_5 +static kvm_t *kd; +#endif /* SUNOS_5 */ + +#endif /* LOAD_AVE_TYPE && !HAVE_LIBKSTAT */ + +/* Put the 1 minute, 5 minute and 15 minute load averages + into the first NELEM elements of LOADAVG. + Return the number written (never more than 3, but may be less than NELEM), + or -1 if an error occurred. */ + +int +getloadavg (loadavg, nelem) + double loadavg[]; + int nelem; +{ + int elem = 0; /* Return value. */ + +# ifdef NO_GET_LOAD_AVG +# define LDAV_DONE + /* Set errno to zero to indicate that there was no particular error; + this function just can't work at all on this system. */ + errno = 0; + elem = -1; +# endif + +# if !defined (LDAV_DONE) && defined (HAVE_LIBKSTAT) +/* Use libkstat because we don't have to be root. */ +# define LDAV_DONE + kstat_ctl_t *kc; + kstat_t *ksp; + kstat_named_t *kn; + + kc = kstat_open (); + if (kc == 0) + return -1; + ksp = kstat_lookup (kc, "unix", 0, "system_misc"); + if (ksp == 0 ) + return -1; + if (kstat_read (kc, ksp, 0) == -1) + return -1; + + + kn = kstat_data_lookup (ksp, "avenrun_1min"); + if (kn == 0) + { + /* Return -1 if no load average information is available. */ + nelem = 0; + elem = -1; + } + + if (nelem >= 1) + loadavg[elem++] = (double) kn->value.ul/FSCALE; + + if (nelem >= 2) + { + kn = kstat_data_lookup (ksp, "avenrun_5min"); + if (kn != 0) + { + loadavg[elem++] = (double) kn->value.ul/FSCALE; + + if (nelem >= 3) + { + kn = kstat_data_lookup (ksp, "avenrun_15min"); + if (kn != 0) + loadavg[elem++] = (double) kn->value.ul/FSCALE; + } + } + } + + kstat_close (kc); +# endif /* HAVE_LIBKSTAT */ + +# if !defined (LDAV_DONE) && defined (hpux) && defined (HAVE_PSTAT_GETDYNAMIC) +/* Use pstat_getdynamic() because we don't have to be root. */ +# define LDAV_DONE +# undef LOAD_AVE_TYPE + + struct pst_dynamic dyn_info; + if (pstat_getdynamic (&dyn_info, sizeof (dyn_info), 0, 0) < 0) + return -1; + if (nelem > 0) + loadavg[elem++] = dyn_info.psd_avg_1_min; + if (nelem > 1) + loadavg[elem++] = dyn_info.psd_avg_5_min; + if (nelem > 2) + loadavg[elem++] = dyn_info.psd_avg_15_min; + +# endif /* hpux && HAVE_PSTAT_GETDYNAMIC */ + +# if !defined (LDAV_DONE) && defined (__linux__) +# define LDAV_DONE +# undef LOAD_AVE_TYPE + +# ifndef LINUX_LDAV_FILE +# define LINUX_LDAV_FILE "/proc/loadavg" +# endif + + char ldavgbuf[40]; + double load_ave[3]; + int fd, count; + + fd = open (LINUX_LDAV_FILE, O_RDONLY); + if (fd == -1) + return -1; + count = read (fd, ldavgbuf, 40); + (void) close (fd); + if (count <= 0) + return -1; + + /* The following sscanf must use the C locale. */ + setlocale (LC_NUMERIC, "C"); + count = sscanf (ldavgbuf, "%lf %lf %lf", + &load_ave[0], &load_ave[1], &load_ave[2]); + setlocale (LC_NUMERIC, ""); + if (count < 1) + return -1; + + for (elem = 0; elem < nelem && elem < count; elem++) + loadavg[elem] = load_ave[elem]; + + return elem; + +# endif /* __linux__ */ + +# if !defined (LDAV_DONE) && defined (__NetBSD__) +# define LDAV_DONE +# undef LOAD_AVE_TYPE + +# ifndef NETBSD_LDAV_FILE +# define NETBSD_LDAV_FILE "/kern/loadavg" +# endif + + unsigned long int load_ave[3], scale; + int count; + FILE *fp; + + fp = fopen (NETBSD_LDAV_FILE, "r"); + if (fp == NULL) + return -1; + count = fscanf (fp, "%lu %lu %lu %lu\n", + &load_ave[0], &load_ave[1], &load_ave[2], + &scale); + (void) fclose (fp); + if (count != 4) + return -1; + + for (elem = 0; elem < nelem; elem++) + loadavg[elem] = (double) load_ave[elem] / (double) scale; + + return elem; + +# endif /* __NetBSD__ */ + +# if !defined (LDAV_DONE) && defined (NeXT) +# define LDAV_DONE + /* The NeXT code was adapted from iscreen 3.2. */ + + host_t host; + struct processor_set_basic_info info; + unsigned info_count; + + /* We only know how to get the 1-minute average for this system, + so even if the caller asks for more than 1, we only return 1. */ + + if (!getloadavg_initialized) + { + if (processor_set_default (host_self (), &default_set) == KERN_SUCCESS) + getloadavg_initialized = 1; + } + + if (getloadavg_initialized) + { + info_count = PROCESSOR_SET_BASIC_INFO_COUNT; + if (processor_set_info (default_set, PROCESSOR_SET_BASIC_INFO, &host, + (processor_set_info_t) &info, &info_count) + != KERN_SUCCESS) + getloadavg_initialized = 0; + else + { + if (nelem > 0) + loadavg[elem++] = (double) info.load_average / LOAD_SCALE; + } + } + + if (!getloadavg_initialized) + return -1; +# endif /* NeXT */ + +# if !defined (LDAV_DONE) && defined (UMAX) +# define LDAV_DONE +/* UMAX 4.2, which runs on the Encore Multimax multiprocessor, does not + have a /dev/kmem. Information about the workings of the running kernel + can be gathered with inq_stats system calls. + We only know how to get the 1-minute average for this system. */ + + struct proc_summary proc_sum_data; + struct stat_descr proc_info; + double load; + register unsigned int i, j; + + if (cpus == 0) + { + register unsigned int c, i; + struct cpu_config conf; + struct stat_descr desc; + + desc.sd_next = 0; + desc.sd_subsys = SUBSYS_CPU; + desc.sd_type = CPUTYPE_CONFIG; + desc.sd_addr = (char *) &conf; + desc.sd_size = sizeof conf; + + if (inq_stats (1, &desc)) + return -1; + + c = 0; + for (i = 0; i < conf.config_maxclass; ++i) + { + struct class_stats stats; + bzero ((char *) &stats, sizeof stats); + + desc.sd_type = CPUTYPE_CLASS; + desc.sd_objid = i; + desc.sd_addr = (char *) &stats; + desc.sd_size = sizeof stats; + + if (inq_stats (1, &desc)) + return -1; + + c += stats.class_numcpus; + } + cpus = c; + samples = cpus < 2 ? 3 : (2 * cpus / 3); + } + + proc_info.sd_next = 0; + proc_info.sd_subsys = SUBSYS_PROC; + proc_info.sd_type = PROCTYPE_SUMMARY; + proc_info.sd_addr = (char *) &proc_sum_data; + proc_info.sd_size = sizeof (struct proc_summary); + proc_info.sd_sizeused = 0; + + if (inq_stats (1, &proc_info) != 0) + return -1; + + load = proc_sum_data.ps_nrunnable; + j = 0; + for (i = samples - 1; i > 0; --i) + { + load += proc_sum_data.ps_nrun[j]; + if (j++ == PS_NRUNSIZE) + j = 0; + } + + if (nelem > 0) + loadavg[elem++] = load / samples / cpus; +# endif /* UMAX */ + +# if !defined (LDAV_DONE) && defined (DGUX) +# define LDAV_DONE + /* This call can return -1 for an error, but with good args + it's not supposed to fail. The first argument is for no + apparent reason of type `long int *'. */ + dg_sys_info ((long int *) &load_info, + DG_SYS_INFO_LOAD_INFO_TYPE, + DG_SYS_INFO_LOAD_VERSION_0); + + if (nelem > 0) + loadavg[elem++] = load_info.one_minute; + if (nelem > 1) + loadavg[elem++] = load_info.five_minute; + if (nelem > 2) + loadavg[elem++] = load_info.fifteen_minute; +# endif /* DGUX */ + +# if !defined (LDAV_DONE) && defined (apollo) +# define LDAV_DONE +/* Apollo code from lisch@mentorg.com (Ray Lischner). + + This system call is not documented. The load average is obtained as + three long integers, for the load average over the past minute, + five minutes, and fifteen minutes. Each value is a scaled integer, + with 16 bits of integer part and 16 bits of fraction part. + + I'm not sure which operating system first supported this system call, + but I know that SR10.2 supports it. */ + + extern void proc1_$get_loadav (); + unsigned long load_ave[3]; + + proc1_$get_loadav (load_ave); + + if (nelem > 0) + loadavg[elem++] = load_ave[0] / 65536.0; + if (nelem > 1) + loadavg[elem++] = load_ave[1] / 65536.0; + if (nelem > 2) + loadavg[elem++] = load_ave[2] / 65536.0; +# endif /* apollo */ + +# if !defined (LDAV_DONE) && defined (OSF_MIPS) +# define LDAV_DONE + + struct tbl_loadavg load_ave; + table (TBL_LOADAVG, 0, &load_ave, 1, sizeof (load_ave)); + loadavg[elem++] + = (load_ave.tl_lscale == 0 + ? load_ave.tl_avenrun.d[0] + : (load_ave.tl_avenrun.l[0] / (double) load_ave.tl_lscale)); +# endif /* OSF_MIPS */ + +# if !defined (LDAV_DONE) && (defined (__MSDOS__) || defined (WINDOWS32)) +# define LDAV_DONE + + /* A faithful emulation is going to have to be saved for a rainy day. */ + for ( ; elem < nelem; elem++) + { + loadavg[elem] = 0.0; + } +# endif /* __MSDOS__ || WINDOWS32 */ + +# if !defined (LDAV_DONE) && defined (OSF_ALPHA) +# define LDAV_DONE + + struct tbl_loadavg load_ave; + table (TBL_LOADAVG, 0, &load_ave, 1, sizeof (load_ave)); + for (elem = 0; elem < nelem; elem++) + loadavg[elem] + = (load_ave.tl_lscale == 0 + ? load_ave.tl_avenrun.d[elem] + : (load_ave.tl_avenrun.l[elem] / (double) load_ave.tl_lscale)); +# endif /* OSF_ALPHA */ + +# if !defined (LDAV_DONE) && defined (VMS) + /* VMS specific code -- read from the Load Ave driver. */ + + LOAD_AVE_TYPE load_ave[3]; + static int getloadavg_initialized = 0; +# ifdef eunice + struct + { + int dsc$w_length; + char *dsc$a_pointer; + } descriptor; +# endif + + /* Ensure that there is a channel open to the load ave device. */ + if (!getloadavg_initialized) + { + /* Attempt to open the channel. */ +# ifdef eunice + descriptor.dsc$w_length = 18; + descriptor.dsc$a_pointer = "$$VMS_LOAD_AVERAGE"; +# else + $DESCRIPTOR (descriptor, "LAV0:"); +# endif + if (sys$assign (&descriptor, &channel, 0, 0) & 1) + getloadavg_initialized = 1; + } + + /* Read the load average vector. */ + if (getloadavg_initialized + && !(sys$qiow (0, channel, IO$_READVBLK, 0, 0, 0, + load_ave, 12, 0, 0, 0, 0) & 1)) + { + sys$dassgn (channel); + getloadavg_initialized = 0; + } + + if (!getloadavg_initialized) + return -1; +# endif /* VMS */ + +# if !defined (LDAV_DONE) && defined(LOAD_AVE_TYPE) && !defined(VMS) + + /* UNIX-specific code -- read the average from /dev/kmem. */ + +# define LDAV_PRIVILEGED /* This code requires special installation. */ + + LOAD_AVE_TYPE load_ave[3]; + + /* Get the address of LDAV_SYMBOL. */ + if (offset == 0) + { +# ifndef sgi +# ifndef NLIST_STRUCT + strcpy (nl[0].n_name, LDAV_SYMBOL); + strcpy (nl[1].n_name, ""); +# else /* NLIST_STRUCT */ +# ifdef HAVE_STRUCT_NLIST_N_UN_N_NAME + nl[0].n_un.n_name = LDAV_SYMBOL; + nl[1].n_un.n_name = 0; +# else /* not HAVE_STRUCT_NLIST_N_UN_N_NAME */ + nl[0].n_name = LDAV_SYMBOL; + nl[1].n_name = 0; +# endif /* not HAVE_STRUCT_NLIST_N_UN_N_NAME */ +# endif /* NLIST_STRUCT */ + +# ifndef SUNOS_5 + if ( +# if !(defined (_AIX) && !defined (ps2)) + nlist (KERNEL_FILE, nl) +# else /* _AIX */ + knlist (nl, 1, sizeof (nl[0])) +# endif + >= 0) + /* Omit "&& nl[0].n_type != 0 " -- it breaks on Sun386i. */ + { +# ifdef FIXUP_KERNEL_SYMBOL_ADDR + FIXUP_KERNEL_SYMBOL_ADDR (nl); +# endif + offset = nl[0].n_value; + } +# endif /* !SUNOS_5 */ +# else /* sgi */ + int ldav_off; + + ldav_off = sysmp (MP_KERNADDR, MPKA_AVENRUN); + if (ldav_off != -1) + offset = (long) ldav_off & 0x7fffffff; +# endif /* sgi */ + } + + /* Make sure we have /dev/kmem open. */ + if (!getloadavg_initialized) + { +# ifndef SUNOS_5 + channel = open ("/dev/kmem", 0); + if (channel >= 0) + { + /* Set the channel to close on exec, so it does not + litter any child's descriptor table. */ +# ifdef F_SETFD +# ifndef FD_CLOEXEC +# define FD_CLOEXEC 1 +# endif + (void) fcntl (channel, F_SETFD, FD_CLOEXEC); +# endif + getloadavg_initialized = 1; + } +# else /* SUNOS_5 */ + /* We pass 0 for the kernel, corefile, and swapfile names + to use the currently running kernel. */ + kd = kvm_open (0, 0, 0, O_RDONLY, 0); + if (kd != 0) + { + /* nlist the currently running kernel. */ + kvm_nlist (kd, nl); + offset = nl[0].n_value; + getloadavg_initialized = 1; + } +# endif /* SUNOS_5 */ + } + + /* If we can, get the load average values. */ + if (offset && getloadavg_initialized) + { + /* Try to read the load. */ +# ifndef SUNOS_5 + if (lseek (channel, offset, 0) == -1L + || read (channel, (char *) load_ave, sizeof (load_ave)) + != sizeof (load_ave)) + { + close (channel); + getloadavg_initialized = 0; + } +# else /* SUNOS_5 */ + if (kvm_read (kd, offset, (char *) load_ave, sizeof (load_ave)) + != sizeof (load_ave)) + { + kvm_close (kd); + getloadavg_initialized = 0; + } +# endif /* SUNOS_5 */ + } + + if (offset == 0 || !getloadavg_initialized) + return -1; +# endif /* LOAD_AVE_TYPE and not VMS */ + +# if !defined (LDAV_DONE) && defined (LOAD_AVE_TYPE) /* Including VMS. */ + if (nelem > 0) + loadavg[elem++] = LDAV_CVT (load_ave[0]); + if (nelem > 1) + loadavg[elem++] = LDAV_CVT (load_ave[1]); + if (nelem > 2) + loadavg[elem++] = LDAV_CVT (load_ave[2]); + +# define LDAV_DONE +# endif /* !LDAV_DONE && LOAD_AVE_TYPE */ + +# ifdef LDAV_DONE + return elem; +# else + /* Set errno to zero to indicate that there was no particular error; + this function just can't work at all on this system. */ + errno = 0; + return -1; +# endif +} + +#endif /* ! HAVE_GETLOADAVG */ + +#ifdef TEST +#include "make.h" + +int +main (argc, argv) + int argc; + char **argv; +{ + int naptime = 0; + + if (argc > 1) + naptime = atoi (argv[1]); + + while (1) + { + double avg[3]; + int loads; + + errno = 0; /* Don't be misled if it doesn't set errno. */ + loads = getloadavg (avg, 3); + if (loads == -1) + { + perror ("Error getting load average"); + exit (1); + } + if (loads > 0) + printf ("1-minute: %f ", avg[0]); + if (loads > 1) + printf ("5-minute: %f ", avg[1]); + if (loads > 2) + printf ("15-minute: %f ", avg[2]); + if (loads > 0) + putchar ('\n'); + + if (naptime == 0) + break; + sleep (naptime); + } + + exit (0); +} +#endif /* TEST */ diff --git a/src/mkutil/make-3.80/main.c b/src/mkutil/make-3.80/main.c new file mode 100644 index 00000000..a04671db --- /dev/null +++ b/src/mkutil/make-3.80/main.c @@ -0,0 +1,2813 @@ +/* Argument parsing and main program of GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1994, 1995, 1996, 1997, 1998, 1999, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA. */ + +#include "make.h" +#include "dep.h" +#include "filedef.h" +#include "variable.h" +#include "job.h" +#include "commands.h" +#include "rule.h" +#include "debug.h" +#include "getopt.h" + +#include +#ifdef _AMIGA +# include +# include +#endif +#ifdef WINDOWS32 +#include +#include "pathstuff.h" +#endif +#if defined(MAKE_JOBSERVER) && defined(HAVE_FCNTL_H) +# include +#endif + +#ifdef _AMIGA +int __stack = 20000; /* Make sure we have 20K of stack space */ +#endif + +extern void init_dir PARAMS ((void)); +extern void remote_setup PARAMS ((void)); +extern void remote_cleanup PARAMS ((void)); +extern RETSIGTYPE fatal_error_signal PARAMS ((int sig)); + +extern void print_variable_data_base PARAMS ((void)); +extern void print_dir_data_base PARAMS ((void)); +extern void print_rule_data_base PARAMS ((void)); +extern void print_file_data_base PARAMS ((void)); +extern void print_vpath_data_base PARAMS ((void)); + +#if defined HAVE_WAITPID || defined HAVE_WAIT3 +# define HAVE_WAIT_NOHANG +#endif + +#ifndef HAVE_UNISTD_H +extern int chdir (); +#endif +#ifndef STDC_HEADERS +# ifndef sun /* Sun has an incorrect decl in a header. */ +extern void exit PARAMS ((int)) __attribute__ ((noreturn)); +# endif +extern double atof (); +#endif + +static void print_data_base PARAMS ((void)); +static void print_version PARAMS ((void)); +static void decode_switches PARAMS ((int argc, char **argv, int env)); +static void decode_env_switches PARAMS ((char *envar, unsigned int len)); +static void define_makeflags PARAMS ((int all, int makefile)); +static char *quote_for_env PARAMS ((char *out, char *in)); +static void initialize_global_hash_tables PARAMS ((void)); + + +/* The structure that describes an accepted command switch. */ + +struct command_switch + { + int c; /* The switch character. */ + + enum /* Type of the value. */ + { + flag, /* Turn int flag on. */ + flag_off, /* Turn int flag off. */ + string, /* One string per switch. */ + positive_int, /* A positive integer. */ + floating, /* A floating-point number (double). */ + ignore /* Ignored. */ + } type; + + char *value_ptr; /* Pointer to the value-holding variable. */ + + unsigned int env:1; /* Can come from MAKEFLAGS. */ + unsigned int toenv:1; /* Should be put in MAKEFLAGS. */ + unsigned int no_makefile:1; /* Don't propagate when remaking makefiles. */ + + char *noarg_value; /* Pointer to value used if no argument is given. */ + char *default_value;/* Pointer to default value. */ + + char *long_name; /* Long option name. */ + }; + +/* True if C is a switch value that corresponds to a short option. */ + +#define short_option(c) ((c) <= CHAR_MAX) + +/* The structure used to hold the list of strings given + in command switches of a type that takes string arguments. */ + +struct stringlist + { + char **list; /* Nil-terminated list of strings. */ + unsigned int idx; /* Index into above. */ + unsigned int max; /* Number of pointers allocated. */ + }; + + +/* The recognized command switches. */ + +/* Nonzero means do not print commands to be executed (-s). */ + +int silent_flag; + +/* Nonzero means just touch the files + that would appear to need remaking (-t) */ + +int touch_flag; + +/* Nonzero means just print what commands would need to be executed, + don't actually execute them (-n). */ + +int just_print_flag; + +/* Print debugging info (--debug). */ + +static struct stringlist *db_flags; +static int debug_flag = 0; + +int db_level = 0; + +#ifdef WINDOWS32 +/* Suspend make in main for a short time to allow debugger to attach */ + +int suspend_flag = 0; +#endif + +/* Environment variables override makefile definitions. */ + +int env_overrides = 0; + +/* Nonzero means ignore status codes returned by commands + executed to remake files. Just treat them all as successful (-i). */ + +int ignore_errors_flag = 0; + +/* Nonzero means don't remake anything, just print the data base + that results from reading the makefile (-p). */ + +int print_data_base_flag = 0; + +/* Nonzero means don't remake anything; just return a nonzero status + if the specified targets are not up to date (-q). */ + +int question_flag = 0; + +/* Nonzero means do not use any of the builtin rules (-r) / variables (-R). */ + +int no_builtin_rules_flag = 0; +int no_builtin_variables_flag = 0; + +/* Nonzero means keep going even if remaking some file fails (-k). */ + +int keep_going_flag; +int default_keep_going_flag = 0; + +/* Nonzero means print directory before starting and when done (-w). */ + +int print_directory_flag = 0; + +/* Nonzero means ignore print_directory_flag and never print the directory. + This is necessary because print_directory_flag is set implicitly. */ + +int inhibit_print_directory_flag = 0; + +/* Nonzero means print version information. */ + +int print_version_flag = 0; + +/* List of makefiles given with -f switches. */ + +static struct stringlist *makefiles = 0; + +/* Number of job slots (commands that can be run at once). */ + +unsigned int job_slots = 1; +unsigned int default_job_slots = 1; + +/* Value of job_slots that means no limit. */ + +static unsigned int inf_jobs = 0; + +/* File descriptors for the jobs pipe. */ + +static struct stringlist *jobserver_fds = 0; + +int job_fds[2] = { -1, -1 }; +int job_rfd = -1; + +/* Maximum load average at which multiple jobs will be run. + Negative values mean unlimited, while zero means limit to + zero load (which could be useful to start infinite jobs remotely + but one at a time locally). */ +#ifndef NO_FLOAT +double max_load_average = -1.0; +double default_load_average = -1.0; +#else +int max_load_average = -1; +int default_load_average = -1; +#endif + +/* List of directories given with -C switches. */ + +static struct stringlist *directories = 0; + +/* List of include directories given with -I switches. */ + +static struct stringlist *include_directories = 0; + +/* List of files given with -o switches. */ + +static struct stringlist *old_files = 0; + +/* List of files given with -W switches. */ + +static struct stringlist *new_files = 0; + +/* If nonzero, we should just print usage and exit. */ + +static int print_usage_flag = 0; + +/* If nonzero, we should print a warning message + for each reference to an undefined variable. */ + +int warn_undefined_variables_flag; + +/* If nonzero, always build all targets, regardless of whether + they appear out of date or not. */ + +int always_make_flag = 0; + +/* The usage output. We write it this way to make life easier for the + translators, especially those trying to translate to right-to-left + languages like Hebrew. */ + +static const char *const usage[] = + { + N_("Options:\n"), + N_("\ + -b, -m Ignored for compatibility.\n"), + N_("\ + -B, --always-make Unconditionally make all targets.\n"), + N_("\ + -C DIRECTORY, --directory=DIRECTORY\n\ + Change to DIRECTORY before doing anything.\n"), + N_("\ + -d Print lots of debugging information.\n"), + N_("\ + --debug[=FLAGS] Print various types of debugging information.\n"), + N_("\ + -e, --environment-overrides\n\ + Environment variables override makefiles.\n"), + N_("\ + -f FILE, --file=FILE, --makefile=FILE\n\ + Read FILE as a makefile.\n"), + N_("\ + -h, --help Print this message and exit.\n"), + N_("\ + -i, --ignore-errors Ignore errors from commands.\n"), + N_("\ + -I DIRECTORY, --include-dir=DIRECTORY\n\ + Search DIRECTORY for included makefiles.\n"), + N_("\ + -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg.\n"), + N_("\ + -k, --keep-going Keep going when some targets can't be made.\n"), + N_("\ + -l [N], --load-average[=N], --max-load[=N]\n\ + Don't start multiple jobs unless load is below N.\n"), + N_("\ + -n, --just-print, --dry-run, --recon\n\ + Don't actually run any commands; just print them.\n"), + N_("\ + -o FILE, --old-file=FILE, --assume-old=FILE\n\ + Consider FILE to be very old and don't remake it.\n"), + N_("\ + -p, --print-data-base Print make's internal database.\n"), + N_("\ + -q, --question Run no commands; exit status says if up to date.\n"), + N_("\ + -r, --no-builtin-rules Disable the built-in implicit rules.\n"), + N_("\ + -R, --no-builtin-variables Disable the built-in variable settings.\n"), + N_("\ + -s, --silent, --quiet Don't echo commands.\n"), + N_("\ + -S, --no-keep-going, --stop\n\ + Turns off -k.\n"), + N_("\ + -t, --touch Touch targets instead of remaking them.\n"), + N_("\ + -v, --version Print the version number of make and exit.\n"), + N_("\ + -w, --print-directory Print the current directory.\n"), + N_("\ + --no-print-directory Turn off -w, even if it was turned on implicitly.\n"), + N_("\ + -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n\ + Consider FILE to be infinitely new.\n"), + N_("\ + --warn-undefined-variables Warn when an undefined variable is referenced.\n"), + NULL + }; + +/* The table of command switches. */ + +static const struct command_switch switches[] = + { + { 'b', ignore, 0, 0, 0, 0, 0, 0, 0 }, + { 'B', flag, (char *) &always_make_flag, 1, 1, 0, 0, 0, "always-make" }, + { 'C', string, (char *) &directories, 0, 0, 0, 0, 0, "directory" }, + { 'd', flag, (char *) &debug_flag, 1, 1, 0, 0, 0, 0 }, + { CHAR_MAX+1, string, (char *) &db_flags, 1, 1, 0, "basic", 0, "debug" }, +#ifdef WINDOWS32 + { 'D', flag, (char *) &suspend_flag, 1, 1, 0, 0, 0, "suspend-for-debug" }, +#endif + { 'e', flag, (char *) &env_overrides, 1, 1, 0, 0, 0, + "environment-overrides", }, + { 'f', string, (char *) &makefiles, 0, 0, 0, 0, 0, "file" }, + { 'h', flag, (char *) &print_usage_flag, 0, 0, 0, 0, 0, "help" }, + { 'i', flag, (char *) &ignore_errors_flag, 1, 1, 0, 0, 0, + "ignore-errors" }, + { 'I', string, (char *) &include_directories, 1, 1, 0, 0, 0, + "include-dir" }, + { 'j', positive_int, (char *) &job_slots, 1, 1, 0, (char *) &inf_jobs, + (char *) &default_job_slots, "jobs" }, + { CHAR_MAX+2, string, (char *) &jobserver_fds, 1, 1, 0, 0, 0, + "jobserver-fds" }, + { 'k', flag, (char *) &keep_going_flag, 1, 1, 0, 0, + (char *) &default_keep_going_flag, "keep-going" }, +#ifndef NO_FLOAT + { 'l', floating, (char *) &max_load_average, 1, 1, 0, + (char *) &default_load_average, (char *) &default_load_average, + "load-average" }, +#else + { 'l', positive_int, (char *) &max_load_average, 1, 1, 0, + (char *) &default_load_average, (char *) &default_load_average, + "load-average" }, +#endif + { 'm', ignore, 0, 0, 0, 0, 0, 0, 0 }, + { 'n', flag, (char *) &just_print_flag, 1, 1, 1, 0, 0, "just-print" }, + { 'o', string, (char *) &old_files, 0, 0, 0, 0, 0, "old-file" }, + { 'p', flag, (char *) &print_data_base_flag, 1, 1, 0, 0, 0, + "print-data-base" }, + { 'q', flag, (char *) &question_flag, 1, 1, 1, 0, 0, "question" }, + { 'r', flag, (char *) &no_builtin_rules_flag, 1, 1, 0, 0, 0, + "no-builtin-rules" }, + { 'R', flag, (char *) &no_builtin_variables_flag, 1, 1, 0, 0, 0, + "no-builtin-variables" }, + { 's', flag, (char *) &silent_flag, 1, 1, 0, 0, 0, "silent" }, + { 'S', flag_off, (char *) &keep_going_flag, 1, 1, 0, 0, + (char *) &default_keep_going_flag, "no-keep-going" }, + { 't', flag, (char *) &touch_flag, 1, 1, 1, 0, 0, "touch" }, + { 'v', flag, (char *) &print_version_flag, 1, 1, 0, 0, 0, "version" }, + { 'w', flag, (char *) &print_directory_flag, 1, 1, 0, 0, 0, + "print-directory" }, + { CHAR_MAX+3, flag, (char *) &inhibit_print_directory_flag, 1, 1, 0, 0, 0, + "no-print-directory" }, + { 'W', string, (char *) &new_files, 0, 0, 0, 0, 0, "what-if" }, + { CHAR_MAX+4, flag, (char *) &warn_undefined_variables_flag, 1, 1, 0, 0, 0, + "warn-undefined-variables" }, + { '\0', } + }; + +/* Secondary long names for options. */ + +static struct option long_option_aliases[] = + { + { "quiet", no_argument, 0, 's' }, + { "stop", no_argument, 0, 'S' }, + { "new-file", required_argument, 0, 'W' }, + { "assume-new", required_argument, 0, 'W' }, + { "assume-old", required_argument, 0, 'o' }, + { "max-load", optional_argument, 0, 'l' }, + { "dry-run", no_argument, 0, 'n' }, + { "recon", no_argument, 0, 'n' }, + { "makefile", required_argument, 0, 'f' }, + }; + +/* List of goal targets. */ + +static struct dep *goals, *lastgoal; + +/* List of variables which were defined on the command line + (or, equivalently, in MAKEFLAGS). */ + +struct command_variable + { + struct command_variable *next; + struct variable *variable; + }; +static struct command_variable *command_variables; + +/* The name we were invoked with. */ + +char *program; + +/* Our current directory before processing any -C options. */ + +char *directory_before_chdir; + +/* Our current directory after processing all -C options. */ + +char *starting_directory; + +/* Value of the MAKELEVEL variable at startup (or 0). */ + +unsigned int makelevel; + +/* First file defined in the makefile whose name does not + start with `.'. This is the default to remake if the + command line does not specify. */ + +struct file *default_goal_file; + +/* Pointer to structure for the file .DEFAULT + whose commands are used for any file that has none of its own. + This is zero if the makefiles do not define .DEFAULT. */ + +struct file *default_file; + +/* Nonzero if we have seen the magic `.POSIX' target. + This turns on pedantic compliance with POSIX.2. */ + +int posix_pedantic; + +/* Nonzero if we have seen the `.NOTPARALLEL' target. + This turns off parallel builds for this invocation of make. */ + +int not_parallel; + +/* Nonzero if some rule detected clock skew; we keep track so (a) we only + print one warning about it during the run, and (b) we can print a final + warning at the end of the run. */ + +int clock_skew_detected; + +/* Mask of signals that are being caught with fatal_error_signal. */ + +#ifdef POSIX +sigset_t fatal_signal_set; +#else +# ifdef HAVE_SIGSETMASK +int fatal_signal_mask; +# endif +#endif + +#if !defined HAVE_BSD_SIGNAL && !defined bsd_signal +# if !defined HAVE_SIGACTION +# define bsd_signal signal +# else +typedef RETSIGTYPE (*bsd_signal_ret_t) (); + +static bsd_signal_ret_t +bsd_signal (sig, func) + int sig; + bsd_signal_ret_t func; +{ + struct sigaction act, oact; + act.sa_handler = func; + act.sa_flags = SA_RESTART; + sigemptyset (&act.sa_mask); + sigaddset (&act.sa_mask, sig); + if (sigaction (sig, &act, &oact) != 0) + return SIG_ERR; + return oact.sa_handler; +} +# endif +#endif + +static void +initialize_global_hash_tables () +{ + init_hash_global_variable_set (); + init_hash_files (); + hash_init_directories (); + hash_init_function_table (); +} + +static struct file * +enter_command_line_file (name) + char *name; +{ + if (name[0] == '\0') + fatal (NILF, _("empty string invalid as file name")); + + if (name[0] == '~') + { + char *expanded = tilde_expand (name); + if (expanded != 0) + name = expanded; /* Memory leak; I don't care. */ + } + + /* This is also done in parse_file_seq, so this is redundant + for names read from makefiles. It is here for names passed + on the command line. */ + while (name[0] == '.' && name[1] == '/' && name[2] != '\0') + { + name += 2; + while (*name == '/') + /* Skip following slashes: ".//foo" is "foo", not "/foo". */ + ++name; + } + + if (*name == '\0') + { + /* It was all slashes! Move back to the dot and truncate + it after the first slash, so it becomes just "./". */ + do + --name; + while (name[0] != '.'); + name[2] = '\0'; + } + + return enter_file (xstrdup (name)); +} + +/* Toggle -d on receipt of SIGUSR1. */ + +static RETSIGTYPE +debug_signal_handler (sig) + int sig; +{ + db_level = db_level ? DB_NONE : DB_BASIC; +} + +static void +decode_debug_flags () +{ + char **pp; + + if (debug_flag) + db_level = DB_ALL; + + if (!db_flags) + return; + + for (pp=db_flags->list; *pp; ++pp) + { + const char *p = *pp; + + while (1) + { + switch (tolower (p[0])) + { + case 'a': + db_level |= DB_ALL; + break; + case 'b': + db_level |= DB_BASIC; + break; + case 'i': + db_level |= DB_BASIC | DB_IMPLICIT; + break; + case 'j': + db_level |= DB_JOBS; + break; + case 'm': + db_level |= DB_BASIC | DB_MAKEFILES; + break; + case 'v': + db_level |= DB_BASIC | DB_VERBOSE; + break; + default: + fatal (NILF, _("unknown debug level specification `%s'"), p); + } + + while (*(++p) != '\0') + if (*p == ',' || *p == ' ') + break; + + if (*p == '\0') + break; + + ++p; + } + } +} + +#ifdef WINDOWS32 +/* + * HANDLE runtime exceptions by avoiding a requestor on the GUI. Capture + * exception and print it to stderr instead. + * + * If ! DB_VERBOSE, just print a simple message and exit. + * If DB_VERBOSE, print a more verbose message. + * If compiled for DEBUG, let exception pass through to GUI so that + * debuggers can attach. + */ +LONG WINAPI +handle_runtime_exceptions( struct _EXCEPTION_POINTERS *exinfo ) +{ + PEXCEPTION_RECORD exrec = exinfo->ExceptionRecord; + LPSTR cmdline = GetCommandLine(); + LPSTR prg = strtok(cmdline, " "); + CHAR errmsg[1024]; +#ifdef USE_EVENT_LOG + HANDLE hEventSource; + LPTSTR lpszStrings[1]; +#endif + + if (! ISDB (DB_VERBOSE)) + { + sprintf(errmsg, + _("%s: Interrupt/Exception caught (code = 0x%x, addr = 0x%x)\n"), + prg, exrec->ExceptionCode, exrec->ExceptionAddress); + fprintf(stderr, errmsg); + exit(255); + } + + sprintf(errmsg, + _("\nUnhandled exception filter called from program %s\nExceptionCode = %x\nExceptionFlags = %x\nExceptionAddress = %x\n"), + prg, exrec->ExceptionCode, exrec->ExceptionFlags, + exrec->ExceptionAddress); + + if (exrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION + && exrec->NumberParameters >= 2) + sprintf(&errmsg[strlen(errmsg)], + (exrec->ExceptionInformation[0] + ? _("Access violation: write operation at address %x\n") + : _("Access violation: read operation at address %x\n")), + exrec->ExceptionInformation[1]); + + /* turn this on if we want to put stuff in the event log too */ +#ifdef USE_EVENT_LOG + hEventSource = RegisterEventSource(NULL, "GNU Make"); + lpszStrings[0] = errmsg; + + if (hEventSource != NULL) + { + ReportEvent(hEventSource, /* handle of event source */ + EVENTLOG_ERROR_TYPE, /* event type */ + 0, /* event category */ + 0, /* event ID */ + NULL, /* current user's SID */ + 1, /* strings in lpszStrings */ + 0, /* no bytes of raw data */ + lpszStrings, /* array of error strings */ + NULL); /* no raw data */ + + (VOID) DeregisterEventSource(hEventSource); + } +#endif + + /* Write the error to stderr too */ + fprintf(stderr, errmsg); + +#ifdef DEBUG + return EXCEPTION_CONTINUE_SEARCH; +#else + exit(255); + return (255); /* not reached */ +#endif +} + +/* + * On WIN32 systems we don't have the luxury of a /bin directory that + * is mapped globally to every drive mounted to the system. Since make could + * be invoked from any drive, and we don't want to propogate /bin/sh + * to every single drive. Allow ourselves a chance to search for + * a value for default shell here (if the default path does not exist). + */ + +int +find_and_set_default_shell(char *token) +{ + int sh_found = 0; + char* search_token; + PATH_VAR(sh_path); + extern char *default_shell; + + if (!token) + search_token = default_shell; + else + search_token = token; + + if (!no_default_sh_exe && + (token == NULL || !strcmp(search_token, default_shell))) { + /* no new information, path already set or known */ + sh_found = 1; + } else if (file_exists_p(search_token)) { + /* search token path was found */ + sprintf(sh_path, "%s", search_token); + default_shell = xstrdup(w32ify(sh_path,0)); + DB (DB_VERBOSE, + (_("find_and_set_shell setting default_shell = %s\n"), default_shell)); + sh_found = 1; + } else { + char *p; + struct variable *v = lookup_variable ("Path", 4); + + /* + * Search Path for shell + */ + if (v && v->value) { + char *ep; + + p = v->value; + ep = strchr(p, PATH_SEPARATOR_CHAR); + + while (ep && *ep) { + *ep = '\0'; + + if (dir_file_exists_p(p, search_token)) { + sprintf(sh_path, "%s/%s", p, search_token); + default_shell = xstrdup(w32ify(sh_path,0)); + sh_found = 1; + *ep = PATH_SEPARATOR_CHAR; + + /* terminate loop */ + p += strlen(p); + } else { + *ep = PATH_SEPARATOR_CHAR; + p = ++ep; + } + + ep = strchr(p, PATH_SEPARATOR_CHAR); + } + + /* be sure to check last element of Path */ + if (p && *p && dir_file_exists_p(p, search_token)) { + sprintf(sh_path, "%s/%s", p, search_token); + default_shell = xstrdup(w32ify(sh_path,0)); + sh_found = 1; + } + + if (sh_found) + DB (DB_VERBOSE, + (_("find_and_set_shell path search set default_shell = %s\n"), + default_shell)); + } + } + + /* naive test */ + if (!unixy_shell && sh_found && + (strstr(default_shell, "sh") || strstr(default_shell, "SH"))) { + unixy_shell = 1; + batch_mode_shell = 0; + } + +#ifdef BATCH_MODE_ONLY_SHELL + batch_mode_shell = 1; +#endif + + return (sh_found); +} +#endif /* WINDOWS32 */ + +#ifdef __MSDOS__ + +static void +msdos_return_to_initial_directory () +{ + if (directory_before_chdir) + chdir (directory_before_chdir); +} +#endif + +extern char *mktemp (); +extern int mkstemp (); + +FILE * +open_tmpfile(name, template) + char **name; + const char *template; +{ + int fd; + +#if defined HAVE_MKSTEMP || defined HAVE_MKTEMP +# define TEMPLATE_LEN strlen (template) +#else +# define TEMPLATE_LEN L_tmpnam +#endif + *name = xmalloc (TEMPLATE_LEN + 1); + strcpy (*name, template); + +#if defined HAVE_MKSTEMP && defined HAVE_FDOPEN + /* It's safest to use mkstemp(), if we can. */ + fd = mkstemp (*name); + if (fd == -1) + return 0; + return fdopen (fd, "w"); +#else +# ifdef HAVE_MKTEMP + (void) mktemp (*name); +# else + (void) tmpnam (*name); +# endif + +# ifdef HAVE_FDOPEN + /* Can't use mkstemp(), but guard against a race condition. */ + fd = open (*name, O_CREAT|O_EXCL|O_WRONLY, 0600); + if (fd == -1) + return 0; + return fdopen (fd, "w"); +# else + /* Not secure, but what can we do? */ + return fopen (*name, "w"); +# endif +#endif +} + + +#ifndef _AMIGA +int +main (argc, argv, envp) + int argc; + char **argv; + char **envp; +#else +int main (int argc, char ** argv) +#endif +{ + static char *stdin_nm = 0; + register struct file *f; + register unsigned int i; + char **p; + struct dep *read_makefiles; + PATH_VAR (current_directory); +#ifdef WINDOWS32 + char *unix_path = NULL; + char *windows32_path = NULL; + + SetUnhandledExceptionFilter(handle_runtime_exceptions); + + /* start off assuming we have no shell */ + unixy_shell = 0; + no_default_sh_exe = 1; +#endif + + default_goal_file = 0; + reading_file = 0; + +#if defined (__MSDOS__) && !defined (_POSIX_SOURCE) + /* Request the most powerful version of `system', to + make up for the dumb default shell. */ + __system_flags = (__system_redirect + | __system_use_shell + | __system_allow_multiple_cmds + | __system_allow_long_cmds + | __system_handle_null_commands + | __system_emulate_chdir); + +#endif + + /* Set up gettext/internationalization support. */ + setlocale (LC_ALL, ""); + bindtextdomain (PACKAGE, LOCALEDIR); + textdomain (PACKAGE); + +#ifdef POSIX + sigemptyset (&fatal_signal_set); +#define ADD_SIG(sig) sigaddset (&fatal_signal_set, sig) +#else +#ifdef HAVE_SIGSETMASK + fatal_signal_mask = 0; +#define ADD_SIG(sig) fatal_signal_mask |= sigmask (sig) +#else +#define ADD_SIG(sig) +#endif +#endif + +#define FATAL_SIG(sig) \ + if (bsd_signal (sig, fatal_error_signal) == SIG_IGN) \ + bsd_signal (sig, SIG_IGN); \ + else \ + ADD_SIG (sig); + +#ifdef SIGHUP + FATAL_SIG (SIGHUP); +#endif +#ifdef SIGQUIT + FATAL_SIG (SIGQUIT); +#endif + FATAL_SIG (SIGINT); + FATAL_SIG (SIGTERM); + +#ifdef __MSDOS__ + /* Windows 9X delivers FP exceptions in child programs to their + parent! We don't want Make to die when a child divides by zero, + so we work around that lossage by catching SIGFPE. */ + FATAL_SIG (SIGFPE); +#endif + +#ifdef SIGDANGER + FATAL_SIG (SIGDANGER); +#endif +#ifdef SIGXCPU + FATAL_SIG (SIGXCPU); +#endif +#ifdef SIGXFSZ + FATAL_SIG (SIGXFSZ); +#endif + +#undef FATAL_SIG + + /* Do not ignore the child-death signal. This must be done before + any children could possibly be created; otherwise, the wait + functions won't work on systems with the SVR4 ECHILD brain + damage, if our invoker is ignoring this signal. */ + +#ifdef HAVE_WAIT_NOHANG +# if defined SIGCHLD + (void) bsd_signal (SIGCHLD, SIG_DFL); +# endif +# if defined SIGCLD && SIGCLD != SIGCHLD + (void) bsd_signal (SIGCLD, SIG_DFL); +# endif +#endif + + /* Make sure stdout is line-buffered. */ + +#ifdef HAVE_SETVBUF +# ifdef SETVBUF_REVERSED + setvbuf (stdout, _IOLBF, xmalloc (BUFSIZ), BUFSIZ); +# else /* setvbuf not reversed. */ + /* Some buggy systems lose if we pass 0 instead of allocating ourselves. */ + setvbuf (stdout, (char *) 0, _IOLBF, BUFSIZ); +# endif /* setvbuf reversed. */ +#elif HAVE_SETLINEBUF + setlinebuf (stdout); +#endif /* setlinebuf missing. */ + + /* Figure out where this program lives. */ + + if (argv[0] == 0) + argv[0] = ""; + if (argv[0][0] == '\0') + program = "make"; + else + { +#ifdef VMS + program = strrchr (argv[0], ']'); +#else + program = strrchr (argv[0], '/'); +#endif +#ifdef __MSDOS__ + if (program == 0) + program = strrchr (argv[0], '\\'); + else + { + /* Some weird environments might pass us argv[0] with + both kinds of slashes; we must find the rightmost. */ + char *p = strrchr (argv[0], '\\'); + if (p && p > program) + program = p; + } + if (program == 0 && argv[0][1] == ':') + program = argv[0] + 1; +#endif + if (program == 0) + program = argv[0]; + else + ++program; + } + + /* Set up to access user data (files). */ + user_access (); + + initialize_global_hash_tables (); + + /* Figure out where we are. */ + +#ifdef WINDOWS32 + if (getcwd_fs (current_directory, GET_PATH_MAX) == 0) +#else + if (getcwd (current_directory, GET_PATH_MAX) == 0) +#endif + { +#ifdef HAVE_GETCWD + perror_with_name ("getcwd: ", ""); +#else + error (NILF, "getwd: %s", current_directory); +#endif + current_directory[0] = '\0'; + directory_before_chdir = 0; + } + else + directory_before_chdir = xstrdup (current_directory); +#ifdef __MSDOS__ + /* Make sure we will return to the initial directory, come what may. */ + atexit (msdos_return_to_initial_directory); +#endif + + /* Initialize the special variables. */ + define_variable (".VARIABLES", 10, "", o_default, 0)->special = 1; + /* define_variable (".TARGETS", 8, "", o_default, 0); */ + + /* Read in variables from the environment. It is important that this be + done before $(MAKE) is figured out so its definitions will not be + from the environment. */ + +#ifndef _AMIGA + for (i = 0; envp[i] != 0; ++i) + { + int do_not_define; + register char *ep = envp[i]; + + /* by default, everything gets defined and exported */ + do_not_define = 0; + + while (*ep != '=') + ++ep; +#ifdef WINDOWS32 + if (!unix_path && strneq(envp[i], "PATH=", 5)) + unix_path = ep+1; + else if (!windows32_path && !strnicmp(envp[i], "Path=", 5)) { + do_not_define = 1; /* it gets defined after loop exits */ + windows32_path = ep+1; + } +#endif + /* The result of pointer arithmetic is cast to unsigned int for + machines where ptrdiff_t is a different size that doesn't widen + the same. */ + if (!do_not_define) + define_variable (envp[i], (unsigned int) (ep - envp[i]), + ep + 1, o_env, 1) + /* Force exportation of every variable culled from the environment. + We used to rely on target_environment's v_default code to do this. + But that does not work for the case where an environment variable + is redefined in a makefile with `override'; it should then still + be exported, because it was originally in the environment. */ + ->export = v_export; + } +#ifdef WINDOWS32 + /* + * Make sure that this particular spelling of 'Path' is available + */ + if (windows32_path) + define_variable("Path", 4, windows32_path, o_env, 1)->export = v_export; + else if (unix_path) + define_variable("Path", 4, unix_path, o_env, 1)->export = v_export; + else + define_variable("Path", 4, "", o_env, 1)->export = v_export; + + /* + * PATH defaults to Path iff PATH not found and Path is found. + */ + if (!unix_path && windows32_path) + define_variable("PATH", 4, windows32_path, o_env, 1)->export = v_export; +#endif +#else /* For Amiga, read the ENV: device, ignoring all dirs */ + { + BPTR env, file, old; + char buffer[1024]; + int len; + __aligned struct FileInfoBlock fib; + + env = Lock ("ENV:", ACCESS_READ); + if (env) + { + old = CurrentDir (DupLock(env)); + Examine (env, &fib); + + while (ExNext (env, &fib)) + { + if (fib.fib_DirEntryType < 0) /* File */ + { + /* Define an empty variable. It will be filled in + variable_lookup(). Makes startup quite a bit + faster. */ + define_variable (fib.fib_FileName, + strlen (fib.fib_FileName), + "", o_env, 1)->export = v_export; + } + } + UnLock (env); + UnLock(CurrentDir(old)); + } + } +#endif + + /* Decode the switches. */ + + decode_env_switches ("MAKEFLAGS", 9); +#if 0 + /* People write things like: + MFLAGS="CC=gcc -pipe" "CFLAGS=-g" + and we set the -p, -i and -e switches. Doesn't seem quite right. */ + decode_env_switches ("MFLAGS", 6); +#endif + decode_switches (argc, argv, 0); +#ifdef WINDOWS32 + if (suspend_flag) { + fprintf(stderr, "%s (pid = %d)\n", argv[0], GetCurrentProcessId()); + fprintf(stderr, _("%s is suspending for 30 seconds..."), argv[0]); + Sleep(30 * 1000); + fprintf(stderr, _("done sleep(30). Continuing.\n")); + } +#endif + + decode_debug_flags (); + + /* Print version information. */ + + if (print_version_flag || print_data_base_flag || db_level) + print_version (); + + /* `make --version' is supposed to just print the version and exit. */ + if (print_version_flag) + die (0); + +#ifndef VMS + /* Set the "MAKE_COMMAND" variable to the name we were invoked with. + (If it is a relative pathname with a slash, prepend our directory name + so the result will run the same program regardless of the current dir. + If it is a name with no slash, we can only hope that PATH did not + find it in the current directory.) */ +#ifdef WINDOWS32 + /* + * Convert from backslashes to forward slashes for + * programs like sh which don't like them. Shouldn't + * matter if the path is one way or the other for + * CreateProcess(). + */ + if (strpbrk(argv[0], "/:\\") || + strstr(argv[0], "..") || + strneq(argv[0], "//", 2)) + argv[0] = xstrdup(w32ify(argv[0],1)); +#else /* WINDOWS32 */ +#ifdef __MSDOS__ + if (strchr (argv[0], '\\')) + { + char *p; + + argv[0] = xstrdup (argv[0]); + for (p = argv[0]; *p; p++) + if (*p == '\\') + *p = '/'; + } + /* If argv[0] is not in absolute form, prepend the current + directory. This can happen when Make is invoked by another DJGPP + program that uses a non-absolute name. */ + if (current_directory[0] != '\0' + && argv[0] != 0 + && (argv[0][0] != '/' && (argv[0][0] == '\0' || argv[0][1] != ':'))) + argv[0] = concat (current_directory, "/", argv[0]); +#else /* !__MSDOS__ */ + if (current_directory[0] != '\0' + && argv[0] != 0 && argv[0][0] != '/' && strchr (argv[0], '/') != 0) + argv[0] = concat (current_directory, "/", argv[0]); +#endif /* !__MSDOS__ */ +#endif /* WINDOWS32 */ +#endif + + /* The extra indirection through $(MAKE_COMMAND) is done + for hysterical raisins. */ + (void) define_variable ("MAKE_COMMAND", 12, argv[0], o_default, 0); + (void) define_variable ("MAKE", 4, "$(MAKE_COMMAND)", o_default, 1); + + if (command_variables != 0) + { + struct command_variable *cv; + struct variable *v; + unsigned int len = 0; + char *value, *p; + + /* Figure out how much space will be taken up by the command-line + variable definitions. */ + for (cv = command_variables; cv != 0; cv = cv->next) + { + v = cv->variable; + len += 2 * strlen (v->name); + if (! v->recursive) + ++len; + ++len; + len += 2 * strlen (v->value); + ++len; + } + + /* Now allocate a buffer big enough and fill it. */ + p = value = (char *) alloca (len); + for (cv = command_variables; cv != 0; cv = cv->next) + { + v = cv->variable; + p = quote_for_env (p, v->name); + if (! v->recursive) + *p++ = ':'; + *p++ = '='; + p = quote_for_env (p, v->value); + *p++ = ' '; + } + p[-1] = '\0'; /* Kill the final space and terminate. */ + + /* Define an unchangeable variable with a name that no POSIX.2 + makefile could validly use for its own variable. */ + (void) define_variable ("-*-command-variables-*-", 23, + value, o_automatic, 0); + + /* Define the variable; this will not override any user definition. + Normally a reference to this variable is written into the value of + MAKEFLAGS, allowing the user to override this value to affect the + exported value of MAKEFLAGS. In POSIX-pedantic mode, we cannot + allow the user's setting of MAKEOVERRIDES to affect MAKEFLAGS, so + a reference to this hidden variable is written instead. */ + (void) define_variable ("MAKEOVERRIDES", 13, + "${-*-command-variables-*-}", o_env, 1); + } + + /* If there were -C flags, move ourselves about. */ + if (directories != 0) + for (i = 0; directories->list[i] != 0; ++i) + { + char *dir = directories->list[i]; + if (dir[0] == '~') + { + char *expanded = tilde_expand (dir); + if (expanded != 0) + dir = expanded; + } + if (chdir (dir) < 0) + pfatal_with_name (dir); + if (dir != directories->list[i]) + free (dir); + } + +#ifdef WINDOWS32 + /* + * THIS BLOCK OF CODE MUST COME AFTER chdir() CALL ABOVE IN ORDER + * TO NOT CONFUSE THE DEPENDENCY CHECKING CODE IN implicit.c. + * + * The functions in dir.c can incorrectly cache information for "." + * before we have changed directory and this can cause file + * lookups to fail because the current directory (.) was pointing + * at the wrong place when it was first evaluated. + */ + no_default_sh_exe = !find_and_set_default_shell(NULL); + +#endif /* WINDOWS32 */ + /* Figure out the level of recursion. */ + { + struct variable *v = lookup_variable (MAKELEVEL_NAME, MAKELEVEL_LENGTH); + if (v != 0 && v->value[0] != '\0' && v->value[0] != '-') + makelevel = (unsigned int) atoi (v->value); + else + makelevel = 0; + } + + /* Except under -s, always do -w in sub-makes and under -C. */ + if (!silent_flag && (directories != 0 || makelevel > 0)) + print_directory_flag = 1; + + /* Let the user disable that with --no-print-directory. */ + if (inhibit_print_directory_flag) + print_directory_flag = 0; + + /* If -R was given, set -r too (doesn't make sense otherwise!) */ + if (no_builtin_variables_flag) + no_builtin_rules_flag = 1; + + /* Construct the list of include directories to search. */ + + construct_include_path (include_directories == 0 ? (char **) 0 + : include_directories->list); + + /* Figure out where we are now, after chdir'ing. */ + if (directories == 0) + /* We didn't move, so we're still in the same place. */ + starting_directory = current_directory; + else + { +#ifdef WINDOWS32 + if (getcwd_fs (current_directory, GET_PATH_MAX) == 0) +#else + if (getcwd (current_directory, GET_PATH_MAX) == 0) +#endif + { +#ifdef HAVE_GETCWD + perror_with_name ("getcwd: ", ""); +#else + error (NILF, "getwd: %s", current_directory); +#endif + starting_directory = 0; + } + else + starting_directory = current_directory; + } + + (void) define_variable ("CURDIR", 6, current_directory, o_default, 0); + + /* Read any stdin makefiles into temporary files. */ + + if (makefiles != 0) + { + register unsigned int i; + for (i = 0; i < makefiles->idx; ++i) + if (makefiles->list[i][0] == '-' && makefiles->list[i][1] == '\0') + { + /* This makefile is standard input. Since we may re-exec + and thus re-read the makefiles, we read standard input + into a temporary file and read from that. */ + FILE *outfile; + char *template, *tmpdir; + + if (stdin_nm) + fatal (NILF, _("Makefile from standard input specified twice.")); + +#ifdef VMS +# define DEFAULT_TMPDIR "sys$scratch:" +#else +# ifdef P_tmpdir +# define DEFAULT_TMPDIR P_tmpdir +# else +# define DEFAULT_TMPDIR "/tmp" +# endif +#endif +#define DEFAULT_TMPFILE "GmXXXXXX" + + if (((tmpdir = getenv ("TMPDIR")) == NULL || *tmpdir == '\0') +#if defined __MSDOS__ || defined(WINDOWS32) + /* These are also used commonly on these platforms. */ + && ((tmpdir = getenv ("TEMP")) == NULL || *tmpdir == '\0') + && ((tmpdir = getenv ("TMP")) == NULL || *tmpdir == '\0') +#endif + ) + tmpdir = DEFAULT_TMPDIR; + + template = (char *) alloca (strlen (tmpdir) + + sizeof (DEFAULT_TMPFILE) + 1); + strcpy (template, tmpdir); + +#ifdef HAVE_DOS_PATHS + if (strchr ("/\\", template[strlen (template) - 1]) == NULL) + strcat (template, "/"); +#else +# ifndef VMS + if (template[strlen (template) - 1] != '/') + strcat (template, "/"); +# endif /* !VMS */ +#endif /* !HAVE_DOS_PATHS */ + + strcat (template, DEFAULT_TMPFILE); + outfile = open_tmpfile (&stdin_nm, template); + if (outfile == 0) + pfatal_with_name (_("fopen (temporary file)")); + while (!feof (stdin)) + { + char buf[2048]; + unsigned int n = fread (buf, 1, sizeof (buf), stdin); + if (n > 0 && fwrite (buf, 1, n, outfile) != n) + pfatal_with_name (_("fwrite (temporary file)")); + } + (void) fclose (outfile); + + /* Replace the name that read_all_makefiles will + see with the name of the temporary file. */ + makefiles->list[i] = xstrdup (stdin_nm); + + /* Make sure the temporary file will not be remade. */ + f = enter_file (stdin_nm); + f->updated = 1; + f->update_status = 0; + f->command_state = cs_finished; + /* Can't be intermediate, or it'll be removed too early for + make re-exec. */ + f->intermediate = 0; + f->dontcare = 0; + } + } + +#if defined(MAKE_JOBSERVER) || !defined(HAVE_WAIT_NOHANG) + /* Set up to handle children dying. This must be done before + reading in the makefiles so that `shell' function calls will work. + + If we don't have a hanging wait we have to fall back to old, broken + functionality here and rely on the signal handler and counting + children. + + If we're using the jobs pipe we need a signal handler so that + SIGCHLD is not ignored; we need it to interrupt the read(2) of the + jobserver pipe in job.c if we're waiting for a token. + + If none of these are true, we don't need a signal handler at all. */ + { + extern RETSIGTYPE child_handler PARAMS ((int sig)); +# if defined SIGCHLD + bsd_signal (SIGCHLD, child_handler); +# endif +# if defined SIGCLD && SIGCLD != SIGCHLD + bsd_signal (SIGCLD, child_handler); +# endif + } +#endif + + /* Let the user send us SIGUSR1 to toggle the -d flag during the run. */ +#ifdef SIGUSR1 + bsd_signal (SIGUSR1, debug_signal_handler); +#endif + + /* Define the initial list of suffixes for old-style rules. */ + + set_default_suffixes (); + + /* Define the file rules for the built-in suffix rules. These will later + be converted into pattern rules. We used to do this in + install_default_implicit_rules, but since that happens after reading + makefiles, it results in the built-in pattern rules taking precedence + over makefile-specified suffix rules, which is wrong. */ + + install_default_suffix_rules (); + + /* Define some internal and special variables. */ + + define_automatic_variables (); + + /* Set up the MAKEFLAGS and MFLAGS variables + so makefiles can look at them. */ + + define_makeflags (0, 0); + + /* Define the default variables. */ + define_default_variables (); + + /* Read all the makefiles. */ + + default_file = enter_file (".DEFAULT"); + + read_makefiles + = read_all_makefiles (makefiles == 0 ? (char **) 0 : makefiles->list); + +#ifdef WINDOWS32 + /* look one last time after reading all Makefiles */ + if (no_default_sh_exe) + no_default_sh_exe = !find_and_set_default_shell(NULL); + + if (no_default_sh_exe && job_slots != 1) { + error (NILF, _("Do not specify -j or --jobs if sh.exe is not available.")); + error (NILF, _("Resetting make for single job mode.")); + job_slots = 1; + } +#endif /* WINDOWS32 */ + +#ifdef __MSDOS__ + /* We need to know what kind of shell we will be using. */ + { + extern int _is_unixy_shell (const char *_path); + struct variable *shv = lookup_variable ("SHELL", 5); + extern int unixy_shell; + extern char *default_shell; + + if (shv && *shv->value) + { + char *shell_path = recursively_expand(shv); + + if (shell_path && _is_unixy_shell (shell_path)) + unixy_shell = 1; + else + unixy_shell = 0; + if (shell_path) + default_shell = shell_path; + } + } +#endif /* __MSDOS__ */ + + /* Decode switches again, in case the variables were set by the makefile. */ + decode_env_switches ("MAKEFLAGS", 9); +#if 0 + decode_env_switches ("MFLAGS", 6); +#endif + +#ifdef __MSDOS__ + if (job_slots != 1) + { + error (NILF, + _("Parallel jobs (-j) are not supported on this platform.")); + error (NILF, _("Resetting to single job (-j1) mode.")); + job_slots = 1; + } +#endif + +#ifdef MAKE_JOBSERVER + /* If the jobserver-fds option is seen, make sure that -j is reasonable. */ + + if (jobserver_fds) + { + char *cp; + + for (i=1; i < jobserver_fds->idx; ++i) + if (!streq (jobserver_fds->list[0], jobserver_fds->list[i])) + fatal (NILF, _("internal error: multiple --jobserver-fds options")); + + /* Now parse the fds string and make sure it has the proper format. */ + + cp = jobserver_fds->list[0]; + + if (sscanf (cp, "%d,%d", &job_fds[0], &job_fds[1]) != 2) + fatal (NILF, + _("internal error: invalid --jobserver-fds string `%s'"), cp); + + /* The combination of a pipe + !job_slots means we're using the + jobserver. If !job_slots and we don't have a pipe, we can start + infinite jobs. If we see both a pipe and job_slots >0 that means the + user set -j explicitly. This is broken; in this case obey the user + (ignore the jobserver pipe for this make) but print a message. */ + + if (job_slots > 0) + error (NILF, + _("warning: -jN forced in submake: disabling jobserver mode.")); + + /* Create a duplicate pipe, that will be closed in the SIGCHLD + handler. If this fails with EBADF, the parent has closed the pipe + on us because it didn't think we were a submake. If so, print a + warning then default to -j1. */ + + else if ((job_rfd = dup (job_fds[0])) < 0) + { + if (errno != EBADF) + pfatal_with_name (_("dup jobserver")); + + error (NILF, + _("warning: jobserver unavailable: using -j1. Add `+' to parent make rule.")); + job_slots = 1; + } + + if (job_slots > 0) + { + close (job_fds[0]); + close (job_fds[1]); + job_fds[0] = job_fds[1] = -1; + free (jobserver_fds->list); + free (jobserver_fds); + jobserver_fds = 0; + } + } + + /* If we have >1 slot but no jobserver-fds, then we're a top-level make. + Set up the pipe and install the fds option for our children. */ + + if (job_slots > 1) + { + char c = '+'; + + if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0) + pfatal_with_name (_("creating jobs pipe")); + + /* Every make assumes that it always has one job it can run. For the + submakes it's the token they were given by their parent. For the + top make, we just subtract one from the number the user wants. We + want job_slots to be 0 to indicate we're using the jobserver. */ + + while (--job_slots) + if (write (job_fds[1], &c, 1) != 1) + pfatal_with_name (_("init jobserver pipe")); + + /* Fill in the jobserver_fds struct for our children. */ + + jobserver_fds = (struct stringlist *) + xmalloc (sizeof (struct stringlist)); + jobserver_fds->list = (char **) xmalloc (sizeof (char *)); + jobserver_fds->list[0] = xmalloc ((sizeof ("1024")*2)+1); + + sprintf (jobserver_fds->list[0], "%d,%d", job_fds[0], job_fds[1]); + jobserver_fds->idx = 1; + jobserver_fds->max = 1; + } +#endif + + /* Set up MAKEFLAGS and MFLAGS again, so they will be right. */ + + define_makeflags (1, 0); + + /* Make each `struct dep' point at the `struct file' for the file + depended on. Also do magic for special targets. */ + + snap_deps (); + + /* Convert old-style suffix rules to pattern rules. It is important to + do this before installing the built-in pattern rules below, so that + makefile-specified suffix rules take precedence over built-in pattern + rules. */ + + convert_to_pattern (); + + /* Install the default implicit pattern rules. + This used to be done before reading the makefiles. + But in that case, built-in pattern rules were in the chain + before user-defined ones, so they matched first. */ + + install_default_implicit_rules (); + + /* Compute implicit rule limits. */ + + count_implicit_rule_limits (); + + /* Construct the listings of directories in VPATH lists. */ + + build_vpath_lists (); + + /* Mark files given with -o flags as very old + and as having been updated already, and files given with -W flags as + brand new (time-stamp as far as possible into the future). */ + + if (old_files != 0) + for (p = old_files->list; *p != 0; ++p) + { + f = enter_command_line_file (*p); + f->last_mtime = f->mtime_before_update = OLD_MTIME; + f->updated = 1; + f->update_status = 0; + f->command_state = cs_finished; + } + + if (new_files != 0) + { + for (p = new_files->list; *p != 0; ++p) + { + f = enter_command_line_file (*p); + f->last_mtime = f->mtime_before_update = NEW_MTIME; + } + } + + /* Initialize the remote job module. */ + remote_setup (); + + if (read_makefiles != 0) + { + /* Update any makefiles if necessary. */ + + FILE_TIMESTAMP *makefile_mtimes = 0; + unsigned int mm_idx = 0; + char **nargv = argv; + int nargc = argc; + int orig_db_level = db_level; + + if (! ISDB (DB_MAKEFILES)) + db_level = DB_NONE; + + DB (DB_BASIC, (_("Updating makefiles....\n"))); + + /* Remove any makefiles we don't want to try to update. + Also record the current modtimes so we can compare them later. */ + { + register struct dep *d, *last; + last = 0; + d = read_makefiles; + while (d != 0) + { + register struct file *f = d->file; + if (f->double_colon) + for (f = f->double_colon; f != NULL; f = f->prev) + { + if (f->deps == 0 && f->cmds != 0) + { + /* This makefile is a :: target with commands, but + no dependencies. So, it will always be remade. + This might well cause an infinite loop, so don't + try to remake it. (This will only happen if + your makefiles are written exceptionally + stupidly; but if you work for Athena, that's how + you write your makefiles.) */ + + DB (DB_VERBOSE, + (_("Makefile `%s' might loop; not remaking it.\n"), + f->name)); + + if (last == 0) + read_makefiles = d->next; + else + last->next = d->next; + + /* Free the storage. */ + free ((char *) d); + + d = last == 0 ? read_makefiles : last->next; + + break; + } + } + if (f == NULL || !f->double_colon) + { + makefile_mtimes = (FILE_TIMESTAMP *) + xrealloc ((char *) makefile_mtimes, + (mm_idx + 1) * sizeof (FILE_TIMESTAMP)); + makefile_mtimes[mm_idx++] = file_mtime_no_search (d->file); + last = d; + d = d->next; + } + } + } + + /* Set up `MAKEFLAGS' specially while remaking makefiles. */ + define_makeflags (1, 1); + + switch (update_goal_chain (read_makefiles, 1)) + { + case 1: + /* The only way this can happen is if the user specified -q and asked + * for one of the makefiles to be remade as a target on the command + * line. Since we're not actually updating anything with -q we can + * treat this as "did nothing". + */ + + case -1: + /* Did nothing. */ + break; + + case 2: + /* Failed to update. Figure out if we care. */ + { + /* Nonzero if any makefile was successfully remade. */ + int any_remade = 0; + /* Nonzero if any makefile we care about failed + in updating or could not be found at all. */ + int any_failed = 0; + register unsigned int i; + struct dep *d; + + for (i = 0, d = read_makefiles; d != 0; ++i, d = d->next) + { + /* Reset the considered flag; we may need to look at the file + again to print an error. */ + d->file->considered = 0; + + if (d->file->updated) + { + /* This makefile was updated. */ + if (d->file->update_status == 0) + { + /* It was successfully updated. */ + any_remade |= (file_mtime_no_search (d->file) + != makefile_mtimes[i]); + } + else if (! (d->changed & RM_DONTCARE)) + { + FILE_TIMESTAMP mtime; + /* The update failed and this makefile was not + from the MAKEFILES variable, so we care. */ + error (NILF, _("Failed to remake makefile `%s'."), + d->file->name); + mtime = file_mtime_no_search (d->file); + any_remade |= (mtime != NONEXISTENT_MTIME + && mtime != makefile_mtimes[i]); + } + } + else + /* This makefile was not found at all. */ + if (! (d->changed & RM_DONTCARE)) + { + /* This is a makefile we care about. See how much. */ + if (d->changed & RM_INCLUDED) + /* An included makefile. We don't need + to die, but we do want to complain. */ + error (NILF, + _("Included makefile `%s' was not found."), + dep_name (d)); + else + { + /* A normal makefile. We must die later. */ + error (NILF, _("Makefile `%s' was not found"), + dep_name (d)); + any_failed = 1; + } + } + } + /* Reset this to empty so we get the right error message below. */ + read_makefiles = 0; + + if (any_remade) + goto re_exec; + if (any_failed) + die (2); + break; + } + + case 0: + re_exec: + /* Updated successfully. Re-exec ourselves. */ + + remove_intermediates (0); + + if (print_data_base_flag) + print_data_base (); + + log_working_directory (0); + + if (makefiles != 0) + { + /* These names might have changed. */ + register unsigned int i, j = 0; + for (i = 1; i < argc; ++i) + if (strneq (argv[i], "-f", 2)) /* XXX */ + { + char *p = &argv[i][2]; + if (*p == '\0') + argv[++i] = makefiles->list[j]; + else + argv[i] = concat ("-f", makefiles->list[j], ""); + ++j; + } + } + + /* Add -o option for the stdin temporary file, if necessary. */ + if (stdin_nm) + { + nargv = (char **) xmalloc ((nargc + 2) * sizeof (char *)); + bcopy ((char *) argv, (char *) nargv, argc * sizeof (char *)); + nargv[nargc++] = concat ("-o", stdin_nm, ""); + nargv[nargc] = 0; + } + + if (directories != 0 && directories->idx > 0) + { + char bad; + if (directory_before_chdir != 0) + { + if (chdir (directory_before_chdir) < 0) + { + perror_with_name ("chdir", ""); + bad = 1; + } + else + bad = 0; + } + else + bad = 1; + if (bad) + fatal (NILF, _("Couldn't change back to original directory.")); + } + +#ifndef _AMIGA + for (p = environ; *p != 0; ++p) + if ((*p)[MAKELEVEL_LENGTH] == '=' + && strneq (*p, MAKELEVEL_NAME, MAKELEVEL_LENGTH)) + { + /* The SGI compiler apparently can't understand + the concept of storing the result of a function + in something other than a local variable. */ + char *sgi_loses; + sgi_loses = (char *) alloca (40); + *p = sgi_loses; + sprintf (*p, "%s=%u", MAKELEVEL_NAME, makelevel); + break; + } +#else /* AMIGA */ + { + char buffer[256]; + int len; + + len = GetVar (MAKELEVEL_NAME, buffer, sizeof (buffer), GVF_GLOBAL_ONLY); + + if (len != -1) + { + sprintf (buffer, "%u", makelevel); + SetVar (MAKELEVEL_NAME, buffer, -1, GVF_GLOBAL_ONLY); + } + } +#endif + + if (ISDB (DB_BASIC)) + { + char **p; + fputs (_("Re-executing:"), stdout); + for (p = nargv; *p != 0; ++p) + printf (" %s", *p); + putchar ('\n'); + } + + fflush (stdout); + fflush (stderr); + + /* Close the dup'd jobserver pipe if we opened one. */ + if (job_rfd >= 0) + close (job_rfd); + +#ifndef _AMIGA + exec_command (nargv, environ); +#else + exec_command (nargv); + exit (0); +#endif + /* NOTREACHED */ + + default: +#define BOGUS_UPDATE_STATUS 0 + assert (BOGUS_UPDATE_STATUS); + break; + } + + db_level = orig_db_level; + } + + /* Set up `MAKEFLAGS' again for the normal targets. */ + define_makeflags (1, 0); + + /* If there is a temp file from reading a makefile from stdin, get rid of + it now. */ + if (stdin_nm && unlink (stdin_nm) < 0 && errno != ENOENT) + perror_with_name (_("unlink (temporary file): "), stdin_nm); + + { + int status; + + /* If there were no command-line goals, use the default. */ + if (goals == 0) + { + if (default_goal_file != 0) + { + goals = (struct dep *) xmalloc (sizeof (struct dep)); + goals->next = 0; + goals->name = 0; + goals->ignore_mtime = 0; + goals->file = default_goal_file; + } + } + else + lastgoal->next = 0; + + if (!goals) + { + if (read_makefiles == 0) + fatal (NILF, _("No targets specified and no makefile found")); + + fatal (NILF, _("No targets")); + } + + /* Update the goals. */ + + DB (DB_BASIC, (_("Updating goal targets....\n"))); + + switch (update_goal_chain (goals, 0)) + { + case -1: + /* Nothing happened. */ + case 0: + /* Updated successfully. */ + status = MAKE_SUCCESS; + break; + case 1: + /* We are under -q and would run some commands. */ + status = MAKE_TROUBLE; + break; + case 2: + /* Updating failed. POSIX.2 specifies exit status >1 for this; + but in VMS, there is only success and failure. */ + status = MAKE_FAILURE; + break; + default: + abort (); + } + + /* If we detected some clock skew, generate one last warning */ + if (clock_skew_detected) + error (NILF, + _("warning: Clock skew detected. Your build may be incomplete.")); + + /* Exit. */ + die (status); + } + + return 0; +} + +/* Parsing of arguments, decoding of switches. */ + +static char options[1 + sizeof (switches) / sizeof (switches[0]) * 3]; +static struct option long_options[(sizeof (switches) / sizeof (switches[0])) + + (sizeof (long_option_aliases) / + sizeof (long_option_aliases[0]))]; + +/* Fill in the string and vector for getopt. */ +static void +init_switches () +{ + register char *p; + register int c; + register unsigned int i; + + if (options[0] != '\0') + /* Already done. */ + return; + + p = options; + + /* Return switch and non-switch args in order, regardless of + POSIXLY_CORRECT. Non-switch args are returned as option 1. */ + *p++ = '-'; + + for (i = 0; switches[i].c != '\0'; ++i) + { + long_options[i].name = (switches[i].long_name == 0 ? "" : + switches[i].long_name); + long_options[i].flag = 0; + long_options[i].val = switches[i].c; + if (short_option (switches[i].c)) + *p++ = switches[i].c; + switch (switches[i].type) + { + case flag: + case flag_off: + case ignore: + long_options[i].has_arg = no_argument; + break; + + case string: + case positive_int: + case floating: + if (short_option (switches[i].c)) + *p++ = ':'; + if (switches[i].noarg_value != 0) + { + if (short_option (switches[i].c)) + *p++ = ':'; + long_options[i].has_arg = optional_argument; + } + else + long_options[i].has_arg = required_argument; + break; + } + } + *p = '\0'; + for (c = 0; c < (sizeof (long_option_aliases) / + sizeof (long_option_aliases[0])); + ++c) + long_options[i++] = long_option_aliases[c]; + long_options[i].name = 0; +} + +static void +handle_non_switch_argument (arg, env) + char *arg; + int env; +{ + /* Non-option argument. It might be a variable definition. */ + struct variable *v; + if (arg[0] == '-' && arg[1] == '\0') + /* Ignore plain `-' for compatibility. */ + return; + v = try_variable_definition (0, arg, o_command, 0); + if (v != 0) + { + /* It is indeed a variable definition. Record a pointer to + the variable for later use in define_makeflags. */ + struct command_variable *cv + = (struct command_variable *) xmalloc (sizeof (*cv)); + cv->variable = v; + cv->next = command_variables; + command_variables = cv; + } + else if (! env) + { + /* Not an option or variable definition; it must be a goal + target! Enter it as a file and add it to the dep chain of + goals. */ + struct file *f = enter_command_line_file (arg); + f->cmd_target = 1; + + if (goals == 0) + { + goals = (struct dep *) xmalloc (sizeof (struct dep)); + lastgoal = goals; + } + else + { + lastgoal->next = (struct dep *) xmalloc (sizeof (struct dep)); + lastgoal = lastgoal->next; + } + lastgoal->name = 0; + lastgoal->file = f; + lastgoal->ignore_mtime = 0; + + { + /* Add this target name to the MAKECMDGOALS variable. */ + struct variable *v; + char *value; + + v = lookup_variable ("MAKECMDGOALS", 12); + if (v == 0) + value = f->name; + else + { + /* Paste the old and new values together */ + unsigned int oldlen, newlen; + + oldlen = strlen (v->value); + newlen = strlen (f->name); + value = (char *) alloca (oldlen + 1 + newlen + 1); + bcopy (v->value, value, oldlen); + value[oldlen] = ' '; + bcopy (f->name, &value[oldlen + 1], newlen + 1); + } + define_variable ("MAKECMDGOALS", 12, value, o_default, 0); + } + } +} + +/* Print a nice usage method. */ + +static void +print_usage (bad) + int bad; +{ + extern char *make_host; + const char *const *cpp; + FILE *usageto; + + if (print_version_flag) + print_version (); + + usageto = bad ? stderr : stdout; + + fprintf (usageto, _("Usage: %s [options] [target] ...\n"), program); + + for (cpp = usage; *cpp; ++cpp) + fputs (_(*cpp), usageto); + + if (!remote_description || *remote_description == '\0') + fprintf (usageto, _("\nThis program built for %s\n"), make_host); + else + fprintf (usageto, _("\nThis program built for %s (%s)\n"), + make_host, remote_description); + + fprintf (usageto, _("Report bugs to \n")); +} + +/* Decode switches from ARGC and ARGV. + They came from the environment if ENV is nonzero. */ + +static void +decode_switches (argc, argv, env) + int argc; + char **argv; + int env; +{ + int bad = 0; + register const struct command_switch *cs; + register struct stringlist *sl; + register int c; + + /* getopt does most of the parsing for us. + First, get its vectors set up. */ + + init_switches (); + + /* Let getopt produce error messages for the command line, + but not for options from the environment. */ + opterr = !env; + /* Reset getopt's state. */ + optind = 0; + + while (optind < argc) + { + /* Parse the next argument. */ + c = getopt_long (argc, argv, options, long_options, (int *) 0); + if (c == EOF) + /* End of arguments, or "--" marker seen. */ + break; + else if (c == 1) + /* An argument not starting with a dash. */ + handle_non_switch_argument (optarg, env); + else if (c == '?') + /* Bad option. We will print a usage message and die later. + But continue to parse the other options so the user can + see all he did wrong. */ + bad = 1; + else + for (cs = switches; cs->c != '\0'; ++cs) + if (cs->c == c) + { + /* Whether or not we will actually do anything with + this switch. We test this individually inside the + switch below rather than just once outside it, so that + options which are to be ignored still consume args. */ + int doit = !env || cs->env; + + switch (cs->type) + { + default: + abort (); + + case ignore: + break; + + case flag: + case flag_off: + if (doit) + *(int *) cs->value_ptr = cs->type == flag; + break; + + case string: + if (!doit) + break; + + if (optarg == 0) + optarg = cs->noarg_value; + + sl = *(struct stringlist **) cs->value_ptr; + if (sl == 0) + { + sl = (struct stringlist *) + xmalloc (sizeof (struct stringlist)); + sl->max = 5; + sl->idx = 0; + sl->list = (char **) xmalloc (5 * sizeof (char *)); + *(struct stringlist **) cs->value_ptr = sl; + } + else if (sl->idx == sl->max - 1) + { + sl->max += 5; + sl->list = (char **) + xrealloc ((char *) sl->list, + sl->max * sizeof (char *)); + } + sl->list[sl->idx++] = optarg; + sl->list[sl->idx] = 0; + break; + + case positive_int: + /* See if we have an option argument; if we do require that + it's all digits, not something like "10foo". */ + if (optarg == 0 && argc > optind) + { + const char *cp; + for (cp=argv[optind]; ISDIGIT (cp[0]); ++cp) + ; + if (cp[0] == '\0') + optarg = argv[optind++]; + } + + if (!doit) + break; + + if (optarg != 0) + { + int i = atoi (optarg); + const char *cp; + + /* Yes, I realize we're repeating this in some cases. */ + for (cp = optarg; ISDIGIT (cp[0]); ++cp) + ; + + if (i < 1 || cp[0] != '\0') + { + error (NILF, _("the `-%c' option requires a positive integral argument"), + cs->c); + bad = 1; + } + else + *(unsigned int *) cs->value_ptr = i; + } + else + *(unsigned int *) cs->value_ptr + = *(unsigned int *) cs->noarg_value; + break; + +#ifndef NO_FLOAT + case floating: + if (optarg == 0 && optind < argc + && (ISDIGIT (argv[optind][0]) || argv[optind][0] == '.')) + optarg = argv[optind++]; + + if (doit) + *(double *) cs->value_ptr + = (optarg != 0 ? atof (optarg) + : *(double *) cs->noarg_value); + + break; +#endif + } + + /* We've found the switch. Stop looking. */ + break; + } + } + + /* There are no more options according to getting getopt, but there may + be some arguments left. Since we have asked for non-option arguments + to be returned in order, this only happens when there is a "--" + argument to prevent later arguments from being options. */ + while (optind < argc) + handle_non_switch_argument (argv[optind++], env); + + + if (!env && (bad || print_usage_flag)) + { + print_usage (bad); + die (bad ? 2 : 0); + } +} + +/* Decode switches from environment variable ENVAR (which is LEN chars long). + We do this by chopping the value into a vector of words, prepending a + dash to the first word if it lacks one, and passing the vector to + decode_switches. */ + +static void +decode_env_switches (envar, len) + char *envar; + unsigned int len; +{ + char *varref = (char *) alloca (2 + len + 2); + char *value, *p; + int argc; + char **argv; + + /* Get the variable's value. */ + varref[0] = '$'; + varref[1] = '('; + bcopy (envar, &varref[2], len); + varref[2 + len] = ')'; + varref[2 + len + 1] = '\0'; + value = variable_expand (varref); + + /* Skip whitespace, and check for an empty value. */ + value = next_token (value); + len = strlen (value); + if (len == 0) + return; + + /* Allocate a vector that is definitely big enough. */ + argv = (char **) alloca ((1 + len + 1) * sizeof (char *)); + + /* Allocate a buffer to copy the value into while we split it into words + and unquote it. We must use permanent storage for this because + decode_switches may store pointers into the passed argument words. */ + p = (char *) xmalloc (2 * len); + + /* getopt will look at the arguments starting at ARGV[1]. + Prepend a spacer word. */ + argv[0] = 0; + argc = 1; + argv[argc] = p; + while (*value != '\0') + { + if (*value == '\\' && value[1] != '\0') + ++value; /* Skip the backslash. */ + else if (isblank ((unsigned char)*value)) + { + /* End of the word. */ + *p++ = '\0'; + argv[++argc] = p; + do + ++value; + while (isblank ((unsigned char)*value)); + continue; + } + *p++ = *value++; + } + *p = '\0'; + argv[++argc] = 0; + + if (argv[1][0] != '-' && strchr (argv[1], '=') == 0) + /* The first word doesn't start with a dash and isn't a variable + definition. Add a dash and pass it along to decode_switches. We + need permanent storage for this in case decode_switches saves + pointers into the value. */ + argv[1] = concat ("-", argv[1], ""); + + /* Parse those words. */ + decode_switches (argc, argv, 1); +} + +/* Quote the string IN so that it will be interpreted as a single word with + no magic by decode_env_switches; also double dollar signs to avoid + variable expansion in make itself. Write the result into OUT, returning + the address of the next character to be written. + Allocating space for OUT twice the length of IN is always sufficient. */ + +static char * +quote_for_env (out, in) + char *out, *in; +{ + while (*in != '\0') + { + if (*in == '$') + *out++ = '$'; + else if (isblank ((unsigned char)*in) || *in == '\\') + *out++ = '\\'; + *out++ = *in++; + } + + return out; +} + +/* Define the MAKEFLAGS and MFLAGS variables to reflect the settings of the + command switches. Include options with args if ALL is nonzero. + Don't include options with the `no_makefile' flag set if MAKEFILE. */ + +static void +define_makeflags (all, makefile) + int all, makefile; +{ + static const char ref[] = "$(MAKEOVERRIDES)"; + static const char posixref[] = "$(-*-command-variables-*-)"; + register const struct command_switch *cs; + char *flagstring; + register char *p; + unsigned int words; + struct variable *v; + + /* We will construct a linked list of `struct flag's describing + all the flags which need to go in MAKEFLAGS. Then, once we + know how many there are and their lengths, we can put them all + together in a string. */ + + struct flag + { + struct flag *next; + const struct command_switch *cs; + char *arg; + }; + struct flag *flags = 0; + unsigned int flagslen = 0; +#define ADD_FLAG(ARG, LEN) \ + do { \ + struct flag *new = (struct flag *) alloca (sizeof (struct flag)); \ + new->cs = cs; \ + new->arg = (ARG); \ + new->next = flags; \ + flags = new; \ + if (new->arg == 0) \ + ++flagslen; /* Just a single flag letter. */ \ + else \ + flagslen += 1 + 1 + 1 + 1 + 3 * (LEN); /* " -x foo" */ \ + if (!short_option (cs->c)) \ + /* This switch has no single-letter version, so we use the long. */ \ + flagslen += 2 + strlen (cs->long_name); \ + } while (0) + + for (cs = switches; cs->c != '\0'; ++cs) + if (cs->toenv && (!makefile || !cs->no_makefile)) + switch (cs->type) + { + default: + abort (); + + case ignore: + break; + + case flag: + case flag_off: + if (!*(int *) cs->value_ptr == (cs->type == flag_off) + && (cs->default_value == 0 + || *(int *) cs->value_ptr != *(int *) cs->default_value)) + ADD_FLAG (0, 0); + break; + + case positive_int: + if (all) + { + if ((cs->default_value != 0 + && (*(unsigned int *) cs->value_ptr + == *(unsigned int *) cs->default_value))) + break; + else if (cs->noarg_value != 0 + && (*(unsigned int *) cs->value_ptr == + *(unsigned int *) cs->noarg_value)) + ADD_FLAG ("", 0); /* Optional value omitted; see below. */ + else if (cs->c == 'j') + /* Special case for `-j'. */ + ADD_FLAG ("1", 1); + else + { + char *buf = (char *) alloca (30); + sprintf (buf, "%u", *(unsigned int *) cs->value_ptr); + ADD_FLAG (buf, strlen (buf)); + } + } + break; + +#ifndef NO_FLOAT + case floating: + if (all) + { + if (cs->default_value != 0 + && (*(double *) cs->value_ptr + == *(double *) cs->default_value)) + break; + else if (cs->noarg_value != 0 + && (*(double *) cs->value_ptr + == *(double *) cs->noarg_value)) + ADD_FLAG ("", 0); /* Optional value omitted; see below. */ + else + { + char *buf = (char *) alloca (100); + sprintf (buf, "%g", *(double *) cs->value_ptr); + ADD_FLAG (buf, strlen (buf)); + } + } + break; +#endif + + case string: + if (all) + { + struct stringlist *sl = *(struct stringlist **) cs->value_ptr; + if (sl != 0) + { + /* Add the elements in reverse order, because + all the flags get reversed below; and the order + matters for some switches (like -I). */ + register unsigned int i = sl->idx; + while (i-- > 0) + ADD_FLAG (sl->list[i], strlen (sl->list[i])); + } + } + break; + } + + flagslen += 4 + sizeof posixref; /* Four more for the possible " -- ". */ + +#undef ADD_FLAG + + /* Construct the value in FLAGSTRING. + We allocate enough space for a preceding dash and trailing null. */ + flagstring = (char *) alloca (1 + flagslen + 1); + bzero (flagstring, 1 + flagslen + 1); + p = flagstring; + words = 1; + *p++ = '-'; + while (flags != 0) + { + /* Add the flag letter or name to the string. */ + if (short_option (flags->cs->c)) + *p++ = flags->cs->c; + else + { + if (*p != '-') + { + *p++ = ' '; + *p++ = '-'; + } + *p++ = '-'; + strcpy (p, flags->cs->long_name); + p += strlen (p); + } + if (flags->arg != 0) + { + /* A flag that takes an optional argument which in this case is + omitted is specified by ARG being "". We must distinguish + because a following flag appended without an intervening " -" + is considered the arg for the first. */ + if (flags->arg[0] != '\0') + { + /* Add its argument too. */ + *p++ = !short_option (flags->cs->c) ? '=' : ' '; + p = quote_for_env (p, flags->arg); + } + ++words; + /* Write a following space and dash, for the next flag. */ + *p++ = ' '; + *p++ = '-'; + } + else if (!short_option (flags->cs->c)) + { + ++words; + /* Long options must each go in their own word, + so we write the following space and dash. */ + *p++ = ' '; + *p++ = '-'; + } + flags = flags->next; + } + + /* Define MFLAGS before appending variable definitions. */ + + if (p == &flagstring[1]) + /* No flags. */ + flagstring[0] = '\0'; + else if (p[-1] == '-') + { + /* Kill the final space and dash. */ + p -= 2; + *p = '\0'; + } + else + /* Terminate the string. */ + *p = '\0'; + + /* Since MFLAGS is not parsed for flags, there is no reason to + override any makefile redefinition. */ + (void) define_variable ("MFLAGS", 6, flagstring, o_env, 1); + + if (all && command_variables != 0) + { + /* Now write a reference to $(MAKEOVERRIDES), which contains all the + command-line variable definitions. */ + + if (p == &flagstring[1]) + /* No flags written, so elide the leading dash already written. */ + p = flagstring; + else + { + /* Separate the variables from the switches with a "--" arg. */ + if (p[-1] != '-') + { + /* We did not already write a trailing " -". */ + *p++ = ' '; + *p++ = '-'; + } + /* There is a trailing " -"; fill it out to " -- ". */ + *p++ = '-'; + *p++ = ' '; + } + + /* Copy in the string. */ + if (posix_pedantic) + { + bcopy (posixref, p, sizeof posixref - 1); + p += sizeof posixref - 1; + } + else + { + bcopy (ref, p, sizeof ref - 1); + p += sizeof ref - 1; + } + } + else if (p == &flagstring[1]) + { + words = 0; + --p; + } + else if (p[-1] == '-') + /* Kill the final space and dash. */ + p -= 2; + /* Terminate the string. */ + *p = '\0'; + + v = define_variable ("MAKEFLAGS", 9, + /* If there are switches, omit the leading dash + unless it is a single long option with two + leading dashes. */ + &flagstring[(flagstring[0] == '-' + && flagstring[1] != '-') + ? 1 : 0], + /* This used to use o_env, but that lost when a + makefile defined MAKEFLAGS. Makefiles set + MAKEFLAGS to add switches, but we still want + to redefine its value with the full set of + switches. Of course, an override or command + definition will still take precedence. */ + o_file, 1); + if (! all) + /* The first time we are called, set MAKEFLAGS to always be exported. + We should not do this again on the second call, because that is + after reading makefiles which might have done `unexport MAKEFLAGS'. */ + v->export = v_export; +} + +/* Print version information. */ + +static void +print_version () +{ + static int printed_version = 0; + + char *precede = print_data_base_flag ? "# " : ""; + + if (printed_version) + /* Do it only once. */ + return; + + /* Print this untranslated. The coding standards recommend translating the + (C) to the copyright symbol, but this string is going to change every + year, and none of the rest of it should be translated (including the + word "Copyright", so it hardly seems worth it. */ + + printf ("%sGNU Make %s\n\ +%sCopyright (C) 2002 Free Software Foundation, Inc.\n", + precede, version_string, precede); + + printf (_("%sThis is free software; see the source for copying conditions.\n\ +%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ +%sPARTICULAR PURPOSE.\n"), + precede, precede, precede); + + printed_version = 1; + + /* Flush stdout so the user doesn't have to wait to see the + version information while things are thought about. */ + fflush (stdout); +} + +/* Print a bunch of information about this and that. */ + +static void +print_data_base () +{ + time_t when; + + when = time ((time_t *) 0); + printf (_("\n# Make data base, printed on %s"), ctime (&when)); + + print_variable_data_base (); + print_dir_data_base (); + print_rule_data_base (); + print_file_data_base (); + print_vpath_data_base (); + + when = time ((time_t *) 0); + printf (_("\n# Finished Make data base on %s\n"), ctime (&when)); +} + +/* Exit with STATUS, cleaning up as necessary. */ + +void +die (status) + int status; +{ + static char dying = 0; + + if (!dying) + { + int err; + + dying = 1; + + if (print_version_flag) + print_version (); + + /* Wait for children to die. */ + for (err = (status != 0); job_slots_used > 0; err = 0) + reap_children (1, err); + + /* Let the remote job module clean up its state. */ + remote_cleanup (); + + /* Remove the intermediate files. */ + remove_intermediates (0); + + if (print_data_base_flag) + print_data_base (); + + /* Try to move back to the original directory. This is essential on + MS-DOS (where there is really only one process), and on Unix it + puts core files in the original directory instead of the -C + directory. Must wait until after remove_intermediates(), or unlinks + of relative pathnames fail. */ + if (directory_before_chdir != 0) + chdir (directory_before_chdir); + + log_working_directory (0); + } + + exit (status); +} + +/* Write a message indicating that we've just entered or + left (according to ENTERING) the current directory. */ + +void +log_working_directory (entering) + int entering; +{ + static int entered = 0; + + /* Print nothing without the flag. Don't print the entering message + again if we already have. Don't print the leaving message if we + haven't printed the entering message. */ + if (! print_directory_flag || entering == entered) + return; + + entered = entering; + + if (print_data_base_flag) + fputs ("# ", stdout); + + /* Use entire sentences to give the translators a fighting chance. */ + + if (makelevel == 0) + if (starting_directory == 0) + if (entering) + printf (_("%s: Entering an unknown directory"), program); + else + printf (_("%s: Leaving an unknown directory"), program); + else + if (entering) + printf (_("%s: Entering directory `%s'\n"), + program, starting_directory); + else + printf (_("%s: Leaving directory `%s'\n"), + program, starting_directory); + else + if (starting_directory == 0) + if (entering) + printf (_("%s[%u]: Entering an unknown directory"), + program, makelevel); + else + printf (_("%s[%u]: Leaving an unknown directory"), + program, makelevel); + else + if (entering) + printf (_("%s[%u]: Entering directory `%s'\n"), + program, makelevel, starting_directory); + else + printf (_("%s[%u]: Leaving directory `%s'\n"), + program, makelevel, starting_directory); +} diff --git a/src/mkutil/make-3.80/make.1 b/src/mkutil/make-3.80/make.1 new file mode 100644 index 00000000..5b096776 --- /dev/null +++ b/src/mkutil/make-3.80/make.1 @@ -0,0 +1,291 @@ +.TH MAKE 1L "22 August 1989" "GNU" "LOCAL USER COMMANDS" +.SH NAME +make \- GNU make utility to maintain groups of programs +.SH SYNOPSIS +.B "make " +[ +.B \-f +.I makefile +] [ option ] ... +target ... +.SH WARNING +This man page is an extract of the documentation of +.I GNU make . +It is updated only occasionally, because the GNU project does not use nroff. +For complete, current documentation, refer to the Info file +.B make.info +which is made from the Texinfo source file +.BR make.texinfo . +.SH DESCRIPTION +.LP +The purpose of the +.I make +utility is to determine automatically which +pieces of a large program need to be recompiled, and issue the commands to +recompile them. +The manual describes the GNU implementation of +.IR make , +which was written by Richard Stallman and Roland McGrath. +Our examples show C programs, since they are most common, but you can use +.I make +with any programming language whose compiler can be run with a +shell command. +In fact, +.I make +is not limited to programs. +You can use it to describe any task where some files must be +updated automatically from others whenever the others change. +.LP +To prepare to use +.IR make , +you must write a file called the +.I makefile +that describes the relationships among files in your program, and the +states the commands for updating each file. +In a program, typically the executable file is updated from object +files, which are in turn made by compiling source files. +.LP +Once a suitable makefile exists, each time you change some source files, +this simple shell command: +.sp 1 +.RS +.B make +.RE +.sp 1 +suffices to perform all necessary recompilations. +The +.I make +program uses the makefile data base and the last-modification times +of the files to decide which of the files need to be updated. +For each of those files, it issues the commands recorded in the data base. +.LP +.I make +executes commands in the +.I makefile +to update +one or more target +.IR names , +where +.I name +is typically a program. +If no +.B \-f +option is present, +.I make +will look for the makefiles +.IR GNUmakefile , +.IR makefile , +and +.IR Makefile , +in that order. +.LP +Normally you should call your makefile either +.I makefile +or +.IR Makefile . +(We recommend +.I Makefile +because it appears prominently near the beginning of a directory +listing, right near other important files such as +.IR README .) +The first name checked, +.IR GNUmakefile , +is not recommended for most makefiles. +You should use this name if you have a makefile that is specific to GNU +.IR make , +and will not be understood by other versions of +.IR make . +If +.I makefile +is `\-', the standard input is read. +.LP +.I make +updates a target if it depends on prerequisite files +that have been modified since the target was last modified, +or if the target does not exist. +.SH OPTIONS +.sp 1 +.TP 0.5i +.B \-b +.TP 0.5i +.B \-m +These options are ignored for compatibility with other versions of +.IR make . +.TP 0.5i +.BI "\-C " dir +Change to directory +.I dir +before reading the makefiles or doing anything else. +If multiple +.B \-C +options are specified, each is interpreted relative to the +previous one: +.BR "\-C " / +.BR "\-C " etc +is equivalent to +.BR "\-C " /etc. +This is typically used with recursive invocations of +.IR make . +.TP 0.5i +.B \-d +Print debugging information in addition to normal processing. +The debugging information says which files are being considered for +remaking, which file-times are being compared and with what results, +which files actually need to be remade, which implicit rules are +considered and which are applied---everything interesting about how +.I make +decides what to do. +.TP 0.5i +.B \-e +Give variables taken from the environment precedence +over variables from makefiles. +.TP 0.5i +.BI "\-f " file +Use +.I file +as a makefile. +.TP 0.5i +.B \-i +Ignore all errors in commands executed to remake files. +.TP 0.5i +.BI "\-I " dir +Specifies a directory +.I dir +to search for included makefiles. +If several +.B \-I +options are used to specify several directories, the directories are +searched in the order specified. +Unlike the arguments to other flags of +.IR make , +directories given with +.B \-I +flags may come directly after the flag: +.BI \-I dir +is allowed, as well as +.BI "\-I " dir. +This syntax is allowed for compatibility with the C +preprocessor's +.B \-I +flag. +.TP 0.5i +.BI "\-j " jobs +Specifies the number of jobs (commands) to run simultaneously. +If there is more than one +.B \-j +option, the last one is effective. +If the +.B \-j +option is given without an argument, +.IR make +will not limit the number of jobs that can run simultaneously. +.TP 0.5i +.B \-k +Continue as much as possible after an error. +While the target that failed, and those that depend on it, cannot +be remade, the other dependencies of these targets can be processed +all the same. +.TP 0.5i +.B \-l +.TP 0.5i +.BI "\-l " load +Specifies that no new jobs (commands) should be started if there are +others jobs running and the load average is at least +.I load +(a floating-point number). +With no argument, removes a previous load limit. +.TP 0.5i +.B \-n +Print the commands that would be executed, but do not execute them. +.TP 0.5i +.BI "\-o " file +Do not remake the file +.I file +even if it is older than its dependencies, and do not remake anything +on account of changes in +.IR file . +Essentially the file is treated as very old and its rules are ignored. +.TP 0.5i +.B \-p +Print the data base (rules and variable values) that results from +reading the makefiles; then execute as usual or as otherwise +specified. +This also prints the version information given by the +.B \-v +switch (see below). +To print the data base without trying to remake any files, use +.B make +.B \-p +.BI \-f /dev/null. +.TP 0.5i +.B \-q +``Question mode''. +Do not run any commands, or print anything; just return an exit status +that is zero if the specified targets are already up to date, nonzero +otherwise. +.TP 0.5i +.B \-r +Eliminate use of the built-in implicit rules. +Also clear out the default list of suffixes for suffix rules. +.TP 0.5i +.B \-s +Silent operation; do not print the commands as they are executed. +.TP 0.5i +.B \-S +Cancel the effect of the +.B \-k +option. +This is never necessary except in a recursive +.I make +where +.B \-k +might be inherited from the top-level +.I make +via MAKEFLAGS or if you set +.B \-k +in MAKEFLAGS in your environment. +.TP 0.5i +.B \-t +Touch files (mark them up to date without really changing them) +instead of running their commands. +This is used to pretend that the commands were done, in order to fool +future invocations of +.IR make . +.TP 0.5i +.B \-v +Print the version of the +.I make +program plus a copyright, a list of authors and a notice that there +is no warranty. +.TP 0.5i +.B \-w +Print a message containing the working directory +before and after other processing. +This may be useful for tracking down errors from complicated nests of +recursive +.I make +commands. +.TP 0.5i +.BI "\-W " file +Pretend that the target +.I file +has just been modified. +When used with the +.B \-n +flag, this shows you what would happen if you were to modify that file. +Without +.BR \-n , +it is almost the same as running a +.I touch +command on the given file before running +.IR make , +except that the modification time is changed only in the imagination of +.IR make . +.SH "SEE ALSO" +.I "The GNU Make Manual" +.SH BUGS +See the chapter `Problems and Bugs' in +.I "The GNU Make Manual" . +.SH AUTHOR +This manual page contributed by Dennis Morse of Stanford University. +It has been reworked by Roland McGrath. diff --git a/src/mkutil/make-3.80/make.h b/src/mkutil/make-3.80/make.h new file mode 100644 index 00000000..6648ea0d --- /dev/null +++ b/src/mkutil/make-3.80/make.h @@ -0,0 +1,562 @@ +/* Miscellaneous global declarations and portability cruft for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* We use instead of "config.h" so that a compilation + using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h + (which it would do because make.h was found in $srcdir). */ +#include +#undef HAVE_CONFIG_H +#define HAVE_CONFIG_H 1 + +/* AIX requires this to be the first thing in the file. */ +#ifndef __GNUC__ +# if HAVE_ALLOCA_H +# include +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif +# endif +#endif + + +/* Use prototypes if available. */ +#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) +# undef PARAMS +# define PARAMS(protos) protos +#else /* Not C++ or ANSI C. */ +# undef PARAMS +# define PARAMS(protos) () +#endif /* C++ or ANSI C. */ + +/* Specify we want GNU source code. This must be defined before any + system headers are included. */ + +#define _GNU_SOURCE 1 + + +#ifdef CRAY +/* This must happen before #include so + that the declaration therein is changed. */ +# define signal bsdsignal +#endif + +/* If we're compiling for the dmalloc debugger, turn off string inlining. */ +#if defined(HAVE_DMALLOC_H) && defined(__GNUC__) +# define __NO_STRING_INLINES +#endif + +#include +#include +#include +#include +#include +#ifdef HAVE_SYS_TIMEB_H +/* SCO 3.2 "devsys 4.2" has a prototype for `ftime' in that bombs + unless has been included first. Does every system have a + ? If any does not, configure should check for it. */ +# include +#endif + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#include + +#ifndef errno +extern int errno; +#endif + +#ifndef isblank +# define isblank(c) ((c) == ' ' || (c) == '\t') +#endif + +#ifdef HAVE_UNISTD_H +# include +/* Ultrix's unistd.h always defines _POSIX_VERSION, but you only get + POSIX.1 behavior with `cc -YPOSIX', which predefines POSIX itself! */ +# if defined (_POSIX_VERSION) && !defined (ultrix) && !defined (VMS) +# define POSIX 1 +# endif +#endif + +/* Some systems define _POSIX_VERSION but are not really POSIX.1. */ +#if (defined (butterfly) || defined (__arm) || (defined (__mips) && defined (_SYSTYPE_SVR3)) || (defined (sequent) && defined (i386))) +# undef POSIX +#endif + +#if !defined (POSIX) && defined (_AIX) && defined (_POSIX_SOURCE) +# define POSIX 1 +#endif + +#ifndef RETSIGTYPE +# define RETSIGTYPE void +#endif + +#ifndef sigmask +# define sigmask(sig) (1 << ((sig) - 1)) +#endif + +#ifndef HAVE_SA_RESTART +# define SA_RESTART 0 +#endif + +#ifdef HAVE_LIMITS_H +# include +#endif +#ifdef HAVE_SYS_PARAM_H +# include +#endif + +#ifndef PATH_MAX +# ifndef POSIX +# define PATH_MAX MAXPATHLEN +# endif +#endif +#ifndef MAXPATHLEN +# define MAXPATHLEN 1024 +#endif + +#ifdef PATH_MAX +# define GET_PATH_MAX PATH_MAX +# define PATH_VAR(var) char var[PATH_MAX] +#else +# define NEED_GET_PATH_MAX 1 +# define GET_PATH_MAX (get_path_max ()) +# define PATH_VAR(var) char *var = (char *) alloca (GET_PATH_MAX) +extern unsigned int get_path_max PARAMS ((void)); +#endif + +#ifndef CHAR_BIT +# define CHAR_BIT 8 +#endif + +/* Nonzero if the integer type T is signed. */ +#define INTEGER_TYPE_SIGNED(t) ((t) -1 < 0) + +/* The minimum and maximum values for the integer type T. + Use ~ (t) 0, not -1, for portability to 1's complement hosts. */ +#define INTEGER_TYPE_MINIMUM(t) \ + (! INTEGER_TYPE_SIGNED (t) ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)) +#define INTEGER_TYPE_MAXIMUM(t) (~ (t) 0 - INTEGER_TYPE_MINIMUM (t)) + +#ifndef CHAR_MAX +# define CHAR_MAX INTEGER_TYPE_MAXIMUM (char) +#endif + +#ifdef STAT_MACROS_BROKEN +# ifdef S_ISREG +# undef S_ISREG +# endif +# ifdef S_ISDIR +# undef S_ISDIR +# endif +#endif /* STAT_MACROS_BROKEN. */ + +#ifndef S_ISREG +# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#endif +#ifndef S_ISDIR +# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#endif + +#ifdef VMS +# include +# include +# include +# include +/* Needed to use alloca on VMS. */ +# include +#endif + +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ +# define __attribute__(x) +# endif +/* The __-protected variants of `format' and `printf' attributes + are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define __format__ format +# define __printf__ printf +# endif +#endif + +#if defined (STDC_HEADERS) || defined (__GNU_LIBRARY__) +# include +# include +# define ANSI_STRING 1 +#else /* No standard headers. */ +# ifdef HAVE_STRING_H +# include +# define ANSI_STRING 1 +# else +# include +# endif +# ifdef HAVE_MEMORY_H +# include +# endif +# ifdef HAVE_STDLIB_H +# include +# else +extern char *malloc PARAMS ((int)); +extern char *realloc PARAMS ((char *, int)); +extern void free PARAMS ((char *)); + +extern void abort PARAMS ((void)) __attribute__ ((noreturn)); +extern void exit PARAMS ((int)) __attribute__ ((noreturn)); +# endif /* HAVE_STDLIB_H. */ + +#endif /* Standard headers. */ + +/* These should be in stdlib.h. Make sure we have them. */ +#ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif +#ifndef EXIT_FAILURE +# define EXIT_FAILURE 0 +#endif + +#ifdef ANSI_STRING + +# ifndef bcmp +# define bcmp(s1, s2, n) memcmp ((s1), (s2), (n)) +# endif +# ifndef bzero +# define bzero(s, n) memset ((s), 0, (n)) +# endif +# if defined(HAVE_MEMMOVE) && !defined(bcopy) +# define bcopy(s, d, n) memmove ((d), (s), (n)) +# endif + +#else /* Not ANSI_STRING. */ + +# ifndef HAVE_STRCHR +# define strchr(s, c) index((s), (c)) +# define strrchr(s, c) rindex((s), (c)) +# endif + +# ifndef bcmp +extern int bcmp PARAMS ((const char *, const char *, int)); +# endif +# ifndef bzero +extern void bzero PARAMS ((char *, int)); +#endif +# ifndef bcopy +extern void bcopy PARAMS ((const char *b1, char *b2, int)); +# endif + +#endif /* ANSI_STRING. */ +#undef ANSI_STRING + +/* SCO Xenix has a buggy macro definition in . */ +#undef strerror + +#if !defined(ANSI_STRING) && !defined(__DECC) +extern char *strerror PARAMS ((int errnum)); +#endif + +#if HAVE_INTTYPES_H +# include +#endif +#define FILE_TIMESTAMP uintmax_t + +#if !defined(HAVE_STRSIGNAL) +extern char *strsignal PARAMS ((int signum)); +#endif + +/* ISDIGIT offers the following features: + - Its arg may be any int or unsigned int; it need not be an unsigned char. + - It's guaranteed to evaluate its argument exactly once. + NOTE! Make relies on this behavior, don't change it! + - It's typically faster. + POSIX 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that + only '0' through '9' are digits. Prefer ISDIGIT to isdigit() unless + it's important to use the locale's definition of `digit' even when the + host does not conform to POSIX. */ +#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9) + +#ifndef iAPX286 +# define streq(a, b) \ + ((a) == (b) || \ + (*(a) == *(b) && (*(a) == '\0' || !strcmp ((a) + 1, (b) + 1)))) +# ifdef HAVE_CASE_INSENSITIVE_FS +/* This is only used on Windows/DOS platforms, so we assume strcmpi(). */ +# define strieq(a, b) \ + ((a) == (b) \ + || (tolower((unsigned char)*(a)) == tolower((unsigned char)*(b)) \ + && (*(a) == '\0' || !strcmpi ((a) + 1, (b) + 1)))) +# else +# define strieq(a, b) streq(a, b) +# endif +#else +/* Buggy compiler can't handle this. */ +# define streq(a, b) (strcmp ((a), (b)) == 0) +# define strieq(a, b) (strcmp ((a), (b)) == 0) +#endif +#define strneq(a, b, l) (strncmp ((a), (b), (l)) == 0) +#ifdef VMS +extern int strcmpi (const char *,const char *); +#endif + +#if defined(__GNUC__) || defined(ENUM_BITFIELDS) +# define ENUM_BITFIELD(bits) :bits +#else +# define ENUM_BITFIELD(bits) +#endif + +/* Handle gettext and locales. */ + +#if HAVE_LOCALE_H +# include +#else +# define setlocale(category, locale) +#endif + +#include + +#define _(msgid) gettext (msgid) +#define N_(msgid) gettext_noop (msgid) +#define S_(msg1,msg2,num) ngettext (msg1,msg2,num) + +/* Handle other OSs. */ + +#if defined(__MSDOS__) || defined(WINDOWS32) +# define PATH_SEPARATOR_CHAR ';' +#else +# if defined(VMS) +# define PATH_SEPARATOR_CHAR ',' +# else +# define PATH_SEPARATOR_CHAR ':' +# endif +#endif + +#ifdef WINDOWS32 +# include +# include +# define pipe(p) _pipe(p, 512, O_BINARY) +# define kill(pid,sig) w32_kill(pid,sig) + +extern void sync_Path_environment(void); +extern int kill(int pid, int sig); +extern int safe_stat(char *file, struct stat *sb); +extern char *end_of_token_w32(char *s, char stopchar); +extern int find_and_set_default_shell(char *token); + +/* indicates whether or not we have Bourne shell */ +extern int no_default_sh_exe; + +/* is default_shell unixy? */ +extern int unixy_shell; +#endif /* WINDOWS32 */ + +struct floc + { + char *filenm; + unsigned long lineno; + }; +#define NILF ((struct floc *)0) + +#define STRING_SIZE_TUPLE(_s) (_s), (sizeof (_s)-1) + + +/* Fancy processing for variadic functions in both ANSI and pre-ANSI + compilers. */ +#if defined __STDC__ && __STDC__ +extern void message (int prefix, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +extern void error (const struct floc *flocp, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +extern void fatal (const struct floc *flocp, const char *fmt, ...) + __attribute__ ((noreturn, __format__ (__printf__, 2, 3))); +#else +extern void message (); +extern void error (); +extern void fatal (); +#endif + +extern void die PARAMS ((int)) __attribute__ ((noreturn)); +extern void log_working_directory PARAMS ((int)); +extern void pfatal_with_name PARAMS ((const char *)) __attribute__ ((noreturn)); +extern void perror_with_name PARAMS ((const char *, const char *)); +extern char *savestring PARAMS ((const char *, unsigned int)); +extern char *concat PARAMS ((const char *, const char *, const char *)); +extern char *xmalloc PARAMS ((unsigned int)); +extern char *xrealloc PARAMS ((char *, unsigned int)); +extern char *xstrdup PARAMS ((const char *)); +extern char *find_next_token PARAMS ((char **, unsigned int *)); +extern char *next_token PARAMS ((const char *)); +extern char *end_of_token PARAMS ((char *)); +extern void collapse_continuations PARAMS ((char *)); +extern void remove_comments PARAMS((char *)); +extern char *sindex PARAMS ((const char *, unsigned int, \ + const char *, unsigned int)); +extern char *lindex PARAMS ((const char *, const char *, int)); +extern int alpha_compare PARAMS ((const void *, const void *)); +extern void print_spaces PARAMS ((unsigned int)); +extern char *find_char_unquote PARAMS ((char *, int, int, int)); +extern char *find_percent PARAMS ((char *)); +extern FILE *open_tmpfile PARAMS ((char **, const char *)); + +#ifndef NO_ARCHIVES +extern int ar_name PARAMS ((char *)); +extern void ar_parse_name PARAMS ((char *, char **, char **)); +extern int ar_touch PARAMS ((char *)); +extern time_t ar_member_date PARAMS ((char *)); +#endif + +extern int dir_file_exists_p PARAMS ((char *, char *)); +extern int file_exists_p PARAMS ((char *)); +extern int file_impossible_p PARAMS ((char *)); +extern void file_impossible PARAMS ((char *)); +extern char *dir_name PARAMS ((char *)); +extern void hash_init_directories PARAMS ((void)); + +extern void define_default_variables PARAMS ((void)); +extern void set_default_suffixes PARAMS ((void)); +extern void install_default_suffix_rules PARAMS ((void)); +extern void install_default_implicit_rules PARAMS ((void)); + +extern void build_vpath_lists PARAMS ((void)); +extern void construct_vpath_list PARAMS ((char *pattern, char *dirpath)); +extern int vpath_search PARAMS ((char **file, FILE_TIMESTAMP *mtime_ptr)); +extern int gpath_search PARAMS ((char *file, int len)); + +extern void construct_include_path PARAMS ((char **arg_dirs)); + +extern void user_access PARAMS ((void)); +extern void make_access PARAMS ((void)); +extern void child_access PARAMS ((void)); + +#ifdef HAVE_VFORK_H +# include +#endif + +/* We omit these declarations on non-POSIX systems which define _POSIX_VERSION, + because such systems often declare them in header files anyway. */ + +#if !defined (__GNU_LIBRARY__) && !defined (POSIX) && !defined (_POSIX_VERSION) && !defined(WINDOWS32) + +extern long int atol (); +# ifndef VMS +extern long int lseek (); +# endif + +#endif /* Not GNU C library or POSIX. */ + +#ifdef HAVE_GETCWD +# if !defined(VMS) && !defined(__DECC) +extern char *getcwd (); +#endif +#else +extern char *getwd (); +# define getcwd(buf, len) getwd (buf) +#endif + +extern const struct floc *reading_file; + +extern char **environ; + +extern int just_print_flag, silent_flag, ignore_errors_flag, keep_going_flag; +extern int print_data_base_flag, question_flag, touch_flag, always_make_flag; +extern int env_overrides, no_builtin_rules_flag, no_builtin_variables_flag; +extern int print_version_flag, print_directory_flag; +extern int warn_undefined_variables_flag, posix_pedantic, not_parallel; +extern int clock_skew_detected; + +/* can we run commands via 'sh -c xxx' or must we use batch files? */ +extern int batch_mode_shell; + +extern unsigned int job_slots; +extern int job_fds[2]; +extern int job_rfd; +#ifndef NO_FLOAT +extern double max_load_average; +#else +extern int max_load_average; +#endif + +extern char *program; +extern char *starting_directory; +extern unsigned int makelevel; +extern char *version_string, *remote_description; + +extern unsigned int commands_started; + +extern int handling_fatal_signal; + + +#ifndef MIN +#define MIN(_a,_b) ((_a)<(_b)?(_a):(_b)) +#endif +#ifndef MAX +#define MAX(_a,_b) ((_a)>(_b)?(_a):(_b)) +#endif + +#ifdef VMS +# define MAKE_SUCCESS 1 +# define MAKE_TROUBLE 2 +# define MAKE_FAILURE 3 +#else +# define MAKE_SUCCESS 0 +# define MAKE_TROUBLE 1 +# define MAKE_FAILURE 2 +#endif + +/* Set up heap debugging library dmalloc. */ + +#ifdef HAVE_DMALLOC_H +#include +#endif + + +/* If we have broken SA_RESTART support, then wrap stat() and readdir() with + versions that handle EINTR. Note that there are still plenty of system + calls that can fail with EINTR but this, reportedly, gets the vast + majority of failure cases. If you still experience failures you'll need + to either get a system where SA_RESTART works, or you need to avoid -j. */ + +#ifdef HAVE_BROKEN_RESTART + +/* Here we make an assumption that a system with a broken SA_RESTART has + dirent.h. Right now the only system I know of in this category is PTX, and + it does have dirent.h. +*/ +#include + +#define stat(_f,_b) atomic_stat ((_f), (_b)) +#define readdir(_d) atomic_readdir (_d) + +extern int atomic_stat PARAMS ((const char *file, struct stat *buf)); +extern struct dirent *atomic_readdir PARAMS ((DIR *dir)); + +#endif diff --git a/src/mkutil/make-3.80/make.lnk b/src/mkutil/make-3.80/make.lnk new file mode 100644 index 00000000..8fbbeffd --- /dev/null +++ b/src/mkutil/make-3.80/make.lnk @@ -0,0 +1,5 @@ +FROM LIB:cres.o "commands.o"+"job.o"+"dir.o"+"file.o"+"misc.o"+"main.o"+"read.o"+"remake.o"+"rule.o"+"implicit.o"+"default.o"+"variable.o"+"expand.o"+"function.o"+"vpath.o"+"version.o"+"ar.o"+"arscan.o"+"signame.o"+"remote-stub.o"+"getopt.o"+"getopt1.o"+"alloca.o"+"amiga.o" +TO "make.new" +LIB glob/glob.lib LIB:sc.lib LIB:amiga.lib +QUIET + diff --git a/src/mkutil/make-3.80/makefile.com b/src/mkutil/make-3.80/makefile.com new file mode 100644 index 00000000..dd94bc32 --- /dev/null +++ b/src/mkutil/make-3.80/makefile.com @@ -0,0 +1,138 @@ +$! +$! Makefile.com - builds GNU Make for VMS +$! +$! P1 is non-empty if you want to link with the VAXCRTL library instead +$! of the shareable executable +$! P2 = DEBUG will build an image with debug information +$! P3 = WALL will enable all warning messages (some are suppressed since +$! one macro intentionally causes an error condition) +$! +$! In case of problems with the install you might contact me at +$! zinser@decus.de (preferred) or zinser@sysdev.deutsche-boerse.com +$ +$! hb +$! But don't ask Martin Zinser about the lines, I added/changed. +$! In case of an error do some cleanup +$ on error then $ goto cleanup +$! in case somebody set up her/his own symbol for cc +$ set symbol/scope=(nolocal,noglobal) +$! +$! Just some general constants... +$! +$ true = 1 +$ false = 0 +$ tmpnam = "temp_" + f$getjpi("","pid") +$ tt = tmpnam + ".txt" +$ tc = tmpnam + ".c" +$! +$! Look for the compiler used +$! +$ lval = "" +$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" +$ then +$ if f$trnlnm("SYS").eqs."" then def/nolog sys sys$library: +$ ccopt = "" +$ else +$ ccopt = "/decc/prefix=all" +$ if f$trnlnm("SYS").eqs."" +$ then +$ if f$trnlnm("DECC$LIBRARY_INCLUDE").nes."" +$ then +$ define sys decc$library_include: +$ else +$ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]DECC$RTLDEF.DIR").nes."" - + then lval = "SYS$COMMON:[DECC$LIB.REFERENCE.DECC$RTLDEF]," +$ if f$search("SYS$COMMON:[DECC$LIB.REFERENCE]SYS$STARLET_C.DIR").nes."" - + then lval = lval+"SYS$COMMON:[DECC$LIB.REFERENCE.SYS$STARLET_C]," +$ lval=lval+"SYS$LIBRARY:" +$ define sys 'lval +$ endif +$ endif +$ endif +$! +$! Should we build a debug image +$! +$ if (p2.eqs."DEBUG") +$ then +$ ccopt = ccopt + "/noopt/debug" +$ lopt = "/debug" +$ else +$ lopt = "" +$ endif +$! +$! Do we want to see all warnings +$! +$ if (p3.nes."WALL") +$ then +$ gosub check_cc_qual +$ endif +$ filelist = "alloca ar arscan commands default dir expand file function " + - + "hash implicit job main misc read remake remote-stub rule " + - + "signame variable version vmsfunctions vmsify vpath " + - + "[.glob]glob [.glob]fnmatch getopt1 getopt" +$ copy config.h-vms config.h +$ n=0 +$ open/write optf make.opt +$ loop: +$ cfile = f$elem(n," ",filelist) +$ if cfile .eqs. " " then goto linkit +$ write sys$output "Compiling ''cfile'..." +$ call compileit 'cfile' 'p1' +$ n = n + 1 +$ goto loop +$ linkit: +$ close optf +$ if p1 .nes. "" then goto link_using_library +$ link/exe=make make.opt/opt'lopt +$ goto cleanup +$ +$ link_using_library: +$ link/exe=make make.opt/opt,sys$library:vaxcrtl/lib'lopt +$ +$ cleanup: +$ if f$trnlnm("SYS").nes."" then $ deassign sys +$ if f$trnlnm("OPTF").nes."" then $ close optf +$ if f$search("make.opt").nes."" then $ del make.opt;* +$ exit +$! +$!------------------------------------------------------------------------------ +$! +$! Check if this is a define relating to the properties of the C/C++ +$! compiler +$! +$CHECK_CC_QUAL: +$ open/write tmpc 'tc +$ ccqual = "/warn=(disable=questcompare)" +$ write tmpc "#include " +$ write tmpc "unsigned int i = 1;" +$ write tmpc "int main(){" +$ write tmpc "if (i < 0){printf(""Mission impossible\n"");}}" +$ close tmpc +$ gosub cc_qual_check +$ return +$! +$!------------------------------------------------------------------------------ +$! +$! Check for properties of C/C++ compiler +$! +$CC_QUAL_CHECK: +$ cc_qual = false +$ set message/nofac/noident/nosever/notext +$ cc 'ccqual' 'tmpnam' +$ if $status then cc_qual = true +$ set message/fac/ident/sever/text +$ delete/nolog 'tmpnam'.*;* +$ if cc_qual then ccopt = ccopt + ccqual +$ return +$!------------------------------------------------------------------------------ +$! +$ compileit : subroutine +$ ploc = f$locate("]",p1) +$ filnam = p1 +$ if ploc .lt. f$length(p1) then filnam=f$extract(ploc+1,100,p1) +$ write optf "''filnam'" +$ cc'ccopt'/include=([],[.glob]) - + /define=("allocated_variable_expand_for_file=alloc_var_expand_for_file","unlink=remove","HAVE_CONFIG_H","VMS") - + 'p1' +$ exit +$ endsubroutine : compileit diff --git a/src/mkutil/make-3.80/makefile.vms b/src/mkutil/make-3.80/makefile.vms new file mode 100644 index 00000000..3ada8314 --- /dev/null +++ b/src/mkutil/make-3.80/makefile.vms @@ -0,0 +1,147 @@ +# Copyright (C) 1988, 1989, 1996, 1997 Free Software Foundation, Inc. +# This file is part of GNU Make. +# +# VMS extensions from GNU Make 3.60 imported by +# Klaus Kämpf (kkaempf@rmi.de) +# Modified for version 3.78.1 by Hartmut.Becker@compaq.com. +# Modified for version 3.80 by zinser@decus.de +# +# GNU Make 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, or (at your option) +# any later version. +# +# GNU Make 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 GNU Make; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +CC = cc +CP = copy + +%.obj: %.c + $(CC) $(CFLAGS)/obj=$@ $< +# +# Makefile for GNU Make +# + +ifeq ($(CC),cc) +CFLAGS = $(defines) /include=([],[.glob])/prefix=all/standard=relaxed +else +CFLAGS = $(defines) /include=([],[.glob]) +endif +#LDFLAGS = /deb +LDFLAGS = + +ifeq ($(CC),cc) +defines = /define=("unlink=remove","HAVE_CONFIG_H","VMS","allocated_variable_expand_for_file=alloc_var_expand_for_file") +else +ifeq ($(ARCH),VAX) +defines = /define=("HAVE_CONFIG_H","GCC_IS_NATIVE","VAX") +else +defines = /define=("HAVE_CONFIG_H","GCC_IS_NATIVE") +endif +endif + +LOAD_AVG = /define="NO_LDAV" + +# If you don't want archive support, comment these out. +ARCHIVES = ,ar.obj,arscan.obj +ARCHIVES_SRC = ar.c arscan.c + +# If your system needs extra libraries loaded in, define them here. +# System V probably need -lPW for alloca. +# if on vax, uncomment the following line +#LOADLIBES = ,c.opt/opt +ifeq ($(CC),cc) +#LOADLIBES =,sys$$library:vaxcrtl.olb/lib +CRT0 = +else +LOADLIBES =,gnu_cc_library:libgcc.olb/lib +endif + +# If your system doesn't have alloca, or the one provided is bad, +# get it from the Emacs distribution and define these. +#ALLOCA = ,alloca.obj +#ALLOCASRC = alloca.c + +# If there are remote execution facilities defined, +# enable them with switches here (see remote-*.c). +REMOTE = + +# Any extra object files your system needs. +extras = ,signame.obj,remote-stub.obj,vmsfunctions.obj,vmsify.obj +#,directory.obj +# as an alternative: +glob = ,[.glob]glob.obj,[.glob]fnmatch.obj +getopt = ,getopt.obj,getopt1.obj +# Directory to install `make' in. +bindir = [] +# Directory to install the man page in. +mandir = [] +# Number to put on the man page filename. +manext = 1 + +objs = commands.obj,job.obj,dir.obj,file.obj,misc.obj,hash.obj,\ + main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\ + default.obj,variable.obj,expand.obj,function.obj,\ + vpath.obj,version.obj$(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob) +srcs = commands.c job.c dir.c file.c misc.c hash.c\ + main.c read.c remake.c rule.c implicit.c \ + default.c variable.c expand.c function.c \ + vpath.c version.c vmsfunctions.c vmsify.c $(ARCHIVES_SRC) $(ALLOCASRC) \ + commands.h dep.h filedef.h job.h make.h rule.h variable.h + + +.PHONY: all doc +all: config.h make.exe + +doc: make.info make.dvi + + +make.exe: $(objs) + $(LD)$(LDFLAGS)/exe=$@ $^$(LOADLIBES)$(CRT0) + +.PHONY: clean realclean +clean: + $$ purge [...] + -$(RM) make.exe;,*.obj; + -$(RM) *.opt; + -$(RM) [.glob]*.obj; + +# Automatically generated dependencies. +commands.obj: commands.c make.h dep.h commands.h filedef.h variable.h job.h +job.obj: job.c make.h commands.h job.h filedef.h variable.h +dir.obj: dir.c make.h +file.obj: file.c make.h commands.h dep.h filedef.h variable.h +misc.obj: misc.c make.h dep.h +hash.obj: hash.c make.h hash.h +main.obj: main.c make.h commands.h dep.h filedef.h variable.h job.h +read.obj: read.c make.h commands.h dep.h filedef.h variable.h +remake.obj: remake.c make.h commands.h job.h dep.h filedef.h +rule.obj: rule.c make.h commands.h dep.h filedef.h variable.h rule.h +implicit.obj: implicit.c make.h rule.h dep.h filedef.h +default.obj: default.c make.h rule.h dep.h filedef.h commands.h variable.h +variable.obj: variable.c make.h commands.h variable.h dep.h filedef.h +expand.obj: expand.c make.h commands.h filedef.h variable.h +function.obj: function.c make.h variable.h dep.h commands.h job.h +vpath.obj: vpath.c make.h filedef.h variable.h +version.obj: version.c config.h +arscan.obj: arscan.c +ar.obj: ar.c make.h filedef.h +signame.obj: signame.c +remote-stub.obj: remote-stub.c +[.glob]glob.obj: [.glob]glob.c +[.glob]fnmatch.obj: [.glob]fnmatch.c +getopt.obj: getopt.c +getopt1.obj: getopt1.c +vmsfunctions.obj: vmsfunctions.c make.h vmsdir.h +vmsify.obj: vmsify.c make.h + +config.h: config.h-vms + $(CP) $< $@ diff --git a/src/mkutil/make-3.80/misc.c b/src/mkutil/make-3.80/misc.c new file mode 100644 index 00000000..7f0b1b30 --- /dev/null +++ b/src/mkutil/make-3.80/misc.c @@ -0,0 +1,893 @@ +/* Miscellaneous generic support functions for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "dep.h" +#include "debug.h" + +/* Variadic functions. We go through contortions to allow proper function + prototypes for both ANSI and pre-ANSI C compilers, and also for those + which support stdarg.h vs. varargs.h, and finally those which have + vfprintf(), etc. and those who have _doprnt... or nothing. + + This fancy stuff all came from GNU fileutils, except for the VA_PRINTF and + VA_END macros used here since we have multiple print functions. */ + +#if HAVE_VPRINTF || HAVE_DOPRNT +# define HAVE_STDVARARGS 1 +# if __STDC__ +# include +# define VA_START(args, lastarg) va_start(args, lastarg) +# else +# include +# define VA_START(args, lastarg) va_start(args) +# endif +# if HAVE_VPRINTF +# define VA_PRINTF(fp, lastarg, args) vfprintf((fp), (lastarg), (args)) +# else +# define VA_PRINTF(fp, lastarg, args) _doprnt((lastarg), (args), (fp)) +# endif +# define VA_END(args) va_end(args) +#else +/* # undef HAVE_STDVARARGS */ +# define va_alist a1, a2, a3, a4, a5, a6, a7, a8 +# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; +# define VA_START(args, lastarg) +# define VA_PRINTF(fp, lastarg, args) fprintf((fp), (lastarg), va_alist) +# define VA_END(args) +#endif + + +/* Compare strings *S1 and *S2. + Return negative if the first is less, positive if it is greater, + zero if they are equal. */ + +int +alpha_compare (v1, v2) + const void *v1, *v2; +{ + const char *s1 = *((char **)v1); + const char *s2 = *((char **)v2); + + if (*s1 != *s2) + return *s1 - *s2; + return strcmp (s1, s2); +} + +/* Discard each backslash-newline combination from LINE. + Backslash-backslash-newline combinations become backslash-newlines. + This is done by copying the text at LINE into itself. */ + +void +collapse_continuations (line) + char *line; +{ + register char *in, *out, *p; + register int backslash; + register unsigned int bs_write; + + in = strchr (line, '\n'); + if (in == 0) + return; + + out = in; + while (out > line && out[-1] == '\\') + --out; + + while (*in != '\0') + { + /* BS_WRITE gets the number of quoted backslashes at + the end just before IN, and BACKSLASH gets nonzero + if the next character is quoted. */ + backslash = 0; + bs_write = 0; + for (p = in - 1; p >= line && *p == '\\'; --p) + { + if (backslash) + ++bs_write; + backslash = !backslash; + + /* It should be impossible to go back this far without exiting, + but if we do, we can't get the right answer. */ + if (in == out - 1) + abort (); + } + + /* Output the appropriate number of backslashes. */ + while (bs_write-- > 0) + *out++ = '\\'; + + /* Skip the newline. */ + ++in; + + /* If the newline is quoted, discard following whitespace + and any preceding whitespace; leave just one space. */ + if (backslash) + { + in = next_token (in); + while (out > line && isblank ((unsigned char)out[-1])) + --out; + *out++ = ' '; + } + else + /* If the newline isn't quoted, put it in the output. */ + *out++ = '\n'; + + /* Now copy the following line to the output. + Stop when we find backslashes followed by a newline. */ + while (*in != '\0') + if (*in == '\\') + { + p = in + 1; + while (*p == '\\') + ++p; + if (*p == '\n') + { + in = p; + break; + } + while (in < p) + *out++ = *in++; + } + else + *out++ = *in++; + } + + *out = '\0'; +} + + +/* Remove comments from LINE. + This is done by copying the text at LINE onto itself. */ + +void +remove_comments (line) + char *line; +{ + char *comment; + + comment = find_char_unquote (line, '#', 0, 0); + + if (comment != 0) + /* Cut off the line at the #. */ + *comment = '\0'; +} + +/* Print N spaces (used in debug for target-depth). */ + +void +print_spaces (n) + unsigned int n; +{ + while (n-- > 0) + putchar (' '); +} + + +/* Return a newly-allocated string whose contents + concatenate those of s1, s2, s3. */ + +char * +concat (s1, s2, s3) + const char *s1, *s2, *s3; +{ + unsigned int len1, len2, len3; + char *result; + + len1 = *s1 != '\0' ? strlen (s1) : 0; + len2 = *s2 != '\0' ? strlen (s2) : 0; + len3 = *s3 != '\0' ? strlen (s3) : 0; + + result = (char *) xmalloc (len1 + len2 + len3 + 1); + + if (*s1 != '\0') + bcopy (s1, result, len1); + if (*s2 != '\0') + bcopy (s2, result + len1, len2); + if (*s3 != '\0') + bcopy (s3, result + len1 + len2, len3); + *(result + len1 + len2 + len3) = '\0'; + + return result; +} + +/* Print a message on stdout. */ + +void +#if __STDC__ && HAVE_STDVARARGS +message (int prefix, const char *fmt, ...) +#else +message (prefix, fmt, va_alist) + int prefix; + const char *fmt; + va_dcl +#endif +{ +#if HAVE_STDVARARGS + va_list args; +#endif + + log_working_directory (1); + + if (fmt != 0) + { + if (prefix) + { + if (makelevel == 0) + printf ("%s: ", program); + else + printf ("%s[%u]: ", program, makelevel); + } + VA_START (args, fmt); + VA_PRINTF (stdout, fmt, args); + VA_END (args); + putchar ('\n'); + } + + fflush (stdout); +} + +/* Print an error message. */ + +void +#if __STDC__ && HAVE_STDVARARGS +error (const struct floc *flocp, const char *fmt, ...) +#else +error (flocp, fmt, va_alist) + const struct floc *flocp; + const char *fmt; + va_dcl +#endif +{ +#if HAVE_STDVARARGS + va_list args; +#endif + + log_working_directory (1); + + if (flocp && flocp->filenm) + fprintf (stderr, "%s:%lu: ", flocp->filenm, flocp->lineno); + else if (makelevel == 0) + fprintf (stderr, "%s: ", program); + else + fprintf (stderr, "%s[%u]: ", program, makelevel); + + VA_START(args, fmt); + VA_PRINTF (stderr, fmt, args); + VA_END (args); + + putc ('\n', stderr); + fflush (stderr); +} + +/* Print an error message and exit. */ + +void +#if __STDC__ && HAVE_STDVARARGS +fatal (const struct floc *flocp, const char *fmt, ...) +#else +fatal (flocp, fmt, va_alist) + const struct floc *flocp; + const char *fmt; + va_dcl +#endif +{ +#if HAVE_STDVARARGS + va_list args; +#endif + + log_working_directory (1); + + if (flocp && flocp->filenm) + fprintf (stderr, "%s:%lu: *** ", flocp->filenm, flocp->lineno); + else if (makelevel == 0) + fprintf (stderr, "%s: *** ", program); + else + fprintf (stderr, "%s[%u]: *** ", program, makelevel); + + VA_START(args, fmt); + VA_PRINTF (stderr, fmt, args); + VA_END (args); + + fputs (_(". Stop.\n"), stderr); + + die (2); +} + +#ifndef HAVE_STRERROR + +#undef strerror + +char * +strerror (errnum) + int errnum; +{ + extern int errno, sys_nerr; +#ifndef __DECC + extern char *sys_errlist[]; +#endif + static char buf[] = "Unknown error 12345678901234567890"; + + if (errno < sys_nerr) + return sys_errlist[errnum]; + + sprintf (buf, _("Unknown error %d"), errnum); + return buf; +} +#endif + +/* Print an error message from errno. */ + +void +perror_with_name (str, name) + const char *str, *name; +{ + error (NILF, _("%s%s: %s"), str, name, strerror (errno)); +} + +/* Print an error message from errno and exit. */ + +void +pfatal_with_name (name) + const char *name; +{ + fatal (NILF, _("%s: %s"), name, strerror (errno)); + + /* NOTREACHED */ +} + +/* Like malloc but get fatal error if memory is exhausted. */ +/* Don't bother if we're using dmalloc; it provides these for us. */ + +#ifndef HAVE_DMALLOC_H + +#undef xmalloc +#undef xrealloc +#undef xstrdup + +char * +xmalloc (size) + unsigned int size; +{ + char *result = (char *) malloc (size); + if (result == 0) + fatal (NILF, _("virtual memory exhausted")); + return result; +} + + +char * +xrealloc (ptr, size) + char *ptr; + unsigned int size; +{ + char *result; + + /* Some older implementations of realloc() don't conform to ANSI. */ + result = ptr ? realloc (ptr, size) : malloc (size); + if (result == 0) + fatal (NILF, _("virtual memory exhausted")); + return result; +} + + +char * +xstrdup (ptr) + const char *ptr; +{ + char *result; + +#ifdef HAVE_STRDUP + result = strdup (ptr); +#else + result = (char *) malloc (strlen (ptr) + 1); +#endif + + if (result == 0) + fatal (NILF, _("virtual memory exhausted")); + +#ifdef HAVE_STRDUP + return result; +#else + return strcpy(result, ptr); +#endif +} + +#endif /* HAVE_DMALLOC_H */ + +char * +savestring (str, length) + const char *str; + unsigned int length; +{ + register char *out = (char *) xmalloc (length + 1); + if (length > 0) + bcopy (str, out, length); + out[length] = '\0'; + return out; +} + +/* Search string BIG (length BLEN) for an occurrence of + string SMALL (length SLEN). Return a pointer to the + beginning of the first occurrence, or return nil if none found. */ + +char * +sindex (big, blen, small, slen) + const char *big; + unsigned int blen; + const char *small; + unsigned int slen; +{ + if (!blen) + blen = strlen (big); + if (!slen) + slen = strlen (small); + + if (slen && blen >= slen) + { + register unsigned int b; + + /* Quit when there's not enough room left for the small string. */ + --slen; + blen -= slen; + + for (b = 0; b < blen; ++b, ++big) + if (*big == *small && strneq (big + 1, small + 1, slen)) + return (char *)big; + } + + return 0; +} + +/* Limited INDEX: + Search through the string STRING, which ends at LIMIT, for the character C. + Returns a pointer to the first occurrence, or nil if none is found. + Like INDEX except that the string searched ends where specified + instead of at the first null. */ + +char * +lindex (s, limit, c) + register const char *s, *limit; + int c; +{ + while (s < limit) + if (*s++ == c) + return (char *)(s - 1); + + return 0; +} + +/* Return the address of the first whitespace or null in the string S. */ + +char * +end_of_token (s) + char *s; +{ + while (*s != '\0' && !isblank ((unsigned char)*s)) + ++s; + return s; +} + +#ifdef WINDOWS32 +/* + * Same as end_of_token, but take into account a stop character + */ +char * +end_of_token_w32 (s, stopchar) + char *s; + char stopchar; +{ + register char *p = s; + register int backslash = 0; + + while (*p != '\0' && *p != stopchar + && (backslash || !isblank ((unsigned char)*p))) + { + if (*p++ == '\\') + { + backslash = !backslash; + while (*p == '\\') + { + backslash = !backslash; + ++p; + } + } + else + backslash = 0; + } + + return p; +} +#endif + +/* Return the address of the first nonwhitespace or null in the string S. */ + +char * +next_token (s) + const char *s; +{ + while (isblank ((unsigned char)*s)) + ++s; + return (char *)s; +} + +/* Find the next token in PTR; return the address of it, and store the + length of the token into *LENGTHPTR if LENGTHPTR is not nil. */ + +char * +find_next_token (ptr, lengthptr) + char **ptr; + unsigned int *lengthptr; +{ + char *p = next_token (*ptr); + char *end; + + if (*p == '\0') + return 0; + + *ptr = end = end_of_token (p); + if (lengthptr != 0) + *lengthptr = end - p; + return p; +} + +/* Copy a chain of `struct dep', making a new chain + with the same contents as the old one. */ + +struct dep * +copy_dep_chain (d) + register struct dep *d; +{ + register struct dep *c; + struct dep *firstnew = 0; + struct dep *lastnew = 0; + + while (d != 0) + { + c = (struct dep *) xmalloc (sizeof (struct dep)); + bcopy ((char *) d, (char *) c, sizeof (struct dep)); + if (c->name != 0) + c->name = xstrdup (c->name); + c->next = 0; + if (firstnew == 0) + firstnew = lastnew = c; + else + lastnew = lastnew->next = c; + + d = d->next; + } + + return firstnew; +} + +#ifdef iAPX286 +/* The losing compiler on this machine can't handle this macro. */ + +char * +dep_name (dep) + struct dep *dep; +{ + return dep->name == 0 ? dep->file->name : dep->name; +} +#endif + +#ifdef GETLOADAVG_PRIVILEGED + +#ifdef POSIX + +/* Hopefully if a system says it's POSIX.1 and has the setuid and setgid + functions, they work as POSIX.1 says. Some systems (Alpha OSF/1 1.2, + for example) which claim to be POSIX.1 also have the BSD setreuid and + setregid functions, but they don't work as in BSD and only the POSIX.1 + way works. */ + +#undef HAVE_SETREUID +#undef HAVE_SETREGID + +#else /* Not POSIX. */ + +/* Some POSIX.1 systems have the seteuid and setegid functions. In a + POSIX-like system, they are the best thing to use. However, some + non-POSIX systems have them too but they do not work in the POSIX style + and we must use setreuid and setregid instead. */ + +#undef HAVE_SETEUID +#undef HAVE_SETEGID + +#endif /* POSIX. */ + +#ifndef HAVE_UNISTD_H +extern int getuid (), getgid (), geteuid (), getegid (); +extern int setuid (), setgid (); +#ifdef HAVE_SETEUID +extern int seteuid (); +#else +#ifdef HAVE_SETREUID +extern int setreuid (); +#endif /* Have setreuid. */ +#endif /* Have seteuid. */ +#ifdef HAVE_SETEGID +extern int setegid (); +#else +#ifdef HAVE_SETREGID +extern int setregid (); +#endif /* Have setregid. */ +#endif /* Have setegid. */ +#endif /* No . */ + +/* Keep track of the user and group IDs for user- and make- access. */ +static int user_uid = -1, user_gid = -1, make_uid = -1, make_gid = -1; +#define access_inited (user_uid != -1) +static enum { make, user } current_access; + + +/* Under -d, write a message describing the current IDs. */ + +static void +log_access (flavor) + char *flavor; +{ + if (! ISDB (DB_JOBS)) + return; + + /* All the other debugging messages go to stdout, + but we write this one to stderr because it might be + run in a child fork whose stdout is piped. */ + + fprintf (stderr, _("%s: user %lu (real %lu), group %lu (real %lu)\n"), + flavor, (unsigned long) geteuid (), (unsigned long) getuid (), + (unsigned long) getegid (), (unsigned long) getgid ()); + fflush (stderr); +} + + +static void +init_access () +{ +#ifndef VMS + user_uid = getuid (); + user_gid = getgid (); + + make_uid = geteuid (); + make_gid = getegid (); + + /* Do these ever fail? */ + if (user_uid == -1 || user_gid == -1 || make_uid == -1 || make_gid == -1) + pfatal_with_name ("get{e}[gu]id"); + + log_access (_("Initialized access")); + + current_access = make; +#endif +} + +#endif /* GETLOADAVG_PRIVILEGED */ + +/* Give the process appropriate permissions for access to + user data (i.e., to stat files, or to spawn a child process). */ +void +user_access () +{ +#ifdef GETLOADAVG_PRIVILEGED + + if (!access_inited) + init_access (); + + if (current_access == user) + return; + + /* We are in "make access" mode. This means that the effective user and + group IDs are those of make (if it was installed setuid or setgid). + We now want to set the effective user and group IDs to the real IDs, + which are the IDs of the process that exec'd make. */ + +#ifdef HAVE_SETEUID + + /* Modern systems have the seteuid/setegid calls which set only the + effective IDs, which is ideal. */ + + if (seteuid (user_uid) < 0) + pfatal_with_name ("user_access: seteuid"); + +#else /* Not HAVE_SETEUID. */ + +#ifndef HAVE_SETREUID + + /* System V has only the setuid/setgid calls to set user/group IDs. + There is an effective ID, which can be set by setuid/setgid. + It can be set (unless you are root) only to either what it already is + (returned by geteuid/getegid, now in make_uid/make_gid), + the real ID (return by getuid/getgid, now in user_uid/user_gid), + or the saved set ID (what the effective ID was before this set-ID + executable (make) was exec'd). */ + + if (setuid (user_uid) < 0) + pfatal_with_name ("user_access: setuid"); + +#else /* HAVE_SETREUID. */ + + /* In 4BSD, the setreuid/setregid calls set both the real and effective IDs. + They may be set to themselves or each other. So you have two alternatives + at any one time. If you use setuid/setgid, the effective will be set to + the real, leaving only one alternative. Using setreuid/setregid, however, + you can toggle between your two alternatives by swapping the values in a + single setreuid or setregid call. */ + + if (setreuid (make_uid, user_uid) < 0) + pfatal_with_name ("user_access: setreuid"); + +#endif /* Not HAVE_SETREUID. */ +#endif /* HAVE_SETEUID. */ + +#ifdef HAVE_SETEGID + if (setegid (user_gid) < 0) + pfatal_with_name ("user_access: setegid"); +#else +#ifndef HAVE_SETREGID + if (setgid (user_gid) < 0) + pfatal_with_name ("user_access: setgid"); +#else + if (setregid (make_gid, user_gid) < 0) + pfatal_with_name ("user_access: setregid"); +#endif +#endif + + current_access = user; + + log_access (_("User access")); + +#endif /* GETLOADAVG_PRIVILEGED */ +} + +/* Give the process appropriate permissions for access to + make data (i.e., the load average). */ +void +make_access () +{ +#ifdef GETLOADAVG_PRIVILEGED + + if (!access_inited) + init_access (); + + if (current_access == make) + return; + + /* See comments in user_access, above. */ + +#ifdef HAVE_SETEUID + if (seteuid (make_uid) < 0) + pfatal_with_name ("make_access: seteuid"); +#else +#ifndef HAVE_SETREUID + if (setuid (make_uid) < 0) + pfatal_with_name ("make_access: setuid"); +#else + if (setreuid (user_uid, make_uid) < 0) + pfatal_with_name ("make_access: setreuid"); +#endif +#endif + +#ifdef HAVE_SETEGID + if (setegid (make_gid) < 0) + pfatal_with_name ("make_access: setegid"); +#else +#ifndef HAVE_SETREGID + if (setgid (make_gid) < 0) + pfatal_with_name ("make_access: setgid"); +#else + if (setregid (user_gid, make_gid) < 0) + pfatal_with_name ("make_access: setregid"); +#endif +#endif + + current_access = make; + + log_access (_("Make access")); + +#endif /* GETLOADAVG_PRIVILEGED */ +} + +/* Give the process appropriate permissions for a child process. + This is like user_access, but you can't get back to make_access. */ +void +child_access () +{ +#ifdef GETLOADAVG_PRIVILEGED + + if (!access_inited) + abort (); + + /* Set both the real and effective UID and GID to the user's. + They cannot be changed back to make's. */ + +#ifndef HAVE_SETREUID + if (setuid (user_uid) < 0) + pfatal_with_name ("child_access: setuid"); +#else + if (setreuid (user_uid, user_uid) < 0) + pfatal_with_name ("child_access: setreuid"); +#endif + +#ifndef HAVE_SETREGID + if (setgid (user_gid) < 0) + pfatal_with_name ("child_access: setgid"); +#else + if (setregid (user_gid, user_gid) < 0) + pfatal_with_name ("child_access: setregid"); +#endif + + log_access (_("Child access")); + +#endif /* GETLOADAVG_PRIVILEGED */ +} + +#ifdef NEED_GET_PATH_MAX +unsigned int +get_path_max () +{ + static unsigned int value; + + if (value == 0) + { + long int x = pathconf ("/", _PC_PATH_MAX); + if (x > 0) + value = x; + else + return MAXPATHLEN; + } + + return value; +} +#endif + + +#ifdef HAVE_BROKEN_RESTART + +#undef stat +#undef readdir + +int +atomic_stat(file, buf) + const char *file; + struct stat *buf; +{ + int r; + + while ((r = stat (file, buf)) < 0) + if (errno != EINTR) + break; + + return r; +} + +struct dirent * +atomic_readdir(dir) + DIR *dir; +{ + struct dirent *r; + + while ((r = readdir (dir)) == NULL) + if (errno != EINTR) + break; + + return r; +} + +#endif /* HAVE_BROKEN_RESTART */ diff --git a/src/mkutil/make-3.80/n.bat b/src/mkutil/make-3.80/n.bat new file mode 100644 index 00000000..e3ad4715 --- /dev/null +++ b/src/mkutil/make-3.80/n.bat @@ -0,0 +1,21 @@ +del WinRel /s /q +del WinDebug /s /q +del w32\subproc\WinRel /s /q +del w32\subproc\WinDebug /s /q + +del config.h +nmake /f NMakefile +@if errorlevel 1 goto failure +copy WinRel\make.exe ..\..\bin + +del WinRel /s /q +del WinDebug /s /q +del w32\subproc\WinRel /s /q +del w32\subproc\WinDebug /s /q + +@echo SUCCESS +@goto done +:failure +@echo FAILURE +:done + diff --git a/src/mkutil/make-3.80/read.c b/src/mkutil/make-3.80/read.c new file mode 100644 index 00000000..9a4c609d --- /dev/null +++ b/src/mkutil/make-3.80/read.c @@ -0,0 +1,3105 @@ +/* Reading and parsing of makefiles for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" + +#include + +#include + +#include "dep.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "variable.h" +#include "rule.h" +#include "debug.h" +#include "hash.h" + + +#ifndef WINDOWS32 +#ifndef _AMIGA +#ifndef VMS +#include +#else +struct passwd *getpwnam PARAMS ((char *name)); +#endif +#endif +#endif /* !WINDOWS32 */ + +/* A 'struct ebuffer' controls the origin of the makefile we are currently + eval'ing. +*/ + +struct ebuffer + { + char *buffer; /* Start of the current line in the buffer. */ + char *bufnext; /* Start of the next line in the buffer. */ + char *bufstart; /* Start of the entire buffer. */ + unsigned int size; /* Malloc'd size of buffer. */ + FILE *fp; /* File, or NULL if this is an internal buffer. */ + struct floc floc; /* Info on the file in fp (if any). */ + }; + +/* Types of "words" that can be read in a makefile. */ +enum make_word_type + { + w_bogus, w_eol, w_static, w_variable, w_colon, w_dcolon, w_semicolon, + w_varassign + }; + + +/* A `struct conditionals' contains the information describing + all the active conditionals in a makefile. + + The global variable `conditionals' contains the conditionals + information for the current makefile. It is initialized from + the static structure `toplevel_conditionals' and is later changed + to new structures for included makefiles. */ + +struct conditionals + { + unsigned int if_cmds; /* Depth of conditional nesting. */ + unsigned int allocated; /* Elts allocated in following arrays. */ + char *ignoring; /* Are we ignoring or interepreting? */ + char *seen_else; /* Have we already seen an `else'? */ + }; + +static struct conditionals toplevel_conditionals; +static struct conditionals *conditionals = &toplevel_conditionals; + + +/* Default directories to search for include files in */ + +static char *default_include_directories[] = + { +#if defined(WINDOWS32) && !defined(INCLUDEDIR) +/* + * This completely up to the user when they install MSVC or other packages. + * This is defined as a placeholder. + */ +#define INCLUDEDIR "." +#endif + INCLUDEDIR, +#ifndef _AMIGA + "/usr/gnu/include", + "/usr/local/include", + "/usr/include", +#endif + 0 + }; + +/* List of directories to search for include files in */ + +static char **include_directories; + +/* Maximum length of an element of the above. */ + +static unsigned int max_incl_len; + +/* The filename and pointer to line number of the + makefile currently being read in. */ + +const struct floc *reading_file = 0; + +/* The chain of makefiles read by read_makefile. */ + +static struct dep *read_makefiles = 0; + +static int eval_makefile PARAMS ((char *filename, int flags)); +static int eval PARAMS ((struct ebuffer *buffer, int flags)); + +static long readline PARAMS ((struct ebuffer *ebuf)); +static void do_define PARAMS ((char *name, unsigned int namelen, + enum variable_origin origin, + struct ebuffer *ebuf)); +static int conditional_line PARAMS ((char *line, const struct floc *flocp)); +static void record_files PARAMS ((struct nameseq *filenames, char *pattern, char *pattern_percent, + struct dep *deps, unsigned int cmds_started, char *commands, + unsigned int commands_idx, int two_colon, + int have_sysv_atvar, + const struct floc *flocp, int set_default)); +static void record_target_var PARAMS ((struct nameseq *filenames, char *defn, + int two_colon, + enum variable_origin origin, + const struct floc *flocp)); +static enum make_word_type get_next_mword PARAMS ((char *buffer, char *delim, + char **startp, unsigned int *length)); + +/* Read in all the makefiles and return the chain of their names. */ + +struct dep * +read_all_makefiles (makefiles) + char **makefiles; +{ + unsigned int num_makefiles = 0; + + /* Create *_LIST variables, to hold the makefiles, targets, and variables + we will be reading. */ + + define_variable ("MAKEFILE_LIST", sizeof ("MAKEFILE_LIST")-1, "", o_file, 0); + + DB (DB_BASIC, (_("Reading makefiles...\n"))); + + /* If there's a non-null variable MAKEFILES, its value is a list of + files to read first thing. But don't let it prevent reading the + default makefiles and don't let the default goal come from there. */ + + { + char *value; + char *name, *p; + unsigned int length; + + { + /* Turn off --warn-undefined-variables while we expand MAKEFILES. */ + int save = warn_undefined_variables_flag; + warn_undefined_variables_flag = 0; + + value = allocated_variable_expand ("$(MAKEFILES)"); + + warn_undefined_variables_flag = save; + } + + /* Set NAME to the start of next token and LENGTH to its length. + MAKEFILES is updated for finding remaining tokens. */ + p = value; + + while ((name = find_next_token (&p, &length)) != 0) + { + if (*p != '\0') + *p++ = '\0'; + name = xstrdup (name); + if (eval_makefile (name, + RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE) < 2) + free (name); + } + + free (value); + } + + /* Read makefiles specified with -f switches. */ + + if (makefiles != 0) + while (*makefiles != 0) + { + struct dep *tail = read_makefiles; + register struct dep *d; + + if (! eval_makefile (*makefiles, 0)) + perror_with_name ("", *makefiles); + + /* Find the right element of read_makefiles. */ + d = read_makefiles; + while (d->next != tail) + d = d->next; + + /* Use the storage read_makefile allocates. */ + *makefiles = dep_name (d); + ++num_makefiles; + ++makefiles; + } + + /* If there were no -f switches, try the default names. */ + + if (num_makefiles == 0) + { + static char *default_makefiles[] = +#ifdef VMS + /* all lower case since readdir() (the vms version) 'lowercasifies' */ + { "makefile.vms", "gnumakefile.", "makefile.", 0 }; +#else +#ifdef _AMIGA + { "GNUmakefile", "Makefile", "SMakefile", 0 }; +#else /* !Amiga && !VMS */ + { "GNUmakefile", "makefile", "Makefile", 0 }; +#endif /* AMIGA */ +#endif /* VMS */ + register char **p = default_makefiles; + while (*p != 0 && !file_exists_p (*p)) + ++p; + + if (*p != 0) + { + if (! eval_makefile (*p, 0)) + perror_with_name ("", *p); + } + else + { + /* No default makefile was found. Add the default makefiles to the + `read_makefiles' chain so they will be updated if possible. */ + struct dep *tail = read_makefiles; + /* Add them to the tail, after any MAKEFILES variable makefiles. */ + while (tail != 0 && tail->next != 0) + tail = tail->next; + for (p = default_makefiles; *p != 0; ++p) + { + struct dep *d = (struct dep *) xmalloc (sizeof (struct dep)); + d->name = 0; + d->file = enter_file (*p); + d->file->dontcare = 1; + d->ignore_mtime = 0; + /* Tell update_goal_chain to bail out as soon as this file is + made, and main not to die if we can't make this file. */ + d->changed = RM_DONTCARE; + if (tail == 0) + read_makefiles = d; + else + tail->next = d; + tail = d; + } + if (tail != 0) + tail->next = 0; + } + } + + return read_makefiles; +} + +static int +eval_makefile (filename, flags) + char *filename; + int flags; +{ + struct dep *deps; + struct ebuffer ebuf; + const struct floc *curfile; + int makefile_errno; + int r; + + ebuf.floc.filenm = filename; + ebuf.floc.lineno = 1; + + if (ISDB (DB_VERBOSE)) + { + printf (_("Reading makefile `%s'"), filename); + if (flags & RM_NO_DEFAULT_GOAL) + printf (_(" (no default goal)")); + if (flags & RM_INCLUDED) + printf (_(" (search path)")); + if (flags & RM_DONTCARE) + printf (_(" (don't care)")); + if (flags & RM_NO_TILDE) + printf (_(" (no ~ expansion)")); + puts ("..."); + } + + /* First, get a stream to read. */ + + /* Expand ~ in FILENAME unless it came from `include', + in which case it was already done. */ + if (!(flags & RM_NO_TILDE) && filename[0] == '~') + { + char *expanded = tilde_expand (filename); + if (expanded != 0) + filename = expanded; + } + + ebuf.fp = fopen (filename, "r"); + /* Save the error code so we print the right message later. */ + makefile_errno = errno; + + /* If the makefile wasn't found and it's either a makefile from + the `MAKEFILES' variable or an included makefile, + search the included makefile search path for this makefile. */ + if (ebuf.fp == 0 && (flags & RM_INCLUDED) && *filename != '/') + { + register unsigned int i; + for (i = 0; include_directories[i] != 0; ++i) + { + char *name = concat (include_directories[i], "/", filename); + ebuf.fp = fopen (name, "r"); + if (ebuf.fp == 0) + free (name); + else + { + filename = name; + break; + } + } + } + + /* Add FILENAME to the chain of read makefiles. */ + deps = (struct dep *) xmalloc (sizeof (struct dep)); + deps->next = read_makefiles; + read_makefiles = deps; + deps->name = 0; + deps->file = lookup_file (filename); + if (deps->file == 0) + { + deps->file = enter_file (xstrdup (filename)); + if (flags & RM_DONTCARE) + deps->file->dontcare = 1; + } + if (filename != ebuf.floc.filenm) + free (filename); + filename = deps->file->name; + deps->changed = flags; + deps->ignore_mtime = 0; + + /* If the makefile can't be found at all, give up entirely. */ + + if (ebuf.fp == 0) + { + /* If we did some searching, errno has the error from the last + attempt, rather from FILENAME itself. Restore it in case the + caller wants to use it in a message. */ + errno = makefile_errno; + return 0; + } + + /* Add this makefile to the list. */ + do_variable_definition (&ebuf.floc, "MAKEFILE_LIST", filename, o_file, + f_append, 0); + + /* Evaluate the makefile */ + + ebuf.size = 200; + ebuf.buffer = ebuf.bufnext = ebuf.bufstart = xmalloc (ebuf.size); + + curfile = reading_file; + reading_file = &ebuf.floc; + + r = eval (&ebuf, !(flags & RM_NO_DEFAULT_GOAL)); + + reading_file = curfile; + + fclose (ebuf.fp); + + free (ebuf.bufstart); + return r; +} + +int +eval_buffer (buffer) + char *buffer; +{ + struct ebuffer ebuf; + const struct floc *curfile; + int r; + + /* Evaluate the buffer */ + + ebuf.size = strlen (buffer); + ebuf.buffer = ebuf.bufnext = ebuf.bufstart = buffer; + ebuf.fp = NULL; + + ebuf.floc = *reading_file; + + curfile = reading_file; + reading_file = &ebuf.floc; + + r = eval (&ebuf, 1); + + reading_file = curfile; + + return r; +} + + +/* Read file FILENAME as a makefile and add its contents to the data base. + + SET_DEFAULT is true if we are allowed to set the default goal. + + FILENAME is added to the `read_makefiles' chain. + + Returns 0 if a file was not found or not read. + Returns 1 if FILENAME was found and read. + Returns 2 if FILENAME was read, and we kept a reference (don't free it). */ + +static int +eval (ebuf, set_default) + struct ebuffer *ebuf; + int set_default; +{ + static char *collapsed = 0; + static unsigned int collapsed_length = 0; + unsigned int commands_len = 200; + char *commands; + unsigned int commands_idx = 0; + unsigned int cmds_started, tgts_started; + int ignoring = 0, in_ignored_define = 0; + int no_targets = 0; /* Set when reading a rule without targets. */ + int have_sysv_atvar = 0; + struct nameseq *filenames = 0; + struct dep *deps = 0; + long nlines = 0; + int two_colon = 0; + char *pattern = 0, *pattern_percent; + struct floc *fstart; + struct floc fi; + +#define record_waiting_files() \ + do \ + { \ + if (filenames != 0) \ + { \ + fi.lineno = tgts_started; \ + record_files (filenames, pattern, pattern_percent, deps, \ + cmds_started, commands, commands_idx, two_colon, \ + have_sysv_atvar, &fi, set_default); \ + } \ + filenames = 0; \ + commands_idx = 0; \ + no_targets = 0; \ + if (pattern) { free(pattern); pattern = 0; } \ + } while (0) + + pattern_percent = 0; + cmds_started = tgts_started = 1; + + fstart = &ebuf->floc; + fi.filenm = ebuf->floc.filenm; + + /* Loop over lines in the file. + The strategy is to accumulate target names in FILENAMES, dependencies + in DEPS and commands in COMMANDS. These are used to define a rule + when the start of the next rule (or eof) is encountered. + + When you see a "continue" in the loop below, that means we are moving on + to the next line _without_ ending any rule that we happen to be working + with at the moment. If you see a "goto rule_complete", then the + statement we just parsed also finishes the previous rule. */ + + commands = xmalloc (200); + + while (1) + { + int linelen; + char *line; + int len; + char *p; + char *p2; + + /* Grab the next line to be evaluated */ + ebuf->floc.lineno += nlines; + nlines = readline (ebuf); + + /* If there is nothing left to eval, we're done. */ + if (nlines < 0) + break; + + /* If this line is empty, skip it. */ + line = ebuf->buffer; + if (line[0] == '\0') + continue; + + linelen = strlen (line); + + /* Check for a shell command line first. + If it is not one, we can stop treating tab specially. */ + if (line[0] == '\t') + { + if (no_targets) + /* Ignore the commands in a rule with no targets. */ + continue; + + /* If there is no preceding rule line, don't treat this line + as a command, even though it begins with a tab character. + SunOS 4 make appears to behave this way. */ + + if (filenames != 0) + { + if (ignoring) + /* Yep, this is a shell command, and we don't care. */ + continue; + + /* Append this command line to the line being accumulated. */ + if (commands_idx == 0) + cmds_started = ebuf->floc.lineno; + + if (linelen + 1 + commands_idx > commands_len) + { + commands_len = (linelen + 1 + commands_idx) * 2; + commands = xrealloc (commands, commands_len); + } + bcopy (line, &commands[commands_idx], linelen); + commands_idx += linelen; + commands[commands_idx++] = '\n'; + + continue; + } + } + + /* This line is not a shell command line. Don't worry about tabs. */ + + if (collapsed_length < linelen+1) + { + collapsed_length = linelen+1; + if (collapsed != 0) + free (collapsed); + collapsed = (char *) xmalloc (collapsed_length); + } + strcpy (collapsed, line); + /* Collapse continuation lines. */ + collapse_continuations (collapsed); + remove_comments (collapsed); + + /* Compare a word, both length and contents. */ +#define word1eq(s) (len == sizeof(s)-1 && strneq (s, p, sizeof(s)-1)) + p = collapsed; + while (isspace ((unsigned char)*p)) + ++p; + + if (*p == '\0') + /* This line is completely empty--ignore it. */ + continue; + + /* Find the end of the first token. Note we don't need to worry about + * ":" here since we compare tokens by length (so "export" will never + * be equal to "export:"). + */ + for (p2 = p+1; *p2 != '\0' && !isspace ((unsigned char)*p2); ++p2) + ; + len = p2 - p; + + /* Find the start of the second token. If it looks like a target or + variable definition it can't be a preprocessor token so skip + them--this allows variables/targets named `ifdef', `export', etc. */ + while (isspace ((unsigned char)*p2)) + ++p2; + + if ((p2[0] == ':' || p2[0] == '+' || p2[0] == '=') && p2[1] == '\0') + { + /* It can't be a preprocessor token so skip it if we're ignoring */ + if (ignoring) + continue; + + goto skip_conditionals; + } + + /* We must first check for conditional and `define' directives before + ignoring anything, since they control what we will do with + following lines. */ + + if (!in_ignored_define + && (word1eq ("ifdef") || word1eq ("ifndef") + || word1eq ("ifeq") || word1eq ("ifneq") + || word1eq ("else") || word1eq ("endif"))) + { + int i = conditional_line (p, fstart); + if (i < 0) + fatal (fstart, _("invalid syntax in conditional")); + + ignoring = i; + continue; + } + + if (word1eq ("endef")) + { + if (!in_ignored_define) + fatal (fstart, _("extraneous `endef'")); + in_ignored_define = 0; + continue; + } + + if (word1eq ("define")) + { + if (ignoring) + in_ignored_define = 1; + else + { + if (*p2 == '\0') + fatal (fstart, _("empty variable name")); + + /* Let the variable name be the whole rest of the line, + with trailing blanks stripped (comments have already been + removed), so it could be a complex variable/function + reference that might contain blanks. */ + p = strchr (p2, '\0'); + while (isblank ((unsigned char)p[-1])) + --p; + do_define (p2, p - p2, o_file, ebuf); + } + continue; + } + + if (word1eq ("override")) + { + if (*p2 == '\0') + error (fstart, _("empty `override' directive")); + + if (strneq (p2, "define", 6) + && (isblank ((unsigned char)p2[6]) || p2[6] == '\0')) + { + if (ignoring) + in_ignored_define = 1; + else + { + p2 = next_token (p2 + 6); + if (*p2 == '\0') + fatal (fstart, _("empty variable name")); + + /* Let the variable name be the whole rest of the line, + with trailing blanks stripped (comments have already been + removed), so it could be a complex variable/function + reference that might contain blanks. */ + p = strchr (p2, '\0'); + while (isblank ((unsigned char)p[-1])) + --p; + do_define (p2, p - p2, o_override, ebuf); + } + } + else if (!ignoring + && !try_variable_definition (fstart, p2, o_override, 0)) + error (fstart, _("invalid `override' directive")); + + continue; + } + + if (ignoring) + /* Ignore the line. We continue here so conditionals + can appear in the middle of a rule. */ + continue; + + if (word1eq ("export")) + { + /* 'export' by itself causes everything to be exported. */ + if (*p2 == '\0') + export_all_variables = 1; + else + { + struct variable *v; + + v = try_variable_definition (fstart, p2, o_file, 0); + if (v != 0) + v->export = v_export; + else + { + unsigned int len; + char *ap; + + /* Expand the line so we can use indirect and constructed + variable names in an export command. */ + p2 = ap = allocated_variable_expand (p2); + + for (p = find_next_token (&p2, &len); p != 0; + p = find_next_token (&p2, &len)) + { + v = lookup_variable (p, len); + if (v == 0) + v = define_variable_loc (p, len, "", o_file, 0, + fstart); + v->export = v_export; + } + + free (ap); + } + } + goto rule_complete; + } + + if (word1eq ("unexport")) + { + if (*p2 == '\0') + export_all_variables = 0; + else + { + unsigned int len; + struct variable *v; + char *ap; + + /* Expand the line so we can use indirect and constructed + variable names in an unexport command. */ + p2 = ap = allocated_variable_expand (p2); + + for (p = find_next_token (&p2, &len); p != 0; + p = find_next_token (&p2, &len)) + { + v = lookup_variable (p, len); + if (v == 0) + v = define_variable_loc (p, len, "", o_file, 0, fstart); + + v->export = v_noexport; + } + + free (ap); + } + goto rule_complete; + } + + skip_conditionals: + if (word1eq ("vpath")) + { + char *pattern; + unsigned int len; + p2 = variable_expand (p2); + p = find_next_token (&p2, &len); + if (p != 0) + { + pattern = savestring (p, len); + p = find_next_token (&p2, &len); + /* No searchpath means remove all previous + selective VPATH's with the same pattern. */ + } + else + /* No pattern means remove all previous selective VPATH's. */ + pattern = 0; + construct_vpath_list (pattern, p); + if (pattern != 0) + free (pattern); + + goto rule_complete; + } + + if (word1eq ("include") || word1eq ("-include") || word1eq ("sinclude")) + { + /* We have found an `include' line specifying a nested + makefile to be read at this point. */ + struct conditionals *save; + struct conditionals new_conditionals; + struct nameseq *files; + /* "-include" (vs "include") says no error if the file does not + exist. "sinclude" is an alias for this from SGI. */ + int noerror = (p[0] != 'i'); + + p = allocated_variable_expand (p2); + if (*p == '\0') + { + error (fstart, + _("no file name for `%sinclude'"), noerror ? "-" : ""); + continue; + } + + /* Parse the list of file names. */ + p2 = p; + files = multi_glob (parse_file_seq (&p2, '\0', + sizeof (struct nameseq), + 1), + sizeof (struct nameseq)); + free (p); + + /* Save the state of conditionals and start + the included makefile with a clean slate. */ + save = conditionals; + bzero ((char *) &new_conditionals, sizeof new_conditionals); + conditionals = &new_conditionals; + + /* Record the rules that are waiting so they will determine + the default goal before those in the included makefile. */ + record_waiting_files (); + + /* Read each included makefile. */ + while (files != 0) + { + struct nameseq *next = files->next; + char *name = files->name; + int r; + + free ((char *)files); + files = next; + + r = eval_makefile (name, (RM_INCLUDED | RM_NO_TILDE + | (noerror ? RM_DONTCARE : 0))); + if (!r) + { + if (!noerror) + error (fstart, "%s: %s", name, strerror (errno)); + free (name); + } + } + + /* Free any space allocated by conditional_line. */ + if (conditionals->ignoring) + free (conditionals->ignoring); + if (conditionals->seen_else) + free (conditionals->seen_else); + + /* Restore state. */ + conditionals = save; + + goto rule_complete; + } + + if (try_variable_definition (fstart, p, o_file, 0)) + /* This line has been dealt with. */ + goto rule_complete; + + if (line[0] == '\t') + { + p = collapsed; /* Ignore comments, etc. */ + while (isblank ((unsigned char)*p)) + ++p; + if (*p == '\0') + /* The line is completely blank; that is harmless. */ + continue; + + /* This line starts with a tab but was not caught above + because there was no preceding target, and the line + might have been usable as a variable definition. + But now we know it is definitely lossage. */ + fatal(fstart, _("commands commence before first target")); + } + + /* This line describes some target files. This is complicated by + the existence of target-specific variables, because we can't + expand the entire line until we know if we have one or not. So + we expand the line word by word until we find the first `:', + then check to see if it's a target-specific variable. + + In this algorithm, `lb_next' will point to the beginning of the + unexpanded parts of the input buffer, while `p2' points to the + parts of the expanded buffer we haven't searched yet. */ + + { + enum make_word_type wtype; + enum variable_origin v_origin; + char *cmdleft, *semip, *lb_next; + unsigned int len, plen = 0; + char *colonp; + + /* Record the previous rule. */ + + record_waiting_files (); + tgts_started = fstart->lineno; + + /* Search the line for an unquoted ; that is not after an + unquoted #. */ + cmdleft = find_char_unquote (line, ';', '#', 0); + if (cmdleft != 0 && *cmdleft == '#') + { + /* We found a comment before a semicolon. */ + *cmdleft = '\0'; + cmdleft = 0; + } + else if (cmdleft != 0) + /* Found one. Cut the line short there before expanding it. */ + *(cmdleft++) = '\0'; + semip = cmdleft; + + collapse_continuations (line); + + /* We can't expand the entire line, since if it's a per-target + variable we don't want to expand it. So, walk from the + beginning, expanding as we go, and looking for "interesting" + chars. The first word is always expandable. */ + wtype = get_next_mword(line, NULL, &lb_next, &len); + switch (wtype) + { + case w_eol: + if (cmdleft != 0) + fatal(fstart, _("missing rule before commands")); + /* This line contained something but turned out to be nothing + but whitespace (a comment?). */ + continue; + + case w_colon: + case w_dcolon: + /* We accept and ignore rules without targets for + compatibility with SunOS 4 make. */ + no_targets = 1; + continue; + + default: + break; + } + + p2 = variable_expand_string(NULL, lb_next, len); + while (1) + { + lb_next += len; + if (cmdleft == 0) + { + /* Look for a semicolon in the expanded line. */ + cmdleft = find_char_unquote (p2, ';', 0, 0); + + if (cmdleft != 0) + { + unsigned long p2_off = p2 - variable_buffer; + unsigned long cmd_off = cmdleft - variable_buffer; + char *pend = p2 + strlen(p2); + + /* Append any remnants of lb, then cut the line short + at the semicolon. */ + *cmdleft = '\0'; + + /* One school of thought says that you shouldn't expand + here, but merely copy, since now you're beyond a ";" + and into a command script. However, the old parser + expanded the whole line, so we continue that for + backwards-compatiblity. Also, it wouldn't be + entirely consistent, since we do an unconditional + expand below once we know we don't have a + target-specific variable. */ + (void)variable_expand_string(pend, lb_next, (long)-1); + lb_next += strlen(lb_next); + p2 = variable_buffer + p2_off; + cmdleft = variable_buffer + cmd_off + 1; + } + } + + colonp = find_char_unquote(p2, ':', 0, 0); +#ifdef HAVE_DOS_PATHS + /* The drive spec brain-damage strikes again... */ + /* Note that the only separators of targets in this context + are whitespace and a left paren. If others are possible, + they should be added to the string in the call to index. */ + while (colonp && (colonp[1] == '/' || colonp[1] == '\\') && + colonp > p2 && isalpha ((unsigned char)colonp[-1]) && + (colonp == p2 + 1 || strchr (" \t(", colonp[-2]) != 0)) + colonp = find_char_unquote(colonp + 1, ':', 0, 0); +#endif + if (colonp != 0) + break; + + wtype = get_next_mword(lb_next, NULL, &lb_next, &len); + if (wtype == w_eol) + break; + + p2 += strlen(p2); + *(p2++) = ' '; + p2 = variable_expand_string(p2, lb_next, len); + /* We don't need to worry about cmdleft here, because if it was + found in the variable_buffer the entire buffer has already + been expanded... we'll never get here. */ + } + + p2 = next_token (variable_buffer); + + /* If the word we're looking at is EOL, see if there's _anything_ + on the line. If not, a variable expanded to nothing, so ignore + it. If so, we can't parse this line so punt. */ + if (wtype == w_eol) + { + if (*p2 != '\0') + /* There's no need to be ivory-tower about this: check for + one of the most common bugs found in makefiles... */ + fatal (fstart, _("missing separator%s"), + !strneq(line, " ", 8) ? "" + : _(" (did you mean TAB instead of 8 spaces?)")); + continue; + } + + /* Make the colon the end-of-string so we know where to stop + looking for targets. */ + *colonp = '\0'; + filenames = multi_glob (parse_file_seq (&p2, '\0', + sizeof (struct nameseq), + 1), + sizeof (struct nameseq)); + *p2 = ':'; + + if (!filenames) + { + /* We accept and ignore rules without targets for + compatibility with SunOS 4 make. */ + no_targets = 1; + continue; + } + /* This should never be possible; we handled it above. */ + assert (*p2 != '\0'); + ++p2; + + /* Is this a one-colon or two-colon entry? */ + two_colon = *p2 == ':'; + if (two_colon) + p2++; + + /* Test to see if it's a target-specific variable. Copy the rest + of the buffer over, possibly temporarily (we'll expand it later + if it's not a target-specific variable). PLEN saves the length + of the unparsed section of p2, for later. */ + if (*lb_next != '\0') + { + unsigned int l = p2 - variable_buffer; + plen = strlen (p2); + (void) variable_buffer_output (p2+plen, + lb_next, strlen (lb_next)+1); + p2 = variable_buffer + l; + } + + /* See if it's an "override" keyword; if so see if what comes after + it looks like a variable definition. */ + + wtype = get_next_mword (p2, NULL, &p, &len); + + v_origin = o_file; + if (wtype == w_static && word1eq ("override")) + { + v_origin = o_override; + wtype = get_next_mword (p+len, NULL, &p, &len); + } + + if (wtype != w_eol) + wtype = get_next_mword (p+len, NULL, NULL, NULL); + + if (wtype == w_varassign) + { + /* If there was a semicolon found, add it back, plus anything + after it. */ + if (semip) + { + *(--semip) = ';'; + variable_buffer_output (p2 + strlen (p2), + semip, strlen (semip)+1); + } + record_target_var (filenames, p, two_colon, v_origin, fstart); + filenames = 0; + continue; + } + + /* This is a normal target, _not_ a target-specific variable. + Unquote any = in the dependency list. */ + find_char_unquote (lb_next, '=', 0, 0); + + /* We have some targets, so don't ignore the following commands. */ + no_targets = 0; + + /* Expand the dependencies, etc. */ + if (*lb_next != '\0') + { + unsigned int l = p2 - variable_buffer; + (void) variable_expand_string (p2 + plen, lb_next, (long)-1); + p2 = variable_buffer + l; + + /* Look for a semicolon in the expanded line. */ + if (cmdleft == 0) + { + cmdleft = find_char_unquote (p2, ';', 0, 0); + if (cmdleft != 0) + *(cmdleft++) = '\0'; + } + } + + /* Do any of the prerequisites appear to have $@ etc.? */ + have_sysv_atvar = 0; + if (!posix_pedantic) + for (p = strchr (p2, '$'); p != 0; p = strchr (p+1, '$')) + if (p[1] == '@' || (p[1] == '(' && p[2] == '@')) + { + have_sysv_atvar = 1; + break; + } + + /* Is this a static pattern rule: `target: %targ: %dep; ...'? */ + p = strchr (p2, ':'); + while (p != 0 && p[-1] == '\\') + { + register char *q = &p[-1]; + register int backslash = 0; + while (*q-- == '\\') + backslash = !backslash; + if (backslash) + p = strchr (p + 1, ':'); + else + break; + } +#ifdef _AMIGA + /* Here, the situation is quite complicated. Let's have a look + at a couple of targets: + + install: dev:make + + dev:make: make + + dev:make:: xyz + + The rule is that it's only a target, if there are TWO :'s + OR a space around the :. + */ + if (p && !(isspace ((unsigned char)p[1]) || !p[1] + || isspace ((unsigned char)p[-1]))) + p = 0; +#endif +#ifdef HAVE_DOS_PATHS + { + int check_again; + + do { + check_again = 0; + /* For DOS paths, skip a "C:\..." or a "C:/..." */ + if (p != 0 && (p[1] == '\\' || p[1] == '/') && + isalpha ((unsigned char)p[-1]) && + (p == p2 + 1 || strchr (" \t:(", p[-2]) != 0)) { + p = strchr (p + 1, ':'); + check_again = 1; + } + } while (check_again); + } +#endif + if (p != 0) + { + struct nameseq *target; + target = parse_file_seq (&p2, ':', sizeof (struct nameseq), 1); + ++p2; + if (target == 0) + fatal (fstart, _("missing target pattern")); + else if (target->next != 0) + fatal (fstart, _("multiple target patterns")); + pattern = target->name; + pattern_percent = find_percent (pattern); + if (pattern_percent == 0) + fatal (fstart, _("target pattern contains no `%%'")); + free((char *)target); + } + else + pattern = 0; + + /* Parse the dependencies. */ + deps = (struct dep *) + multi_glob (parse_file_seq (&p2, '|', sizeof (struct dep), 1), + sizeof (struct dep)); + if (*p2) + { + /* Files that follow '|' are special prerequisites that + need only exist in order to satisfy the dependency. + Their modification times are irrelevant. */ + struct dep **deps_ptr = &deps; + struct dep *d; + for (deps_ptr = &deps; *deps_ptr; deps_ptr = &(*deps_ptr)->next) + ; + ++p2; + *deps_ptr = (struct dep *) + multi_glob (parse_file_seq (&p2, '\0', sizeof (struct dep), 1), + sizeof (struct dep)); + for (d = *deps_ptr; d != 0; d = d->next) + d->ignore_mtime = 1; + } + + commands_idx = 0; + if (cmdleft != 0) + { + /* Semicolon means rest of line is a command. */ + unsigned int len = strlen (cmdleft); + + cmds_started = fstart->lineno; + + /* Add this command line to the buffer. */ + if (len + 2 > commands_len) + { + commands_len = (len + 2) * 2; + commands = (char *) xrealloc (commands, commands_len); + } + bcopy (cmdleft, commands, len); + commands_idx += len; + commands[commands_idx++] = '\n'; + } + + continue; + } + + /* We get here except in the case that we just read a rule line. + Record now the last rule we read, so following spurious + commands are properly diagnosed. */ + rule_complete: + record_waiting_files (); + } + +#undef word1eq + + if (conditionals->if_cmds) + fatal (fstart, _("missing `endif'")); + + /* At eof, record the last rule. */ + record_waiting_files (); + + free ((char *) commands); + + return 1; +} + + +/* Execute a `define' directive. + The first line has already been read, and NAME is the name of + the variable to be defined. The following lines remain to be read. */ + +static void +do_define (name, namelen, origin, ebuf) + char *name; + unsigned int namelen; + enum variable_origin origin; + struct ebuffer *ebuf; +{ + struct floc defstart; + long nlines = 0; + int nlevels = 1; + unsigned int length = 100; + char *definition = (char *) xmalloc (length); + unsigned int idx = 0; + char *p; + + /* Expand the variable name. */ + char *var = (char *) alloca (namelen + 1); + bcopy (name, var, namelen); + var[namelen] = '\0'; + var = variable_expand (var); + + defstart = ebuf->floc; + + while (1) + { + unsigned int len; + char *line; + + ebuf->floc.lineno += nlines; + nlines = readline (ebuf); + + /* If there is nothing left to eval, we're done. */ + if (nlines < 0) + break; + + line = ebuf->buffer; + + collapse_continuations (line); + + /* If the line doesn't begin with a tab, test to see if it introduces + another define, or ends one. */ + + /* Stop if we find an 'endef' */ + if (line[0] != '\t') + { + p = next_token (line); + len = strlen (p); + + /* If this is another 'define', increment the level count. */ + if ((len == 6 || (len > 6 && isblank ((unsigned char)p[6]))) + && strneq (p, "define", 6)) + ++nlevels; + + /* If this is an 'endef', decrement the count. If it's now 0, + we've found the last one. */ + else if ((len == 5 || (len > 5 && isblank ((unsigned char)p[5]))) + && strneq (p, "endef", 5)) + { + p += 5; + remove_comments (p); + if (*next_token (p) != '\0') + error (&ebuf->floc, + _("Extraneous text after `endef' directive")); + + if (--nlevels == 0) + { + /* Define the variable. */ + if (idx == 0) + definition[0] = '\0'; + else + definition[idx - 1] = '\0'; + + /* Always define these variables in the global set. */ + define_variable_global (var, strlen (var), definition, + origin, 1, &defstart); + free (definition); + return; + } + } + } + + /* Otherwise add this line to the variable definition. */ + len = strlen (line); + if (idx + len + 1 > length) + { + length = (idx + len) * 2; + definition = (char *) xrealloc (definition, length + 1); + } + + bcopy (line, &definition[idx], len); + idx += len; + /* Separate lines with a newline. */ + definition[idx++] = '\n'; + } + + /* No `endef'!! */ + fatal (&defstart, _("missing `endef', unterminated `define'")); + + /* NOTREACHED */ + return; +} + +/* Interpret conditional commands "ifdef", "ifndef", "ifeq", + "ifneq", "else" and "endif". + LINE is the input line, with the command as its first word. + + FILENAME and LINENO are the filename and line number in the + current makefile. They are used for error messages. + + Value is -1 if the line is invalid, + 0 if following text should be interpreted, + 1 if following text should be ignored. */ + +static int +conditional_line (line, flocp) + char *line; + const struct floc *flocp; +{ + int notdef; + char *cmdname; + register unsigned int i; + + if (*line == 'i') + { + /* It's an "if..." command. */ + notdef = line[2] == 'n'; + if (notdef) + { + cmdname = line[3] == 'd' ? "ifndef" : "ifneq"; + line += cmdname[3] == 'd' ? 7 : 6; + } + else + { + cmdname = line[2] == 'd' ? "ifdef" : "ifeq"; + line += cmdname[2] == 'd' ? 6 : 5; + } + } + else + { + /* It's an "else" or "endif" command. */ + notdef = line[1] == 'n'; + cmdname = notdef ? "endif" : "else"; + line += notdef ? 5 : 4; + } + + line = next_token (line); + + if (*cmdname == 'e') + { + if (*line != '\0') + error (flocp, _("Extraneous text after `%s' directive"), cmdname); + /* "Else" or "endif". */ + if (conditionals->if_cmds == 0) + fatal (flocp, _("extraneous `%s'"), cmdname); + /* NOTDEF indicates an `endif' command. */ + if (notdef) + --conditionals->if_cmds; + else if (conditionals->seen_else[conditionals->if_cmds - 1]) + fatal (flocp, _("only one `else' per conditional")); + else + { + /* Toggle the state of ignorance. */ + conditionals->ignoring[conditionals->if_cmds - 1] + = !conditionals->ignoring[conditionals->if_cmds - 1]; + /* Record that we have seen an `else' in this conditional. + A second `else' will be erroneous. */ + conditionals->seen_else[conditionals->if_cmds - 1] = 1; + } + for (i = 0; i < conditionals->if_cmds; ++i) + if (conditionals->ignoring[i]) + return 1; + return 0; + } + + if (conditionals->allocated == 0) + { + conditionals->allocated = 5; + conditionals->ignoring = (char *) xmalloc (conditionals->allocated); + conditionals->seen_else = (char *) xmalloc (conditionals->allocated); + } + + ++conditionals->if_cmds; + if (conditionals->if_cmds > conditionals->allocated) + { + conditionals->allocated += 5; + conditionals->ignoring = (char *) + xrealloc (conditionals->ignoring, conditionals->allocated); + conditionals->seen_else = (char *) + xrealloc (conditionals->seen_else, conditionals->allocated); + } + + /* Record that we have seen an `if...' but no `else' so far. */ + conditionals->seen_else[conditionals->if_cmds - 1] = 0; + + /* Search through the stack to see if we're already ignoring. */ + for (i = 0; i < conditionals->if_cmds - 1; ++i) + if (conditionals->ignoring[i]) + { + /* We are already ignoring, so just push a level + to match the next "else" or "endif", and keep ignoring. + We don't want to expand variables in the condition. */ + conditionals->ignoring[conditionals->if_cmds - 1] = 1; + return 1; + } + + if (cmdname[notdef ? 3 : 2] == 'd') + { + /* "Ifdef" or "ifndef". */ + char *var; + struct variable *v; + register char *p = end_of_token (line); + i = p - line; + p = next_token (p); + if (*p != '\0') + return -1; + + /* Expand the thing we're looking up, so we can use indirect and + constructed variable names. */ + line[i] = '\0'; + var = allocated_variable_expand (line); + + v = lookup_variable (var, strlen (var)); + conditionals->ignoring[conditionals->if_cmds - 1] + = (v != 0 && *v->value != '\0') == notdef; + + free (var); + } + else + { + /* "Ifeq" or "ifneq". */ + char *s1, *s2; + unsigned int len; + char termin = *line == '(' ? ',' : *line; + + if (termin != ',' && termin != '"' && termin != '\'') + return -1; + + s1 = ++line; + /* Find the end of the first string. */ + if (termin == ',') + { + register int count = 0; + for (; *line != '\0'; ++line) + if (*line == '(') + ++count; + else if (*line == ')') + --count; + else if (*line == ',' && count <= 0) + break; + } + else + while (*line != '\0' && *line != termin) + ++line; + + if (*line == '\0') + return -1; + + if (termin == ',') + { + /* Strip blanks after the first string. */ + char *p = line++; + while (isblank ((unsigned char)p[-1])) + --p; + *p = '\0'; + } + else + *line++ = '\0'; + + s2 = variable_expand (s1); + /* We must allocate a new copy of the expanded string because + variable_expand re-uses the same buffer. */ + len = strlen (s2); + s1 = (char *) alloca (len + 1); + bcopy (s2, s1, len + 1); + + if (termin != ',') + /* Find the start of the second string. */ + line = next_token (line); + + termin = termin == ',' ? ')' : *line; + if (termin != ')' && termin != '"' && termin != '\'') + return -1; + + /* Find the end of the second string. */ + if (termin == ')') + { + register int count = 0; + s2 = next_token (line); + for (line = s2; *line != '\0'; ++line) + { + if (*line == '(') + ++count; + else if (*line == ')') + { + if (count <= 0) + break; + else + --count; + } + } + } + else + { + ++line; + s2 = line; + while (*line != '\0' && *line != termin) + ++line; + } + + if (*line == '\0') + return -1; + + *line = '\0'; + line = next_token (++line); + if (*line != '\0') + error (flocp, _("Extraneous text after `%s' directive"), cmdname); + + s2 = variable_expand (s2); + conditionals->ignoring[conditionals->if_cmds - 1] + = streq (s1, s2) == notdef; + } + + /* Search through the stack to see if we're ignoring. */ + for (i = 0; i < conditionals->if_cmds; ++i) + if (conditionals->ignoring[i]) + return 1; + return 0; +} + +/* Remove duplicate dependencies in CHAIN. */ + +static unsigned long +dep_hash_1 (key) + const void *key; +{ + return_STRING_HASH_1 (dep_name ((struct dep const *) key)); +} + +static unsigned long +dep_hash_2 (key) + const void *key; +{ + return_STRING_HASH_2 (dep_name ((struct dep const *) key)); +} + +static int +dep_hash_cmp (x, y) + const void *x; + const void *y; +{ + struct dep *dx = (struct dep *) x; + struct dep *dy = (struct dep *) y; + int cmp = strcmp (dep_name (dx), dep_name (dy)); + + /* If the names are the same but ignore_mtimes are not equal, one of these + is an order-only prerequisite and one isn't. That means that we should + remove the one that isn't and keep the one that is. */ + + if (!cmp && dx->ignore_mtime != dy->ignore_mtime) + dx->ignore_mtime = dy->ignore_mtime = 0; + + return cmp; +} + + +void +uniquize_deps (chain) + struct dep *chain; +{ + struct hash_table deps; + register struct dep **depp; + + hash_init (&deps, 500, dep_hash_1, dep_hash_2, dep_hash_cmp); + + /* Make sure that no dependencies are repeated. This does not + really matter for the purpose of updating targets, but it + might make some names be listed twice for $^ and $?. */ + + depp = &chain; + while (*depp) + { + struct dep *dep = *depp; + struct dep **dep_slot = (struct dep **) hash_find_slot (&deps, dep); + if (HASH_VACANT (*dep_slot)) + { + hash_insert_at (&deps, dep, dep_slot); + depp = &dep->next; + } + else + { + /* Don't bother freeing duplicates. + It's dangerous and little benefit accrues. */ + *depp = dep->next; + } + } + + hash_free (&deps, 0); +} + +/* Record target-specific variable values for files FILENAMES. + TWO_COLON is nonzero if a double colon was used. + + The links of FILENAMES are freed, and so are any names in it + that are not incorporated into other data structures. + + If the target is a pattern, add the variable to the pattern-specific + variable value list. */ + +static void +record_target_var (filenames, defn, two_colon, origin, flocp) + struct nameseq *filenames; + char *defn; + int two_colon; + enum variable_origin origin; + const struct floc *flocp; +{ + struct nameseq *nextf; + struct variable_set_list *global; + + global = current_variable_set_list; + + /* If the variable is an append version, store that but treat it as a + normal recursive variable. */ + + for (; filenames != 0; filenames = nextf) + { + struct variable *v; + register char *name = filenames->name; + struct variable_set_list *vlist; + char *fname; + char *percent; + + nextf = filenames->next; + free ((char *) filenames); + + /* If it's a pattern target, then add it to the pattern-specific + variable list. */ + percent = find_percent (name); + if (percent) + { + struct pattern_var *p; + + /* Get a reference for this pattern-specific variable struct. */ + p = create_pattern_var(name, percent); + vlist = p->vars; + fname = p->target; + } + else + { + struct file *f; + + /* Get a file reference for this file, and initialize it. + We don't want to just call enter_file() because that allocates a + new entry if the file is a double-colon, which we don't want in + this situation. */ + f = lookup_file (name); + if (!f) + f = enter_file (name); + else if (f->double_colon) + f = f->double_colon; + + initialize_file_variables (f, 1); + vlist = f->variables; + fname = f->name; + } + + /* Make the new variable context current and define the variable. */ + current_variable_set_list = vlist; + v = try_variable_definition (flocp, defn, origin, 1); + if (!v) + error (flocp, _("Malformed per-target variable definition")); + v->per_target = 1; + + /* If it's not an override, check to see if there was a command-line + setting. If so, reset the value. */ + if (origin != o_override) + { + struct variable *gv; + int len = strlen(v->name); + + current_variable_set_list = global; + gv = lookup_variable (v->name, len); + if (gv && (gv->origin == o_env_override || gv->origin == o_command)) + { + v = define_variable_in_set (v->name, len, gv->value, gv->origin, + gv->recursive, vlist->set, flocp); + v->append = 0; + } + } + + /* Free name if not needed further. */ + if (name != fname && (name < fname || name > fname + strlen (fname))) + free (name); + } + + current_variable_set_list = global; +} + +/* Record a description line for files FILENAMES, + with dependencies DEPS, commands to execute described + by COMMANDS and COMMANDS_IDX, coming from FILENAME:COMMANDS_STARTED. + TWO_COLON is nonzero if a double colon was used. + If not nil, PATTERN is the `%' pattern to make this + a static pattern rule, and PATTERN_PERCENT is a pointer + to the `%' within it. + + The links of FILENAMES are freed, and so are any names in it + that are not incorporated into other data structures. */ + +static void +record_files (filenames, pattern, pattern_percent, deps, cmds_started, + commands, commands_idx, two_colon, have_sysv_atvar, + flocp, set_default) + struct nameseq *filenames; + char *pattern, *pattern_percent; + struct dep *deps; + unsigned int cmds_started; + char *commands; + unsigned int commands_idx; + int two_colon; + int have_sysv_atvar; + const struct floc *flocp; + int set_default; +{ + struct nameseq *nextf; + int implicit = 0; + unsigned int max_targets = 0, target_idx = 0; + char **targets = 0, **target_percents = 0; + struct commands *cmds; + + if (commands_idx > 0) + { + cmds = (struct commands *) xmalloc (sizeof (struct commands)); + cmds->fileinfo.filenm = flocp->filenm; + cmds->fileinfo.lineno = cmds_started; + cmds->commands = savestring (commands, commands_idx); + cmds->command_lines = 0; + } + else + cmds = 0; + + for (; filenames != 0; filenames = nextf) + { + char *name = filenames->name; + struct file *f; + struct dep *d; + struct dep *this; + char *implicit_percent; + + nextf = filenames->next; + free (filenames); + + /* Check for .POSIX. We used to do this in snap_deps() but that's not + good enough: it doesn't happen until after the makefile is read, + which means we cannot use its value during parsing. */ + + if (streq (name, ".POSIX")) + posix_pedantic = 1; + + implicit_percent = find_percent (name); + implicit |= implicit_percent != 0; + + if (implicit && pattern != 0) + fatal (flocp, _("mixed implicit and static pattern rules")); + + if (implicit && implicit_percent == 0) + fatal (flocp, _("mixed implicit and normal rules")); + + if (implicit) + { + if (targets == 0) + { + max_targets = 5; + targets = (char **) xmalloc (5 * sizeof (char *)); + target_percents = (char **) xmalloc (5 * sizeof (char *)); + target_idx = 0; + } + else if (target_idx == max_targets - 1) + { + max_targets += 5; + targets = (char **) xrealloc ((char *) targets, + max_targets * sizeof (char *)); + target_percents + = (char **) xrealloc ((char *) target_percents, + max_targets * sizeof (char *)); + } + targets[target_idx] = name; + target_percents[target_idx] = implicit_percent; + ++target_idx; + continue; + } + + /* If there are multiple filenames, copy the chain DEPS + for all but the last one. It is not safe for the same deps + to go in more than one place in the data base. */ + this = nextf != 0 ? copy_dep_chain (deps) : deps; + + if (pattern != 0) + { + /* If this is an extended static rule: + `targets: target%pattern: dep%pattern; cmds', + translate each dependency pattern into a plain filename + using the target pattern and this target's name. */ + if (!pattern_matches (pattern, pattern_percent, name)) + { + /* Give a warning if the rule is meaningless. */ + error (flocp, + _("target `%s' doesn't match the target pattern"), name); + this = 0; + } + else + { + /* We use patsubst_expand to do the work of translating + the target pattern, the target's name and the dependencies' + patterns into plain dependency names. */ + char *buffer = variable_expand (""); + + for (d = this; d != 0; d = d->next) + { + char *o; + char *percent = find_percent (d->name); + if (percent == 0) + continue; + o = patsubst_expand (buffer, name, pattern, d->name, + pattern_percent, percent); + /* If the name expanded to the empty string, that's + illegal. */ + if (o == buffer) + fatal (flocp, + _("target `%s' leaves prerequisite pattern empty"), + name); + free (d->name); + d->name = savestring (buffer, o - buffer); + } + } + } + + /* If at least one of the dependencies uses $$@ etc. deal with that. + It would be very nice and very simple to just expand everything, but + it would break a lot of backward compatibility. Maybe that's OK + since we're just emulating a SysV function, and if we do that then + why not emulate it completely (that's what SysV make does: it + re-expands the entire prerequisite list, all the time, with $@ + etc. in scope. But, it would be a pain indeed to document this + ("iff you use $$@, your prerequisite lists is expanded twice...") + Ouch. Maybe better to make the code more complex. */ + + if (have_sysv_atvar) + { + char *p; + int tlen = strlen (name); + char *fnp = strrchr (name, '/'); + int dlen; + int flen; + + if (fnp) + { + dlen = fnp - name; + ++fnp; + flen = strlen (fnp); + } + else + { + dlen = 0; + fnp = name; + flen = tlen; + } + + + for (d = this; d != 0; d = d->next) + for (p = strchr (d->name, '$'); p != 0; p = strchr (p+1, '$')) + { + char *s = p; + char *at; + int atlen; + + /* If it's a '$@' or '$(@', it's escaped */ + if ((++p)[0] == '$' + && (p[1] == '@' || (p[1] == '(' && p[2] == '@'))) + { + bcopy (p, s, strlen (p)+1); + continue; + } + + /* Maybe found one. Check. p will point to '@' [for $@] or + ')' [for $(@)] or 'D' [for $(@D)] or 'F' [for $(@F)]. */ + if (p[0] != '@' + && (p[0] != '(' || (++p)[0] != '@' + || ((++p)[0] != ')' + && (p[1] != ')' || (p[0] != 'D' && p[0] != 'F'))))) + continue; + + /* Found one. Compute the length and string ptr. Move p + past the variable reference. */ + switch (p[0]) + { + case 'D': + atlen = dlen; + at = name; + p += 2; + break; + + case 'F': + atlen = flen; + at = fnp; + p += 2; + break; + + default: + atlen = tlen; + at = name; + ++p; + break; + } + + /* Get more space. */ + { + int soff = s - d->name; + int poff = p - d->name; + d->name = (char *) xrealloc (d->name, + strlen (d->name) + atlen + 1); + s = d->name + soff; + p = d->name + poff; + } + + /* Copy the string over. */ + bcopy(p, s+atlen, strlen (p)+1); + bcopy(at, s, atlen); + p = s + atlen - 1; + } + } + + if (!two_colon) + { + /* Single-colon. Combine these dependencies + with others in file's existing record, if any. */ + f = enter_file (name); + + if (f->double_colon) + fatal (flocp, + _("target file `%s' has both : and :: entries"), f->name); + + /* If CMDS == F->CMDS, this target was listed in this rule + more than once. Just give a warning since this is harmless. */ + if (cmds != 0 && cmds == f->cmds) + error (flocp, + _("target `%s' given more than once in the same rule."), + f->name); + + /* Check for two single-colon entries both with commands. + Check is_target so that we don't lose on files such as .c.o + whose commands were preinitialized. */ + else if (cmds != 0 && f->cmds != 0 && f->is_target) + { + error (&cmds->fileinfo, + _("warning: overriding commands for target `%s'"), + f->name); + error (&f->cmds->fileinfo, + _("warning: ignoring old commands for target `%s'"), + f->name); + } + + f->is_target = 1; + + /* Defining .DEFAULT with no deps or cmds clears it. */ + if (f == default_file && this == 0 && cmds == 0) + f->cmds = 0; + if (cmds != 0) + f->cmds = cmds; + /* Defining .SUFFIXES with no dependencies + clears out the list of suffixes. */ + if (f == suffix_file && this == 0) + { + d = f->deps; + while (d != 0) + { + struct dep *nextd = d->next; + free (d->name); + free ((char *)d); + d = nextd; + } + f->deps = 0; + } + else if (f->deps != 0) + { + /* Add the file's old deps and the new ones in THIS together. */ + + struct dep *firstdeps, *moredeps; + if (cmds != 0) + { + /* This is the rule with commands, so put its deps first. + The rationale behind this is that $< expands to the + first dep in the chain, and commands use $< expecting + to get the dep that rule specifies. */ + firstdeps = this; + moredeps = f->deps; + } + else + { + /* Append the new deps to the old ones. */ + firstdeps = f->deps; + moredeps = this; + } + + if (firstdeps == 0) + firstdeps = moredeps; + else + { + d = firstdeps; + while (d->next != 0) + d = d->next; + d->next = moredeps; + } + + f->deps = firstdeps; + } + else + f->deps = this; + + /* If this is a static pattern rule, set the file's stem to + the part of its name that matched the `%' in the pattern, + so you can use $* in the commands. */ + if (pattern != 0) + { + static char *percent = "%"; + char *buffer = variable_expand (""); + char *o = patsubst_expand (buffer, name, pattern, percent, + pattern_percent, percent); + f->stem = savestring (buffer, o - buffer); + } + } + else + { + /* Double-colon. Make a new record + even if the file already has one. */ + f = lookup_file (name); + /* Check for both : and :: rules. Check is_target so + we don't lose on default suffix rules or makefiles. */ + if (f != 0 && f->is_target && !f->double_colon) + fatal (flocp, + _("target file `%s' has both : and :: entries"), f->name); + f = enter_file (name); + /* If there was an existing entry and it was a double-colon + entry, enter_file will have returned a new one, making it the + prev pointer of the old one, and setting its double_colon + pointer to the first one. */ + if (f->double_colon == 0) + /* This is the first entry for this name, so we must + set its double_colon pointer to itself. */ + f->double_colon = f; + f->is_target = 1; + f->deps = this; + f->cmds = cmds; + } + + /* Free name if not needed further. */ + if (f != 0 && name != f->name + && (name < f->name || name > f->name + strlen (f->name))) + { + free (name); + name = f->name; + } + + /* See if this is first target seen whose name does + not start with a `.', unless it contains a slash. */ + if (default_goal_file == 0 && set_default + && (*name != '.' || strchr (name, '/') != 0 +#ifdef HAVE_DOS_PATHS + || strchr (name, '\\') != 0 +#endif + )) + { + int reject = 0; + + /* If this file is a suffix, don't + let it be the default goal file. */ + + for (d = suffix_file->deps; d != 0; d = d->next) + { + register struct dep *d2; + if (*dep_name (d) != '.' && streq (name, dep_name (d))) + { + reject = 1; + break; + } + for (d2 = suffix_file->deps; d2 != 0; d2 = d2->next) + { + register unsigned int len = strlen (dep_name (d2)); + if (!strneq (name, dep_name (d2), len)) + continue; + if (streq (name + len, dep_name (d))) + { + reject = 1; + break; + } + } + if (reject) + break; + } + + if (!reject) + default_goal_file = f; + } + } + + if (implicit) + { + targets[target_idx] = 0; + target_percents[target_idx] = 0; + create_pattern_rule (targets, target_percents, two_colon, deps, cmds, 1); + free ((char *) target_percents); + } +} + +/* Search STRING for an unquoted STOPCHAR or blank (if BLANK is nonzero). + Backslashes quote STOPCHAR, blanks if BLANK is nonzero, and backslash. + Quoting backslashes are removed from STRING by compacting it into + itself. Returns a pointer to the first unquoted STOPCHAR if there is + one, or nil if there are none. */ + +char * +find_char_unquote (string, stop1, stop2, blank) + char *string; + int stop1; + int stop2; + int blank; +{ + unsigned int string_len = 0; + register char *p = string; + + while (1) + { + if (stop2 && blank) + while (*p != '\0' && *p != stop1 && *p != stop2 + && ! isblank ((unsigned char) *p)) + ++p; + else if (stop2) + while (*p != '\0' && *p != stop1 && *p != stop2) + ++p; + else if (blank) + while (*p != '\0' && *p != stop1 + && ! isblank ((unsigned char) *p)) + ++p; + else + while (*p != '\0' && *p != stop1) + ++p; + + if (*p == '\0') + break; + + if (p > string && p[-1] == '\\') + { + /* Search for more backslashes. */ + register int i = -2; + while (&p[i] >= string && p[i] == '\\') + --i; + ++i; + /* Only compute the length if really needed. */ + if (string_len == 0) + string_len = strlen (string); + /* The number of backslashes is now -I. + Copy P over itself to swallow half of them. */ + bcopy (&p[i / 2], &p[i], (string_len - (p - string)) - (i / 2) + 1); + p += i / 2; + if (i % 2 == 0) + /* All the backslashes quoted each other; the STOPCHAR was + unquoted. */ + return p; + + /* The STOPCHAR was quoted by a backslash. Look for another. */ + } + else + /* No backslash in sight. */ + return p; + } + + /* Never hit a STOPCHAR or blank (with BLANK nonzero). */ + return 0; +} + +/* Search PATTERN for an unquoted %. */ + +char * +find_percent (pattern) + char *pattern; +{ + return find_char_unquote (pattern, '%', 0, 0); +} + +/* Parse a string into a sequence of filenames represented as a + chain of struct nameseq's in reverse order and return that chain. + + The string is passed as STRINGP, the address of a string pointer. + The string pointer is updated to point at the first character + not parsed, which either is a null char or equals STOPCHAR. + + SIZE is how big to construct chain elements. + This is useful if we want them actually to be other structures + that have room for additional info. + + If STRIP is nonzero, strip `./'s off the beginning. */ + +struct nameseq * +parse_file_seq (stringp, stopchar, size, strip) + char **stringp; + int stopchar; + unsigned int size; + int strip; +{ + register struct nameseq *new = 0; + register struct nameseq *new1, *lastnew1; + register char *p = *stringp; + char *q; + char *name; + +#ifdef VMS +# define VMS_COMMA ',' +#else +# define VMS_COMMA 0 +#endif + + while (1) + { + /* Skip whitespace; see if any more names are left. */ + p = next_token (p); + if (*p == '\0') + break; + if (*p == stopchar) + break; + + /* Yes, find end of next name. */ + q = p; + p = find_char_unquote (q, stopchar, VMS_COMMA, 1); +#ifdef VMS + /* convert comma separated list to space separated */ + if (p && *p == ',') + *p =' '; +#endif +#ifdef _AMIGA + if (stopchar == ':' && p && *p == ':' + && !(isspace ((unsigned char)p[1]) || !p[1] + || isspace ((unsigned char)p[-1]))) + { + p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1); + } +#endif +#ifdef HAVE_DOS_PATHS + /* For DOS paths, skip a "C:\..." or a "C:/..." until we find the + first colon which isn't followed by a slash or a backslash. + Note that tokens separated by spaces should be treated as separate + tokens since make doesn't allow path names with spaces */ + if (stopchar == ':') + while (p != 0 && !isspace ((unsigned char)*p) && + (p[1] == '\\' || p[1] == '/') && isalpha ((unsigned char)p[-1])) + p = find_char_unquote (p + 1, stopchar, VMS_COMMA, 1); +#endif + if (p == 0) + p = q + strlen (q); + + if (strip) +#ifdef VMS + /* Skip leading `[]'s. */ + while (p - q > 2 && q[0] == '[' && q[1] == ']') +#else + /* Skip leading `./'s. */ + while (p - q > 2 && q[0] == '.' && q[1] == '/') +#endif + { + q += 2; /* Skip "./". */ + while (q < p && *q == '/') + /* Skip following slashes: ".//foo" is "foo", not "/foo". */ + ++q; + } + + /* Extract the filename just found, and skip it. */ + + if (q == p) + /* ".///" was stripped to "". */ +#ifdef VMS + continue; +#else +#ifdef _AMIGA + name = savestring ("", 0); +#else + name = savestring ("./", 2); +#endif +#endif + else +#ifdef VMS +/* VMS filenames can have a ':' in them but they have to be '\'ed but we need + * to remove this '\' before we can use the filename. + * Savestring called because q may be read-only string constant. + */ + { + char *qbase = xstrdup (q); + char *pbase = qbase + (p-q); + char *q1 = qbase; + char *q2 = q1; + char *p1 = pbase; + + while (q1 != pbase) + { + if (*q1 == '\\' && *(q1+1) == ':') + { + q1++; + p1--; + } + *q2++ = *q1++; + } + name = savestring (qbase, p1 - qbase); + free (qbase); + } +#else + name = savestring (q, p - q); +#endif + + /* Add it to the front of the chain. */ + new1 = (struct nameseq *) xmalloc (size); + new1->name = name; + new1->next = new; + new = new1; + } + +#ifndef NO_ARCHIVES + + /* Look for multi-word archive references. + They are indicated by a elt ending with an unmatched `)' and + an elt further down the chain (i.e., previous in the file list) + with an unmatched `(' (e.g., "lib(mem"). */ + + new1 = new; + lastnew1 = 0; + while (new1 != 0) + if (new1->name[0] != '(' /* Don't catch "(%)" and suchlike. */ + && new1->name[strlen (new1->name) - 1] == ')' + && strchr (new1->name, '(') == 0) + { + /* NEW1 ends with a `)' but does not contain a `('. + Look back for an elt with an opening `(' but no closing `)'. */ + + struct nameseq *n = new1->next, *lastn = new1; + char *paren = 0; + while (n != 0 && (paren = strchr (n->name, '(')) == 0) + { + lastn = n; + n = n->next; + } + if (n != 0 + /* Ignore something starting with `(', as that cannot actually + be an archive-member reference (and treating it as such + results in an empty file name, which causes much lossage). */ + && n->name[0] != '(') + { + /* N is the first element in the archive group. + Its name looks like "lib(mem" (with no closing `)'). */ + + char *libname; + + /* Copy "lib(" into LIBNAME. */ + ++paren; + libname = (char *) alloca (paren - n->name + 1); + bcopy (n->name, libname, paren - n->name); + libname[paren - n->name] = '\0'; + + if (*paren == '\0') + { + /* N was just "lib(", part of something like "lib( a b)". + Edit it out of the chain and free its storage. */ + lastn->next = n->next; + free (n->name); + free ((char *) n); + /* LASTN->next is the new stopping elt for the loop below. */ + n = lastn->next; + } + else + { + /* Replace N's name with the full archive reference. */ + name = concat (libname, paren, ")"); + free (n->name); + n->name = name; + } + + if (new1->name[1] == '\0') + { + /* NEW1 is just ")", part of something like "lib(a b )". + Omit it from the chain and free its storage. */ + if (lastnew1 == 0) + new = new1->next; + else + lastnew1->next = new1->next; + lastn = new1; + new1 = new1->next; + free (lastn->name); + free ((char *) lastn); + } + else + { + /* Replace also NEW1->name, which already has closing `)'. */ + name = concat (libname, new1->name, ""); + free (new1->name); + new1->name = name; + new1 = new1->next; + } + + /* Trace back from NEW1 (the end of the list) until N + (the beginning of the list), rewriting each name + with the full archive reference. */ + + while (new1 != n) + { + name = concat (libname, new1->name, ")"); + free (new1->name); + new1->name = name; + lastnew1 = new1; + new1 = new1->next; + } + } + else + { + /* No frobnication happening. Just step down the list. */ + lastnew1 = new1; + new1 = new1->next; + } + } + else + { + lastnew1 = new1; + new1 = new1->next; + } + +#endif + + *stringp = p; + return new; +} + +/* Find the next line of text in an eval buffer, combining continuation lines + into one line. + Return the number of actual lines read (> 1 if continuation lines). + Returns -1 if there's nothing left in the buffer. + + After this function, ebuf->buffer points to the first character of the + line we just found. + */ + +/* Read a line of text from a STRING. + Since we aren't really reading from a file, don't bother with linenumbers. + */ + +static unsigned long +readstring (ebuf) + struct ebuffer *ebuf; +{ + char *p; + + /* If there is nothing left in this buffer, return 0. */ + if (ebuf->bufnext > ebuf->bufstart + ebuf->size) + return -1; + + /* Set up a new starting point for the buffer, and find the end of the + next logical line (taking into account backslash/newline pairs). */ + + p = ebuf->buffer = ebuf->bufnext; + + while (1) + { + int backslash = 0; + + /* Find the next newline. Keep track of backslashes as we look. */ + for (; *p != '\n' && *p != '\0'; ++p) + if (*p == '\\') + backslash = !backslash; + + /* If we got to the end of the string or a newline with no backslash, + we're done. */ + if (*p == '\0' || !backslash) + break; + } + + /* Overwrite the newline char. */ + *p = '\0'; + ebuf->bufnext = p+1; + + return 0; +} + +static long +readline (ebuf) + struct ebuffer *ebuf; +{ + char *p; + char *end; + char *start; + long nlines = 0; + + /* The behaviors between string and stream buffers are different enough to + warrant different functions. Do the Right Thing. */ + + if (!ebuf->fp) + return readstring (ebuf); + + /* When reading from a file, we always start over at the beginning of the + buffer for each new line. */ + + p = start = ebuf->bufstart; + end = p + ebuf->size; + *p = '\0'; + + while (fgets (p, end - p, ebuf->fp) != 0) + { + char *p2; + unsigned long len; + int backslash; + + len = strlen (p); + if (len == 0) + { + /* This only happens when the first thing on the line is a '\0'. + It is a pretty hopeless case, but (wonder of wonders) Athena + lossage strikes again! (xmkmf puts NULs in its makefiles.) + There is nothing really to be done; we synthesize a newline so + the following line doesn't appear to be part of this line. */ + error (&ebuf->floc, + _("warning: NUL character seen; rest of line ignored")); + p[0] = '\n'; + len = 1; + } + + /* Jump past the text we just read. */ + p += len; + + /* If the last char isn't a newline, the whole line didn't fit into the + buffer. Get some more buffer and try again. */ + if (p[-1] != '\n') + goto more_buffer; + + /* We got a newline, so add one to the count of lines. */ + ++nlines; + +#if !defined(WINDOWS32) && !defined(__MSDOS__) + /* Check to see if the line was really ended with CRLF; if so ignore + the CR. */ + if ((p - start) > 1 && p[-2] == '\r') + { + --p; + p[-1] = '\n'; + } +#endif + + backslash = 0; + for (p2 = p - 2; p2 >= start; --p2) + { + if (*p2 != '\\') + break; + backslash = !backslash; + } + + if (!backslash) + { + p[-1] = '\0'; + break; + } + + /* It was a backslash/newline combo. If we have more space, read + another line. */ + if (end - p >= 80) + continue; + + /* We need more space at the end of our buffer, so realloc it. + Make sure to preserve the current offset of p. */ + more_buffer: + { + unsigned long off = p - start; + ebuf->size *= 2; + start = ebuf->buffer = ebuf->bufstart = (char *) xrealloc (start, + ebuf->size); + p = start + off; + end = start + ebuf->size; + *p = '\0'; + } + } + + if (ferror (ebuf->fp)) + pfatal_with_name (ebuf->floc.filenm); + + /* If we found some lines, return how many. + If we didn't, but we did find _something_, that indicates we read the last + line of a file with no final newline; return 1. + If we read nothing, we're at EOF; return -1. */ + + return nlines ? nlines : p == ebuf->bufstart ? -1 : 1; +} + +/* Parse the next "makefile word" from the input buffer, and return info + about it. + + A "makefile word" is one of: + + w_bogus Should never happen + w_eol End of input + w_static A static word; cannot be expanded + w_variable A word containing one or more variables/functions + w_colon A colon + w_dcolon A double-colon + w_semicolon A semicolon + w_varassign A variable assignment operator (=, :=, +=, or ?=) + + Note that this function is only used when reading certain parts of the + makefile. Don't use it where special rules hold sway (RHS of a variable, + in a command list, etc.) */ + +static enum make_word_type +get_next_mword (buffer, delim, startp, length) + char *buffer; + char *delim; + char **startp; + unsigned int *length; +{ + enum make_word_type wtype = w_bogus; + char *p = buffer, *beg; + char c; + + /* Skip any leading whitespace. */ + while (isblank ((unsigned char)*p)) + ++p; + + beg = p; + c = *(p++); + switch (c) + { + case '\0': + wtype = w_eol; + break; + + case ';': + wtype = w_semicolon; + break; + + case '=': + wtype = w_varassign; + break; + + case ':': + wtype = w_colon; + switch (*p) + { + case ':': + ++p; + wtype = w_dcolon; + break; + + case '=': + ++p; + wtype = w_varassign; + break; + } + break; + + case '+': + case '?': + if (*p == '=') + { + ++p; + wtype = w_varassign; + break; + } + + default: + if (delim && strchr (delim, c)) + wtype = w_static; + break; + } + + /* Did we find something? If so, return now. */ + if (wtype != w_bogus) + goto done; + + /* This is some non-operator word. A word consists of the longest + string of characters that doesn't contain whitespace, one of [:=#], + or [?+]=, or one of the chars in the DELIM string. */ + + /* We start out assuming a static word; if we see a variable we'll + adjust our assumptions then. */ + wtype = w_static; + + /* We already found the first value of "c", above. */ + while (1) + { + char closeparen; + int count; + + switch (c) + { + case '\0': + case ' ': + case '\t': + case '=': + goto done_word; + + case ':': +#ifdef HAVE_DOS_PATHS + /* A word CAN include a colon in its drive spec. The drive + spec is allowed either at the beginning of a word, or as part + of the archive member name, like in "libfoo.a(d:/foo/bar.o)". */ + if (!(p - beg >= 2 + && (*p == '/' || *p == '\\') && isalpha ((unsigned char)p[-2]) + && (p - beg == 2 || p[-3] == '('))) +#endif + goto done_word; + + case '$': + c = *(p++); + if (c == '$') + break; + + /* This is a variable reference, so note that it's expandable. + Then read it to the matching close paren. */ + wtype = w_variable; + + if (c == '(') + closeparen = ')'; + else if (c == '{') + closeparen = '}'; + else + /* This is a single-letter variable reference. */ + break; + + for (count=0; *p != '\0'; ++p) + { + if (*p == c) + ++count; + else if (*p == closeparen && --count < 0) + { + ++p; + break; + } + } + break; + + case '?': + case '+': + if (*p == '=') + goto done_word; + break; + + case '\\': + switch (*p) + { + case ':': + case ';': + case '=': + case '\\': + ++p; + break; + } + break; + + default: + if (delim && strchr (delim, c)) + goto done_word; + break; + } + + c = *(p++); + } + done_word: + --p; + + done: + if (startp) + *startp = beg; + if (length) + *length = p - beg; + return wtype; +} + +/* Construct the list of include directories + from the arguments and the default list. */ + +void +construct_include_path (arg_dirs) + char **arg_dirs; +{ + register unsigned int i; +#ifdef VAXC /* just don't ask ... */ + stat_t stbuf; +#else + struct stat stbuf; +#endif + /* Table to hold the dirs. */ + + register unsigned int defsize = (sizeof (default_include_directories) + / sizeof (default_include_directories[0])); + register unsigned int max = 5; + register char **dirs = (char **) xmalloc ((5 + defsize) * sizeof (char *)); + register unsigned int idx = 0; + +#ifdef __MSDOS__ + defsize++; +#endif + + /* First consider any dirs specified with -I switches. + Ignore dirs that don't exist. */ + + if (arg_dirs != 0) + while (*arg_dirs != 0) + { + char *dir = *arg_dirs++; + + if (dir[0] == '~') + { + char *expanded = tilde_expand (dir); + if (expanded != 0) + dir = expanded; + } + + if (stat (dir, &stbuf) == 0 && S_ISDIR (stbuf.st_mode)) + { + if (idx == max - 1) + { + max += 5; + dirs = (char **) + xrealloc ((char *) dirs, (max + defsize) * sizeof (char *)); + } + dirs[idx++] = dir; + } + else if (dir != arg_dirs[-1]) + free (dir); + } + + /* Now add at the end the standard default dirs. */ + +#ifdef __MSDOS__ + { + /* The environment variable $DJDIR holds the root of the + DJGPP directory tree; add ${DJDIR}/include. */ + struct variable *djdir = lookup_variable ("DJDIR", 5); + + if (djdir) + { + char *defdir = (char *) xmalloc (strlen (djdir->value) + 8 + 1); + + strcat (strcpy (defdir, djdir->value), "/include"); + dirs[idx++] = defdir; + } + } +#endif + + for (i = 0; default_include_directories[i] != 0; ++i) + if (stat (default_include_directories[i], &stbuf) == 0 + && S_ISDIR (stbuf.st_mode)) + dirs[idx++] = default_include_directories[i]; + + dirs[idx] = 0; + + /* Now compute the maximum length of any name in it. */ + + max_incl_len = 0; + for (i = 0; i < idx; ++i) + { + unsigned int len = strlen (dirs[i]); + /* If dir name is written with a trailing slash, discard it. */ + if (dirs[i][len - 1] == '/') + /* We can't just clobber a null in because it may have come from + a literal string and literal strings may not be writable. */ + dirs[i] = savestring (dirs[i], len - 1); + if (len > max_incl_len) + max_incl_len = len; + } + + include_directories = dirs; +} + +/* Expand ~ or ~USER at the beginning of NAME. + Return a newly malloc'd string or 0. */ + +char * +tilde_expand (name) + char *name; +{ +#ifndef VMS + if (name[1] == '/' || name[1] == '\0') + { + extern char *getenv (); + char *home_dir; + int is_variable; + + { + /* Turn off --warn-undefined-variables while we expand HOME. */ + int save = warn_undefined_variables_flag; + warn_undefined_variables_flag = 0; + + home_dir = allocated_variable_expand ("$(HOME)"); + + warn_undefined_variables_flag = save; + } + + is_variable = home_dir[0] != '\0'; + if (!is_variable) + { + free (home_dir); + home_dir = getenv ("HOME"); + } +#if !defined(_AMIGA) && !defined(WINDOWS32) + if (home_dir == 0 || home_dir[0] == '\0') + { + extern char *getlogin (); + char *logname = getlogin (); + home_dir = 0; + if (logname != 0) + { + struct passwd *p = getpwnam (logname); + if (p != 0) + home_dir = p->pw_dir; + } + } +#endif /* !AMIGA && !WINDOWS32 */ + if (home_dir != 0) + { + char *new = concat (home_dir, "", name + 1); + if (is_variable) + free (home_dir); + return new; + } + } +#if !defined(_AMIGA) && !defined(WINDOWS32) + else + { + struct passwd *pwent; + char *userend = strchr (name + 1, '/'); + if (userend != 0) + *userend = '\0'; + pwent = getpwnam (name + 1); + if (pwent != 0) + { + if (userend == 0) + return xstrdup (pwent->pw_dir); + else + return concat (pwent->pw_dir, "/", userend + 1); + } + else if (userend != 0) + *userend = '/'; + } +#endif /* !AMIGA && !WINDOWS32 */ +#endif /* !VMS */ + return 0; +} + +/* Given a chain of struct nameseq's describing a sequence of filenames, + in reverse of the intended order, return a new chain describing the + result of globbing the filenames. The new chain is in forward order. + The links of the old chain are freed or used in the new chain. + Likewise for the names in the old chain. + + SIZE is how big to construct chain elements. + This is useful if we want them actually to be other structures + that have room for additional info. */ + +struct nameseq * +multi_glob (chain, size) + struct nameseq *chain; + unsigned int size; +{ + extern void dir_setup_glob (); + register struct nameseq *new = 0; + register struct nameseq *old; + struct nameseq *nexto; + glob_t gl; + + dir_setup_glob (&gl); + + for (old = chain; old != 0; old = nexto) + { +#ifndef NO_ARCHIVES + char *memname; +#endif + + nexto = old->next; + + if (old->name[0] == '~') + { + char *newname = tilde_expand (old->name); + if (newname != 0) + { + free (old->name); + old->name = newname; + } + } + +#ifndef NO_ARCHIVES + if (ar_name (old->name)) + { + /* OLD->name is an archive member reference. + Replace it with the archive file name, + and save the member name in MEMNAME. + We will glob on the archive name and then + reattach MEMNAME later. */ + char *arname; + ar_parse_name (old->name, &arname, &memname); + free (old->name); + old->name = arname; + } + else + memname = 0; +#endif /* !NO_ARCHIVES */ + + switch (glob (old->name, GLOB_NOCHECK|GLOB_ALTDIRFUNC, NULL, &gl)) + { + case 0: /* Success. */ + { + register int i = gl.gl_pathc; + while (i-- > 0) + { +#ifndef NO_ARCHIVES + if (memname != 0) + { + /* Try to glob on MEMNAME within the archive. */ + struct nameseq *found + = ar_glob (gl.gl_pathv[i], memname, size); + if (found == 0) + { + /* No matches. Use MEMNAME as-is. */ + unsigned int alen = strlen (gl.gl_pathv[i]); + unsigned int mlen = strlen (memname); + struct nameseq *elt + = (struct nameseq *) xmalloc (size); + if (size > sizeof (struct nameseq)) + bzero (((char *) elt) + sizeof (struct nameseq), + size - sizeof (struct nameseq)); + elt->name = (char *) xmalloc (alen + 1 + mlen + 2); + bcopy (gl.gl_pathv[i], elt->name, alen); + elt->name[alen] = '('; + bcopy (memname, &elt->name[alen + 1], mlen); + elt->name[alen + 1 + mlen] = ')'; + elt->name[alen + 1 + mlen + 1] = '\0'; + elt->next = new; + new = elt; + } + else + { + /* Find the end of the FOUND chain. */ + struct nameseq *f = found; + while (f->next != 0) + f = f->next; + + /* Attach the chain being built to the end of the FOUND + chain, and make FOUND the new NEW chain. */ + f->next = new; + new = found; + } + + free (memname); + } + else +#endif /* !NO_ARCHIVES */ + { + struct nameseq *elt = (struct nameseq *) xmalloc (size); + if (size > sizeof (struct nameseq)) + bzero (((char *) elt) + sizeof (struct nameseq), + size - sizeof (struct nameseq)); + elt->name = xstrdup (gl.gl_pathv[i]); + elt->next = new; + new = elt; + } + } + globfree (&gl); + free (old->name); + free ((char *)old); + break; + } + + case GLOB_NOSPACE: + fatal (NILF, _("virtual memory exhausted")); + break; + + default: + old->next = new; + new = old; + break; + } + } + + return new; +} diff --git a/src/mkutil/make-3.80/readme.vms b/src/mkutil/make-3.80/readme.vms new file mode 100644 index 00000000..d4a9667c --- /dev/null +++ b/src/mkutil/make-3.80/readme.vms @@ -0,0 +1,183 @@ +This is the VMS port of GNU Make done by Hartmut.Becker@compaq.com. + +It is based on the specific version 3.77k and on 3.78.1. 3.77k was done +by Klaus Kämpf , the code was based on the VMS port of +GNU Make 3.60 by Mike Moretti. + +It was ported on OpenVMS/Alpha V7.1, DECC V5.7-006. It was re-build and +tested on OpenVMS/Alpha V7.2, OpenVMS/VAX 7.1 and 5.5-2. Different +versions of DECC were used. VAXC was tried: it fails; but it doesn't +seem worth to get it working. There are still some PTRMISMATCH warnings +during the compile. Although perl is working on VMS the test scripts +don't work. The function $shell is still missing. + +There is a known bug in some of the VMS CRTLs. It is in the shipped +versions of VMS V7.2 and V7.2-1 and in the currently (October 1999) +available ECOs for VMS V7.1 and newer versions. It is fixed in versions +shipped with newer VMS versions and all ECO kits after October 1999. It +only shows up during the daylight saving time period (DST): stat() +returns a modification time 1 hour ahead. This results in GNU make +warning messages. For a just created source you will see: + + $ gmake x.exe + gmake.exe;1: *** Warning: File `x.c' has modification time in the future (940582863 > 940579269) + cc /obj=x.obj x.c + link x.obj /exe=x.exe + gmake.exe;1: *** Warning: Clock skew detected. Your build may be incomplete. + + +New in 3.78.1: + +Fix a problem with automatically remaking makefiles. GNU make uses an +execve to restart itself after a successful remake of the makefile. On +UNIX systems execve replaces the running program with a new one and +resets all signal handling to the default. On VMS execve creates a child +process, signal and exit handlers of the parent are still active, and, +unfortunately, corrupt the exit code from the child. Fix in job.c: +ignore SIGCHLD. + +Added some switches to reflect latest features of DECC. Modifications in +makefile.vms. + +Set some definitions to reflect latest features of DECC. Modifications in +config.h-vms (which is copied to config.h). + +Added extern strcmpi declaration to avoid 'implicitly declared' messages. +Modification in make.h. + +Default rule for C++, conditionals for gcc (GCC_IS_NATIVE) or DEC/Digital/ +Compaq c/c++ compilers. Modifications in default.c. + +Usage of opendir() and friends, suppress file version. Modifications in dir.c. + +Added VMS specific code to handle ctrl+c and ctrl+y to abort make. +Modifications in job.c. + +Added support to have case sensitive targets and dependencies but to +still use case blind file names. This is especially useful for Java +makefiles on VMS: + + .SUFFIXES : + .SUFFIXES : .class .java + .java.class : + javac "$< + HelloWorld.class : HelloWorld.java + +A new macro WANT_CASE_SENSITIVE_TARGETS in config.h-vms was introduced. +It needs to be enabled to get this feature; default is disabled. The +macro HAVE_CASE_INSENSITIVE_FS must not be touched: it is still enabled. +Modifications in file.c and config.h-vms. + +Bootstrap make to start building make is still makefile.com, but make +needs to be re-made with a make to make a correct version: ignore all +possible warnings, delete all objects, rename make.exe to a different +name and run it. + +Made some minor modifications to the bootstrap build makefile.com. + +This is the VMS port of GNU Make. + +It is based on the VMS port of GNU Make 3.60 by Mike Moretti. + +This port was done by Klaus Kämpf + +There is first-level support available from proGIS Software, Germany. +Visit their web-site at http://www.progis.de to get information +about other vms software and forthcoming updates to gnu make. + +New for 3.77: + +/bin/sh style I/O redirection is supported. You can now write lines like + mcr sys$disk:[]program.exe < input.txt > output.txt &> error.txt + +Makefile variables are looked up in the current environment. You can set +symbols or logicals in DCL and evaluate them in the Makefile via +$(). Variables defined in the Makefile +override VMS symbols/logicals ! + +Functions for file names are working now. See the GNU Make manual for +$(dir ...) and $(wildcard ...). Unix-style and VMS-style names are +supported as arguments. + +The default rules are set up for GNU C. Building an executable from a +single source file is as easy as 'make file.exe'. + +The variable $(ARCH) is predefined as ALPHA or VAX resp. Makefiles for +different VMS systems can now be written by checking $(ARCH) as in + ifeq ($(ARCH),ALPHA) + $(ECHO) "On the Alpha" + else + $(ECHO) "On the VAX" + endif + +Command lines of excessive length are correctly broken and written to a +batch file in sys$scratch for later execution. There's no limit to the +lengths of commands (and no need for .opt files :-) any more. + +Empty commands are handled correctly and don't end in a new DCL process. + + +New for 3.76: + +John W. Eaton has updated the VMS port to support libraries and VPATH. + + +To build Make, simply type @makefile. This should compile all the +necessary files and link Make. There is also a file called +makefile.vms. If you already have GNU Make built you can just use +Make with this makefile to rebuild. + +Here are some notes about GNU Make for VMS: + +The cd command is supported if it's called as $(CD). This invokes +the 'builtin_cd' command which changes the directory. +Calling 'set def' doesn't do the trick, since a sub-shell is +spawned for this command, the directory is changed *in this sub-shell* +and the sub-shell ends. + +Libraries are not supported. They were in GNU Make 3.60 but somehow I +didn't care porting the code. If there is enough interest, I'll do it at +some later time. + +The variable $^ separates files with commas instead of spaces (It's the +natural thing to do for VMS). + +See defaults.c for VMS default suffixes and my definitions for default +rules and variables. + +The shell function is not implemented yet. + +Load average routines haven't been implemented for VMS yet. + +The default include directory for including other makefiles is +SYS$SYSROOT:[SYSLIB] (I don't remember why I didn't just use +SYS$LIBRARY: instead; maybe it wouldn't work that way). + +The default makefiles make looks for are: makefile.vms, gnumakefile, +makefile., and gnumakefile. . + +The stat() function and handling of time stamps in VMS is broken, so I +replaced it with a hack in vmsfunctions.c. I will provide a full rewrite +somewhere in the future. Be warned, the time resolution inside make is +less than what vms provides. This might be a problem on the faster Alphas. + +You can use a : in a filename only if you preceed it with a backslash ('\'). +E.g.- hobbes\:[bogas.files] + +Make ignores success, informational, or warning errors (-S-, -I-, or +-W-). But it will stop on -E- and -F- errors. (unless you do something +to override this in your makefile, or whatever). + +Remote stuff isn't implemented yet. + +Multiple line DCL commands, such as "if" statements, must be put inside +command files. You can run a command file by using \@. + + +VMS changes made for 3.74.3 + +Lots of default settings are adapted for VMS. See default.c. + +Long command lines are now converted to command files. + +Comma (',') as a separator is now allowed. See makefile.vms for an example. diff --git a/src/mkutil/make-3.80/remake.c b/src/mkutil/make-3.80/remake.c new file mode 100644 index 00000000..72c4d78a --- /dev/null +++ b/src/mkutil/make-3.80/remake.c @@ -0,0 +1,1420 @@ +/* Basic dependency engine for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "dep.h" +#include "variable.h" +#include "debug.h" + +#include + +#ifdef HAVE_FCNTL_H +#include +#else +#include +#endif + +#ifdef VMS +#include +#endif +#ifdef WINDOWS32 +#include +#endif + +extern int try_implicit_rule PARAMS ((struct file *file, unsigned int depth)); + + +/* The test for circular dependencies is based on the 'updating' bit in + `struct file'. However, double colon targets have seperate `struct + file's; make sure we always use the base of the double colon chain. */ + +#define start_updating(_f) (((_f)->double_colon ? (_f)->double_colon : (_f))\ + ->updating = 1) +#define finish_updating(_f) (((_f)->double_colon ? (_f)->double_colon : (_f))\ + ->updating = 0) +#define is_updating(_f) (((_f)->double_colon ? (_f)->double_colon : (_f))\ + ->updating) + + +/* Incremented when a command is started (under -n, when one would be). */ +unsigned int commands_started = 0; + +/* Current value for pruning the scan of the goal chain (toggle 0/1). */ +static unsigned int considered; + +static int update_file PARAMS ((struct file *file, unsigned int depth)); +static int update_file_1 PARAMS ((struct file *file, unsigned int depth)); +static int check_dep PARAMS ((struct file *file, unsigned int depth, FILE_TIMESTAMP this_mtime, int *must_make_ptr)); +static int touch_file PARAMS ((struct file *file)); +static void remake_file PARAMS ((struct file *file)); +static FILE_TIMESTAMP name_mtime PARAMS ((char *name)); +static int library_search PARAMS ((char **lib, FILE_TIMESTAMP *mtime_ptr)); + + +/* Remake all the goals in the `struct dep' chain GOALS. Return -1 if nothing + was done, 0 if all goals were updated successfully, or 1 if a goal failed. + If MAKEFILES is nonzero, these goals are makefiles, so -t, -q, and -n should + be disabled for them unless they were also command-line targets, and we + should only make one goal at a time and return as soon as one goal whose + `changed' member is nonzero is successfully made. */ + +int +update_goal_chain (goals, makefiles) + register struct dep *goals; + int makefiles; +{ + int t = touch_flag, q = question_flag, n = just_print_flag; + unsigned int j = job_slots; + int status = -1; + +#define MTIME(file) (makefiles ? file_mtime_no_search (file) \ + : file_mtime (file)) + + /* Duplicate the chain so we can remove things from it. */ + + goals = copy_dep_chain (goals); + + { + /* Clear the `changed' flag of each goal in the chain. + We will use the flag below to notice when any commands + have actually been run for a target. When no commands + have been run, we give an "up to date" diagnostic. */ + + struct dep *g; + for (g = goals; g != 0; g = g->next) + g->changed = 0; + } + + /* All files start with the considered bit 0, so the global value is 1. */ + considered = 1; + + /* Update all the goals until they are all finished. */ + + while (goals != 0) + { + register struct dep *g, *lastgoal; + + /* Start jobs that are waiting for the load to go down. */ + + start_waiting_jobs (); + + /* Wait for a child to die. */ + + reap_children (1, 0); + + lastgoal = 0; + g = goals; + while (g != 0) + { + /* Iterate over all double-colon entries for this file. */ + struct file *file; + int stop = 0, any_not_updated = 0; + + for (file = g->file->double_colon ? g->file->double_colon : g->file; + file != NULL; + file = file->prev) + { + unsigned int ocommands_started; + int x; + check_renamed (file); + if (makefiles) + { + if (file->cmd_target) + { + touch_flag = t; + question_flag = q; + just_print_flag = n; + } + else + touch_flag = question_flag = just_print_flag = 0; + } + + /* Save the old value of `commands_started' so we can compare + later. It will be incremented when any commands are + actually run. */ + ocommands_started = commands_started; + + x = update_file (file, makefiles ? 1 : 0); + check_renamed (file); + + /* Set the goal's `changed' flag if any commands were started + by calling update_file above. We check this flag below to + decide when to give an "up to date" diagnostic. */ + g->changed += commands_started - ocommands_started; + + /* If we updated a file and STATUS was not already 1, set it to + 1 if updating failed, or to 0 if updating succeeded. Leave + STATUS as it is if no updating was done. */ + + stop = 0; + if ((x != 0 || file->updated) && status < 1) + { + if (file->update_status != 0) + { + /* Updating failed, or -q triggered. The STATUS value + tells our caller which. */ + status = file->update_status; + /* If -q just triggered, stop immediately. It doesn't + matter how much more we run, since we already know + the answer to return. */ + stop = (!keep_going_flag && !question_flag + && !makefiles); + } + else + { + FILE_TIMESTAMP mtime = MTIME (file); + check_renamed (file); + + if (file->updated && g->changed && + mtime != file->mtime_before_update) + { + /* Updating was done. If this is a makefile and + just_print_flag or question_flag is set (meaning + -n or -q was given and this file was specified + as a command-line target), don't change STATUS. + If STATUS is changed, we will get re-exec'd, and + enter an infinite loop. */ + if (!makefiles + || (!just_print_flag && !question_flag)) + status = 0; + if (makefiles && file->dontcare) + /* This is a default makefile; stop remaking. */ + stop = 1; + } + } + } + + /* Keep track if any double-colon entry is not finished. + When they are all finished, the goal is finished. */ + any_not_updated |= !file->updated; + + if (stop) + break; + } + + /* Reset FILE since it is null at the end of the loop. */ + file = g->file; + + if (stop || !any_not_updated) + { + /* If we have found nothing whatever to do for the goal, + print a message saying nothing needs doing. */ + + if (!makefiles + /* If the update_status is zero, we updated successfully + or not at all. G->changed will have been set above if + any commands were actually started for this goal. */ + && file->update_status == 0 && !g->changed + /* Never give a message under -s or -q. */ + && !silent_flag && !question_flag) + message (1, ((file->phony || file->cmds == 0) + ? _("Nothing to be done for `%s'.") + : _("`%s' is up to date.")), + file->name); + + /* This goal is finished. Remove it from the chain. */ + if (lastgoal == 0) + goals = g->next; + else + lastgoal->next = g->next; + + /* Free the storage. */ + free ((char *) g); + + g = lastgoal == 0 ? goals : lastgoal->next; + + if (stop) + break; + } + else + { + lastgoal = g; + g = g->next; + } + } + + /* If we reached the end of the dependency graph toggle the considered + flag for the next pass. */ + if (g == 0) + considered = !considered; + } + + if (makefiles) + { + touch_flag = t; + question_flag = q; + just_print_flag = n; + job_slots = j; + } + return status; +} + +/* If FILE is not up to date, execute the commands for it. + Return 0 if successful, 1 if unsuccessful; + but with some flag settings, just call `exit' if unsuccessful. + + DEPTH is the depth in recursions of this function. + We increment it during the consideration of our dependencies, + then decrement it again after finding out whether this file + is out of date. + + If there are multiple double-colon entries for FILE, + each is considered in turn. */ + +static int +update_file (file, depth) + struct file *file; + unsigned int depth; +{ + register int status = 0; + register struct file *f; + + f = file->double_colon ? file->double_colon : file; + + /* Prune the dependency graph: if we've already been here on _this_ + pass through the dependency graph, we don't have to go any further. + We won't reap_children until we start the next pass, so no state + change is possible below here until then. */ + if (f->considered == considered) + { + DBF (DB_VERBOSE, _("Pruning file `%s'.\n")); + return f->command_state == cs_finished ? f->update_status : 0; + } + + /* This loop runs until we start commands for a double colon rule, or until + the chain is exhausted. */ + for (; f != 0; f = f->prev) + { + f->considered = considered; + + status |= update_file_1 (f, depth); + check_renamed (f); + + if (status != 0 && !keep_going_flag) + break; + + if (f->command_state == cs_running + || f->command_state == cs_deps_running) + { + /* Don't run the other :: rules for this + file until this rule is finished. */ + status = 0; + break; + } + } + + /* Process the remaining rules in the double colon chain so they're marked + considered. Start their prerequisites, too. */ + for (; f != 0 ; f = f->prev) + { + struct dep *d; + + f->considered = considered; + + for (d = f->deps; d != 0; d = d->next) + status |= update_file (d->file, depth + 1); + } + + return status; +} + +/* Consider a single `struct file' and update it as appropriate. */ + +static int +update_file_1 (file, depth) + struct file *file; + unsigned int depth; +{ + register FILE_TIMESTAMP this_mtime; + int noexist, must_make, deps_changed; + int dep_status = 0; + register struct dep *d, *lastd; + int running = 0; + + DBF (DB_VERBOSE, _("Considering target file `%s'.\n")); + + if (file->updated) + { + if (file->update_status > 0) + { + DBF (DB_VERBOSE, + _("Recently tried and failed to update file `%s'.\n")); + return file->update_status; + } + + DBF (DB_VERBOSE, _("File `%s' was considered already.\n")); + return 0; + } + + switch (file->command_state) + { + case cs_not_started: + case cs_deps_running: + break; + case cs_running: + DBF (DB_VERBOSE, _("Still updating file `%s'.\n")); + return 0; + case cs_finished: + DBF (DB_VERBOSE, _("Finished updating file `%s'.\n")); + return file->update_status; + default: + abort (); + } + + ++depth; + + /* Notice recursive update of the same file. */ + start_updating (file); + + /* Looking at the file's modtime beforehand allows the possibility + that its name may be changed by a VPATH search, and thus it may + not need an implicit rule. If this were not done, the file + might get implicit commands that apply to its initial name, only + to have that name replaced with another found by VPATH search. */ + + this_mtime = file_mtime (file); + check_renamed (file); + noexist = this_mtime == NONEXISTENT_MTIME; + if (noexist) + DBF (DB_BASIC, _("File `%s' does not exist.\n")); + else if (ORDINARY_MTIME_MIN <= this_mtime && this_mtime <= ORDINARY_MTIME_MAX + && file->low_resolution_time) + { + /* Avoid spurious rebuilds due to low resolution time stamps. */ + int ns = FILE_TIMESTAMP_NS (this_mtime); + if (ns != 0) + error (NILF, _("*** Warning: .LOW_RESOLUTION_TIME file `%s' has a high resolution time stamp"), + file->name); + this_mtime += FILE_TIMESTAMPS_PER_S - 1 - ns; + } + + must_make = noexist; + + /* If file was specified as a target with no commands, + come up with some default commands. */ + + if (!file->phony && file->cmds == 0 && !file->tried_implicit) + { + if (try_implicit_rule (file, depth)) + DBF (DB_IMPLICIT, _("Found an implicit rule for `%s'.\n")); + else + DBF (DB_IMPLICIT, _("No implicit rule found for `%s'.\n")); + file->tried_implicit = 1; + } + if (file->cmds == 0 && !file->is_target + && default_file != 0 && default_file->cmds != 0) + { + DBF (DB_IMPLICIT, _("Using default commands for `%s'.\n")); + file->cmds = default_file->cmds; + } + + /* Update all non-intermediate files we depend on, if necessary, + and see whether any of them is more recent than this file. */ + + lastd = 0; + d = file->deps; + while (d != 0) + { + FILE_TIMESTAMP mtime; + int maybe_make; + + check_renamed (d->file); + + mtime = file_mtime (d->file); + check_renamed (d->file); + + if (is_updating (d->file)) + { + error (NILF, _("Circular %s <- %s dependency dropped."), + file->name, d->file->name); + /* We cannot free D here because our the caller will still have + a reference to it when we were called recursively via + check_dep below. */ + if (lastd == 0) + file->deps = d->next; + else + lastd->next = d->next; + d = d->next; + continue; + } + + d->file->parent = file; + maybe_make = must_make; + dep_status |= check_dep (d->file, depth, this_mtime, &maybe_make); + if (! d->ignore_mtime) + must_make = maybe_make; + + check_renamed (d->file); + + { + register struct file *f = d->file; + if (f->double_colon) + f = f->double_colon; + do + { + running |= (f->command_state == cs_running + || f->command_state == cs_deps_running); + f = f->prev; + } + while (f != 0); + } + + if (dep_status != 0 && !keep_going_flag) + break; + + if (!running) + d->changed = file_mtime (d->file) != mtime; + + lastd = d; + d = d->next; + } + + /* Now we know whether this target needs updating. + If it does, update all the intermediate files we depend on. */ + + if (must_make || always_make_flag) + { + for (d = file->deps; d != 0; d = d->next) + if (d->file->intermediate) + { + FILE_TIMESTAMP mtime = file_mtime (d->file); + check_renamed (d->file); + d->file->parent = file; + dep_status |= update_file (d->file, depth); + check_renamed (d->file); + + { + register struct file *f = d->file; + if (f->double_colon) + f = f->double_colon; + do + { + running |= (f->command_state == cs_running + || f->command_state == cs_deps_running); + f = f->prev; + } + while (f != 0); + } + + if (dep_status != 0 && !keep_going_flag) + break; + + if (!running) + d->changed = ((file->phony && file->cmds != 0) + || file_mtime (d->file) != mtime); + } + } + + finish_updating (file); + + DBF (DB_VERBOSE, _("Finished prerequisites of target file `%s'.\n")); + + if (running) + { + set_command_state (file, cs_deps_running); + --depth; + DBF (DB_VERBOSE, _("The prerequisites of `%s' are being made.\n")); + return 0; + } + + /* If any dependency failed, give up now. */ + + if (dep_status != 0) + { + file->update_status = dep_status; + notice_finished_file (file); + + --depth; + + DBF (DB_VERBOSE, _("Giving up on target file `%s'.\n")); + + if (depth == 0 && keep_going_flag + && !just_print_flag && !question_flag) + error (NILF, + _("Target `%s' not remade because of errors."), file->name); + + return dep_status; + } + + if (file->command_state == cs_deps_running) + /* The commands for some deps were running on the last iteration, but + they have finished now. Reset the command_state to not_started to + simplify later bookkeeping. It is important that we do this only + when the prior state was cs_deps_running, because that prior state + was definitely propagated to FILE's also_make's by set_command_state + (called above), but in another state an also_make may have + independently changed to finished state, and we would confuse that + file's bookkeeping (updated, but not_started is bogus state). */ + set_command_state (file, cs_not_started); + + /* Now record which prerequisites are more + recent than this file, so we can define $?. */ + + deps_changed = 0; + for (d = file->deps; d != 0; d = d->next) + { + FILE_TIMESTAMP d_mtime = file_mtime (d->file); + check_renamed (d->file); + + if (! d->ignore_mtime) + { +#if 1 + /* %%% In version 4, remove this code completely to + implement not remaking deps if their deps are newer + than their parents. */ + if (d_mtime == NONEXISTENT_MTIME && !d->file->intermediate) + /* We must remake if this dep does not + exist and is not intermediate. */ + must_make = 1; +#endif + + /* Set DEPS_CHANGED if this dep actually changed. */ + deps_changed |= d->changed; + } + + /* Set D->changed if either this dep actually changed, + or its dependent, FILE, is older or does not exist. */ + d->changed |= noexist || d_mtime > this_mtime; + + if (!noexist && ISDB (DB_BASIC|DB_VERBOSE)) + { + const char *fmt = 0; + + if (d->ignore_mtime) + { + if (ISDB (DB_VERBOSE)) + fmt = _("Prerequisite `%s' is order-only for target `%s'.\n"); + } + else if (d_mtime == NONEXISTENT_MTIME) + { + if (ISDB (DB_BASIC)) + fmt = _("Prerequisite `%s' of target `%s' does not exist.\n"); + } + else if (d->changed) + { + if (ISDB (DB_BASIC)) + fmt = _("Prerequisite `%s' is newer than target `%s'.\n"); + } + else if (ISDB (DB_VERBOSE)) + fmt = _("Prerequisite `%s' is older than target `%s'.\n"); + + if (fmt) + { + print_spaces (depth); + printf (fmt, dep_name (d), file->name); + fflush (stdout); + } + } + } + + /* Here depth returns to the value it had when we were called. */ + depth--; + + if (file->double_colon && file->deps == 0) + { + must_make = 1; + DBF (DB_BASIC, + _("Target `%s' is double-colon and has no prerequisites.\n")); + } + else if (!noexist && file->is_target && !deps_changed && file->cmds == 0 + && !always_make_flag) + { + must_make = 0; + DBF (DB_VERBOSE, + _("No commands for `%s' and no prerequisites actually changed.\n")); + } + else if (!must_make && file->cmds != 0 && always_make_flag) + { + must_make = 1; + DBF (DB_VERBOSE, _("Making `%s' due to always-make flag.\n")); + } + + if (!must_make) + { + if (ISDB (DB_VERBOSE)) + { + print_spaces (depth); + printf (_("No need to remake target `%s'"), file->name); + if (!streq (file->name, file->hname)) + printf (_("; using VPATH name `%s'"), file->hname); + puts ("."); + fflush (stdout); + } + + notice_finished_file (file); + + /* Since we don't need to remake the file, convert it to use the + VPATH filename if we found one. hfile will be either the + local name if no VPATH or the VPATH name if one was found. */ + + while (file) + { + file->name = file->hname; + file = file->prev; + } + + return 0; + } + + DBF (DB_BASIC, _("Must remake target `%s'.\n")); + + /* It needs to be remade. If it's VPATH and not reset via GPATH, toss the + VPATH. */ + if (!streq(file->name, file->hname)) + { + DB (DB_BASIC, (_(" Ignoring VPATH name `%s'.\n"), file->hname)); + file->ignore_vpath = 1; + } + + /* Now, take appropriate actions to remake the file. */ + remake_file (file); + + if (file->command_state != cs_finished) + { + DBF (DB_VERBOSE, _("Commands of `%s' are being run.\n")); + return 0; + } + + switch (file->update_status) + { + case 2: + DBF (DB_BASIC, _("Failed to remake target file `%s'.\n")); + break; + case 0: + DBF (DB_BASIC, _("Successfully remade target file `%s'.\n")); + break; + case 1: + DBF (DB_BASIC, _("Target file `%s' needs remade under -q.\n")); + break; + default: + assert (file->update_status >= 0 && file->update_status <= 2); + break; + } + + file->updated = 1; + return file->update_status; +} + +/* Set FILE's `updated' flag and re-check its mtime and the mtime's of all + files listed in its `also_make' member. Under -t, this function also + touches FILE. + + On return, FILE->update_status will no longer be -1 if it was. */ + +void +notice_finished_file (file) + register struct file *file; +{ + struct dep *d; + int ran = file->command_state == cs_running; + int touched = 0; + + file->command_state = cs_finished; + file->updated = 1; + + if (touch_flag + /* The update status will be: + -1 if this target was not remade; + 0 if 0 or more commands (+ or ${MAKE}) were run and won; + 1 if some commands were run and lost. + We touch the target if it has commands which either were not run + or won when they ran (i.e. status is 0). */ + && file->update_status == 0) + { + if (file->cmds != 0 && file->cmds->any_recurse) + { + /* If all the command lines were recursive, + we don't want to do the touching. */ + unsigned int i; + for (i = 0; i < file->cmds->ncommand_lines; ++i) + if (!(file->cmds->lines_flags[i] & COMMANDS_RECURSE)) + goto have_nonrecursing; + } + else + { + have_nonrecursing: + if (file->phony) + file->update_status = 0; + else + { + /* Should set file's modification date and do nothing else. */ + file->update_status = touch_file (file); + + /* Pretend we ran a real touch command, to suppress the + "`foo' is up to date" message. */ + commands_started++; + + /* Request for the timestamp to be updated (and distributed + to the double-colon entries). Simply setting ran=1 would + almost have done the trick, but messes up with the also_make + updating logic below. */ + touched = 1; + } + } + } + + if (file->mtime_before_update == UNKNOWN_MTIME) + file->mtime_before_update = file->last_mtime; + + if ((ran && !file->phony) || touched) + { + struct file *f; + int i = 0; + + /* If -n, -t, or -q and all the commands are recursive, we ran them so + really check the target's mtime again. Otherwise, assume the target + would have been updated. */ + + if (question_flag || just_print_flag || touch_flag) + { + for (i = file->cmds->ncommand_lines; i > 0; --i) + if (! (file->cmds->lines_flags[i-1] & COMMANDS_RECURSE)) + break; + } + + /* If there were no commands at all, it's always new. */ + + else if (file->is_target && file->cmds == 0) + i = 1; + + file->last_mtime = i == 0 ? UNKNOWN_MTIME : NEW_MTIME; + + /* Propagate the change of modification time to all the double-colon + entries for this file. */ + for (f = file->double_colon; f != 0; f = f->prev) + f->last_mtime = file->last_mtime; + } + + if (ran && file->update_status != -1) + /* We actually tried to update FILE, which has + updated its also_make's as well (if it worked). + If it didn't work, it wouldn't work again for them. + So mark them as updated with the same status. */ + for (d = file->also_make; d != 0; d = d->next) + { + d->file->command_state = cs_finished; + d->file->updated = 1; + d->file->update_status = file->update_status; + + if (ran && !d->file->phony) + /* Fetch the new modification time. + We do this instead of just invalidating the cached time + so that a vpath_search can happen. Otherwise, it would + never be done because the target is already updated. */ + (void) f_mtime (d->file, 0); + } + else if (file->update_status == -1) + /* Nothing was done for FILE, but it needed nothing done. + So mark it now as "succeeded". */ + file->update_status = 0; +} + +/* Check whether another file (whose mtime is THIS_MTIME) + needs updating on account of a dependency which is file FILE. + If it does, store 1 in *MUST_MAKE_PTR. + In the process, update any non-intermediate files + that FILE depends on (including FILE itself). + Return nonzero if any updating failed. */ + +static int +check_dep (file, depth, this_mtime, must_make_ptr) + struct file *file; + unsigned int depth; + FILE_TIMESTAMP this_mtime; + int *must_make_ptr; +{ + struct dep *d; + int dep_status = 0; + + ++depth; + start_updating (file); + + if (!file->intermediate) + /* If this is a non-intermediate file, update it and record + whether it is newer than THIS_MTIME. */ + { + FILE_TIMESTAMP mtime; + dep_status = update_file (file, depth); + check_renamed (file); + mtime = file_mtime (file); + check_renamed (file); + if (mtime == NONEXISTENT_MTIME || mtime > this_mtime) + *must_make_ptr = 1; + } + else + { + /* FILE is an intermediate file. */ + FILE_TIMESTAMP mtime; + + if (!file->phony && file->cmds == 0 && !file->tried_implicit) + { + if (try_implicit_rule (file, depth)) + DBF (DB_IMPLICIT, _("Found an implicit rule for `%s'.\n")); + else + DBF (DB_IMPLICIT, _("No implicit rule found for `%s'.\n")); + file->tried_implicit = 1; + } + if (file->cmds == 0 && !file->is_target + && default_file != 0 && default_file->cmds != 0) + { + DBF (DB_IMPLICIT, _("Using default commands for `%s'.\n")); + file->cmds = default_file->cmds; + } + + /* If the intermediate file actually exists + and is newer, then we should remake from it. */ + check_renamed (file); + mtime = file_mtime (file); + check_renamed (file); + if (mtime != NONEXISTENT_MTIME && mtime > this_mtime) + *must_make_ptr = 1; + /* Otherwise, update all non-intermediate files we depend on, + if necessary, and see whether any of them is more + recent than the file on whose behalf we are checking. */ + else + { + struct dep *lastd; + + lastd = 0; + d = file->deps; + while (d != 0) + { + int maybe_make; + + if (is_updating (d->file)) + { + error (NILF, _("Circular %s <- %s dependency dropped."), + file->name, d->file->name); + if (lastd == 0) + { + file->deps = d->next; + free ((char *) d); + d = file->deps; + } + else + { + lastd->next = d->next; + free ((char *) d); + d = lastd->next; + } + continue; + } + + d->file->parent = file; + maybe_make = *must_make_ptr; + dep_status |= check_dep (d->file, depth, this_mtime, + &maybe_make); + if (! d->ignore_mtime) + *must_make_ptr = maybe_make; + check_renamed (d->file); + if (dep_status != 0 && !keep_going_flag) + break; + + if (d->file->command_state == cs_running + || d->file->command_state == cs_deps_running) + /* Record that some of FILE's deps are still being made. + This tells the upper levels to wait on processing it until + the commands are finished. */ + set_command_state (file, cs_deps_running); + + lastd = d; + d = d->next; + } + } + } + + finish_updating (file); + return dep_status; +} + +/* Touch FILE. Return zero if successful, one if not. */ + +#define TOUCH_ERROR(call) return (perror_with_name (call, file->name), 1) + +static int +touch_file (file) + register struct file *file; +{ + if (!silent_flag) + message (0, "touch %s", file->name); + +#ifndef NO_ARCHIVES + if (ar_name (file->name)) + return ar_touch (file->name); + else +#endif + { + int fd = open (file->name, O_RDWR | O_CREAT, 0666); + + if (fd < 0) + TOUCH_ERROR ("touch: open: "); + else + { + struct stat statbuf; + char buf; + + if (fstat (fd, &statbuf) < 0) + TOUCH_ERROR ("touch: fstat: "); + /* Rewrite character 0 same as it already is. */ + if (read (fd, &buf, 1) < 0) + TOUCH_ERROR ("touch: read: "); + if (lseek (fd, 0L, 0) < 0L) + TOUCH_ERROR ("touch: lseek: "); + if (write (fd, &buf, 1) < 0) + TOUCH_ERROR ("touch: write: "); + /* If file length was 0, we just + changed it, so change it back. */ + if (statbuf.st_size == 0) + { + (void) close (fd); + fd = open (file->name, O_RDWR | O_TRUNC, 0666); + if (fd < 0) + TOUCH_ERROR ("touch: open: "); + } + (void) close (fd); + } + } + + return 0; +} + +/* Having checked and updated the dependencies of FILE, + do whatever is appropriate to remake FILE itself. + Return the status from executing FILE's commands. */ + +static void +remake_file (file) + struct file *file; +{ + if (file->cmds == 0) + { + if (file->phony) + /* Phony target. Pretend it succeeded. */ + file->update_status = 0; + else if (file->is_target) + /* This is a nonexistent target file we cannot make. + Pretend it was successfully remade. */ + file->update_status = 0; + else + { + const char *msg_noparent + = _("%sNo rule to make target `%s'%s"); + const char *msg_parent + = _("%sNo rule to make target `%s', needed by `%s'%s"); + + /* This is a dependency file we cannot remake. Fail. */ + if (!keep_going_flag && !file->dontcare) + { + if (file->parent == 0) + fatal (NILF, msg_noparent, "", file->name, ""); + + fatal (NILF, msg_parent, "", file->name, file->parent->name, ""); + } + + if (!file->dontcare) + { + if (file->parent == 0) + error (NILF, msg_noparent, "*** ", file->name, "."); + else + error (NILF, msg_parent, "*** ", + file->name, file->parent->name, "."); + } + file->update_status = 2; + } + } + else + { + chop_commands (file->cmds); + + /* The normal case: start some commands. */ + if (!touch_flag || file->cmds->any_recurse) + { + execute_file_commands (file); + return; + } + + /* This tells notice_finished_file it is ok to touch the file. */ + file->update_status = 0; + } + + /* This does the touching under -t. */ + notice_finished_file (file); +} + +/* Return the mtime of a file, given a `struct file'. + Caches the time in the struct file to avoid excess stat calls. + + If the file is not found, and SEARCH is nonzero, VPATH searching and + replacement is done. If that fails, a library (-lLIBNAME) is tried and + the library's actual name (/lib/libLIBNAME.a, etc.) is substituted into + FILE. */ + +FILE_TIMESTAMP +f_mtime (file, search) + register struct file *file; + int search; +{ + FILE_TIMESTAMP mtime; + + /* File's mtime is not known; must get it from the system. */ + +#ifndef NO_ARCHIVES + if (ar_name (file->name)) + { + /* This file is an archive-member reference. */ + + char *arname, *memname; + struct file *arfile; + int arname_used = 0; + time_t member_date; + + /* Find the archive's name. */ + ar_parse_name (file->name, &arname, &memname); + + /* Find the modification time of the archive itself. + Also allow for its name to be changed via VPATH search. */ + arfile = lookup_file (arname); + if (arfile == 0) + { + arfile = enter_file (arname); + arname_used = 1; + } + mtime = f_mtime (arfile, search); + check_renamed (arfile); + if (search && strcmp (arfile->hname, arname)) + { + /* The archive's name has changed. + Change the archive-member reference accordingly. */ + + char *name; + unsigned int arlen, memlen; + + if (!arname_used) + { + free (arname); + arname_used = 1; + } + + arname = arfile->hname; + arlen = strlen (arname); + memlen = strlen (memname); + + /* free (file->name); */ + + name = (char *) xmalloc (arlen + 1 + memlen + 2); + bcopy (arname, name, arlen); + name[arlen] = '('; + bcopy (memname, name + arlen + 1, memlen); + name[arlen + 1 + memlen] = ')'; + name[arlen + 1 + memlen + 1] = '\0'; + + /* If the archive was found with GPATH, make the change permanent; + otherwise defer it until later. */ + if (arfile->name == arfile->hname) + rename_file (file, name); + else + rehash_file (file, name); + check_renamed (file); + } + + if (!arname_used) + free (arname); + free (memname); + + file->low_resolution_time = 1; + + if (mtime == NONEXISTENT_MTIME) + /* The archive doesn't exist, so its members don't exist either. */ + return NONEXISTENT_MTIME; + + member_date = ar_member_date (file->hname); + mtime = (member_date == (time_t) -1 + ? NONEXISTENT_MTIME + : file_timestamp_cons (file->hname, member_date, 0)); + } + else +#endif + { + mtime = name_mtime (file->name); + + if (mtime == NONEXISTENT_MTIME && search && !file->ignore_vpath) + { + /* If name_mtime failed, search VPATH. */ + char *name = file->name; + if (vpath_search (&name, &mtime) + /* Last resort, is it a library (-lxxx)? */ + || (name[0] == '-' && name[1] == 'l' + && library_search (&name, &mtime))) + { + if (mtime != UNKNOWN_MTIME) + /* vpath_search and library_search store UNKNOWN_MTIME + if they didn't need to do a stat call for their work. */ + file->last_mtime = mtime; + + /* If we found it in VPATH, see if it's in GPATH too; if so, + change the name right now; if not, defer until after the + dependencies are updated. */ + if (gpath_search (name, strlen(name) - strlen(file->name) - 1)) + { + rename_file (file, name); + check_renamed (file); + return file_mtime (file); + } + + rehash_file (file, name); + check_renamed (file); + mtime = name_mtime (name); + } + } + } + + { + /* Files can have bogus timestamps that nothing newly made will be + "newer" than. Updating their dependents could just result in loops. + So notify the user of the anomaly with a warning. + + We only need to do this once, for now. */ + + if (!clock_skew_detected + && mtime != NONEXISTENT_MTIME + && !file->updated) + { + static FILE_TIMESTAMP adjusted_now; + + FILE_TIMESTAMP adjusted_mtime = mtime; + +#if defined(WINDOWS32) || defined(__MSDOS__) + /* Experimentation has shown that FAT filesystems can set file times + up to 3 seconds into the future! Play it safe. */ + +#define FAT_ADJ_OFFSET (FILE_TIMESTAMP) 3 + + FILE_TIMESTAMP adjustment = FAT_ADJ_OFFSET << FILE_TIMESTAMP_LO_BITS; + if (ORDINARY_MTIME_MIN + adjustment <= adjusted_mtime) + adjusted_mtime -= adjustment; +#endif + + /* If the file's time appears to be in the future, update our + concept of the present and try once more. */ + if (adjusted_now < adjusted_mtime) + { + int resolution; + FILE_TIMESTAMP now = file_timestamp_now (&resolution); + adjusted_now = now + (resolution - 1); + if (adjusted_now < adjusted_mtime) + { +#ifdef NO_FLOAT + error (NILF, _("Warning: File `%s' has modification time in the future"), + file->name); +#else + double from_now = + (FILE_TIMESTAMP_S (mtime) - FILE_TIMESTAMP_S (now) + + ((FILE_TIMESTAMP_NS (mtime) - FILE_TIMESTAMP_NS (now)) + / 1e9)); + error (NILF, _("Warning: File `%s' has modification time %.2g s in the future"), + file->name, from_now); +#endif + clock_skew_detected = 1; + } + } + } + } + + /* Store the mtime into all the entries for this file. */ + if (file->double_colon) + file = file->double_colon; + + do + { + /* If this file is not implicit but it is intermediate then it was + made so by the .INTERMEDIATE target. If this file has never + been built by us but was found now, it existed before make + started. So, turn off the intermediate bit so make doesn't + delete it, since it didn't create it. */ + if (mtime != NONEXISTENT_MTIME && file->command_state == cs_not_started + && file->command_state == cs_not_started + && !file->tried_implicit && file->intermediate) + file->intermediate = 0; + + file->last_mtime = mtime; + file = file->prev; + } + while (file != 0); + + return mtime; +} + + +/* Return the mtime of the file or archive-member reference NAME. */ + +static FILE_TIMESTAMP +name_mtime (name) + register char *name; +{ + struct stat st; + + if (stat (name, &st) != 0) + { + if (errno != ENOENT && errno != ENOTDIR) + perror_with_name ("stat:", name); + return NONEXISTENT_MTIME; + } + + return FILE_TIMESTAMP_STAT_MODTIME (name, st); +} + + +/* Search for a library file specified as -lLIBNAME, searching for a + suitable library file in the system library directories and the VPATH + directories. */ + +static int +library_search (lib, mtime_ptr) + char **lib; + FILE_TIMESTAMP *mtime_ptr; +{ + static char *dirs[] = + { +#ifndef _AMIGA + "/lib", + "/usr/lib", +#endif +#if defined(WINDOWS32) && !defined(LIBDIR) +/* + * This is completely up to the user at product install time. Just define + * a placeholder. + */ +#define LIBDIR "." +#endif + LIBDIR, /* Defined by configuration. */ + 0 + }; + + static char *libpatterns = NULL; + + char *libname = &(*lib)[2]; /* Name without the `-l'. */ + FILE_TIMESTAMP mtime; + + /* Loop variables for the libpatterns value. */ + char *p, *p2; + unsigned int len; + + char *file, **dp; + + /* If we don't have libpatterns, get it. */ + if (!libpatterns) + { + int save = warn_undefined_variables_flag; + warn_undefined_variables_flag = 0; + + libpatterns = xstrdup (variable_expand ("$(strip $(.LIBPATTERNS))")); + + warn_undefined_variables_flag = save; + } + + /* Loop through all the patterns in .LIBPATTERNS, and search on each one. */ + p2 = libpatterns; + while ((p = find_next_token (&p2, &len)) != 0) + { + static char *buf = NULL; + static int buflen = 0; + static int libdir_maxlen = -1; + char *libbuf = variable_expand (""); + + /* Expand the pattern using LIBNAME as a replacement. */ + { + char c = p[len]; + char *p3, *p4; + + p[len] = '\0'; + p3 = find_percent (p); + if (!p3) + { + /* Give a warning if there is no pattern, then remove the + pattern so it's ignored next time. */ + error (NILF, _(".LIBPATTERNS element `%s' is not a pattern"), p); + for (; len; --len, ++p) + *p = ' '; + *p = c; + continue; + } + p4 = variable_buffer_output (libbuf, p, p3-p); + p4 = variable_buffer_output (p4, libname, strlen (libname)); + p4 = variable_buffer_output (p4, p3+1, len - (p3-p)); + p[len] = c; + } + + /* Look first for `libNAME.a' in the current directory. */ + mtime = name_mtime (libbuf); + if (mtime != NONEXISTENT_MTIME) + { + *lib = xstrdup (libbuf); + if (mtime_ptr != 0) + *mtime_ptr = mtime; + return 1; + } + + /* Now try VPATH search on that. */ + + file = libbuf; + if (vpath_search (&file, mtime_ptr)) + { + *lib = file; + return 1; + } + + /* Now try the standard set of directories. */ + + if (!buflen) + { + for (dp = dirs; *dp != 0; ++dp) + { + int l = strlen (*dp); + if (l > libdir_maxlen) + libdir_maxlen = l; + } + buflen = strlen (libbuf); + buf = xmalloc(libdir_maxlen + buflen + 2); + } + else if (buflen < strlen (libbuf)) + { + buflen = strlen (libbuf); + buf = xrealloc (buf, libdir_maxlen + buflen + 2); + } + + for (dp = dirs; *dp != 0; ++dp) + { + sprintf (buf, "%s/%s", *dp, libbuf); + mtime = name_mtime (buf); + if (mtime != NONEXISTENT_MTIME) + { + *lib = xstrdup (buf); + if (mtime_ptr != 0) + *mtime_ptr = mtime; + return 1; + } + } + } + + return 0; +} diff --git a/src/mkutil/make-3.80/remote-cstms.c b/src/mkutil/make-3.80/remote-cstms.c new file mode 100644 index 00000000..b0587396 --- /dev/null +++ b/src/mkutil/make-3.80/remote-cstms.c @@ -0,0 +1,310 @@ +/* GNU Make remote job exportation interface to the Customs daemon. + THIS CODE IS NOT SUPPORTED BY THE GNU PROJECT. + Please do not send bug reports or questions about it to + the Make maintainers. + +Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "job.h" +#include "filedef.h" +#include "commands.h" +#include "job.h" +#include "debug.h" + +#include +#include + +#include "customs.h" + +char *remote_description = "Customs"; + +/* File name of the Customs `export' client command. + A full path name can be used to avoid some path-searching overhead. */ +#define EXPORT_COMMAND "/usr/local/bin/export" + +/* ExportPermit gotten by start_remote_job_p, and used by start_remote_job. */ +static ExportPermit permit; + +/* Normalized path name of the current directory. */ +static char *normalized_cwd; + +/* Call once at startup even if no commands are run. */ + +void +remote_setup () +{ +} + +/* Called before exit. */ + +void +remote_cleanup () +{ +} + +/* Return nonzero if the next job should be done remotely. */ + +int +start_remote_job_p (first_p) + int first_p; +{ + static int inited = 0; + int status; + int njobs; + + if (!inited) + { + /* Allow the user to turn off job exportation (useful while he is + debugging Customs, for example). */ + if (getenv ("GNU_MAKE_NO_CUSTOMS") != 0) + { + inited = -1; + return 0; + } + + /* For secure Customs, make is installed setuid root and + Customs requires a privileged source port be used. */ + make_access (); + + if (ISDB (DB_JOBS)) + Rpc_Debug(1); + + /* Ping the daemon once to see if it is there. */ + inited = Customs_Ping () == RPC_SUCCESS ? 1 : -1; + + /* Return to normal user access. */ + user_access (); + + if (starting_directory == 0) + /* main couldn't figure it out. */ + inited = -1; + else + { + /* Normalize the current directory path name to something + that should work on all machines exported to. */ + + normalized_cwd = (char *) xmalloc (GET_PATH_MAX); + strcpy (normalized_cwd, starting_directory); + if (Customs_NormPath (normalized_cwd, GET_PATH_MAX) < 0) + /* Path normalization failure means using Customs + won't work, but it's not really an error. */ + inited = -1; + } + } + + if (inited < 0) + return 0; + + njobs = job_slots_used; + if (!first_p) + njobs -= 1; /* correction for being called from reap_children() */ + + /* the first job should run locally, or, if the -l flag is given, we use + that as clue as to how many local jobs should be scheduled locally */ + if (max_load_average < 0 && njobs == 0 || njobs < max_load_average) + return 0; + + status = Customs_Host (EXPORT_SAME, &permit); + if (status != RPC_SUCCESS) + { + DB (DB_JOBS, (_("Customs won't export: %s\n"), + Rpc_ErrorMessage (status))); + return 0; + } + + return !CUSTOMS_FAIL (&permit.addr); +} + +/* Start a remote job running the command in ARGV, with environment from + ENVP. It gets standard input from STDIN_FD. On failure, return + nonzero. On success, return zero, and set *USED_STDIN to nonzero if it + will actually use STDIN_FD, zero if not, set *ID_PTR to a unique + identification, and set *IS_REMOTE to nonzero if the job is remote, zero + if it is local (meaning *ID_PTR is a process ID). */ + +int +start_remote_job (argv, envp, stdin_fd, is_remote, id_ptr, used_stdin) + char **argv, **envp; + int stdin_fd; + int *is_remote; + int *id_ptr; + int *used_stdin; +{ + char waybill[MAX_DATA_SIZE], msg[128]; + struct hostent *host; + struct timeval timeout; + struct sockaddr_in sin; + int len; + int retsock, retport, sock; + Rpc_Stat status; + int pid; + + /* Create the return socket. */ + retsock = Rpc_UdpCreate (True, 0); + if (retsock < 0) + { + error (NILF, "exporting: Couldn't create return socket."); + return 1; + } + + /* Get the return socket's port number. */ + len = sizeof (sin); + if (getsockname (retsock, (struct sockaddr *) &sin, &len) < 0) + { + (void) close (retsock); + perror_with_name ("exporting: ", "getsockname"); + return 1; + } + retport = sin.sin_port; + + /* Create the TCP socket for talking to the remote child. */ + sock = Rpc_TcpCreate (False, 0); + + /* Create a WayBill to give to the server. */ + len = Customs_MakeWayBill (&permit, normalized_cwd, argv[0], argv, + envp, retport, waybill); + + /* Modify the waybill as if the remote child had done `child_access ()'. */ + { + WayBill *wb = (WayBill *) waybill; + wb->ruid = wb->euid; + wb->rgid = wb->egid; + } + + /* Send the request to the server, timing out in 20 seconds. */ + timeout.tv_usec = 0; + timeout.tv_sec = 20; + sin.sin_family = AF_INET; + sin.sin_port = htons (Customs_Port ()); + sin.sin_addr = permit.addr; + status = Rpc_Call (sock, &sin, (Rpc_Proc) CUSTOMS_IMPORT, + len, (Rpc_Opaque) waybill, + sizeof(msg), (Rpc_Opaque) msg, + 1, &timeout); + + host = gethostbyaddr((char *)&permit.addr, sizeof(permit.addr), AF_INET); + + if (status != RPC_SUCCESS) + { + (void) close (retsock); + (void) close (sock); + error (NILF, "exporting to %s: %s", + host ? host->h_name : inet_ntoa (permit.addr), + Rpc_ErrorMessage (status)); + return 1; + } + else if (msg[0] != 'O' || msg[1] != 'k' || msg[2] != '\0') + { + (void) close (retsock); + (void) close (sock); + error (NILF, "exporting to %s: %s", + host ? host->h_name : inet_ntoa (permit.addr), + msg); + return 1; + } + else + { + error (NILF, "*** exported to %s (id %u)", + host ? host->h_name : inet_ntoa (permit.addr), + permit.id); + } + + fflush (stdout); + fflush (stderr); + + pid = vfork (); + if (pid < 0) + { + /* The fork failed! */ + perror_with_name ("vfork", ""); + return 1; + } + else if (pid == 0) + { + /* Child side. Run `export' to handle the connection. */ + static char sock_buf[20], retsock_buf[20], id_buf[20]; + static char *new_argv[6] = + { EXPORT_COMMAND, "-id", sock_buf, retsock_buf, id_buf, 0 }; + + /* Set up the arguments. */ + (void) sprintf (sock_buf, "%d", sock); + (void) sprintf (retsock_buf, "%d", retsock); + (void) sprintf (id_buf, "%x", permit.id); + + /* Get the right stdin. */ + if (stdin_fd != 0) + (void) dup2 (stdin_fd, 0); + + /* Unblock signals in the child. */ + unblock_sigs (); + + /* Run the command. */ + exec_command (new_argv, envp); + } + + /* Parent side. Return the `export' process's ID. */ + (void) close (retsock); + (void) close (sock); + *is_remote = 0; + *id_ptr = pid; + *used_stdin = 1; + return 0; +} + +/* Get the status of a dead remote child. Block waiting for one to die + if BLOCK is nonzero. Set *EXIT_CODE_PTR to the exit status, *SIGNAL_PTR + to the termination signal or zero if it exited normally, and *COREDUMP_PTR + nonzero if it dumped core. Return the ID of the child that died, + 0 if we would have to block and !BLOCK, or < 0 if there were none. */ + +int +remote_status (exit_code_ptr, signal_ptr, coredump_ptr, block) + int *exit_code_ptr, *signal_ptr, *coredump_ptr; + int block; +{ + return -1; +} + +/* Block asynchronous notification of remote child death. + If this notification is done by raising the child termination + signal, do not block that signal. */ +void +block_remote_children () +{ + return; +} + +/* Restore asynchronous notification of remote child death. + If this is done by raising the child termination signal, + do not unblock that signal. */ +void +unblock_remote_children () +{ + return; +} + +/* Send signal SIG to child ID. Return 0 if successful, -1 if not. */ +int +remote_kill (id, sig) + int id; + int sig; +{ + return -1; +} diff --git a/src/mkutil/make-3.80/remote-stub.c b/src/mkutil/make-3.80/remote-stub.c new file mode 100644 index 00000000..69af3975 --- /dev/null +++ b/src/mkutil/make-3.80/remote-stub.c @@ -0,0 +1,109 @@ +/* Template for the remote job exportation interface to GNU Make. +Copyright (C) 1988, 1989, 1992, 1993, 1996 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" + + +char *remote_description = 0; + +/* Call once at startup even if no commands are run. */ + +void +remote_setup () +{ +} + +/* Called before exit. */ + +void +remote_cleanup () +{ +} + +/* Return nonzero if the next job should be done remotely. */ + +int +start_remote_job_p (first_p) + int first_p; +{ + return 0; +} + +/* Start a remote job running the command in ARGV, + with environment from ENVP. It gets standard input from STDIN_FD. On + failure, return nonzero. On success, return zero, and set *USED_STDIN + to nonzero if it will actually use STDIN_FD, zero if not, set *ID_PTR to + a unique identification, and set *IS_REMOTE to zero if the job is local, + nonzero if it is remote (meaning *ID_PTR is a process ID). */ + +int +start_remote_job (argv, envp, stdin_fd, is_remote, id_ptr, used_stdin) + char **argv, **envp; + int stdin_fd; + int *is_remote; + int *id_ptr; + int *used_stdin; +{ + return -1; +} + +/* Get the status of a dead remote child. Block waiting for one to die + if BLOCK is nonzero. Set *EXIT_CODE_PTR to the exit status, *SIGNAL_PTR + to the termination signal or zero if it exited normally, and *COREDUMP_PTR + nonzero if it dumped core. Return the ID of the child that died, + 0 if we would have to block and !BLOCK, or < 0 if there were none. */ + +int +remote_status (exit_code_ptr, signal_ptr, coredump_ptr, block) + int *exit_code_ptr, *signal_ptr, *coredump_ptr; + int block; +{ + errno = ECHILD; + return -1; +} + +/* Block asynchronous notification of remote child death. + If this notification is done by raising the child termination + signal, do not block that signal. */ +void +block_remote_children () +{ + return; +} + +/* Restore asynchronous notification of remote child death. + If this is done by raising the child termination signal, + do not unblock that signal. */ +void +unblock_remote_children () +{ + return; +} + +/* Send signal SIG to child ID. Return 0 if successful, -1 if not. */ +int +remote_kill (id, sig) + int id; + int sig; +{ + return -1; +} diff --git a/src/mkutil/make-3.80/respf.$$$ b/src/mkutil/make-3.80/respf.$$$ new file mode 100644 index 00000000..29791e7b --- /dev/null +++ b/src/mkutil/make-3.80/respf.$$$ @@ -0,0 +1,23 @@ +commands.o +job.o +dir.o +file.o +misc.o +main.o +read.o +remake.o +rule.o +implicit.o +default.o +variable.o +expand.o +function.o +vpath.o +version.o +ar.o +arscan.o +signame.o +remote-stub.o +getopt.o +getopt1.o +glob/libglob.a diff --git a/src/mkutil/make-3.80/rule.c b/src/mkutil/make-3.80/rule.c new file mode 100644 index 00000000..e693c022 --- /dev/null +++ b/src/mkutil/make-3.80/rule.c @@ -0,0 +1,717 @@ +/* Pattern and suffix rule internals for GNU Make. +Copyright (C) 1988,89,90,91,92,93, 1998 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "dep.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "variable.h" +#include "rule.h" + +static void freerule PARAMS ((struct rule *rule, struct rule *lastrule)); + +/* Chain of all pattern rules. */ + +struct rule *pattern_rules; + +/* Pointer to last rule in the chain, so we can add onto the end. */ + +struct rule *last_pattern_rule; + +/* Number of rules in the chain. */ + +unsigned int num_pattern_rules; + +/* Maximum number of target patterns of any pattern rule. */ + +unsigned int max_pattern_targets; + +/* Maximum number of dependencies of any pattern rule. */ + +unsigned int max_pattern_deps; + +/* Maximum length of the name of a dependencies of any pattern rule. */ + +unsigned int max_pattern_dep_length; + +/* Chain of all pattern-specific variables. */ + +static struct pattern_var *pattern_vars; + +/* Pointer to last struct in the chain, so we can add onto the end. */ + +static struct pattern_var *last_pattern_var; + +/* Pointer to structure for the file .SUFFIXES + whose dependencies are the suffixes to be searched. */ + +struct file *suffix_file; + +/* Maximum length of a suffix. */ + +unsigned int maxsuffix; + +/* Compute the maximum dependency length and maximum number of + dependencies of all implicit rules. Also sets the subdir + flag for a rule when appropriate, possibly removing the rule + completely when appropriate. */ + +void +count_implicit_rule_limits () +{ + char *name; + unsigned int namelen; + register struct rule *rule, *lastrule; + + num_pattern_rules = max_pattern_targets = max_pattern_deps = 0; + max_pattern_dep_length = 0; + + name = 0; + namelen = 0; + rule = pattern_rules; + lastrule = 0; + while (rule != 0) + { + unsigned int ndeps = 0; + register struct dep *dep; + struct rule *next = rule->next; + unsigned int ntargets; + + ++num_pattern_rules; + + ntargets = 0; + while (rule->targets[ntargets] != 0) + ++ntargets; + + if (ntargets > max_pattern_targets) + max_pattern_targets = ntargets; + + for (dep = rule->deps; dep != 0; dep = dep->next) + { + unsigned int len = strlen (dep->name); + +#ifdef VMS + char *p = strrchr (dep->name, ']'); + char *p2; + if (p == 0) + p = strrchr (dep->name, ':'); + p2 = p != 0 ? strchr (dep->name, '%') : 0; +#else + char *p = strrchr (dep->name, '/'); + char *p2 = p != 0 ? strchr (dep->name, '%') : 0; +#endif + ndeps++; + + if (len > max_pattern_dep_length) + max_pattern_dep_length = len; + + if (p != 0 && p2 > p) + { + /* There is a slash before the % in the dep name. + Extract the directory name. */ + if (p == dep->name) + ++p; + if (p - dep->name > namelen) + { + if (name != 0) + free (name); + namelen = p - dep->name; + name = (char *) xmalloc (namelen + 1); + } + bcopy (dep->name, name, p - dep->name); + name[p - dep->name] = '\0'; + + /* In the deps of an implicit rule the `changed' flag + actually indicates that the dependency is in a + nonexistent subdirectory. */ + + dep->changed = !dir_file_exists_p (name, ""); +#ifdef VMS + if (dep->changed && strchr (name, ':') != 0) +#else + if (dep->changed && *name == '/') +#endif + { + /* The name is absolute and the directory does not exist. + This rule can never possibly match, since this dependency + can never possibly exist. So just remove the rule from + the list. */ + freerule (rule, lastrule); + --num_pattern_rules; + goto end_main_loop; + } + } + else + /* This dependency does not reside in a subdirectory. */ + dep->changed = 0; + } + + if (ndeps > max_pattern_deps) + max_pattern_deps = ndeps; + + lastrule = rule; + end_main_loop: + rule = next; + } + + if (name != 0) + free (name); +} + +/* Create a pattern rule from a suffix rule. + TARGET is the target suffix; SOURCE is the source suffix. + CMDS are the commands. + If TARGET is nil, it means the target pattern should be `(%.o)'. + If SOURCE is nil, it means there should be no deps. */ + +static void +convert_suffix_rule (target, source, cmds) + char *target, *source; + struct commands *cmds; +{ + char *targname, *targpercent, *depname; + char **names, **percents; + struct dep *deps; + unsigned int len; + + if (target == 0) + /* Special case: TARGET being nil means we are defining a + `.X.a' suffix rule; the target pattern is always `(%.o)'. */ + { +#ifdef VMS + targname = savestring ("(%.obj)", 7); +#else + targname = savestring ("(%.o)", 5); +#endif + targpercent = targname + 1; + } + else + { + /* Construct the target name. */ + len = strlen (target); + targname = xmalloc (1 + len + 1); + targname[0] = '%'; + bcopy (target, targname + 1, len + 1); + targpercent = targname; + } + + names = (char **) xmalloc (2 * sizeof (char *)); + percents = (char **) alloca (2 * sizeof (char *)); + names[0] = targname; + percents[0] = targpercent; + names[1] = percents[1] = 0; + + if (source == 0) + deps = 0; + else + { + /* Construct the dependency name. */ + len = strlen (source); + depname = xmalloc (1 + len + 1); + depname[0] = '%'; + bcopy (source, depname + 1, len + 1); + deps = (struct dep *) xmalloc (sizeof (struct dep)); + deps->next = 0; + deps->name = depname; + deps->ignore_mtime = 0; + } + + create_pattern_rule (names, percents, 0, deps, cmds, 0); +} + +/* Convert old-style suffix rules to pattern rules. + All rules for the suffixes on the .SUFFIXES list + are converted and added to the chain of pattern rules. */ + +void +convert_to_pattern () +{ + register struct dep *d, *d2; + register struct file *f; + register char *rulename; + register unsigned int slen, s2len; + + /* Compute maximum length of all the suffixes. */ + + maxsuffix = 0; + for (d = suffix_file->deps; d != 0; d = d->next) + { + register unsigned int namelen = strlen (dep_name (d)); + if (namelen > maxsuffix) + maxsuffix = namelen; + } + + rulename = (char *) alloca ((maxsuffix * 2) + 1); + + for (d = suffix_file->deps; d != 0; d = d->next) + { + /* Make a rule that is just the suffix, with no deps or commands. + This rule exists solely to disqualify match-anything rules. */ + convert_suffix_rule (dep_name (d), (char *) 0, (struct commands *) 0); + + f = d->file; + if (f->cmds != 0) + /* Record a pattern for this suffix's null-suffix rule. */ + convert_suffix_rule ("", dep_name (d), f->cmds); + + /* Record a pattern for each of this suffix's two-suffix rules. */ + slen = strlen (dep_name (d)); + bcopy (dep_name (d), rulename, slen); + for (d2 = suffix_file->deps; d2 != 0; d2 = d2->next) + { + s2len = strlen (dep_name (d2)); + + if (slen == s2len && streq (dep_name (d), dep_name (d2))) + continue; + + bcopy (dep_name (d2), rulename + slen, s2len + 1); + f = lookup_file (rulename); + if (f == 0 || f->cmds == 0) + continue; + + if (s2len == 2 && rulename[slen] == '.' && rulename[slen + 1] == 'a') + /* A suffix rule `.X.a:' generates the pattern rule `(%.o): %.X'. + It also generates a normal `%.a: %.X' rule below. */ + convert_suffix_rule ((char *) 0, /* Indicates `(%.o)'. */ + dep_name (d), + f->cmds); + + /* The suffix rule `.X.Y:' is converted + to the pattern rule `%.Y: %.X'. */ + convert_suffix_rule (dep_name (d2), dep_name (d), f->cmds); + } + } +} + + +/* Install the pattern rule RULE (whose fields have been filled in) + at the end of the list (so that any rules previously defined + will take precedence). If this rule duplicates a previous one + (identical target and dependencies), the old one is replaced + if OVERRIDE is nonzero, otherwise this new one is thrown out. + When an old rule is replaced, the new one is put at the end of the + list. Return nonzero if RULE is used; zero if not. */ + +int +new_pattern_rule (rule, override) + register struct rule *rule; + int override; +{ + register struct rule *r, *lastrule; + register unsigned int i, j; + + rule->in_use = 0; + rule->terminal = 0; + + rule->next = 0; + + /* Search for an identical rule. */ + lastrule = 0; + for (r = pattern_rules; r != 0; lastrule = r, r = r->next) + for (i = 0; rule->targets[i] != 0; ++i) + { + for (j = 0; r->targets[j] != 0; ++j) + if (!streq (rule->targets[i], r->targets[j])) + break; + if (r->targets[j] == 0) + /* All the targets matched. */ + { + register struct dep *d, *d2; + for (d = rule->deps, d2 = r->deps; + d != 0 && d2 != 0; d = d->next, d2 = d2->next) + if (!streq (dep_name (d), dep_name (d2))) + break; + if (d == 0 && d2 == 0) + { + /* All the dependencies matched. */ + if (override) + { + /* Remove the old rule. */ + freerule (r, lastrule); + /* Install the new one. */ + if (pattern_rules == 0) + pattern_rules = rule; + else + last_pattern_rule->next = rule; + last_pattern_rule = rule; + + /* We got one. Stop looking. */ + goto matched; + } + else + { + /* The old rule stays intact. Destroy the new one. */ + freerule (rule, (struct rule *) 0); + return 0; + } + } + } + } + + matched:; + + if (r == 0) + { + /* There was no rule to replace. */ + if (pattern_rules == 0) + pattern_rules = rule; + else + last_pattern_rule->next = rule; + last_pattern_rule = rule; + } + + return 1; +} + + +/* Install an implicit pattern rule based on the three text strings + in the structure P points to. These strings come from one of + the arrays of default implicit pattern rules. + TERMINAL specifies what the `terminal' field of the rule should be. */ + +void +install_pattern_rule (p, terminal) + struct pspec *p; + int terminal; +{ + register struct rule *r; + char *ptr; + + r = (struct rule *) xmalloc (sizeof (struct rule)); + + r->targets = (char **) xmalloc (2 * sizeof (char *)); + r->suffixes = (char **) xmalloc (2 * sizeof (char *)); + r->lens = (unsigned int *) xmalloc (2 * sizeof (unsigned int)); + + r->targets[1] = 0; + r->suffixes[1] = 0; + r->lens[1] = 0; + + r->lens[0] = strlen (p->target); + /* These will all be string literals, but we malloc space for + them anyway because somebody might want to free them later on. */ + r->targets[0] = savestring (p->target, r->lens[0]); + r->suffixes[0] = find_percent (r->targets[0]); + if (r->suffixes[0] == 0) + /* Programmer-out-to-lunch error. */ + abort (); + else + ++r->suffixes[0]; + + ptr = p->dep; + r->deps = (struct dep *) multi_glob (parse_file_seq (&ptr, '\0', + sizeof (struct dep), 1), + sizeof (struct dep)); + + if (new_pattern_rule (r, 0)) + { + r->terminal = terminal; + r->cmds = (struct commands *) xmalloc (sizeof (struct commands)); + r->cmds->fileinfo.filenm = 0; + r->cmds->fileinfo.lineno = 0; + /* These will all be string literals, but we malloc space for them + anyway because somebody might want to free them later. */ + r->cmds->commands = xstrdup (p->commands); + r->cmds->command_lines = 0; + } +} + + +/* Free all the storage used in RULE and take it out of the + pattern_rules chain. LASTRULE is the rule whose next pointer + points to RULE. */ + +static void +freerule (rule, lastrule) + register struct rule *rule, *lastrule; +{ + struct rule *next = rule->next; + register unsigned int i; + register struct dep *dep; + + for (i = 0; rule->targets[i] != 0; ++i) + free (rule->targets[i]); + + dep = rule->deps; + while (dep) + { + struct dep *t; + + t = dep->next; + /* We might leak dep->name here, but I'm not sure how to fix this: I + think that pointer might be shared (e.g., in the file hash?) */ + free ((char *) dep); + dep = t; + } + + free ((char *) rule->targets); + free ((char *) rule->suffixes); + free ((char *) rule->lens); + + /* We can't free the storage for the commands because there + are ways that they could be in more than one place: + * If the commands came from a suffix rule, they could also be in + the `struct file's for other suffix rules or plain targets given + on the same makefile line. + * If two suffixes that together make a two-suffix rule were each + given twice in the .SUFFIXES list, and in the proper order, two + identical pattern rules would be created and the second one would + be discarded here, but both would contain the same `struct commands' + pointer from the `struct file' for the suffix rule. */ + + free ((char *) rule); + + if (pattern_rules == rule) + if (lastrule != 0) + abort (); + else + pattern_rules = next; + else if (lastrule != 0) + lastrule->next = next; + if (last_pattern_rule == rule) + last_pattern_rule = lastrule; +} + +/* Create a new pattern rule with the targets in the nil-terminated + array TARGETS. If TARGET_PERCENTS is not nil, it is an array of + pointers into the elements of TARGETS, where the `%'s are. + The new rule has dependencies DEPS and commands from COMMANDS. + It is a terminal rule if TERMINAL is nonzero. This rule overrides + identical rules with different commands if OVERRIDE is nonzero. + + The storage for TARGETS and its elements is used and must not be freed + until the rule is destroyed. The storage for TARGET_PERCENTS is not used; + it may be freed. */ + +void +create_pattern_rule (targets, target_percents, + terminal, deps, commands, override) + char **targets, **target_percents; + int terminal; + struct dep *deps; + struct commands *commands; + int override; +{ + register struct rule *r = (struct rule *) xmalloc (sizeof (struct rule)); + register unsigned int max_targets, i; + + r->cmds = commands; + r->deps = deps; + r->targets = targets; + + max_targets = 2; + r->lens = (unsigned int *) xmalloc (2 * sizeof (unsigned int)); + r->suffixes = (char **) xmalloc (2 * sizeof (char *)); + for (i = 0; targets[i] != 0; ++i) + { + if (i == max_targets - 1) + { + max_targets += 5; + r->lens = (unsigned int *) + xrealloc ((char *) r->lens, max_targets * sizeof (unsigned int)); + r->suffixes = (char **) + xrealloc ((char *) r->suffixes, max_targets * sizeof (char *)); + } + r->lens[i] = strlen (targets[i]); + r->suffixes[i] = (target_percents == 0 ? find_percent (targets[i]) + : target_percents[i]) + 1; + if (r->suffixes[i] == 0) + abort (); + } + + if (i < max_targets - 1) + { + r->lens = (unsigned int *) xrealloc ((char *) r->lens, + (i + 1) * sizeof (unsigned int)); + r->suffixes = (char **) xrealloc ((char *) r->suffixes, + (i + 1) * sizeof (char *)); + } + + if (new_pattern_rule (r, override)) + r->terminal = terminal; +} + +/* Create a new pattern-specific variable struct. */ + +struct pattern_var * +create_pattern_var (target, suffix) + char *target, *suffix; +{ + register struct pattern_var *p = 0; + unsigned int len = strlen(target); + + /* Look to see if this pattern already exists in the list. */ + for (p = pattern_vars; p != NULL; p = p->next) + if (p->len == len && !strcmp(p->target, target)) + break; + + if (p == 0) + { + p = (struct pattern_var *) xmalloc (sizeof (struct pattern_var)); + if (last_pattern_var != 0) + last_pattern_var->next = p; + else + pattern_vars = p; + last_pattern_var = p; + p->next = 0; + p->target = target; + p->len = len; + p->suffix = suffix + 1; + p->vars = create_new_variable_set(); + } + + return p; +} + +/* Look up a target in the pattern-specific variable list. */ + +struct pattern_var * +lookup_pattern_var (target) + char *target; +{ + struct pattern_var *p; + unsigned int targlen = strlen(target); + + for (p = pattern_vars; p != 0; p = p->next) + { + char *stem; + unsigned int stemlen; + + if (p->len > targlen) + /* It can't possibly match. */ + continue; + + /* From the lengths of the filename and the pattern parts, + find the stem: the part of the filename that matches the %. */ + stem = target + (p->suffix - p->target - 1); + stemlen = targlen - p->len + 1; + + /* Compare the text in the pattern before the stem, if any. */ + if (stem > target && !strneq (p->target, target, stem - target)) + continue; + + /* Compare the text in the pattern after the stem, if any. + We could test simply using streq, but this way we compare the + first two characters immediately. This saves time in the very + common case where the first character matches because it is a + period. */ + if (*p->suffix == stem[stemlen] + && (*p->suffix == '\0' || streq (&p->suffix[1], &stem[stemlen+1]))) + break; + } + + return p; +} + +/* Print the data base of rules. */ + +static void /* Useful to call from gdb. */ +print_rule (r) + struct rule *r; +{ + register unsigned int i; + register struct dep *d; + + for (i = 0; r->targets[i] != 0; ++i) + { + fputs (r->targets[i], stdout); + if (r->targets[i + 1] != 0) + putchar (' '); + else + putchar (':'); + } + if (r->terminal) + putchar (':'); + + for (d = r->deps; d != 0; d = d->next) + printf (" %s", dep_name (d)); + putchar ('\n'); + + if (r->cmds != 0) + print_commands (r->cmds); +} + +void +print_rule_data_base () +{ + register unsigned int rules, terminal; + register struct rule *r; + + puts (_("\n# Implicit Rules")); + + rules = terminal = 0; + for (r = pattern_rules; r != 0; r = r->next) + { + ++rules; + + putchar ('\n'); + print_rule (r); + + if (r->terminal) + ++terminal; + } + + if (rules == 0) + puts (_("\n# No implicit rules.")); + else + { + printf (_("\n# %u implicit rules, %u"), rules, terminal); +#ifndef NO_FLOAT + printf (" (%.1f%%)", (double) terminal / (double) rules * 100.0); +#else + { + int f = (terminal * 1000 + 5) / rules; + printf (" (%d.%d%%)", f/10, f%10); + } +#endif + puts (_(" terminal.")); + } + + if (num_pattern_rules != rules) + { + /* This can happen if a fatal error was detected while reading the + makefiles and thus count_implicit_rule_limits wasn't called yet. */ + if (num_pattern_rules != 0) + fatal (NILF, _("BUG: num_pattern_rules wrong! %u != %u"), + num_pattern_rules, rules); + } + + puts (_("\n# Pattern-specific variable values")); + + { + struct pattern_var *p; + + rules = 0; + for (p = pattern_vars; p != 0; p = p->next) + { + ++rules; + + printf ("\n%s :\n", p->target); + print_variable_set (p->vars->set, "# "); + } + + if (rules == 0) + puts (_("\n# No pattern-specific variable values.")); + else + { + printf (_("\n# %u pattern-specific variable values"), rules); + } + } +} diff --git a/src/mkutil/make-3.80/rule.h b/src/mkutil/make-3.80/rule.h new file mode 100644 index 00000000..30cc5449 --- /dev/null +++ b/src/mkutil/make-3.80/rule.h @@ -0,0 +1,72 @@ +/* Definitions for using pattern rules in GNU Make. +Copyright (C) 1988, 1989, 1991, 1992, 1993 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Structure used for pattern rules. */ + +struct rule + { + struct rule *next; + char **targets; /* Targets of the rule. */ + unsigned int *lens; /* Lengths of each target. */ + char **suffixes; /* Suffixes (after `%') of each target. */ + struct dep *deps; /* Dependencies of the rule. */ + struct commands *cmds; /* Commands to execute. */ + char terminal; /* If terminal (double-colon). */ + char in_use; /* If in use by a parent pattern_search. */ + }; + +struct pattern_var + { + struct pattern_var *next; + char *target; + unsigned int len; + char *suffix; + struct variable_set_list *vars; + }; + +/* For calling install_pattern_rule. */ +struct pspec + { + char *target, *dep, *commands; + }; + + +extern struct rule *pattern_rules; +extern struct rule *last_pattern_rule; +extern unsigned int num_pattern_rules; + +extern unsigned int max_pattern_deps; +extern unsigned int max_pattern_targets; +extern unsigned int max_pattern_dep_length; + +extern struct file *suffix_file; +extern unsigned int maxsuffix; + + +extern void install_pattern_rule PARAMS ((struct pspec *p, int terminal)); +extern int new_pattern_rule PARAMS ((struct rule *rule, int override)); +extern struct pattern_var *create_pattern_var PARAMS ((char *target, char *suffix)); +extern struct pattern_var *lookup_pattern_var PARAMS ((char *target)); +extern void count_implicit_rule_limits PARAMS ((void)); +extern void convert_to_pattern PARAMS ((void)); +extern void create_pattern_rule PARAMS ((char **targets, + char **target_percents, int terminal, + struct dep *deps, + struct commands *commands, + int override)); diff --git a/src/mkutil/make-3.80/signame.c b/src/mkutil/make-3.80/signame.c new file mode 100644 index 00000000..051d5449 --- /dev/null +++ b/src/mkutil/make-3.80/signame.c @@ -0,0 +1,255 @@ +/* Convert between signal names and numbers. +Copyright (C) 1990,92,93,95,96,99, 2002 Free Software Foundation, Inc. +This file was part of the GNU C Library, but is now part of GNU make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" + +/* If the system provides strsignal, we don't need it. */ + +#if !defined(HAVE_STRSIGNAL) + +/* If the system provides sys_siglist, we'll use that. + Otherwise create our own. + */ + +#if !defined(SYS_SIGLIST_DECLARED) + +/* Some systems do not define NSIG in . */ +#ifndef NSIG +#ifdef _NSIG +#define NSIG _NSIG +#else +#define NSIG 32 +#endif +#endif + +/* There is too much variation in Sys V signal numbers and names, so + we must initialize them at runtime. */ + +static const char *undoc; + +static const char *sys_siglist[NSIG]; + +/* Table of abbreviations for signals. Note: A given number can + appear more than once with different abbreviations. */ +#define SIG_TABLE_SIZE (NSIG*2) + +typedef struct + { + int number; + const char *abbrev; + } num_abbrev; + +static num_abbrev sig_table[SIG_TABLE_SIZE]; + +/* Number of elements of sig_table used. */ +static int sig_table_nelts = 0; + +/* Enter signal number NUMBER into the tables with ABBREV and NAME. */ + +static void +init_sig (number, abbrev, name) + int number; + const char *abbrev; + const char *name; +{ + /* If this value is ever greater than NSIG it seems like it'd be a bug in + the system headers, but... better safe than sorry. We know, for + example, that this isn't always true on VMS. */ + + if (number >= 0 && number < NSIG) + sys_siglist[number] = name; + + if (sig_table_nelts < SIG_TABLE_SIZE) + { + sig_table[sig_table_nelts].number = number; + sig_table[sig_table_nelts++].abbrev = abbrev; + } +} + +static int +signame_init () +{ + int i; + + undoc = xstrdup (_("unknown signal")); + + /* Initialize signal names. */ + for (i = 0; i < NSIG; i++) + sys_siglist[i] = undoc; + + /* Initialize signal names. */ +#if defined (SIGHUP) + init_sig (SIGHUP, "HUP", _("Hangup")); +#endif +#if defined (SIGINT) + init_sig (SIGINT, "INT", _("Interrupt")); +#endif +#if defined (SIGQUIT) + init_sig (SIGQUIT, "QUIT", _("Quit")); +#endif +#if defined (SIGILL) + init_sig (SIGILL, "ILL", _("Illegal Instruction")); +#endif +#if defined (SIGTRAP) + init_sig (SIGTRAP, "TRAP", _("Trace/breakpoint trap")); +#endif + /* If SIGIOT == SIGABRT, we want to print it as SIGABRT because + SIGABRT is in ANSI and POSIX.1 and SIGIOT isn't. */ +#if defined (SIGABRT) + init_sig (SIGABRT, "ABRT", _("Aborted")); +#endif +#if defined (SIGIOT) + init_sig (SIGIOT, "IOT", _("IOT trap")); +#endif +#if defined (SIGEMT) + init_sig (SIGEMT, "EMT", _("EMT trap")); +#endif +#if defined (SIGFPE) + init_sig (SIGFPE, "FPE", _("Floating point exception")); +#endif +#if defined (SIGKILL) + init_sig (SIGKILL, "KILL", _("Killed")); +#endif +#if defined (SIGBUS) + init_sig (SIGBUS, "BUS", _("Bus error")); +#endif +#if defined (SIGSEGV) + init_sig (SIGSEGV, "SEGV", _("Segmentation fault")); +#endif +#if defined (SIGSYS) + init_sig (SIGSYS, "SYS", _("Bad system call")); +#endif +#if defined (SIGPIPE) + init_sig (SIGPIPE, "PIPE", _("Broken pipe")); +#endif +#if defined (SIGALRM) + init_sig (SIGALRM, "ALRM", _("Alarm clock")); +#endif +#if defined (SIGTERM) + init_sig (SIGTERM, "TERM", _("Terminated")); +#endif +#if defined (SIGUSR1) + init_sig (SIGUSR1, "USR1", _("User defined signal 1")); +#endif +#if defined (SIGUSR2) + init_sig (SIGUSR2, "USR2", _("User defined signal 2")); +#endif + /* If SIGCLD == SIGCHLD, we want to print it as SIGCHLD because that + is what is in POSIX.1. */ +#if defined (SIGCHLD) + init_sig (SIGCHLD, "CHLD", _("Child exited")); +#endif +#if defined (SIGCLD) + init_sig (SIGCLD, "CLD", _("Child exited")); +#endif +#if defined (SIGPWR) + init_sig (SIGPWR, "PWR", _("Power failure")); +#endif +#if defined (SIGTSTP) + init_sig (SIGTSTP, "TSTP", _("Stopped")); +#endif +#if defined (SIGTTIN) + init_sig (SIGTTIN, "TTIN", _("Stopped (tty input)")); +#endif +#if defined (SIGTTOU) + init_sig (SIGTTOU, "TTOU", _("Stopped (tty output)")); +#endif +#if defined (SIGSTOP) + init_sig (SIGSTOP, "STOP", _("Stopped (signal)")); +#endif +#if defined (SIGXCPU) + init_sig (SIGXCPU, "XCPU", _("CPU time limit exceeded")); +#endif +#if defined (SIGXFSZ) + init_sig (SIGXFSZ, "XFSZ", _("File size limit exceeded")); +#endif +#if defined (SIGVTALRM) + init_sig (SIGVTALRM, "VTALRM", _("Virtual timer expired")); +#endif +#if defined (SIGPROF) + init_sig (SIGPROF, "PROF", _("Profiling timer expired")); +#endif +#if defined (SIGWINCH) + /* "Window size changed" might be more accurate, but even if that + is all that it means now, perhaps in the future it will be + extended to cover other kinds of window changes. */ + init_sig (SIGWINCH, "WINCH", _("Window changed")); +#endif +#if defined (SIGCONT) + init_sig (SIGCONT, "CONT", _("Continued")); +#endif +#if defined (SIGURG) + init_sig (SIGURG, "URG", _("Urgent I/O condition")); +#endif +#if defined (SIGIO) + /* "I/O pending" has also been suggested. A disadvantage is + that signal only happens when the process has + asked for it, not everytime I/O is pending. Another disadvantage + is the confusion from giving it a different name than under Unix. */ + init_sig (SIGIO, "IO", _("I/O possible")); +#endif +#if defined (SIGWIND) + init_sig (SIGWIND, "WIND", _("SIGWIND")); +#endif +#if defined (SIGPHONE) + init_sig (SIGPHONE, "PHONE", _("SIGPHONE")); +#endif +#if defined (SIGPOLL) + init_sig (SIGPOLL, "POLL", _("I/O possible")); +#endif +#if defined (SIGLOST) + init_sig (SIGLOST, "LOST", _("Resource lost")); +#endif +#if defined (SIGDANGER) + init_sig (SIGDANGER, "DANGER", _("Danger signal")); +#endif +#if defined (SIGINFO) + init_sig (SIGINFO, "INFO", _("Information request")); +#endif +#if defined (SIGNOFP) + init_sig (SIGNOFP, "NOFP", _("Floating point co-processor not available")); +#endif + + return 1; +} + +#endif /* SYS_SIGLIST_DECLARED */ + + +char * +strsignal (signal) + int signal; +{ + static char buf[] = "Signal 12345678901234567890"; + +#if !defined(SYS_SIGLIST_DECLARED) + static char sig_initted = 0; + + if (!sig_initted) + sig_initted = signame_init (); +#endif + + if (signal > 0 || signal < NSIG) + return (char *) sys_siglist[signal]; + + sprintf (buf, "Signal %d", signal); + return buf; +} + +#endif /* HAVE_STRSIGNAL */ diff --git a/src/mkutil/make-3.80/subproc.bat b/src/mkutil/make-3.80/subproc.bat new file mode 100644 index 00000000..d64eeec9 --- /dev/null +++ b/src/mkutil/make-3.80/subproc.bat @@ -0,0 +1,6 @@ +cd w32\subproc +set MAKE=%2 +set MAKEFILE=%1 +if x%2 == x set MAKE=nmake +%MAKE% /f %MAKEFILE% +cd ..\.. diff --git a/src/mkutil/make-3.80/variable.c b/src/mkutil/make-3.80/variable.c new file mode 100644 index 00000000..bb8d8108 --- /dev/null +++ b/src/mkutil/make-3.80/variable.c @@ -0,0 +1,1263 @@ +/* Internals of variables for GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, +2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "dep.h" +#include "filedef.h" +#include "job.h" +#include "commands.h" +#include "variable.h" +#include "rule.h" +#ifdef WINDOWS32 +#include "pathstuff.h" +#endif +#include "hash.h" + +/* Hash table of all global variable definitions. */ + +static unsigned long +variable_hash_1 (keyv) + const void *keyv; +{ + struct variable const *key = (struct variable const *) keyv; + return_STRING_N_HASH_1 (key->name, key->length); +} + +static unsigned long +variable_hash_2 (keyv) + const void *keyv; +{ + struct variable const *key = (struct variable const *) keyv; + return_STRING_N_HASH_2 (key->name, key->length); +} + +static int +variable_hash_cmp (xv, yv) + const void *xv; + const void *yv; +{ + struct variable const *x = (struct variable const *) xv; + struct variable const *y = (struct variable const *) yv; + int result = x->length - y->length; + if (result) + return result; + return_STRING_N_COMPARE (x->name, y->name, x->length); +} + +#ifndef VARIABLE_BUCKETS +#define VARIABLE_BUCKETS 523 +#endif +#ifndef PERFILE_VARIABLE_BUCKETS +#define PERFILE_VARIABLE_BUCKETS 23 +#endif +#ifndef SMALL_SCOPE_VARIABLE_BUCKETS +#define SMALL_SCOPE_VARIABLE_BUCKETS 13 +#endif + +static struct variable_set global_variable_set; +static struct variable_set_list global_setlist + = { 0, &global_variable_set }; +struct variable_set_list *current_variable_set_list = &global_setlist; + +/* Implement variables. */ + +void +init_hash_global_variable_set () +{ + hash_init (&global_variable_set.table, VARIABLE_BUCKETS, + variable_hash_1, variable_hash_2, variable_hash_cmp); +} + +/* Define variable named NAME with value VALUE in SET. VALUE is copied. + LENGTH is the length of NAME, which does not need to be null-terminated. + ORIGIN specifies the origin of the variable (makefile, command line + or environment). + If RECURSIVE is nonzero a flag is set in the variable saying + that it should be recursively re-expanded. */ + +struct variable * +define_variable_in_set (name, length, value, origin, recursive, set, flocp) + const char *name; + unsigned int length; + char *value; + enum variable_origin origin; + int recursive; + struct variable_set *set; + const struct floc *flocp; +{ + struct variable *v; + struct variable **var_slot; + struct variable var_key; + + if (set == NULL) + set = &global_variable_set; + + var_key.name = (char *) name; + var_key.length = length; + var_slot = (struct variable **) hash_find_slot (&set->table, &var_key); + + if (env_overrides && origin == o_env) + origin = o_env_override; + + v = *var_slot; + if (! HASH_VACANT (v)) + { + if (env_overrides && v->origin == o_env) + /* V came from in the environment. Since it was defined + before the switches were parsed, it wasn't affected by -e. */ + v->origin = o_env_override; + + /* A variable of this name is already defined. + If the old definition is from a stronger source + than this one, don't redefine it. */ + if ((int) origin >= (int) v->origin) + { + if (v->value != 0) + free (v->value); + v->value = xstrdup (value); + if (flocp != 0) + v->fileinfo = *flocp; + else + v->fileinfo.filenm = 0; + v->origin = origin; + v->recursive = recursive; + } + return v; + } + + /* Create a new variable definition and add it to the hash table. */ + + v = (struct variable *) xmalloc (sizeof (struct variable)); + v->name = savestring (name, length); + v->length = length; + hash_insert_at (&set->table, v, var_slot); + v->value = xstrdup (value); + if (flocp != 0) + v->fileinfo = *flocp; + else + v->fileinfo.filenm = 0; + v->origin = origin; + v->recursive = recursive; + v->expanding = 0; + v->exp_count = 0; + v->per_target = 0; + v->append = 0; + v->export = v_default; + + v->exportable = 1; + if (*name != '_' && (*name < 'A' || *name > 'Z') + && (*name < 'a' || *name > 'z')) + v->exportable = 0; + else + { + for (++name; *name != '\0'; ++name) + if (*name != '_' && (*name < 'a' || *name > 'z') + && (*name < 'A' || *name > 'Z') && !ISDIGIT(*name)) + break; + + if (*name != '\0') + v->exportable = 0; + } + + return v; +} + +/* If the variable passed in is "special", handle its special nature. + Currently there are two such variables, both used for introspection: + .VARIABLES expands to a list of all the variables defined in this instance + of make. + .TARGETS expands to a list of all the targets defined in this + instance of make. + Returns the variable reference passed in. */ + +#define EXPANSION_INCREMENT(_l) ((((_l) / 500) + 1) * 500) + +static struct variable * +handle_special_var (var) + struct variable *var; +{ + static unsigned long last_var_count = 0; + + + /* This one actually turns out to be very hard, due to the way the parser + records targets. The way it works is that target information is collected + internally until make knows the target is completely specified. It unitl + it sees that some new construct (a new target or variable) is defined that + it knows the previous one is done. In short, this means that if you do + this: + + all: + + TARGS := $(.TARGETS) + + then $(TARGS) won't contain "all", because it's not until after the + variable is created that the previous target is completed. + + Changing this would be a major pain. I think a less complex way to do it + would be to pre-define the target files as soon as the first line is + parsed, then come back and do the rest of the definition as now. That + would allow $(.TARGETS) to be correct without a major change to the way + the parser works. + + if (streq (var->name, ".TARGETS")) + var->value = build_target_list (var->value); + else + */ + + if (streq (var->name, ".VARIABLES") + && global_variable_set.table.ht_fill != last_var_count) + { + unsigned long max = EXPANSION_INCREMENT (strlen (var->value)); + unsigned long len; + char *p; + struct variable **vp = (struct variable **) global_variable_set.table.ht_vec; + struct variable **end = &vp[global_variable_set.table.ht_size]; + + /* Make sure we have at least MAX bytes in the allocated buffer. */ + var->value = xrealloc (var->value, max); + + /* Walk through the hash of variables, constructing a list of names. */ + p = var->value; + len = 0; + for (; vp < end; ++vp) + if (!HASH_VACANT (*vp)) + { + struct variable *v = *vp; + int l = v->length; + + len += l + 1; + if (len > max) + { + unsigned long off = p - var->value; + + max += EXPANSION_INCREMENT (l + 1); + var->value = xrealloc (var->value, max); + p = &var->value[off]; + } + + bcopy (v->name, p, l); + p += l; + *(p++) = ' '; + } + *(p-1) = '\0'; + + /* Remember how many variables are in our current count. Since we never + remove variables from the list, this is a reliable way to know whether + the list is up to date or needs to be recomputed. */ + + last_var_count = global_variable_set.table.ht_fill; + } + + return var; +} + + +/* Lookup a variable whose name is a string starting at NAME + and with LENGTH chars. NAME need not be null-terminated. + Returns address of the `struct variable' containing all info + on the variable, or nil if no such variable is defined. */ + +struct variable * +lookup_variable (name, length) + const char *name; + unsigned int length; +{ + const struct variable_set_list *setlist; + struct variable var_key; + + var_key.name = (char *) name; + var_key.length = length; + + for (setlist = current_variable_set_list; + setlist != 0; setlist = setlist->next) + { + const struct variable_set *set = setlist->set; + struct variable *v; + + v = (struct variable *) hash_find_item ((struct hash_table *) &set->table, &var_key); + if (v) + return v->special ? handle_special_var (v) : v; + } + +#ifdef VMS + /* since we don't read envp[] on startup, try to get the + variable via getenv() here. */ + { + char *vname = alloca (length + 1); + char *value; + strncpy (vname, name, length); + vname[length] = 0; + value = getenv (vname); + if (value != 0) + { + char *sptr; + int scnt; + + sptr = value; + scnt = 0; + + while ((sptr = strchr (sptr, '$'))) + { + scnt++; + sptr++; + } + + if (scnt > 0) + { + char *nvalue; + char *nptr; + + nvalue = alloca (strlen (value) + scnt + 1); + sptr = value; + nptr = nvalue; + + while (*sptr) + { + if (*sptr == '$') + { + *nptr++ = '$'; + *nptr++ = '$'; + } + else + { + *nptr++ = *sptr; + } + sptr++; + } + + *nptr = '\0'; + return define_variable (vname, length, nvalue, o_env, 1); + + } + + return define_variable (vname, length, value, o_env, 1); + } + } +#endif /* VMS */ + + return 0; +} + +/* Lookup a variable whose name is a string starting at NAME + and with LENGTH chars in set SET. NAME need not be null-terminated. + Returns address of the `struct variable' containing all info + on the variable, or nil if no such variable is defined. */ + +struct variable * +lookup_variable_in_set (name, length, set) + const char *name; + unsigned int length; + const struct variable_set *set; +{ + struct variable var_key; + + var_key.name = (char *) name; + var_key.length = length; + + return (struct variable *) hash_find_item ((struct hash_table *) &set->table, &var_key); +} + +/* Initialize FILE's variable set list. If FILE already has a variable set + list, the topmost variable set is left intact, but the the rest of the + chain is replaced with FILE->parent's setlist. If FILE is a double-colon + rule, then we will use the "root" double-colon target's variable set as the + parent of FILE's variable set. + + If we're READing a makefile, don't do the pattern variable search now, + since the pattern variable might not have been defined yet. */ + +void +initialize_file_variables (file, reading) + struct file *file; + int reading; +{ + register struct variable_set_list *l = file->variables; + + if (l == 0) + { + l = (struct variable_set_list *) + xmalloc (sizeof (struct variable_set_list)); + l->set = (struct variable_set *) xmalloc (sizeof (struct variable_set)); + hash_init (&l->set->table, PERFILE_VARIABLE_BUCKETS, + variable_hash_1, variable_hash_2, variable_hash_cmp); + file->variables = l; + } + + /* If this is a double-colon, then our "parent" is the "root" target for + this double-colon rule. Since that rule has the same name, parent, + etc. we can just use its variables as the "next" for ours. */ + + if (file->double_colon && file->double_colon != file) + { + initialize_file_variables (file->double_colon, reading); + l->next = file->double_colon->variables; + return; + } + + if (file->parent == 0) + l->next = &global_setlist; + else + { + initialize_file_variables (file->parent, reading); + l->next = file->parent->variables; + } + + /* If we're not reading makefiles and we haven't looked yet, see if + we can find a pattern variable. */ + + if (!reading && !file->pat_searched) + { + struct pattern_var *p = lookup_pattern_var (file->name); + + file->pat_searched = 1; + if (p != 0) + { + /* If we found one, insert it between the current target's + variables and the next set, whatever it is. */ + file->pat_variables = (struct variable_set_list *) + xmalloc (sizeof (struct variable_set_list)); + file->pat_variables->set = p->vars->set; + } + } + + /* If we have a pattern variable match, set it up. */ + + if (file->pat_variables != 0) + { + file->pat_variables->next = l->next; + l->next = file->pat_variables; + } +} + +/* Pop the top set off the current variable set list, + and free all its storage. */ + +static void +free_variable_name_and_value (item) + void *item; +{ + struct variable *v = (struct variable *) item; + free (v->name); + free (v->value); +} + +void +pop_variable_scope () +{ + struct variable_set_list *setlist = current_variable_set_list; + struct variable_set *set = setlist->set; + + current_variable_set_list = setlist->next; + free ((char *) setlist); + + hash_map (&set->table, free_variable_name_and_value); + hash_free (&set->table, 1); + + free ((char *) set); +} + +struct variable_set_list * +create_new_variable_set () +{ + register struct variable_set_list *setlist; + register struct variable_set *set; + + set = (struct variable_set *) xmalloc (sizeof (struct variable_set)); + hash_init (&set->table, SMALL_SCOPE_VARIABLE_BUCKETS, + variable_hash_1, variable_hash_2, variable_hash_cmp); + + setlist = (struct variable_set_list *) + xmalloc (sizeof (struct variable_set_list)); + setlist->set = set; + setlist->next = current_variable_set_list; + + return setlist; +} + +/* Create a new variable set and push it on the current setlist. */ + +struct variable_set_list * +push_new_variable_scope () +{ + return (current_variable_set_list = create_new_variable_set()); +} + +/* Merge SET1 into SET0, freeing unused storage in SET1. */ + +static void +merge_variable_sets (to_set, from_set) + struct variable_set *to_set, *from_set; +{ + struct variable **from_var_slot = (struct variable **) from_set->table.ht_vec; + struct variable **from_var_end = from_var_slot + from_set->table.ht_size; + + for ( ; from_var_slot < from_var_end; from_var_slot++) + if (! HASH_VACANT (*from_var_slot)) + { + struct variable *from_var = *from_var_slot; + struct variable **to_var_slot + = (struct variable **) hash_find_slot (&to_set->table, *from_var_slot); + if (HASH_VACANT (*to_var_slot)) + hash_insert_at (&to_set->table, from_var, to_var_slot); + else + { + /* GKM FIXME: delete in from_set->table */ + free (from_var->value); + free (from_var); + } + } +} + +/* Merge SETLIST1 into SETLIST0, freeing unused storage in SETLIST1. */ + +void +merge_variable_set_lists (setlist0, setlist1) + struct variable_set_list **setlist0, *setlist1; +{ + register struct variable_set_list *list0 = *setlist0; + struct variable_set_list *last0 = 0; + + while (setlist1 != 0 && list0 != 0) + { + struct variable_set_list *next = setlist1; + setlist1 = setlist1->next; + + merge_variable_sets (list0->set, next->set); + + last0 = list0; + list0 = list0->next; + } + + if (setlist1 != 0) + { + if (last0 == 0) + *setlist0 = setlist1; + else + last0->next = setlist1; + } +} + +/* Define the automatic variables, and record the addresses + of their structures so we can change their values quickly. */ + +void +define_automatic_variables () +{ +#ifdef WINDOWS32 + extern char* default_shell; +#else + extern char default_shell[]; +#endif + register struct variable *v; + char buf[200]; + + sprintf (buf, "%u", makelevel); + (void) define_variable (MAKELEVEL_NAME, MAKELEVEL_LENGTH, buf, o_env, 0); + + sprintf (buf, "%s%s%s", + version_string, + (remote_description == 0 || remote_description[0] == '\0') + ? "" : "-", + (remote_description == 0 || remote_description[0] == '\0') + ? "" : remote_description); + (void) define_variable ("MAKE_VERSION", 12, buf, o_default, 0); + +#ifdef __MSDOS__ + /* Allow to specify a special shell just for Make, + and use $COMSPEC as the default $SHELL when appropriate. */ + { + static char shell_str[] = "SHELL"; + const int shlen = sizeof (shell_str) - 1; + struct variable *mshp = lookup_variable ("MAKESHELL", 9); + struct variable *comp = lookup_variable ("COMSPEC", 7); + + /* Make $MAKESHELL override $SHELL even if -e is in effect. */ + if (mshp) + (void) define_variable (shell_str, shlen, + mshp->value, o_env_override, 0); + else if (comp) + { + /* $COMSPEC shouldn't override $SHELL. */ + struct variable *shp = lookup_variable (shell_str, shlen); + + if (!shp) + (void) define_variable (shell_str, shlen, comp->value, o_env, 0); + } + } +#endif + + /* This won't override any definition, but it + will provide one if there isn't one there. */ + v = define_variable ("SHELL", 5, default_shell, o_default, 0); + v->export = v_export; /* Always export SHELL. */ + + /* On MSDOS we do use SHELL from environment, since + it isn't a standard environment variable on MSDOS, + so whoever sets it, does that on purpose. */ +#ifndef __MSDOS__ + /* Don't let SHELL come from the environment. */ + if (*v->value == '\0' || v->origin == o_env || v->origin == o_env_override) + { + free (v->value); + v->origin = o_file; + v->value = xstrdup (default_shell); + } +#endif + + /* Make sure MAKEFILES gets exported if it is set. */ + v = define_variable ("MAKEFILES", 9, "", o_default, 0); + v->export = v_ifset; + + /* Define the magic D and F variables in terms of + the automatic variables they are variations of. */ + +#ifdef VMS + define_variable ("@D", 2, "$(dir $@)", o_automatic, 1); + define_variable ("%D", 2, "$(dir $%)", o_automatic, 1); + define_variable ("*D", 2, "$(dir $*)", o_automatic, 1); + define_variable ("variables; + + hash_init (&table, VARIABLE_BUCKETS, + variable_hash_1, variable_hash_2, variable_hash_cmp); + + /* Run through all the variable sets in the list, + accumulating variables in TABLE. */ + for (s = set_list; s != 0; s = s->next) + { + struct variable_set *set = s->set; + v_slot = (struct variable **) set->table.ht_vec; + v_end = v_slot + set->table.ht_size; + for ( ; v_slot < v_end; v_slot++) + if (! HASH_VACANT (*v_slot)) + { + struct variable **new_slot; + struct variable *v = *v_slot; + + /* If this is a per-target variable and it hasn't been touched + already then look up the global version and take its export + value. */ + if (v->per_target && v->export == v_default) + { + struct variable *gv; + + gv = lookup_variable_in_set (v->name, strlen(v->name), + &global_variable_set); + if (gv) + v->export = gv->export; + } + + switch (v->export) + { + case v_default: + if (v->origin == o_default || v->origin == o_automatic) + /* Only export default variables by explicit request. */ + continue; + + /* The variable doesn't have a name that can be exported. */ + if (! v->exportable) + continue; + + if (! export_all_variables + && v->origin != o_command + && v->origin != o_env && v->origin != o_env_override) + continue; + break; + + case v_export: + break; + + case v_noexport: + continue; + + case v_ifset: + if (v->origin == o_default) + continue; + break; + } + + new_slot = (struct variable **) hash_find_slot (&table, v); + if (HASH_VACANT (*new_slot)) + hash_insert_at (&table, v, new_slot); + } + } + + makelevel_key.name = MAKELEVEL_NAME; + makelevel_key.length = MAKELEVEL_LENGTH; + hash_delete (&table, &makelevel_key); + + result = result_0 = (char **) xmalloc ((table.ht_fill + 2) * sizeof (char *)); + + v_slot = (struct variable **) table.ht_vec; + v_end = v_slot + table.ht_size; + for ( ; v_slot < v_end; v_slot++) + if (! HASH_VACANT (*v_slot)) + { + struct variable *v = *v_slot; + + /* If V is recursively expanded and didn't come from the environment, + expand its value. If it came from the environment, it should + go back into the environment unchanged. */ + if (v->recursive + && v->origin != o_env && v->origin != o_env_override) + { + char *value = recursively_expand_for_file (v, file); +#ifdef WINDOWS32 + if (strcmp(v->name, "Path") == 0 || + strcmp(v->name, "PATH") == 0) + convert_Path_to_windows32(value, ';'); +#endif + *result++ = concat (v->name, "=", value); + free (value); + } + else + { +#ifdef WINDOWS32 + if (strcmp(v->name, "Path") == 0 || + strcmp(v->name, "PATH") == 0) + convert_Path_to_windows32(v->value, ';'); +#endif + *result++ = concat (v->name, "=", v->value); + } + } + + *result = (char *) xmalloc (100); + (void) sprintf (*result, "%s=%u", MAKELEVEL_NAME, makelevel + 1); + *++result = 0; + + hash_free (&table, 0); + + return result_0; +} + +/* Given a variable, a value, and a flavor, define the variable. + See the try_variable_definition() function for details on the parameters. */ + +struct variable * +do_variable_definition (flocp, varname, value, origin, flavor, target_var) + const struct floc *flocp; + const char *varname; + char *value; + enum variable_origin origin; + enum variable_flavor flavor; + int target_var; +{ + char *p, *alloc_value = NULL; + struct variable *v; + int append = 0; + + /* Calculate the variable's new value in VALUE. */ + + switch (flavor) + { + default: + case f_bogus: + /* Should not be possible. */ + abort (); + case f_simple: + /* A simple variable definition "var := value". Expand the value. + We have to allocate memory since otherwise it'll clobber the + variable buffer, and we may still need that if we're looking at a + target-specific variable. */ + p = alloc_value = allocated_variable_expand (value); + break; + case f_conditional: + /* A conditional variable definition "var ?= value". + The value is set IFF the variable is not defined yet. */ + v = lookup_variable (varname, strlen (varname)); + if (v) + return v; + + flavor = f_recursive; + /* FALLTHROUGH */ + case f_recursive: + /* A recursive variable definition "var = value". + The value is used verbatim. */ + p = value; + break; + case f_append: + { + /* If we have += but we're in a target variable context, we want to + append only with other variables in the context of this target. */ + if (target_var) + { + append = 1; + v = lookup_variable_in_set (varname, strlen (varname), + current_variable_set_list->set); + } + else + v = lookup_variable (varname, strlen (varname)); + + if (v == 0) + { + /* There was no old value. + This becomes a normal recursive definition. */ + p = value; + flavor = f_recursive; + } + else + { + /* Paste the old and new values together in VALUE. */ + + unsigned int oldlen, vallen; + char *val; + + val = value; + if (v->recursive) + /* The previous definition of the variable was recursive. + The new value is the unexpanded old and new values. */ + flavor = f_recursive; + else + /* The previous definition of the variable was simple. + The new value comes from the old value, which was expanded + when it was set; and from the expanded new value. Allocate + memory for the expansion as we may still need the rest of the + buffer if we're looking at a target-specific variable. */ + val = alloc_value = allocated_variable_expand (val); + + oldlen = strlen (v->value); + vallen = strlen (val); + p = (char *) alloca (oldlen + 1 + vallen + 1); + bcopy (v->value, p, oldlen); + p[oldlen] = ' '; + bcopy (val, &p[oldlen + 1], vallen + 1); + } + } + } + +#ifdef __MSDOS__ + /* Many Unix Makefiles include a line saying "SHELL=/bin/sh", but + non-Unix systems don't conform to this default configuration (in + fact, most of them don't even have `/bin'). On the other hand, + $SHELL in the environment, if set, points to the real pathname of + the shell. + Therefore, we generally won't let lines like "SHELL=/bin/sh" from + the Makefile override $SHELL from the environment. But first, we + look for the basename of the shell in the directory where SHELL= + points, and along the $PATH; if it is found in any of these places, + we define $SHELL to be the actual pathname of the shell. Thus, if + you have bash.exe installed as d:/unix/bash.exe, and d:/unix is on + your $PATH, then SHELL=/usr/local/bin/bash will have the effect of + defining SHELL to be "d:/unix/bash.exe". */ + if ((origin == o_file || origin == o_override) + && strcmp (varname, "SHELL") == 0) + { + char shellpath[PATH_MAX]; + extern char * __dosexec_find_on_path (const char *, char *[], char *); + + /* See if we can find "/bin/sh.exe", "/bin/sh.com", etc. */ + if (__dosexec_find_on_path (p, (char **)0, shellpath)) + { + char *p; + + for (p = shellpath; *p; p++) + { + if (*p == '\\') + *p = '/'; + } + v = define_variable_loc (varname, strlen (varname), + shellpath, origin, flavor == f_recursive, + flocp); + } + else + { + char *shellbase, *bslash; + struct variable *pathv = lookup_variable ("PATH", 4); + char *path_string; + char *fake_env[2]; + size_t pathlen = 0; + + shellbase = strrchr (p, '/'); + bslash = strrchr (p, '\\'); + if (!shellbase || bslash > shellbase) + shellbase = bslash; + if (!shellbase && p[1] == ':') + shellbase = p + 1; + if (shellbase) + shellbase++; + else + shellbase = p; + + /* Search for the basename of the shell (with standard + executable extensions) along the $PATH. */ + if (pathv) + pathlen = strlen (pathv->value); + path_string = (char *)xmalloc (5 + pathlen + 2 + 1); + /* On MSDOS, current directory is considered as part of $PATH. */ + sprintf (path_string, "PATH=.;%s", pathv ? pathv->value : ""); + fake_env[0] = path_string; + fake_env[1] = (char *)0; + if (__dosexec_find_on_path (shellbase, fake_env, shellpath)) + { + char *p; + + for (p = shellpath; *p; p++) + { + if (*p == '\\') + *p = '/'; + } + v = define_variable_loc (varname, strlen (varname), + shellpath, origin, + flavor == f_recursive, flocp); + } + else + v = lookup_variable (varname, strlen (varname)); + + free (path_string); + } + } + else +#endif /* __MSDOS__ */ +#ifdef WINDOWS32 + if ((origin == o_file || origin == o_override) && streq (varname, "SHELL")) + { + extern char *default_shell; + + /* Call shell locator function. If it returns TRUE, then + set no_default_sh_exe to indicate sh was found and + set new value for SHELL variable. */ + + if (find_and_set_default_shell (p)) + { + v = define_variable_in_set (varname, strlen (varname), default_shell, + origin, flavor == f_recursive, + (target_var + ? current_variable_set_list->set + : NULL), + flocp); + no_default_sh_exe = 0; + } + else + v = lookup_variable (varname, strlen (varname)); + } + else +#endif + + /* If we are defining variables inside an $(eval ...), we might have a + different variable context pushed, not the global context (maybe we're + inside a $(call ...) or something. Since this function is only ever + invoked in places where we want to define globally visible variables, + make sure we define this variable in the global set. */ + + v = define_variable_in_set (varname, strlen (varname), p, + origin, flavor == f_recursive, + (target_var + ? current_variable_set_list->set : NULL), + flocp); + v->append = append; + + if (alloc_value) + free (alloc_value); + + return v; +} + +/* Try to interpret LINE (a null-terminated string) as a variable definition. + + ORIGIN may be o_file, o_override, o_env, o_env_override, + or o_command specifying that the variable definition comes + from a makefile, an override directive, the environment with + or without the -e switch, or the command line. + + See the comments for parse_variable_definition(). + + If LINE was recognized as a variable definition, a pointer to its `struct + variable' is returned. If LINE is not a variable definition, NULL is + returned. */ + +struct variable * +try_variable_definition (flocp, line, origin, target_var) + const struct floc *flocp; + char *line; + enum variable_origin origin; + int target_var; +{ + register int c; + register char *p = line; + register char *beg; + register char *end; + enum variable_flavor flavor = f_bogus; + char *name, *expanded_name; + struct variable *v; + + while (1) + { + c = *p++; + if (c == '\0' || c == '#') + return 0; + if (c == '=') + { + end = p - 1; + flavor = f_recursive; + break; + } + else if (c == ':') + if (*p == '=') + { + end = p++ - 1; + flavor = f_simple; + break; + } + else + /* A colon other than := is a rule line, not a variable defn. */ + return 0; + else if (c == '+' && *p == '=') + { + end = p++ - 1; + flavor = f_append; + break; + } + else if (c == '?' && *p == '=') + { + end = p++ - 1; + flavor = f_conditional; + break; + } + else if (c == '$') + { + /* This might begin a variable expansion reference. Make sure we + don't misrecognize chars inside the reference as =, := or +=. */ + char closeparen; + int count; + c = *p++; + if (c == '(') + closeparen = ')'; + else if (c == '{') + closeparen = '}'; + else + continue; /* Nope. */ + + /* P now points past the opening paren or brace. + Count parens or braces until it is matched. */ + count = 0; + for (; *p != '\0'; ++p) + { + if (*p == c) + ++count; + else if (*p == closeparen && --count < 0) + { + ++p; + break; + } + } + } + } + + beg = next_token (line); + while (end > beg && isblank ((unsigned char)end[-1])) + --end; + p = next_token (p); + + /* Expand the name, so "$(foo)bar = baz" works. */ + name = (char *) alloca (end - beg + 1); + bcopy (beg, name, end - beg); + name[end - beg] = '\0'; + expanded_name = allocated_variable_expand (name); + + if (expanded_name[0] == '\0') + fatal (flocp, _("empty variable name")); + + v = do_variable_definition (flocp, expanded_name, p, + origin, flavor, target_var); + + free (expanded_name); + + return v; +} + +/* Print information for variable V, prefixing it with PREFIX. */ + +static void +print_variable (v, prefix) + register struct variable *v; + char *prefix; +{ + const char *origin; + + switch (v->origin) + { + case o_default: + origin = _("default"); + break; + case o_env: + origin = _("environment"); + break; + case o_file: + origin = _("makefile"); + break; + case o_env_override: + origin = _("environment under -e"); + break; + case o_command: + origin = _("command line"); + break; + case o_override: + origin = _("`override' directive"); + break; + case o_automatic: + origin = _("automatic"); + break; + case o_invalid: + default: + abort (); + } + fputs ("# ", stdout); + fputs (origin, stdout); + if (v->fileinfo.filenm) + printf (_(" (from `%s', line %lu)"), + v->fileinfo.filenm, v->fileinfo.lineno); + putchar ('\n'); + fputs (prefix, stdout); + + /* Is this a `define'? */ + if (v->recursive && strchr (v->value, '\n') != 0) + printf ("define %s\n%s\nendef\n", v->name, v->value); + else + { + register char *p; + + printf ("%s %s= ", v->name, v->recursive ? v->append ? "+" : "" : ":"); + + /* Check if the value is just whitespace. */ + p = next_token (v->value); + if (p != v->value && *p == '\0') + /* All whitespace. */ + printf ("$(subst ,,%s)", v->value); + else if (v->recursive) + fputs (v->value, stdout); + else + /* Double up dollar signs. */ + for (p = v->value; *p != '\0'; ++p) + { + if (*p == '$') + putchar ('$'); + putchar (*p); + } + putchar ('\n'); + } +} + + +/* Print all the variables in SET. PREFIX is printed before + the actual variable definitions (everything else is comments). */ + +void +print_variable_set (set, prefix) + register struct variable_set *set; + char *prefix; +{ + hash_map_arg (&set->table, print_variable, prefix); + + fputs (_("# variable set hash-table stats:\n"), stdout); + fputs ("# ", stdout); + hash_print_stats (&set->table, stdout); + putc ('\n', stdout); +} + +/* Print the data base of variables. */ + +void +print_variable_data_base () +{ + puts (_("\n# Variables\n")); + + print_variable_set (&global_variable_set, ""); +} + + +/* Print all the local variables of FILE. */ + +void +print_file_variables (file) + struct file *file; +{ + if (file->variables != 0) + print_variable_set (file->variables->set, "# "); +} + +#ifdef WINDOWS32 +void +sync_Path_environment(void) +{ + char* path = allocated_variable_expand("$(Path)"); + static char* environ_path = NULL; + + if (!path) + return; + + /* + * If done this before, don't leak memory unnecessarily. + * Free the previous entry before allocating new one. + */ + if (environ_path) + free(environ_path); + + /* + * Create something WINDOWS32 world can grok + */ + convert_Path_to_windows32(path, ';'); + environ_path = concat("Path", "=", path); + putenv(environ_path); + free(path); +} +#endif diff --git a/src/mkutil/make-3.80/variable.h b/src/mkutil/make-3.80/variable.h new file mode 100644 index 00000000..d9cd7f7c --- /dev/null +++ b/src/mkutil/make-3.80/variable.h @@ -0,0 +1,183 @@ +/* Definitions for using variables in GNU Make. +Copyright (C) 1988, 1989, 1990, 1991, 1992, 2002 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "hash.h" + +/* Codes in a variable definition saying where the definition came from. + Increasing numeric values signify less-overridable definitions. */ +enum variable_origin + { + o_default, /* Variable from the default set. */ + o_env, /* Variable from environment. */ + o_file, /* Variable given in a makefile. */ + o_env_override, /* Variable from environment, if -e. */ + o_command, /* Variable given by user. */ + o_override, /* Variable from an `override' directive. */ + o_automatic, /* Automatic variable -- cannot be set. */ + o_invalid /* Core dump time. */ + }; + +enum variable_flavor + { + f_bogus, /* Bogus (error) */ + f_simple, /* Simple definition (:=) */ + f_recursive, /* Recursive definition (=) */ + f_append, /* Appending definition (+=) */ + f_conditional /* Conditional definition (?=) */ + }; + +/* Structure that represents one variable definition. + Each bucket of the hash table is a chain of these, + chained through `next'. */ + +#define EXP_COUNT_BITS 15 /* This gets all the bitfields into 32 bits */ + +#define EXP_COUNT_MAX ((1<1, allow this many self-referential + expansions. */ + + enum variable_origin + origin ENUM_BITFIELD (3); /* Variable origin. */ + + unsigned int exportable:1; /* Nonzero if the variable _could_ be + exported. */ + enum variable_export + { + v_export, /* Export this variable. */ + v_noexport, /* Don't export this variable. */ + v_ifset, /* Export it if it has a non-default value. */ + v_default /* Decide in target_environment. */ + } export ENUM_BITFIELD (2); + }; + +/* Structure that represents a variable set. */ + +struct variable_set + { + struct hash_table table; /* Hash table of variables. */ + }; + +/* Structure that represents a list of variable sets. */ + +struct variable_set_list + { + struct variable_set_list *next; /* Link in the chain. */ + struct variable_set *set; /* Variable set. */ + }; + +extern char *variable_buffer; +extern struct variable_set_list *current_variable_set_list; + +/* expand.c */ +extern char *variable_buffer_output PARAMS ((char *ptr, char *string, unsigned int length)); +extern char *variable_expand PARAMS ((char *line)); +extern char *allocated_variable_expand_for_file PARAMS ((char *line, struct file *file)); +#define allocated_variable_expand(line) \ + allocated_variable_expand_for_file (line, (struct file *) 0) +extern char *expand_argument PARAMS ((char *str, char *end)); +extern char *variable_expand_string PARAMS ((char *line, char *string, + long length)); + +/* function.c */ +extern int handle_function PARAMS ((char **op, char **stringp)); +extern int pattern_matches PARAMS ((char *pattern, char *percent, char *str)); +extern char *subst_expand PARAMS ((char *o, char *text, char *subst, char *replace, + unsigned int slen, unsigned int rlen, int by_word, int suffix_only)); +extern char *patsubst_expand PARAMS ((char *o, char *text, char *pattern, char *replace, + char *pattern_percent, char *replace_percent)); + +/* expand.c */ +extern char *recursively_expand_for_file PARAMS ((struct variable *v, + struct file *file)); +#define recursively_expand(v) recursively_expand_for_file (v, NULL) + +/* variable.c */ +extern struct variable_set_list *create_new_variable_set PARAMS ((void)); +extern struct variable_set_list *push_new_variable_scope PARAMS ((void)); +extern void pop_variable_scope PARAMS ((void)); +extern void define_automatic_variables PARAMS ((void)); +extern void initialize_file_variables PARAMS ((struct file *file, int read)); +extern void print_file_variables PARAMS ((struct file *file)); +extern void print_variable_set PARAMS ((struct variable_set *set, char *prefix)); +extern void merge_variable_set_lists PARAMS ((struct variable_set_list **setlist0, struct variable_set_list *setlist1)); +extern struct variable *do_variable_definition PARAMS ((const struct floc *flocp, const char *name, char *value, enum variable_origin origin, enum variable_flavor flavor, int target_var)); +extern struct variable *try_variable_definition PARAMS ((const struct floc *flocp, char *line, enum variable_origin origin, int target_var)); +extern void init_hash_global_variable_set PARAMS ((void)); +extern void hash_init_function_table PARAMS ((void)); +extern struct variable *lookup_variable PARAMS ((const char *name, unsigned int length)); +extern struct variable *lookup_variable_in_set PARAMS ((const char *name, + unsigned int length, + const struct variable_set *set)); + +extern struct variable *define_variable_in_set + PARAMS ((const char *name, unsigned int length, char *value, + enum variable_origin origin, int recursive, + struct variable_set *set, const struct floc *flocp)); + +/* Define a variable in the current variable set. */ + +#define define_variable(n,l,v,o,r) \ + define_variable_in_set((n),(l),(v),(o),(r),\ + current_variable_set_list->set,NILF) + +/* Define a variable with a location in the current variable set. */ + +#define define_variable_loc(n,l,v,o,r,f) \ + define_variable_in_set((n),(l),(v),(o),(r),\ + current_variable_set_list->set,(f)) + +/* Define a variable with a location in the global variable set. */ + +#define define_variable_global(n,l,v,o,r,f) \ + define_variable_in_set((n),(l),(v),(o),(r),NULL,(f)) + +/* Define a variable in FILE's variable set. */ + +#define define_variable_for_file(n,l,v,o,r,f) \ + define_variable_in_set((n),(l),(v),(o),(r),(f)->variables->set,NILF) + +/* Warn that NAME is an undefined variable. */ + +#define warn_undefined(n,l) do{\ + if (warn_undefined_variables_flag) \ + error (reading_file, \ + _("warning: undefined variable `%.*s'"), \ + (int)(l), (n)); \ + }while(0) + +extern char **target_environment PARAMS ((struct file *file)); + +extern int export_all_variables; + +#define MAKELEVEL_NAME "MAKELEVEL" +#define MAKELEVEL_LENGTH (sizeof (MAKELEVEL_NAME) - 1) diff --git a/src/mkutil/make-3.80/version.c b/src/mkutil/make-3.80/version.c new file mode 100644 index 00000000..1918b6f7 --- /dev/null +++ b/src/mkutil/make-3.80/version.c @@ -0,0 +1,17 @@ +/* We use instead of "config.h" so that a compilation + using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h + (which it would do because make.h was found in $srcdir). */ +#include + +#ifndef MAKE_HOST +# define MAKE_HOST "unknown" +#endif + +char *version_string = VERSION; +char *make_host = MAKE_HOST; + +/* + Local variables: + version-control: never + End: + */ diff --git a/src/mkutil/make-3.80/vmsdir.h b/src/mkutil/make-3.80/vmsdir.h new file mode 100644 index 00000000..59034759 --- /dev/null +++ b/src/mkutil/make-3.80/vmsdir.h @@ -0,0 +1,61 @@ +/* dirent.h for vms */ + +#ifndef VMSDIR_H +#define VMSDIR_H + +#include + +#define MAXNAMLEN 255 + +#ifndef __DECC +#if !defined (__GNUC__) && !defined (__ALPHA) +typedef unsigned long u_long; +typedef unsigned short u_short; +#endif +#endif + +struct direct +{ + off_t d_off; + u_long d_fileno; + u_short d_reclen; + u_short d_namlen; + char d_name[MAXNAMLEN + 1]; +}; + +#undef DIRSIZ +#define DIRSIZ(dp) \ + (((sizeof (struct direct) \ + - (MAXNAMLEN+1) \ + + ((dp)->d_namlen+1)) \ + + 3) & ~3) + +#define d_ino d_fileno /* compatability */ + + +/* + * Definitions for library routines operating on directories. + */ + +typedef struct DIR +{ + struct direct dir; + char d_result[MAXNAMLEN + 1]; +#if defined (__ALPHA) || defined (__DECC) + struct FAB fab; +#else + struct fabdef fab; +#endif +} DIR; + +#ifndef NULL +#define NULL 0 +#endif + +extern DIR *opendir PARAMS (()); +extern struct direct *readdir PARAMS ((DIR *dfd)); +#define rewinddir(dirp) seekdir((dirp), (long)0) +extern int closedir PARAMS ((DIR *dfd)); +extern char *vmsify PARAMS ((char *name, int type)); + +#endif /* VMSDIR_H */ diff --git a/src/mkutil/make-3.80/vmsfunctions.c b/src/mkutil/make-3.80/vmsfunctions.c new file mode 100644 index 00000000..f6708cc1 --- /dev/null +++ b/src/mkutil/make-3.80/vmsfunctions.c @@ -0,0 +1,261 @@ +/* vmsfunctions.c */ + +#include "make.h" +#include "debug.h" + +#ifdef __DECC +#include +#endif +#include +#include +#include +#include +#include +#include "vmsdir.h" + +#ifdef HAVE_VMSDIR_H + +DIR * +opendir (dspec) + char *dspec; +{ + struct DIR *dir = (struct DIR *)xmalloc (sizeof (struct DIR)); + struct NAM *dnam = (struct NAM *)xmalloc (sizeof (struct NAM)); + struct FAB *dfab = &dir->fab; + char *searchspec = (char *)xmalloc (MAXNAMLEN + 1); + + memset (dir, 0, sizeof *dir); + + *dfab = cc$rms_fab; + *dnam = cc$rms_nam; + sprintf (searchspec, "%s*.*;", dspec); + + dfab->fab$l_fna = searchspec; + dfab->fab$b_fns = strlen (searchspec); + dfab->fab$l_nam = dnam; + + *dnam = cc$rms_nam; + dnam->nam$l_esa = searchspec; + dnam->nam$b_ess = MAXNAMLEN; + + if (! (sys$parse (dfab) & 1)) + { + free (dir); + free (dnam); + free (searchspec); + return (NULL); + } + + return dir; +} + +#define uppercasify(str) \ + do \ + { \ + char *tmp; \ + for (tmp = (str); *tmp != '\0'; tmp++) \ + if (islower ((unsigned char)*tmp)) \ + *tmp = toupper ((unsigned char)*tmp); \ + } \ + while (0) + +struct direct * +readdir (dir) + DIR * dir; +{ + struct FAB *dfab = &dir->fab; + struct NAM *dnam = (struct NAM *)(dfab->fab$l_nam); + struct direct *dentry = &dir->dir; + int i; + + memset (dentry, 0, sizeof *dentry); + + dnam->nam$l_rsa = dir->d_result; + dnam->nam$b_rss = MAXNAMLEN; + + DB (DB_VERBOSE, (".")); + + if (!((i = sys$search (dfab)) & 1)) + { + DB (DB_VERBOSE, (_("sys$search failed with %d\n"), i)); + return (NULL); + } + + dentry->d_off = 0; + if (dnam->nam$w_fid == 0) + dentry->d_fileno = 1; + else + dentry->d_fileno = dnam->nam$w_fid[0] + (dnam->nam$w_fid[1] << 16); + + dentry->d_reclen = sizeof (struct direct); + dentry->d_namlen = dnam->nam$b_name + dnam->nam$b_type; + strncpy (dentry->d_name, dnam->nam$l_name, dentry->d_namlen); + dentry->d_name[dentry->d_namlen] = '\0'; + uppercasify (dentry->d_name); + + return (dentry); +} + +int +closedir (dir) + DIR *dir; +{ + if (dir != NULL) + { + struct FAB *dfab = &dir->fab; + struct NAM *dnam = (struct NAM *)(dfab->fab$l_nam); + if (dnam != NULL) + free (dnam->nam$l_esa); + free (dnam); + free (dir); + } + + return 0; +} +#endif /* compiled for OpenVMS prior to V7.x */ + +char * +getwd (cwd) + char *cwd; +{ + static char buf[512]; + + if (cwd) + return (getcwd (cwd, 512)); + else + return (getcwd (buf, 512)); +} + +int +vms_stat (name, buf) + char *name; + struct stat *buf; +{ + int status; + int i; + + static struct FAB Fab; + static struct NAM Nam; + static struct fibdef Fib; /* short fib */ + static struct dsc$descriptor FibDesc = + { sizeof (Fib), DSC$K_DTYPE_Z, DSC$K_CLASS_S, (char *) &Fib }; + static struct dsc$descriptor_s DevDesc = + { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, &Nam.nam$t_dvi[1] }; + static char EName[NAM$C_MAXRSS]; + static char RName[NAM$C_MAXRSS]; + static struct dsc$descriptor_s FileName = + { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0 }; + static struct dsc$descriptor_s string = + { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, 0 }; + static unsigned long Rdate[2]; + static unsigned long Cdate[2]; + static struct atrdef Atr[] = + { +#if defined(VAX) + /* Revision date */ + { sizeof (Rdate), ATR$C_REVDATE, (unsigned int) &Rdate[0] }, + /* Creation date */ + { sizeof (Cdate), ATR$C_CREDATE, (unsigned int) &Cdate[0] }, +#else + /* Revision date */ + { sizeof (Rdate), ATR$C_REVDATE, &Rdate[0] }, + /* Creation date */ + { sizeof (Cdate), ATR$C_CREDATE, &Cdate[0]}, +#endif + { 0, 0, 0 } + }; + static short int DevChan; + static short int iosb[4]; + + name = vmsify (name, 0); + + /* initialize RMS structures, we need a NAM to retrieve the FID */ + Fab = cc$rms_fab; + Fab.fab$l_fna = name; /* name of file */ + Fab.fab$b_fns = strlen (name); + Fab.fab$l_nam = &Nam; /* FAB has an associated NAM */ + + Nam = cc$rms_nam; + Nam.nam$l_esa = EName; /* expanded filename */ + Nam.nam$b_ess = sizeof (EName); + Nam.nam$l_rsa = RName; /* resultant filename */ + Nam.nam$b_rss = sizeof (RName); + + /* do $PARSE and $SEARCH here */ + status = sys$parse (&Fab); + if (!(status & 1)) + return -1; + + DevDesc.dsc$w_length = Nam.nam$t_dvi[0]; + status = sys$assign (&DevDesc, &DevChan, 0, 0); + if (!(status & 1)) + return -1; + + FileName.dsc$a_pointer = Nam.nam$l_name; + FileName.dsc$w_length = Nam.nam$b_name + Nam.nam$b_type + Nam.nam$b_ver; + + /* Initialize the FIB */ + for (i = 0; i < 3; i++) + { +#ifndef __VAXC + Fib.fib$w_fid[i] = Nam.nam$w_fid[i]; + Fib.fib$w_did[i] = Nam.nam$w_did[i]; +#else + Fib.fib$r_fid_overlay.fib$w_fid[i] = Nam.nam$w_fid[i]; + Fib.fib$r_did_overlay.fib$w_did[i] = Nam.nam$w_did[i]; +#endif + } + + status = sys$qiow (0, DevChan, IO$_ACCESS, &iosb, 0, 0, + &FibDesc, &FileName, 0, 0, &Atr, 0); + sys$dassgn (DevChan); + if (!(status & 1)) + return -1; + status = iosb[0]; + if (!(status & 1)) + return -1; + + status = stat (name, buf); + if (status) + return -1; + + buf->st_mtime = ((Rdate[0] >> 24) & 0xff) + ((Rdate[1] << 8) & 0xffffff00); + buf->st_ctime = ((Cdate[0] >> 24) & 0xff) + ((Cdate[1] << 8) & 0xffffff00); + + return 0; +} + +char * +cvt_time (tval) + unsigned long tval; +{ + static long int date[2]; + static char str[27]; + static struct dsc$descriptor date_str = + { 26, DSC$K_DTYPE_T, DSC$K_CLASS_S, str }; + + date[0] = (tval & 0xff) << 24; + date[1] = ((tval >> 8) & 0xffffff); + + if ((date[0] == 0) && (date[1] == 0)) + return ("never"); + + sys$asctim (0, &date_str, date, 0); + str[26] = '\0'; + + return (str); +} + +int +strcmpi (s1, s2) + const char *s1; + const char *s2; +{ + while (*s1 != '\0' && toupper(*s1) == toupper(*s2)) + { + s1++; + s2++; + } + + return toupper(*(unsigned char *) s1) - toupper(*(unsigned char *) s2); +} diff --git a/src/mkutil/make-3.80/vmsify.c b/src/mkutil/make-3.80/vmsify.c new file mode 100644 index 00000000..f7871bb2 --- /dev/null +++ b/src/mkutil/make-3.80/vmsify.c @@ -0,0 +1,981 @@ +/* + vmsify.c + + Module for vms <-> unix file name conversion + + Written by Klaus Kämpf (kkaempf@progis.de) + of proGIS Software, Aachen, Germany + +*/ + +#include +#include +#include + +#if VMS +#include +#include +#include +#include +#include +#include +#include +#include +/* Initialize a string descriptor (struct dsc$descriptor_s) for an + arbitrary string. ADDR is a pointer to the first character + of the string, and LEN is the length of the string. */ + +#define INIT_DSC_S(dsc, addr, len) do { \ + (dsc).dsc$b_dtype = DSC$K_DTYPE_T; \ + (dsc).dsc$b_class = DSC$K_CLASS_S; \ + (dsc).dsc$w_length = (len); \ + (dsc).dsc$a_pointer = (addr); \ +} while (0) + +/* Initialize a string descriptor (struct dsc$descriptor_s) for a + NUL-terminated string. S is a pointer to the string; the length + is determined by calling strlen(). */ + +#define INIT_DSC_CSTRING(dsc, s) INIT_DSC_S(dsc, s, strlen(s)) +#endif + +/* + copy 'from' to 'to' up to but not including 'upto' + return 0 if eos on from + return 1 if upto found + + return 'to' at last char + 1 + return 'from' at match + 1 or eos if no match + + if as_dir == 1, change all '.' to '_' + else change all '.' but the last to '_' +*/ + +static int +copyto (char **to, char **from, char upto, int as_dir) +{ + char *s; + + s = strrchr (*from, '.'); + + while (**from) + { + if (**from == upto) + { + do + { + (*from)++; + } + while (**from == upto); + return 1; + } + if (**from == '.') + { + if ((as_dir == 1) + || (*from != s)) + **to = '_'; + else + **to = '.'; + } + else + { + if (isupper ((unsigned char)**from)) + **to = tolower ((unsigned char)**from); + else + **to = **from; + } + (*to)++; + (*from)++; + } + + return 0; +} + + +/* + get translation of logical name + +*/ + +static char * +trnlog (char *name) +{ + int stat; + static char reslt[1024]; + $DESCRIPTOR (reslt_dsc, reslt); + short resltlen; + struct dsc$descriptor_s name_dsc; + char *s; + + INIT_DSC_CSTRING (name_dsc, name); + + stat = lib$sys_trnlog (&name_dsc, &resltlen, &reslt_dsc); + + if ((stat&1) == 0) + { + return ""; + } + if (stat == SS$_NOTRAN) + { + return ""; + } + reslt[resltlen] = '\0'; + + s = (char *)malloc (resltlen+1); + if (s == 0) + return ""; + strcpy (s, reslt); + return s; +} + +static char * +showall (char *s) +{ + static char t[512]; + char *pt; + + pt = t; + if (strchr (s, '\\') == 0) + return s; + while (*s) + { + if (*s == '\\') + { + *pt++ = *s; + } + *pt++ = *s++; + } + return pt; +} + + +enum namestate { N_START, N_DEVICE, N_OPEN, N_DOT, N_CLOSED, N_DONE }; + +/* + convert unix style name to vms style + type = 0 -> name is a full name (directory and filename part) + type = 1 -> name is a directory + type = 2 -> name is a filename without directory + + The following conversions are applied + (0) (1) (2) + input full name dir name file name + +1 ./ [] .dir +2 ../ .dir + +3 // : :[000000] :000000.dir +4 //a a: a: a: +5 //a/ a: a: a:000000.dir + +9 / [000000] [000000] 000000.dir +10 /a [000000]a [a] [000000]a +11 /a/ [a] [a] [000000]a.dir +12 /a/b [a]b [a.b] [a]b +13 /a/b/ [a.b] [a.b] [a]b.dir +14 /a/b/c [a.b]c [a.b.c] [a.b]c +15 /a/b/c/ [a.b.c] [a.b.c] [a.b]c.dir + +16 a a [.a] a +17 a/ [.a] [.a] a.dir +18 a/b [.a]b [.a.b] [.a]b +19 a/b/ [.a.b] [.a.b] [.a]b.dir +20 a/b/c [.a.b]c [.a.b.c] [.a.b]c +21 a/b/c/ [.a.b.c] [.a.b.c] [.a.b]c.dir + +22 a.b.c a_b.c [.a_b_c] a_b_c.dir + +23 [x][y]z [x.y]z [x.y]z [x.y]z +24 [x][.y]z [x.y]z [x.y]z [x.y]z + +25 filenames with '$' are left unchanged if they contain no '/' +25 filenames with ':' are left unchanged +26 filenames with a single pair of '[' ']' are left unchanged + + the input string is not written to +*/ + +char * +vmsify (name, type) + char *name; + int type; +{ +/* max 255 device + max 39 directory + max 39 filename + max 39 filetype + max 5 version +*/ +#define MAXPATHLEN 512 + + enum namestate nstate; + static char vmsname[MAXPATHLEN+1]; + char *fptr; + char *vptr; + char *s,*s1; + int as_dir; + int count; + + if (name == 0) + return 0; + fptr = name; + vptr = vmsname; + nstate = N_START; + + /* case 25a */ + + s = strpbrk (name, "$:"); + if (s != 0) + { + char *s1; + char *s2; + + if (type == 1) + { + s1 = strchr (s+1, '['); + s2 = strchr (s+1, ']'); + } + + if (*s == '$') + { + if (strchr (name, '/') == 0) + { + if ((type == 1) && (s1 != 0) && (s2 == 0)) + { + strcpy (vmsname, name); + strcat (vmsname, "]"); + return vmsname; + } + else + return name; + } + } + else + { + if ((type == 1) && (s1 != 0) && (s2 == 0)) + { + strcpy (vmsname, name); + strcat (vmsname, "]"); + return vmsname; + } + else + return name; + } + } + + /* case 26 */ + + s = strchr (name, '['); + + if (s != 0) + { + s1 = strchr (s+1, '['); + if (s1 == 0) + { + if ((type == 1) + && (strchr (s+1, ']') == 0)) + { + strcpy (vmsname, name); + strcat (vmsname, "]"); + return vmsname; + } + else + return name; /* single [, keep unchanged */ + } + s1--; + if (*s1 != ']') + { + return name; /* not ][, keep unchanged */ + } + + /* we have ][ */ + + s = name; + + /* s -> starting char + s1 -> ending ']' */ + + do + { + strncpy (vptr, s, s1-s); /* copy up to but not including ']' */ + vptr += s1-s; + if (*s1 == 0) + break; + s = s1 + 1; /* s -> char behind ']' */ + if (*s != '[') /* was '][' ? */ + break; /* no, last ] found, exit */ + s++; + if (*s != '.') + *vptr++ = '.'; + s1 = strchr (s, ']'); + if (s1 == 0) /* no closing ] */ + s1 = s + strlen (s); + } + while (1); + + *vptr++ = ']'; + + fptr = s; + + } + + else /* no [ in name */ + + { + + int state; + int rooted = 1; /* flag if logical is rooted, else insert [000000] */ + + state = 0; + + do + { + + switch (state) + { + case 0: /* start of loop */ + if (*fptr == '/') + { + fptr++; + state = 1; + } + else if (*fptr == '.') + { + fptr++; + state = 10; + } + else + state = 2; + break; + + case 1: /* '/' at start */ + if (*fptr == '/') + { + fptr++; + state = 3; + } + else + state = 4; + break; + + case 2: /* no '/' at start */ + s = strchr (fptr, '/'); + if (s == 0) /* no '/' (16) */ + { + if (type == 1) + { + strcpy (vptr, "[."); + vptr += 2; + } + copyto (&vptr, &fptr, 0, (type==1)); + if (type == 1) + *vptr++ = ']'; + state = -1; + } + else /* found '/' (17..21) */ + { + if ((type == 2) + && (*(s+1) == 0)) /* 17(2) */ + { + copyto (&vptr, &fptr, '/', 1); + state = 7; + } + else + { + strcpy (vptr, "[."); + vptr += 2; + copyto (&vptr, &fptr, '/', 1); + nstate = N_OPEN; + state = 9; + } + } + break; + + case 3: /* '//' at start */ + while (*fptr == '/') /* collapse all '/' */ + fptr++; + if (*fptr == 0) /* just // */ + { + char cwdbuf[MAXPATHLEN+1]; + + s1 = getcwd(cwdbuf, MAXPATHLEN); + if (s1 == 0) + { + return ""; /* FIXME, err getcwd */ + } + s = strchr (s1, ':'); + if (s == 0) + { + return ""; /* FIXME, err no device */ + } + strncpy (vptr, s1, s-s1+1); + vptr += s-s1+1; + state = -1; + break; + } + + s = vptr; + + if (copyto (&vptr, &fptr, '/', 1) == 0) /* copy device part */ + { + *vptr++ = ':'; + state = -1; + break; + } + *vptr = ':'; + nstate = N_DEVICE; + if (*fptr == 0) /* just '//a/' */ + { + strcpy (vptr+1, "[000000]"); + vptr += 9; + state = -1; + break; + } + *vptr = 0; + /* check logical for [000000] insertion */ + s1 = trnlog (s); + if (*s1 != 0) + { /* found translation */ + char *s2; + for (;;) /* loop over all nested logicals */ + { + s2 = s1 + strlen (s1) - 1; + if (*s2 == ':') /* translation ends in ':' */ + { + s2 = trnlog (s1); + free (s1); + if (*s2 == 0) + { + rooted = 0; + break; + } + s1 = s2; + continue; /* next iteration */ + } + if (*s2 == ']') /* translation ends in ']' */ + { + if (*(s2-1) == '.') /* ends in '.]' */ + { + if (strncmp (fptr, "000000", 6) != 0) + rooted = 0; + } + else + { + strcpy (vmsname, s1); + s = strchr (vmsname, ']'); + *s = '.'; + nstate = N_DOT; + vptr = s; + } + } + break; + } + free (s1); + } + else + rooted = 0; + + if (*vptr == 0) + { + nstate = N_DEVICE; + *vptr++ = ':'; + } + else + vptr++; + + if (rooted == 0) + { + strcpy (vptr, "[000000."); + vptr += 8; + s1 = vptr-1; + nstate = N_DOT; + } + else + s1 = 0; + + /* s1-> '.' after 000000 or NULL */ + + s = strchr (fptr, '/'); + if (s == 0) + { /* no next '/' */ + if (*(vptr-1) == '.') + *(vptr-1) = ']'; + else if (rooted == 0) + *vptr++ = ']'; + copyto (&vptr, &fptr, 0, (type == 1)); + state = -1; + break; + } + else + { + while (*(s+1) == '/') /* skip multiple '/' */ + s++; + } + + if ((rooted != 0) + && (*(vptr-1) != '.')) + { + *vptr++ = '['; + nstate = N_DOT; + } + else + if ((nstate == N_DOT) + && (s1 != 0) + && (*(s+1) == 0)) + { + if (type == 2) + { + *s1 = ']'; + nstate = N_CLOSED; + } + } + state = 9; + break; + + case 4: /* single '/' at start (9..15) */ + if (*fptr == 0) + state = 5; + else + state = 6; + break; + + case 5: /* just '/' at start (9) */ + if (type != 2) + { + *vptr++ = '['; + nstate = N_OPEN; + } + strcpy (vptr, "000000"); + vptr += 6; + if (type == 2) + state = 7; + else + state = 8; + break; + + case 6: /* chars following '/' at start 10..15 */ + *vptr++ = '['; + nstate = N_OPEN; + s = strchr (fptr, '/'); + if (s == 0) /* 10 */ + { + if (type != 1) + { + strcpy (vptr, "000000]"); + vptr += 7; + } + copyto (&vptr, &fptr, 0, (type == 1)); + if (type == 1) + { + *vptr++ = ']'; + } + state = -1; + } + else /* 11..15 */ + { + if ( (type == 2) + && (*(s+1) == 0)) /* 11(2) */ + { + strcpy (vptr, "000000]"); + nstate = N_CLOSED; + vptr += 7; + } + copyto (&vptr, &fptr, '/', (*(vptr-1) != ']')); + state = 9; + } + break; + + case 7: /* add '.dir' and exit */ + if ((nstate == N_OPEN) + || (nstate == N_DOT)) + { + s = vptr-1; + while (s > vmsname) + { + if (*s == ']') + { + break; + } + if (*s == '.') + { + *s = ']'; + break; + } + s--; + } + } + strcpy (vptr, ".dir"); + vptr += 4; + state = -1; + break; + + case 8: /* add ']' and exit */ + *vptr++ = ']'; + state = -1; + break; + + case 9: /* 17..21, fptr -> 1st '/' + 1 */ + if (*fptr == 0) + { + if (type == 2) + { + state = 7; + } + else + state = 8; + break; + } + s = strchr (fptr, '/'); + if (s == 0) + { + if (type != 1) + { + if (nstate == N_OPEN) + { + *vptr++ = ']'; + nstate = N_CLOSED; + } + as_dir = 0; + } + else + { + if (nstate == N_OPEN) + { + *vptr++ = '.'; + nstate = N_DOT; + } + as_dir = 1; + } + } + else + { + while (*(s+1) == '/') + s++; + if ( (type == 2) + && (*(s+1) == 0)) /* 19(2), 21(2)*/ + { + if (nstate != N_CLOSED) + { + *vptr++ = ']'; + nstate = N_CLOSED; + } + as_dir = 1; + } + else + { + if (nstate == N_OPEN) + { + *vptr++ = '.'; + nstate = N_DOT; + } + as_dir = 1; + } + } + if ( (*fptr == '.') /* check for '..' or '../' */ + && (*(fptr+1) == '.') + && ((*(fptr+2) == '/') + || (*(fptr+2) == 0)) ) + { + fptr += 2; + if (*fptr == '/') + { + do + { + fptr++; + } + while (*fptr == '/'); + } + else if (*fptr == 0) + type = 1; + vptr--; /* vptr -> '.' or ']' */ + s1 = vptr; + for (;;) + { + s1--; + if (*s1 == '.') /* one back */ + { + vptr = s1; + nstate = N_OPEN; + break; + } + if (*s1 == '[') /* top level reached */ + { + if (*fptr == 0) + { + strcpy (s1, "[000000]"); + vptr = s1 + 8; + nstate = N_CLOSED; + s = 0; + break; + } + else + { + vptr = s1+1; + nstate = N_OPEN; + break; + } + } + } + } + else + { + copyto (&vptr, &fptr, '/', as_dir); + if (nstate == N_DOT) + nstate = N_OPEN; + } + if (s == 0) + { /* 18,20 */ + if (type == 1) + *vptr++ = ']'; + state = -1; + } + else + { + if (*(s+1) == 0) + { + if (type == 2) /* 19,21 */ + { + state = 7; + } + else + { + *vptr++ = ']'; + state = -1; + } + } + } + break; + + case 10: /* 1,2 first is '.' */ + if (*fptr == '.') + { + fptr++; + state = 11; + } + else + state = 12; + break; + + case 11: /* 2, '..' at start */ + count = 1; + if (*fptr != 0) + { + if (*fptr != '/') /* got ..xxx */ + { + return name; + } + do /* got ../ */ + { + fptr++; + while (*fptr == '/') fptr++; + if (*fptr != '.') + break; + if (*(fptr+1) != '.') + break; + fptr += 2; + if ((*fptr == 0) + || (*fptr == '/')) + count++; + } + while (*fptr == '/'); + } + { /* got '..' or '../' */ + char cwdbuf[MAXPATHLEN+1]; + + s1 = getcwd(cwdbuf, MAXPATHLEN); + if (s1 == 0) + { + return ""; /* FIXME, err getcwd */ + } + strcpy (vptr, s1); + s = strchr (vptr, ']'); + if (s != 0) + { + nstate = N_OPEN; + while (s > vptr) + { + s--; + if (*s == '[') + { + s++; + strcpy (s, "000000]"); + state = -1; + break; + } + else if (*s == '.') + { + if (--count == 0) + { + if (*fptr == 0) /* had '..' or '../' */ + { + *s++ = ']'; + state = -1; + } + else /* had '../xxx' */ + { + state = 9; + } + *s = 0; + break; + } + } + } + } + vptr += strlen (vptr); + } + break; + + case 12: /* 1, '.' at start */ + if (*fptr != 0) + { + if (*fptr != '/') + { + return name; + } + while (*fptr == '/') + fptr++; + } + + { + char cwdbuf[MAXPATHLEN+1]; + + s1 = getcwd(cwdbuf, MAXPATHLEN); + if (s1 == 0) + { + return ""; /*FIXME, err getcwd */ + } + strcpy (vptr, s1); + if (*fptr == 0) + { + state = -1; + break; + } + else + { + s = strchr (vptr, ']'); + if (s == 0) + { + state = -1; + break; + } + *s = 0; + nstate = N_OPEN; + vptr += strlen (vptr); + state = 9; + } + } + break; + } + + } + while (state > 0); + + + } + + + /* directory conversion done + fptr -> filename part of input string + vptr -> free space in vmsname + */ + + *vptr++ = 0; + + return vmsname; +} + + + +/* + convert from vms-style to unix-style + + dev:[dir1.dir2] //dev/dir1/dir2/ +*/ + +char * +unixify (char *name) +{ + static char piece[512]; + char *s, *p; + + if (strchr (name, '/') != 0) /* already in unix style */ + return name; + + p = piece; + *p = 0; + + /* device part */ + + s = strchr (name, ':'); + + if (s != 0) + { + *s = 0; + *p++ = '/'; + *p++ = '/'; + strcpy (p, name); + p += strlen (p); + *s = ':'; + } + + /* directory part */ + + *p++ = '/'; + s = strchr (name, '['); + + if (s != 0) + { + s++; + switch (*s) + { + case ']': /* [] */ + strcat (p, "./"); + break; + case '-': /* [- */ + strcat (p, "../"); + break; + case '.': + strcat (p, "./"); /* [. */ + break; + default: + s--; + break; + } + s++; + while (*s) + { + if (*s == '.') + *p++ = '/'; + else + *p++ = *s; + s++; + if (*s == ']') + { + s++; + break; + } + } + if (*s != 0) /* more after ']' ?? */ + { + if (*(p-1) != '/') + *p++ = '/'; + strcpy (p, s); /* copy it anyway */ + } + } + + else /* no '[' anywhere */ + + { + *p++ = 0; + } + + /* force end with '/' */ + + if (*(p-1) != '/') + *p++ = '/'; + *p = 0; + + return piece; +} + +/* EOF */ diff --git a/src/mkutil/make-3.80/vpath.c b/src/mkutil/make-3.80/vpath.c new file mode 100644 index 00000000..065779be --- /dev/null +++ b/src/mkutil/make-3.80/vpath.c @@ -0,0 +1,587 @@ +/* Implementation of pattern-matching file search paths for GNU Make. +Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc. +This file is part of GNU Make. + +GNU Make 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, or (at your option) +any later version. + +GNU Make 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 GNU Make; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include "make.h" +#include "filedef.h" +#include "variable.h" +#ifdef WINDOWS32 +#include "pathstuff.h" +#endif + + +/* Structure used to represent a selective VPATH searchpath. */ + +struct vpath + { + struct vpath *next; /* Pointer to next struct in the linked list. */ + char *pattern; /* The pattern to match. */ + char *percent; /* Pointer into `pattern' where the `%' is. */ + unsigned int patlen;/* Length of the pattern. */ + char **searchpath; /* Null-terminated list of directories. */ + unsigned int maxlen;/* Maximum length of any entry in the list. */ + }; + +/* Linked-list of all selective VPATHs. */ + +static struct vpath *vpaths; + +/* Structure for the general VPATH given in the variable. */ + +static struct vpath *general_vpath; + +/* Structure for GPATH given in the variable. */ + +static struct vpath *gpaths; + +static int selective_vpath_search PARAMS ((struct vpath *path, char **file, FILE_TIMESTAMP *mtime_ptr)); + +/* Reverse the chain of selective VPATH lists so they + will be searched in the order given in the makefiles + and construct the list from the VPATH variable. */ + +void +build_vpath_lists () +{ + register struct vpath *new = 0; + register struct vpath *old, *nexto; + register char *p; + + /* Reverse the chain. */ + for (old = vpaths; old != 0; old = nexto) + { + nexto = old->next; + old->next = new; + new = old; + } + + vpaths = new; + + /* If there is a VPATH variable with a nonnull value, construct the + general VPATH list from it. We use variable_expand rather than just + calling lookup_variable so that it will be recursively expanded. */ + + { + /* Turn off --warn-undefined-variables while we expand SHELL and IFS. */ + int save = warn_undefined_variables_flag; + warn_undefined_variables_flag = 0; + + p = variable_expand ("$(strip $(VPATH))"); + + warn_undefined_variables_flag = save; + } + + if (*p != '\0') + { + /* Save the list of vpaths. */ + struct vpath *save_vpaths = vpaths; + + /* Empty `vpaths' so the new one will have no next, and `vpaths' + will still be nil if P contains no existing directories. */ + vpaths = 0; + + /* Parse P. */ + construct_vpath_list ("%", p); + + /* Store the created path as the general path, + and restore the old list of vpaths. */ + general_vpath = vpaths; + vpaths = save_vpaths; + } + + /* If there is a GPATH variable with a nonnull value, construct the + GPATH list from it. We use variable_expand rather than just + calling lookup_variable so that it will be recursively expanded. */ + + { + /* Turn off --warn-undefined-variables while we expand SHELL and IFS. */ + int save = warn_undefined_variables_flag; + warn_undefined_variables_flag = 0; + + p = variable_expand ("$(strip $(GPATH))"); + + warn_undefined_variables_flag = save; + } + + if (*p != '\0') + { + /* Save the list of vpaths. */ + struct vpath *save_vpaths = vpaths; + + /* Empty `vpaths' so the new one will have no next, and `vpaths' + will still be nil if P contains no existing directories. */ + vpaths = 0; + + /* Parse P. */ + construct_vpath_list ("%", p); + + /* Store the created path as the GPATH, + and restore the old list of vpaths. */ + gpaths = vpaths; + vpaths = save_vpaths; + } +} + +/* Construct the VPATH listing for the pattern and searchpath given. + + This function is called to generate selective VPATH lists and also for + the general VPATH list (which is in fact just a selective VPATH that + is applied to everything). The returned pointer is either put in the + linked list of all selective VPATH lists or in the GENERAL_VPATH + variable. + + If SEARCHPATH is nil, remove all previous listings with the same + pattern. If PATTERN is nil, remove all VPATH listings. Existing + and readable directories that are not "." given in the searchpath + separated by the path element separator (defined in make.h) are + loaded into the directory hash table if they are not there already + and put in the VPATH searchpath for the given pattern with trailing + slashes stripped off if present (and if the directory is not the + root, "/"). The length of the longest entry in the list is put in + the structure as well. The new entry will be at the head of the + VPATHS chain. */ + +void +construct_vpath_list (pattern, dirpath) + char *pattern, *dirpath; +{ + register unsigned int elem; + register char *p; + register char **vpath; + register unsigned int maxvpath; + unsigned int maxelem; + char *percent = NULL; + + if (pattern != 0) + { + pattern = xstrdup (pattern); + percent = find_percent (pattern); + } + + if (dirpath == 0) + { + /* Remove matching listings. */ + register struct vpath *path, *lastpath; + + lastpath = 0; + path = vpaths; + while (path != 0) + { + struct vpath *next = path->next; + + if (pattern == 0 + || (((percent == 0 && path->percent == 0) + || (percent - pattern == path->percent - path->pattern)) + && streq (pattern, path->pattern))) + { + /* Remove it from the linked list. */ + if (lastpath == 0) + vpaths = path->next; + else + lastpath->next = next; + + /* Free its unused storage. */ + free (path->pattern); + free ((char *) path->searchpath); + free ((char *) path); + } + else + lastpath = path; + + path = next; + } + + if (pattern != 0) + free (pattern); + return; + } + +#ifdef WINDOWS32 + convert_vpath_to_windows32(dirpath, ';'); +#endif + + /* Figure out the maximum number of VPATH entries and put it in + MAXELEM. We start with 2, one before the first separator and one + nil (the list terminator) and increment our estimated number for + each separator or blank we find. */ + maxelem = 2; + p = dirpath; + while (*p != '\0') + if (*p++ == PATH_SEPARATOR_CHAR || isblank ((unsigned char)*p)) + ++maxelem; + + vpath = (char **) xmalloc (maxelem * sizeof (char *)); + maxvpath = 0; + + /* Skip over any initial separators and blanks. */ + p = dirpath; + while (*p == PATH_SEPARATOR_CHAR || isblank ((unsigned char)*p)) + ++p; + + elem = 0; + while (*p != '\0') + { + char *v; + unsigned int len; + + /* Find the end of this entry. */ + v = p; + while (*p != '\0' && *p != PATH_SEPARATOR_CHAR + && !isblank ((unsigned char)*p)) + ++p; + + len = p - v; + /* Make sure there's no trailing slash, + but still allow "/" as a directory. */ +#ifdef __MSDOS__ + /* We need also to leave alone a trailing slash in "d:/". */ + if (len > 3 || (len > 1 && v[1] != ':')) +#endif + if (len > 1 && p[-1] == '/') + --len; + + if (len > 1 || *v != '.') + { + v = savestring (v, len); + + /* Verify that the directory actually exists. */ + + if (dir_file_exists_p (v, "")) + { + /* It does. Put it in the list. */ + vpath[elem++] = dir_name (v); + free (v); + if (len > maxvpath) + maxvpath = len; + } + else + /* The directory does not exist. Omit from the list. */ + free (v); + } + + /* Skip over separators and blanks between entries. */ + while (*p == PATH_SEPARATOR_CHAR || isblank ((unsigned char)*p)) + ++p; + } + + if (elem > 0) + { + struct vpath *path; + /* ELEM is now incremented one element past the last + entry, to where the nil-pointer terminator goes. + Usually this is maxelem - 1. If not, shrink down. */ + if (elem < (maxelem - 1)) + vpath = (char **) xrealloc ((char *) vpath, + (elem + 1) * sizeof (char *)); + + /* Put the nil-pointer terminator on the end of the VPATH list. */ + vpath[elem] = 0; + + /* Construct the vpath structure and put it into the linked list. */ + path = (struct vpath *) xmalloc (sizeof (struct vpath)); + path->searchpath = vpath; + path->maxlen = maxvpath; + path->next = vpaths; + vpaths = path; + + /* Set up the members. */ + path->pattern = pattern; + path->percent = percent; + path->patlen = strlen (pattern); + } + else + { + /* There were no entries, so free whatever space we allocated. */ + free ((char *) vpath); + if (pattern != 0) + free (pattern); + } +} + +/* Search the GPATH list for a pathname string that matches the one passed + in. If it is found, return 1. Otherwise we return 0. */ + +int +gpath_search (file, len) + char *file; + int len; +{ + register char **gp; + + if (gpaths && (len <= gpaths->maxlen)) + for (gp = gpaths->searchpath; *gp != NULL; ++gp) + if (strneq (*gp, file, len) && (*gp)[len] == '\0') + return 1; + + return 0; +} + +/* Search the VPATH list whose pattern matches *FILE for a directory + where the name pointed to by FILE exists. If it is found, we set *FILE to + the newly malloc'd name of the existing file, *MTIME_PTR (if MTIME_PTR is + not NULL) to its modtime (or zero if no stat call was done), and return 1. + Otherwise we return 0. */ + +int +vpath_search (file, mtime_ptr) + char **file; + FILE_TIMESTAMP *mtime_ptr; +{ + register struct vpath *v; + + /* If there are no VPATH entries or FILENAME starts at the root, + there is nothing we can do. */ + + if (**file == '/' +#ifdef HAVE_DOS_PATHS + || **file == '\\' + || (*file)[1] == ':' +#endif + || (vpaths == 0 && general_vpath == 0)) + return 0; + + for (v = vpaths; v != 0; v = v->next) + if (pattern_matches (v->pattern, v->percent, *file)) + if (selective_vpath_search (v, file, mtime_ptr)) + return 1; + + if (general_vpath != 0 + && selective_vpath_search (general_vpath, file, mtime_ptr)) + return 1; + + return 0; +} + + +/* Search the given VPATH list for a directory where the name pointed + to by FILE exists. If it is found, we set *FILE to the newly malloc'd + name of the existing file, *MTIME_PTR (if MTIME_PTR is not NULL) to + its modtime (or zero if no stat call was done), and we return 1. + Otherwise we return 0. */ + +static int +selective_vpath_search (path, file, mtime_ptr) + struct vpath *path; + char **file; + FILE_TIMESTAMP *mtime_ptr; +{ + int not_target; + char *name, *n; + char *filename; + register char **vpath = path->searchpath; + unsigned int maxvpath = path->maxlen; + register unsigned int i; + unsigned int flen, vlen, name_dplen; + int exists = 0; + + /* Find out if *FILE is a target. + If and only if it is NOT a target, we will accept prospective + files that don't exist but are mentioned in a makefile. */ + { + struct file *f = lookup_file (*file); + not_target = f == 0 || !f->is_target; + } + + flen = strlen (*file); + + /* Split *FILE into a directory prefix and a name-within-directory. + NAME_DPLEN gets the length of the prefix; FILENAME gets the + pointer to the name-within-directory and FLEN is its length. */ + + n = strrchr (*file, '/'); +#ifdef HAVE_DOS_PATHS + /* We need the rightmost slash or backslash. */ + { + char *bslash = strrchr(*file, '\\'); + if (!n || bslash > n) + n = bslash; + } +#endif + name_dplen = n != 0 ? n - *file : 0; + filename = name_dplen > 0 ? n + 1 : *file; + if (name_dplen > 0) + flen -= name_dplen + 1; + + /* Allocate enough space for the biggest VPATH entry, + a slash, the directory prefix that came with *FILE, + another slash (although this one may not always be + necessary), the filename, and a null terminator. */ + name = (char *) xmalloc (maxvpath + 1 + name_dplen + 1 + flen + 1); + + /* Try each VPATH entry. */ + for (i = 0; vpath[i] != 0; ++i) + { + int exists_in_cache = 0; + + n = name; + + /* Put the next VPATH entry into NAME at N and increment N past it. */ + vlen = strlen (vpath[i]); + bcopy (vpath[i], n, vlen); + n += vlen; + + /* Add the directory prefix already in *FILE. */ + if (name_dplen > 0) + { +#ifndef VMS + *n++ = '/'; +#endif + bcopy (*file, n, name_dplen); + n += name_dplen; + } + +#ifdef HAVE_DOS_PATHS + /* Cause the next if to treat backslash and slash alike. */ + if (n != name && n[-1] == '\\' ) + n[-1] = '/'; +#endif + /* Now add the name-within-directory at the end of NAME. */ +#ifndef VMS + if (n != name && n[-1] != '/') + { + *n = '/'; + bcopy (filename, n + 1, flen + 1); + } + else +#endif + bcopy (filename, n, flen + 1); + + /* Check if the file is mentioned in a makefile. If *FILE is not + a target, that is enough for us to decide this file exists. + If *FILE is a target, then the file must be mentioned in the + makefile also as a target to be chosen. + + The restriction that *FILE must not be a target for a + makefile-mentioned file to be chosen was added by an + inadequately commented change in July 1990; I am not sure off + hand what problem it fixes. + + In December 1993 I loosened this restriction to allow a file + to be chosen if it is mentioned as a target in a makefile. This + seem logical. */ + { + struct file *f = lookup_file (name); + if (f != 0) + exists = not_target || f->is_target; + } + + if (!exists) + { + /* That file wasn't mentioned in the makefile. + See if it actually exists. */ + +#ifdef VMS + exists_in_cache = exists = dir_file_exists_p (vpath[i], filename); +#else + /* Clobber a null into the name at the last slash. + Now NAME is the name of the directory to look in. */ + *n = '\0'; + + /* We know the directory is in the hash table now because either + construct_vpath_list or the code just above put it there. + Does the file we seek exist in it? */ + exists_in_cache = exists = dir_file_exists_p (name, filename); +#endif + } + + if (exists) + { + /* The file is in the directory cache. + Now check that it actually exists in the filesystem. + The cache may be out of date. When vpath thinks a file + exists, but stat fails for it, confusion results in the + higher levels. */ + + struct stat st; + +#ifndef VMS + /* Put the slash back in NAME. */ + *n = '/'; +#endif + + if (!exists_in_cache /* Makefile-mentioned file need not exist. */ + || stat (name, &st) == 0) /* Does it really exist? */ + { + /* We have found a file. + Store the name we found into *FILE for the caller. */ + + *file = savestring (name, (n + 1 - name) + flen); + + if (mtime_ptr != 0) + /* Store the modtime into *MTIME_PTR for the caller. + If we have had no need to stat the file here, + we record UNKNOWN_MTIME to indicate this. */ + *mtime_ptr = (exists_in_cache + ? FILE_TIMESTAMP_STAT_MODTIME (name, st) + : UNKNOWN_MTIME); + + free (name); + return 1; + } + else + exists = 0; + } + } + + free (name); + return 0; +} + +/* Print the data base of VPATH search paths. */ + +void +print_vpath_data_base () +{ + register unsigned int nvpaths; + register struct vpath *v; + + puts (_("\n# VPATH Search Paths\n")); + + nvpaths = 0; + for (v = vpaths; v != 0; v = v->next) + { + register unsigned int i; + + ++nvpaths; + + printf ("vpath %s ", v->pattern); + + for (i = 0; v->searchpath[i] != 0; ++i) + printf ("%s%c", v->searchpath[i], + v->searchpath[i + 1] == 0 ? '\n' : PATH_SEPARATOR_CHAR); + } + + if (vpaths == 0) + puts (_("# No `vpath' search paths.")); + else + printf (_("\n# %u `vpath' search paths.\n"), nvpaths); + + if (general_vpath == 0) + puts (_("\n# No general (`VPATH' variable) search path.")); + else + { + register char **path = general_vpath->searchpath; + register unsigned int i; + + fputs (_("\n# General (`VPATH' variable) search path:\n# "), stdout); + + for (i = 0; path[i] != 0; ++i) + printf ("%s%c", path[i], + path[i + 1] == 0 ? '\n' : PATH_SEPARATOR_CHAR); + } +} diff --git a/src/mkutil/make-3.80/w32/compat/dirent.c b/src/mkutil/make-3.80/w32/compat/dirent.c new file mode 100644 index 00000000..db871a90 --- /dev/null +++ b/src/mkutil/make-3.80/w32/compat/dirent.c @@ -0,0 +1,188 @@ +#include +#include +#include +#include +#include +#include "dirent.h" + + +DIR* +opendir(const char* pDirName) +{ + struct stat sb; + DIR* pDir; + char* pEndDirName; + int nBufferLen; + + /* sanity checks */ + if (!pDirName) { + errno = EINVAL; + return NULL; + } + if (stat(pDirName, &sb) != 0) { + errno = ENOENT; + return NULL; + } + if ((sb.st_mode & S_IFMT) != S_IFDIR) { + errno = ENOTDIR; + return NULL; + } + + /* allocate a DIR structure to return */ + pDir = (DIR *) malloc(sizeof (DIR)); + + if (!pDir) + return NULL; + + /* input directory name length */ + nBufferLen = strlen(pDirName); + + /* copy input directory name to DIR buffer */ + strcpy(pDir->dir_pDirectoryName, pDirName); + + /* point to end of the copied directory name */ + pEndDirName = &pDir->dir_pDirectoryName[nBufferLen - 1]; + + /* if directory name did not end in '/' or '\', add '/' */ + if ((*pEndDirName != '/') && (*pEndDirName != '\\')) { + pEndDirName++; + *pEndDirName = '/'; + } + + /* now append the wildcard character to the buffer */ + pEndDirName++; + *pEndDirName = '*'; + pEndDirName++; + *pEndDirName = '\0'; + + /* other values defaulted */ + pDir->dir_nNumFiles = 0; + pDir->dir_hDirHandle = INVALID_HANDLE_VALUE; + pDir->dir_ulCookie = __DIRENT_COOKIE; + + return pDir; +} + +void +closedir(DIR *pDir) +{ + /* got a valid pointer? */ + if (!pDir) { + errno = EINVAL; + return; + } + + /* sanity check that this is a DIR pointer */ + if (pDir->dir_ulCookie != __DIRENT_COOKIE) { + errno = EINVAL; + return; + } + + /* close the WINDOWS32 directory handle */ + if (pDir->dir_hDirHandle != INVALID_HANDLE_VALUE) + FindClose(pDir->dir_hDirHandle); + + free(pDir); + + return; +} + +struct dirent * +readdir(DIR* pDir) +{ + WIN32_FIND_DATA wfdFindData; + + if (!pDir) { + errno = EINVAL; + return NULL; + } + + /* sanity check that this is a DIR pointer */ + if (pDir->dir_ulCookie != __DIRENT_COOKIE) { + errno = EINVAL; + return NULL; + } + + if (pDir->dir_nNumFiles == 0) { + pDir->dir_hDirHandle = FindFirstFile(pDir->dir_pDirectoryName, &wfdFindData); + if (pDir->dir_hDirHandle == INVALID_HANDLE_VALUE) + return NULL; + } else if (!FindNextFile(pDir->dir_hDirHandle, &wfdFindData)) + return NULL; + + /* bump count for next call to readdir() or telldir() */ + pDir->dir_nNumFiles++; + + /* fill in struct dirent values */ + pDir->dir_sdReturn.d_ino = -1; + strcpy(pDir->dir_sdReturn.d_name, wfdFindData.cFileName); + + return &pDir->dir_sdReturn; +} + +void +rewinddir(DIR* pDir) +{ + if (!pDir) { + errno = EINVAL; + return; + } + + /* sanity check that this is a DIR pointer */ + if (pDir->dir_ulCookie != __DIRENT_COOKIE) { + errno = EINVAL; + return; + } + + /* close the WINDOWS32 directory handle */ + if (pDir->dir_hDirHandle != INVALID_HANDLE_VALUE) + if (!FindClose(pDir->dir_hDirHandle)) + errno = EBADF; + + /* reset members which control readdir() */ + pDir->dir_hDirHandle = INVALID_HANDLE_VALUE; + pDir->dir_nNumFiles = 0; + + return; +} + +int +telldir(DIR* pDir) +{ + if (!pDir) { + errno = EINVAL; + return -1; + } + + /* sanity check that this is a DIR pointer */ + if (pDir->dir_ulCookie != __DIRENT_COOKIE) { + errno = EINVAL; + return -1; + } + + /* return number of times readdir() called */ + return pDir->dir_nNumFiles; +} + +void +seekdir(DIR* pDir, long nPosition) +{ + if (!pDir) + return; + + /* sanity check that this is a DIR pointer */ + if (pDir->dir_ulCookie != __DIRENT_COOKIE) + return; + + /* go back to beginning of directory */ + rewinddir(pDir); + + /* loop until we have found position we care about */ + for (--nPosition; nPosition && readdir(pDir); nPosition--); + + /* flag invalid nPosition value */ + if (nPosition) + errno = EINVAL; + + return; +} diff --git a/src/mkutil/make-3.80/w32/include/dirent.h b/src/mkutil/make-3.80/w32/include/dirent.h new file mode 100644 index 00000000..3437bd06 --- /dev/null +++ b/src/mkutil/make-3.80/w32/include/dirent.h @@ -0,0 +1,37 @@ +#ifndef _DIRENT_H +#define _DIRENT_H + +#include +#include +#include +#include + +#ifndef NAME_MAX +#define NAME_MAX 255 +#endif + +#define __DIRENT_COOKIE 0xfefeabab + + +struct dirent +{ + ino_t d_ino; /* unused - no equivalent on WINDOWS32 */ + char d_name[NAME_MAX+1]; +}; + +typedef struct dir_struct { + ULONG dir_ulCookie; + HANDLE dir_hDirHandle; + DWORD dir_nNumFiles; + char dir_pDirectoryName[NAME_MAX+1]; + struct dirent dir_sdReturn; +} DIR; + +DIR *opendir(const char *); +struct dirent *readdir(DIR *); +void rewinddir(DIR *); +void closedir(DIR *); +int telldir(DIR *); +void seekdir(DIR *, long); + +#endif diff --git a/src/mkutil/make-3.80/w32/include/pathstuff.h b/src/mkutil/make-3.80/w32/include/pathstuff.h new file mode 100644 index 00000000..a036f7b2 --- /dev/null +++ b/src/mkutil/make-3.80/w32/include/pathstuff.h @@ -0,0 +1,9 @@ +#ifndef _PATHSTUFF_H +#define _PATHSTUFF_H + +extern char * convert_Path_to_windows32(char *Path, char to_delim); +extern char * convert_vpath_to_windows32(char *Path, char to_delim); +extern char * w32ify(char *file, int resolve); +extern char * getcwd_fs(char *buf, int len); + +#endif diff --git a/src/mkutil/make-3.80/w32/include/sub_proc.h b/src/mkutil/make-3.80/w32/include/sub_proc.h new file mode 100644 index 00000000..9cc54a57 --- /dev/null +++ b/src/mkutil/make-3.80/w32/include/sub_proc.h @@ -0,0 +1,47 @@ +#ifndef SUB_PROC_H +#define SUB_PROC_H + +/* + * Component Name: + * + * $Date: 1997/08/27 20:34:23 $ + * + * $Source: /cvsroot/make/make/w32/include/sub_proc.h,v $ + * + * $Revision: 1.4 $ + */ + +/* $Id: sub_proc.h,v 1.4 1997/08/27 20:34:23 psmith Exp $ */ + +#ifdef WINDOWS32 + +#define EXTERN_DECL(entry, args) extern entry args +#define VOID_DECL void + +EXTERN_DECL(HANDLE process_init, (VOID_DECL)); +EXTERN_DECL(HANDLE process_init_fd, (HANDLE stdinh, HANDLE stdouth, + HANDLE stderrh)); +EXTERN_DECL(long process_begin, (HANDLE proc, char **argv, char **envp, + char *exec_path, char *as_user)); +EXTERN_DECL(long process_pipe_io, (HANDLE proc, char *stdin_data, + int stdin_data_len)); +EXTERN_DECL(long process_file_io, (HANDLE proc)); +EXTERN_DECL(void process_cleanup, (HANDLE proc)); +EXTERN_DECL(HANDLE process_wait_for_any, (VOID_DECL)); +EXTERN_DECL(void process_register, (HANDLE proc)); +EXTERN_DECL(HANDLE process_easy, (char** argv, char** env)); +EXTERN_DECL(BOOL process_kill, (HANDLE proc, int signal)); + +/* support routines */ +EXTERN_DECL(long process_errno, (HANDLE proc)); +EXTERN_DECL(long process_last_err, (HANDLE proc)); +EXTERN_DECL(long process_exit_code, (HANDLE proc)); +EXTERN_DECL(long process_signal, (HANDLE proc)); +EXTERN_DECL(char * process_outbuf, (HANDLE proc)); +EXTERN_DECL(char * process_errbuf, (HANDLE proc)); +EXTERN_DECL(int process_outcnt, (HANDLE proc)); +EXTERN_DECL(int process_errcnt, (HANDLE proc)); +EXTERN_DECL(void process_pipes, (HANDLE proc, int pipes[3])); + +#endif +#endif diff --git a/src/mkutil/make-3.80/w32/include/w32err.h b/src/mkutil/make-3.80/w32/include/w32err.h new file mode 100644 index 00000000..68a65906 --- /dev/null +++ b/src/mkutil/make-3.80/w32/include/w32err.h @@ -0,0 +1,10 @@ +#ifndef _W32ERR_H_ +#define _W32ERR_H_ + +#ifndef EXTERN_DECL +#define EXTERN_DECL(entry, args) entry args +#endif + +EXTERN_DECL(char * map_windows32_error_to_string, (DWORD error)); + +#endif /* !_W32ERR_H */ diff --git a/src/mkutil/make-3.80/w32/pathstuff.c b/src/mkutil/make-3.80/w32/pathstuff.c new file mode 100644 index 00000000..d8f38453 --- /dev/null +++ b/src/mkutil/make-3.80/w32/pathstuff.c @@ -0,0 +1,238 @@ +#include +#include +#include "make.h" +#include "pathstuff.h" + +/* + * Convert delimiter separated vpath to Canonical format. + */ +char * +convert_vpath_to_windows32(char *Path, char to_delim) +{ + char *etok; /* token separator for old Path */ + + /* + * Convert all spaces to delimiters. Note that pathnames which + * contain blanks get trounced here. Use 8.3 format as a workaround. + */ + for (etok = Path; etok && *etok; etok++) + if (isblank ((unsigned char) *etok)) + *etok = to_delim; + + return (convert_Path_to_windows32(Path, to_delim)); +} + +/* + * Convert delimiter separated path to Canonical format. + */ +char * +convert_Path_to_windows32(char *Path, char to_delim) +{ + char *etok; /* token separator for old Path */ + char *p; /* points to element of old Path */ + + /* is this a multi-element Path ? */ + for (p = Path, etok = strpbrk(p, ":;"); + etok; + etok = strpbrk(p, ":;")) + if ((etok - p) == 1) { + if (*(etok - 1) == ';' || + *(etok - 1) == ':') { + etok[-1] = to_delim; + etok[0] = to_delim; + p = ++etok; + continue; /* ignore empty bucket */ + } else if (!isalpha ((unsigned char) *p)) { + /* found one to count, handle things like '.' */ + *etok = to_delim; + p = ++etok; + } else if ((*etok == ':') && (etok = strpbrk(etok+1, ":;"))) { + /* found one to count, handle drive letter */ + *etok = to_delim; + p = ++etok; + } else + /* all finished, force abort */ + p += strlen(p); + } else { + /* found another one, no drive letter */ + *etok = to_delim; + p = ++etok; + } + + return Path; +} + +/* + * Convert to forward slashes. Resolve to full pathname optionally + */ +char * +w32ify(char *filename, int resolve) +{ + static char w32_path[FILENAME_MAX]; + char *p; + + if (resolve) + _fullpath(w32_path, filename, sizeof (w32_path)); + else + strncpy(w32_path, filename, sizeof (w32_path)); + + for (p = w32_path; p && *p; p++) + if (*p == '\\') + *p = '/'; + + return w32_path; +} + +char * +getcwd_fs(char* buf, int len) +{ + char *p; + + if (p = getcwd(buf, len)) { + char *q = w32ify(buf, 0); + strncpy(buf, q, len); + } + + return p; +} + +#ifdef unused +/* + * Convert delimiter separated pathnames (e.g. PATH) or single file pathname + * (e.g. c:/foo, c:\bar) to NutC format. If we are handed a string that + * _NutPathToNutc() fails to convert, just return the path we were handed + * and assume the caller will know what to do with it (It was probably + * a mistake to try and convert it anyway due to some of the bizarre things + * that might look like pathnames in makefiles). + */ +char * +convert_path_to_nutc(char *path) +{ + int count; /* count of path elements */ + char *nutc_path; /* new NutC path */ + int nutc_path_len; /* length of buffer to allocate for new path */ + char *pathp; /* pointer to nutc_path used to build it */ + char *etok; /* token separator for old path */ + char *p; /* points to element of old path */ + char sep; /* what flavor of separator used in old path */ + char *rval; + + /* is this a multi-element path ? */ + for (p = path, etok = strpbrk(p, ":;"), count = 0; + etok; + etok = strpbrk(p, ":;")) + if ((etok - p) == 1) { + if (*(etok - 1) == ';' || + *(etok - 1) == ':') { + p = ++etok; + continue; /* ignore empty bucket */ + } else if (etok = strpbrk(etok+1, ":;")) + /* found one to count, handle drive letter */ + p = ++etok, count++; + else + /* all finished, force abort */ + p += strlen(p); + } else + /* found another one, no drive letter */ + p = ++etok, count++; + + if (count) { + count++; /* x1;x2;x3 <- need to count x3 */ + + /* + * Hazard a guess on how big the buffer needs to be. + * We have to convert things like c:/foo to /c=/foo. + */ + nutc_path_len = strlen(path) + (count*2) + 1; + nutc_path = xmalloc(nutc_path_len); + pathp = nutc_path; + *pathp = '\0'; + + /* + * Loop through PATH and convert one elemnt of the path at at + * a time. Single file pathnames will fail this and fall + * to the logic below loop. + */ + for (p = path, etok = strpbrk(p, ":;"); + etok; + etok = strpbrk(p, ":;")) { + + /* don't trip up on device specifiers or empty path slots */ + if ((etok - p) == 1) + if (*(etok - 1) == ';' || + *(etok - 1) == ':') { + p = ++etok; + continue; + } else if ((etok = strpbrk(etok+1, ":;")) == NULL) + break; /* thing found was a WINDOWS32 pathname */ + + /* save separator */ + sep = *etok; + + /* terminate the current path element -- temporarily */ + *etok = '\0'; + +#ifdef __NUTC__ + /* convert to NutC format */ + if (_NutPathToNutc(p, pathp, 0) == FALSE) { + free(nutc_path); + rval = savestring(path, strlen(path)); + return rval; + } +#else + *pathp++ = '/'; + *pathp++ = p[0]; + *pathp++ = '='; + *pathp++ = '/'; + strcpy(pathp, &p[2]); +#endif + + pathp += strlen(pathp); + *pathp++ = ':'; /* use Unix style path separtor for new path */ + *pathp = '\0'; /* make sure we are null terminaed */ + + /* restore path separator */ + *etok = sep; + + /* point p to first char of next path element */ + p = ++etok; + + } + } else { + nutc_path_len = strlen(path) + 3; + nutc_path = xmalloc(nutc_path_len); + pathp = nutc_path; + *pathp = '\0'; + p = path; + } + + /* + * OK, here we handle the last element in PATH (e.g. c of a;b;c) + * or the path was a single filename and will be converted + * here. Note, testing p here assures that we don't trip up + * on paths like a;b; which have trailing delimiter followed by + * nothing. + */ + if (*p != '\0') { +#ifdef __NUTC__ + if (_NutPathToNutc(p, pathp, 0) == FALSE) { + free(nutc_path); + rval = savestring(path, strlen(path)); + return rval; + } +#else + *pathp++ = '/'; + *pathp++ = p[0]; + *pathp++ = '='; + *pathp++ = '/'; + strcpy(pathp, &p[2]); +#endif + } else + *(pathp-1) = '\0'; /* we're already done, don't leave trailing : */ + + rval = savestring(nutc_path, strlen(nutc_path)); + free(nutc_path); + return rval; +} + +#endif diff --git a/src/mkutil/make-3.80/w32/subproc/NMakefile b/src/mkutil/make-3.80/w32/subproc/NMakefile new file mode 100644 index 00000000..66afe650 --- /dev/null +++ b/src/mkutil/make-3.80/w32/subproc/NMakefile @@ -0,0 +1,60 @@ +# NOTE: If you have no `make' program at all to process this makefile, run +# `build.bat' instead. +# +# Copyright (C) 1988,89,91,92,93,94,95,96,97 Free Software Foundation, Inc +# This file is part of GNU Make. +# +# GNU Make 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, or (at your option) +# any later version. +# +# GNU Make 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 GNU Make; see the file COPYING. If not, write to +# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +# +# NMakefile for GNU Make (subproc library) +# +LIB = lib +CC = cl + +OUTDIR=. +MAKEFILE=NMakefile + +CFLAGS_any = /nologo /MT /W3 /GX /Z7 /YX /D WIN32 /D WINDOWS32 /D _WINDOWS -I. -I../include -I../../ +CFLAGS_debug = $(CFLAGS_any) /Od /D _DEBUG /FR.\WinDebug\ /Fp.\WinDebug\subproc.pch /Fo.\WinDebug/ +CFLAGS_release = $(CFLAGS_any) /O2 /FR.\WinRel\ /Fp.\WinRel\subproc.pch /Fo.\WinRel/ + +all: Release Debug + +Release: + $(MAKE) /f $(MAKEFILE) OUTDIR=WinRel CFLAGS="$(CFLAGS_release)" WinRel/subproc.lib +Debug: + $(MAKE) /f $(MAKEFILE) OUTDIR=WinDebug CFLAGS="$(CFLAGS_debug)" WinDebug/subproc.lib + +clean: + rmdir /s /q WinRel WinDebug + erase *.pdb + +$(OUTDIR): + if not exist .\$@\nul mkdir .\$@ + +OBJS = $(OUTDIR)/misc.obj $(OUTDIR)/w32err.obj $(OUTDIR)/sub_proc.obj + +$(OUTDIR)/subproc.lib: $(OUTDIR) $(OBJS) + $(LIB) -out:$@ @<< + $(OBJS) +<< + +.c{$(OUTDIR)}.obj: + $(CC) $(CFLAGS) /c $< + +$(OUTDIR)/misc.obj: misc.c proc.h +$(OUTDIR)/sub_proc.obj: sub_proc.c ../include/sub_proc.h ../include/w32err.h proc.h +$(OUTDIR)/w32err.obj: w32err.c ../include/w32err.h diff --git a/src/mkutil/make-3.80/w32/subproc/build.bat b/src/mkutil/make-3.80/w32/subproc/build.bat new file mode 100644 index 00000000..26ab1cbe --- /dev/null +++ b/src/mkutil/make-3.80/w32/subproc/build.bat @@ -0,0 +1,10 @@ +if not exist .\WinDebug\nul mkdir .\WinDebug +cl.exe /nologo /MT /W3 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c misc.c +cl.exe /nologo /MT /W3 /GX /Z7 /YX /Od /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c sub_proc.c +cl.exe /nologo /MT /W3 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c w32err.c +lib.exe /NOLOGO /OUT:.\WinDebug\subproc.lib .\WinDebug/misc.obj .\WinDebug/sub_proc.obj .\WinDebug/w32err.obj +if not exist .\WinRel\nul mkdir .\WinRel +cl.exe /nologo /MT /W3 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c misc.c +cl.exe /nologo /MT /W3 /GX /YX /O2 /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c sub_proc.c +cl.exe /nologo /MT /W3 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c w32err.c +lib.exe /NOLOGO /OUT:.\WinRel\subproc.lib .\WinRel/misc.obj .\WinRel/sub_proc.obj .\WinRel/w32err.obj diff --git a/src/mkutil/make-3.80/w32/subproc/misc.c b/src/mkutil/make-3.80/w32/subproc/misc.c new file mode 100644 index 00000000..d0e9ad9b --- /dev/null +++ b/src/mkutil/make-3.80/w32/subproc/misc.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include +#include "proc.h" + + +/* + * Description: Convert a NULL string terminated UNIX environment block to + * an environment block suitable for a windows32 system call + * + * Returns: TRUE= success, FALSE=fail + * + * Notes/Dependencies: the environment block is sorted in case-insensitive + * order, is double-null terminated, and is a char *, not a char ** + */ +int _cdecl compare(const void *a1, const void *a2) +{ + return _stricoll(*((char**)a1),*((char**)a2)); +} +bool_t +arr2envblk(char **arr, char **envblk_out) +{ + char **tmp; + int size_needed; + int arrcnt; + char *ptr; + + arrcnt = 0; + while (arr[arrcnt]) { + arrcnt++; + } + + tmp = (char**) calloc(arrcnt + 1, sizeof(char *)); + if (!tmp) { + return FALSE; + } + + arrcnt = 0; + size_needed = 0; + while (arr[arrcnt]) { + tmp[arrcnt] = arr[arrcnt]; + size_needed += strlen(arr[arrcnt]) + 1; + arrcnt++; + } + size_needed++; + + qsort((void *) tmp, (size_t) arrcnt, sizeof (char*), compare); + + ptr = *envblk_out = calloc(size_needed, 1); + if (!ptr) { + free(tmp); + return FALSE; + } + + arrcnt = 0; + while (tmp[arrcnt]) { + strcpy(ptr, tmp[arrcnt]); + ptr += strlen(tmp[arrcnt]) + 1; + arrcnt++; + } + + free(tmp); + return TRUE; +} diff --git a/src/mkutil/make-3.80/w32/subproc/proc.h b/src/mkutil/make-3.80/w32/subproc/proc.h new file mode 100644 index 00000000..249ffd81 --- /dev/null +++ b/src/mkutil/make-3.80/w32/subproc/proc.h @@ -0,0 +1,13 @@ +#ifndef _PROC_H +#define _PROC_H + +typedef int bool_t; + +#define E_SCALL 101 +#define E_IO 102 +#define E_NO_MEM 103 +#define E_FORK 104 + +extern bool_t arr2envblk(char **arr, char **envblk_out); + +#endif diff --git a/src/mkutil/make-3.80/w32/subproc/sub_proc.c b/src/mkutil/make-3.80/w32/subproc/sub_proc.c new file mode 100644 index 00000000..52f2fa2c --- /dev/null +++ b/src/mkutil/make-3.80/w32/subproc/sub_proc.c @@ -0,0 +1,1207 @@ +#include +#include +#include /* for msvc _beginthreadex, _endthreadex */ +#include + +#include "sub_proc.h" +#include "proc.h" +#include "w32err.h" +#include "config.h" +#include "debug.h" + +static char *make_command_line(char *shell_name, char *exec_path, char **argv); + +typedef struct sub_process_t { + int sv_stdin[2]; + int sv_stdout[2]; + int sv_stderr[2]; + int using_pipes; + char *inp; + DWORD incnt; + char * volatile outp; + volatile DWORD outcnt; + char * volatile errp; + volatile DWORD errcnt; + int pid; + int exit_code; + int signal; + long last_err; + long lerrno; +} sub_process; + +/* keep track of children so we can implement a waitpid-like routine */ +static sub_process *proc_array[256]; +static int proc_index = 0; +static int fake_exits_pending = 0; + +/* + * When a process has been waited for, adjust the wait state + * array so that we don't wait for it again + */ +static void +process_adjust_wait_state(sub_process* pproc) +{ + int i; + + if (!proc_index) + return; + + for (i = 0; i < proc_index; i++) + if (proc_array[i]->pid == pproc->pid) + break; + + if (i < proc_index) { + proc_index--; + if (i != proc_index) + memmove(&proc_array[i], &proc_array[i+1], + (proc_index-i) * sizeof(sub_process*)); + proc_array[proc_index] = NULL; + } +} + +/* + * Waits for any of the registered child processes to finish. + */ +static sub_process * +process_wait_for_any_private(void) +{ + HANDLE handles[256]; + DWORD retval, which; + int i; + + if (!proc_index) + return NULL; + + /* build array of handles to wait for */ + for (i = 0; i < proc_index; i++) { + handles[i] = (HANDLE) proc_array[i]->pid; + + if (fake_exits_pending && proc_array[i]->exit_code) + break; + } + + /* wait for someone to exit */ + if (!fake_exits_pending) { + retval = WaitForMultipleObjects(proc_index, handles, FALSE, INFINITE); + which = retval - WAIT_OBJECT_0; + } else { + fake_exits_pending--; + retval = !WAIT_FAILED; + which = i; + } + + /* return pointer to process */ + if (retval != WAIT_FAILED) { + sub_process* pproc = proc_array[which]; + process_adjust_wait_state(pproc); + return pproc; + } else + return NULL; +} + +/* + * Terminate a process. + */ +BOOL +process_kill(HANDLE proc, int signal) +{ + sub_process* pproc = (sub_process*) proc; + pproc->signal = signal; + return (TerminateProcess((HANDLE) pproc->pid, signal)); +} + +/* + * Use this function to register processes you wish to wait for by + * calling process_file_io(NULL) or process_wait_any(). This must be done + * because it is possible for callers of this library to reuse the same + * handle for multiple processes launches :-( + */ +void +process_register(HANDLE proc) +{ + proc_array[proc_index++] = (sub_process *) proc; +} + +/* + * Public function which works kind of like waitpid(). Wait for any + * of the children to die and return results. To call this function, + * you must do 1 of things: + * + * x = process_easy(...); + * + * or + * + * x = process_init_fd(); + * process_register(x); + * + * or + * + * x = process_init(); + * process_register(x); + * + * You must NOT then call process_pipe_io() because this function is + * not capable of handling automatic notification of any child + * death. + */ + +HANDLE +process_wait_for_any(void) +{ + sub_process* pproc = process_wait_for_any_private(); + + if (!pproc) + return NULL; + else { + /* + * Ouch! can't tell caller if this fails directly. Caller + * will have to use process_last_err() + */ + (void) process_file_io(pproc); + return ((HANDLE) pproc); + } +} + +long +process_errno(HANDLE proc) +{ + return (((sub_process *)proc)->lerrno); +} + +long +process_signal(HANDLE proc) +{ + return (((sub_process *)proc)->signal); +} + + long +process_last_err(HANDLE proc) +{ + return (((sub_process *)proc)->last_err); +} + + long +process_exit_code(HANDLE proc) +{ + return (((sub_process *)proc)->exit_code); +} + + char * +process_outbuf(HANDLE proc) +{ + return (((sub_process *)proc)->outp); +} + + char * +process_errbuf(HANDLE proc) +{ + return (((sub_process *)proc)->errp); +} + + int +process_outcnt(HANDLE proc) +{ + return (((sub_process *)proc)->outcnt); +} + + int +process_errcnt(HANDLE proc) +{ + return (((sub_process *)proc)->errcnt); +} + + void +process_pipes(HANDLE proc, int pipes[3]) +{ + pipes[0] = ((sub_process *)proc)->sv_stdin[0]; + pipes[1] = ((sub_process *)proc)->sv_stdout[0]; + pipes[2] = ((sub_process *)proc)->sv_stderr[0]; + return; +} + + + HANDLE +process_init() +{ + sub_process *pproc; + /* + * open file descriptors for attaching stdin/stdout/sterr + */ + HANDLE stdin_pipes[2]; + HANDLE stdout_pipes[2]; + HANDLE stderr_pipes[2]; + SECURITY_ATTRIBUTES inherit; + BYTE sd[SECURITY_DESCRIPTOR_MIN_LENGTH]; + + pproc = malloc(sizeof(*pproc)); + memset(pproc, 0, sizeof(*pproc)); + + /* We can't use NULL for lpSecurityDescriptor because that + uses the default security descriptor of the calling process. + Instead we use a security descriptor with no DACL. This + allows nonrestricted access to the associated objects. */ + + if (!InitializeSecurityDescriptor((PSECURITY_DESCRIPTOR)(&sd), + SECURITY_DESCRIPTOR_REVISION)) { + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + return((HANDLE)pproc); + } + + inherit.nLength = sizeof(inherit); + inherit.lpSecurityDescriptor = (PSECURITY_DESCRIPTOR)(&sd); + inherit.bInheritHandle = TRUE; + + // By convention, parent gets pipe[0], and child gets pipe[1] + // This means the READ side of stdin pipe goes into pipe[1] + // and the WRITE side of the stdout and stderr pipes go into pipe[1] + if (CreatePipe( &stdin_pipes[1], &stdin_pipes[0], &inherit, 0) == FALSE || + CreatePipe( &stdout_pipes[0], &stdout_pipes[1], &inherit, 0) == FALSE || + CreatePipe( &stderr_pipes[0], &stderr_pipes[1], &inherit, 0) == FALSE) { + + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + return((HANDLE)pproc); + } + + // + // Mark the parent sides of the pipes as non-inheritable + // + if (SetHandleInformation(stdin_pipes[0], + HANDLE_FLAG_INHERIT, 0) == FALSE || + SetHandleInformation(stdout_pipes[0], + HANDLE_FLAG_INHERIT, 0) == FALSE || + SetHandleInformation(stderr_pipes[0], + HANDLE_FLAG_INHERIT, 0) == FALSE) { + + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + return((HANDLE)pproc); + } + pproc->sv_stdin[0] = (int) stdin_pipes[0]; + pproc->sv_stdin[1] = (int) stdin_pipes[1]; + pproc->sv_stdout[0] = (int) stdout_pipes[0]; + pproc->sv_stdout[1] = (int) stdout_pipes[1]; + pproc->sv_stderr[0] = (int) stderr_pipes[0]; + pproc->sv_stderr[1] = (int) stderr_pipes[1]; + + pproc->using_pipes = 1; + + pproc->lerrno = 0; + + return((HANDLE)pproc); +} + + + HANDLE +process_init_fd(HANDLE stdinh, HANDLE stdouth, HANDLE stderrh) +{ + sub_process *pproc; + + pproc = malloc(sizeof(*pproc)); + memset(pproc, 0, sizeof(*pproc)); + + /* + * Just pass the provided file handles to the 'child side' of the + * pipe, bypassing pipes altogether. + */ + pproc->sv_stdin[1] = (int) stdinh; + pproc->sv_stdout[1] = (int) stdouth; + pproc->sv_stderr[1] = (int) stderrh; + + pproc->last_err = pproc->lerrno = 0; + + return((HANDLE)pproc); +} + + +static HANDLE +find_file(char *exec_path, LPOFSTRUCT file_info) +{ + HANDLE exec_handle; + char *fname; + char *ext; + + fname = malloc(strlen(exec_path) + 5); + strcpy(fname, exec_path); + ext = fname + strlen(fname); + + strcpy(ext, ".exe"); + if ((exec_handle = (HANDLE)OpenFile(fname, file_info, + OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR) { + free(fname); + return(exec_handle); + } + + strcpy(ext, ".cmd"); + if ((exec_handle = (HANDLE)OpenFile(fname, file_info, + OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR) { + free(fname); + return(exec_handle); + } + + strcpy(ext, ".bat"); + if ((exec_handle = (HANDLE)OpenFile(fname, file_info, + OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR) { + free(fname); + return(exec_handle); + } + + /* should .com come before this case? */ + if ((exec_handle = (HANDLE)OpenFile(exec_path, file_info, + OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR) { + free(fname); + return(exec_handle); + } + + strcpy(ext, ".com"); + if ((exec_handle = (HANDLE)OpenFile(fname, file_info, + OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR) { + free(fname); + return(exec_handle); + } + + free(fname); + return(exec_handle); +} + + +/* + * Description: Create the child process to be helped + * + * Returns: + * + * Notes/Dependencies: + */ +long +process_begin( + HANDLE proc, + char **argv, + char **envp, + char *exec_path, + char *as_user) +{ + sub_process *pproc = (sub_process *)proc; + char *shell_name = 0; + int file_not_found=0; + HANDLE exec_handle; + char buf[256]; + DWORD bytes_returned; + DWORD flags; + char *command_line; + STARTUPINFO startInfo; + PROCESS_INFORMATION procInfo; + char *envblk=NULL; + OFSTRUCT file_info; + + + /* + * Shell script detection... if the exec_path starts with #! then + * we want to exec shell-script-name exec-path, not just exec-path + * NT doesn't recognize #!/bin/sh or #!/etc/Tivoli/bin/perl. We do not + * hard-code the path to the shell or perl or whatever: Instead, we + * assume it's in the path somewhere (generally, the NT tools + * bin directory) + * We use OpenFile here because it is capable of searching the Path. + */ + + exec_handle = find_file(exec_path, &file_info); + + /* + * If we couldn't open the file, just assume that Windows32 will be able + * to find and execute it. + */ + if (exec_handle == (HANDLE)HFILE_ERROR) { + file_not_found++; + } + else { + /* Attempt to read the first line of the file */ + if (ReadFile( exec_handle, + buf, sizeof(buf) - 1, /* leave room for trailing NULL */ + &bytes_returned, 0) == FALSE || bytes_returned < 2) { + + pproc->last_err = GetLastError(); + pproc->lerrno = E_IO; + CloseHandle(exec_handle); + return(-1); + } + if (buf[0] == '#' && buf[1] == '!') { + /* + * This is a shell script... Change the command line from + * exec_path args to shell_name exec_path args + */ + char *p; + + /* Make sure buf is NULL terminated */ + buf[bytes_returned] = 0; + /* + * Depending on the file system type, etc. the first line + * of the shell script may end with newline or newline-carriage-return + * Whatever it ends with, cut it off. + */ + p= strchr(buf, '\n'); + if (p) + *p = 0; + p = strchr(buf, '\r'); + if (p) + *p = 0; + + /* + * Find base name of shell + */ + shell_name = strrchr( buf, '/'); + if (shell_name) { + shell_name++; + } else { + shell_name = &buf[2];/* skipping "#!" */ + } + + } + CloseHandle(exec_handle); + } + + flags = 0; + + if (file_not_found) + command_line = make_command_line( shell_name, exec_path, argv); + else + command_line = make_command_line( shell_name, file_info.szPathName, + argv); + + if ( command_line == NULL ) { + pproc->last_err = 0; + pproc->lerrno = E_NO_MEM; + return(-1); + } + + if (envp) { + if (arr2envblk(envp, &envblk) ==FALSE) { + pproc->last_err = 0; + pproc->lerrno = E_NO_MEM; + free( command_line ); + return(-1); + } + } + + if ((shell_name) || (file_not_found)) { + exec_path = 0; /* Search for the program in %Path% */ + } else { + exec_path = file_info.szPathName; + } + + /* + * Set up inherited stdin, stdout, stderr for child + */ + GetStartupInfo(&startInfo); + startInfo.dwFlags = STARTF_USESTDHANDLES; + startInfo.lpReserved = 0; + startInfo.cbReserved2 = 0; + startInfo.lpReserved2 = 0; + startInfo.lpTitle = shell_name ? shell_name : exec_path; + startInfo.hStdInput = (HANDLE)pproc->sv_stdin[1]; + startInfo.hStdOutput = (HANDLE)pproc->sv_stdout[1]; + startInfo.hStdError = (HANDLE)pproc->sv_stderr[1]; + + if (as_user) { + if (envblk) free(envblk); + return -1; + } else { + DB (DB_JOBS, ("CreateProcess(%s,%s,...)\n", + exec_path ? exec_path : "NULL", + command_line ? command_line : "NULL")); + if (CreateProcess( + exec_path, + command_line, + NULL, + 0, /* default security attributes for thread */ + TRUE, /* inherit handles (e.g. helper pipes, oserv socket) */ + flags, + envblk, + 0, /* default starting directory */ + &startInfo, + &procInfo) == FALSE) { + + pproc->last_err = GetLastError(); + pproc->lerrno = E_FORK; + fprintf(stderr, "process_begin: CreateProcess(%s, %s, ...) failed.\n", exec_path, command_line); + if (envblk) free(envblk); + free( command_line ); + return(-1); + } + } + + pproc->pid = (int)procInfo.hProcess; + /* Close the thread handle -- we'll just watch the process */ + CloseHandle(procInfo.hThread); + + /* Close the halves of the pipes we don't need */ + if (pproc->sv_stdin) { + CloseHandle((HANDLE)pproc->sv_stdin[1]); + (HANDLE)pproc->sv_stdin[1] = 0; + } + if (pproc->sv_stdout) { + CloseHandle((HANDLE)pproc->sv_stdout[1]); + (HANDLE)pproc->sv_stdout[1] = 0; + } + if (pproc->sv_stderr) { + CloseHandle((HANDLE)pproc->sv_stderr[1]); + (HANDLE)pproc->sv_stderr[1] = 0; + } + + free( command_line ); + if (envblk) free(envblk); + pproc->lerrno=0; + return 0; +} + + + +static DWORD +proc_stdin_thread(sub_process *pproc) +{ + DWORD in_done; + for (;;) { + if (WriteFile( (HANDLE) pproc->sv_stdin[0], pproc->inp, pproc->incnt, + &in_done, NULL) == FALSE) + _endthreadex(0); + // This if should never be true for anonymous pipes, but gives + // us a chance to change I/O mechanisms later + if (in_done < pproc->incnt) { + pproc->incnt -= in_done; + pproc->inp += in_done; + } else { + _endthreadex(0); + } + } + return 0; // for compiler warnings only.. not reached +} + +static DWORD +proc_stdout_thread(sub_process *pproc) +{ + DWORD bufsize = 1024; + char c; + DWORD nread; + pproc->outp = malloc(bufsize); + if (pproc->outp == NULL) + _endthreadex(0); + pproc->outcnt = 0; + + for (;;) { + if (ReadFile( (HANDLE)pproc->sv_stdout[0], &c, 1, &nread, NULL) + == FALSE) { +/* map_windows32_error_to_string(GetLastError());*/ + _endthreadex(0); + } + if (nread == 0) + _endthreadex(0); + if (pproc->outcnt + nread > bufsize) { + bufsize += nread + 512; + pproc->outp = realloc(pproc->outp, bufsize); + if (pproc->outp == NULL) { + pproc->outcnt = 0; + _endthreadex(0); + } + } + pproc->outp[pproc->outcnt++] = c; + } + return 0; +} + +static DWORD +proc_stderr_thread(sub_process *pproc) +{ + DWORD bufsize = 1024; + char c; + DWORD nread; + pproc->errp = malloc(bufsize); + if (pproc->errp == NULL) + _endthreadex(0); + pproc->errcnt = 0; + + for (;;) { + if (ReadFile( (HANDLE)pproc->sv_stderr[0], &c, 1, &nread, NULL) == FALSE) { + map_windows32_error_to_string(GetLastError()); + _endthreadex(0); + } + if (nread == 0) + _endthreadex(0); + if (pproc->errcnt + nread > bufsize) { + bufsize += nread + 512; + pproc->errp = realloc(pproc->errp, bufsize); + if (pproc->errp == NULL) { + pproc->errcnt = 0; + _endthreadex(0); + } + } + pproc->errp[pproc->errcnt++] = c; + } + return 0; +} + + +/* + * Purpose: collects output from child process and returns results + * + * Description: + * + * Returns: + * + * Notes/Dependencies: + */ + long +process_pipe_io( + HANDLE proc, + char *stdin_data, + int stdin_data_len) +{ + sub_process *pproc = (sub_process *)proc; + bool_t stdin_eof = FALSE, stdout_eof = FALSE, stderr_eof = FALSE; + HANDLE childhand = (HANDLE) pproc->pid; + HANDLE tStdin, tStdout, tStderr; + DWORD dwStdin, dwStdout, dwStderr; + HANDLE wait_list[4]; + DWORD wait_count; + DWORD wait_return; + HANDLE ready_hand; + bool_t child_dead = FALSE; + + + /* + * Create stdin thread, if needed + */ + pproc->inp = stdin_data; + pproc->incnt = stdin_data_len; + if (!pproc->inp) { + stdin_eof = TRUE; + CloseHandle((HANDLE)pproc->sv_stdin[0]); + (HANDLE)pproc->sv_stdin[0] = 0; + } else { + tStdin = (HANDLE) _beginthreadex( 0, 1024, + (unsigned (__stdcall *) (void *))proc_stdin_thread, pproc, 0, + (unsigned int *) &dwStdin); + if (tStdin == 0) { + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + goto done; + } + } + + /* + * Assume child will produce stdout and stderr + */ + tStdout = (HANDLE) _beginthreadex( 0, 1024, + (unsigned (__stdcall *) (void *))proc_stdout_thread, pproc, 0, + (unsigned int *) &dwStdout); + tStderr = (HANDLE) _beginthreadex( 0, 1024, + (unsigned (__stdcall *) (void *))proc_stderr_thread, pproc, 0, + (unsigned int *) &dwStderr); + + if (tStdout == 0 || tStderr == 0) { + + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + goto done; + } + + + /* + * Wait for all I/O to finish and for the child process to exit + */ + + while (!stdin_eof || !stdout_eof || !stderr_eof || !child_dead) { + wait_count = 0; + if (!stdin_eof) { + wait_list[wait_count++] = tStdin; + } + if (!stdout_eof) { + wait_list[wait_count++] = tStdout; + } + if (!stderr_eof) { + wait_list[wait_count++] = tStderr; + } + if (!child_dead) { + wait_list[wait_count++] = childhand; + } + + wait_return = WaitForMultipleObjects(wait_count, wait_list, + FALSE, /* don't wait for all: one ready will do */ + child_dead? 1000 :INFINITE); /* after the child dies, subthreads have + one second to collect all remaining output */ + + if (wait_return == WAIT_FAILED) { +/* map_windows32_error_to_string(GetLastError());*/ + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + goto done; + } + + ready_hand = wait_list[wait_return - WAIT_OBJECT_0]; + + if (ready_hand == tStdin) { + CloseHandle((HANDLE)pproc->sv_stdin[0]); + (HANDLE)pproc->sv_stdin[0] = 0; + CloseHandle(tStdin); + tStdin = 0; + stdin_eof = TRUE; + + } else if (ready_hand == tStdout) { + + CloseHandle((HANDLE)pproc->sv_stdout[0]); + (HANDLE)pproc->sv_stdout[0] = 0; + CloseHandle(tStdout); + tStdout = 0; + stdout_eof = TRUE; + + } else if (ready_hand == tStderr) { + + CloseHandle((HANDLE)pproc->sv_stderr[0]); + (HANDLE)pproc->sv_stderr[0] = 0; + CloseHandle(tStderr); + tStderr = 0; + stderr_eof = TRUE; + + } else if (ready_hand == childhand) { + + if (GetExitCodeProcess(childhand, &pproc->exit_code) == FALSE) { + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + goto done; + } + child_dead = TRUE; + + } else { + + /* ?? Got back a handle we didn't query ?? */ + pproc->last_err = 0; + pproc->lerrno = E_FAIL; + goto done; + } + } + + done: + if (tStdin != 0) + CloseHandle(tStdin); + if (tStdout != 0) + CloseHandle(tStdout); + if (tStderr != 0) + CloseHandle(tStderr); + + if (pproc->lerrno) + return(-1); + else + return(0); + +} + +/* + * Purpose: collects output from child process and returns results + * + * Description: + * + * Returns: + * + * Notes/Dependencies: + */ + long +process_file_io( + HANDLE proc) +{ + sub_process *pproc; + HANDLE childhand; + DWORD wait_return; + + if (proc == NULL) + pproc = process_wait_for_any_private(); + else + pproc = (sub_process *)proc; + + /* some sort of internal error */ + if (!pproc) + return -1; + + childhand = (HANDLE) pproc->pid; + + /* + * This function is poorly named, and could also be used just to wait + * for child death if you're doing your own pipe I/O. If that is + * the case, close the pipe handles here. + */ + if (pproc->sv_stdin[0]) { + CloseHandle((HANDLE)pproc->sv_stdin[0]); + pproc->sv_stdin[0] = 0; + } + if (pproc->sv_stdout[0]) { + CloseHandle((HANDLE)pproc->sv_stdout[0]); + pproc->sv_stdout[0] = 0; + } + if (pproc->sv_stderr[0]) { + CloseHandle((HANDLE)pproc->sv_stderr[0]); + pproc->sv_stderr[0] = 0; + } + + /* + * Wait for the child process to exit + */ + + wait_return = WaitForSingleObject(childhand, INFINITE); + + if (wait_return != WAIT_OBJECT_0) { +/* map_windows32_error_to_string(GetLastError());*/ + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + goto done2; + } + + if (GetExitCodeProcess(childhand, &pproc->exit_code) == FALSE) { + pproc->last_err = GetLastError(); + pproc->lerrno = E_SCALL; + } + +done2: + if (pproc->lerrno) + return(-1); + else + return(0); + +} + +/* + * Description: Clean up any leftover handles, etc. It is up to the + * caller to manage and free the input, ouput, and stderr buffers. + */ + void +process_cleanup( + HANDLE proc) +{ + sub_process *pproc = (sub_process *)proc; + int i; + + if (pproc->using_pipes) { + for (i= 0; i <= 1; i++) { + if ((HANDLE)pproc->sv_stdin[i]) + CloseHandle((HANDLE)pproc->sv_stdin[i]); + if ((HANDLE)pproc->sv_stdout[i]) + CloseHandle((HANDLE)pproc->sv_stdout[i]); + if ((HANDLE)pproc->sv_stderr[i]) + CloseHandle((HANDLE)pproc->sv_stderr[i]); + } + } + if ((HANDLE)pproc->pid) + CloseHandle((HANDLE)pproc->pid); + + free(pproc); +} + + +/* + * Description: + * Create a command line buffer to pass to CreateProcess + * + * Returns: the buffer or NULL for failure + * Shell case: sh_name a:/full/path/to/script argv[1] argv[2] ... + * Otherwise: argv[0] argv[1] argv[2] ... + * + * Notes/Dependencies: + * CreateProcess does not take an argv, so this command creates a + * command line for the executable. + */ + +static char * +make_command_line( char *shell_name, char *full_exec_path, char **argv) +{ + int argc = 0; + char** argvi; + int* enclose_in_quotes = NULL; + int* enclose_in_quotes_i; + unsigned int bytes_required = 0; + char* command_line; + char* command_line_i; + int cygwin_mode = 0; /* HAVE_CYGWIN_SHELL */ + int have_sh = 0; /* HAVE_CYGWIN_SHELL */ + +#ifdef HAVE_CYGWIN_SHELL + have_sh = (shell_name != NULL || strstr(full_exec_path, "sh.exe")); + cygwin_mode = 1; +#endif + + if (shell_name && full_exec_path) { + bytes_required + = strlen(shell_name) + 1 + strlen(full_exec_path); + /* + * Skip argv[0] if any, when shell_name is given. + */ + if (*argv) argv++; + /* + * Add one for the intervening space. + */ + if (*argv) bytes_required++; + } + + argvi = argv; + while (*(argvi++)) argc++; + + if (argc) { + enclose_in_quotes = (int*) calloc(1, argc * sizeof(int)); + + if (!enclose_in_quotes) { + return NULL; + } + } + + /* We have to make one pass through each argv[i] to see if we need + * to enclose it in ", so we might as well figure out how much + * memory we'll need on the same pass. + */ + + argvi = argv; + enclose_in_quotes_i = enclose_in_quotes; + while(*argvi) { + char* p = *argvi; + unsigned int backslash_count = 0; + + /* + * We have to enclose empty arguments in ". + */ + if (!(*p)) *enclose_in_quotes_i = 1; + + while(*p) { + switch (*p) { + case '\"': + /* + * We have to insert a backslash for each " + * and each \ that precedes the ". + */ + bytes_required += (backslash_count + 1); + backslash_count = 0; + break; + +#if !defined(HAVE_MKS_SHELL) && !defined(HAVE_CYGWIN_SHELL) + case '\\': + backslash_count++; + break; +#endif + /* + * At one time we set *enclose_in_quotes_i for '*' or '?' to suppress + * wildcard expansion in programs linked with MSVC's SETARGV.OBJ so + * that argv in always equals argv out. This was removed. Say you have + * such a program named glob.exe. You enter + * glob '*' + * at the sh command prompt. Obviously the intent is to make glob do the + * wildcarding instead of sh. If we set *enclose_in_quotes_i for '*' or '?', + * then the command line that glob would see would be + * glob "*" + * and the _setargv in SETARGV.OBJ would _not_ expand the *. + */ + case ' ': + case '\t': + *enclose_in_quotes_i = 1; + /* fall through */ + + default: + backslash_count = 0; + break; + } + + /* + * Add one for each character in argv[i]. + */ + bytes_required++; + + p++; + } + + if (*enclose_in_quotes_i) { + /* + * Add one for each enclosing ", + * and one for each \ that precedes the + * closing ". + */ + bytes_required += (backslash_count + 2); + } + + /* + * Add one for the intervening space. + */ + if (*(++argvi)) bytes_required++; + enclose_in_quotes_i++; + } + + /* + * Add one for the terminating NULL. + */ + bytes_required++; + + command_line = (char*) malloc(bytes_required); + + if (!command_line) { + if (enclose_in_quotes) free(enclose_in_quotes); + return NULL; + } + + command_line_i = command_line; + + if (shell_name && full_exec_path) { + while(*shell_name) { + *(command_line_i++) = *(shell_name++); + } + + *(command_line_i++) = ' '; + + while(*full_exec_path) { + *(command_line_i++) = *(full_exec_path++); + } + + if (*argv) { + *(command_line_i++) = ' '; + } + } + + argvi = argv; + enclose_in_quotes_i = enclose_in_quotes; + + while(*argvi) { + char* p = *argvi; + unsigned int backslash_count = 0; + + if (*enclose_in_quotes_i) { + *(command_line_i++) = '\"'; + } + + while(*p) { + if (*p == '\"') { + if (cygwin_mode && have_sh) { /* HAVE_CYGWIN_SHELL */ + /* instead of a \", cygwin likes "" */ + *(command_line_i++) = '\"'; + } else { + + /* + * We have to insert a backslash for the " + * and each \ that precedes the ". + */ + backslash_count++; + + while(backslash_count) { + *(command_line_i++) = '\\'; + backslash_count--; + }; + } +#if !defined(HAVE_MKS_SHELL) && !defined(HAVE_CYGWIN_SHELL) + } else if (*p == '\\') { + backslash_count++; + } else { + backslash_count = 0; +#endif + } + + /* + * Copy the character. + */ + *(command_line_i++) = *(p++); + } + + if (*enclose_in_quotes_i) { +#if !defined(HAVE_MKS_SHELL) && !defined(HAVE_CYGWIN_SHELL) + /* + * Add one \ for each \ that precedes the + * closing ". + */ + while(backslash_count--) { + *(command_line_i++) = '\\'; + }; +#endif + *(command_line_i++) = '\"'; + } + + /* + * Append an intervening space. + */ + if (*(++argvi)) { + *(command_line_i++) = ' '; + } + + enclose_in_quotes_i++; + } + + /* + * Append the terminating NULL. + */ + *command_line_i = '\0'; + + if (enclose_in_quotes) free(enclose_in_quotes); + return command_line; +} + +/* + * Description: Given an argv and optional envp, launch the process + * using the default stdin, stdout, and stderr handles. + * Also, register process so that process_wait_for_any_private() + * can be used via process_file_io(NULL) or + * process_wait_for_any(). + * + * Returns: + * + * Notes/Dependencies: + */ +HANDLE +process_easy( + char **argv, + char **envp) +{ + HANDLE hIn; + HANDLE hOut; + HANDLE hErr; + HANDLE hProcess; + + if (DuplicateHandle(GetCurrentProcess(), + GetStdHandle(STD_INPUT_HANDLE), + GetCurrentProcess(), + &hIn, + 0, + TRUE, + DUPLICATE_SAME_ACCESS) == FALSE) { + fprintf(stderr, + "process_easy: DuplicateHandle(In) failed (e=%d)\n", + GetLastError()); + return INVALID_HANDLE_VALUE; + } + if (DuplicateHandle(GetCurrentProcess(), + GetStdHandle(STD_OUTPUT_HANDLE), + GetCurrentProcess(), + &hOut, + 0, + TRUE, + DUPLICATE_SAME_ACCESS) == FALSE) { + fprintf(stderr, + "process_easy: DuplicateHandle(Out) failed (e=%d)\n", + GetLastError()); + return INVALID_HANDLE_VALUE; + } + if (DuplicateHandle(GetCurrentProcess(), + GetStdHandle(STD_ERROR_HANDLE), + GetCurrentProcess(), + &hErr, + 0, + TRUE, + DUPLICATE_SAME_ACCESS) == FALSE) { + fprintf(stderr, + "process_easy: DuplicateHandle(Err) failed (e=%d)\n", + GetLastError()); + return INVALID_HANDLE_VALUE; + } + + hProcess = process_init_fd(hIn, hOut, hErr); + + if (process_begin(hProcess, argv, envp, argv[0], NULL)) { + fake_exits_pending++; + ((sub_process*) hProcess)->exit_code = process_last_err(hProcess); + + /* close up unused handles */ + CloseHandle(hIn); + CloseHandle(hOut); + CloseHandle(hErr); + } + + process_register(hProcess); + + return hProcess; +} diff --git a/src/mkutil/make-3.80/w32/subproc/w32err.c b/src/mkutil/make-3.80/w32/subproc/w32err.c new file mode 100644 index 00000000..afe7668f --- /dev/null +++ b/src/mkutil/make-3.80/w32/subproc/w32err.c @@ -0,0 +1,51 @@ +#include +#include "w32err.h" + +/* + * Description: the windows32 version of perror() + * + * Returns: a pointer to a static error + * + * Notes/Dependencies: I got this from + * comp.os.ms-windows.programmer.win32 + */ +char * +map_windows32_error_to_string (DWORD ercode) { +/* __declspec (thread) necessary if you will use multiple threads */ +__declspec (thread) static char szMessageBuffer[128]; + + /* Fill message buffer with a default message in + * case FormatMessage fails + */ + wsprintf (szMessageBuffer, "Error %ld", ercode); + + /* + * Special code for winsock error handling. + */ + if (ercode > WSABASEERR) { + HMODULE hModule = GetModuleHandle("wsock32"); + if (hModule != NULL) { + FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, + hModule, + ercode, + LANG_NEUTRAL, + szMessageBuffer, + sizeof(szMessageBuffer), + NULL); + FreeLibrary(hModule); + } + } else { + /* + * Default system message handling + */ + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + ercode, + LANG_NEUTRAL, + szMessageBuffer, + sizeof(szMessageBuffer), + NULL); + } + return szMessageBuffer; +} + diff --git a/src/mkutil/make-3.80/x.bat b/src/mkutil/make-3.80/x.bat new file mode 100644 index 00000000..eec2b9b5 --- /dev/null +++ b/src/mkutil/make-3.80/x.bat @@ -0,0 +1,15 @@ +nmake /f NMakefile +@if errorlevel 1 goto failure +copy WinRel\make.exe ..\bin + +del WinRel /s /q +del WinDebug /s /q +del w32\subproc\WinRel /s /q +del w32\subproc\WinDebug /s /q + +@echo SUCCESS +@goto done +:failure +@echo FAILURE +:done + diff --git a/src/mkutil/revava-0.3/Source.C% b/src/mkutil/revava-0.3/Source.C% deleted file mode 100644 index c3de637e..00000000 --- a/src/mkutil/revava-0.3/Source.C% +++ /dev/null @@ -1,735 +0,0 @@ -/* - 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/n.bat% b/src/mkutil/revava-0.3/n.bat% deleted file mode 100644 index 1c09ecd2..00000000 --- a/src/mkutil/revava-0.3/n.bat% +++ /dev/null @@ -1,2 +0,0 @@ -make -copy revava.exe ..\..\bin diff --git a/src/nicktemp/avr_make b/src/nicktemp/avr_make deleted file mode 100644 index 261036ed..00000000 --- a/src/nicktemp/avr_make +++ /dev/null @@ -1,68 +0,0 @@ -# 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 deleted file mode 100644 index 57fa35c9..00000000 --- a/src/nicktemp/hello.c +++ /dev/null @@ -1,49 +0,0 @@ -/* 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 deleted file mode 100644 index 1996e8fd..00000000 --- a/src/nicktemp/hello.eep +++ /dev/null @@ -1 +0,0 @@ -:00000001FF diff --git a/src/nicktemp/hello.elf b/src/nicktemp/hello.elf deleted file mode 100644 index ea5327a26411a68df594cb2f8bf46a62346686f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 deleted file mode 100644 index 3a569e80..00000000 --- a/src/nicktemp/hello.map +++ /dev/null @@ -1,426 +0,0 @@ -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 deleted file mode 100644 index 1e702032c37b5e41781b8846bfc8a4483d5c27f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/src/nicktemp/hello.s b/src/nicktemp/hello.s deleted file mode 100644 index b87285f1..00000000 --- a/src/nicktemp/hello.s +++ /dev/null @@ -1,238 +0,0 @@ - .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 deleted file mode 100644 index 4a9cb3bd6f894a86151de22710fddba3c091da66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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` diff --git a/src/nicktemp/makefile b/src/nicktemp/makefile deleted file mode 100644 index eda5bc89..00000000 --- a/src/nicktemp/makefile +++ /dev/null @@ -1,39 +0,0 @@ -# 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/login b/src/testsystem/login new file mode 100644 index 0000000000000000000000000000000000000000..4db570432d6908fccefb350370ff10bebdb2606e GIT binary patch literal 117 zcmb2&nt(}DFlh!R OA=)j#Y)cTyX$Sy}oeGZt literal 0 HcmV?d00001 diff --git a/src/testsystem/tter.c.save b/src/testsystem/tter.c.save deleted file mode 100644 index 684dd4a9..00000000 --- a/src/testsystem/tter.c.save +++ /dev/null @@ -1,485 +0,0 @@ -/* - * 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); -} - -/* ------------------------------------------------------------------------- */ -- 2.34.1