From e869e55252c7fafb4036a6cb3812a57bffd7053c Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Tue, 21 Mar 2023 14:48:28 -0700 Subject: [PATCH 01/17] Prep v3.2.1 Development Branch --- .github/workflows/commit.yml | 25 ++++++++++++++---------- .github/workflows/release.yml | 36 ++++++++++++++++++++--------------- Source/Doc/Basic.h | 4 ++-- Source/ver.inc | 4 ++-- Source/ver.lib | 4 ++-- 5 files changed, 42 insertions(+), 31 deletions(-) diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml index 3a2ac481..2fa79388 100644 --- a/.github/workflows/commit.yml +++ b/.github/workflows/commit.yml @@ -13,16 +13,18 @@ jobs: runs-on: ubuntu-latest steps: - - name: Make Slugs - uses: rlespinasse/github-slug-action@v4.4.1 - - name: Checkout uses: actions/checkout@v3.3.0 + - name: Get Commit Ref + run: | + COMMIT_REF=$(git rev-parse --short $GITHUB_SHA) + echo "COMMIT_REF: $COMMIT_REF" + echo "COMMIT_REF=$COMMIT_REF" >>$GITHUB_ENV + - name: Build run: | export TZ='America/Los_Angeles' - sudo apt-get install libncurses-dev sudo apt-get install srecord make dist rm -rf .git* @@ -36,19 +38,22 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v3.1.1 with: - name: RomWBW-${{env.GITHUB_SHA_SHORT}}-Linux + name: RomWBW-${{env.COMMIT_REF}}-Linux path: . buildMacOS: runs-on: macOS-latest steps: - - name: Make Slugs - uses: rlespinasse/github-slug-action@v4.4.1 - - name: Checkout uses: actions/checkout@v3.3.0 + - name: Get Commit Ref + run: | + COMMIT_REF=$(git rev-parse --short $GITHUB_SHA) + echo "COMMIT_REF: $COMMIT_REF" + echo "COMMIT_REF=$COMMIT_REF" >>$GITHUB_ENV + - name: Build run: | export TZ='America/Los_Angeles' @@ -65,5 +70,5 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v3.1.1 with: - name: RomWBW-${{env.GITHUB_SHA_SHORT}}-MacOS - path: . \ No newline at end of file + name: RomWBW-${{env.COMMIT_REF}}-MacOS + path: . diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1c842d01..0b0f5680 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,15 +14,6 @@ jobs: - name: Checkout uses: actions/checkout@v3.3.0 - - name: Create Package Label - run: | - echo GITHUB_REF: "$GITHUB_REF" - LABEL=`echo "$GITHUB_REF" | sed "s|^refs/tags/||"` - echo "PKGLBL=$LABEL" >> $GITHUB_ENV - echo PKGLBL: "$PKGLBL" - echo Upload URL: "${{github.event.release.upload_url}}" - echo GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}" - - name: Build run: | export TZ='America/Los_Angeles' @@ -33,22 +24,37 @@ jobs: - name: Create Package Archive run: | - zip -r RomWBW-${{env.PKGLBL}}-Package.zip . + zip -r RomWBW-${{github.ref_name}}-Package.zip . + + - name: Set Title + run: | + echo "Tag: ${{github.ref_name}}" + if grep -q "dev" <<< "${{github.ref_name}}"; then + TITLE="RomWBW Development Snapshot" + elif grep -q "pre" <<< "${{github.ref_name}}"; then + TITLE="RomWBW Prerelease" + elif grep -q "rc" <<< "${{github.ref_name}}"; then + TITLE="RomWBW Release Candidate" + else + TITLE="RomWBW" + fi + echo "Title: $TITLE" + echo "TITLE=$TITLE" >>$GITHUB_ENV - name: Attach Package Archive uses: wwarthen/actions/packages/automatic-releases@built-packages with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" + repo_token: "${{secrets.GITHUB_TOKEN}}" draft: true prerelease: true - title: "RomWBW Development SnapShot ${{env.PKGLBL}}" + title: "${{env.TITLE}} ${{github.ref_name}}" files: | - RomWBW-${{env.PKGLBL}}-Package.zip + RomWBW-${{github.ref_name}}-Package.zip # - name: Upload Package Archive # uses: AButler/upload-release-assets@v2.0.2 # with: -# repo-token: ${{ secrets.GITHUB_TOKEN }} +# repo-token: ${{secrets.github_token}} # files: | # RomWBW-${{env.PKGLBL}}-Package.zip @@ -57,7 +63,7 @@ jobs: # uses: docker://antonyurchenko/git-release:latest # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# RELEASE_NAME_PREFIX: "Development SnapShot Release " +# RELEASE_NAME_PREFIX: "${{env.TITLE}} " # CHANGELOG_FILE: "none" # with: # args: | diff --git a/Source/Doc/Basic.h b/Source/Doc/Basic.h index 7e4e9bb0..f3b529b3 100644 --- a/Source/Doc/Basic.h +++ b/Source/Doc/Basic.h @@ -1,6 +1,6 @@ -$define{doc_ver}{Version 3.2}$ +$define{doc_ver}{Version 3.2.1}$ $define{doc_product}{RomWBW}$ -$define{doc_root}{https://github.com/wwarthen/RomWBW/raw/master/Doc}$ +$define{doc_root}{https://github.com/wwarthen/RomWBW/raw/dev/Doc}$ $ifndef{doc_title}$ $define{doc_title}{Document Title}$ $endif$ $ifndef{doc_author}$ $define{doc_author}{Wayne Warthen}$ $endif$ $define{doc_date}{$date{%d %b %Y}$}$ diff --git a/Source/ver.inc b/Source/ver.inc index d09a3632..eecaa97e 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -1,8 +1,8 @@ #DEFINE RMJ 3 #DEFINE RMN 2 -#DEFINE RUP 0 +#DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.0" +#DEFINE BIOSVER "3.2.1-dev.0" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 512020b6..b39a7dc5 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -1,7 +1,7 @@ rmj equ 3 rmn equ 2 -rup equ 0 +rup equ 1 rtp equ 0 biosver macro - db "3.2.0" + db "3.2.1-dev.0" endm From 8aebaab3fe9be890a03bef41fb99ce8eb4b56201 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Wed, 22 Mar 2023 16:15:04 -0700 Subject: [PATCH 02/17] Fix SURVEY.COM (again) - Previous fix to SURVEY.COM port survey broke the memory survey. Everything should be OK now. - Regenerated documentation. --- Doc/ChangeLog.txt | 5 ++ Doc/RomWBW Applications.pdf | Bin 216623 -> 216614 bytes Doc/RomWBW Disk Catalog.pdf | Bin 124415 -> 124414 bytes Doc/RomWBW Errata.pdf | Bin 28509 -> 28510 bytes Doc/RomWBW ROM Applications.pdf | Bin 159615 -> 159614 bytes Doc/RomWBW System Guide.pdf | Bin 528136 -> 528136 bytes Doc/RomWBW User Guide.pdf | Bin 528341 -> 528273 bytes ReadMe.md | 16 ++--- ReadMe.txt | 2 +- Source/Apps/Survey/survey.mac | 120 +++++++++++++++++++++----------- Source/HBIOS/cfg_zeta2.asm | 2 +- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 13 files changed, 98 insertions(+), 51 deletions(-) diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 606a6621..966d44ca 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -1,3 +1,8 @@ +Version 3.2.1 +------------- +- M?P: Fixed Zeta 2 FDD and CPUSPD config settings +- WBW: Fixed SURVEY.COM (again) + Version 3.2 ----------- - WBW: Version bump for release diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 73da8be112a23a7900118d7d1f0649aefa70e59a..091570d7d1e3bc88d5e02b52ff4ed148c9e58d0c 100644 GIT binary patch delta 9004 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 BO3(lR delta 8948 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 Li4$jCKD+&YL+(iz diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 8436f203dfd329e32fdb6aae4bf83b7ae1486a12..3b7cb476dcff5bc42cff55b55ee16a43ecf76935 100644 GIT binary patch delta 4935 zcmai2duY{l6!(fWnQbIEK?ZtNbopZE`~H4yKHBasA*E%1q%kXXktS}SxeCl*l)7dp zX68Z?Q6nWXr6J)1)Kr|CkIV;#53mq(E@y!T39fVR9(VVgLBBs_J3HTVKHtxIer<2g zdEA_{zAENFs~#M^+&ujlJay>yxQ96{_m17YGP9uW=fOwwHWvQ2GBKmzqxLC#Yg+Z4 zRf&6k#p%=Q=BykLFIo0pZRO$q{l0GPTmIr-`6G|s-uLKEJJ&qvVN!=ZEcHf8%~h>y@1)n-5=1&OcG{?X1If zi6@dLM_j8;Y_Ho}*MI-y)hF7H9jW}|^Ybgm)_gVQi-rZ&4V62NUoI`5FmJ%SrOiK8 zp4$G&+5_YB*Ou=3cTTeD(4H&qpP`LUZWt2%njEy{jj?YHTlLDqb7$udA6;_#?9!Hp zTV9@@ujO*FEovQrn>04n%a5O&U~|O zci!;YEh8(g9$ebicD?ZN-Ge_gExtSJOjY}&8=p1|8vdXrZ&O3l&K)P0pZk05+d~@H zEH3;!N{07YZs#V=G>Cg#5LX8h^I zLQbp+b0M~El8r;^i&w>S(?0-Muc=G~BdAPDZR!_Xj1@(S{Ym(cEfc~7OUw%J zLb+@`2wpgXi{LL?W86H#yiIxd;G{*p$%h88c#z98ZxX# zU8!S?^VEseKG4*0sK(-n_E;)6D-EwE9zJXD`}X7(3XOR0E+7w zC*rC2_b4Et9T0?okz*kd!b!@O(Ax2{M$yY5zD#09os}EFJErI*r3(uJdU5Q5-dJFH zGJswL%3vfRNa|RELrw@YUTNw?ViTZxC}V6%8Gu%Vlr9yLH2>Y1E(Hi0Cn>#VG7}ip z(pW|5$BxM^B8}_8YShszts6l}lOl2vA zROYlu%kci)^lK;CkkDFk790kO7&JKf>5UC&rl%cFwjO8G{2MTgE;PtmtC5a{$wuN*0~4#$|$X9V|o{`mrL|5@AdT>?VP4 zG*)VMJBzy-ZNWI8v&V6Ye=8Mh!6>7ph;@v6SdZAH+6#6Cmi-n73~f>t!$kALYUd)F ztvI0-mj%{9&@n4Ti?!V|xzYd~B4nU(ZgrFYIICcBWQzzo6zbUrZtn{ z0!U@JlXL;>-v6BAGaqG^p?2O;$GDTQJrP$D!N7Q+xfKB(rb3h{8auS6S@wH;4A2t8 z)=#Hm>TEAQEM6qt|1v$m18Qc|g@+YeEKrZFQXZdf{474SvhCsJLWb3@{SOx@+GxmmppXf_3W`=d7R6ML`VDKT1+ckB9D>Ib|oXR~7rtNtQ z13SyW;C}$9hz15DEqK0LM{k$Ph^&<(VVItB$bayzYFe3Vg-T)g&dO zk8YGnE$b_8#Y)RU2&F!WI9vk%DKAeZw0C7?62DTLOguX|Uh;n`^*3+D2KR^DQKQOd HBy;}*Y}hfX delta 4968 zcmai2d2G~G5Ke1oNev2`R7@}y1S&OzcOM9b?rtm96s4e&U=*}X!9u}WF&M)SLJU`s zqk$r#2C7_wh>=4CBA0TQXo2tt1T-oVFd{-oX)ECTw%u!n#QkeCJMX=D-+c4UyuEcS z_x7>e#kGw~o3iqQcN>n4IKaA>w6xA|owe)Ql~Eh}ELppGT<+0(wno-`mbdTrpq_=( zF4af-yw&T>8y9YzF4>vA|I-6=hPN#kHtfBH>$;BEv~T#8>3_}`EY>d?yIkF@`m%EQ ztee*sj{EoWOV>A#`ex&2}4>Q-#%c`AA{C4 zZ9TaAx#k%I?|ZOkw*^xtEErSSurxPc^ln?$vZ4C;godLxDkioVTs@ z>%(~;Jv;QLx=->C7M0D9eZR73w7Xffw(9Wmo<-Zb1Qo1e=4Rd8b#3bpO;dln8tGL% ze*b~UsGps4fsQVbg|_m$IeN7Fb8(w zG;yvB4w`wmG(s9!ZAC$t|Fi<)$}$uo<4Tg0aBc-g3o>l!S}pPAAifkagU-tJ43dl^ zbOOT#1pzXE{eac@#-J0D_=WO<)&_!kfe#kUGVBP|sqi5JL;(ANji4n2Tn`;Agbh;? z$3Mw*!I{8$62fU>)1E*rw2>HoP)u?Wp=}zfL5FZcnJ|Ka_5^C-wI(<55-TPXh5@-U zxdm&1X_+<|NI}X(N=8adfC6KvrR1a{z=m}JibT=1+VhYfA^u7DB?uQrK}tzVM{4Vd zpLQCTtOPgWXI*-Qb=03U&=N2-)^nUs#aa5|IF^bTLO2Q8#84|{31<`w9H~#me5yV> z%Tp;XaDYmBO>EFMaNZR}h*3~h@wg4{pM+moL7Ie8f}&s{0SGP43?ZRriufrDoh@x` z9DmI;feSVy(yE0eY0^Ryq0!7b-0h%wDvXxaKD>WsNoe>Gn{apVGo&3u6C))H1xtiW zducmR2vYDvMUWu^BJ|`Yo=!9dGKX(xgou||dWC5Z;-7xu5Pu^ikzlalQiM7N*-Kv> zt_>59ZEyw_DI+u~W23AMFk7MLOKS5(K;U3fiUw*som^pJjRiK~05$aO4qIyeGu9B* z1Dm58LhYapEsRZ=Gtj~uNr_EOJ{^M(;BOgp39=zb61Lr;nONaS>MYY7bH)l!gAU6H z&wqfH$5C4eiiCsF&?~XcdNM&7P9|{IuETBY*jWfKVXB2ABnM^P}@zC)c zq&2x;=ltg($M_J)rpM&+@DwHoTTPy49z>Mv=b#5B501~BoCTH>W_oyak*Gbn31?Q~ zG{Li6U}Azz5gP|p4$lbjPrwh34%aN$NHFknk~mF}cVH&E9XA$VF62l0020qXu$2%5 z)I-=*o;u)y*;XR>Is9FL2bIuk;as;X<8bUuqmW05GgrJ#T@UTj&Z njTT2ECDun`rc}gABJ7ERA^+#n_{;gM{H{E&U%!%PO7s2$>M%U{ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 7f01ab905906f7fbc509c508ab48634d1f7cc8d7..2d95d9ba9d8a935b696da0eba32a46ff3e0a9a0f 100644 GIT binary patch delta 3575 zcmah|c|6p67cSdHO(Zgnge+yt{C@MB&6R938vCATLCK6YQMR|{nrJG^#H2JymO-*J zX|a_;H^~|yqi$KUe(X{5j`zLG+sq&D{B`E}o%5XMIp=%_xEs0Ljn@K%0DMxA3UzGi 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 c7#wJfH8oT=_q7s_H0#cL=Rgg|-(xiyN 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 diff --git a/Doc/RomWBW ROM Applications.pdf b/Doc/RomWBW ROM Applications.pdf index 32b641f7058643dd630c78f5f342e9029f000678..e1c4eb79d94369efd0b1b65c2730261aadd3cf8a 100644 GIT binary patch delta 9066 zcmai3eXN&d8QwY01&0pPNQ+?Wz_6B5KHnceC7c5@cQV5dQWqN}HfW=*1oRy9jXq>x z7^(C#0~@nso=jQmgTz%MG5f%_J_uJHqdzoKgT|_<30?1deqZl>ovq(rhll5WpZmF< z`@Zh$xt}xRQ%{di-LbwWH1=%hIj{K4l^?kLXP2Dw_-p5#+B`h+wX3(yKQ?b*|K?i< zckOuUT}w`$Im`e1=*$;B`<=^2zxv47$|cXQernN%n_igtlN*lid&{ge^Uab6bCP^xWs}I5@hZf9+#4<{#X5a_!2|p<6Z|x@^}IQ?C8+&i%ibbN07; zSFf3M86Kw@BP!hImfP> zzJ2FCAMgJ}-;wXmKfP#UanAH7_uj3K&-nb@-Ys)`dww{#xA!ZTO)*9Xm6dB8819|b z`PcYx@1FO%0agA6)(`Yme<&5Qkz+dhEXR!Tw(tu=~v=)|n+(7>4l zAEkqEniffx&p3HQN0LGmp$Pm_vUHv)ClN?W!9QV)F+=gL5i^8LcCNMK_J&<{X`np+ z?gTP6((b&95*ZydB^B~aW`r`i+HmS<6DCg;#vwF2C`{y^*1=0? zR0h#^CRTZhO4Lc6X7p`)|V^eIOc*IRtse5%I=jS;?_vxe$S=Ye-l4>tHlN?X!_^Y2>0L5Qr0^ z`2VJr#H=8Xm>u*k>KPg2%#Lclll(}6Q^4Ucu6#1TQ1Q7 z$t}^!*fNcEGOVrtPe6CQIFqvdtOcK(^w01tun9J!gDouSqLZ+j07F5_;qow~G^0OY9N`c?> zBx59{T;xj#ln;eSzsp=NL~dZ5U;dqd)=&J*m0H)LS9iEL0wTCdF9GWNL7E@ z^a#mCsRL21Brka9XeS=}RGu-EI~6u>;dKlCftLP5K8eUw5D`|!f_J)BK1*tXu%NW_ zIAjU6x1Mx>FG66i10-+T!=^xWUZ#%n0f#5&12o3( z1~Q}TR6xCw2nM2Cc%pE3>Ns7UzY4|^{1~g3N_ZL^ejVcyeT->BFrX|-_ycmAZ3{~m z%@6^YTqIhmV!?S*NYHx36#$he7-2babl86z{xTCgkvVbhaE6K#+5r??I8Dk3h)jwP z@K#OSR`_Eucb!QEYt$t@R)2Om$X6`f1c<7!Vd9TiUXSJXyf5hNpihabv54$|fU09l zM06a?V0yU-uK5yGgn9FpbZHm-8B&&vqv5e6nn>tj*v7F{y)$r|rqhD{ASJX`lrDrAlkmgVP2ym^kyzoM z%CxF40%J7H>SI_qNCz=SSz6jsQwR+bqDqVv^6X%&N${t{mp_b6vSYM?rPJtqP?ltL zfvb6)3%+(PQtm%Y^9|y% zwg_T9T)2r!c>_}^TVUMkk#qtW^CThSX$qYHa@w`@+_ZM|XVv)UIuN3A zQVwA)T%_yYD4)EjZf7OXt-wX2g=`_tXe?G)UnWG$CoIg53K{Ps@?^3~Qt`qTVwM)+ zx1@|-WY@eZA<;?8B&)Mlvd$sewQMrNHc=x2^GH45Ix4Shuq|S@Hx)}_B0U!1wM9y8 z7>CK`QATD>${4oIHa_;>f*-r{vT$Jxy_Y(yFy265@%9A3s1kj`zq9F(o<4VxQ4+5@Wzeak0ll$tG}y z8|~$@6~#MlB9v4nF&4h2nXA}V8F#^M#4EsYSM5rIatPfoM-3BPOG$a;NZ|=v3Pof< z(bQp`5W`?5YBRXlOUlBnRJM}vDq*B{s~&a)GTPvMw)$RIY-14JjIOvVcWiZ(ue+E> zFTQvwf<~0KcuABCBRXpwS>mrP+N%^?cqNhWTk9oB!WME_EbQ=%BNxUyjO0jM$Wjq` zBA#*N2LruPX;esFBsm%V+JQDjY+)=n8#UNt^F0dSD@rkpkumyJ!8HE7zIVysvSo4c x;NY^sp{4L|@sPptd2sPkHROhZNkjR41B?FOl*X!0_MSgQ^<8km(hn```yZ?MLj3>$ delta 9021 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 diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 2313dc86fbfecd8760f39b722feb023db69d5e4c..08998e7266fb357cb4f7f2d584e0d50421da56f8 100644 GIT binary patch delta 566 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 Vdp=eg|A5M!($`<#qFu|<{|8yPw@3g0 delta 28259 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 diff --git a/ReadMe.md b/ReadMe.md index 98ee2805..4bc69771 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,9 +1,9 @@ **RomWBW ReadMe** \ -Version 3.2 \ +Version 3.2.1 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -18 Mar 2023 +22 Mar 2023 # Overview @@ -102,22 +102,22 @@ functionality. Complete instructions for installation and operation of RomWBW are found in the [RomWBW User -Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf). +Guide](https://github.com/wwarthen/RomWBW/raw/dev/Doc/RomWBW%20User%20Guide.pdf). ## Documentation Documentation for RomWBW includes: - [RomWBW User - Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20User%20Guide.pdf) + Guide](https://github.com/wwarthen/RomWBW/raw/dev/Doc/RomWBW%20User%20Guide.pdf) - [RomWBW System - Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf) + Guide](https://github.com/wwarthen/RomWBW/raw/dev/Doc/RomWBW%20System%20Guide.pdf) - [RomWBW - Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf) + Applications](https://github.com/wwarthen/RomWBW/raw/dev/Doc/RomWBW%20Applications.pdf) - [RomWBW ROM - Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20ROM%20Applications.pdf) + Applications](https://github.com/wwarthen/RomWBW/raw/dev/Doc/RomWBW%20ROM%20Applications.pdf) - [RomWBW - Errata](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf) + Errata](https://github.com/wwarthen/RomWBW/raw/dev/Doc/RomWBW%20Errata.pdf) # Acknowledgments diff --git a/ReadMe.txt b/ReadMe.txt index 4cdca439..7d83f352 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -18 Mar 2023 +22 Mar 2023 diff --git a/Source/Apps/Survey/survey.mac b/Source/Apps/Survey/survey.mac index 23b2fb9f..22da9bb2 100644 --- a/Source/Apps/Survey/survey.mac +++ b/Source/Apps/Survey/survey.mac @@ -15,6 +15,13 @@ ; ;VERSION LIST - Most recent version first. ; +;21/Mar/23 - Previous hack was worthless because it broke +; the memory survey. Rehacked to use HBIOS to +; detect if N8VEM SBC MPCL memory management is +; in use and bypass MPCL ports if so. HBIOS check +; should allow use in non-RomWBW systems again. +; Wayne Warthen +; ;10/Feb/23 - Total hack to avoid crash on ECB SBC ; RomWBW now required by this version ; Wayne Warthen @@ -240,20 +247,6 @@ TABS EQU 9 ; Tab columns ; ;ORG 100H ; -; -; - .Z80 - LD HL,IMGORG - LD DE,START - LD BC,IMGEND-IMGORG - LDIR - JP START - .8080 -; -IMGORG: -; - .PHASE 8000H -; START: LXI H,0 ; Save stack pointer DAD SP @@ -261,9 +254,38 @@ START: LXI SP,FINIS+64 CALL TYPE ; Type initial CRLF DW CRLF,CRLF - DB TAB,'*** RomWBW System Survey (Feb 2023) ***' + DB TAB,'*** RomWBW System Survey (Mar 2023) ***' DW CRLF,CRLFE +; +; Are we running an N8VEM SBC w/ MPCL on RomWBW??? +; + .Z80 + XOR A ; assume not + LD (ISMPCL),A ; save it + ; Check for RomWBW (HBIOS) + LD HL,(0FFFEH) ; HL := HBIOS ident location + LD A,'W' ; First byte of ident + CP (HL) ; Compare + JR NZ,NOTMPCL ; Not HBIOS + INC HL ; Next byte of ident + LD A,NOT 'W' ; Second byte of ident + CP (HL) ; Compare + JR NZ,NOTMPCL ; Not HBIOS +; + LD B,0F1H ; HBIOS: VER function + LD C,0 ; required reserved value + RST 08 ; DE := version, L := platform id + LD A,L ; Platform ID + CP 01H ; SBC? + JR NZ,NOTMPCL ; Not SBC + LD A,0FFH ; Flag + LD (ISMPCL),A ; Set flag +; + .8080 +; +NOTMPCL: +; ;DISK SURVEY LXI H,8 ; Init drive counter MVI C,24 ; Get login vector @@ -445,20 +467,19 @@ MSURV: ENDM DB '|' DW CRLF - db ' ' ; dmb 31-May-82 - DB 'T'+EOL + DB 'TT','T'+EOL LXI H,RAM - MVI M,LOW 1023 ; Init RAM counter + MVI M,LOW 2047 ; Init RAM counter INX H - MVI M,HIGH 1023 + MVI M,HIGH 2047 MVI B,4 ; Clear ROM, EMP CLREG: INX H MVI M,0 DCR B JNZ CLREG - LXI H,1024 ; Init memory pointer - MVI C,63 ; K to be checked + LXI H,2048 ; Init memory pointer + MVI C,62 ; K to be checked ;Start of analysis loop BEGANA: @@ -492,7 +513,7 @@ NOTEM: INXI ROM NEXT: INX H ; Index next byte - DCX D ; Decrement K counter + DCX D ; DEC DE; Decrement K counter XRA A ORA D ORA E @@ -545,8 +566,19 @@ NEXTK: ; contents of first page call type db 'BIOS at',' '+eol - hexout bios+2 - hexout bios+1 + ;hexout bios+2 + ;hexout bios+1 + .z80 + ld hl,(bios+1) + ld de,-3 + add hl,de + push hl + ld a,h + call hexprn + pop hl + ld a,l + call hexprn + .8080 call type db tab,'iobyte',' '+eol hexout bios+3 @@ -555,8 +587,19 @@ NEXTK: hexout bios+4 call type db tab,'BDOS at',' '+eol - hexout bdos+2 - hexout bdos+1 + ;hexout bdos+2 + ;hexout bdos+1 + .z80 + ld hl,(bdos+1) + ld de,-6 + add hl,de + push hl + ld a,h + call hexprn + pop hl + ld a,l + call hexprn + .8080 call type dw crlf,crlfe ; @@ -607,9 +650,6 @@ PDLY: JNZ PDLY ; .Z80 - ; record the active bank - ld a,(0ffe0h) ; get current hbios bank id - ld (BANK),a ; and save it ; Check for Z180 CPU xor a ; assume Z80 ld (IS180),a ; save it @@ -635,6 +675,17 @@ PORTLP: ENDIF ; .Z80 +; + ld a,(ISMPCL) ; MPCL? + or a ; set flags + jr z,PCONT ; if not, skip ahead + ld a,d ; get port to test + and 0F8H ; range of 8 ports + cp 078H ; starting at 78H + jr z,ISPORT ; if in range, assume real port +; +PCONT: + di ; interrupts off ld a,(IS180) ; Z180? or a @@ -679,11 +730,6 @@ pnum1b equ $-1 push af ; rdz: - ; Make sure correct bank is still selected! - push af - ld a,(BANK) - call 0FFF3H - pop af ; ei ; interrupts back on now ; @@ -818,13 +864,9 @@ RAMF: DS 1 ; RAM good flag EMPF: DS 1 ; Empty so far flag BLKSHF: DS 1 ; block shift factor MAXALL: DS 2 ; maximum block number -BANK: DS 1 ; saved HBIOS bank id IS180: DS 1 ; non-zero for Z180 CPU +ISMPCL: DS 1 ; non-zero for N8VEM SBC MPCL FINIS EQU $ ; End of program -; - .DEPHASE -; -IMGEND: ; END  \ No newline at end of file diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index bcb5cdd7..e3d18470 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/Source/HBIOS/cfg_zeta2.asm @@ -28,7 +28,7 @@ BOOT_DELAY .EQU 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT ; CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW -CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ +CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) ; diff --git a/Source/ver.inc b/Source/ver.inc index eecaa97e..83f18b07 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-dev.0" +#DEFINE BIOSVER "3.2.1-dev.1" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index b39a7dc5..af7d8020 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-dev.0" + db "3.2.1-dev.1" endm From 98a33b8b509bb1731310d17acd9ee5dab0fa9a24 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Thu, 23 Mar 2023 12:53:36 -0700 Subject: [PATCH 03/17] CTC & CPU Speed - Revamped CTC detection algorithm hoping to handle problem XRBR is having - Fixed typo in dynamic CPU speed test that caused it to not be properly recorded/reported (credit XRBR) - Allow use of DEL/RUBOUT keys as backspace in ROM Loader and Debug Monitor --- Source/HBIOS/ctc.asm | 61 ++++++++++++++++++++--------------------- Source/HBIOS/dbgmon.asm | 3 ++ Source/HBIOS/hbios.asm | 11 ++++---- Source/HBIOS/romldr.asm | 3 ++ Source/ver.inc | 2 +- Source/ver.lib | 2 +- 6 files changed, 44 insertions(+), 38 deletions(-) diff --git a/Source/HBIOS/ctc.asm b/Source/HBIOS/ctc.asm index 701ea245..b5701b40 100644 --- a/Source/HBIOS/ctc.asm +++ b/Source/HBIOS/ctc.asm @@ -147,18 +147,16 @@ CTCTIVT .EQU INT_CTC0A + CTCTIMCH ;================================================================================================== ; CTC_PREINIT: + ; BLINDLY RESET THE CTC ASSUMING IT IS THERE + LD A,CTC_DEFCFG + OUT (CTCBASE),A + OUT (CTCBASE+1),A + OUT (CTCBASE+2),A + OUT (CTCBASE+3),A +; CALL CTC_DETECT ; DO WE HAVE ONE? LD (CTC_EXIST),A ; SAVE IT RET NZ ; ABORT IF NONE -; - ; RESET ALL CTC CHANNELS - LD B,4 ; 4 CHANNELS - LD C,CTCBASE ; FIRST CHANNEL PORT -CTC_PREINIT1: - LD A,CTC_DEFCFG ; CTC DEFAULT CONFIG - OUT (C),A ; CTC COMMAND - INC C ; NEXT CHANNEL PORT - DJNZ CTC_PREINIT1 ; #IF (CTCTIMER & (INTMODE == 2)) ; SETUP TIMER INTERRUPT IVT SLOT @@ -258,32 +256,33 @@ CTC_PRTCFG1: RET ; ;================================================================================================== -; DETECT CTC BY CHECKING REGISTER CAN BE WRITTEN AND READ, AND THEN BY SETTING UP ONE CHANNEL IN -; TIMER MODE AND CHECKING IT IS COUNTING DOWN. +; DETECT CTC BY PROGRAMMING THE FIRST CHANNEL TO COUNT IN TIMER +; MODE (BASED ON CPU CLOCK). THEN CHECK IF COUNTER IS ACTUALLY +; RUNNING. ;================================================================================================== ; CTC_DETECT: - LD A,CTC_TIM256CFG - OUT (CTCBASE),A - XOR A - OUT (CTCBASE),A - ; CTC SHOULD NOW BE RUNNING WITH TIME CONSTANT 0 - LD A,CTC_TIM256CFG ; RESET - OUT (CTCBASE),A - IN A,(CTCBASE) ; SHOULD READ 0 NOW - CP 0 - JR NZ,CTC_NO + LD A,CTC_TIM16CFG ; RESET & SETUP TIMER MODE + OUT (CTCBASE),A ; SEND TO CTC LD A,$FF ; TIME CONSTANT $FF - OUT (CTCBASE),A - IN A,(CTCBASE) ; SHOULD NOT BE 0 NOW - CP 0 - JR Z,CTC_NO - XOR A - RET + OUT (CTCBASE),A ; SEND CONSTANT & START CTR + NOP ; BRIEF DELAY + IN A,(CTCBASE) ; READ COUNTER + LD C,A ; SAVE VALUE + CALL DLY8 ; WAIT A BIT + IN A,(CTCBASE) ; READ COUNTER AGAIN + PUSH AF ; SAVE RESULT + LD A,CTC_DEFCFG ; DEFAULT CHANNEL CFG + OUT (CTCBASE),A ; RESTORE TO DEFAULTS + POP AF ; GET RESULT BACK + CP C ; COMPARE TO PREVIOUS + JR Z,CTC_NO ; IF SAME, FAIL + XOR A ; SIGNAL SUCCESS + RET ; AND DONE CTC_NO: - OR $FF - RET -; + OR $FF ; SIGNAL FAILURE + RET ; AND DONE ; +; CTC DRIVER DATA STORAGE ; -CTC_EXIST .DB $FF +CTC_EXIST .DB $FF ; SET TO ZERO IF EXISTS diff --git a/Source/HBIOS/dbgmon.asm b/Source/HBIOS/dbgmon.asm index 69736962..a2a37042 100644 --- a/Source/HBIOS/dbgmon.asm +++ b/Source/HBIOS/dbgmon.asm @@ -878,6 +878,8 @@ GETLNLOP: JR Z,GETLNDONE ; YES, EXIT CP CHR_BS ; IS ? JR Z,GETLNBS ; IF SO, HANDLE IT + CP CHR_DEL ; IS ? + JR Z,GETLNBS ; IF SO, HANDLE AS CP ' ' ; UNEXPECTED CONTROL CHAR? JR C,GETLNLOP ; IF SO, IGNORE IT AND GET NEXT LD B,A ; SAVE CHAR IN B FOR NOW @@ -1854,6 +1856,7 @@ CHR_CR .EQU 0DH CHR_LF .EQU 0AH CHR_BS .EQU 08H CHR_ESC .EQU 1BH +CHR_DEL .EQU 7FH ; ;__________________________________________________________________________________________________ ; diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 4210ffd9..d3fd2e56 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -1898,8 +1898,8 @@ HB_CPU1: ; ; INIT OSCILLATOR SPEED FROM CONFIG ; - LD HL,CPUOSC / 1000 - LD (HB_CPUOSC),HL + LD HL,CPUOSC / 1000 ; OSC SPD IN KHZ + LD (HB_CPUOSC),HL ; INIT HB_CPUOSC DEFAULT ; ; ATTEMPT DYNAMIC CPU SPEED DERIVATION ; NOTE THAT FOR PLATFORMS WITH SOFTWARE SELECTABLE CPU SPEED, @@ -1907,8 +1907,8 @@ HB_CPU1: ; POSSIBLE SETTING. THE FINAL CPU SPEED WILL BE ADJUSTED ; LATER. ; - CALL HB_CPUSPD ; CPU SPEED DETECTION - JR NZ,HB_CPUSPD2 ; SKIP IF FAILED + CALL HB_CPUSPD ; DYNAMIC CPU SPEED DETECTION + JR NZ,HB_CPUSPD2 ; SKIP AHEAD IF FAILED ; ; RECORD THE UPDATED CPU OSCILLATOR SPEED ; @@ -1917,8 +1917,9 @@ HB_CPU1: ; SO RECORD DOUBLE THE MEASURED VALUE SLA L RL H - LD (HB_CPUOSC),HL #ENDIF +; + LD (HB_CPUOSC),HL ; RECORD MEASURED SPEED ; HB_CPUSPD2: ; diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 364382de..22e80695 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -41,6 +41,7 @@ bel .equ 7 ; ASCII bell bs .equ 8 ; ASCII backspace lf .equ 10 ; ASCII linefeed cr .equ 13 ; ASCII carriage return +del .equ 127 ; ASCII del/rubout ; cmdbuf .equ $80 ; cmd buf is in second half of page zero cmdmax .equ 60 ; max cmd len (arbitrary), must be < bufsiz @@ -1281,6 +1282,8 @@ rdln_nxt: call cin ; get a character cp bs ; backspace? jr z,rdln_bs ; handle it if so + cp del ; del/rubout? + jr z,rdln_bs ; handle as backspace cp cr ; return? jr z,rdln_cr ; handle it if so ; diff --git a/Source/ver.inc b/Source/ver.inc index 83f18b07..33d513d5 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-dev.1" +#DEFINE BIOSVER "3.2.1-dev.2" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index af7d8020..3795ea66 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-dev.1" + db "3.2.1-dev.2" endm From 5a6d7f853bc696576eed236ed35847ac52b885af Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sat, 25 Mar 2023 11:57:26 -0700 Subject: [PATCH 04/17] Update HEXCOM.COM Renamed HEXCOM.CPM -> HEXCOM.COM. --- Source/Images/d_cpm3/u0/{HEXCOM.CPM => HEXCOM.COM} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename Source/Images/d_cpm3/u0/{HEXCOM.CPM => HEXCOM.COM} (100%) diff --git a/Source/Images/d_cpm3/u0/HEXCOM.CPM b/Source/Images/d_cpm3/u0/HEXCOM.COM similarity index 100% rename from Source/Images/d_cpm3/u0/HEXCOM.CPM rename to Source/Images/d_cpm3/u0/HEXCOM.COM From 6e34de0e0278f065bd4ca02d50c53ebd5fc21192 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sat, 25 Mar 2023 12:05:57 -0700 Subject: [PATCH 05/17] Cosmetic Minor cosmetic changes in source. --- Source/HBIOS/ctc.asm | 6 +++--- Source/HBIOS/uart.asm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/HBIOS/ctc.asm b/Source/HBIOS/ctc.asm index b5701b40..b4a76710 100644 --- a/Source/HBIOS/ctc.asm +++ b/Source/HBIOS/ctc.asm @@ -9,7 +9,7 @@ CTC_DEFCFG .EQU %01010011 ; CTC DEFAULT CONFIG CTC_CTRCFG .EQU %01010111 ; CTC COUNTER MODE CONFIG CTC_TIM16CFG .EQU %00010111 ; CTC TIMER/16 MODE CONFIG CTC_TIM256CFG .EQU %00110111 ; CTC TIMER/256 MODE CONFIG -CTC_TIMCFG .EQU %11010111 ; CTC TIMER CHANNEL CONFIG +;CTC_TIMCFG .EQU %11010111 ; CTC TIMER CHANNEL CONFIG ; |||||||+-- CONTROL WORD FLAG ; ||||||+--- SOFTWARE RESET ; |||||+---- TIME CONSTANT FOLLOWS @@ -175,12 +175,12 @@ CTC_PREINIT: ; CTC CHANNEL AS A PRESCALER AND ANOTHER AS THE ACTUAL ; TIMER INTERRUPT. THE PRESCALE CHANNEL OUTPUT MUST BE WIRED ; TO THE TIMER CHANNEL TRIGGER INPUT VIA HARDWARE. - LD A,CTC_PRECFG ; PRESCALE CHANNEL CONFIGURATION + LD A,CTC_PRECFG ; PRESCALE TIMER CHANNEL CFG OUT (CTC_PREIO),A ; SETUP PRESCALE CHANNEL LD A,CTC_DIVHI & $FF ; PRESCALE CHANNEL CONSTANT OUT (CTC_PREIO),A ; SET PRESCALE CONSTANT ; - LD A,CTC_TIMCFG ; TIMER CHANNEL CONTROL WORD VALUE + LD A,CTC_CTRCFG | $80 ; TIMER CHANNEL + INT CFG OUT (CTC_SCLIO),A ; SETUP TIMER CHANNEL LD A,CTC_DIVLO & $FF ; TIMER CHANNEL CONSTANT OUT (CTC_SCLIO),A ; SET TIMER CONSTANT diff --git a/Source/HBIOS/uart.asm b/Source/HBIOS/uart.asm index 1aa6150a..958db9cc 100644 --- a/Source/HBIOS/uart.asm +++ b/Source/HBIOS/uart.asm @@ -739,7 +739,7 @@ UART_DETECT2: LD A,C ; RETURN RESULT IN A RET ; -; DETERMINE TEH UART CHIP VARIANT AND RETURN IN A +; DETERMINE THE UART CHIP VARIANT AND RETURN IN A ; UART_CHIP: ; From cc9f5dd5163047384841f9a405359ad51989d394 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Sun, 26 Mar 2023 19:31:52 +0800 Subject: [PATCH 06/17] Update vgmplay.asm YM2151 updates --- Source/Apps/VGM/vgmplay.asm | 654 ++++++++++++++++++++---------------- 1 file changed, 366 insertions(+), 288 deletions(-) diff --git a/Source/Apps/VGM/vgmplay.asm b/Source/Apps/VGM/vgmplay.asm index 2a53838e..8d550e7a 100644 --- a/Source/Apps/VGM/vgmplay.asm +++ b/Source/Apps/VGM/vgmplay.asm @@ -12,14 +12,12 @@ ; default file type, basic file size checking, polled CTC mode ; added by Phil Summers ; -; Bugs: YM2151 playback untested & no mute. -; CTC polled timing - predicted 44100 divider is too slow +; Bugs: CTC polled timing - predicted 44100 divider is too slow ; ; Assemble with: ; ; TASM -80 -b VGMPLAY.ASM VGMPLAY.COM ; -; ; A VGM file can play 44100 samples a second. This may be sound chip ; register commands or PCM data. This player does not support PCM playback ; due to the high processor speed and file size required. Typical VGM files @@ -31,60 +29,59 @@ ; Device and system specific definitions ;------------------------------------------------------------------------------ ; -custom .equ 0 ; System configurations +custom .equ 0 ; System configurations P8X180 .equ 1 RCBUS .equ 2 -sbcecb .equ 3 +sbcecb .equ 3 MBC .equ 4 ; -plt_romwbw .equ 1 ; Build for ROMWBW? -plt_type .equ sbcecb ; Select build configuration -debug .equ 0 ; Display port, register, config info +plt_romwbw .equ 1 ; Build for ROMWBW? +plt_type .equ sbcecb ; Select build configuration +debug .equ 0 ; Display port, register, config info ; ;------------------------------------------------------------------------------ ; Platform specific definitions. If building for ROMWBW, these may be overridden ;------------------------------------------------------------------------------ #IF (plt_type=custom) -RSEL .equ 09AH ; Primary AY-3-8910 Register selection -RDAT .equ 09BH ; Primary AY-3-8910 Register data -RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection -RDAT2 .equ 89H ; Secondary AY-3-8910 Register data +RSEL .equ 09AH ; Primary AY-3-8910 Register selection +RDAT .equ 09BH ; Primary AY-3-8910 Register data +RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection +RDAT2 .equ 89H ; Secondary AY-3-8910 Register data VGMBASE .equ $C0 -YMSEL .equ VGMBASE+00H ; Primary YM2162 11000000 a1=0 a0=0 -YMDAT .equ VGMBASE+01H ; Primary YM2162 11000001 a1=0 a0=1 -YM2SEL .equ VGMBASE+02H ; Secondary YM2162 11000010 a1=1 a0=0 -YM2DAT .equ VGMBASE+03H ; Secondary YM2162 11000011 a1=1 a0=1 -PSG1REG .equ VGMBASE+08H ; Primary SN76489 -PSG2REG .equ VGMBASE+09H ; Secondary SN76489 -ctcbase .equ VGMBASE+0CH ; CTC base address -YM2151_SEL1 .equ 0FEH ; Primary YM2151 register selection -YM2151_DAT1 .equ 0FFH ; Primary YM2151 register data -YM2151_SEL2 .equ 0FEH ; Secondary YM2151 register selection -YM2151_DAT2 .equ 0FFH ; Secondary YM2151 register data -plt_cpuspd .equ 6;000000 ; Non ROMWBW cpu speed default -FRAME_DLY .equ 10 ; Frame delay (~ 1/44100) - +YMSEL .equ VGMBASE+00H ; Primary YM2162 11000000 a1=0 a0=0 +YMDAT .equ VGMBASE+01H ; Primary YM2162 11000001 a1=0 a0=1 +YM2SEL .equ VGMBASE+02H ; Secondary YM2162 11000010 a1=1 a0=0 +YM2DAT .equ VGMBASE+03H ; Secondary YM2162 11000011 a1=1 a0=1 +PSG1REG .equ VGMBASE+04H ; Primary SN76489 +PSG2REG .equ VGMBASE+05H ; Secondary SN76489 +YM2151_SEL1 .equ VGMBASE+08H ; Primary YM2151 register selection +YM2151_DAT1 .equ VGMBASE+09H ; Primary YM2151 register data +YM2151_SEL2 .equ VGMBASE+0AH ; Secondary YM2151 register selection +YM2151_DAT2 .equ VGMBASE+0BH ; Secondary YM2151 register data +ctcbase .equ VGMBASE+0CH ; CTC base address +plt_cpuspd .equ 6;000000 ; Non ROMWBW cpu speed default +FRAME_DLY .equ 10 ; Frame delay (~ 1/44100) #ENDIF ; #IF (plt_type=P8X180) -RSEL .equ 82H ; Primary AY-3-8910 Register selection -RDAT .equ 83H ; Primary AY-3-8910 Register data -RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection -RDAT2 .equ 89H ; Secondary AY-3-8910 Register data -PSG1REG .equ 84H ; Primary SN76489 -PSG2REG .equ 8AH ; Secondary SN76489 -YM2151_SEL1 .equ 0B0H ; Primary YM2151 register selection -YM2151_DAT1 .equ 0B1H ; Primary YM2151 register data -YM2151_SEL2 .equ 0B2H ; Secondary YM2151 register selection -YM2151_DAT2 .equ 0B3H ; Secondary YM2151 register data -ctcbase .equ 000H ; CTC base address -YMSEL .equ 000H ; Primary YM2162 11000000 a1=0 a0=0 -YMDAT .equ 000H ; Primary YM2162 11000001 a1=0 a0=1 -YM2SEL .equ 000H ; Secondary YM2162 11000010 a1=1 a0=0 -YM2DAT .equ 000H ; Secondary YM2162 11000011 a1=1 a0=1 -FRAME_DLY .equ 48 ; Frame delay (~ 1/44100) -plt_cpuspd .equ 20 ; Non ROMWBW cpu speed default +RSEL .equ 82H ; Primary AY-3-8910 Register selection +RDAT .equ 83H ; Primary AY-3-8910 Register data +RSEL2 .equ 88H ; Secondary AY-3-8910 Register selection +RDAT2 .equ 89H ; Secondary AY-3-8910 Register data +PSG1REG .equ 84H ; Primary SN76489 +PSG2REG .equ 8AH ; Secondary SN76489 +YM2151_SEL1 .equ 0B0H ; Primary YM2151 register selection +YM2151_DAT1 .equ 0B1H ; Primary YM2151 register data +YM2151_SEL2 .equ 0B2H ; Secondary YM2151 register selection +YM2151_DAT2 .equ 0B3H ; Secondary YM2151 register data +ctcbase .equ 000H ; CTC base address +YMSEL .equ 000H ; Primary YM2162 11000000 a1=0 a0=0 +YMDAT .equ 000H ; Primary YM2162 11000001 a1=0 a0=1 +YM2SEL .equ 000H ; Secondary YM2162 11000010 a1=1 a0=0 +YM2DAT .equ 000H ; Secondary YM2162 11000011 a1=1 a0=1 +FRAME_DLY .equ 48 ; Frame delay (~ 1/44100) +plt_cpuspd .equ 20 ; Non ROMWBW cpu speed default #ENDIF ; #IF (plt_type=RCBUS) @@ -103,7 +100,7 @@ YMSEL .equ 000H ; UNDEFINED ; Primary YM2162 11000000 a1=0 a0=0 YMDAT .equ 000H ; UNDEFINED ; Primary YM2162 11000001 a1=0 a0=1 YM2SEL .equ 000H ; UNDEFINED ; Secondary YM2162 11000010 a1=1 a0=0 YM2DAT .equ 000H ; UNDEFINED ; Secondary YM2162 11000011 a1=1 a0=1 -plt_cpuspd .equ 7;372800 ; CPUOSC ; Non ROMWBW cpu speed default +plt_cpuspd .equ 7;372800 ; CPUOSC ; Non ROMWBW cpu speed default FRAME_DLY .equ 12 ; Frame delay (~ 1/44100) #ENDIF ; @@ -184,7 +181,7 @@ RTCIO .equ 070H ; YM2162 Register write macros - with wait and timeout ;------------------------------------------------------------------------------ ; -#DEFINE setreg(reg,val) \ +#DEFINE s2612reg(reg,val) \ #DEFCONT \ ld a,reg #DEFCONT \ out (YMSEL),a #DEFCONT \ ld a,val @@ -195,7 +192,7 @@ RTCIO .equ 070H #DEFCONT \ jp nc,$+5 #DEFCONT \ djnz $-6 ; -#DEFINE setreg2(reg,val) \ +#DEFINE s2612reg2(reg,val) \ #DEFCONT \ ld a,reg #DEFCONT \ out (YM2SEL),a #DEFCONT \ ld a,val @@ -205,9 +202,30 @@ RTCIO .equ 070H #DEFCONT \ rlca #DEFCONT \ jp nc,$+5 #DEFCONT \ djnz $-6 - +; ;------------------------------------------------------------------------------ -; VGM Codes - see vgmrips.net/wiki/VGM_specification +; YM2151 Register write macros - with wait and timeout +;------------------------------------------------------------------------------ +; +; Status Byte: Bit +; 7 Busy Flag (1=Busy) +; 6-2 Not Used +; 1 Timer B Overflow (0=No Overflow, 1=Overflow) +; 0 Timer A Overflow (0=No Overflow, 1=Overflow) +; +#DEFINE s2151reg(reg,val) \ +#DEFCONT \ ld a,reg +#DEFCONT \ out (YM2151_SEL1),a +#DEFCONT \ ld a,val +#DEFCONT \ out (YM2151_DAT1),a +#DEFCONT \ ld b,0 +#DEFCONT \ in a,(YM2151_SEL1) +#DEFCONT \ rlca +#DEFCONT \ jp nc,$+5 +#DEFCONT \ djnz $-6 +; +;------------------------------------------------------------------------------ +; VGM Codes - see vgmrips.net/wiki/VGM_Specification ;------------------------------------------------------------------------------ VGM_GG_W .equ 04FH ; GAME GEAR PSG STEREO. WRITE DD TO PORT 0X06 @@ -219,8 +237,8 @@ VGM_WNS .equ 061H ; WAIT N SAMPLES VGM_W735 .equ 062H ; WAIT 735 SAMPLES (1/60TH SECOND) VGM_W882 .equ 063H ; WAIT 882 SAMPLES (1/50TH SECOND) VGM_ESD .equ 066H ; END OF SOUND DATA -VGM_YM21511_W .equ 054H ; YM2612 #1 WRITE VALUE DD -VGM_YM21512_W .equ 0A4H ; YM2612 #2 WRITE VALUE DD +VGM_YM21511_W .equ 054H ; YM2151 #1 WRITE VALUE DD +VGM_YM21512_W .equ 0A4H ; YM2151 #2 WRITE VALUE DD ;------------------------------------------------------------------------------ ; Generic CP/M definitions @@ -490,7 +508,7 @@ YM2162_2 CP VGM_YM26122_W ; YM2151 SECTION ; YM2151_1 CP VGM_YM21511_W - JR NZ,YM2151_2 + JR NZ,YM2151_2 LD A,(HL) OUT (YM2151_SEL1),A INC HL @@ -759,252 +777,254 @@ SKIP1: LD A,(IX+0) XOR A OUT (RDAT), A OUT (RDAT2), A +#IFDEF SBCV2004 CALL FASTIO +#ENDIF SKIP2: LD A,(IX+0) ; mute all channels on ym2612 AND %00110000 JP Z,SKIP3 - setreg($22,$00) ; lfo off - - setreg($27,$00) ; Disable independant Channel 3 - setreg($28,$00) ; note off ch 1 - setreg($28,$01) ; note off ch 2 - setreg($28,$02) ; note off ch 3 - setreg($28,$04) ; note off ch 4 - setreg($28,$05) ; note off ch 5 - setreg($28,$06) ; note off ch 6 - setreg($2b,$00) ; dac off - - setreg($b4,$00) ; sound off ch 1-3 - setreg($b5,$00) - setreg($b6,$00) - setreg2($b4,$00) ; sound off ch 4-6 - setreg2($b5,$00) - setreg2($b6,$00) - - setreg($40,$7f) ; ch 1-3 total level minimum - setreg($41,$7f) - setreg($42,$7f) - setreg($44,$7f) - setreg($45,$7f) - setreg($46,$7f) - setreg($48,$7f) - setreg($49,$7f) - setreg($4a,$7f) - setreg($4c,$7f) - setreg($4d,$7f) - setreg($4e,$7f) - - setreg2($40,$7f) ; ch 4-6 total level minimum - setreg2($41,$7f) - setreg2($42,$7f) - setreg2($44,$7f) - setreg2($45,$7f) - setreg2($46,$7f) - setreg2($48,$7f) - setreg2($49,$7f) - setreg2($4a,$7f) - setreg2($4c,$7f) - setreg2($4d,$7f) - setreg2($4e,$7f) + s2612reg($22,$00) ; lfo off + + s2612reg($27,$00) ; Disable independant Channel 3 + s2612reg($28,$00) ; note off ch 1 + s2612reg($28,$01) ; note off ch 2 + s2612reg($28,$02) ; note off ch 3 + s2612reg($28,$04) ; note off ch 4 + s2612reg($28,$05) ; note off ch 5 + s2612reg($28,$06) ; note off ch 6 + s2612reg($2b,$00) ; dac off + + s2612reg($b4,$00) ; sound off ch 1-3 + s2612reg($b5,$00) + s2612reg($b6,$00) + s2612reg2($b4,$00) ; sound off ch 4-6 + s2612reg2($b5,$00) + s2612reg2($b6,$00) + + s2612reg($40,$7f) ; ch 1-3 total level minimum + s2612reg($41,$7f) + s2612reg($42,$7f) + s2612reg($44,$7f) + s2612reg($45,$7f) + s2612reg($46,$7f) + s2612reg($48,$7f) + s2612reg($49,$7f) + s2612reg($4a,$7f) + s2612reg($4c,$7f) + s2612reg($4d,$7f) + s2612reg($4e,$7f) + + s2612reg2($40,$7f) ; ch 4-6 total level minimum + s2612reg2($41,$7f) + s2612reg2($42,$7f) + s2612reg2($44,$7f) + s2612reg2($45,$7f) + s2612reg2($46,$7f) + s2612reg2($48,$7f) + s2612reg2($49,$7f) + s2612reg2($4a,$7f) + s2612reg2($4c,$7f) + s2612reg2($4d,$7f) + s2612reg2($4e,$7f) #if (0) - setreg($2a,$00) ; dac value - - setreg($24,$00) ; timer A frequency - setreg($25,$00) ; timer A frequency - setreg($26,$00) ; time B frequency - - setreg($30,$00) ; ch 1-3 multiply & detune - setreg($31,$00) - setreg($32,$00) - setreg($34,$00) - setreg($35,$00) - setreg($36,$00) - setreg($38,$00) - setreg($39,$00) - setreg($3a,$00) - setreg($3c,$00) - setreg($3d,$00) - setreg($3e,$00) - - setreg2($30,$00) ; ch 4-6 multiply & detune - setreg2($31,$00) - setreg2($32,$00) - setreg2($34,$00) - setreg2($35,$00) - setreg2($36,$00) - setreg2($38,$00) - setreg2($39,$00) - setreg2($3a,$00) - setreg2($3c,$00) - setreg2($3d,$00) - setreg2($3e,$00) - - setreg($50,$00) ; ch 1-3 attack rate and scaling - setreg($51,$00) - setreg($52,$00) - setreg($54,$00) - setreg($55,$00) - setreg($56,$00) - setreg($58,$00) - setreg($59,$00) - setreg($5a,$00) - setreg($5c,$00) - setreg($5d,$00) - setreg($5e,$00) - - setreg2($50,$00) ; ch 4-6 attack rate and scaling - setreg2($51,$00) - setreg2($52,$00) - setreg2($54,$00) - setreg2($55,$00) - setreg2($56,$00) - setreg2($58,$00) - setreg2($59,$00) - setreg2($5a,$00) - setreg2($5c,$00) - setreg2($5d,$00) - setreg2($5e,$00) - - setreg($60,$00) ; ch 1-3 decay rate and am enable - setreg($61,$00) - setreg($62,$00) - setreg($64,$00) - setreg($65,$00) - setreg($66,$00) - setreg($68,$00) - setreg($69,$00) - setreg($6a,$00) - setreg($6c,$00) - setreg($6d,$00) - setreg($6e,$00) - - setreg2($60,$00) ; ch 4-6 decay rate and am enable - setreg2($61,$00) - setreg2($62,$00) - setreg2($64,$00) - setreg2($65,$00) - setreg2($66,$00) - setreg2($68,$00) - setreg2($69,$00) - setreg2($6a,$00) - setreg2($6c,$00) - setreg2($6d,$00) - setreg2($6e,$00) - - setreg($70,$00) ; ch 1-3 sustain rate - setreg($71,$00) - setreg($72,$00) - setreg($74,$00) - setreg($75,$00) - setreg($76,$00) - setreg($78,$00) - setreg($79,$00) - setreg($7a,$00) - setreg($7c,$00) - setreg($7d,$00) - setreg($7e,$00) - - setreg2($70,$00) ; ch 4-6 sustain rate - setreg2($71,$00) - setreg2($72,$00) - setreg2($74,$00) - setreg2($75,$00) - setreg2($76,$00) - setreg2($78,$00) - setreg2($79,$00) - setreg2($7a,$00) - setreg2($7c,$00) - setreg2($7d,$00) - setreg2($7e,$00) - - setreg($80,$00) ; ch 1-3 release rate and sustain level - setreg($81,$00) - setreg($82,$00) - setreg($84,$00) - setreg($85,$00) - setreg($86,$00) - setreg($88,$00) - setreg($89,$00) - setreg($8a,$00) - setreg($8c,$00) - setreg($8d,$00) - setreg($8e,$00) - - setreg2($80,$00) ; ch 4-6 release rate and sustain level - setreg2($81,$00) - setreg2($82,$00) - setreg2($84,$00) - setreg2($85,$00) - setreg2($86,$00) - setreg2($88,$00) - setreg2($89,$00) - setreg2($8a,$00) - setreg2($8c,$00) - setreg2($8d,$00) - setreg2($8e,$00) - - setreg($90,$00) ; ch 1-3 ssg-eg - setreg($91,$00) - setreg($92,$00) - setreg($94,$00) - setreg($95,$00) - setreg($96,$00) - setreg($98,$00) - setreg($99,$00) - setreg($9a,$00) - setreg($9c,$00) - setreg($9d,$00) - setreg($9e,$00) - - setreg2($90,$00) ; ch 4-6 ssg-eg - setreg2($91,$00) - setreg2($92,$00) - setreg2($94,$00) - setreg2($95,$00) - setreg2($96,$00) - setreg2($98,$00) - setreg2($99,$00) - setreg2($9a,$00) - setreg2($9c,$00) - setreg2($9d,$00) - setreg2($9e,$00) - - setreg($a0,$00) ; ch 1-3 frequency - setreg($a1,$00) - setreg($a2,$00) - setreg($a4,$00) - setreg($a5,$00) - setreg($a6,$00) -; setreg($a8,$00) ; ch 3 special mode -; setreg($a9,$00) -; setreg($aa,$00) -; setreg($ac,$00) -; setreg($ad,$00) -; setreg($ae,$00) - - setreg2($a0,$00) ; ch 4-6 frequency - setreg2($a1,$00) - setreg2($a2,$00) - setreg2($a4,$00) - setreg2($a5,$00) - setreg2($a6,$00) -; setreg2($a8,$00) ; ch 3 special mode -; setreg2($a9,$00) -; setreg2($aa,$00) -; setreg2($ac,$00) -; setreg2($ad,$00) -; setreg2($ae,$00) - - setreg($b0,$00) ; ch 1-3 algorith + feedback - setreg($b1,$00) - setreg($b2,$00) - setreg2($b0,$00) ; ch 4-6 algorith + feedback - setreg2($b1,$00) - setreg2($b2,$00) + s2612reg($2a,$00) ; dac value + + s2612reg($24,$00) ; timer A frequency + s2612reg($25,$00) ; timer A frequency + s2612reg($26,$00) ; time B frequency + + s2612reg($30,$00) ; ch 1-3 multiply & detune + s2612reg($31,$00) + s2612reg($32,$00) + s2612reg($34,$00) + s2612reg($35,$00) + s2612reg($36,$00) + s2612reg($38,$00) + s2612reg($39,$00) + s2612reg($3a,$00) + s2612reg($3c,$00) + s2612reg($3d,$00) + s2612reg($3e,$00) + + s2612reg2($30,$00) ; ch 4-6 multiply & detune + s2612reg2($31,$00) + s2612reg2($32,$00) + s2612reg2($34,$00) + s2612reg2($35,$00) + s2612reg2($36,$00) + s2612reg2($38,$00) + s2612reg2($39,$00) + s2612reg2($3a,$00) + s2612reg2($3c,$00) + s2612reg2($3d,$00) + s2612reg2($3e,$00) + + s2612reg($50,$00) ; ch 1-3 attack rate and scaling + s2612reg($51,$00) + s2612reg($52,$00) + s2612reg($54,$00) + s2612reg($55,$00) + s2612reg($56,$00) + s2612reg($58,$00) + s2612reg($59,$00) + s2612reg($5a,$00) + s2612reg($5c,$00) + s2612reg($5d,$00) + s2612reg($5e,$00) + + s2612reg2($50,$00) ; ch 4-6 attack rate and scaling + s2612reg2($51,$00) + s2612reg2($52,$00) + s2612reg2($54,$00) + s2612reg2($55,$00) + s2612reg2($56,$00) + s2612reg2($58,$00) + s2612reg2($59,$00) + s2612reg2($5a,$00) + s2612reg2($5c,$00) + s2612reg2($5d,$00) + s2612reg2($5e,$00) + + s2612reg($60,$00) ; ch 1-3 decay rate and am enable + s2612reg($61,$00) + s2612reg($62,$00) + s2612reg($64,$00) + s2612reg($65,$00) + s2612reg($66,$00) + s2612reg($68,$00) + s2612reg($69,$00) + s2612reg($6a,$00) + s2612reg($6c,$00) + s2612reg($6d,$00) + s2612reg($6e,$00) + + s2612reg2($60,$00) ; ch 4-6 decay rate and am enable + s2612reg2($61,$00) + s2612reg2($62,$00) + s2612reg2($64,$00) + s2612reg2($65,$00) + s2612reg2($66,$00) + s2612reg2($68,$00) + s2612reg2($69,$00) + s2612reg2($6a,$00) + s2612reg2($6c,$00) + s2612reg2($6d,$00) + s2612reg2($6e,$00) + + s2612reg($70,$00) ; ch 1-3 sustain rate + s2612reg($71,$00) + s2612reg($72,$00) + s2612reg($74,$00) + s2612reg($75,$00) + s2612reg($76,$00) + s2612reg($78,$00) + s2612reg($79,$00) + s2612reg($7a,$00) + s2612reg($7c,$00) + s2612reg($7d,$00) + s2612reg($7e,$00) + + s2612reg2($70,$00) ; ch 4-6 sustain rate + s2612reg2($71,$00) + s2612reg2($72,$00) + s2612reg2($74,$00) + s2612reg2($75,$00) + s2612reg2($76,$00) + s2612reg2($78,$00) + s2612reg2($79,$00) + s2612reg2($7a,$00) + s2612reg2($7c,$00) + s2612reg2($7d,$00) + s2612reg2($7e,$00) + + s2612reg($80,$00) ; ch 1-3 release rate and sustain level + s2612reg($81,$00) + s2612reg($82,$00) + s2612reg($84,$00) + s2612reg($85,$00) + s2612reg($86,$00) + s2612reg($88,$00) + s2612reg($89,$00) + s2612reg($8a,$00) + s2612reg($8c,$00) + s2612reg($8d,$00) + s2612reg($8e,$00) + + s2612reg2($80,$00) ; ch 4-6 release rate and sustain level + s2612reg2($81,$00) + s2612reg2($82,$00) + s2612reg2($84,$00) + s2612reg2($85,$00) + s2612reg2($86,$00) + s2612reg2($88,$00) + s2612reg2($89,$00) + s2612reg2($8a,$00) + s2612reg2($8c,$00) + s2612reg2($8d,$00) + s2612reg2($8e,$00) + + s2612reg($90,$00) ; ch 1-3 ssg-eg + s2612reg($91,$00) + s2612reg($92,$00) + s2612reg($94,$00) + s2612reg($95,$00) + s2612reg($96,$00) + s2612reg($98,$00) + s2612reg($99,$00) + s2612reg($9a,$00) + s2612reg($9c,$00) + s2612reg($9d,$00) + s2612reg($9e,$00) + + s2612reg2($90,$00) ; ch 4-6 ssg-eg + s2612reg2($91,$00) + s2612reg2($92,$00) + s2612reg2($94,$00) + s2612reg2($95,$00) + s2612reg2($96,$00) + s2612reg2($98,$00) + s2612reg2($99,$00) + s2612reg2($9a,$00) + s2612reg2($9c,$00) + s2612reg2($9d,$00) + s2612reg2($9e,$00) + + s2612reg($a0,$00) ; ch 1-3 frequency + s2612reg($a1,$00) + s2612reg($a2,$00) + s2612reg($a4,$00) + s2612reg($a5,$00) + s2612reg($a6,$00) +; s2612reg($a8,$00) ; ch 3 special mode +; s2612reg($a9,$00) +; s2612reg($aa,$00) +; s2612reg($ac,$00) +; s2612reg($ad,$00) +; s2612reg($ae,$00) + + s2612reg2($a0,$00) ; ch 4-6 frequency + s2612reg2($a1,$00) + s2612reg2($a2,$00) + s2612reg2($a4,$00) + s2612reg2($a5,$00) + s2612reg2($a6,$00) +; s2612reg2($a8,$00) ; ch 3 special mode +; s2612reg2($a9,$00) +; s2612reg2($aa,$00) +; s2612reg2($ac,$00) +; s2612reg2($ad,$00) +; s2612reg2($ae,$00) + + s2612reg($b0,$00) ; ch 1-3 algorith + feedback + s2612reg($b1,$00) + s2612reg($b2,$00) + s2612reg2($b0,$00) ; ch 4-6 algorith + feedback + s2612reg2($b1,$00) + s2612reg2($b2,$00) #endif @@ -1014,6 +1034,64 @@ SKIP3: LD A,(IX+0) ; For YM2151 ... Unimplemented ; MUTE YM2151 + s2151reg($14,$30) ; disable timer %00110000 + + s2151reg($0f,$00) ; disable noise +; + s2151reg($1b,$00) ; CTx output off, LFO waveform + + s2151reg($08,$00) ; key off all channels + s2151reg($08,$01) + s2151reg($08,$02) + s2151reg($08,$03) + s2151reg($08,$04) + s2151reg($08,$05) + s2151reg($08,$06) + s2151reg($08,$07) + + s2151reg($60,$7f) ; total level = silent + s2151reg($61,$7f) + s2151reg($62,$7f) + s2151reg($63,$7f) + s2151reg($64,$7f) + s2151reg($65,$7f) + s2151reg($66,$7f) + s2151reg($67,$7f) + s2151reg($68,$7f) + s2151reg($69,$7f) + s2151reg($6A,$7f) + s2151reg($6B,$7f) + s2151reg($6C,$7f) + s2151reg($6D,$7f) + s2151reg($6E,$7f) + s2151reg($6F,$7f) + s2151reg($70,$7f) + s2151reg($71,$7f) + s2151reg($72,$7f) + s2151reg($73,$7f) + s2151reg($74,$7f) + s2151reg($75,$7f) + s2151reg($76,$7f) + s2151reg($77,$7f) + s2151reg($78,$7f) + s2151reg($79,$7f) + s2151reg($7A,$7f) + s2151reg($7B,$7f) + s2151reg($7C,$7f) + s2151reg($7D,$7f) + s2151reg($7E,$7f) + s2151reg($7F,$7f) + + s2151reg($20,$00) ; channel output off, no feedback + s2151reg($21,$00) + s2151reg($22,$00) + s2151reg($23,$00) + s2151reg($24,$00) + s2151reg($25,$00) + s2151reg($26,$00) + s2151reg($27,$00) +; + SKIP4 RET ; ;------------------------------------------------------------------------------ From a92c44e53f5c702d693053aa52cd3e380d747437 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Sun, 26 Mar 2023 20:43:47 +0800 Subject: [PATCH 07/17] ym2151 vgm files --- Source/Apps/VGM/Tunes/More/sabredan.vgm | Bin 0 -> 27769 bytes Source/Apps/VGM/Tunes/More/sure.vgm | Bin 0 -> 35814 bytes Source/Apps/VGM/vgmplay.txt | 6 ++++-- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 Source/Apps/VGM/Tunes/More/sabredan.vgm create mode 100644 Source/Apps/VGM/Tunes/More/sure.vgm diff --git a/Source/Apps/VGM/Tunes/More/sabredan.vgm b/Source/Apps/VGM/Tunes/More/sabredan.vgm new file mode 100644 index 0000000000000000000000000000000000000000..88fdc1b2d6921223814eea857df5172c70ff5c79 GIT binary patch literal 27769 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 literal 0 HcmV?d00001 diff --git a/Source/Apps/VGM/Tunes/More/sure.vgm b/Source/Apps/VGM/Tunes/More/sure.vgm new file mode 100644 index 0000000000000000000000000000000000000000..74fbbb9ce429099dfcf27d7204e1f326e86d0788 GIT binary patch literal 35814 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 Io`+BVAGY382><{9 literal 0 HcmV?d00001 diff --git a/Source/Apps/VGM/vgmplay.txt b/Source/Apps/VGM/vgmplay.txt index 0961c4d3..955ece34 100644 --- a/Source/Apps/VGM/vgmplay.txt +++ b/Source/Apps/VGM/vgmplay.txt @@ -21,7 +21,7 @@ Supported platforms =================== VGM Player is currently being developed on the ROMWBW platform using the Retrobrew computers -EBC-SBC-V2 (Z80), ECB-SCG (AY-3-8910) and ECB-VGM (YM2612 and 2xSN76489) board. +EBC-SBC-V2 (Z80), ECB-SCG (AY-3-8910) and ECB-VGM (YM2612,YM2151 2xSN76489) board. It can be configured to run with other hardware such as RCBus, P8X180 and nhyodyne MBC. VGM files can be very big and are limited in size by the available TPA space, which is typically 52k. @@ -50,13 +50,15 @@ FIELDMAP.VGM - SN76489+YM2612 - Taikou Risshiden: Field Map: Summer ITSGAMOV.VGM - SN76489+YM2612 - Puyo Puyo Tsuu: It's Game Over! : 16K STARTDEM.VGN - 2xSN76489+AY-3-8910 * Exed Exes / Savage Bees: Start Demo ~Main BGM : 32K INCHINA.VGM - YM2612 * Double Dragon 3: The Rosetta Stone: In China : 44K - +SURE.VGM - YM2151 - Marital Age: Sure?? : 36K +SABERDAN.VGM - YM2151 - Road Runner: Sabre Dance (Attract Mode - Stage 4) : 28K * Included in disk images VGM sources =========== https://www.smspower.org/forums/15359-VGMPacksGameGearMegaCollection https://vgmrips.net/packs/chip/ym2612 +https://vgmrips.net/packs/chip/ym2151 https://project2612.org/ VGM Tools From 47a7d81bb9549c476ae4a0ca857f58f349e76e7a Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Mon, 27 Mar 2023 23:36:24 +0800 Subject: [PATCH 08/17] Update Applications.md Add basic VGMPLAY information --- Source/Doc/Applications.md | 78 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index 8cec1c78..8c86d052 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -1028,3 +1028,81 @@ hardware interface code is specific to RomWBW and the application will not operate correctly on non-RomWBW systems. The source code is provided in the RomWBW distribution. + + +`\clearpage`{=latex} + +# VGMPLAY + +This application will allow you to play Video Game Music files. VGM +files contain music samples from a range of different sound chips +that were used in arcade games, game consoles and personal computer +systems. + +Video Game Music files have a .VGM file extension and each file +contains an embedded header that identifies the hardware it is +intended for and also the title of the music. + +All RomWBW operating system boot disks include a selection of sound +files in user area 3. Additional music files can be found at: + +[VGMRIPS website](https://vgmrips.net) + +[PROJECT2612 website](https://project2612.org/) + +Sound files are loaded into memory for playback, so the maximum size +file that can be played is around 52Kb. + +Sound chips currently supported are: + +* AY-3-8190 (and equivalent YM2149) +* YM2612 (and equivalent YM3848) +* SN76489 (single chip mono and dual chip stereo) +* YM2151 + +VGMPLAY supports playback of files with multiple combinations of these +chips. + +## Syntax + +`VGMPLAY `*``* + +*``* is the name of a sound file ending in .VGM + +## Usage + +VGMPLAY does not automatically detect the hardware platform or sound +hardware that you are using. This means a version customized for your +system must be assembled before use. + +To play a sound file, just use the VGMPLAY command and specify the file +to play after the command. So, for example, `VGMPLAY TEDDY` will load +the TEDDY.VGM sound file into memory and begin playing it. + +Playback can be stopped by pressing a key. There may be a delay before +playback stops. + +## Notes + +The default build configuration for VGMPLAY is: + +CPU speed: Autodetected + +| chip | number | port | notes +| --------- | ------- | -------- | ---------- +| AY-3-8910 | 1st | 09ah | stereo +| AY-3-8910 | 2nd | not set | stereo +| YM2612 | 1st | 0c0h | stereo +| YM2612 | 2nd | 0c4h | stereo +| SN76489 | 1st | 0c8h | mono/left +| SN76489 | 2nd | 0c9h | mono/right +| YM2151 | 1st | 0cah | stereo +| YM2151 | 2nd | 0cbh | stereo + +Inconsistant, garbled or distorted playback can be an indication that +your CPU clock speed is too high for your sound chip. In this case, if +your platform supports speed switching, then the CPUSPD application +can be used to reduce your processor speed. + +VGMPLAY is still under development. The source code is provided in the +RomWBW distribution. From 5b339aef3e01319a093b96d41ce89ba1c6ffccf6 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Mon, 27 Mar 2023 23:39:26 +0800 Subject: [PATCH 09/17] Update vgmplay.txt --- Source/Apps/VGM/vgmplay.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Apps/VGM/vgmplay.txt b/Source/Apps/VGM/vgmplay.txt index 955ece34..7763144f 100644 --- a/Source/Apps/VGM/vgmplay.txt +++ b/Source/Apps/VGM/vgmplay.txt @@ -50,7 +50,7 @@ FIELDMAP.VGM - SN76489+YM2612 - Taikou Risshiden: Field Map: Summer ITSGAMOV.VGM - SN76489+YM2612 - Puyo Puyo Tsuu: It's Game Over! : 16K STARTDEM.VGN - 2xSN76489+AY-3-8910 * Exed Exes / Savage Bees: Start Demo ~Main BGM : 32K INCHINA.VGM - YM2612 * Double Dragon 3: The Rosetta Stone: In China : 44K -SURE.VGM - YM2151 - Marital Age: Sure?? : 36K +SURE.VGM - YM2151 - Martial Age: Sure?? : 36K SABERDAN.VGM - YM2151 - Road Runner: Sabre Dance (Attract Mode - Stage 4) : 28K * Included in disk images From 7563863be2cda016a2665fd28228a31eda0cb37a Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 27 Mar 2023 14:44:54 -0700 Subject: [PATCH 10/17] DOS/65 Refresh - Refresh WIP files of DOS/65 from Dan Werner - Another tweak to SURVEY - Regen PDF docs --- Doc/ChangeLog.txt | 2 + Doc/RomWBW Applications.pdf | Bin 216614 -> 226590 bytes Doc/RomWBW Disk Catalog.pdf | Bin 124414 -> 124414 bytes Doc/RomWBW Errata.pdf | Bin 28510 -> 28540 bytes Doc/RomWBW ROM Applications.pdf | Bin 159614 -> 159615 bytes Doc/RomWBW System Guide.pdf | Bin 528136 -> 528135 bytes Doc/RomWBW User Guide.pdf | Bin 528273 -> 528273 bytes ReadMe.md | 2 +- ReadMe.txt | 2 +- Source/Apps/Survey/survey.mac | 2 + Source/Images/d_dos65/ReadMe.txt | 4 + Source/Images/d_dos65/u0/alloc.s19 | 15 + Source/Images/d_dos65/u0/asm.s19 | 309 +++++++++++++++++++ Source/Images/d_dos65/u0/assign.co6 | Bin 5688 -> 6251 bytes Source/Images/d_dos65/u0/bcompile.s19 | 335 +++++++++++++++++++++ Source/Images/d_dos65/u0/compare.s19 | 92 ++++++ Source/Images/d_dos65/u0/copy.s19 | 17 ++ Source/Images/d_dos65/u0/dbasic.s19 | 343 +++++++++++++++++++++ Source/Images/d_dos65/u0/debug.s19 | 106 +++++++ Source/Images/d_dos65/u0/dos65.com | Bin 9039 -> 9159 bytes Source/Images/d_dos65/u0/dos65.hex | 248 +++++++-------- Source/Images/d_dos65/u0/dos65.s19 | 416 +++++++++++++------------- Source/Images/d_dos65/u0/dos65drv.sys | Bin 4473 -> 5275 bytes Source/Images/d_dos65/u0/edit.s19 | 215 +++++++++++++ Source/Images/d_dos65/u0/format.co6 | Bin 0 -> 3239 bytes Source/Images/d_dos65/u0/format.s19 | 103 +++++++ Source/Images/d_dos65/u0/lowmon.s19 | 129 ++++++++ Source/Images/d_dos65/u0/mksys.co6 | Bin 0 -> 434 bytes Source/Images/d_dos65/u0/mksys.s19 | 14 + Source/Images/d_dos65/u0/monitor.com | Bin 4130 -> 4130 bytes Source/Images/d_dos65/u0/run.s19 | 342 +++++++++++++++++++++ Source/Images/d_dos65/u0/s19.co6 | Bin 0 -> 42 bytes Source/Images/d_dos65/u0/s19.s19 | 3 + Source/Images/d_dos65/u0/sedit.co6 | Bin 3841 -> 4097 bytes Source/Images/d_dos65/u0/sedit.s19 | 130 ++++++++ Source/Images/d_dos65/u0/writeos.co6 | Bin 0 -> 412 bytes Source/Images/d_dos65/u0/writeos.s19 | 14 + Source/Images/hd_dos65.txt | 4 + Source/ver.inc | 2 +- Source/ver.lib | 2 +- Tools/unix/zxcc/cpmredir.c | 5 +- 41 files changed, 2518 insertions(+), 338 deletions(-) create mode 100644 Source/Images/d_dos65/u0/alloc.s19 create mode 100644 Source/Images/d_dos65/u0/asm.s19 create mode 100644 Source/Images/d_dos65/u0/bcompile.s19 create mode 100644 Source/Images/d_dos65/u0/compare.s19 create mode 100644 Source/Images/d_dos65/u0/copy.s19 create mode 100644 Source/Images/d_dos65/u0/dbasic.s19 create mode 100644 Source/Images/d_dos65/u0/debug.s19 create mode 100644 Source/Images/d_dos65/u0/edit.s19 create mode 100644 Source/Images/d_dos65/u0/format.co6 create mode 100644 Source/Images/d_dos65/u0/format.s19 create mode 100644 Source/Images/d_dos65/u0/lowmon.s19 create mode 100644 Source/Images/d_dos65/u0/mksys.co6 create mode 100644 Source/Images/d_dos65/u0/mksys.s19 create mode 100644 Source/Images/d_dos65/u0/run.s19 create mode 100644 Source/Images/d_dos65/u0/s19.co6 create mode 100644 Source/Images/d_dos65/u0/s19.s19 create mode 100644 Source/Images/d_dos65/u0/sedit.s19 create mode 100644 Source/Images/d_dos65/u0/writeos.co6 create mode 100644 Source/Images/d_dos65/u0/writeos.s19 diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 966d44ca..a4e02563 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -2,6 +2,8 @@ Version 3.2.1 ------------- - M?P: Fixed Zeta 2 FDD and CPUSPD config settings - WBW: Fixed SURVEY.COM (again) +- DDW: Updates to DOS/65 binaries in disk images +- PMS: Updates to VGMPLAY including support for YM2151 Version 3.2 ----------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 091570d7d1e3bc88d5e02b52ff4ed148c9e58d0c..15ed55d53559e4bddad97eac5a01323c484e93ca 100644 GIT binary patch delta 53245 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

l?GN$A1{|_cb1*{zD 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 S7$z{}0m7<$s@BVFg#Qm)xGDhv delta 44753 zcmZ^LcOaF2`+w(H*?Y_0WSoIx%idX$8IkOrnS<<+apca(4xzF#D_N0H5{1af9vOu~ z{qA$J>rf{9Jl-P+6UPBeHWSE+9YIvIO+LaRHR+9ku;vIh>`sfu2#+xOBQ zUN3iSb5s{ZJl3tHmn(Sy85r)~Iu}AraqdFJwryaR-{+(LX}t6#N44AB#McV1bKh?m zX@eP(O3b#v#9Jq2_g|J7nY|hGJ(lsq->J@C^~Rjn+KAR_*0YQSFUw|) zFW;XQE@)%7QZATnF$!`;9H8e)*E3Q^udSsm3l2%YkRrEZsXPW=EF?N?1dl8}nk_-+ z$Dvnzp)+;$V$cdD%!(-)W_|S>R9Xu2n41~>rH}gQzWFyw!Nwi4Y+@$zf$AIN)rPSF zR_iY0hgaTo2>gCt71HXYJrYY)b5%1=k*YMuv8K<_u?|+JGk@@5Ugp=Yt?iYqsnqda z4UIc&1;2dLo?K;H5G=Wkg3kGb{q#Tj5qS0bZR$n_8{L%IXw=Jn?Z%lfuI7{(Q# zFSq{+KCg6+sCw<-&8|WHzr&A4W>e#~1NP;euXaD3uCHd$zQ=y;wdY}+$>dUK z{7v!3J&T6qn_pUWfBgD1_BCAeS;FH;DY>DoQS`SDfJM^g#)#^|^URI7_7$&?Ctg#+Mok|Yk2-HCa*lYhcqy`a!RL1r4|@kQM^tk@lkev; zZEiQtj>+ElVi7AKFK6ua3-DS}2$25NgvdLK*eIJ_b(PuBWeYiC3mnp5EBKHbx!o*Q z8Hg@9MyE7d=N<5UIbKR*S*Un#PPp!-_2lQenDlN#pp4C4n?tX8%*cYv>`z(8eTDqz zsf>J|nRZF%dn`ZbPfm5Mgf`}qb{>_@Zq9yFU^SpE@q}-(8?*<@-21JNw|U!ZK?E;6 zXtPL+Y*$z7nfu!2eanevTb_2|>Ja^kc8W%k*I`^`V|$r*{0 za&NT7jRsO*T5FuL9`5pD*<`=;Ibrw_YQ}H5%H#2vc*Znjc*(tM$mwv@b=QCBo2T1G z-rmnpqL$rFzYsY){#Oeb)0>P!9#hxC6?f*{`gYTQ%`LF>wx4@!g$}xR#@ypu;^1Yu zbo7xF!Sw5GJChk`OFDjgKqTXG<4|33k%+rwY>ekw50+M*QJ3Y{z*ce&6){UlhuZb! z6sA`f_9NLEmY&P@k0M|#_J|a{&9}wrukdUUupib_yevV*85;av$))K+g#HFBtuF*p z^os7P_~F}E6s8M7yIi~+*QaGu^s3C~G|+zdwO3MJmR+YCtT3rjBy?FOG0Wk(OUTHQ zy(s2eh>BvaP~jQTtM)>(ggmUj?wCXFmc!E*S%|zT@GxcZMY%Xy)|^9VUc{q8!0x=r1G_==$Vbyyf0o?-VU4RM`tidbO^Hodax2kP zI#*4Q#@F3fW4I7fPc9Iq=zG+tTs4sk`WQKm5c{r%9HjKOr%TbDvarpF_PqL{{`zuM zwuY+tdv})Bt9s={MAsEythDSZs)hqpEFndCdybA*-trPpsuyM<{9{IViD|n`b9ksU zhk1!H30w$GPU8D6H2ee;jFs9~DOj@6{)L1OH-t%VY4AS@U>KyX=t|V!C&$;%khs@Z znyyW&Kf!o*u!eYU#?vz_4>96<)T#QC(R4}{)BrXWeE95!X z-JTB_=Wuw(4D%*@Z{>_$Jo_mfq1`F}wt<^qH=1l(&g7zHdQ@M=Bf4+--BTZX6Jl$!LCM!XT+UOKfQ*ItSDWGUdM!2lw9%p*HGE(UV4OeF4p}m z64$LQYmA=?j7a2j8{wrlpbIUdz6jCWziz2eey70s`;{W1i5+ zjwDee1I3R?Gv!?>nclnJh+1;Cu#Iect5dRs50{A zkO0Mn7E7WnQ#$h-d0Y~^e~u}SxYB*XyMW>SB#`X9BJnTv* zPp3hfr$DAsWwfQ>CIxD!S$I9CJAc$=E64U?4)5%+_e70$0Um~5`yg|7pkCC!t5BOp z@th8;)CznCOoFBEQu5qy*@b3b4)T8&NV&fAb5(Z9=+6K4#-)T`fgao!#F7ZYaEa>~ z(M!=gvijNHAY0Zf#+*7MdHpEHES)#bwQtGCo;J!wm1~-Ey3mt^4vqif_!i%^wyPA{ zqVS<${}D&3^zQM!-?W3l!AScVO2arbg2~Mi9})2wPk4GxCKQ;5+_ebF9%l=NhvtylXhhNO&tU=ofHgQ#iH`^oZ@Pn zR-BSj5sa%#ju%0dy=v1c9F$g33-z6Zt86tpj2?p0NH-iN* ztRWQt+0_y(3!>kG1)-pb$W;j{Nfh$LC=E~zNt6_ZD^COy8bl6`J8boJAyHHqlm`Vy z4@%DflaTn!e3T5%eD5GKOmh$o1ckL%0CPT=4uZn$CCT7PqEHygWC09u5CtZAm5~Mo ziujkjLPse)m;@5=A%O_iZzX>u2R^w$X>nnv2l0Q4gh^n0+))^d}1lao|2!Vrn%=7;#B+R)fO3cP8 zYkk8MAqi%3i0q_r5q~up7#xM!UJ~N_E7XX;+=IaN9s$g&H>a*gob;aJWo&-|J&*Y| ziM`rc#&(wTD}oq_PuS1Tj|4DjE7+?aM}nAg95%CprD0ta#GqGCD+%OgzA6X>_4#M| zh%A%Wudk*MLJ_BRiTt}R5i(d42u>VpwaoFS`|$73V7Fm4Ygr-(+YaAz+Jff z^E|??;qnhNy?W|Jkofr#3cCmEp0#aSFtEsD9N>K{h?!pgU(GvrgzLF~nG$0t53fKZ zG2Vx9fbCfb9p=rUAO?0M0Cb!MtK-cfB_{2N0QiMnsXXEa5X6x47_Vb0z=s&ZjNv-w z2C9i6EKn&KjQ0^IuuKeL#bh5#{$E{21Xv=1kT-z`vJ^Sy$MI<*N&lTlQn*Aqi2}fQ z7QzmdK1moL=PZO4{DAcdKtl|n!7e;z0?*#W(+_J*5IOKX7GMUkm#5fOW*k-kVo;Fv zKXL-_B7q1sU1WhYkpQ)f5POIuK+6P)1Ge}ew7^3q2sP$yD>IPG1mOk@`5~fMhzdyJ zhp+&>%n;cBZ6gsMgd8_?G|3A>**;y7qr84?l&2(Um-Q$hxb>zhCjAA}Bq1cIa> zvQQ9fkOE!s1T+N1woWloX%G|RhtPnSv-AmF2^KSChG27pkpS1EFyQ$KOiDp0um^UN zsSM;B2_6hQ#<2q%4E5K*0z)DHFH7JOIMso#nh<(c&=S;%B{0-Ub-*P~47UL~5D+%N zn*%BWNU1@Jz;2l?%L3T!L3jXqbx0}jLlvR`?5RWU0mjmxg}C`g0BAgmcbfGmsgv=G zOcO$lQxmKmKob6t*2V zMQcH5iNPKNY2{)7v3~~=4vq`hK>pSE;D3z|aBwC8rx_tY!x%yha(n@%v8E<2Y+yV z6Dals>I5M=$$y_aSQ)>t#LenBgK%9F;4*=L^8TVT zL_p{OPd^AH_9F{mZfM?(bP+xGGI%!lV z_H0B#gqo1IA<0AldlIgRM+zl4F-}iK0^cpSmKw{l_ifBA6c7 zBMO@s06YsvgG~jA63{u=!A1b^%)(v*py^mbtkKxvgP;gyj`oo^DDI&41Y>Bm=X&mr>0{o4=Arb4Zp-g2ptJj3W2LVI;p?r zOt=(w&J+My<67Q7;xF}Ab%0#3w`ufnslO@$T*CSTb6NZ3z=BI5u!RfkRDo6^us4=M zwEw;tz|w%XnSfX|j%KeJjJwo-Znpk9cuxvn8iosMLkk3tDr*rO#H3FY|HrchI5;o( z&_D$VPiz7XtN#R4S`ur3Ano6#Nn;>g;7Qs9Y9a|V^n>O6w~gTLt$whtUnIsO`!gM$ zBq!5r2nBGH1j5!-{2H=F29Z9gHtD~sOG1fwwUK8gJk-*opW5%pRG)qAhbW3j=|mvrg&@L~un^ z)(lp@3~n9<=ElJgoVHiTejI*MMH~~L+8~Q1FalHk5NdD(u(1RNO6D)q!4;upkj#1l z9D?A0(=upjVgJeD^#4gK6dd;)p^0||f+hp@Ko?*S6h^v}aps@Ng_6WYQ2E~xM4bft z9}&bMrx8S*9D4taAUOT9Fk=Il4OB0JQ@0ASAi%o>+71IW_rXym@8tT{K4{14B4`H; zXvgAo%Q%`t5C{9)f5%*5;Kwp}d{iGmhDm_?-ywE?vVUz4q6u7Cg3tgF`{1nm2Ap+a z`{39Wj}K)9CYHeV0phg4OMECJ;I$7PE5GrfEa2a(0H1vbCm=@vWdWA3a3BGc8Q?yE z!2j|fcvmZohmept@t`0fl$s2~DZu`tHB1cg zKbpXRVJ(n~LkVPHE(TKFQwASof*PL%4B$`-FpamdT$J^o1VA7h$_E182q-tuezI7E zI9cR{BH%!gI+PO-LO`j2Aqgl0V2FTnLcvl64G;$uBtZnHOQ0mUeIHBp0E^)y&r5>g z#tH>{_E{K|2gpK#S)vPra$%-fhyXtrXalGMFHj2uH!Dhko9AJFM1Z%dI3L}|!q)IV za&qBNZp>pgBA^=%?#78BLY#^L;-o=SQ3#N>N*es(g@AJ5A;lyC3<4C6lQfF8(m)1e zNrXI+#03~5p-h+=&a=Q1EFOWyaVFIuL0UExh|OU!tSmf)Gy*7+fO23AISGI~6zETV zDKORBP@omJq@dh*QlPjBsXyXYK?v}Wg;D~n(jXa*t&=pA1r$eu;p8R&lBNGx@dAWT zB4j8BX3jQ9Ph(*%At9kJMDnLoBV>SdWiT4|;n z%0Rg?#EAg3JgA}w>W}OI6ez@79!dg6o< zihu0!Rs`+&iN%Vs7*;0m0mSenB|u}26i_EO{$M3JhKVeH5j1Vhs}L0&%SK zhyhJiaA6m_;HC=x5K@M6;Y&(_#^@`9OmNOiRR)Dos)52fl>Z1LQ33PetrRf^Eepm= z4P+#T)fMMKcNLI+Mh$d!J{H48Yh2~TeZ+vZIw+9z0=NL0$O))i088VdJQ3h}0ki=p zui^qISzH6$KZzy78ON)7A`bwtxEWSeoUBMyP}XlOR*%K7vY^sn`D5J~stHQsR0H7x zO{frHrUtTI(*%<+PVF=ap-6B_#|GV83*_(>3*)4r)In)mN~BIyGAEIv{GUdK1ZQb%2>Z0bAO0Fpo-7@3Q<=u8P&_0GandE+b)Zz>Cn;>t zL;{wYV62q&NP!PJU@66Gg5(c}^P|yVxJk&ff5e^`=PU?;kxUL0axMZ2rg))F+ z^tK#m53?Q^t+&`E(4%|+p*E;`oF2$RMjOO%Hb!cndh{z6ufyV4aZo8qZ1dy-%=JN- zN(Y2NOW}Zy&WS`~@WF()4ye(-KFGLU2V|^h08%bsDRIJBbwR8Oi|Kej4lSgCpFXls)mAfc^5>L-BLQX#ymPpRJMUbe#8B|oPzsP- zfNBDK?$Glf!$LwlI$)Rrj}{_>#W{gocjyH&`00>m4zd6wi0~{yrBF>89?)A5@Epa? z-oTD06wEXjptB5BYV!4h{uTo!$p4{H6EE&zF!&(sk20svk^g(}N+IC5F+Q;X+6Tpq zIZ^=f3s42%UNQ7M6an^YLOfbJ#L4XS&rOIEMb{R|f;su#Qv!5)8nSxU>v~H_6-Ct*1epPAmUWS{le9 zJM~~}Gt?gn1@G&ynh_$fqlz)`*Z@k8ku@LzYM^-dK$<%kSgSTDKRMzw6ret!8YlW7 zC7V{;pd}Di85!{Jm`Eg?6A9j6*l_-5Ad~_h=wdaUd4WIaj(0Y~YzT%_yV-Py-; znCVM(cRJ@?t)ASyW7=P7Gf`>t^4;sP=R23j;=dbMXHOXZ4lT)f<>SO*&|p3$EVt32 zVMlXyJxo2~zG6I@D!Gc(0%&LsIp~q|`JT;jsp^B*%v;9ask)7N9>d({AF5l%WoDg! z$G(jBgJqf7pb^5s(qQqWWjWW zr(V1Gbw)v&70O4vQV8duSDGiRiQ{-q?o+6mE^ zQK#<~H^(B7jwu#b865O2OvaM$*DY2P=w3a4S!9pNt&82+<1$)qEI;7Nxyu4$*#Y)b zbTz(bjpR_~!B6&55t>b{~If#Mz?HG5D{KZ!a03*Zg}8 z>N02(;Tvm|aJ;#X8dHzBD2NZ1>YJY5PjcN0Z_9c1rYS5#Y_5mGXncCMUW8P$X?rB} z6Jvv6qJcyFugLEz@L%EI@II5Z#SEQW%CeWKb{ET4eB-m3YfpUc66E;}_b>*p*cMWe zw^!JD`k7;+zwKQJLNk?eotf>iUaXPnx{E?DhV{01#4gDU1$52i9I4tpL;AfOVD_!> zBeLsxc)jDvrC>=5bO(D_CYp;diE}A#-8k%t7Ng=2rSuop?wZXbg3!AUc~&t&uq6dG zr(cY6QwB3fLPob!8;BTZ@Sn%TeM4^54QWoUC`Y#+b4smzGC&7d;K|Rf1&uj-zy3O} z%`zAGnP=={pLZVSpdrCN`9s#mo)b!RT;f-houi}Nx=$C=TusNdpeR9t-h9H)--j9n zT{`n}x2R2F`f=ZrUN}A(+#)7!k6_%+U2N7+fLAYsEwOIOn0rrQTHL>A^^QBo^7-f4 zQLSr0k4cHvm8sBOn{hKMW7dS3hcwqnCPuo2w^5%S$iKa5U95?3C)pKeeL(tXS_ofv zhL|_{zP<1m)#pT}mpbRm+fykH&ErNpM-AtFD(B~+dGC9&);I&gT}6QFC*Pn*R8x#p`2my8rN_-QzL- z;?}bs`Bb%Q&I8o<+O|+PG~0$Z6JCgqbi0VyGV)k`YP7Itp@x{%(~#}e77E>jGnjfhi?7$KZg_wDyzSjfHXqQ7GU$Ejr;#?b z@ysFLqEd4`dnK~a=3>oxe$2tpIoT-tfwZlzCbmo2-Flr@`ttA$2e!f(vw99wRGE2# zt;wLVjt{7OQN{ALx8tTRxc=N)K?)TdIOojEb241;PPIjENxUWYdcojDb6ze#)PPYg zi7{YtZzwJ)tb=XMrdE@2;eGmeQd!|D!j+6(FPz=9#oE}Oc;>1KANmg^ynJ2%6okBhy(_7OR^eBmXzBH3K!Xurv zvaQ5Iq)RXXZKh$YK!o?z#icmIQ`+~jC#^v+<9;(ohu1+Z6-Rdsycx6BJbcx^xTN&m zP_#0U=}Q&!>qczMU7K?+CuzJo_Yg)LLp=jqwFDGyDTl+I^?DP8SxnP{xJR{|U_FLw8f_qdGhXxY{Idlgyr)BHW51(WtEa61?}6u?~2Tcf!(_lC>< zUct#@S2Jy7EzP#D^odg2~!w zB`;}1ub)4X2od*uC_Md@+VRuNYX|C4I`&OQ#eVS|bLbsfS8^0oKqz5Ww3=`I%Nfl{ z=d_x~F>;;MPvS=u*4ZYWR5t%MS^dW1^CFI->Ol}C!hvRjD0&@0eo2>ee zon>#@yEW9ycq8;_fQ*BCkV}`YF}3W6^t5{}frd0;Y~Sy0h7gOYWqs(Xpr{poJGiz?VuahxB z4|)Oo0q9R-KH*Y>;kWAt$#m~dQJsxs|G0dH(=DDj-RH)Pq<7p4z1fV9^9SE9bjy&1 zZfMAPdc^KZxlh+H2Q@0(vta*X==j1rr;&@cw2JtZ1?|xuRd|(Vvhy})P(H+1>*Bmt znSHo*m4HKnR(s=hH|<51;CGr#EzxE?%mj{O4SeC~L+ZoN0f25sO7ep*N67)RJZh42 zx4XIr;}l|UaVG#umpXy+)=G5>@y?rR6*ezMwT~P=did%arE^g?j7I(_5Gt`qIbt=8 z>6Z9L=|mU7eVcp7$cN{+YB}1!%Js$cPl;dBtuLgj%i)#73@swX3r|G1abKE}o z#yU|SjV3apc|4+puQW2rz9){ad1a>E$7#ENb|JqT$Sj(VGw^(DI{hnZ0fX{8-eWob*C%y-dxS>UOnMJJH^mI|CD|3y&2eV}5Tf72b0|KVpAD){#e+SJI0u zif(7M&tLa$lw}-Q2+tSNAI`|?N6E`oV!ZRjH&WXR$DdR~WV2}=K~vlEFSpNShjjM6 zxHYthE;$g?mP>RmRl3o$J8-sSjli5V*7t|@^Iy5rPGluk5z0}IM-F}xEMH>^b{yu- zWJn7WE*07iy}EsCQ^v^JnHsOj@BUzvU?)V>$j!Su;hiyKkP z+1sNloVNB*bzTysj zYnh6d$=c!#Bg0MV${Yv%zuH)GynD+MLZ-hCf?H5&wZ$ z^plHUe<(aN>KNgR=KE52KhcBsEs?H)_npzpyngEOH7>=(I=&s`lV>oE5nOVNG?b5c zxzaBtq6sO|`r!oQ%Q=isetl7|i|*l4r@#~(oUc|8K9jX)Zv2DG!t5P^omk{COGf0d zMRVBU9OduaxhL&bQ@^CufvIRQij_GzqinmBvHF79sp^ou`lCwmkG(o{1g$sUJ?b}k zI5u}V9FZt7%1B4h!`SV9{7l#QP3?3d@(y3BeJ`4aSMVCgyS|&5N$n}?EYIl-rf~*|FyAbe27{b*isTC;O07@=<_AI zm^Bd!{o+8-pY{zR{1C$OA%W?uQMdGm7$kQ_!|VH>6`WGN>UNC9skwZ7FDBJHP`y{B zlaA^~*AabHh2GIF&U}Es>io3x8ePTAHQ6+Q75jbFS?EVKFSuwCUDzJ4C;rpJn>k1I zk;O)dTo+TBCEdlJMv9cuP9{fs9ElE+^)wF|urYL1&R))1s*^tF9BV(2r9yF;d`U|z zSGi~q{|@Ux43h{qkIWab2XzvNE8hpV4k^|Ma>Rx0s<)2Kesq4JH;>m6*u`VCeK{$3 zOV>IgSfeCYO;P%QYThPD5;%^@@anP&5&*~spv>s>=t>qAjrO%b5&DXn1>amI!7z=t zK6|V$8I1*MZ+}w^DW9C7cZ!->wBFZtFr)IP$o^`?ubMQ(Ues=AK>SI5V!D@``A6na zW|};HkO-aa8<&6xvrJwwzE|)0C+a^3zb^lnY+Yh?*GIXMx=mJ^Y@U)yk-lGgp6=1i zLr%&FwARz~-x`Vo29v#aRH!{hqk5~|xAVe3hHnZt?Iyt|eL@$y2C9zIf`;}}O8ja_sG_tpr!RVAyEKze`8&NlL{#YoI%4jNLg}+cbnEfR8zJ`te1;d9kWTe2{+OAX zv_|#CNlFJjfU7+7z3a;G!~1$SJ4OhZSk7%%uypNVe5AXm<|b|(19EG{h%Mj1JCsF* z%xD>U)84n=RRNV|h6~(}ZY^lyJ0=nY2|Ikth@tc4)4lRpv-H+KI)Q&9?nDCviCK)`m9!f)c? zv2amNlfrkJhvdOblm@jAuQF?Bud^wpaH}h$*$(P!MpXOKM@{cv%_SYKs}WERF>njT zgT>*Ok#*2&nUDnMgmh5a4{raWNppn-!%P#7+3WO6-{rah$M6?#f4ee$zL*vCjIKKuBdN77g0^u3tQ zMp8VL(DvmRL-uQgQS;S0J=r1Orp|B>-l&&|x?HL2D6L(a_x(ME#yciU26gN2{yn-X zJrey%0w%U>BW8mV<1I-v`ljI58KnG0@X_pzR#Qy;)f8>iLG;4RNX}W;!nr_S=>z-0 zxyYGIwH9zzYg)w~V-3 z{nZ=-FS9igMJHoQhbsDSj1R`&d9lfzw6QH5hzAu`)f6*e>mQm<^Y7l+8w^*`ny!JZh zeE$=D<*^lIqGh!j6npMFYKu%2A+ZFr#0vSPc}wr|1B^t#@GzRiZZ9vH|I35c_ZjHB zV#oFY1_t4~YK1CdtQtb*#04d#ZUS##b3lIoh!G@BoU5J?G1d;~kV9L^^yl47%`6ognkYW!^?*(O_jh;+$B=EkhkdZ;VgT zmdFv`uZ)2-*>>ZKE3pD?TjgmeJbeAE^ID;rdMg{x^M3pOTBGZG<=_6^Nx)QRqX$h- z=c*;RarWaP*}^^R-6OiroY~6vxx-QJN&b;?bGGw-<5^Fv#)KL4)!}*>jTCu}@wwYi zi!=lL8%6NwZe5VR*iXM9epEQsXjz2n)dCc35llGj0;xC3F#AjAuQ z_1Zcp@7=JLP&U(NsMTr-+t^jxhvKnDQ8i}>)5~}}N)s{G#)x~#}O`MZjASI7eGmo5gqOSOLeTkh<2%1_Tz zTlogI`t`eS(}X{@3Qp-zn5&5Yuu(LY{nJ`B{BCe;5?@dDcbU77zp6jFTR7?T@I$W8 z@Phr~Ww9Jfj`IiCBDq*Jl%l|@&DL*0+sOW$c+Zb{Gp;=*YNzR0uI8-oIgbYq?F+GN zDxfO(c)#WD_0RQoc%L7UF-~<04-eYLyxd1_E9+71Ux^TJwqB>%4>)8ta)*mu(>(MI z6=Kq@H63XDITi`gRj)T`H5-|Dld9(IGd*6}UxF+?3<_N18S0prxCh`J_uP(4LJ#?b zI&X8^z11;jhJ8@F*ZfWYi;BrhhMb_ujZ0^mu8`oTRd80MUCb4YjXS6Es#6nW>-kF=v7G3h0G=4lva&%DX>WA{5orU^(?=UQ#|K>Fv}XI_#A=VtZ@&$AF;%Bq8CaTQduyWLoh7uz-PUXPcQcJ`r&e!1^=nf*7JV*nRuVqu=$%EM zIfh3yy2&i6G^(?dRR&7ueBy!eB@=CxoljQTW&Mc(F?btG?;aLu zFf>fcS!;o}J`X}KQduSu-1V8Vk1fZ1md$VI3mOeno{5DeQpxQ<*Chor|}bY ztQc{{daQfvb@uf14Od1**M6YMIFY7Q2)G+q9Gz76fWWii27~8L(L1Tk<8j%HccwgM z4^th)5~tc@<{f>72bMDA_5Eibn^q=95Wj4e)KpL17s?a3L^xQfA8=Kl`4t*{zxrAk z>10gjeCl>U7`YmXtD4fZ(=>(bOQnf@dE%M^@S>kbJDLR1s z>Z@zdH6KoV926=EV6Paj;MHCZ=e&90d)im6hV(#9k-+_oC9+-#U#hfc&p$-rb-!e8 z?INVY3q&R(b1B`9+rK^N<}!OD^da14fpFTJ%jbgRfyt+h$Fk>0#Mv3y8Tru)O$mqt zF@1T9uS@Ec1D|?C;L^MO1JTE{;t|lnjW1_XOTFFbgw7GyzlzM0ci4$%u6rF_UB4%5 z`(?@Y?oZ?+D4gPkeW*_H{JO&1raaG-kq^6OnX|8XHtv)^{VLPn#*?6YDfW8(Iv>P1 zZ&JzFNV#~e=+29pIMv0ZHKS`o=zRV#V#eyCPV*~=dk3g7B4v*Awsk=XIzn#mDOHc? z3~OjS)7;OErKXoWLG|7gcG|=YGBVf2(YNm=tK$a@>W?4I^G9C&sQ)x?-c+cU%=&k4 z8zVs!YBFLsc+E*+jM7@kd#UQs=Kh6G1O~^wYl7xg<+@ zqAh9PifiZH8H1`)y)qpNZ?TiE3y+s8ho&%HwlD^tz^KlN+*;Z{MY3610g-px&3&J;F;rkHzuf0sXG^S+}28rD$rf0M`8_TCy z`tw%B=J`ot2a5oIV(0-~i}N`Fiac#=L{AKh_X!X?Gr^}O9!;(&>64ZvNjfx&<<~lYR(*pmVB)fcy!q_u7I^M`oYk!t z-3oaLDFJVO@Xph{!CxfD@1Ynb)0*bbL3ikEEp3$I+dubDMkFRY_*T9{k7kX~+WSsA zXE39%^&bzO@zPA%;|2T+qeJcPjHRwRgkfC!@spl( z#ypW&N@J6>9$hm#Pb|V%Gh4Cv@EFxY-U{rT0b}EY%6AUi5TqI&gWf@rCyH>i6!Rn#tH&{eVT4 zfqE*3{9rB4TQD^($M|5|(#=*zv(zb-{?NJLn){9A{&#=-J>A`#Zsc?yXH@y9=&hQM zv5h>t>>JUxklYYIuzBvos3W^_L;ooUXQ#*K=8SdD z&jV&c^C8{mYw1HaKE&7_2B`FT%n=)yD+abXaq4qbSF^#$h}(-v`XL4Z>P>~5Ry!=k z3HSVJW!gMuHpsjmy>h)N>LI6*sC3b2Uei7QBGo-TGHJ&Hl>uLiM!Hvaw5EY_^SW08 z9&{Nwg`v<-T#eGZOtS|pSIdz(&m_|HJ%`Sc$dPXvSEmK>ep&QcYxSw^-n>Yk81hRt zWB8_SUfs_Xb%@iqijBBrTbI?{`$GFAjMY0&+biPDbDuq?Un=yHX=2}Q>G6j@RiW=T zniVVSUe_#@Q_OovP|!H1Mqn=wQXU~BgPSRB$=urk!H918tRNM zB_8#7c8T5ZPFHVWstj|Azfq?&@GFfsX!h+7)uk%WCp$Vl;@(At!`@uM)@JbjS9jp1 zk2sf+Ecj@?k-Iy+CP8eExB}mwsXE-wOf9b%M`MWTXVOW-pW7sat5V(ERsXnSe`G2N z*pK7Q*LRp`zwd3`%5g;+AAK{A`|%(#Qrl`kP`jC}>Kk*xI~$js)Sc3=#`RQB4!Fpw zbj+NZqAo&37)h2Y?h$TKsV)iZYb`eLqARfe>O#M?i)?{&Rz zb6Ea)6wE;60a`61Qz3Slx@AG)r=Rxw@5)o$ z>|aMLGODN8P`6s*Q47ZD?i-K8 zEjjLr$iCMf3p*#Hr*>I&bZSDRWgyao78Tra{Z<3#FW}6b>Kq^PE%RSbw#$#FM66gV zEz3E-G4DP+`oVq75gz*ONO@!Lp=E$OyZPo+^UiOGX#dS@+{-7}xB0-ggXpoZ8Zi=> z>KU6@0tU0tEZ#rgfBf^h4ERb5_U-V0ysm@9ebE(98vA`4JUn{z%{x|ZbIMH0pLa#B zagc1>LS|Q;=Wei7{^*g^U$>siU&8uU%^_^-vlpzlp{9?)GGu@^f0z7r;Ah3GXF&C* zgZz->p3Z`PzdJvt4|;zxO-dbnDT#tP}{q$*`EBY?uB#ebZy*+s8$kZITazyq0bJc)(a4qdVTADnU{`Ky5^Zvt> z_>y5Q$M8w{=Ip`ApEK(1?0Gqhe`KRV+YU7 zr85oX6c~L;S}$0W4D@KcQeSu&SlFt&QV>AT?wCW=Q>&*D$yQn@iHP8TON)rHEoA=2 zBA8GlnW;>xb-_eS1IWGoq--6>j|7QJN}#E++?YM2&j%Srm|0!6XmFz~i~Sr=HI zhr%JF0NWR+Bg7nt`~p?Fyli6c<#ZTHj)*0Ei%+uuphmOq*qcD7@a>~d0UYkq>I?bL zZJASLsyfHtv%77q90kXgEmgWwy!DQb^Q%+f+U-Q=@AU3`oTd-&`k=bcH~Q{S^e3sD zVLKfAFCqYm1*rCET7@q_d7((DlXt9;xUW0_XhSgdWU%jhVPE<>B_v*ia*-oXzxM&Y zWrdXd^Olt~fLVkV6WVYhQJhwQ%o4N=`>!If?^O{kLpdqVjotn1%(RTxe5M3Nh&st{ z@Lx)RFS4mX!Efu=aMPhZEQ7=7)pxvZ?_Z19qUz$My3LDE6Lgk8&$dQM*@@nUI!`dE zkd4~nHs`G3SVU|46!nA_NM|^`g5b^uVwq7mQ>7Q z>2CBj1KLHz!$m~ZX6cwW%X{}5J^|Bd#^Oa9^}W9*Dt%lp49b;!qStqQ^!%C7+f2zD zwd`+Q(becS)eC+z6E`t$q2k~4ufHO@EBx$DM2C3FaXW3J7jW+$W<=<)qhW6xbuM%< zHCHzL%N8~5mbroD<0JIZY{~9Bc2>Ct8_WISl98Wt52G5M2NML(3oMYk3G`}r`S4EO zwD^_wv^RDk<(`CZrzut9)F6ul`1X|JSQ^qns9MskGp8;~6ysETsTxUIFSX7-mNoUd z?lOhj8`+xM)$p~>&8z$MMB}Q}BB9aW9a3wj*NOLd*Shkr-Mp-X-XnYM^rmjf0=*~C zYH`&lg%4?g%zH??W_qr9bKUX#uhCt%YDztdYDt=b$Abl{Y!BL=ZZdwS+03y;-#EVi zy@`K1_oLi)OZRUB>$^dm+jVAHrkV03!;2brrB5^JBp3YWl`*t~gys3Vb|do7S}@do z-d0b?cCInJ?srpY{f_>=^?s{T%434eJ$L5D4P%TjVYB&HGKuaFxuVkQY&2Vp-c7%H zXkKk9N{=7Q*Z61fttM^Ec?O2QcxDxpmDE1{B{J=B;dvKB!Lnpmqrz8Lnbq2hysN<< zX3O84-+oH+6yrW=J)-uMDtY{CNVO-guu!sbpZq1IYr76Xyu@~a=&k;#Mun@h$uaqX zsB7&T!HnESo*~ofY<+Dsx1UR0T};m2G5SjKsl@8q_00MUN2Cn)LDRqIX2c8Qm3owG zdOL@?EhU}90rkyid(f)0AMmS}qw_5Ky6;iuA!{JP5Bxci0Nmb0qow!`z>B1!{g`XAr* zY`t#ZVq?#h@39|BU#gOhPEhOBmSumRY;KUD!K=Xdnjq%bVX_Jt&^bI9mMYXL5_#D< z?=_j`YvtpVtqTfIm914xL!rO);)cg=)ueb6f7tG~Y5wRNCOnjl4wAmM)Y%b!NBC6Ih)ZR|H#Sax*T}kS#^Lc9eUfE)N{Ob9%?iR}+X&yqJ zdNQhoGfZdf`c*>Nx`<#G&klYk*iT3!C=NSwmR7aJGwRMWT1UC3j7tW+z6xLU^jHF# zg?@MJg6}-Oo0Gm`KP->#)745t@>;Wd06lzI%DYj)7{y#$$mO* ze0L$Qg7ba=@jHpap9sD^-cm~z?t9K_ThknbaF<@vqjrH^lPO8&lrOPEMP zNX}xp$S_L1M42R3C5Ow;jp zzT!6R*ol+>xg+KqNRY0Wg(>Ye<1jCb!Mw=nj>2L*p-Za1tG zimmHvP6y@sez4&?ESmeSBB_yWm7!z2+b7R!T5rAMuRDv1Y_1M3`Y@(hZOJQl7E5b$ zscl^0gG-{WJjrGDjrrGaF`Hi(T0H*8(Y38P-ukvk@AY|xR=@FgM{6CtytUo2wQJM# z@0VK7SSoxQ{-&2tKu*Ap=J`o;tGvw~ag{SuXNh-=(+=o$dtC8;-Qy#Yn{3jVHOq#) zA7-|RAJ)|CZI7RyV$F=6JGLrh_j$NQWs`B4#h?1xNnP{jCg$zw*cjuX`y={KdB_8gD<0UcY|Zw|CpEI!sn9@>!mI z;%!3g^865A@x1+l`OZr}D*E4lmfxXR)V2D-jRo&q@aX*Vp^y zRql(b)`;~yV(n69^yH7h@Q2I7e=l}>)*KLeZQ{wHC;z?gx@E3v;VD&t>K^qEBE|;Z zuD#+1pYKMUa(#JpS=^7v)kFRI#*HZBE&bip5j?#jvWOqBU`eX@)Sz}nCliyUy{krF zxO(mI)3qiSMHepZebbY3Ir#q0vXD#l)*dU*wG}R#(65Fu<^Jc;)sI%ITi-E?-ajVY zLREaFTutXu-v>QcvnJiC+V=3~!dsq|w!yy*^M;sxS+DbI@x-xVYp#fdV^a68S+!*x zbNAvgzpv{L8KxG!eTdx~mGcGSB}=NyLxgF4RX%>H+QA>TzI6DglALjOb2<5ujDX*ISyuuf;w`Q0sUI}UoW^iO#jJzO+0FzJ(h_TVewp-z45qB!LR zyWY+;duW!q*EW-t_3cGVM;mY5y~Q?dEUrcHfQX;gy`9SEvu*}Bm0S<23%}*>e%Dxg z_>Q#8t#*+C9nOCq)=gv@O_=dx#aov%Vuw%t#7bifuD9D5bH{563R6~o{%83j|0kyw z6_3svS$w3wznM>VLX$?g*?gVK4EyiBueBtanxC=viLBN6;jl%0<3>*rgey5g*%ev! zzBZRH@v8T;6+`b_FRc>U&3)e(y2q*N+F<2_I=3g4s@&`GX~`s&#@ziQw>NUPogGmB z^m~*^s91YMoe{_1b%EF??#RsY#-XzmU61I!IhWVQzaLW;;{5fuQP0Z9A1Aqaj&YiF zY>Q4%`XSrL1D4liL%FWG!~Da)#N3N`9Z=EhQd9KR!e)a4w*k9J$^O~VKX9kY2@v+X5OUEV#MFt21a^o$HWq32yZl6IPu+zIN@K8Sh7r zY@e`-vAou?b-Ko6#e+s=wIAlRI{FOSe7dt%dF6rY>(~4AG)rrpyw7g5c(oT#?cu(F zf~uo>3yptpT83A9)LV={y(HkJV)eZGZQi}#q6Rt<2Bh*UA*z0221{MFXBA-r<)`^u4zobKMM9BLZ8X@j>-+azln_V-Yq zmSK}bL{#}^qm&wrLbHpZUON%F7ZeP!A{J~xy|norjh7mlF6y;5`=y`o5H?jW8>?7St&yi@ zethJpsme?n;|W{7u@3efH8pv0v*)g_=K7fnL??e0?=d*q9JcsWd|L6I&CLI1?Clj` zx;I_1Y~7Mx50%X00&8~ce$vP6^178%R!y^8dn9;$XF`%-rLQ=le{lHf`yE{@&n~n4 zu>x>CJ!3C>2mG_*al*ci%17qb6V6(yRa|KAde*fyZSK?7l1C}zj~?0Q$ReNff3gEKz6SJ^No z1T0$Y-)HjEz((C+3*4(4GjvK6OA~($ZCu>Yw$dw^cP?Y1+mMK#n#rdt(>%6S-Fm0Y z+xXLftC;$eRj_mO&7bw9p(9c$^*OlX65GN1!-#g+|~0VI!_;)9eG{S#$VEU zGyRGBf2jeBf9R~aWIFR|`MAbk1-pmb9w+KK)MH&x%YQriZPg6=)nnn2e(BFm)<^dk z`O#pUxBAWZ4TH}Lc7&{$t#;(y)wgvPVy@nxe9tqkM%v5h_PnR3 zPeceaCq4JB+q}eY+a4PYTW{qP+iVv1H+OH0Un-pV@Z^UHf}~xZ@y}UP-iE&GJFwMn zXU43SN6)er++Fd;E5CRCL7%q7-zOjX#i{vEbl3f}uk2oU`3ErsRjZHqz zdz^Gk#9p=;uU zE7v})W|Va1)-E;3Fn&A5x8CEZ^2DlZap||>-XGhy=jVt#?@2%8fP~tU99`!?Fz{bN7tDR6NKa zFFfG(6wC6V!bK*k)<+K%sm-m@s_7c^^g>|aY=e29^thqM6<5k9mmTi$$~}K#TWC`4 zx%m@BRyNyDoVt5b(cZXXOOVATWjAr_l|u)c)|U>` zYhSeL!OO@^*Ruw%4HgAOJz$SozC6xm$tATkkK38ry!U}Um3_DF+L9mNY8N^z#B7 zZ+N>);a$|;3lB91&L2PCYDI2&<;FMXg09cqFr(Bgu-`nfN0+`aO{>+ZTT;fW`**g>4zJugcAbOBvj^L}x?E+{L!I3( zFO8mcQ}yZerjW_wUR+uBPFUGosCpt-=WCyp;zf+8bEOZnC!D@fqA_vvzaA;C&4V5t z@hUx78g_`ORUCRS+l03 z?`At=-u*kKuL?FCn(UvUvRpE9@0rtws#-Mdt@cYQ`>oCyaQuM7+1y?>+igcTT+X_? zw$Y$+@`w6o87!UcE{-p(-Ga}jJF4&ZKd151+P``0wrzbH(^rWD=0~Uh=ehj-P>mI?sjUJU%@&YamT_*!~B%VTBX{&_R1G2?EyJ{lDg_Y;&!Ju&i8CLJk$Lm z8ur@Ir>?I%BkaM}DLZ1sYnRyWuT-+Qn-h8WWuFVv%$!TlcKCFy@zz-Ta`FA_rWqIR zD22?a9lw*eYVt>>`26Kg0M;QxLsFRo8N7U-TD(b1rp z^rKC+?1E+XLCwGsyGnmpjn#Z(8}UKO+3{|{S&n7yUaMR1yV}(j?oR4SkHvG0^bh}G zF;`j*^jhL_Yxbo9%RBpgnw|aM{-n0M&K3*yulN`|@1Hu$MNL^hviUyYe+HKxRe$r+ zd&kRfij(XE_be;SV?TPgbjji@EwPv7p96l5qNOECD}SsR6g_BUX=u9?*&fCF6Y#KhDC;-4o=uwtgvoap_tjW*nG3H4YSfTe9V_JAHDXES2Yel{CsCa zsYkA;?3yd%``LdI^Y4jQH7-r_IJ>6pK*}BaiH67Ro6JLhjXZVq-2OAGem(qm=#jH4 zI>x%zr29zf+6NxnQE+gRFlx=0aifmZyi;1?Z*thRaM77Zf!RBgUGv82@#e!XxBG|Mo}V049XH;(p=o%lZItEomDdZmJ#4D1ZtIAR{!#et>JOdx=}YED z`;2^2we9d&&F16gkG@vCRnU2Iz2n?&lQr>%(Jc{u&UUqXw%P>#*0C}w%z3e+d7D+y zQ0@!!}W2| zoR)I%>A0fl2MdP6NnqQkd)E$jJX^iZ^SsR~QDRBXQoCLi>n@7IHvYaFvtaz@L7&&{ zEgh%i#Jia(Tz*pDP`6rt^O=&v{pP@bze_rY>Cbz&ylAM$`ZYR-umA4na$-uLO4_4$ ziHnD-^1r2xTqJ-0MzZb9n0!p7Z1tsk)uV64a7?G{o~*c{Vg1?yjo-7K zM!0&dYIb???Z$ z{A6W~_tPWV8+`^|XuBL?5r65k>ci(5p1O?k&b~d^=ZCANHlFx+_H}+Vr%19os69G` z?^C`ocYCcF+=1JNepN51)ad!mTzC4ul!{Ci zHzZVJqrRxKVA%|vg$Gj~DXP!z(t3Q_*CFoDy0ywGGp02T_t5PM%32(9sHjY{lxr!j z8L_YSR*V~C>!%-17Z0vou9f^E#rJqs{lrsmGw-YKK32gS&KPO-Ilk@TX{VEBAy0CW z7j0X+HF#UCdyFe1s!vpU$nAGp>DSZ8-*B_F^b2C@e0`bUN7> z9;i5tiGRDPBjUG}OU9OO5v7ObjM;O=%Drp6g81=1VdtXn4XWAAht%)YKOS%J;4{;6 z(xry5&(A&iV+L{+94hrHu9=yBy*a-3)P0jjgxjgcrPUACzOa*BxJvY(Z+iSjo06Kc z<`luckepeMZa*y^?6m*Yo1aa94RM&bp zyLVBI%Irg8w(%63(PIJ!+g;cap4G?c%80w0PDa;=_M|4hXv)~vQ2kxoHlc^$$Lfh& zANA-MsjKJlbpIJe_a|lzmmKEk^W3A%+`hJ3Ts~1*p)~95*$r<3N8~^F9%9;DZL(qe zkqs~PgGS^(JK19XYDi*o^Yhk$ivnB{>leD0wIrOJG^A=q&t|b&7W?w1*7^HSe0_Xw zS&rNI^Mcpei|xt}*R0a6cOE54aaG*Vuxg)0TJmip7YFypKb*w&EQ z71$gZxLfUe}z@{KP}S$6q+xx94=lzHn4J zW6^GOYhXuR%l0(we}0Yid@a!O{L?e_l0xn#@;CR(`^r=_=-(&M)6;Xbx1>&iu}+Im z)f?zO`4mZP`;vtMpr8eD*l90rG232Wrn{{^&Wt~1(2<>k27mn${zJp5XwDk<^snEy zBo8^N_~fymGiOfPy7wbS-QANa*~9I8b@h;6pUiT5$Efg%iQ#4SzyA3#=CRSlgfSzQ z9&b#K+}~BHcQ|hTndmzc7fu)<^%~N6lyR7bX@( zBJ%KxJRnGnNVcw(7ss`C-?O#va-}QaC`0eWVuTSu^hSyF%p3+qI=@9o;?Lc4l zyZX+8G3$Txd~+NB90+{XWU~1Dwm){k7smg7%-bGtCEa4wgBgY+y;^k!c^LR)=-VjH zuG98ee8p6GK~G!%p4UA%b=uKth9hS9>-k6hKmQZ!2|ihtEWd0U-RHV{vWArn)5C3z z&uEPowyd#v{j>~(Y@djyHKzF)7MWgs)b42=5`~UF{UXt!W%BfyDjaQpe}9dReRYA` z_Ii%Z*rGDD_X4|*1vQ7(Ofj$UoU`JU$^*+|_7RerEfy7CpN$__7C%q4${#vnj`CJf z`Y7RzmN8W>!2>tHd-v+_pN!RdU#?xXc6DuONzA&l&~54S-7!B6awodG#J3brxZ6By zMN?zg#Pq8#cVBp@aL!?!+oHrUNthy3)0a7Ehi{}6 zJPdl1lG;a+F;JC9m9#)-qyltCnx+6%Jq{@{hEQdZp};+HYR{rd*RrTOWl(;dfI}&C z>R;mXx_5hxB!iV0y3{cGfkZXXai(lGdHN4EvB~yS84)&Bn}bc3%rIqBw*=VK8rTAI zel}GqZwlNWkWA-6so2em40Y)&enc@jm_*sRoq6jPz83ds?v0>&Hxxjqh6 zv6n*@@-^jBCGMdd8POiCLs|lg40M4fj;IYARmohP;cC&{ zm;#f8aP*6uhib$SGfPU<87>3ldsFj~&0wrg>I`?uFb#&E14R&O8cIAIyQlkn_*zmy>tpWX&;J+5|$<4R;0yXY7i9!pw`Zrtt*SCvy2x(vawP4@08Q zWJ#F13?s=r9mWt1X+IKwsD5}-2WZe1wrC#}6m5Q+z5Md|@bkL%$i<;s$@n<5ml(qTwsp}Z%M)KKE658^8AM`8<=?Gp46 zwluIDNr@8g<0PN;0b4n?a!H*)5e&xiFaT^<8!&tcVV!EkFdQf)1BIEi3yB#N5kh4A zX~1yQ<*{XVDvvDaD@iq^lSula07)XKfOyf6;SS~7dKxi8C9y`-+>eYIh9=TQQFC)- zH!%--5>$C$#25m#bE&0}WFgh9B)}LZm;XYJFl@f0*cev)pE1rKrmUvvUK@ppv{E!l z1sGV)1_V6Tpq|6 zOWUGcp&T!z1CJ~~3;%i<#SXCUF2FdS98J0gT7{-z9FNjbpf$i}6Lr;~!h6^SHY zOn_$siO>{yw!;*o9+#>MOG%b=@gz1}%9N8^5sgM*qizO5)ZLLFAD1jXD_L&Fa2_Zf zlKe(m!Iq#P7mC^6F=Mz%OwAd73VgogjRnKVL`o5AR%s7{2B-({%uuq~oWYd1n?b>` z7ITKkf-7~Q$ytbUyi$$AB@6mWA}kor@PLqHy9GmAnIZ{aBspvW2>i5Q_z`>OChQ9n zDasTEQkza1=FoABtc#FWUSAuJwz$0zOUUmzcVP(yZ~4P&1Jhk6*pCNgDy{H(ZHQS)JV%CY* zr~uHW46qDT2vAB!WuPK}g2N(4ex=RKuoUD3v&>6=EUfC`(%bfw`2wK!Mn{VnB-YFDMYf zHj3WlP|%G{#impnf+wUFr67nO^0N`VAh$2ohTwzT$iRb99Lf&ZB!)#r4uQ3?hzIh3 ziX;HBfwBM;1W7to?URBa34{yT+Xpj@)d1VS&?%A(6>x_LK_iDl%Omf3OPitPQTCha zNGy*+o$N&{k5r;m8(1EjaziKxERRhUWTzlV#H1TFQH+)ch_av>Cn0mh$ZW)4D%2)> zu@QTz_?&_u?oy_Lf*|HnmWqPFD#+I}q=aL`Dmau+kJ^Y~c31|7y2DO&LtLU9BMO4J zL^($k1T90V-w32(b`}+3l1(^h6~uD@(%Cs^6;uj^Y$N8NWl(SQP~Bi4F6BW|5LgCT zm0daz;tmz~l1&hEsJC)R0OAd$-AMpq4P~B40OAZ=i;`Dj1+XMGTO`SHWLQb892web zfC(+3f*jyQo>;+Z2qY$j*O)}#niaTk>M#Zvl51| zxCED_B$NRovPo5p3>a3(lG>AQFw`RlFqNsYkpUwKq7p+SSaO5K=&Mgjt4u>QEEHz$ zVln!A(^2FTC`z?zcPFS7j5<;3Kn6^VC6qL>8IFitTIK{ny3t~z;pEd#B4j;{PpNVk z{S+h-Jch3mmA$e_o}Z8sHV@{JiUJ8BbsuF#r643$;4xPU7>2rRgdEk|fd$_XcI0R@ zX-8DV#IU4t?4~9KLxLyWtJ0xiFfRFyRQI6Jj7??nr1L;4HWjK$K}aA;2fe!^5=k-j z%!#xap)sUfA@M+ajdFLStYobAe~rAdgHmk)*mX z;-DvA(&oab^$?06KV}M#5&-!VOjXdo@Fp$`SswJ)4HLi!;19^bgd!1(ck07X#x4bL zW08uI{hG;Pvgus_MkL#5?YM{^@-Q9?*-Uwuh=qb9IT#m~1wji_3{WYqObF1B^G0jP zMQ051FaZ_7C^jSP>+N11yXOo)yq z#o09h{ihC&fC9r7>{NG1&?1b>iD86g}XVK7LI%dn2*yAaa$GC*QBp-_ZLFyMj- zoKOU&pN@=(cqma0X%UNq9$1oxamB<584bum(H0E`4|>pH0s+Q%kwAp}HQBx_CX_$!?Jyu;O@|o0T>+JW9ohU}4n(*h*A5PQMFPo%k&HoN7U6!- zz7^87I*SDqqs_(wU5(73Y+n|rRzh0?P`Va?36LWv*A8_>%tPGmZU|2c)71bdBrr?# z&X6?3VQiE(mY+ljETF-_=R*OEv>ma#fd)Jj<4J+&Ux4wEBPI`n;}6;nWkCpsi47cf zBOgz;FOv->5aS_BjBNmDD8QKr8G4Mda9V&(B4A<4nhjfr#wI44$3$s*CR3s~hM_8E zq99)mTR31xIZ!zm zgbN%O+*Dd$7>`H`%Ofqq1rx-aBc^XH9^8td3moh=x{hFiykQz1U>Fs^y(F|9VAD-$ z@FYSs7lb^@qq6ioL{cXqoA21$qTrS^^M_los!2~pu2K0x^1t=*`vhwo`H{{Jvud=?XP)WEJ| z{t}p}?gfjb(htf9b1&f?CCtm?gAt*#i4Ql0=&R#{8-&9!>na8@7onp?IVynp!Gb2R zr0Cc{z8wUibn^4zhzvuJFT{K!h-X3d6Z-G3aKU(Vv&n=27n6PnX;ErK9vK0y^}yrD z%qMiv^&P=n6ytB*Z&&yM;z7 zGXgGg1x$_#0yxLS$KzodQy?VHx(WJs?`?3?%24`!SMTp?y)z~9F-Cd5pbDHjN3 z9m-%LDF7aUi0;FJ3I@wT<1t{3c``z9b?E{pgafBAZ*;IqcPC+i;O5YW1;a`wxR5Qx z>>$K(C`l(ra3Qz@7z}bi1PsXAO#M~7KQpK3p1`#RVSp=4ljtqF1 zbeM?6MLAgX*G*M$+p*vi(oU3)lyNU0#Krh7fQ!zLnaDi2@sHG%TQk$ zGKl^V@BNQSxc{Rw4^u&4&;RNwN>zyjJZy)Hkk3JD`MSL4v1l&mPU zrb|Br+qld?YJ%=TLOY&xmvp-q2#Ck;pkirT2iggxo&O>OG{oA$VJMAtpqg1U)`?*q z5CqZ$2^vBaLSHe5xX~+51;~M7lmRnO+jcM>k4}D|ALK-7?gawUeNuoCC+xI|dGw$Q z+JT*?BMm+bO>uz}BIpiJr0xZD7Se?V8e&O71fy$0P{hQ6xEz8gyGB#G5U3023R?`O z5tv8Angu7jcxO--^mdTiz+o)BFJC|pJAmn2$Zit)@2^xth6W=Si_fFSCn%MGvg&dx zhTG_JsujM3ECl9i0!+p=q1+1?5R1~FArB)p zfF{O-3+x}=0z$?I#15Mn3*4X`3mq`Z=eR&g(c>6sh@D(O5D8~F^htPJEDH(;eHgVw z;77|SDT4nn2_Mt*0Hb?DFfnn(Np9P5AhM)+fiRu`%Y{MTZmlOhYU1$3Lb~??ov~05 zCMFMh5OM!@7GXM_gQw!5FE|!-YVnz*l9JeuX7m$-#h_at5%3#hBp>rAz@D)QM#^Fa zIW>AfgxXad8F{iLaQrCPV8h z!X=F_qKA9%;xTcFO+Lp6Q8~U9;7AK!G4bmt`H3M0UW9Mto8FV1l zm-uZAZQ{Q!Pxt;6NKNVAAOHr0Ae=U!2$ENH7_>td5alM}2yk~v1Zt7KwV|E7>kRaV ziE(WLopBu?0Qa6gF_=C&G9oy)q00>1-^3gMj*!I@(^n^gBqM!5Xh;wK;7pLX&M8L) z=!**>s1*9P1L=?k6@P;Oh|8pj$8Mzp4e19K=r9sH@_|DjTnL3+%%1~ChUV!)5Fmmd z1K?!k(~}r5F?jqm@oY7Gctl0!*$8Z9qubW2zOU@#z{4@^bJ4m^)M8 zs7#2RAH$Nka=RS31j#Nec119H1`_%bH*(|{3x^Bzdk6r4BRs%f-hx1)9^*DhH>R2( zYmF}nON+rI*eM~vh>P}81StywSxGu`pdm(dkS8oOgfuLsaiASNQwbBpTj(@?i8x~1 zi3U#vmmb)=bSl8&Fo^U}-66$D>r3j0FK1#CRt{7mu)s`Is!g4|MSz0k_xbngrU(TO^=A zV1p&^;m8s9Z=oHwBOqwQ>?mY1v0Vb~=%<}5xaZFi(*+K;JEjAmA!b$J*B11AEg;Rq zd?jdy*-`j%MJGS9xHK4K88PpW3(+FI9l+29LaFj0_8(x4U3dc0 z5I=#GX$Wj$5kHodgMk*s96T;0C@{Xm??32^gVe1M{Wd^uK=`GN)VOx*1&B!LSzdHR zhzlXyz>r@ZLK?sQAYuu-gM#if5;VjDX*l%7ToK5p<2nGcC3KesWe(`9gFA9`A%rj* zPAusS;S?F;9dyQZ00i(DkJ)%|4e4bpl;J|cgGEmx0T3fAvYt4C5U$f%2hvYR2KwSU z01Rq(J82pTWFOb_kRa-ANZqjnFv1WB{{#n* zWEu&sui;yV!;xrCV`$sLSsb0!a7m1AmBI0n9EIj$0VcX&lrW!?2Zn{NC3s+#{-Q== z21o6f1%fjW90tmqps}n+0k`8Yxd-Kh`Ad9o%IVSqaW6IrWCSpA=EI4htcfH%3b+YI zKk_U)70Zt=*KuEX) zqhuSxc|2@$x{?N%kglWw1`#d2FDQMQ03&n3(#0lW!;LISS_;ERjIQlCj+-?LYI-2K zMCBevCd`}#pMV#{Coi~C@8SWDguv6A&mSiAVnN**A;-&;I~=9Uhk1Llh6!B%f0_{2 d@sm@+l2Ya+Mb1!M^>Wg!0bixXF4?@-{&sdRyHRtB+crU0^%I2PgmL z&vSOwE)R<+TxhyCXx7fa%hz`O4EwjK=uXhIsrz=!(fu2@YWw!(Q+>4n7r~141i~XGURQjsX z1ku}OOH7LoU%v8}QEbM6x@I<}?QBepkr%bh4NVL!Obm1l%+(DH)HN0Kee+XX5=&AQ zG+eBV42+BojE$g5ws&4;6cKWEF}JiZHFGmCH#aaab9FLyb8>Zdc62o}F*0$oG!M^?bcfD}Kego!YbhhWU576Fie7Z@P)hP0&i0Zw=2pe=b>3&F0Lx z;#c41MkOX+yD}?I^X#1!nb~)1wCf`+^E6L;#mAhRR;PdU_U+53)U5N>J<8gXyv{D` zTg$81K36&B_U_{M@9#?gd%b(psod8QXY>Bs-s|2hqWHCpciQGt%NHLPt2zIvH%szF zSFZG>SvwzQzWT@TKk-0OGaJ)(HYUc%i&{p8W(JmqX1WIE>IMetnhN^9`6(`mC8-J; zE>=bcM#culMo=Z&J1;Ye2sv9?S~^*{Sr{6ay8sDSS2q_E3v*{@BOq`xb8~UDQ?MbV KWcq`rjB)^pD0Pki diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index 2d95d9ba9d8a935b696da0eba32a46ff3e0a9a0f..cff3c1a4a1d1dd2cb7c074d9b9c3ce887f3fce85 100644 GIT binary patch delta 8370 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 delta 8318 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 Z2WI}iE$yYBYfZdRkDfAR-YwUS{vY<|I_&@e delta 9064 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 diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 08998e7266fb357cb4f7f2d584e0d50421da56f8..457b037b806f9a6efddf1924681528cf90d19c15 100644 GIT binary patch delta 22723 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 TGpDWN8~W*&zV!N=ZaDpaVdsuF diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 3d8cfbb9e01ca37bb28cd02d4f34cfa1f12ddf72..8fd97687ee5b050a6f8068f5be4319d9a080a846 100644 GIT binary patch delta 578 zcmbO@Ut!{Wg$e8H9TqAFEuN{^`+<|=JhPnAO?@Ut&D{>1A$tzHd?=LO$5xafzgBhj z^I19Sw~rk@-TUBE`j5=}^Q=m*TxKhq)!r^|*qqY7NG9RmUO555=b8;HyZtzyN$;5} zsJh_E>b2_C^8_rXSnNB$UbL&(d0No^#;#XQ3%OmVH?Ik}>EhxNpHwg5|7P>sO^vJG z{^(vCvWeHm(7;OU;SOg1gPhzO*rxxT`~2~Vl6Mc@Dm8~}JoCuU8#?qw9ZWKi$$EqxJXDrl4QHZ|?Y8b?-vTbHgT2BlRtp zudG~eD6+Y`HM)xZ+rJa{9&O(vz3NWCU+9omCmP?ag_D&Og zkh*G?{P(7Nhl>|~xRUXq{MnK>leS*1dOhJq#<}{2wbJ`IR{ipRXtXH8^#0zPoOZ`v z+x%f=zRGj&akC*)yCD-J5QAuDAZ7t#Rv>2EZpg&`cDa_hp^2fniJ`86xw?UYx~77@ zZ+?nPVo9okhKrSvfswI+u@O|sc8^u;FH#a+4IC|9EiKGljm;d*-AoKz4NZ&;3{Bmf t-As)w9nH<`6l@49iB+((<0>vmEGnreN=@T3H83(UG38QKb@g}S0swLo`RD)u delta 578 zcmbO@Ut!{Wg$e8H8x|@D9ey~$?FUQCb4LDoZ^RoLro=8_(YlwY^kWBaJhSDN{%cdt z7V~bK{r17br)~v5jsI-P=bvl!DwEmz?BT=xGaNTL2l5&GkJIny_$=bkG&Q*CCtH5H z3#Z1n)1O>WY~hKhX5V-YdyWcRxMbTTmL)z*_QSgqrZnX1^xPcbI0GRdlyok8#ZlC@yb}f zGI+b8$j0uL=qmPa|4!Wdvwe^Bsyplbdf)t8`|(X~7}t@U>J5CS%O*SRT$((ycbe#f z)YY@(zPH#NE?)fMO2&usM@!yJ>b;uwdcq5hbM+0mQu|Coe(QIh?n-+5bKTi>4;Sx0 zcbL_FTfx2S&4x_vhD?k=45FEVm<5PgftYQ(Art%CIMetnhN^9 z`6(`mC8-J;E>=bcM#culMo=Z&Jyx;5NJ(^YHgH?uG`v~+WJ sb~H7%a5cA6upz7@R>97WtGFbwsHCDOHI2*Ez{teJluK3B)!&T^01L(Y^Z)<= diff --git a/ReadMe.md b/ReadMe.md index 4bc69771..4bf64341 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.2.1 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -22 Mar 2023 +27 Mar 2023 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 7d83f352..2581f30c 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -22 Mar 2023 +27 Mar 2023 diff --git a/Source/Apps/Survey/survey.mac b/Source/Apps/Survey/survey.mac index 22da9bb2..8b167cba 100644 --- a/Source/Apps/Survey/survey.mac +++ b/Source/Apps/Survey/survey.mac @@ -615,6 +615,8 @@ NEXTK: CALL TYPE DB ' Bytes ROM',TAB,TAB+EOL LHLD BDOS+1 + LXI D,-6 + DAD D CALL BINDEC CALL TYPE DB ' Bytes in TPA' diff --git a/Source/Images/d_dos65/ReadMe.txt b/Source/Images/d_dos65/ReadMe.txt index 5933796e..1662f87c 100644 --- a/Source/Images/d_dos65/ReadMe.txt +++ b/Source/Images/d_dos65/ReadMe.txt @@ -4,6 +4,10 @@ This disk is one of several ready-to-run disks provided with RomWBW. It contains the files to start and run DOS/65 on an MBC system that contains Dan Werner's 6502 processor. +WARNING: This is a work in progress. Use of this disk image requires +specific hardware and configuration. You should contact Dan Werner +before attempting to use this disk image. + The remainder of this document describes the usage and contents of this disk. It is highly recommended that you review the "RomWBW User Guide.pdf" document found in the Doc directory of the diff --git a/Source/Images/d_dos65/u0/alloc.s19 b/Source/Images/d_dos65/u0/alloc.s19 new file mode 100644 index 00000000..7897b693 --- /dev/null +++ b/Source/Images/d_dos65/u0/alloc.s19 @@ -0,0 +1,15 @@ +S1230800A2192003018508AD08018509A20D200301A509C920D004A508100538E9012907D2 +S1230820A20E8509200301A22220030185028403A000B102186901850A85108504C8B1025F +S12308406900850B85118505A006B102850FA21B20030185068407A900850C850D850E2018 +S12308607A09A40DA60CB1063D8609D004A930D00AA50AD002C60BC60AA931208109A50435 +S1230880D002C605C604A5040505F01EE60CA50CC908D0CEA900850CE60DD002E607A50D7C +S12308A02903D0BE207A094C6208207A09207A0920EF08A920208109A50F0AAABD9909BCCE +S12308C09A09A209200301A9A3A009A209200301A900850EA510A411850A840B20EF08A95A +S12308E0B5A009A209200301A508A20E4C0301A20038A50AE910850AA50BE927850BE8B021 +S1230900F1A50A6910850AA50B6927850BCAF0068A850E207409A20038A50AE9E8850AA553 +S12309200BE903850BE8B0F1A50A69E8850AA50B6903850B206809A20038A50AE964850A72 +S1230940A50BE900850BE8B0F1A50A6964850A206809A20038A50AE90AE8B0FB690A850A34 +S1230960206809A50A4C7409CAF004860ED004A50EF0068A093020810960A90D208109A9C5 +S12309800AA2024C0301804020100804020131243224342438243136248E0990099209940D +S11F09A00996094B20424C4F434B532046524545204F46202420544F54414C2463 +S9 diff --git a/Source/Images/d_dos65/u0/asm.s19 b/Source/Images/d_dos65/u0/asm.s19 new file mode 100644 index 00000000..80be920d --- /dev/null +++ b/Source/Images/d_dos65/u0/asm.s19 @@ -0,0 +1,309 @@ +S12308004C441910434F50595249474854202843292032303038202D20524943484152445A +S123082020412E204C45415259C9419007C949B003290F60A926A01B205008A200F02BC902 +S12308401AD00160A202D022A20ED01EA21AD01AA209D016A20FD015A210D011A213D00D23 +S1230860A216D009A214D002A2154C0301200301C9FF608579847AA000B179C924D0016024 +S1230880209C09C8D0F3A98FA01B2050084C3B08A91CA02160A93DA02160A95EA0216020D5 +S12308A095084C5C08A97FA021204C082090084C640838A507E97F8575A508E9258576A27C +S12308C00746766675CAD0F9E475D0016020F108A507A408204C08209508206808F0034CE8 +S12308E0860818A507698085079002E608C675D0DFA97FA0258507840860247E3022247DC9 +S123090010034C3F08A609E07FD00BA60AE02DD0054820210968A0009109E609D002E60ACD +S12309206038A509E97F8577A50AE9298578A20746786677CAD0F9E477D00160206009A5BA +S123094009A40A204C08209A08206808F0034C860818A509698085099002E60AC677D0DF9E +S1230960A97FA0298509840A60290F0930C93A9002690660484A4A4A4A207D096820690921 +S1230980A607E07FD00BA608E029D0054820B20868A0009107E607D002E608600848866ECD +S12309A0846F2404100320FA08A46FA66E682860484A4A4A4A206909209C09682069094CBF +S12309C09C09484A4A4A4A206909203F08682069094C3F08A90D209C09A90A4C9C09A90DA3 +S12309E0203F08A90A4C3F0818A5496D0308854BA54A6900854C18A54B6902854B9002E614 +S1230A004C60A4198403A5188502D01C98F004C901D01560A503D002C602C603A502D0088D +S1230A20A503F0EFC901F0EBA9FF8548A50B8549A50C854AA901852EA900852D20E809A0AA +S1230A4000B149D14BD008C8CC0308D0F4F0169014AC0308C8B14948B14B914968914B8834 +S1230A6010F3C88448A54B8549A54C854A20E809E62ED002E62DA52DC50290C3A52EC503CC +S1230A8090BD2448108E60E8E428D0011860A525F0021860A526C9FFF0F8386018A53F69B2 +S1230AA0028542A5406900854138A526E5428526A8A525E5418525D0059830093860C9FF38 +S1230AC0D0039830F71860A5283018A620E428F002B010BDCB2DC920F00486213860E88630 +S1230AE020D0EA1860A0008423A620E428F002B018BDCB2DC920F008C93DF004C93BD00F5A +S1230B00C000D016CA86223860C000F0F71860C927D007C8C002D002A000E8E623D0CCA60C +S1230B2020E428F002B02EBDCB2DC927D01320870A8620B020BDCB2DC927D0F2E88620D041 +S1230B40E0BDCB2DC920F00DC929F00AC92CF006E88620D0CC1860205D0B901060BDCB2D60 +S1230B60C9419005C95B900218603860BDCB2DC9309005C93A900218603860A0FFC8CC03EE +S1230B8008F00AC42FB01020570BB0021860BDCB2D996F2EE8B0E6A920996F2EB0DFA90050 +S1230BA085258526A9018536A9FE251F851F863D863C20580E900160A02BC92DD007A8208C +S1230BC0870A9001608431863DA9008532853320580E900160C93CD004E632D006C93ED0EA +S1230BE008E63320870A900160863D206C0B9005A00A4CBB0CC924D005A0104CAD0CC94002 +S1230C00D005A0084CAD0CC925D005A0024CAD0C205D0B904720070E38E901CD03089001C5 +S1230C2060207B0B200E0F90034CC60C700320750FA52BD01FA52AD01BA526D01EA525D0D9 +S1230C401AA531C92BD010863DCA20870AB00520580E90074C020EA63C863D60C92AD00B8D +S1230C60A51C8535A51D8534E8D05BC927F0016020870A900160BDCB2DC927D00C20870A52 +S1230C80B025BDCB2DC927D01E8535A900853420870AB032BDCB2DC927D00C20870AB02631 +S1230CA0BDCB2DC927D01FA63D60E8D01920870A900160863D20570BB00160843020070EA7 +S1230CC0206D0EB00160A532F006A9008534F00CA533F008A5348535A9008534A531C92BAA +S1230CE0D03AA5261865358526A52565348525A9002AA8201A0ED00F98D0034CEA0DA908B0 +S1230D00051F851F4CEA0D98F009A9FE251F851F4CEA0DA901051F851F4CEA0DC92DD041A5 +S1230D20A52638E5358526A525E5348525A9002AA8201A0ED01598F009A9FE251F851F4C46 +S1230D40EA0DA901051F851F4CEA0D843FA901251F453FD0034CEA0DA908051F851F4CEAE9 +S1230D600DC92AD04EA9008571857020280E20400E8A48A21046346635900D18A57165260A +S1230D808571A5706525857006262625CAD0E668AAA5718526A5708525201A0ED009A9FE74 +S1230DA0251F851F4CEA0DA901051F851F202E0E4CEA0DC92FF005A63C863D60A900857162 +S1230DC0857020280E20400EA5350534D005A63C863D6038A526E5358526A525E534852514 +S1230DE090AFE671D0EDE670D0E9E428F002100D20580EB008BCCB2D863C4CBF0BA9FF857B +S1230E003660A90085366020870AB00520570BB0F68A38E53D852FA63D60A901251F0A858E +S1230E203FA902251F453F60A901251FF01118A52649FF69018526A52549FF6900852560E8 +S1230E40A902251FF0F918A53549FF69018535A53449FF6900853460BDCB2DC920F00DC951 +S1230E602CF009C929F005C93BF0011860A90085348535BDCB2D206C0B9004290F10082089 +S1230E805D0B900738E937C5309002186085158A48A430C002D004A201D01EC008D004A253 +S1230EA003D016C010D004A204D00EC00AD0DCA534853FA5358540A203063526349006A5F6 +S1230EC01F0908851FCAD0F1C00AD0210640263F9006A51F0908851FA5351865408535A544 +S1230EE034653F85349006A51F0908851FA5151865358535A534690085349006A51F0908C2 +S1230F00851F68AAE8C62FF0034C730E3860A50B850FA50C8510A901852EA900852DB8A543 +S1230F202DC518900AD02CA52EC519F002B024AC030888B10F1005297F2CCB1FD96F2ED07E +S1230F40148810EFAC0308B10F8534C8B10F85357001601860A50F186D0308850F9002E6E7 +S1230F601018A50F6902850F9002E610E62ED0AEE62D4C1E0FA9FF85348535AD6F2E0980FE +S1230F808D6F2EA510C50E9008D027A50FC50DB021AC030888B96F2E910F8810F8AC030839 +S1230FA0A534910FA535C8910F7006E619D002E618603860A9008528857B857C202710A6E1 +S1230FC07B9D1D2EC927F004C922D00848A57C49FF857C68247C300AC9419006C95BB00299 +S1230FE0295FA6289DCB2DC909D016E67BA9209DCB2DE628A628E051B0198A2907D0EEF04D +S1231000BBC91AF020C90AF01CE67BE628A528C95290A9A90D8D1B2E8D6D2EA90A8D1C2E71 +S12310208D6E2E38601860A505C97FA506E9259037207A10A9088574A505A406204C0820C5 +S12310409008206408F00FC901F0034C8608A000A91A9105D00F18A505698085059002E64D +S123106006C674D0D3207A10A000B105297FC91AD00160E605D002E60660A97FA021850551 +S1231080840660A9238511A91F8512A200A002B96F2ED111D00E8810F6BDAC208538BDE4D2 +S12310A020853760A51118690385119002E612E8E03930D91860854784438644A51C85452C +S12310C0A51D85469818651C851C9002E61DA547D00CA904251EF0034CB2114C4012853EFD +S12310E0F818A51B6901851BA51A6900851AD8A52BD005A9008D7F2DA914251EF00620B224 +S1231100114C0F134C4012A50B850FA50C8510A901852EA900852DB8A52DC518F003900979 +S123112060A52EC519F002B0F7205113A000B10F1005297F2CCB1F209C09C8CC0308D0EE28 +S1231140204E135007A004207A11F00BB10F20B009C8B10F20B00920D40918A50F6D03082E +S1231160850F9002E61018A50F6902850F9002E610E62ED0A2E62D4C1711A92A205313880E +S1231180D0F860A2008AA820B6102404101F206313A940251EF00C20631320020A2007115A +S12311A020D409A9F5A01A20500820DE09A2FB9A3860A97F856CA92D856DA545851CA54631 +S12311C0851DA54348A9008515205113A51D204113A51C20411320511368D00E48A52CD054 +S12311E0422058132058134C2012AAC9049008A20338E9034CF911A90048CA3018A000B193 +S12312006C204113205113E61CD002E61DE66CD0E9E66DD0E5A52CD00AA628300620581342 +S123122020FC1220D409E62C68F015AAA980251ED0048A4CC411188A651C851C9002E61D12 +S123124024041010A543F00C8573A51E2920F004247F100160A54DD00CA545854F856BA531 +S123126046854E856AA545C56BF00620A9124C5912A546C56AD0F4A000A64DB97F2D955005 +S1231280E66BD002E66AC8E8864DC673D005E018F01760E018D0E4984820A91268A8A56B60 +S12312A0854FA56A854E4C7912A90085698568A54DD00160A93B208009A54D20F0122074C1 +S12312C009A54D186902854DA9018572A672B54D20F012207409E672C64DD0F0A568207474 +S12312E009A569207409A90D208009A90A4C80094818656985699002E6686860A2FFC67BA9 +S1231300E8E47BB009BD1D2E209C094C0013602404300160A985A01B207308205813A6448B +S1231320CA30062051134C2013A95E209C0920D409A53E0AAABDB61BBCB71B2073084CD46F +S123134009E615E6154CB009205113205113205113A920E6154C9C09A9094C9C0920D409A4 +S123136020D40920D4094CD409A900A20D951FCA10FBA24B9D7F2DCA10FA20B40FCACA865E +S123138028C91AD015A90D8D1D2EA90A8D1E2EA2FF8528A201867B4C8311F8A517690185CA +S12313A017A51669008516D820C70AB008A000A2008A4C2E19206C0B900B20870A8627865D +S12313C020B0EA90F020C70A90E3BDCB2DC93BF0DC20E50AB009A903A003A6214C2E19A6CF +S12313E021BDCB2DC92ED0034C4715C92AD0034C9E14A423CC03089009F007A909A0034C0E +S12314002E19842F207B0BB004A90AD0F0A523C903D00820831090034CED16A529D0B7E6C5 +S123142029A620205D0BB004A908D0D1AD702EC920D01CAD6F2EC941F010C958F00CC95978 +S1231440F008C953F004C950D005A9144CFD138624A200BD6F2E48E8EC0308D0F6A52348D6 +S1231460A622E8862020C70A9007BDCB2DC93DF047200E0F9011A534C51DD006A535C51C6E +S1231480F010A0034C3215A51D8534A51C853520830FA621E424F0034CCA134CAD13E62A63 +S12314A0E620862420C70AB0034C2117BDCB2DC93DF005A9164CFD13E62A20870A8620908E +S12314C0034C211720C70AB005A0004C1317209E0BA536300CD005A90B4C8017A90D4C80F7 +S12314E017A52AC901F02AA901251FF012A621A915A00020B610A200861C861D4C3119A204 +S1231500008AA820B610A525851DA526851C4C3119688523AE0308CA689D6F2ECA10F92019 +S12315200E0F9015A534C525D006A535C526F014A000A902A6244C2E19A5258534A5268508 +S12315403520830F4CAD13A621E8A9F68513A91E8514A903852F207B0BCA20870AB007BD59 +S1231560CB2DC920D0F48620B007A000A90E4CDA13A20EA002B96F2ED113D0158810F68A4C +S12315800AAABDD81E8513BDD91E8514A51E6C1300A51318690385139002E614CA10D4307B +S12315A0C9A51E2904F00CAD02018DAF15AD3EFF209C094CAD13A001D002A002842B20C70B +S12315C00AB0034C1317209E0BA536F05B105D8620A62BA000A526997F2DE002D006A525CF +S12315E0C8997F2DA51F2909D008E001D00DA525F009A42BA904A6214CFF15A42BA9002050 +S1231600B610A620E428F002B00EBDCB2DC92CF00AC920F0034CFE174C311920870A8620B0 +S123162020C70AB0A14C2117A906D019BDCB2D8580C927F004C922D00AE421D006A42BC07B +S123164001F00EA90D48201F0B68A42BA63D4CFF158620A000A62020870A862090034C2360 +S123166017BDCB2DC580D010A62020870A8620B08CBDCB2DC580D085C9209004C97F900276 +S1231680A900997F2DC84C551620C70AB0034CAD13A621A903852F207B0BB0034C6A15A935 +S12316A0058513A91F8514A2094C73150920D02629DF4CD616297F4CD6160980D0180940B0 +S12316C0D01429BF4CD6160910D00B29EF4CD6160904D00229FB851E201F0BB0034CAD130F +S12316E0BDCB2DC92CD0F6E886204C8916A900853A8539853BA8A5378D7F2DA538C914D0D0 +S123170005A0014CAF13A5228520E62020C70AB009A003A907A6224C2E19BDCB2DC93BD0BE +S123172007A003A9074CDA13C941D020E428F007BCCC2DC020D015A438B9D91F3009186558 +S1231740378D7F2D4C0117A9054CD813C923D005A90A4C5B17C928D00EA905853AE6212037 +S1231760870A90034C2117209E0BA536305CA53AC90AF011A536F04CA538C90EF03DA90D2C +S1231780A63D4CFD13BDCB2DC927D02F20870A9005A0024C2317BDCB2DC9209004C97F90EA +S12317A002A9008526A9008525A9F6251F851F20870AB016BDCB2DC920F00FA90DA63DA0A8 +S12317C0024C2E19E63BA9028539201F0B9057BDCB2DC929D01BE63AE63AA537C94CF04CB6 +S12317E020870A90034C2117BDCB2DC92CF014D00DBDCB2DC92CD013A537C94CD005A91284 +S12318004CD81320870A90034C2117BDCB2DC958D005E63A4C4B18C959F005A90C4CFD1323 +S1231820E63AE63AD025A537C94CD01FA53AD007A00284394CE418C907D0C3A92020870A55 +S1231840B0EEBCCB2DC020F0E7D0B3A53BD04EA9028539A538C90ED018A51C853FA51D8529 +S123186040209C0AB007A911A0024CDA13A9008525A53AC906900EC90AB00A208E0AB00579 +S1231880A9134CBD17A525D014A9018539A53A186902853AC90D9010A90F4CD813A53A18D5 +S12318A0690D853AC910B00EA888B9CB1F186538A8B9DA1F102EA53BF015A539C902F003B7 +S12318C04CFE17C639A53A38E90B853A4C9418A539C901F0034CFE17E639A53A18690B85D7 +S12318E03A4CA418186537A000997F2DA53BD030C8A526997F2DC8A539C901F005A5259989 +S12319007F2DA909251FF008A439C8A9044CDA13A539C901D004A525D0EEA439C84CAF13E7 +S1231920AD7F2DA003291FC910D00188A90120B610A2FB9A1860A97FA02585058406206964 +S12319401390FB60A903A01B205008A202A9009500E8E081D0F9AD0308C906B005A9068D3A +S12319600308A208BD0701C93FF00E9D1C219D3D219D5E21CA10ED30034C8608AD1001C997 +S123198020F03B2029088D1C21AD1101C920F02EC95AD00538667F30062029088D3D21ADE3 +S12319A01201C920F018C958D00538667D300FC95AD00538667E30062029088D5E21209078 +S12319C008205408F0B3209F08247F3010209508206008F0A4209508205408F09C209A08D2 +S12319E0205C08A57D057E3010209A08206008F088209A08205408F080A9F4851EA96FA012 +S1231A002E186D0308850B9001C8840CAD0401AC050138ED0308850DB00188840E38A50DB0 +S1231A20E902850DB002C60EA2FF9AA9D1A01A205008203619A93FA01B205008A9008516EA +S1231A408517851C851D851A851B854D8D28218D29218D3C21A9F4851EA9FF8504209008D2 +S1231A6020540820020A20DE09A9E3A01A20500820F108206009203619A971A01B20500897 +S1231A80A51A20C209A51B20C20920DE09247F301D20A91238A507E97F297FF008A91A204C +S1231AA080094C941A20B208209508205808A57D057E301A38A509E97F297FF008A91A20C8 +S1231AC09C094CB41A202109209A082058084C3B085354415254204F46205041535320313D +S1231AE00D0A245354415254204F46205041535320320D0A24454E44204F4620504153539D +S1231B00203224444F532F363520415353454D424C45520D0A56455253494F4E20322E311F +S1231B20312D410D0A24494C4C4547414C2044524956452044455349474E41544F522445BA +S1231B404E44204F46205041535320310D0A534F5254494E472053594D424F4C2054414268 +S1231B604C45202D20504C454153452057414954244E554D424552204F46204552524F5208 +S1231B8053203D20242A2A4552524F522A2A240D0A444F532F36352046494C452045525217 +S1231BA04F52202D20415353454D424C592041424F52544544240000EA1BFB1B141C2E1CD9 +S1231BC0401C5D1C7F1C931CC21CD11CFB1C1E1D3D1D501D6E1D911DB31DD01DFA1D1F1EB4 +S1231BE0421E681E901EA51EC21E554E444546494E45442053594D424F4C244C4142454C9E +S1231C002050524556494F55534C5920444546494E454424494C4C4547414C204F52204D23 +S1231C20495353494E47204F50434F44452441444452455353204E4F542056414C4944240A +S1231C40414343554D554C41544F52204D4F4445204E4F5420414C4C4F57454424464F52B7 +S1231C6057415244205245464552454E434520494E202E425954204F52202E574F52245212 +S1231C80414E204F464620454E44204F46204C494E45244C4142454C20444F4553204E4F36 +S1231CA05420424547494E205749544820414C5048414245544943204348415241435445A3 +S1231CC052244C4142454C20544F4F204C4F4E47244C4142454C204F52204F50434F4445A9 +S1231CE020434F4E5441494E53204E4F4E2D414C5048414E554D4552494324464F5257410D +S1231D005244205245464552454E434520494E20455155415445204F52204F524724494E5A +S1231D2056414C494420494E444558202D204D5553542042452058204F52205924494E5677 +S1231D40414C49442045585052455353494F4E24554E444546494E454420415353454D42A4 +S1231D604C45522044495245435449564524494E56414C4944204F504552414E4420464FB4 +S1231D80522050414745205A45524F204D4F444524494E56414C4944204F504552414E44B7 +S1231DA020464F52204142534F4C555445204D4F44452452454C4154495645204252414E91 +S1231DC04348204F5554204F462052414E474524494C4C4547414C204F504552414E4420B3 +S1231DE05459504520464F52205448495320494E535452554354494F4E244F5554204F46EB +S1231E0020424F554E4453204F4E20494E4449524543542041444452455353494E4724413B +S1231E202C582C592C532C20414E44205020415245205245534552564544204C4142454C8F +S1231E40532450524F4752414D20434F554E544552204E45474154495645202D20524553E5 +S1231E60455420544F203024494E56414C494420434841524143544552202D20455850453B +S1231E804354494E47203D20464F52204F524724534F55524345204C494E4520544F4F20EE +S1231EA04C4F4E4724444956494445204259205A45524F20494E2045585052455353494F61 +S1231EC04E2453594D424F4C205441424C45204F564552464C4F5724D416D016CB16C716E8 +S1231EE0B016AC16C216BE16BA16B51689168311A115BA15B615425954574F525041474588 +S1231F004E444F505447454E4E4F4753594D4E4F534B494D4E4F4B4552524E4F454C495315 +S1231F204E4F4C414443414E4441534C424343424353424551424954424D49424E454250A3 +S1231F404C42524B425643425653434C43434C44434C49434C56434D50435058435059442F +S1231F604543444558444559454F52494E43494E58494E594A4D504A53524C44414C4458E4 +S1231F804C44594C53524E4F504F5241504841504850504C41504C50524F4C524F52525484 +S1231FA0495254535342435345435345445345495354415354585354595441585441595455 +S1231FC05358545841545853545941FF0D1B29374553616F7D8B99A7B5C3FFFFFFFF04FFCA +S1231FE0FFFFFFFFFFFFFFFF0404FFFF0004000400000400FF001414FFFF10FFFF14FF107D +S1232000FF10FFFFFFFFFFFFFFFFFFFF10FF14FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S1232020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000020FF99 +S1232040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S1232060FFFFFFFFFFFF1010FFFFFFFFFFFFFFFFFFFFFFFF08FFFFFFFF00FF00FFFF00FF4E +S1232080FFFF0C0C0000080C080C08080C08FFFF1C1CFFFF18FFFF1CFFFFFF18FFFF181831 +S12320A0FFFFFFFFFFFFFFFF1CFFFFFF0101050E0E0E070E0E0E140E0E141414140106061C +S12320C00C1414010C14140304010B0805140114141414050514140114141402090A141462 +S12320E01414141461210690B0F02430D01000507018D858B8C1E0C0C6CA8841E6E8C84C44 +S123210020A1A2A046EA014808682826664060E138F878818684AAA8BA8A9A98000000009F +S1232120000000000041534D000000000000000000000000000000000000000000000000BA +S12321400000000000004B494D00000000000000000000000000000000000000000000009A +S12321600000000000000050524E000000000000000000000000000000000000000000006B +S123218000000000000000000000000000000000000000000000000000000000000000003B +S12321A000000000000000000000000000000000000000000000000000000000000000001B +S12321C00000000000000000000000000000000000000000000000000000000000000000FB +S12321E00000000000000000000000000000000000000000000000000000000000000000DB +S12322000000000000000000000000000000000000000000000000000000000000000000BA +S123222000000000000000000000000000000000000000000000000000000000000000009A +S123224000000000000000000000000000000000000000000000000000000000000000007A +S123226000000000000000000000000000000000000000000000000000000000000000005A +S123228000000000000000000000000000000000000000000000000000000000000000003A +S12322A000000000000000000000000000000000000000000000000000000000000000001A +S12322C00000000000000000000000000000000000000000000000000000000000000000FA +S12322E00000000000000000000000000000000000000000000000000000000000000000DA +S12323000000000000000000000000000000000000000000000000000000000000000000B9 +S1232320000000000000000000000000000000000000000000000000000000000000000099 +S1232340000000000000000000000000000000000000000000000000000000000000000079 +S1232360000000000000000000000000000000000000000000000000000000000000000059 +S1232380000000000000000000000000000000000000000000000000000000000000000039 +S12323A0000000000000000000000000000000000000000000000000000000000000000019 +S12323C00000000000000000000000000000000000000000000000000000000000000000F9 +S12323E00000000000000000000000000000000000000000000000000000000000000000D9 +S12324000000000000000000000000000000000000000000000000000000000000000000B8 +S1232420000000000000000000000000000000000000000000000000000000000000000098 +S1232440000000000000000000000000000000000000000000000000000000000000000078 +S1232460000000000000000000000000000000000000000000000000000000000000000058 +S1232480000000000000000000000000000000000000000000000000000000000000000038 +S12324A0000000000000000000000000000000000000000000000000000000000000000018 +S12324C00000000000000000000000000000000000000000000000000000000000000000F8 +S12324E00000000000000000000000000000000000000000000000000000000000000000D8 +S12325000000000000000000000000000000000000000000000000000000000000000000B7 +S1232520000000000000000000000000000000000000000000000000000000000000000097 +S1232540000000000000000000000000000000000000000000000000000000000000000077 +S1232560000000000000000000000000000000000000000000000000000000000000000057 +S1232580000000000000000000000000000000000000000000000000000000000000000037 +S12325A0000000000000000000000000000000000000000000000000000000000000000017 +S12325C00000000000000000000000000000000000000000000000000000000000000000F7 +S12325E00000000000000000000000000000000000000000000000000000000000000000D7 +S12326000000000000000000000000000000000000000000000000000000000000000000B6 +S1232620000000000000000000000000000000000000000000000000000000000000000096 +S1232640000000000000000000000000000000000000000000000000000000000000000076 +S1232660000000000000000000000000000000000000000000000000000000000000000056 +S1232680000000000000000000000000000000000000000000000000000000000000000036 +S12326A0000000000000000000000000000000000000000000000000000000000000000016 +S12326C00000000000000000000000000000000000000000000000000000000000000000F6 +S12326E00000000000000000000000000000000000000000000000000000000000000000D6 +S12327000000000000000000000000000000000000000000000000000000000000000000B5 +S1232720000000000000000000000000000000000000000000000000000000000000000095 +S1232740000000000000000000000000000000000000000000000000000000000000000075 +S1232760000000000000000000000000000000000000000000000000000000000000000055 +S1232780000000000000000000000000000000000000000000000000000000000000000035 +S12327A0000000000000000000000000000000000000000000000000000000000000000015 +S12327C00000000000000000000000000000000000000000000000000000000000000000F5 +S12327E00000000000000000000000000000000000000000000000000000000000000000D5 +S12328000000000000000000000000000000000000000000000000000000000000000000B4 +S1232820000000000000000000000000000000000000000000000000000000000000000094 +S1232840000000000000000000000000000000000000000000000000000000000000000074 +S1232860000000000000000000000000000000000000000000000000000000000000000054 +S1232880000000000000000000000000000000000000000000000000000000000000000034 +S12328A0000000000000000000000000000000000000000000000000000000000000000014 +S12328C00000000000000000000000000000000000000000000000000000000000000000F4 +S12328E00000000000000000000000000000000000000000000000000000000000000000D4 +S12329000000000000000000000000000000000000000000000000000000000000000000B3 +S1232920000000000000000000000000000000000000000000000000000000000000000093 +S1232940000000000000000000000000000000000000000000000000000000000000000073 +S1232960000000000000000000000000000000000000000000000000000000000000000053 +S1232980000000000000000000000000000000000000000000000000000000000000000033 +S12329A0000000000000000000000000000000000000000000000000000000000000000013 +S12329C00000000000000000000000000000000000000000000000000000000000000000F3 +S12329E00000000000000000000000000000000000000000000000000000000000000000D3 +S1232A000000000000000000000000000000000000000000000000000000000000000000B2 +S1232A20000000000000000000000000000000000000000000000000000000000000000092 +S1232A40000000000000000000000000000000000000000000000000000000000000000072 +S1232A60000000000000000000000000000000000000000000000000000000000000000052 +S1232A80000000000000000000000000000000000000000000000000000000000000000032 +S1232AA0000000000000000000000000000000000000000000000000000000000000000012 +S1232AC00000000000000000000000000000000000000000000000000000000000000000F2 +S1232AE00000000000000000000000000000000000000000000000000000000000000000D2 +S1232B000000000000000000000000000000000000000000000000000000000000000000B1 +S1232B20000000000000000000000000000000000000000000000000000000000000000091 +S1232B40000000000000000000000000000000000000000000000000000000000000000071 +S1232B60000000000000000000000000000000000000000000000000000000000000000051 +S1232B80000000000000000000000000000000000000000000000000000000000000000031 +S1232BA0000000000000000000000000000000000000000000000000000000000000000011 +S1232BC00000000000000000000000000000000000000000000000000000000000000000F1 +S1232BE00000000000000000000000000000000000000000000000000000000000000000D1 +S1232C000000000000000000000000000000000000000000000000000000000000000000B0 +S1232C20000000000000000000000000000000000000000000000000000000000000000090 +S1232C40000000000000000000000000000000000000000000000000000000000000000070 +S1232C60000000000000000000000000000000000000000000000000000000000000000050 +S1232C80000000000000000000000000000000000000000000000000000000000000000030 +S1232CA0000000000000000000000000000000000000000000000000000000000000000010 +S1232CC00000000000000000000000000000000000000000000000000000000000000000F0 +S1232CE00000000000000000000000000000000000000000000000000000000000000000D0 +S1232D000000000000000000000000000000000000000000000000000000000000000000AF +S1232D2000000000000000000000000000000000000000000000000000000000000000008F +S1232D4000000000000000000000000000000000000000000000000000000000000000006F +S1232D6000000000000000000000000000000000000000000000000000000000000000004F +S1232D8000000000000000000000000000000000000000000000000000000000000000002F +S1232DA000000000000000000000000000000000000000000000000000000000000000000F +S1232DC00000000000000000000000000000000000000000000000000000000000000000EF +S1232DE00000000000000000000000000000000000000000000000000000000000000000CF +S1232E000000000000000000000000000000000000000000000000000000000000000000AE +S1232E2000000000000000000000000000000000000000000000000000000000000000008E +S1232E4000000000000000000000000000000000000000000000000000000000000000006E +S1122E600000000000000000000000000000005F +S9 diff --git a/Source/Images/d_dos65/u0/assign.co6 b/Source/Images/d_dos65/u0/assign.co6 index 2e381e64f0166019c2272ccd24ecac9273e50a6a..2f50456f2d7dcd0715b2b31e515de5d13fd0f784 100644 GIT binary patch literal 6251 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 b?q0QW@uO#$E$!`96^kDob3jG@BZmJ5=A#t3 delta 3567 zcmbtWe{2)i9X~s9;yAG#+quMC$m@eGK!7kqw-H4n6i6Tm*Y%PBbwW2T!3p;G)ltx> zI&@~mX%@vM$*n3(>Uz83G-u%`j>JaWrIR+nVpzA+)~XeBVj3h0KYQ&a7446C-*@Mb zFtooGIq&=4_rCA@zVGw>@xFI`7gq~%=BJ-1RD@H;BQ3a9As%cg- z<7;$$$H-3H;fnZs+b8_^2Ug|fc^zIU_xoJL-#-N-`I@x@*LfJVcQ*VgdqFqo1TE#0 z6Pw*xE&GX)l9e0R@(kGcguEFr zx<&wh#v>K7KXMTOb<}i(WU6Wp;Mzibt7KrnN8JhqRLX-pSqE)Oo$ebpT%=SQNLuCf zREm4#4B`u!BI33|^Q>1Yd<d2$HzgqmUc+E9-R&C9C{@;P0Ks-)=-he9g$$z#LJvcm;@qH%PE&Q?Xz!6{{gf zypkDQ+p1?zo4(Fl=<4BCJ&&el!8o+S+Zc316^DHTZcr2@P}o${Y*PxaK? z_6@F1+s0SmF?(a&KhmD(U#9b)kJN_`8j$)A9xO}lL1R3zE!m02y2u19JmtrCJh;&j_p^&i7A*WFjgsY^0Clzo z^%Z{^j0AeSvE+{Q^zI`h*c(zP_vlb?3Vx|z^w$g-CmC^x^=b1-x46rSh4&bouqV_) z*)my!UJqO;e#oaQ)q+$H8R1I!qMcP83MCi5xe;9{{ug|xRxPoONL!R%1(RnG_yogb z6Vme2Ur`HUn-OedcRFR9_NjRZSfqMlTTptXp%3ujADS)m_5B$b%2MW+mS*=S;T%;oDOKY z>5y72Q%SJPEaN2DX_i;Tnh^fG{al-`@O%@}@&>jO-$227)j>8LQfcC7D5MZF!684O zHROlerw^;kVViJ%Gt$Z$NinmuTH5Sek$oE|QGB@05rpbzD0xw}%T%lp%>oe0admn6 zCAEkcw}%)@PC2F);*afc=%9Y+aj?{{Ry8I;xlPxl_(35NDF%^X`nXzP#DsvKE(HZ( zP&P&?N~4`9)`gOWCG^-eOoYxVb8qH>fE~c|yfiMa#`6UE+?SrDYe~E3{ldBf~2up37~@6qu~| zf?JFht+M2J*fq2`SyVxUKP~DsA9afx?WJBwsgB;=kr#TugLlv*!Jy#r*i<4Ow3n^; zdBspiU-3isbV+}4xl%pcG1CF4?bdI9NiT}*?h+z=-ddmY zNqpbA#-dv$e(wCHKwdLB7yp*V``q!MC8XMtx0pyMd6S6*CxWUi!M;{D69gke6G6#5 z#3eNSMT6dgJV^KE$k0$U zuOSRg$#9S;A@2jIjNM}3iGX63;v!J1xJW3-zDv3{{UEpr>EK8~!#6#otAXDM8lQB} z86Z;=LHsAT-e}yP2&PwQHnGxGXS+s+8x>n0JR;&jSM&GocqE#<98l3|8eZy5FSxKD zYU?BRnG(r_r{OUNeZSH5Y4AP+K)!HQ0(c)UbGE)ncHy^NQi1N7X*X1l zX=v$4`-qRYW`bG{d)hk_fb0|*yoGS}VxCC6G*$jIwdBPTb)+jmVy(E=F&Yfw>)Ijoc@PfARBrzaOW@Gn? zn8a-CE@LE%xXDx2a+lFu=lGO=3ZkxEPkT0x`QtrCy~7g&q3BFA(HRD+2M5)I1OH2A zWg6N>g&E@XRC?2qoMy&mpbFJM6+)uo*;oAsCiVdn{R)2NcW+m2VSnl7+3DC-9T*#b{^W-9l%Eq*NUxWE5BM>c?^Rf$2HYA aP_>mIm_J+ZtA$}L8K}w-g~i{Mjs6GUsS&sU diff --git a/Source/Images/d_dos65/u0/bcompile.s19 b/Source/Images/d_dos65/u0/bcompile.s19 new file mode 100644 index 00000000..7464d1c8 --- /dev/null +++ b/Source/Images/d_dos65/u0/bcompile.s19 @@ -0,0 +1,335 @@ +S12308004CBA1C434F50595249474854202D205249434841524420412E204C454152592043 +S12308202D2032303038A907A0014C0301A90AA02E4C0301A90D204F08A90A4C4F08A920DF +S12308402C042E3005A2024C0301A2054C0301C909D00C203E08E66FA56F2907D0F56048FC +S1230860204008E66F68C90AF00160A900856F6085938494A9008595A22F38A593E910857C +S123088093A594E9278594E8B0F1A59369108593A5946927859420E608A593E9E88593A557 +S12308A094E9038594E8B0F1A59369E88593A5946903859420E608A593E9648593A594E9E6 +S12308C0008594E8B0F1A5936964859320E608A593E90A8593E8B0F7690A859320E608A933 +S12308E03005934C4F08A92024953008E030F005A9FF85958A204F08A22F38608D03098C79 +S12309000409ADFFFFC924D00160204F08EE0309D0F0EE04094C0209A9A3A02D20FC084CF1 +S12309200001A203BDB92D9D0F01CAD0F78E13018E14018E2701A96AA030A21A200301A2CC +S12309400F202608300160A9BDA02D4C1C09A210202D083001604C18092C032E100160A28C +S123096008BD07019D0A2ECA10F7E88E162E8E172E8E2A2EA213202D08A216202D08100363 +S12309804C180960A9008D092E8D082E85478D072E8548602C032E100160A9EAA030A21AAE +S12309A0200301A215202D08F0034C1809A96AA030A21A4C0301A67210094820940968A274 +S12309C0008672E6729DEA3060A214202608C90290034C180960A251A9209D6A31CAE0FFE0 +S12309E0D0F860A570A471207008A574204F08A920204F08A9008542A642BD6A31204F0812 +S1230A00E642A542C57390F0F0EE20340820D609A93A85746020700AD006A54DC91AD0136E +S1230A20A204BDD32D9D6A30CA10F7E88675206A0A854DA676E052B008E88676A54D9D6A1B +S1230A4031A54DC90DD019E670D002E671A676CA8673AD002EF00320E309A9008576A54DE2 +S1230A60C909F00160A920854D60A675BD6A3060E675100EA900857520C909C901D003A92E +S1230A80FF60206A0A854DC90AF0E5A9006020150AC920F0F9C91AF0F560A54DC95CF0019B +S1230AA06020150AC90DD0F94C8E0A8578A5768577E677E677A549C917F00FA54DC90DF0BD +S1230AC009209A0A20150A4CBD0A2CFE2D10432C002E300320E309E643D002E644A93F2083 +S1230AE04F08A92D204F08A92D204F08C677F00A3008A92D204F084CEC0AA95E204F082065 +S1230B003408A5780AAABD5A2DBC5B2D20FC08203408A9008D062E4C84092CFD2D100BA266 +S1230B2008BD17019D2A2ECAD0F7202209A900856E856F85708571857620D609A98085756B +S1230B40A93A8574AD2B2EC924D044A201BD2B2EE8C920F03AA0FFC941D0058CFF2DF0EDE7 +S1230B60C943D0058C032EF0E4C945D0058C012EF0DBC946D0058C042EF0D2A000C942D0B7 +S1230B80058C002EF0C7C944D0C38C022EF0BEA9008D052E4C8E0A246E100160E64EA64E59 +S1230BA0A54D954E18654C293F854CE01FB00160A9FF856E6020970B4C8E0A20970B4C1586 +S1230BC00AA54DC9309007C93AB003A9FF60A90060A54DC9619007C97BB003A9FF60A90063 +S1230BE060A54DC92ED003A9FF60A9006020D10B2D022ED00160A54D295F854D6020ED0B76 +S1230C0020D10BF00160A54DC9419007C95BB003A9FF60A9006020FD0BF0016020C10BF0B3 +S1230C2001604CE10B20C10BD0016020BB0B4C250CA54DC920D003208E0AA900856E60A68F +S1230C407BBDF72E8580BD172F8583BDB72E858C8A0AAABD772FBC782F85868487BD372F33 +S1230C60BC382F858F8490A67CBDF72E8582BD172F8585BDB72E858E8A0AAABD772FBC7883 +S1230C802F858A848BBD372FBC382F85918492A67DBDF72E8581BD172F8584BDB72E858DC6 +S1230CA08A0AAABD772FBC782F858884896048A57B0AAA689D772F989D782F6048A57C4CFA +S1230CC0B10CA67B9DF72E60A67B9D172F60A67C9D172F60A67C9DF72E60A67C9DB72E60FF +S1230CE0A67B9DB72E6048A57B0AAA689D372F989D382F60E6B2D002E6B32CFD2D30034C92 +S1230D00B60960E645D002E6462CFE2D10034CB60960A90085A1A4A1B1A2E6A1A4A1D94E58 +S1230D2000D009A54EC5A1B0EDA9FF60A54EC5A190F7A90060A909C54E905AA64EBDEE2978 +S1230D401869AD85A2A900692885A3A90085A4E6A4A64EBDF829C5A4903B20120DD00E1841 +S1230D60A5A2654E85A290E7E6A34C4F0DA64EBD022A1865A4AABD9E298549C9419013C936 +S1230D8063F00F854B38E941AABD0C2A854AA9358549A9FF60A90060A900854E854C854977 +S1230DA0854A246E30132C052E1008208E0AA9008D052EA54DC922D02EA9328549A9008541 +S1230DC06E20150AC922F011C90DD005A9164CAB0A20970B246E10E960208E0AC922F001CA +S1230DE06020970B4CC10D20C10BD00520E10BF051A9318549A54DC930D00620150A4CF7BA +S1230E000D20250C20E10BF00620BB0B20250C20ED0BA54DC945D01B20B50BC92BF004C9A3 +S1230E202DD00320B50B20C10BD005A90920AB0A20250CA54ED008E64EA930854F854C4C6C +S1230E40310C20FD0BD0034CDE0E20160CF00620BB0B4C4A0EA54DC924D00AA932854A20D9 +S1230E60BB0B4C690EA931854A20350DD020A54FC946D013A550C94ED00DA54EC901F00767 +S1230E80A93685494C310CA93485494C310CA549C900D012A54DC90DD0034C980D20150A80 +S1230EA0209A0A4C940EC963F0034C310CA93320030DA54D20030D20150AC90DF00B209ADC +S1230EC00AA54D20030D4CB70EA92C20030DA90020030DA545D002C646C6454C980DA54D3D +S1230EE0C95CD006209A0A4C980D20970BA54DC90DD007A9FF8D052E3003208E0A20350D28 +S1230F00F00160A9074CAB0AA000B1A71865A785A79002E6A818A5A7690785A79002E6A843 +S1230F2060A000B1A7602CFD2D3001604CB609489820F40C684CF40C48980980A8684C2F5B +S1230F400F489809C0A8684C2F0F2C012E300160A570A47120380FA95F4CF40C2CFD2D1004 +S1230F6014A27FA9009D372ECAE0FFD0F8A9BEA03185AA84ABAD0401AC050138E90285A5D5 +S1230F8085B9B0018884A684BAA900A00191B960A000B1A785BC84BBA5A7A4A81869028562 +S1230FA0AC9001C884ADA001C4BCF0059003A5BB60B1AC1865BB293F85BBC84CA80FA5B72A +S1230FC00AAABD372EBC382E60A6A7A4A8E886ACD001C884AD60A0001871A79001C8186532 +S1230FE0A785AC9865A885AD601865AAA4AB9001C8C5A598E5A6B00160A9FF8DFE2DA91355 +S123100020AB0A4C0001489848A90420D60FA0016891AC886891ACA5ACD002C6ADC6ACB1A4 +S1231020AC098091AC60A90320D60FA000B1AC297F6048A90320D60FA0006811AC91AC60C9 +S1231040A90320D60FA000B1AC3003A90060A9FF60A90420D60FA000B1AC48C8B1ACA8686E +S12310606020BE0F85A784A8A5A705A8F02BA000B1A785BDD1B5D011A4BDB1B5C8C8D1A743 +S1231080D007C6BDD0F2A9FF6020C90FA000B1AC48C8B1ACA8684C6410A90060A000B1B5E7 +S12310A01869074820E90FA5AAA4AB85A784A8A000B1B591A7AAF00BC8B1B5C8C891AA88EA +S12310C0CAD0F6A90320D60FA0009891AC20C90F20BE0F4898A00191AC886891ACA5B70A20 +S12310E0AAA5A79D372EA5A89D382E681865AA85AA9002E6AB6048A90620D60FA0006891CE +S1231100AC60A90620D60FA000B1AC6020261085BEA90185BFA5BEC5BFB0016020080F20D8 +S1231120900F0A18693785C0A02E9001C884C1A000A5A7D1C0D007C8A5A8D1C0F016A000F9 +S1231140B1C048C8B1C085C16885C0E6C0D0E0E6C14C2F1120C90FA000B1AC91C0C8B1ACB2 +S123116091C0E6BF4C151120261085BEA90185BFA5BEC5BFB0016020080FA5A7A4A885C070 +S1231180E6C0D001C884C120900F0AAAA000BD372E91C0C8BD382E91C020900F0AAAA5A746 +S12311A09D372EA5A89D382EE6BF4C701101300131A90085B285B3854585468D5B308D367C +S12311C02E85B1A90185B0A9FF85AE85AF2084092CFD2D300160205909A9AFA01185B584DC +S12311E0B6A93185B7209C10A93120260FA92420260FA900A8200610A904203210A9ADA076 +S12312001185B584B6A93085B7209C10A93020260FA92420260FA901A000200610A9044C9B +S12312203210AABDD72E1869F7A02F9001C8604820221285B584B668AABDB72E85B760207C +S12312402F124C6110203F12F00160209C10A90060E6AED002E6AFA5AEA4AF60A934A02E49 +S123126085B584B6AD362E293F85B7602CFD2D30016048205C12209C10681865B2A4B390DA +S123128001C84C0610EE362E205C124C61102085122051104C2F0FA585C931D009A583C9D2 +S12312A031D003A9FF6020D112A90060A583C585D003A9FF60A90D20AB0AA90060A58320E9 +S12312C0CE0CA583C931D003A9FF6020D112A90060A90C4CAB0AA584C932D00320D112A9CE +S12312E05B4CF40C20D612E682A5824CD40CA58020F610A92020F40CA58020F40CA9144CFE +S1231300F40CA584C931D005A9144CF40CA91B4CF40CA9FF8547A93B4CF40CA683E032D009 +S12313200820F40CA91B4CF40C9820F40CA9144CF40CA580C900D007A586A48720380F240A +S1231340471007A931A0224C1B132C082E1007A92AA0294C1B13A93CA03D4C1B13A95B2026 +S1231360F40CEE5B30AE5B30BD5B30A00020380FA95C20F40CA9394CF40CA580AE5B309D1A +S12313805B3060C6A9A5A9C9FFD007E6A9A9104CAB0AA93620F40CA004B1B948C8B1B9A88A +S12313A068202F0FA000A5B291B9C8A5B3098091B9A001B1B930016018A5B9690885B990DE +S12313C0F0E6BA4CB113A57D203F12F012A006B1B9C5A7D00AC8B1B9C5A8D0034C8313A981 +S12313E00E4CAB0A24B41005A91420AB0AA90085B460A57B204512D001602CFE2D30016069 +S1231400204010F00160A9FF85B46020F213A91E24483002A93620F40C2051104C2F0F2012 +S12314204512F00F202610C900F013A90B20AB0A4C3E14205112200610A9002032102051D4 +S1231440108586848720AE0CA90020C20C2C072E300160A9008D072EA006A5A791A5C8A5FF +S1231460A891A56085C284C3A93220C80CA91C20F40CA90185C4A000B1C2C5C4900CA4C455 +S1231480B1C220F40CE6C44C7614246E100620980D4C7214A9004CF40CA92E20F40CA9045D +S12314A020C20CA93120C80CA57B203F12F00D202610C904D0062051104C2F0FA90185C5E6 +S12314C0A54EC5C5900CA6C5B54E20260FE6C54CC014A92420260FE6B0D002E6B1A5B0A447 +S12314E0B14C2F0F2C082E1010A583C931D005A92B4CF40CA92C4CF40CA583C931F005A933 +S1231500244CF40CA580C94AD00160A9234CF40CA582C90AF00160A58AA48B85A784A820B5 +S1231520080FA5A7A4A820BC0CC68EA58E20DA0C2051104C380FA582C90AD017A58AA48B30 +S123154085A784A8200211C584F005A90520AB0A4C0213A901A484C031D002A900458E29A0 +S123156001F005A90520AB0AA58E4A20DA0CC685A5854CCE0CA582C90AD01CA58EF005A919 +S12315800420AB0AA91E20F40CA58FA49085A784A82051104C2F0FA5852903F005A90420A4 +S12315A0AB0AA58220F40CA5852940F005A9324CCE0CA9314CCE0C2CFD2D300160A57D2079 +S12315C02F12209C10205112200610A58420F610A900203210A682E88A4CD40C85B8ADFE39 +S12315E02D2DFF2DF011A98CA02D20FC08A5B8A000207008203408203F0CA5B80AAAB00F0E +S1231600BD1E168D0D16BD1F168D0E164CFFFFBD1E178D0D16BD1F178D0E164C0C1650171D +S1231620501751178617E413E41350175017501750175017501750175017501750175017DF +S123164050175017501750175017501750175017501750175017501750178D179617501793 +S1231660A417AF17B4175017B9175017C4175017CF175017ED170018BD120B18501716184A +S1231680211850172C1837185017501749184E1853188418E412A31875151015B118B7187F +S12316A0DC189914EA18F118F618F618FB18FB18001905190A190A190F199919B719DE191A +S12316C0E319041A041A091A50170B141C1A291A3C1A611AB715931A931AB715501750171B +S12316E05017981AD612B41A5017EE12EE12BA1AC61AE4125017F91AF91A0C1B50171C1BB4 +S1231700261B121332133213161B50172C1BE414E4145017E414E4145017371B3C1B4B1B39 +S12317205017641B0B147A136F1B5D13771B8D1B951B9F1B5017501750175017C61383136A +S12317405017C613AB1BCC1BD11BD61B3E1C431C60A57B203F12F027204010F01320511006 +S1231760C5B2D004C4B3F005A90020AB0A4C4A0FA5B2A4B3200610A9082032104C4A0FA946 +S12317802A85744C4A0FA93A85744C4A0F20AC12F0034C021360A582C900F00160A58AA456 +S12317A08B4C380F209712D00160A5814CF40CA90D4CC20CA95D4CC20C209712D00160A908 +S12317C00C4CF40C20BD12D00160A90B4CF40C20AC12D00160A583C931D005A5814CF40C15 +S12317E018A581691020F40CA9314CCE0C20AC12D00160A900A483C031F002A91D4CF40C3A +S1231800209712D00160A9014CF40C20BD12D00160A9304CF40C209712D00160A9024CF4AA +S12318200C209712D00160A9034CF40C209712D00160A9044CF40CA580C900F005A90E4CCD +S1231840F40CA586A4874C410FA5844CCE0CA57B4C1F142C072E1005A90320AB0A20E41297 +S1231860A58AA48B85A784A8200211C582F005A91120AB0A20511020410FA92120F40CA92C +S1231880024CD40CA57C203F12F007202610C902F005A90A20AB0AA90020D40CA5A7A4A8AE +S12318A04CBC0C203615A591A492858F84904C75152036154C1015A57B203F12D005A9064A +S12318C04CAB0AA5A7A4A820E60CA5A7A4A820AE0CA90A20C20C2026104CE00CA54B20C2E6 +S12318E00CA5834A4A29074CE00CA94EA0004C6414A9074CC20CA9094CD40CA90A4CD40CD2 +S1231900A9064CC20CA9054CC20CA9084CD40CA006B1A585A7C8B1A585A8A5804A9005A935 +S12319201220F40C20511020410FA90020F40CA5804A900B20511020380FA91320F40CA940 +S12319400F20F40CA5804A902DA91320F40CA900A820380FA90520F40CA905A00020380F11 +S1231960A93820F40CA90A20F40CA902A00020380FA93920F40CA90920F40CA93720F40C09 +S1231980A000B1A548C8B1A5A868202F0FA002A5B291A5C8A5B391A560A93620F40CA002F3 +S12319A0B1A548C8B1A5A868202F0FA004A5B291A5C8A5B391A560A9FF8D072E38A5A5E93D +S12319C00885A585B9A4A6B0018884A684BAA001B1B9297F91B9A90020E90FE6A960A90151 +S12319E04CD40CA006B1A585A7C8B1A585A820511020380FA90020C20CA92E20F40CA90025 +S1231A00A84C2F0FA9004C6C12A95B20F40CA95E20F40C20F2132051104C2F0FA903206C6A +S1231A2012A93620F40C4C8E12A584C932D005A90820AB0AA93720F40C4C8E1220AC12D08C +S1231A400160A58AA48B85A784A8A581203210200C11A91320F40CA91F20F40CA9004C6C81 +S1231A6012A93620F40C208E12A57B20451248A58320CE0CA5A7A4A820BC0C2CFD2D300486 +S1231A80684C671168F005A90220AB0AA5B2A4B34C0610A9004CD40CA57C201F14A585C9ED +S1231AA031D005A91720AB0AA586A48720410FA92D4CF40CA900A84C380F20E412A58AA4D2 +S1231AC08B85A784A860A57C204512F00A2CFD2D1005A90120AB0AA9022032102CFD2D10D0 +S1231AE00620511220061020511020380FA90020D40CA5A7A4A84CBC0CA583C932D00320D0 +S1231B00D112A95B20F40CA9404CF40C2C082E100AA93E20F40CA9008D082E60A92720F452 +S1231B200CA90085476020E4144C1213A93F20F40CA9008D082E60A9344CF40CA9FF8D08FD +S1231B402EA95B20F40CA9264CF40CA9FF8D082EA95B20F40CA91320F40CA95B20F40CA9DC +S1231B60254CF40C2C082E100160A9354CF40C207A13A9004C6C1220851220511020380F34 +S1231B80A96020F40CA91320F40C4C5D13200B14A9014CC20C200B14A682E88A4CD40CA9CF +S1231BA0FF8548200B14A900854860A931C584D004C583F0034CD112A95B20F40CA91320DF +S1231BC0F40CA95B20F40CA9284CF40CA91F4CF40CA9104CF40C2CFD2D1033A9008DFD2DAE +S1231BE0A5A9F009A91820AB0AA90085A9A92A20F40C18A5B2A4B369039001C829FC202F3B +S1231C000FA545A446202F0F2051124C2F0FA54DC90DF00620150A4C0E1CA91020F40CA97D +S1231C207F20F40C209409204E09A543A444207008A992A02D20FC082034084C0001A92FB8 +S1231C404CF40CA94D4CF40CA579A47A0AAA982AA8188A69AB8D6C1C9869248D6D1CA200F0 +S1231C60206B1C48E8206B1CA86860BDFFFF60A579A47A1869578D801C9869278D811CAD1B +S1231C80FFFFA00060E67BA57BC920F00160A9124CAB0A247E100720980DA900857E60A69B +S1231CA07F9DF72FE8867FE065B00160A9154CAB0A205C0F20B1114C1A0BA202A90095001C +S1231CC0E8E0C6D0F9A9FF8DFD2D8D022EA93A8574A9808575A9D8A02D20FC0820340820A0 +S1231CE0B11C2CFD2D30082CFE2D30034CEF1EA9FF857E8D062EA979A0008579847AA9FFD0 +S1231D00857BA900857F8DD72E2C062E10D4A978C579A900E57AB0034CDB1D20851CA57BFD +S1231D200AAAA5799DB72FA57A9DB82F20481C8598849920931C206F1C186598859A98653E +S1231D4099859BA59AD002C69BC69AA59AC598A59BE59990B418A59869FF859FA599691EB0 +S1231D6085A0A000B19FC549D057A57FA67B9DD72EA200869EB54E209F1CE69EA69EE44E90 +S1231D8090F3F0F1A67BA54C9DB72EA54A9D172FA5980A859FA5992A85A018A59F69E38550 +S1231DA09FA5A0692085A0A000B19F8579C8B19F857AA9FF857EA59AA49B859884994CD207 +S1231DC01DA598C59AD00BA599C59BD005A90F20AB0AE698D002E6994C4B1DA9BDC579A99B +S1231DE000E57A90034C731E206F1C859838A57BE598857CA8C8847D38A579E9BD20DC15F4 +S1231E002C062E30034CE21CA57C857B20481C85988499A67BBDD72E857F8A0AAABDB72F3A +S1231E20859ABDB82F859BA200869DA698BD6320859CF011C59AD004A59BF009E698D0E7B5 +S1231E40E6994C271EA5980A859FA5992A85A018A59F69AB859FA5A0692385A0A000B19FFC +S1231E608579C8B19F857A0579D005A9008D062E4C091DA9AFC579A900E57A905520481C13 +S1231E808598849920931CA200869D18A59869CC859FA599691F85A0A000B19F859CF00DC9 +S1231EA0C549F009E698D0DFE6994C871EA5980A859FA5992A85A018A59F697D859FA5A0D7 +S1231EC0692285A0A000B19F8579C8B19F857A4C091D20851C206F1C48A57B0AAA689DB793 +S1231EE02F989DB82F20481C8579847A4C091DA9FF8D002E20B11CA9FF8DFE2D4CE21C00A7 +S1231F00310A0D023132343536310D16200203071B1E31323435360203071E31323435368A +S1231F2036340C3402030731323435360C343131320203070C1E31323435360202020905C5 +S1231F40093104083110141C1D1F23242526282A2B2C2D2E30313334310E06160D34093453 +S1231F60091709152129101521242B091521050915210515210509152105091521060915D6 +S1231F8021152127152129051521061521090609101114191A1B1C1D1F23242526282A2BE7 +S1231FA02C2D2E3033340210141C1D1F23242526282A2B2C2D2E303334340D180B220902C3 +S1231FC00103070A0D0F1213030709000031000A0D000D000B17220034000C340031320024 +S1231FE006090B1722000200020009000408000408000408000408000408000B1722000EEF +S1232000000E000E0009000900090009000900152100152100152100152100152127001529 +S1232020210015210015210017001521001521000900090006090034000B17000B172200D1 +S123204002000B17003400180018000B0017000B00090002000103070A0D0F12130003075C +S123206000090000000000376900130000202F000003040C0E10111415161A1B2224262807 +S123208062646667727400002E001C0021003F000506080900070A0017000D1320232F370C +S12320A06365696A00000000002700000000000000000000000000000000000000000B004F +S12320C0000000000000636A0000000000280000000000003E00004A004A00000000000035 +S12320E00000000000BF00080104010300FF0000018100FE00FD004601020149014B0103AD +S123210000050008001F002100FF0000018100FE00FD000300050008002100FF0000018140 +S123212000FE00FD0017012A0015008100030005000800FF0000018100FE00FD00140081A7 +S1232140001101FF00000103000500080014002100FF0000018100FE00FD00F70026010486 +S1232160004F0118011B01400107000A00470118001A000C01200022001D0148017D007E59 +S123218000520126004A017F00800051015401130155018100450117002E011B00DC0082E1 +S12321A000110083000D00BE000E00DF00E00015011800DF00E00048014A010C00DF00E0A3 +S12321C000F600F800DF00E000F400DF00E000F900FC00DF00E00025012701DF00E0003C9E +S12321E0011000DF00E000DF00E0002400DF00E00025002001DF00E0003D01DF00E0000F58 +S1232200003E013F01180019001A001D001E0053010C01200022001D0148017D007E00525E +S12322200126004A017F0080005101540155018100FB0018001A000C01200022001D0148C9 +S1232240017D007E00520126004A017F00800051015401550181002D0016001C007C00144E +S1232260011E011A017A00060009007B000101030105010901060009000B000000000001EA +S123228000B00002000200070112000601B100B100B10013004E014D0123002300B2002783 +S12322A0002700B300B400B400B400B400B40028002900F5002B00B5002C004C01310031BB +S12322C000E70032003200EA0033003300EB0034003400E80035003500E900B600B600B6AF +S12322E00037003900EC003A00ED003B00EE004200340144002C0145002B0146002D014819 +S12323000028014C004C0029014D004D0035014E004E00DB005400540038015500550055A7 +S123232000B700570057005001580058002A0159005900360116015B005D005D0039015E5B +S1232340005E000D015F0041016000420161006100B8006300B900BA00BA0065003A013AE5 +S1232360013A0166006800FA00BB00BB0069006A00BC006D00DD006E00DE006F00C1001278 +S12323800170007100100173001C017500BD0076007600760076007600760076007600E5EF +S12323A00077007700E6007800220100000000A1004700A900AA00A800C700C600C800DA98 +S12323C0000B01C900620050005A00970098005C009B00530056009A004A0096004B009CE8 +S12323E0009200930094009500990052004F00510049002E00A700A600E200E100E400E3B2 +S123240000AE00AD00850087008600880084008B008C008A00F000EF00310140004000305D +S123242001400040003001400040003001F1007200F3007400A3003C00F2003F00CA003D54 +S1232440002F000A01C2000F01A4008900C500AC006C006B00CC004100AB001F01C400AFAC +S123246000240123016700CD009100CE00D200A5008F0090008E00CF009F008D00330164C5 +S123248000A000A200D000D50038003E009E009D00D1004301300044013600CB004300D8FA +S12324A000D400D300C300D600D700000001000200180018000400040004000400040004B6 +S12324C00022001800240018000A00180018000B00A80018001800180004000C000E001817 +S12324E000180018002100220023002400250018002D0018002F001800300032003C003D7A +S1232500003E003F004000180024004200430043004300430043004500460059005A005A95 +S1232520005A005B005C00590025005D005E005F00600061006100610062006300640067DB +S1232540006C006400640064006F00730076007A007E006400820085006400640064008870 +S12325600064008B00640064008E008E008F00180024001800910018001800A700A800246D +S123258000BA00BB00BC00BC00BD00BD00BD001800BF001800C000C100C900CB000100030B +S12325A000060008000C000E00110014001A001C001E0020002300260029002C002F003356 +S12325C0003500370039003B003D003F0041004300460049004C004F005300560059005C8F +S12325E0005E0061006400660068006B006D0070007400760079007B007D007F00810083C0 +S12326000085008700890092009500C000D90032012F0137012101D9000E013B013201D974 +S123262000D90032011901010002000200030003000300030003000400040007000700073F +S1232640000700070007000700070007000700070007000700070007000700070007000904 +S1232660000A000D000E000E00240024002500250027002700290029002B002B002B002B45 +S1232680002B002D002D002D003200320035003500350035003700370042004200430043D4 +S12326A00044004400450045004600460048004800480048004800480048004800480049A7 +S12326C0004A004B004C004C004D004D004D004E004E004F0050005100520053005300540A +S12326E000540055005600560057005800580059005A005A005B005D005D005E005F005F3C +S123270000600060006100620062006300630063006600660067006700670068006800696D +S12327200069006A006A006C006C006D006E006E006F0070007100710073007400740076A5 +S123274000760078007800790079007A007B007C007D007E007F0000010209090606060605 +S1232760060601090109010909011209090906020A09090901010101080902090109020A91 +S12327800101010102090101020202020201130101010101010108010101010101010101EE +S12327A0030503020202040304040402030302020203020302020101020901091609090197 +S12327C012010101010101020109010901080201020302040203030602020203030303038D +S12327E0040202020202020202030303030403030302030302020302030402030202020283 +S12328000202020209030201132327282B3755616365696A750200000000000000000200EC +S1232820000000000000000000000000000000000001010100020000000200010002000288 +S123284002010100020200020000000200020102020001020000000000010001000000015B +S123286000030100010000010501010202030102000002010002010200010002020102012C +S1232880000202010201000002000202000200000200000204000001010102020002010012 +S12328A0010001010000020300000000000D3C282B2A292D2C3D2F3B3E3A235E4946544FF2 +S12328C0474F4F4E4F5245514C5447544C4547454E45464F524C455452454D44494D44458C +S12328E0464E4F54414E4454414E53494E434F535351525441424C4F474C454E465245416C +S1232900544E414253455850494E54454E44504F53524E4453474E41534356414C584F521B +S12329205355425045454B504F4B455448454E52454144474F544F454C53454E4558545316 +S1232940544F504441544146494C45434852244D494424535445505354522443414C4C537F +S1232960494E485052494E54494E505554474F535542434C4F53454C4546542452455455D2 +S1232980524E52494748542452454D41524B524553544F524552414E444F4D495A4500174B +S12329A0010203040507090D08060A0B0C0E11161014150D010A120F131C1D001A191E185C +S12329C0484546494A4E544C47414B421B4F434451582120501F2926242225286323525531 +S12329E02757595A2D2C2B2A532E5600303300000F2576B6CFE1E8E8000F0B1B100503018C +S1232A00000100000F1A35454A4D4E4E01010001010101010101010000010001054146053E +S1232A204746410501014455504C4943415445204C4142454C53204F522053594E43485297 +S1232A404F4E495A4154494F4E204552524F52244944454E54494649455220494E204449A2 +S1232A604D2050524556494F55534C5920444546494E454424505245444546494E4544209A +S1232A8046554E4354494F4E204E414D452050524556494F55534C5920444546494E45443A +S1232AA024464F52204C4F4F5020494E444558204E4F542053494D504C4520464C4F415484 +S1232AC0494E4720504F494E54205641524941424C4524494E434F5252454354204E554D27 +S1232AE0424552204F4620504152414D455445525320494E2046554E4354494F4E2052453C +S1232B00464552454E434524494E56414C494420504152414D455445522054595045204902 +S1232B204E2046554E4354494F4E205245464552454E434524554E444546494E45442046F2 +S1232B40554E4354494F4E24494E56414C494420434841524143544552244558505245537E +S1232B6053494F4E20494E2049462053544154454D454E54204E4F5420464C4F4154494E9F +S1232B804720504F494E5424494C4C4547414C20464C4F4154494E4720504F494E5420469E +S1232BA04F524D4154245355425343524950544544205641524941424C45204E4F5420503B +S1232BC0524556494F55534C592044494D454E53494F4E4544244152524159204E414D45EC +S1232BE020555345442041532053494D504C45205641524149424C4524535452494E472061 +S1232C0045585052455353494F4E204E4F5420414C4C4F574544244D49584544204D4F44CC +S1232C20452028535452494E47202D20464C4F4154494E47292045585052455353494F4E12 +S1232C40244E455854205641524941424C4520444F4553204E4F54204D4154434820464F09 +S1232C6052244E4F2050524F44554354494F4E20455849535453244E455854205354415457 +S1232C80454D454E5420574954484F5554204D41544348494E4720464F5224494E434F5252 +S1232CA052454354204E554D424552204F46205355425343524950545324434F4D50494C2A +S1232CC0455220535441434B204F564552464C4F572453594D424F4C205441424C45204F3E +S1232CE0564552464C4F5724554E444546494E4544204C4142454C2456415243205441422E +S1232D004C45204F564552464C4F5724554E5445524D494E4154454420535452494E4724BB +S1232D20494E56414C4944205459504520494E2046494C45204944454E5449464945522408 +S1232D40464F5220574954484F5554204D41544348494E47204E45585424262A502A752ADD +S1232D60A12AD32A082B352B482B5A2B882BA62BD62BF92B172C412C622C772C9B2CBA2CC5 +S1232D80D22CE82CF82C0C2D202D402D50524F442024204552524F525320444554454354B7 +S1232DA04544244449534B204552524F52202D2041424F5254494E4720244241534E4F20F3 +S1232DC0534F55524345202D2041424F5254494E472024454E440D0A42415349432D452F26 +S1232DE0363520434F4D50494C4552202D2056455253494F4E20322E30332D4124000000E1 +S1232E0000000000000000000000000000000000000000494E5400000000000000000000C3 +S1232E20000000000000000000000020202020202020202002170000000000000000000055 +S1232E4000000000000000000000000000000000000000000000000000000000000000006E +S1232E6000000000000000000000000000000000000000000000000000000000000000004E +S1232E8000000000000000000000000000000000000000000000000000000000000000002E +S1232EA000000000000000000000000000000000000000000000000000000000000000000E +S1232EC00000000000000000000000000000000000000000000000000000000000000000EE +S1232EE00000000000000000000000000000000000000000000000000000000000000000CE +S1232F000000000000000000000000000000000000000000000000000000000000000000AD +S1232F2000000000000000000000000000000000000000000000000000000000000000008D +S1232F4000000000000000000000000000000000000000000000000000000000000000006D +S1232F6000000000000000000000000000000000000000000000000000000000000000004D +S1232F8000000000000000000000000000000000000000000000000000000000000000002D +S1232FA000000000000000000000000000000000000000000000000000000000000000000D +S1232FC00000000000000000000000000000000000000000000000000000000000000000ED +S1232FE00000000000000000000000000000000000000000000000000000000000000000CD +S12330000000000000000000000000000000000000000000000000000000000000000000AC +S123302000000000000000000000000000000000000000000000000000000000000000008C +S123304000000000000000000000000000000000000000000000000000000000000000006C +S123306000000000000000000000000000000000000000000000000000000000000000004C +S123308000000000000000000000000000000000000000000000000000000000000000002C +S12330A000000000000000000000000000000000000000000000000000000000000000000C +S12330C00000000000000000000000000000000000000000000000000000000000000000EC +S12330E00000000000000000000000000000000000000000000000000000000000000000CC +S12331000000000000000000000000000000000000000000000000000000000000000000AB +S123312000000000000000000000000000000000000000000000000000000000000000008B +S123314000000000000000000000000000000000000000000000000000000000000000006B +S123316000000000000000000000000000000000000000000000000000000000000000004B +S123318000000000000000000000000000000000000000000000000000000000000000002B +S12131A00000000000000000000000000000000000000000000000000000000000000D +S9 diff --git a/Source/Images/d_dos65/u0/compare.s19 b/Source/Images/d_dos65/u0/compare.s19 new file mode 100644 index 00000000..7d4da891 --- /dev/null +++ b/Source/Images/d_dos65/u0/compare.s19 @@ -0,0 +1,92 @@ +S1230800A900850A850B850C850DA94DA00F8502840385048405A94DA013850684078508D8 +S12308208409A93CA00A205709A200BD07019D0B0BBD17019D2C0BE8E00CD0EFA9009D0B71 +S12308400B9D2C0BE8E010D0F5AD2D0BC920D014AD350BC920D00DA201BD0B0B9D2C0BE881 +S1230860E00CD0F520610920680920880820A908C512F0F6A9B0A00A20570920CA08A9A5A7 +S1230880A00A2057094C0001207E09B00BE60BD006E60CD002E60D60A980850A20A908A96B +S12308A0CDA00A2057094C740820BF09901B240A300AA9ECA00A2057094C7408A98AA00A16 +S12308C020570920CA084C000160A900850EA9A0A086A201200209A910A027A2002002092F +S12308E0A9E8A003A200200209A964A000A200200209A90AA000A200200209A50B09304C24 +S12309005209850F84108611A2FF38A50BE50F850BA50CE510850CA50DE511850DE8B0EBB8 +S1230920A50B650F850BA50C6510850CA50D6511850D8AF00338660E240E10050930205273 +S12309400960A90BA00B4C4D09A92CA00BA2144C0301A2024C0301A2094C0301A21A4C03A9 +S123096001A90BA00B4C6C09A92CA00BA20F200301100AA964A00A2057094C0001602000DF +S12309800A901A20120AA502A403205C09204209D02220240A20000A90EC20120AA000B1B2 +S12309A0028512A502C504A503E505E602D002E603A51260A502A403850484054C9A09206F +S12309C0090A901A201B0AA506A407205C09204909D02220300A20090A90EC201B0AA000E4 +S12309E0B1068513A506C508A507E509E606D002E607A51360A506A407850884094CDB092F +S1230A00A502C94DA503E90F60A506C94DA507E91360A94DA00B8502840360A94DA00F8513 +S1230A200684076018A502698085029002E6036018A506698085069002E6076046494C4581 +S1230A4020434F4D50415249534F4E20524F5554494E450D0A56455253494F4E20322E3044 +S1230A60322D41240D0A4F4E45204F46205448452046494C455320444F4553204E4F5420F0 +S1230A80455849535421240D0A240D0A46494C4553204D41544348202D204C454E475448FF +S1230AA020495320242028444543494D414C29240D0A46494C45532041524520554E4551D3 +S1230AC055414C204154204259544520240D0A454F46204F4E2046494C4520312042555499 +S1230AE0204E4F542046494C452032240D0A454F46204F4E2046494C4520322042555420C0 +S1230B004E4F542046494C452031240000000000000000000000000000000000000000002B +S1230B200000000000000000000000000000000000000000000000000000000000000000B1 +S1230B40000000000000000000000000000000000000000000000000000000000000000091 +S1230B60000000000000000000000000000000000000000000000000000000000000000071 +S1230B80000000000000000000000000000000000000000000000000000000000000000051 +S1230BA0000000000000000000000000000000000000000000000000000000000000000031 +S1230BC0000000000000000000000000000000000000000000000000000000000000000011 +S1230BE00000000000000000000000000000000000000000000000000000000000000000F1 +S1230C000000000000000000000000000000000000000000000000000000000000000000D0 +S1230C200000000000000000000000000000000000000000000000000000000000000000B0 +S1230C40000000000000000000000000000000000000000000000000000000000000000090 +S1230C60000000000000000000000000000000000000000000000000000000000000000070 +S1230C80000000000000000000000000000000000000000000000000000000000000000050 +S1230CA0000000000000000000000000000000000000000000000000000000000000000030 +S1230CC0000000000000000000000000000000000000000000000000000000000000000010 +S1230CE00000000000000000000000000000000000000000000000000000000000000000F0 +S1230D000000000000000000000000000000000000000000000000000000000000000000CF +S1230D200000000000000000000000000000000000000000000000000000000000000000AF +S1230D4000000000000000000000000000000000000000000000000000000000000000008F +S1230D6000000000000000000000000000000000000000000000000000000000000000006F +S1230D8000000000000000000000000000000000000000000000000000000000000000004F +S1230DA000000000000000000000000000000000000000000000000000000000000000002F +S1230DC000000000000000000000000000000000000000000000000000000000000000000F +S1230DE00000000000000000000000000000000000000000000000000000000000000000EF +S1230E000000000000000000000000000000000000000000000000000000000000000000CE +S1230E200000000000000000000000000000000000000000000000000000000000000000AE +S1230E4000000000000000000000000000000000000000000000000000000000000000008E +S1230E6000000000000000000000000000000000000000000000000000000000000000006E +S1230E8000000000000000000000000000000000000000000000000000000000000000004E +S1230EA000000000000000000000000000000000000000000000000000000000000000002E +S1230EC000000000000000000000000000000000000000000000000000000000000000000E +S1230EE00000000000000000000000000000000000000000000000000000000000000000EE +S1230F000000000000000000000000000000000000000000000000000000000000000000CD +S1230F200000000000000000000000000000000000000000000000000000000000000000AD +S1230F4000000000000000000000000000000000000000000000000000000000000000008D +S1230F6000000000000000000000000000000000000000000000000000000000000000006D +S1230F8000000000000000000000000000000000000000000000000000000000000000004D +S1230FA000000000000000000000000000000000000000000000000000000000000000002D +S1230FC000000000000000000000000000000000000000000000000000000000000000000D +S1230FE00000000000000000000000000000000000000000000000000000000000000000ED +S12310000000000000000000000000000000000000000000000000000000000000000000CC +S12310200000000000000000000000000000000000000000000000000000000000000000AC +S123104000000000000000000000000000000000000000000000000000000000000000008C +S123106000000000000000000000000000000000000000000000000000000000000000006C +S123108000000000000000000000000000000000000000000000000000000000000000004C +S12310A000000000000000000000000000000000000000000000000000000000000000002C +S12310C000000000000000000000000000000000000000000000000000000000000000000C +S12310E00000000000000000000000000000000000000000000000000000000000000000EC +S12311000000000000000000000000000000000000000000000000000000000000000000CB +S12311200000000000000000000000000000000000000000000000000000000000000000AB +S123114000000000000000000000000000000000000000000000000000000000000000008B +S123116000000000000000000000000000000000000000000000000000000000000000006B +S123118000000000000000000000000000000000000000000000000000000000000000004B +S12311A000000000000000000000000000000000000000000000000000000000000000002B +S12311C000000000000000000000000000000000000000000000000000000000000000000B +S12311E00000000000000000000000000000000000000000000000000000000000000000EB +S12312000000000000000000000000000000000000000000000000000000000000000000CA +S12312200000000000000000000000000000000000000000000000000000000000000000AA +S123124000000000000000000000000000000000000000000000000000000000000000008A +S123126000000000000000000000000000000000000000000000000000000000000000006A +S123128000000000000000000000000000000000000000000000000000000000000000004A +S12312A000000000000000000000000000000000000000000000000000000000000000002A +S12312C000000000000000000000000000000000000000000000000000000000000000000A +S12312E00000000000000000000000000000000000000000000000000000000000000000EA +S12313000000000000000000000000000000000000000000000000000000000000000000C9 +S12313200000000000000000000000000000000000000000000000000000000000000000A9 +S1101340000000000000000000000000009C +S9 diff --git a/Source/Images/d_dos65/u0/copy.s19 b/Source/Images/d_dos65/u0/copy.s19 new file mode 100644 index 00000000..d718332b --- /dev/null +++ b/Source/Images/d_dos65/u0/copy.s19 @@ -0,0 +1,17 @@ +S123080038AD0401E91D29808508AD0501E90A850938A508E9008508A509E908850918A535 +S123082008691D8508A509690A8509A93FA20BDD0701D0034C3009DD1701D0034C3009CA01 +S1230840D0EDA920CD0801D008CD1001D0034C30098602CD1801D007CD2001D002C602A2BB +S12308600BBD07019DBA0924023003BD17019DDB099DFC09CAD0EAAD17018DDB098DFC09A7 +S1230880AD07018DBA098AA2209DDB099DFC099DBA09CAE00BD0F2A203A9249DE309CAD074 +S12308A0FA20260920F90810034C300920210920030920210920120910034C300920210955 +S12308C020F90810034C3009A9008507203C09207109240710F620210920FE0810034C30F7 +S12308E009202B09200309A20BBDFC099DEB09CAD0F720210920170960A20F4C0301A2103D +S12309004C0301A2134C0301A2144C0301A2154C0301A2164C0301A2174C0301A21A4C0355 +S123092001A9DBA00960A9BAA00960A9FCA00960A9A5A009A2092003014C0001A91DA00A88 +S123094085058406A505A406201C09202609200809F00810034C3009C6076018A5056980FE +S123096085059002E606C508D0DAA506C509D0D460A91DA00A85038404A503A404201C0962 +S1230980A503C505D007A504C506D00160202109200D09F0034C300918A5036980850390AC +S12309A0D8E604D0D4444F53204552524F52202D2041424F5254494E472400000000000056 +S12309C0000000000000000000000000000000000000000000000000000000000000000013 +S12309E00000000000000000000000000000000000000000000000000000000000000000F3 +S1200A000000000000000000000000000000000000000000000000000000000000D5 diff --git a/Source/Images/d_dos65/u0/dbasic.s19 b/Source/Images/d_dos65/u0/dbasic.s19 new file mode 100644 index 00000000..52a0fb92 --- /dev/null +++ b/Source/Images/d_dos65/u0/dbasic.s19 @@ -0,0 +1,343 @@ +S1230800AD04018D4E30AD05018D4F30A004B9D6289900028810F7A2FF86889AA94C85A16F +S1230820A21CBDDA2895BBCAD0F8A212BDF7289500CA10F8A90085DC85DF85B28567A90E16 +S12308408564A90385A0A2688665207B10A000E611D008E612A512C9D0F00FA9559111D113 +S123086011D0070A9111D111F0E5A511A412C00190B88585848685818482A000A234847921 +S1230880867A989179E679207B1020390BA58538E579AAA586E57A206E22A919A02920BC39 +S12308A010A945A009850184026C010020F608857F848038A5A6E5AAA8A5A7E5ABAAE8982E +S12308C0F0243849FF65A685A6B003C6A7389849FF65A485A4B008C6A59004B1A691A48815 +S12308E0D0F9B1A691A4C6A7C6A5CAD0F2608578BAE478903060C482902AD004C5819024DA +S123090048A2089848B5A3CA10FA20C819A2006895A4E8E00830F868A868C4829006D00570 +S1230920C581B00160A20C207B10BD962EBC972E20BC1020720BA9D3A02F20BC10A488C84D +S1230940F003206322A90085DF85DCA9E4A02F20BC1020380A86C384C420C200F0F4A2FFEB +S12309608688900620670A4CDC0C203E0F20670A845D200D0B9044A001B1AA8572A57B8587 +S123098071A5AB8574A5AA88F1AA18657B857B8573A57C69FF857CE5ABAA38A5AAE57BA8E4 +S12309A0B003E8C6741865719003C67218B1719173C8D0F9E672E674CAD0F2AD8133F03F08 +S12309C0A585A48685818482A57B85A6A47C84A7655D9001C885A484A520AC08A57FA48094 +S12309E0857B847CA45D88B97D3391AA88C003D0F6A51291AA88A51191AA88A9FF91AA20BF +S1230A004E0BA679A57AA00186718572B171F018A004C8B171D0FB38986571AAA000917137 +S1230A20986572C8917190E04C520920D41020D110D00520D610CA2CA20020123090FBC934 +S1230A4007F010C90DF019E000D004C92190EBC908F0E0E047B00C9D8133E820D610D0DA26 +S1230A604C7210A907D0F4A0FF38A5C3E981AA8660BD8133F051C95FB04DC93CB00EC93064 +S1230A80B045855CC922F061C92A903B24607037867884BAA0F28473A02A8474A000D173EC +S1230AA0F0059021C8D0F7980AAABD112B8573BD122B8574A0FFA678C8B1733008E8DD81A6 +S1230AC033F0F5D02BA4BAE8C8998133C900F032E93AF004C949D00285604957D093855CF5 +S1230AE0BD8133F0E2C55CF0DEC8998133E8D0F0A678B17308C82810F9B173D0BEBD81339D +S1230B0010C3C8C8998133C8C8C8C6C360A579A67AA00185AA86ABB1AAF01AA003B1AA88B6 +S1230B20C512D004B1AAC511B00988B1AAAA88B1AA90DEF0011860D0FDA900A89179C89154 +S1230B407918A5796902857BA57A6900857C18A57969FF85C3A57A69FF85C4A585A486855F +S1230B60818482A57BA47C857D847E857F8480202D0DA268866568AA688EFE018DFF01A219 +S1230B80FD9AA900858C856160F0D0609006F004C9B8D0F4203E0F200D0B20C200F00CC97F +S1230BA0B8D09320BC00203E0FD08BA5110512D006A9FF85118512A0018460207B10B1AA6F +S1230BC0F03E20FD0CC8B1AAAAC8B1AAC512D004E411F002B02A8497206E22A920A4972966 +S1230BE07F20D610C922D006A56049FF8560C8B1AAD00EA8B1AAAAC8B1AA86AA85ABD0B7C1 +S1230C006010DE246030DAA22C0A0A9002E81869FA9001E8857386748497A000B173AAC861 +S1230C20B173CAF0B820D610C8B17348C8B173A0008574688573B173CAF0A220D610C8D0DD +S1230C40F5A9808561209D0F6868A91020EE0820860E189865C348A5C4690048A58848A519 +S1230C608748A9AE20DA1320B91220B612A5B0097F25AD85ADA980A00C857184724C6D13FC +S1230C80A9C0A02920662020C200C9B3D00620BC0020B61220D22085B0206213A59848A57A +S1230CA09748A9814820FD0CA5C3A4C4A688E8F004858B848CA000B1C3F007C93AF01D4C55 +S1230CC0EB13A002B1C318F056C8B1C38587C8B1C385889865C385C39002E6C420BC0020CD +S1230CE0E50C4CA50CF0540AB0034C9D0FC958B0CEA8B9E82948B9E729484CBC006C030226 +S1230D00C903B00118D067A5C44933F0104933A4C3848B858CA587A4888589848A68689047 +S1230D2007A9CBA02F4C3A094C4509D00F38A579E901A47AB00188858F849060203E0F20B1 +S1230D40890EA588C512B00B983865C3A6C49007E8B004A579A67A20110BB0034C5B0EA51D +S1230D60AAE901A4ABB0D090CD20751C860D60D0FDA48CD005A21E4C2709A993200027A9D1 +S1230D809320032784C4A58B85C3A589A48A8587848860D0034C4E0B205B0BF02EA90520F4 +S1230DA0EE08A5C448A5C348A58848A58748A99D4820C2004CA50CA90520EE08A5C448A568 +S1230DC0C348A58848A58748A98D4820C20020D40D4CA50C203E0F20890EA588C512B00BDA +S1230DE0983865C3A6C49007E8B004A579A67A20110B9067A5AAE90185C3A5ABE90085C4E6 +S1230E0060A2224C2709A8BABD0301C99DD0F2E8E89A98F020C93AF01CE9B4AAF004CAD0ED +S1230E2062CA869820BC0020CA12A5ACF002A9FFBA4598D01ABD02018587BD03018588BDC9 +S1230E40040185C3BD050185C420C2004CA50CE8E8E8E8E89A4C750EA2042CA20E4C270967 +S1230E60D09E686868C98DD0EF6885876885886885C36885C420860E981865C385C3900203 +S1230E80E6C4604CEB13A23A2CA200A000845C8A455C855CB1C3F0EAC55CF0E6C8C922D0FC +S1230EA0F3F0EC20CA1220C200C9B1F011C989D0D2A6C3A4C420BC00B0C986C384C4A5AC0A +S1230EC0F01B20BC00B0034CD40DC990D0034CE70C20E50CA000B1C3C9ADF09960A000A216 +S1230EE001C8B1C3F00FC98BD003E8D0F4C9ADD0F0CAD0EDC8981865C385C39002E6C420DE +S1230F00C20090C34CE50C20890E4C780E4CEB13C9A9D0034C2427C9AAD0034C2827207556 +S1230F201C48C98DF004C989D0E3C6AFD004684CE70C20BC00203E0FC92CF0EE6860A20084 +S1230F4086118612B0F7E019A8B0DDE92FA8A5110A26120A2612651185118A651206112A41 +S1230F60AA98651185119001E820BC004C420FA9C42CA9C048209315A65F301E8597849890 +S1230F802066206848A02920A71D208C2020C200C92CD0A820BC004C750F4CC51220931598 +S1230FA085978498A9C220DA13A55F4820CA12682A20BC12D0034C8C20A002B1AEC5829012 +S1230FC017D00788B1AEC581900EA4AFC47C9008D00DA5AEC57BB007A5AEA4AF4CF50FA06C +S1230FE000B1AE201B19A59EA49F85B884B920FA1AA9ACA000859E849F205C1BA000B19E45 +S12310009197C8B19E9197C8B19E9197602093158597849820EC26A65F3007A8204F184CDD +S12310208C2048A901B00168202319F00568A00091AD206E194CB90F20BF1020C200F03BA7 +S1231040C9ACF056C9B0F052C92CF038C93BF06620CA12245F30E1208122202D19A000A5A1 +S12310600FF00A38E50EF1AEB003207B1020BF10F0C9A9009D8133A281A033A90D20D610E7 +S1231080A90AD052A50EC5109005207B10D02738E564B0FC49FF6901D0124820721CC9290F +S12310A0D07B68C9ACD0068AE50E900AAA8AF00620D110CAD0FA20BC00D08560202D192041 +S12310C0271BA000AAF049B17120D610C8CAD0F760A9202CA93FC920901948A50FD00AA57C +S12310E00EE564D00B850EF007C50ED003207B10E60E68203630C90DD0148678A60DF00A98 +S1231100A90020D610CAD0FAA90D860EA67829FF60A562100BA58DA48E858784884CEB13B0 +S1231120A9FFA02F20BC10A58BA48C85C384C460C922D00B20A713A93B20DA1320BF102058 +S12311405318202B0AA900CD8133D00A184C150DA68FA490A980856286918492209315854E +S1231160978498A5C3A4C485118412A691A49286C384C420C200D0112462306520D41020BC +S12311802B0A86C384C420C200245F1024855BC922F007A93A855BA92C18855CA5C3A4C4C9 +S12311A069009001C820331920B81C20B90F4CB711208F21208C2020C200F00AC92CF003AD +S12311C04C111120BC00A5C3A4C485918492A511A41285C384C420C200F02C20E7134C5C09 +S12311E01120860EC8AAD012A206C8B1C3F073C8B1C3858DC8B1C3C8858EB1C3C8AA2078A8 +S12312000EE083F081D0DAA591A492A66210034C370DA000B191D00160A9EEA02F4CBC1096 +S1231220BAE8E8E8E8BD0101C981D021A598D00ABD02018597BD03018598DD0301D007A528 +S123124097DD0201F0078A186910AAD0D860D004A000F00320931585978498202012F004A2 +S1231260A200F0639A8A38E9F7857369FBA001206620BABD080185B0A597A49820A71D2065 +S12312808C20A001200221BADD0801F017BD0D018587BD0E018588BD100185C3BD0F0185FB +S12312A0C44CA50C8A690FAA9A20C200C92CD0F120BC0020541220CA12182438245F300303 +S12312C0B00360B0FDA2184C2709A6C3D002C6C4C6C3A90048A90220EE0820B613A90085FD +S12312E09B20C20038E9C19017C903B013C9012A4901459BC59B9067859B20BC004CE412A2 +S1231300A69BD02CB079690A9075D007245F10034CBD1A85710A6571A868D9CB2AB0652072 +S1231320B91248204B1368A4991019AAF076D05D265F8A855F2AA6C3D002C6C4C6C3A024DE +S1231340859BD0D5D9CB2AB04490D7B9CD2A48B9CC2A48206213A59B48B9CB2A4CD4124C63 +S1231360EB13688571E671688572A5B04820C220A5AF48A5AE48A5AD48A5AC486C7100A0D1 +S1231380FF68F020C964F00320B9128499684A85636885B36885B46885B56885B66885B7E6 +S12313A045B085B8A5AC60A5C3A4C469009001C8202D194CB81C20BC00B0034C8F21AA30C9 +S12313C02FC924F0F6C925F0F2C92EF0EEC922F0D6C928D04F20D212A929A000D1C3D00BBC +S12313E04CBC00A928D0F3A92CD0EFA2024C2709C9B8F029C9B7F0BEC9B2D013A021D01FC3 +S1231400208F16A5AF49FFA8A5AE49FF4C4218C9AFD0034C9D18E9C4B0194CEB13A01E684C +S1231420684C231320931585AE84AFA65F30034C6620600AA8B9862A48B9852A48B9402AF0 +S1231440F00548B93F2A486020D5134CBB1220D5134CB912465F4CBC0020D21220E7132056 +S1231460BB1268AA68A8A5AF48A5AE4898488A4820751C8A6020D21220B912A5ACC998B0A4 +S123148020203921A202B5AD9511CA10F920C200A200C929F00A20C71C20C200C929D00117 +S12314A0604C121720CB14455BA8A5AE455C4C421820CB14055BA8A5AE055C4C421820CB26 +S12314C014255BA8A5AE255C4C4218208F16A5AE855CA5AF855B20AC1D208F16A5AF6020A3 +S12314E0BC12B013A5B7097F25B485B4A9B3A000200021AA4C2815465FC69B20271B85AC58 +S123150086AD84AEA5B5A4B6202B1B86B584B6AA38E5ACF008A9019004A6ACA9FF85B0A05B +S1231520FFE8C8CAD007A6B0300F18900CB1B5D1ADF0EFA2FFB002A201E88A2A2563F0023F +S1231540A9FF4CE32020E713AA20981520C200D0F460208815A5AEA678F022E010B02306F0 +S1231560AF2ACAD0FAA4AF4C4218208815A5AEA678F00AE010B00B4A66AFCAD0FAA4AF4C9C +S12315804218A900A84C421820781C867820AC1D4C8F16A20020C200865E8593297F20071B +S12315A016B0034CEB13A200865F20BC009005200716900BAA20BC0090FB200716B0F6C987 +S12315C024D00BA9FF855F8A0980AA20BC0086940561C928D0034CA116A9008561A57BA647 +S12315E07CA00086AB85AAE47ED004C57DF02CA593D1AAD008A594C8D1AAF0698818A5AA88 +S1231600690690E1E8D0DCC961B00AC9419005E95B38E9A560E97B38E985606848C926D08C +S123162005A9C1A02960A57DA47E85AA84ABA57FA48085A684A71869069001C885A484A59C +S123164020AC08A5A4A4A5C8857D847EA000A59391AAC8A59491AAA900C891AAC891AAC88E +S123166091AAC891AAA5AA186902A4AB9001C88595849660A55D0A690565AAA4AB9001C8E9 +S123168085A484A56020BC0020B612A5B0300DA5ACC9909009A9C8A029200021D0744C39B7 +S12316A021A55E48A55F48A0009848A59448A5934820851668859368859468A8BABD0201A7 +S12316C048BD010148A5AE9D0201A5AF9D0101C820C200C92CF0D2845D20D81368855F68D0 +S12316E0855EA67DA57E86AA85ABC580D004E47FF039A000B1AAC8C593D006A594D1AAF023 +S123170016C8B1AA1865AAAAC8B1AA65AB90D7A2102CA2084C2709A212A55ED0F7207416F5 +S1231720A55DA004D1AAD0E74CAE1720741620F608A00084BBA59391AAC8A59491AAA55D64 +S1231740A00484BA91AA18A20BA900245E5007686901AA686900C891AAC88A91AA20FD1710 +S123176086BA85BBA471C65DD0DD65A5B05D85A5A88A65A49003C8F05220F608857F8480C1 +S1231780A900E6BBA4BAF0058891A4D0FBC6A5C6BBD0F5E6A538A002A57FE5AA91AAC8A5AF +S12317A080E5AB91AAA55ED053C8B1AA855DA90085BA85BBC868AA85AE6885AFD1AA900EC5 +S12317C0D006C88AD1AA90074C0F174C2509C8A5BB05BAF00A20FD178A65AEAA98A4716571 +S12317E0AF86BAC65DD0CB06BA2A06BA2AA8A5BA65A485959865A58596A8A595608471B195 +S1231800AA857688B1AA8577A91085A8A200A0008A0AAA982AA8B0B306BA26BB900B188A2F +S12318206576AA986577A8B0A2C6A8D0E360A55F100320271B20C81938A581E57FA8A58225 +S1231840E580465F85AD84AEA2904CEB20A40EA900F0EFA688E8D0A4A2164C2709208E18CF +S1231860859C849D20531820E313A980856120931520B91220D813A9C220DA13A59648A514 +S12318809548A5C448A5C34820750E4CFD18A9AF20DA1309808561209A154CB912208E1882 +S12318A048984820E31320CA1220D81320B91268859D68859CA220A003B19CF09D859688FF +S12318C0B19C8595AAC8B195488810FAA496209020A5C448A5C348B19C85C3C8B19C85C4AD +S12318E0A59648A5954820B61268859C68859D20C200F0034CEB136885C36885C4A000685C +S1231900919CC868919CC868919CC868919C6020B912208122A9F0A000F012A6AEA4AF8609 +S12319209E849F20961986AD84AE85AC60A222865B865C85B884B985AD84AEA0FFC8B1B8E8 +S1231940F00CC55BF004C55CD0F3C922F0011884AC9865B885BAA6B99001E886BBA5B9C937 +S123196008B00B98201B19A6B8A4B920081BA665E071D005A21C4C2709A5AC9500A5AD957E +S123198001A5AE9502A00086AE84AF88845F8666E8E8E886656046604849FF386581A4827D +S12319A0B00188C4809011D004C57F900B8581848285838484AA6860A20CA56030B820C841 +S12319C019A980856068D0D0A685A58686818582A000849DA57FA68085AA86ABA9688571FE +S12319E08472C565F005204C1AF0F706A0A57BA67C85718672E47ED004C57DF00520461A9E +S1231A00F0F385A486A5A90485A0A5A4A6A5E480D004C57FF07585718672A002B17165A489 +S1231A2085A4C8B17165A585A5A001B17110DBA004B1710A6905207E1AE4A5D004C5A4F001 +S1231A40CD204C1AF0F3C8B1711030C8B171F02BC8B171AAC8B171C5829006D01EE481B0BF +S1231A601AC5AB9017D004E4AA901186AA85ABA571A672859C869D888884A218A5A06571F3 +S1231A8085719002E672A672A00060C6A0A69DF0F5A4A218B19C65AA85A6A5AB690085A7F2 +S1231AA0A581A68285A486A520B308A4A2C8A5A4919CAAE6A5A5A5C8919C4CCC19A5AF48E0 +S1231AC0A5AE4820B61320BB126885B86885B9A000B1B81871AE9005A21A4C2709201B19E5 +S1231AE020FA1AA59EA49F202B1B200C1BA5B8A4B9202B1B206E194CE112A000B1B848C85C +S1231B00B1B8AAC8B1B8A86886718472AAF014A000B1719183C8CAD0F89818658385839072 +S1231B2002E6846020BB12A5AEA4AF85718472205C1B08A000B17148C8B171AAC8B171A887 +S1231B406828D013C482D00FE481D00B4818658185819002E682688671847260C467D00CA7 +S1231B60C566D0088565E9038566A0006020781C8A48A90120231968A00091AD4C6E1948B0 +S1231B8020E01BD19E98F0094820E01B18F19E49FF9004B19EAA98488A48202319A59EA452 +S1231BA09F202B1B68A86818657185719002E67298200C1B4C6E1948A9FF85AF20C200C955 +S1231BC029F00620E71320751C20E01BCA8A4818A200F19EB0C249FFC5AF90BDA5AFB0B9DF +S1231BE020D8136885A26885A368AA68859E68859FA0008AF079E6A26CA20020241B85ACD5 +S1231C00A8F03820231986AD84AEA888B171200B1690020920918398D0F1F01F20241B8581 +S1231C20ACA8F01720231986AD84AEA888B171200716900229DF918398D0F14C6E1920BC3F +S1231C400020931520D81320BB12A002B195AA88B195A88A4C4218205D1C4C4F1820241BDD +S1231C60A860205D1CF008A000B171A84C4F184C121720BC0020B612208B16A4AED0F0A6F8 +S1231C80AF4CC200205D1CD0034C391EA6C3A4C486BA84BBA67186C31865718573A5728542 +S1231CA0C469008574A000B1734898917320C200208F2168A0009173A6BAA4BB86C384C444 +S1231CC06020B61220DA1C20E713A51248A5114820751C68851168851260A5ACC998B08F8C +S1231CE0203921A5AEA4AF841185126020DA1CA200A111A84C4F1820C11C8AA20081116054 +S1231D0020DA1CA200A111A8E611D002E612A1114C421820B61220DA1C8497859820E71344 +S1231D2020B61220DA1C98A2008197E697D002E698A51281974CC20020931585978498A500 +S1231D405F4820E71320931568455F1010A003B197AAB19591978A91958810F3604CC51209 +S1231D6020B61220DA1CA91D48A96E486C11004CC20020C11C8697A20020C200F00320C7F1 +S1231D801C8698B11145982597F0F86020741FA5B049FF85B045B785B8A5AC4CAA1D20C35D +S1231DA01E904DA9C9A02920741FD010A5B785B0A204B5B295ABCAD0F986B960A6B986A3BE +S1231DC0A2B3A5B3A8F0C438E5ACF024901284ACA4B784B049FF6900A00084A3A2ACD0041E +S1231DE0A00084B9C9F930B6A8A5B9560120DA1E24B8104CA0ACE0B3F002A0B33849FF65A4 +S1231E00A385B9B90300F50385AFB90200F50285AEB90100F50185ADB003207F1EA0009886 +S1231E2018A6ADD03EA6AE86ADA6AF86AEA6B986AF84B96908C918D0E8A90085AC85B060CB +S1231E4065A385B9A5AF65B685AFA5AE65B585AEA5AD65B485ADB01A60690106B926AF260A +S1231E60AE26AD10F438E5ACB0CF49FF690185AC900CE6ACF03666AD66AE66AF66B960A5FA +S1231E80B049FF85B0A5AD49FF85ADA5AE49FF85AEA5AF49FF85AFA5B949FF85B9E6B9D054 +S1231EA00AE6AFD006E6AED002E6AD60A20A4C2709A274B40384B9B4029403B4019402A4E2 +S1231EC0B29401690830ECF0EAE908A8A5B9B01216019002F60176017601760276036AC8E6 +S1231EE0D0EE186020D220F00210034C1217A5ACE97F48A98085ACA949A02920A71DA94D2C +S1231F00A02920EA1FA9C0A029208C1DA93CA029203D24A951A02920A71D68203122A95521 +S1231F20A02920741FF04C209A1FA900857585768577A5B920491FA5AF20491FA5AE2049F4 +S1231F401FA5AD204E1F4C5720D0034CB11E4A0980A8901318A57765B68577A57665B585AB +S1231F6076A57565B4857566756676667766B9984AD0DE6085718472A003B17185B688B1F2 +S1231F807185B588B17185B745B085B8A5B7098085B488B17185B3A5AC60A5B3F01D1865E7 +S1231FA0AC90043031182C1012698085ACD0034C3D1EA5B885B060A5B0101B68684C391E9D +S1231FC020B320AAF0F0186902B00BA20086B820C41DE6ACD0E04CAC1E20B320A9D1A029D3 +S1231FE0A20086B82066204CED1F20741FF06320C220A90038E5AC85AC209A1FE6ACF0D623 +S1232000A2FFA901A4B4C4ADD00AA4B5C4AED004A4B6C4AF082A900EA001E8E0023004D023 +S123202028A040957598289014A8A5B6E5AF85B6A5B5E5AE85B5A5B4E5AD85B49806B6268F +S1232040B526B4B0CF30BD10CB4A6A6A85B9284C5720A2144C2709A57585ADA57685AEA5EE +S12320607785AF4C1D1E85718472A003B17185AF88B17185AE88B17185B0098085AD88B195 +S12320807185AC84B960A2A4A000F004A697A49820C22086718472A003A5AF917188A5AEE7 +S12320A0917188A5B0097F25AD917188A5AC917184B96020C220A205B5AB95B2CAD0F98600 +S12320C0B960A5ACF0FB06B990F720A11ED0F24C721EA5ACF009A5B02AA9FFB002A90160B7 +S12320E020D22085ADA90085AEA288A5AD49FF2AA90085AF86AC85B985B04C181E46B06074 +S123210085738474A000B173C8AAF0C6B17345B030C4E4ACD01AB1730980C5ADD012C8B1DE +S123212073C5AED00BC8A97FC5B9B173E5AFF028A5B0900249FF4CD820A5ACF04A38E998E5 +S123214024B01009AAA9FF85B220851E8AA2ACC9F9100620C31E84B260A8A5B0298046AD62 +S123216005AD85AD20DA1E84B260A5ACC998B01E20392184B9A5B084B049802AA99885ACA4 +S1232180A5AF855B4C181E85AD85AE85AFA860A000845FA20994A8CA10FBB0034C1E22C99D +S12321A02DD00486B1F004C92BD00520BC00906EC924D0034C5A26C925D0084C882620BC24 +S12321C000905BC92EF02EC945D03020BC009017C9B8F00EC92DF00AC9B7F008C92BF0049B +S12321E0D00766AB20BC00905B24AB100EA90038E5A94CFD2166AA24AA50C3A5A938E5A862 +S123220085A9F012100920D91FE6A9D0F9F00720C01FC6A9D0F9A5B13001604CE023482431 +S1232220AA1002E6A820C01F68290F2031224CBE214820B3206820E320A5B745B085B8A619 +S1232240AC4CAA1DA5A9C90A9009A96424AB300E4CAC1E0A0A65A90AA00071C3E92F85A98B +S12322604CE421A9DAA02F20BC10A588A68785AD86AEA2903820F020A00098208E224CBC61 +S123228010A001A92024B01002A92D99EF0085B084BAC8A6ACD005A9304C9A23A900E0812E +S12322A0B009A961A02920221FA9FA85A8A95DA029200021F01E1012A959A029200021F021 +S12322C002100E20C01FC6A8D0EE20D91FE6A8D0DC20A31D203921A201A5A8186907300952 +S12322E0C908B00669FFAAA90238E90285A986A88AF0021013A4BAA92EC899EF008AF00673 +S1232300A930C899EF0084BAA000A280A5AF1879D72985AFA5AE79D62985AEA5AD79D529B0 +S123232085ADE8B00410E5300230E18A900449FF690A692FC8C8C88495A4BAC8AA297F99A0 +S1232340EF00C6A8D006A92EC899EF0084BAA4958A49FF2980AAC012D0B2A4BAB9EF0088A1 +S1232360C930F0F8C92EF001C8A92BA6A9F02E1008A90038E5A9AAA92D99F100A94599F07F +S1232380008AA22F38E8E90AB0FB693A99F3008A99F200A90099F400F00899EF00A90099E4 +S12323A0F000A9F0A00060F042A5B3D0034C3B1EA29CA000209020A5B7100F206A21A99C75 +S12323C0A000200021D00398A45B20AE1D984820E41EA99CA00020221F20EB23684A900A01 +S12323E0A5ACF006A5B049FF85B060A965A02920221FA5B96950900320CA2085A320B62056 +S1232400A5ACC988900320B71F206A21A55B186981F0F338E90148A204B5B3B4AC95AC9450 +S1232420B3CA10F5A5A385B9208F1D20E023A969A029205324A90085B8684C9C1F85BA8417 +S1232440BB208620A9A420221F205724A9A4A0004C221F85BA84BBA2A8208820B1BA85B103 +S1232460A4BAC898D002E6BB85BAA4BB20221FA5BAA4BB1869049001C885BA84BB20A71D2A +S1232480A9A8A000C6B1D0E460A5ACF007A2D8A000209020A2AFA01306D926DA26DB26D8A8 +S12324A090058A45D985D988D0EEA202B5D995ADCA10F9A98085AC0A85B04C1D1EA986A001 +S12324C02920A71D20B320A99BA029A6B720E21F20B320206A21A90085B8208F1DA9CDA007 +S12324E029208C1DA5B048100D20A31DA5B03009A56349FF856320E023A9CDA02920A71D40 +S123250068100320E023A98AA0294C3D24208620A900856320C424A29CA000209020A9A416 +S1232520A000206620A90085B0A563203525A99CA0004CEA1F484CF624200A004CD813A503 +S1232540B048100320E023A5AC48C9819007A9C0A02920EA1FA99FA029203D2468C98190A0 +S123256007A986A029208C1D6810164CE02320C11CE008B020A900382ACA10FCE8011181A1 +S1232580116020C11CE008B00CA9FF2ACA10FCE821118111604C121720BC0020C11CE0083B +S12325A0B0F320C200C929F0034CEB1320BC00A900382ACA10FCE82111F002A9FF4CE320A3 +S12325C0E019B0488678A918202319A017A2184611661266138A2A91AD8810F3A578F00A9E +S12325E0AA3849FF6918F01CD00FA8B1ADC930D007CAF003C810F4E8981865AD85ADA9005D +S123260065AE85AE86AC20BC004C6E194C1217E007B0F98678A906202319A005F8A513200C +S12326203D26A512203D26A511203D26D8A206A578F0B7AA3849FF6906F0C9D0BCAA290FBC +S12326402048268A4A4A4A4AC90A693091AD886085ACA90085B88A20312220BC00900A0911 +S123266020E961C906B02A690A290FAAA5ACF0E4690490DC4CAC1EAAA5ACF006E6ACF0F473 +S1232680A90085B88A20312220BC004930C90290E64C1622AD0002D018201230900B8D0117 +S12326A002A2208E02024C000DAE0202F003CE0202A2DC20BC26A2DF20BC2660B50010FBCD +S12326C00A2940F0F695008AA86868A90520EE08A5C448A5C348A58848A58748A98D48B9C1 +S12326E0010085C3B9020085C44CA50C201230B009AD0202F009AD010238A2008E0202604B +S1232700A2DF2CA2DCC993F011C9B6F00749A2F00E4CEB13A97F35001005B5000A150095A9 +S1232720004CBC0058A2DF2CA2DC867820BC00203E0FA579A67A20110BB0034C5B0EA678C3 +S1232740A5AAE9019501A5ABE9009502A9C0950060D0FDA5DF0A05DF85DF4C620ED0F1A5B3 +S1232760DC0A05DC85DC4C620E20D2124CB912209D2710FBA5B4098085B420AC1DF0F02063 +S12327809D2730FBF0F9A5B4098085B420AC1DF0EEC929D00568684CBC004CEB1320C200B0 +S12327A0C92CD0ED20C220A5B0097F25AD48A5AE48A5AF48A5AC4820BC0020B6126885B336 +S12327C06885B66885B56885B485B7A9B3A0004C0021C92CF01B20751C8AF00AE010904570 +S12327E0E464B0028664860F20C200F01AC92CD0A920721C8A302EE001902AA50FF006E443 +S12328000FF002B0208664A50FF006C564B003856438E564B0FC65641865648510A50F3832 +S1232820E5108510604C1217A5B030F9A5ACF0F420B320A900857785768575857885AF853F +S1232840AE85ADA218A5B34AB00E06B626B526B4267726762675267806B626B526B4267789 +S123286026762675267806AF26AE26ADA5AF2A855BA5AE2A855CA5AD2A855DA9002A855E53 +S1232880A577E55B855BA576E55C855CA575E55DA8A578E55E900E85788475A55C8576A522 +S12328A05B8577E6AFCAD0A238A5B3E9806A690085AC4C1D1E20BC0020931520D813A49580 +S12328C0A5964C4218A99BA029206620C6AC60A99BA0294C66200000009426E6C3D002E694 +S12328E0C4ADFFFFC9ADF00EC93AB00AC920F0EB38E93038E9D0604C0C080000000000006E +S1232900004C1217000000F200340D0A4D656D6F72792073697A6520002042797465732046 +S1232920667265650D0A0A456E68616E63656420424153494320322E32320A000280195659 +S123294062807622F38238AA40803504F3813504F3808000008031721891434FF894742388 +S1232960F7947424008138AA3B067463908C77230CAB7A1E94007C6342807E75FED0803109 +S123298072158100000081490FDB04861ED7FB879926658723345886A55DE183490FDB08F5 +S12329A0783AC5377B83A25C7C2EDD4D7D99B01E7D59ED247E9172007E4CB9737FAAAA532D +S12329C0810000008180000090800000007F00000084200000FE7960002710FFFC1800001D +S12329E064FFFFF6000001030D400C4D12740E2F1147154F119C0F6E0FD30D920DA20E2AC0 +S1232A000DB60D50275C275F0E060F010D0F0F680D710F711D1D3158305C18F61C121D5FCD +S1232A201D9C0D050E3D106E0D8B0B880B360BD1270C10371D6D258125FF26022755304DC7 +S1232A40144D144D14D112D413D4134D144D144D144D144D144D144D144D144D144D140021 +S1232A600047144D1447144714471447144D14741474140000682768275314531400005875 +S1232A801458145814DF206921FC2038252D184C1827288824E31EEA23BC24C3240C253E5C +S1232AA025EB1CFF1C3D1C561C0E19831C611C1B1CFA1B6C1B0E26BF2597256E277E27C418 +S1232AC028CE28B4287E1B871BB61B79A91D798E1D7B241F7BEC1F7FA62350BD1446A314DF +S1232AE046B0145669155651157DDF235AFF1364DE142A2B2D2F3C3D3E3F414243444546BB +S1232B004748494B4C4D4E4F505253545556575E004D2B4F2B512B532B552B592B5B2B5FDA +S1232B202B612B712B8A2BA12BBA2BC92BD32BE02BE62BF82BFC2B212C2F2C412C492C5E98 +S1232B402C8D2CB82CCC2CDD2CE92CF82CB900B700B800BA003CC0C300C2003EBFC1009FAE +S1232B6000425328C64E44BC534328D8544E28D100494E2428DD4954434C52A84954534534 +S1232B8054A7495454535428DE00414C4C9C48522428DB4C454152A24F4E54A04F5328CE73 +S1232BA0004154418345438845454B28D3454699494D854F4B459B4F9D004C5345AD4E4410 +S1232BC0804F52BD585028CD004EAF4F5281524528C8004554A54F5355428D4F544F890051 +S1232BE045582428DC00468B4E43954E505554844E5428C55251A900494C4CAB43415345C7 +S1232C002428DA4546542428E4454E28D5455487495354A14F4144974F4728CC4F4F509EB9 +S1232C2000415828DF49442428E6494E28E0004557A3455854824D49AA4F54B2554C4C94CA +S1232C40004646B64E9352BE0045454B28D249E14F4B459A4F5328C952494E549F004541D6 +S1232C604486454D914553544F52458C45544952518E45544E4D498F455455524E90494738 +S1232C8048542428E54E4428CB554E8A0041444428D441564598474E28C4494E28CF5043D6 +S1232CA028B0515228CA544550B3544F509254522428D6574150A600414228AC414E28D04E +S1232CC048454EB14FAE574F5049E200434153452428D94E54494CB4535228C700414C28D1 +S1232CE0D7415250545228E3004149549648494C45B549445448A400BB000345BE2B034618 +S1232D00CB2B044E322C0444A12B0549EB2B0344B02B04525E2C034C0D2C0344A52B0447A5 +S1232D20DB2B0352892C0249E62B0752652C0547D62B06526C2C0652722C0652782C0352B5 +S1232D40622C0453AA2C024F442C044E3C2C0349E82B0457E92C044C142C0453922C03447E +S1232D60AD2B0450502C0444B32B04438A2B0244B72B044C1C2C0550582C0443982B044C92 +S1232D80102C0543932B034E2F2C0557F22C0347D32B0453B32C06427C2B0642762B034925 +S1232DA0F42B034E362C044BF82B0454B82C0445BA2B0254C42C0246C92B04539E2C045466 +S1232DC0C02C034E392C0453A62C0555D32C0557ED2C034F412C012B0000012D0000012A12 +S1232DE00000012F0000015E00000341652B0345C12B024F462C023E5B2B023C552B013EB2 +S1232E000000013D0000013C00000453962C0449F02B0441612B0455D82C0446CE2B0450ED +S1232E20542C0453A22C0452852C044C182C0445C42B04439C2B04539A2C0454BC2C044166 +S1232E406C2B0550492C0544A82B05538D2C044C092C0553AE2C0456DD2C0441682B075592 +S1232E60CC2C074CFC2B05438E2B0548E02B0542712B0742822B044D212C044D2A2C025013 +S1232E804E2C0554C62C0756E12C064C032C07527E2C054D252CBA2ECB2ED22EE72EF32EC1 +S1232EA0012F0A2F182F2C2F392F4A2F592F682F762F862F992FA82FBB2F4E45585420774A +S1232EC06974686F757420464F520053796E7461780052455455524E20776974686F7574AF +S1232EE020474F535542004F7574206F6620444154410046756E6374696F6E2063616C6CC5 +S1232F00004F766572666C6F77004F7574206F66206D656D6F727900556E646566696E6545 +S1232F20642073746174656D656E7400417272617920626F756E647300446F75626C65200F +S1232F4064696D656E73696F6E00446976696465206279207A65726F00496C6C6567616CBD +S1232F60206469726563740054797065206D69736D6174636800537472696E6720746F6FB1 +S1232F80206C6F6E6700537472696E6720746F6F20636F6D706C65780043616E277420632C +S1232FA06F6E74696E756500556E646566696E65642066756E6374696F6E004C4F4F502099 +S1232FC0776974686F757420444F000D0A427265616B00204572726F720020696E206C6914 +S1232FE06E6520000D0A52656164790D0A002045787472612069676E6F7265640D0A002054 +S12330005265646F2066726F6D2073746172740D0A008C51308E5030A20B205330C900F0C5 +S12330200DA206205330AC5130AE50303860AC5130AE503018608D52308C51308E5030A2A2 +S123304002205330AD5230AC5130AE50306000000000006C4E304C000120B431B029A20D19 +S1233060205330A974A032A216205330A9008D9432A974A032A20F205330C9FFD00CA94F84 +S1233080A032A2092053304C070FA99585E2A03284E3A21A20533020FE30A90085E4A93430 +S12330A085E5A200A000B1E491E2C900D010E8E003D00DA99085E4A9CF85E54CC530A200A0 +S12330C0C8C080D0E1A974A032A21520533029FEC900D0AA18A5E4698085E490C718A5E594 +S12330E0690185E5C9D0F0034CA430A974A032A210205330C9FFD0034C7E304C070FA96008 +S123310085E4A90085E5A000A200B1E491E2C898C980D0F6A974A032A2152053306020B4F9 +S123312031B020A20D205330A9008D9432A974A032A20F205330C9FFD00CA94FA032A209E0 +S12331402053304C070FA99585E2A032A21A205330209931A90085E4A93485E54C7C31B1A3 +S1233160E291E4C8C080D0F718A5E4698085E4900B18A5E5690185E5C9D0F011A974A03298 +S1233180200732A000C900F0D6C901D0ADA974A032A2102053304C070FA96085E4A9008516 +S12331A0E5A974A032A214205330B1E291E4C8C080D0F76020C20038E9408D743220BC0055 +S12331C0C93AF00EA924A032A20920533020070F3860A97485E2A93285E3A001A92091E28B +S12331E0C8C009D0F9A00120BC00F00A91E2C8C009F0034CE7311860A20F4C5330A2104CA9 +S12332005330A2134C5330A2144C5330A2154C5330A2164C5330A2174C5330A21A4C5330FE +S123322059301E312A2A204E4F204452495645205350454349464945442C204F5045524198 +S123324054494F4E2041424F525445440D0A242A2A20444F532F3635204552524F522C20EA +S12332604F5045524154494F4E2041424F525445440D0A2400202020202020202042415367 +S1233280000000000000000000000000000000000000000000444552495645442046524F20 +S10C32A04D206568424153494385 +S9 diff --git a/Source/Images/d_dos65/u0/debug.s19 b/Source/Images/d_dos65/u0/debug.s19 new file mode 100644 index 00000000..0711a270 --- /dev/null +++ b/Source/Images/d_dos65/u0/debug.s19 @@ -0,0 +1,106 @@ +S12308004C2808434F50595249474854202843292032303038202D20524943484152442077 +S1230820412E204C45415259AD0401AC05018DB0148CB1148DE9088CEA08A210BD5F09953A +S123084002CA10F838ADB014E509850B8D0401850DADB114E50A850C8D0501850E38A50B75 +S1230860E5028504A50CE5038505A000B102A8A207983D48095D4F09F003CAD0F4BC5709C5 +S12308801027C8302FC8B102AAC8B102C508B011C507D002E4069009488A186504AA6865DD +S12308A0059102888A9102A003E602D002E60388D0F7F0B6AD02018D3D138D41130878A925 +S12308C0FEA0FF8502840320AC09F022B1028DAE14C8B1028DAF14AD8613910288AD85130F +S12308E09102A970A009A20920FFFF4C1A09209E09B102C94CF019C96CD00920CC09209E0E +S1230900094CC708A0FF8CF914A983A0094CE60820CC0920AC09F0D6D0B2A000B10F910B5A +S1230920E60FD002E610E60BD002E60C38A511E9018511B002C6120512D0DF18A50D69034D +S1230940850D9002E60E6C0D000C1F0D871FFF030C19080010200302FFFF010102FFFE00C1 +S12309600A0000FF07FF000C00000000000A000C4952512F42524B20564543544F522053E2 +S123098045542443414E204E4F5420534554204952512F42524B20564543544F5224A000D6 +S12309A0B102AAC8B102850386028860A000B10248989102B102D00EA9FF9102D102D00628 +S12309C0689102A9FF60689102A90060E602D002E603600000000000000000000000000009 +S12309E00000000000000000000000000000000000000000000000000000000000000000F3 +S1230A006CB01428201312A920CD0801D005CD1001F014A20BA93FDD0701F005CAD0F8F0EE +S1230A20034CD71120460DAEEB149A20F611A92D200112203212A000AEB314F0EAB9B414BD +S1230A40C9419009C97BB005295F99B414C8CAD0EC8A99B414A82083108DDA14F0C9C94933 +S1230A60D00620D90C4C270AC958F0034C3A0BC8208310F07D8DFA14C8208310D0034CD781 +S1230A8011C93DF0034CD711203910ADF514C901F0034CD711ADFA14C92AD00620E2114C21 +S1230AA0F20AADD914F0034CD711A200A000ADFA14D98813F00EC008B001E8C8C8C016D06F +S1230AC0F04CD711E004F009ADD8149DE8144CF20AC8ADD814F00DC901F0034CD711B98807 +S1230AE0138DD814B9881349FF2DEC140DD8148DEC14A200BD8F14F006200112E8D0F5AD92 +S1230B00E714206011ADE614205B12ADE814205B12ADE914205B12ADEA14205B12ADEB14C0 +S1230B20205B12A208ADEC140A48A9009002A90120521168CAD0F14C270A203910AEF51483 +S1230B40ADDA14C952D00DE00290034CD71120460D4C270AC944D0358AD015206813186DC4 +S1230B60DC148DD614ADDD1469008DD7144C870BC901D0062092114C5B0BC902D027204670 +S1230B8013208511209F1120690E4C270AC953D02F8AF007C901D00920921120CA0E4C2737 +S1230BA00AC902F0034CD711208511206712ADD81420DB1420B911ADD91420DB144C270A2E +S1230BC0C946D028E003F0034CD711ADD914D0F8207811206712ADD81420DB1420B91120AA +S1230BE0EF11F00520AC11B0ED4C270AC94CD0338AF007C901D014209211203F138DE31405 +S1230C00202B0FCEE314D0F84C270AC902F0034CD711208511209F11202B0F20AC11B0F815 +S1230C204C270AC947F0034CD60C8AD0034CBC0CC901D00620E2114CBC0CC902D032ADD67A +S1230C40140DD714F00CADD614ACD7148DE6148CE7142CF914301620921120611220DB1468 +S1230C60F00B8DF114203D12A2002045124CBC0CC903F0034CD711ADD4140DD514F00CAD20 +S1230C80D414ACD5148DE6148CE7142CF914302C20851120611220DB14F00B8DF114203DEE +S1230CA012A20020451220611220921120DB14F00B8DF214203D12A202204512ACEA14AE30 +S1230CC0EB149AADE71448ADE61448ADEC1448AEE914ADE814404C270AA20BA9209D070177 +S1230CE0CAD0FAE8A000208310C8208310F05429078D0701C8B9B414C93AF0078888A900A1 +S1230D008D0701C8B9B414F036C92EF00E209010F0319D0701C8E8E009D0E9A209B9B414D2 +S1230D20F01DC92ED01DC8B9B414F013209010F0129D0701C8E8E00CD0ED208310D004CA61 +S1230D40F001604CD711A900A2209D0701CAE00BD0F8201B12C9FFD0034CD711A202BD7C84 +S1230D6014DD1001D07FCA10F5A900A008186DD8148DDC14986DD9148DDD14A8ADDC144813 +S1230D80C90098E90868B0034CD711201712ADDC14ACDD141869808DDC149004C88CDD14D4 +S1230DA0CD7F1398ED801390034CD711201F12C900D009ADDC14ACDD144C8B0DC901F00323 +S1230DC04CD711201D0FADDC14ACDD1438E9808DDC14B004888CDD14489820601168206025 +S1230DE01120131260A9808DE1140A8DE21420671220EB10C924F062C91AF05EC93BD0F118 +S1230E00201011F0558DE3142010118DDD14201011186DD8148DDC1448ADDD146DD9148D09 +S1230E20DD14A86848C90098E90868B0034CD711186DE3149001C8CD7F1398ED80139003E5 +S1230E404CD71120101120DB1420B911CEE314D0F22010112010114CF10D201D0FADDD14E3 +S1230E60206011ADDC144C601120AC11905B206112ADDC14ACDD148DD8148CD91420F611D5 +S1230E80206C1120FF1120DB14205B1220B91120EF11F00D20AC119008ADDC142DFF14D0BC +S1230EA0E520921120DB14297FC921B002A92E20011220B91120EF11F00F20AC11900AADFC +S1230EC0DC142DFF14D0DDF0A86020F611206C1120FF11A9008DE4148DE514A9028DE31462 +S1230EE020611220DB14205B12202812C90DF02AC92EF020C9419006C95BB002295F202A26 +S1230F001190034CD711CEE314D0DE206712ADE41420DB1420B9114CCA0E4CB911A200BDB2 +S1230F207F14F006200112E8D0F56020380F2027108DDC148CDD146020131020611220DBFB +S1230F4014A84A900B4AB017C922F013290709804AAABD9E13B0044A4A4A4A290FD004A04A +S1230F6080A900AABDE2138DFC1429038DFB1498298FAA98A003E08AF00B4A90084A4A096A +S1230F802088D0FAC888D0F248A9B98DDB1420DB14206011A201202010CCFB14C890EAA251 +S1230FA003C00490F168A8B9FC138DFD14B93C148DFE14A900A0050EFE142EFD142A88D098 +S1230FC0F669BF200112CAD0EA201E10A206E003D01AACFB14F015ADFC14C9E8A9B98DDB7D +S1230FE01420DB14B01D20601188D0EB0EFC14900EBDEF13200112BDF513F003200112CAC6 +S1231000D0CC60202B10AAE8D001C8982060118A4C601120F611206C11A92D200112A20368 +S123102020FF11CAD0FA60ADFB1438ACDD14AA1001886DDC149001C860A9008DF51420C17E +S123104010C8208310F02F8DF814EEF514C92CF0ED202A11B01DC8B9B414F01A8DF814C9A3 +S12310602CF0DBC920D0EA208310F00A8DF814C92CF0CB4CD711ADF814C92CD003EEF51430 +S12310804CC110B9B414F007C920D003C8D0F460B9B414F028C9209025F022C93FF01EC9E7 +S12310A02AF01AC93DF016C95FF012C92EF00EC93AF00AC93BF006C93CF002C93E604CD755 +S12310C011A2100ED8142ED9142ED6142ED7142ED4142ED514CAD0EBADE4148DD814ADE5A1 +S12310E0148DD9148EE4148EE51460AEE1141017201F12F00EC901F0034CD711A91A8D286F +S123110001A900AA8EE114EEE114BD2801297F60A9008DE4148DE514201B1120EB10202ABE +S123112011B004ADE414604CD711C9303022C93A300BC941301AC94710161869092A2A2A92 +S12311402AA2042A2EE4142EE514B004CAD0F4603860290F0930C93A30031869074C01127C +S1231160484A4A4A4A205211684C5211ADDD14206011ADDC144C6011ADD414ACD5148DDC45 +S1231180148CDD1460ADD614ACD7148DDC148CDD1460ADD814ACD9148DDC148CDD1460AD99 +S12311A0D814ACD9148DD6148CD71460ADD614CDDC14ADD714EDDD1460EEDC14D003EEDDB2 +S12311C01460ADDC14D003CEDD14CEDC1460EED614D003EED7146020F611A93F2001124CD8 +S12311E0270AADD814ACD9148DE6148CE71460ADDC140DDD1460A90D200112A90AD002A908 +S123120020488EF6148CF714202C12ACF714AEF6146860A928A001A21AD01FA20FD002A25C +S123122014A907A0014C3A12A201D00E297FA202D008AD8213AC8313A20A6CB0142067120F +S1231240A9004CDB14ADDC149DED14ADDD149DEE14CA1001E8A9FF9DF314602060114CFFE3 +S123126011A9AD8DDB1460A98D8DDB1460206712A200A000207A12C8A202B9F314F017BD9E +S1231280ED148DDC14BDEE148DDD14B9F11420DB14A90099F3146008488A48BABD04012952 +S12312A010D00768AA68286CAE1468AA68288DE8148EE9148CEA14688DEC14688DE61468E7 +S12312C08DE714BA8EEB14D838ADE614E9028DE614B003CEE714ADF314F010ADE614ACE7A8 +S12312E014CDED14D005CCEE14F015ADF414F025ADE614ACE714CDEF14D01ACCF014D015D9 +S1231300206D12ADE614ACE7148DDC148CDD1420380F4CF20A18ADE61469028DE6149003EF +S1231320EEE714ADE71448ADE61448ADEC1448AEE914ACEA14ADE8144CA612AD3DFF60ADF4 +S12313403CFF38E90160203B13C921B006A902A203D00EC941B006A903A207D004A904A258 +S12313600F8D00158EFF1460204613AA203F1338E9010A9002A900CAD0F838E90160200087 +S12313800A20B214209712FF41005800590053004E8056404210440849045A02430140021B +S12313A04503D008400930224533D008400940024533D0084009400245B3D008400900227D +S12313C04433D08C440011224433D08C449A10224433D008400910224433D0084009621305 +S12313E078A9002181820000594D9192864A859DACA9ACA3A8A4D900D8A4A4001C8A1C231B +S12314005D8B1BA19D8A1D239D8B1DA1002919AE69A8192324531B23245319A1001A5B5BE4 +S1231420A5692424AEAEA8AD29007C00159C6D9CA569295384133411A56923A0D8625A482F +S1231440266294885444C8546844E89400B4088474B4286E74F4CC4A72F2A48A00AAA2A20C +S1231460747474724468B232B20022001A1A2626727288C8C4CA26484444A2C8434F4D0DA8 +S12314800A4E45585420414444524553533D000D0A2A2020202041202058202059202053D6 +S12314A020204E563F4244495A430D0A000000000000200000000000000000000000000062 +S12314C00000000000000000000000000000000000000000000000000000008D0008600013 +S12314E00800000000000008000000FF0400000000000000000000000000000000000000D5 +S104150000E6 +S9 diff --git a/Source/Images/d_dos65/u0/dos65.com b/Source/Images/d_dos65/u0/dos65.com index b86339484320f2d9bce51d6a7915adcec8ba9989..149786948e181be404747d81152fa53b7658112e 100644 GIT binary patch literal 9159 zcmeHMe_UMEm49!3z%Vc{}qGJCZU03h*zM1Y4d4UU)^jStR&Ud zHm&^_(uQq9=OJipiIzH!!Op{Z1dLImL1WXB87g=aCOilMCUZv^2;ht6hei|j+&5rq zyPy4h`p546llNiXz31F>zW3a7&pr3uOYXmNS8^SuUWe1Le8rvoNBl)DliQw!`N`HJ z-1hX8OwaZ%Bli){EzjgivexJ(TeCjfwvzjC*5z$0$&YjIGX`u*O>I} zog21iai*^v*q(WDd;0ajNuQT!c@5pT($m8f_$qGlI|sIBUEDs|y0TVd-3;=1Ns*j<@gWJ@ibkIHh<#P~<0jU2=V|>%l1neJu>Q@=?V(hAa~b z(c?t~#d-o~6);IPhme|t9t{V{S!orR%^Lk-)N(>XT}Ks?(e<7}%+e}v>Yff|C%J^~ z3p>6oUsA+R6u>}R!cs09>xYV&J$At#^zjFm@b+yCG9F1&(;_KkO3DEe+mE47d&olc zOc>1#iytbE^zKg-^<{Ln2mbKfV}kde@sShE2j4=^GZR>6#fY8=j5AY1h}_N^zs4Li zr|W{ETAX8i*BOP}AYV`jf|odo5S9f!~}l8?-H#KiSwF7uFu2w zAyY5;sd!$ooLAI`8G0qtf!J*kKizK|C>g z?BC}biFzsJk8u}YWYZsThBO#d`U>pYaQ941I@#Inv*B~YNUE}>I54iAonFqMk~UA zPm<7qDE{!c<1GwvI_nob{z(shv#?3^u34N2RCNLLiS^p*;=~b!g+Ve~ z2?EscA}y{m5;Pc@6Sh_4)qbRS&MD~aNUPN)zZe7S+$pQsifdx^z&Qn`S&)Cz8))bi zm_sfof{&|l!N4aJST^X<6P~lMQ0y75AX`GYs@c60jA-motR^?eKqV-dAkCnkpHROX z58X_XrB%Qr2G-K8DrAJUWCqE{aR~vBvCadOOVWduJCsAd8vLJi)4!;z>BS{(7Rxiv z)+|8zeW}5N9ZF~w(L-|UBp=GEBFxMtVY8_bUkahRh3a*oJJdO$95tPdDD-tTDRjH4 z3$0{fE-mr$ctsd6JCrZ@9vshH37PMla`5HenXGqS&_YaGw1O|Ay+b+Ft2Fj14PalV zRb?!oS^Z)n!3a`{_$kZO08Z`~KU2iZivJ)igKUx{Wk6F<8wFB}&~wqcbR#0m2tgT@s_zO0DTO3SB;4d}`%3g7^%a+;yFW_FS>cO}SurqsPWby*=Yj7wWl zC z=&?TWchvJ7m7`IYd>Vegrh(tk2Y*M!J=F6Il^dyQ@pAP#`S%pSk!fJ*)6{B8Ks`+Z zAhCxEc&ZN%pTrAJBHlF_(~t1(~rN@kDrT) zPf570`79k_9gwf)YJ7DDS6Tuh6==p(<4`@q&*>XNN)@IVbL?=;y<73$^T{ zL@((Cv}p*no zrt&vwy#eJhMGzXB5lYw*f_)iGfNo*-6q@K8cCMC_l8(_&P*=#RUhm(z^et-Tced%o z78;Z|M(Kdq$27zjsMtj1eN@~_#TTjEM7u(im;x`-cRQ&%XQ~MXGX?w?sAVrzZ6q~O zBYMB;fGW{<@1@-@u=c=SitZjHDTylnZ=VqjJPfaA>8Gs>V)X0xNyMBwdvG_u)o=pA%J1V#otqK zOCxOn8%zTNI1zXfWofxuw?mIEp9GDO=Wpq=Cs@hF|@ zVDoj9CPKM7X-Be`leqe%ktCuUNtRh__fgsndL7hqloBext)U#IEq?%u{u-vXh1P0e z64=M)YN~~y1LJRSPNAQlLZ^mdHDnJvG9hl;459Z`73ladt~e#29Wl9!2D&M(iOB)V zV(%qdw2wZ(e&PWNp}}JCRpyRX>f>sIwAM>&pQp7x7NuQY);#$Ag%1C{u)#hbAsmNtmdSq z>4Y98y&$D^0aDM!uo!cJ@APYvAAqBSt@1dnPHIZ7?4i}kZhLZb`;Q&FZ%L|8V!TXNCZ^5OOhw2au-LcR9y08-UYg-A1Ev>2sO_iT3@Bcq0)%?J#*1Jb zyaK#>$R3a`<_|emNNEUcBLlV8*F z6;u5Ov}+K)#nak!E=|dO%&@tZqN<@88Oh>;8H0Iqi*3x~FH<&mUu$WjftTsj%div< zr;)j09i37CreRq>RWnIAv`S6=9FqL0lf1_eA%4aNzitJzo`^Su@bZ(ZfnT>yGm^vvX@q;csaKKdGIAF z!jb|TY_d!%tbWfSTH|Uni0w3peipH`QwY(YMf`F*Mc)~8HwO+;2%rqoCqRU#UuMZ{ zJQ_GNlgtvKTR06t%7Pa?6~lK$e7wXHy{u65>sW|W$C%D!G%&?<(5^_x0=o|E^#2}} z)o9=><3gr{GXQM-iT%ddW&o=M`ANz?@Smh^qDPO$7)=m*m|-piIy9G9SfM8j4kiU8 zrD*}+%^@>~3;^~WcIY_giY&9+Dd7VPy54=vvq_FfUYBeu?gF0X{cr4}? z*zv=r9X}kWrF+nLgq=Z_oQ5+9cAO5S5Q~HuxtrRP;Va#R_C(wuP?b=P%NqKJ!IZoq; z!3|!%Ugvq1LSJG%1*Zj`r6CIp^uB1wMD97vt7l*(czI`=ZVV*d-O!9$SA&fX=jJyw zwKpkppGI4v0O4}VZ_-JCdXuKVLD3V@?l&p<*e&j+_(?W8^s6X4bNwm`O~46RVdH*^ z7EZ%A5+iLS4WQ%~G~<48Iy493R)dDdV7<--c6#{++e11q1YKgLw&`G2QoTHs5D73l zth)1v0ft~MRu;H^=129kX-7kC9+?>Oyd z^Wdm6gmUY6r@+n~mqK}U=R@m+#6jLxQ3cl$b%r3^Ow6!ECF<#m!mYvdbmI~}ZoMer zyZZ2IioZ$mg($up#SV%?bQ&!~rOS)6q4)+I0m=&2loyv;%(s^ol&?hP#i(#yQE_Pj zTDA<`UR>@fDAkyG-zY9E&$gIL3hqjr4N!3rVi1Kz8}e{rKFTjG+)$AH{?+en9&QS+ zK0tilRJ9seO$Hs$>kK9DYu#3?Ag#2S_40~-`(sM z>=`MJP_9F7t4PL+MqNw}=4#O>1nQ#Egh+L61Mr)2U0%*N?Tn9YYW=ig6WS2d2s037 zAey~AyxrBg0P1hb6TFvU<413z}G9jc@+QSsEJSG?y;4mEz()co1F06mxE9a)MiVk6Br0> z%4cu1g*_It(}|Ga%ttxS5`;E_gwuHwRDeL6SPda($>Z=OB%zi4F|HHT?%R?;ObBi& z`EP^(eIv7A)}jpw%PeM&;p9Ni0F&rz6O;%T%mQW-dst~PZ)8gOU=3h7OIXPm8<`k9 zV5`%)Wy^gVZ?c#(;hGmMN4MR|f(}9w6}dJR=Wi@3K>w8Ea6qqH*;OriGcE44 zD)qh(1xky-VtC}k#(Bng#7fRf9NIb}U01yV{Xi!zOcaJhk*pOU{mZdN4x~*WZAvs* z62-b|hon^BBF(GLk&M;LQN<|q2VV!e@ml?O`vW7593PJ)ff{@iqtsD(u2IrKcWBRu zq+@6LEitU?)9l1|jKGKWTqB5>o7;Dd9I6=+o)~K!dui<8*wL{QV|4877-U7xCZ-uZ z7Na1h8$B6D0j(ajt8kz)g9&T|*fj>%bg9yUSxN{wpwT!>!u|j%=$XX97murXxMihcd6*bQ+lFW^=2yNmAB zrK-89cl0Cf+a%^5g;8+YXk)Mt}_DS2t?FR70| v_)F@73KVp9?YZWGYaY1ffomSP=7DP-xaNWX3lH#|BMEU?oI~$0IJo};W~TVa literal 9039 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 diff --git a/Source/Images/d_dos65/u0/sedit.s19 b/Source/Images/d_dos65/u0/sedit.s19 new file mode 100644 index 00000000..8e61fd04 --- /dev/null +++ b/Source/Images/d_dos65/u0/sedit.s19 @@ -0,0 +1,130 @@ +S1230800205E1120781120720EA9008514850B850C20F40FA900850DA918850E208C10C06B +S123082001D064C0FFF0F58508A000B95308C508D014C8B953088D4108C8B953088D420884 +S12308402000004C1C08C9FFF006C8C8C84C2B084C1C0800FC0B01210C02480C036F0C05F1 +S1230860230E06D60D08420B137E0814B00B30F7087F480B187514195A12248009FF20E6C4 +S12308800F204E114C000148A514C900F00320990AA000B10DC90DD025C8B10DC900D02F82 +S12308A068A000910D20491020C40DA90D910D20491020C40D20480C20DE084C1C0868A074 +S12308C000910D20491020C40D20DE084C1C08A50CC913D00320250D20C0094CA00848A51A +S12308E00EC5139010A50DC512900AA50E8513A50D8512E6126860A50B48A50C48A50D480C +S1230900A50E48A0008C7F09A60BE8EE7F0920C40DE050D0F5A900850BE60C20F40F20C001 +S123092009BA68850E68850D68850C68850B9AAE7F09A000B10DAC7F09910D204910A900E8 +S1230940A8910D20C40DCAE000D0E768850E68850D68850C68850B20F40FA000A90D910DFE +S123096020491020C40DAE7F09CA8A48B10D20491020C40D68AACAE000D0EF20F40F600011 +S1230980A50B48A50C48A50D48A50E48A000A90D910D20491020C40DA900A8910DA50EC5A8 +S12309A013D0F2A50DC512D0EC68850E851368850D851268850C68850B20880D20230E609E +S12309C020DE08A512850FA5138510A5121869508512A51369008513C9CFB057A000B10F9E +S12309E0A050910FC60FA50FC9FFD002C610A510C50ED0E8A50FC50DD0E2A250A000A900B7 +S1230A00910FC8CAE000D0F8A50B48A50C48A50D48A50E48A000B10D20491020C40DA50C99 +S1230A20C914D0F268850E68850D68850C68850B4CF40F60A50D850FA50E8510A51238E918 +S1230A40508512A513E9008513A050B10FA000910FE60FA50FC900D002E610A510C513D0EB +S1230A60E8A50FC512D0E2A50B48A50C48A50D48A50E48A900850B20F40FA000B10D204944 +S1230A801020C40DA50CC914D0F268850E68850D68850C68850B4CF40FA50D850FA50E854E +S1230AA010A000B10FE60FD002E610C90DF009A510C9CFB0544CA30AB10FC900F003200A46 +S1230AC00BC60FA50FC9FFD002C610A000B10FC8910FA510C50ED0E9A50FC50DD0E3A50B1C +S1230AE048A50C48A50D48A50E48A000B10D4820491020C40D68C90DD0F268850E68850DB7 +S1230B0068850C68850B4CF40F60A50CC913D00320250DA50D48A50E48A50B48A50C48A9F0 +S1230B2000850BE60C20F40FA50F850DA510850E20C00968850C68850B68850E68850D4C63 +S1230B40F40F20480C4C480BA50D850FA50E8510A001B10FC900D002A920A000910FE60FF3 +S1230B60D002E610C90DF009A510C9CFB0404C500BA900910FA50B48A50C48A50D48A50E0F +S1230B8048A000B10D4820491020C40D68C90DD0F2A900204910A50BC901D00320340A68C4 +S1230BA0850E68850D68850C68850B4CF40F6000A514C900D023A9018514A9C6A00BA20987 +S1230BC02003014CF40F1B5B32333B3632481B5B376D494D1B5B306D24A9008514A9E9A07D +S1230BE00BA2092003014CF40F1B5B32333B3632481B5B376D4F4D1B5B306D24A50DD0078C +S1230C00A50EC918D00160A200A50CC900D00420A60C6020CB0DE8E050D0F8C60C20880D8A +S1230C2060A50CC913D00320250DA20020C40DE8E050F00BA50EC9D0F00BA50E4C2C0CE694 +S1230C400C20880D604C750EA50DD007A50EC918D00160C60BA50BC9FFF00620CB0D4C8847 +S1230C600DA94F850BAA20C40DCAD0FA4CFC0BA50CC913D009A50BC94FD00320250D20F4F2 +S1230C800FA000B10D20491020C40DA50EC9D0D01120CB0DC60BA50BC9FFD006C60CA9506A +S1230CA0850B20880D60A50EC918D007A50DC951B00160A912A00DA209200301A50C48A56E +S1230CC00B48A95018650BAA20CB0DCAE000D0F8A200860B860C20F40FA50D48A50E48202B +S1230CE0CB0DA000A25020C40DB10D204910CAE000D0F368850E68850D68850BAA68850C61 +S1230D0020F40FE000F00720C40DCA4C030D20880D601B5B333B3232721B5B333B31481B77 +S1230D204D1B5B7224A974A00DA209200301A50B48A50C48A50D48A50E48A95038E50BAA0C +S1230D40CAF00820C40DCAE000D0F8A200860B20F40FA000A25020C40DB10D204910CAE0B0 +S1230D6000D0F368850E68850D68850C68850BC60C4C880D1B5B333B3232721B5B32323B44 +S1230D8031481B441B5B7224A000B10DC900D031A50EC918D007A50DC900B0016020CB0D54 +S1230DA0C60BA50BC9FFF0034C880DA94F850BC60CA50CC9FFD007A900850C4CA60C4C885C +S1230DC00D4CF40FE60DD002E60E60C60DA50DC9FFD002C60E60A50DD009A50EC918D00355 +S1230DE04CF10DA50BC900F00820CB0DC60B4CD60DA264A01020C40DA50EC9D0D0034C0B1F +S1230E000E88C000D0EFCAE000D0E8A50D48A50E48207D0E68850E68850DA900850B850CF8 +S1230E204CF40FA50DD007A50EC918D00160A50BC900F00820CB0DC60B4C230EA264A010A4 +S1230E4020CB0DA50DD009A50EC918D0034C5A0E88C000D0EBCAE000D0E4A50D48A50E489A +S1230E60207D0E68850E68850DA900850B850C4CF40F20E60FA900850DA918850EA90085E3 +S1230E800B850C20F40FA000B10D204910E60DD002E60EA50CC914D0EDA900850B850C20CA +S1230EA0F40FA000B9070199250FC8C008D0F5A92EC899250FB90701C899250FB90701C85D +S1230EC099250FB90701C899250FA9DCA00EA209200301A925A00FA2094C03011B5B30309B +S1230EE03B3030481B5B376D444F532F36352053435245454E20454449544F52202020202A +S1230F002020202020202020202020202020202020202020202020202020202020202020CD +S1230F2020202020242020202020202020202020202020202020202020205F5F5F5F5F5F2F +S1230F405F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FAD +S1230F605F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F8D +S1230F805F5F5F5F5F5F5F5F5F5F1B5B32333B303048202046333D51554954202046343DA9 +S1230FA04D4F4445202046373D53415645202046383D5341564520415320204631323D5487 +S1230FC052554E432E202020202020202020204F4D202020202020202020202020202020EB +S1230FE0201B5B306D24A9EFA00FA2094C03011B5B324A244898488A48A40CB92016290F6D +S12310001869308D4310B920166A6A6A6A290F1869308D4210A40BB91E16290F1869308DCA +S12310204610B91E166A6A6A6A290F1869308D4510A940A010A20920030168AA68A86860A4 +S12310401B5B30303B3030482485088A489848A508C90DD00CA982A010A2092003014C6CAF +S123106010C900D002A920A202200301E60BA50BC950D009A900850BE60C20F40F68A868D7 +S1231080AA601B5B376D3C1B5B306D24204E11A900A0FFA206200301C97FF029C920B01711 +S12310A0C91BF031C90DF007C908F0114CCD10205411A001A93060205411A00060205411F6 +S12310C0A001A90860205411A001A97F60205411A0FFA90060A206200301C95BD0EFA20628 +S12310E02003014829F0AA68E030D02C290F8508A206200301C97ED005A9004C0F1148A29D +S123110006200301060806080608060868290F186508A00120541160C941D008A001A90092 +S123112020541160C942D008A001A90120541160C944D008A001A90220541160C943D008B9 +S1231140A001A903205411602054114CCD1048A9114C571148A913A2022003016860A900B8 +S1231160850DA918850EA000A900910DC8D0F9E60EA50EC9D0D0F160A9008D2701A907A0FE +S123118001A20F200301C9FFD022A9008509A918850AA5098512A50A8513A90D2030126030 +S12311A0A9CDA015A2092003014C0001A9008D27018512A9008509A918850AA981850FA00A +S12311C0168410A21A200301A907A001A214200301C900F007C901F0404CA011A200A0005D +S12311E0B10FC8C91AF037C90DF012C9209007C97FB003203012C080D0E64CC81120301227 +S1231200A512C950F00CA9008109E612203E124C0012A90085124CF611A90D203012A907AA +S1231220A001A210200301A5098512A50A8513608109E612A512C950D004A9008512E609F2 +S1231240D008E60AA50AC9D0F00160201E12A9F6A015A2092003014C000120E60FA994A077 +S123126012A209200301A9DDA012A209200301A99DA013A209200301A20DA9208DE213CAF6 +S1231280E000D0F820F413204615C9FFF0E12075144C720E1B5B30303B3030481B5B376D1F +S12312A0444F532F36352053435245454E20454449544F5220202020202020202020202063 +S12312C0202020202020202020202020202020202020202020202020202020202420202006 +S12312E020202020202020202020202020202020205F5F5F5F5F5F5F5F5F5F5F5F5F5F5F39 +S12313005F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FE9 +S12313205F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5FC9 +S12313405F1B5B32333B30304820202020202020202020202020202020202020202020208C +S1231360202020202020202020202020202020202020202020202020202020202020202069 +S12313802020202020204F4D202020202020202020202020202020201B5B306D241B5B310F +S12313A0313B313048202020202020202020202020202020202020202020202020202020B4 +S12313C020202020202020201B5B31303B30304820204E45572046494C45204E414D453A6A +S12313E02024202020202020202020202020202020202020A000A206200301C908F052C91D +S12314000DF040C92190EFC9289027C92BF023C92DF01FC92EF01BC93090DBC93B9013C998 +S12314204090D3C95B900BC96190CBC97B901C4CF61348A20220030198AA689DE213C8C0A8 +S12314400ED0B398AAA9009DE2136038E9204C3214C000F0A1A908A202200301A920A20210 +S1231460200301A908A20220030188A9205AFA9DE2134CF613A9008D2701A907A001A213DB +S1231480200301A9008D2701A907A001A216200301C9FFD00AA9C1A015A20920030160A900 +S12314A0008D2701A9008509A918850AA981850FA0168410A21A200301A2008611A513C54E +S12314C00AD00DA509C5129007F005A91A4CE214A000B109E609D002E60AC900F0DFC90A95 +S12314E0F0DBA411910FE611C90DD003201F15A611E080D0C8A907A001A215200301C90030 +S1231500F0034C9514A50AC51390034C1515A20086114CBD14A907A001A21020030160A6CC +S123152011E080D003203115A411A90A910FE61160A907A001A215200301C900F0034C95D5 +S123154014A200861160ADE313C93AF00CA99AA015A209200301A9FF60ADE21338E9408DD9 +S12315600701A001A920990701C8C009D0F8A001A200BDE413E8C92EF00B990701C8C009F8 +S1231580F0034C7215BDE4138D1001BDE5138D1101BDE6138D1201A900600D0A0D0A2A2AFA +S12315A0204E4F204452495645205350454349464945442C2054525920414741494E0D0A42 +S12315C0241B5B30313B3130481B5B376D2A2A20444F532F3635204552524F522C204F5085 +S12315E045524154494F4E2041424F525445441B5B306D0D0A242A2A2046494C4520544F0F +S12316004F204C415247452C204F5045524154494F4E2041424F525445440D0A2400010290 +S1231620030405060708091011121314151617181920212223242526272829303132333448 +S12316403536373839404142434445464748495051525354555657585960616263646566C4 +S1231660676869707172737475767778798081828384858687888990919293949596979840 +S12316809900000000000000000000000000000000000000000000000000000000000000AD +S12316A0000000000000000000000000000000000000000000000000000000000000000026 +S12316C0000000000000000000000000000000000000000000000000000000000000000006 +S12316E00000000000000000000000000000000000000000000000000000000000000000E6 +S12317000000000000000000000000000000000000000000000000000000000000000000C5 +S12317200000000000000000000000000000000000000000000000000000000000000000A5 +S1231740000000000000000000000000000000000000000000000000000000000000000085 +S1231760000000000000000000000000000000000000000000000000000000000000000065 +S1231780000000000000000000000000000000000000000000000000000000000000000045 +S12317A0000000000000000000000000000000000000000000000000000000000000000025 +S12317C0000000000000000000000000000000000000000000000000000000000000000005 +S12317E00000000000000000000000000000000000000000000000000000000000000000E5 +S104180000E3 +S9 diff --git a/Source/Images/d_dos65/u0/writeos.co6 b/Source/Images/d_dos65/u0/writeos.co6 new file mode 100644 index 0000000000000000000000000000000000000000..b79482fbcd280a96dc7c488e306c0ceebd7d4f95 GIT binary patch literal 412 zcmZ9Gze~eF6vxvR$r-uXLBUt;B1km_9YhLhf&`;2DLSV=t~6M4<#M*f$-z!iSJzOe zaD#*Yh1v3_#6euWrs5zx-j6Sz?|Vah-(o;z67c@>EKO^NmjZ3KtWAtHnkvq*nA?FG# zXQ9dDPV;kN{=-_j6yxN}g?l8!Rubh|NmdoCUG_rS34H=5lyYc<0VlU`Mts7WoH7{d z1yM)+$x#_UT{{Vy*PYUilsetFr(N$GSE_E|Tb? z*E1GtzXv&Mwr^nM_508wK!=2ln8!KsrN(<;)Ec`7`{4QD9A6ZRMQN@x5(IE$`kb&T ha0+eebI-pcJ5mhVnbd4i# Date: Wed, 29 Mar 2023 15:46:46 -0700 Subject: [PATCH 11/17] Update Z80 Tests Update Z80 CPU instruction test suite to v1.2. --- Source/Images/Test/z80ccf.com | Bin 14113 -> 14797 bytes Source/Images/Test/z80doc.com | Bin 13652 -> 14312 bytes Source/Images/Test/z80docf.com | Bin 13652 -> 14312 bytes Source/Images/Test/z80flags.com | Bin 13652 -> 14312 bytes Source/Images/Test/z80full.com | Bin 13652 -> 14312 bytes Source/Images/Test/z80mptr.com | Bin 13652 -> 14312 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Source/Images/Test/z80ccf.com b/Source/Images/Test/z80ccf.com index 75e4157584147b4cf3695c39210b98ec9d32a532..5fa0532ca32459997c6c980f936ff4e24f80d154 100644 GIT binary patch delta 1365 zcmb7@drVt(6vuxT3Rx>HFkn2yAcX}?*#`ch1Es?SvUL_1Y>ZOw zOlo%w z=lqhZI*o}u{V0$tD1$CXnTKaV*<*A1I+iZMGHSgd{4ykDzCcuvm(PSjk&*6?<=}<{ zK64TV#ap^o=q}EXWaZ_-`2tbC2o`3EM1t&4GFUUe{rfBcbG9-zjI~JoxWF5GUoul_ zf#@EuCl15$Hc|+jmU~Jl6l9ZuN&kbza+w}_0?&uQ32*U^#B<3oF9lABXMziuY^yU2 z#}^3&ALa|PnQ;kZ5M%O-6$9_3Wek-2*-J&i9|xZe7T$6sU`Z1ArR@f($vAsk?m#(w z4ijKyFA~8ro@0~oVcC#r>8_6sCb&^up4@t1GA-hxFPciJ#_PE2wVC7ChUH5fH*6oa zwIuWaqb%|ddCo;IA4ftd6`$4RscGFAKNu=m+gJ_!vh$l*tV?1cPqRr&cjwkAb|)|g zur`CE(S!D>fo4%RLUnbQLLLB9BSie#f;p`Oal?iXb6PQ?-|L2{(K;v~CKCxeggE&! zNV;WRSU6%SypmhaJcK;FXIc0vbJvL2Rgt?Y3PCrZpY2%X=si0RA67ZT_k!gV-L;gZ zQ_~;seYF^GRD#UnHpM>E;7o8O*f9}&yj=0jr_Qo;nNqeQV^vgCd|yGUJX<+c303i` z6jeV~y;faVeWlu|=6H>==26X?@=NkNa{pRU?Od&=;-o^ac%q0!rRYu6tL}q3ZQXhu zyIxvr?{7KNGTlOIJ=&^jU1^PKyCiPA z(dN_sQTs$Yp@ZMi+3`z9w6a>cpbYIi-)ZXfRpqL_Q0?hT@6vQV?MmuabkBEFd-8fd z?;-W_ds})Jdl~BU>g#IvzW4gneXD)Uep&x~KYgHZ;OYQbb6lg;Jko>>iU+?Q^wef* zwc1TBXGk$LKSa}=)){pU`eXXIUj4d0ZdgA2-EiPY;mC~<`e@1juwDF@Q00>8%q|$|Re*yre z@rxfKv>k17M_D&4)*Wq&1=4KZ5iXA(!cIwjClFZ8lm8P3{~M3{H&2DGQvD6l)I^8` zSu~Ra|^)Je1K<0w}D_~Asl&b`$!ZHbC0=32bO=XyYf>1%)U>Sk|uos delta 904 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 h74Mx#)~vDkOk=Sj+r;9n@?p~?UN diff --git a/Source/Images/Test/z80docf.com b/Source/Images/Test/z80docf.com index 2209bd594ed5187adcdbfa66947b9c667225a451..d5b7ac89ef1c0535767b6ebae99e40ddc09babc5 100644 GIT binary patch delta 1414 zcmb7?YfM^a7{}iO)JGu&aka*Y+MY@NT+i**ue`n%a&|!a^CmJ|9_s} z^E}CO@4{+%NQ56m1(ndZ$qv&TsC?!)wT`_h!-^E4snQ}Dg)b0YEEBU}aLLM`WAEXH z3@$H)!R4J;ED(uBaB1=RGC@fk1%w9UKNOdh!P~m9SR~rgosO*E=K#3vNn^v9Mi#*V zhp`gbEr|U%EL`yJd7)5HLIF18vef08VZ@!mjaZn=$;r#ipujo#FgKG0 zu43}7R$w^ul2GurSWv=xg-Zd)Y!Rv8@X8tnsv?NhqUaBz-;Wk9`j9Z54Bo$8;KZvq zdpq1^rt{NT0K5KoAds%%BAbGD%Z6+#_rnY@DTo%Zx%kj#dyMz~*e0P_zr@|pU(We- zVpn878=lMkQCxgXWy&A&bJs${d`J=+-fFJks6UOvk)5fU^R3QU|Pf%|2&VQpaKcPbcmxsj2Huh zFfFQvUSgg`nDNMg@EEdT&A?1RTp!MsSFz%eC*Qm5cTRhaL~q1I&<$vnz^OuiARG$g zRKjN>biIo$Rq3M~F4Dv6MUpozp%>GX{kYVv9nHTIgLwc^^D z+866yt5eo3*TMCr^~U$I(PG%VHwG6(ThO z;MN0>fE=iooSD32CoIeEnG54ryWffyuc delta 894 zcmX|5eN0n#6#c!vu2I@r+N#u!gjZWiH$En0i<4MT8c6gw-`y#E_q8F64q>NC4`NH)wqyVoTKa&jW@aXo}6>< zJ$JSK(RrC-7a|7DNX0wx;0$P9-&~2VFnp2`STnRu0#aB*7(UlG7GvP*v_{3e&I%+} ze+C0zyu^)!q0xYysr^h()D;MUY%e=dtJh;M_=Z}8VVhryZZ18KD70YTN@}wNV?H1i zrC=W;A=em!RG_Vf+)KF^a~mG=xJd zKZ0T9R~v{=8;QDNu*PyFLiTJ45?Ps-(->E(Oy7986p1XeCd(0{a{2+Q%ATI(^)nih zmq?YZYXxuRHNX3xBn+Sg#CIIq&KSZEi@0Jg$3?-y9j9On5j9!berdzniFUgEY5U<0 zvSYSGVEV}9HvMTj(0Qfv`%bR;xEY#b=KQWNyJoxgSn4c6OTu#4N?K>Fd|S26Y5UEl zg6ClfZb00A!#;0Ub~ki?*Ufi)?C?7h4%}&S&N=0-bFN#iO;=fux##B|toK}Ruy>-)d$=MH>0;2C&4aM0c2o^xjnUKqSJ$nn&8+@8NYg+rHz?hJ9fN4+NR zPhNER_^^F=aairw`)~R;{S_m&k%f`001+4sBm%lo%jn{0&e)}~=`nP?YW$n==i?Q$ zm5$Mx3B$z9gfw_MI1*eBYC~ziKJ3vIej`WYjuzYc2`Nf((f5N{0vXrQy|_Ez$q| Cc9E+9 diff --git a/Source/Images/Test/z80flags.com b/Source/Images/Test/z80flags.com index 877b2bdbe7e7550a641a57f06cbffa25b76ec279..3965c583d8de6ecd9d3423a07b3186aa2168ca2c 100644 GIT binary patch delta 1432 zcmb7?drVqa9LLX9bd?qb?bI5xTnk1zL0A1lODfK(RIRZL=bAN5otxNMO~paGc3nZd zO^b>Tyb6lqTU1m)@Uc15huQ~CZdbE*NoUB?HX0X$(R4cZf?ZIV>p#m*a?kIV-}n4J zzwfy@PtGls1cmuR6i^2J7-uuifU;M%lk3<=QtXr>_=x0`l*Ho;FBFSdFt{{9r(uP- zAcac`U~qXm7x9H6AzYAGSj^9lB7xvQ{6JoDF}zh5tYe?9Bn zid~d?Z#Xx{S5eW7viLvi&Rz`;@g|6=xK;9RmUTaTVU5zYjn#;I9gp6{dZc#JZ8mY? z>D_f-k6g?Ptlh!MVAn#Ko=J3@unD13_RFCC0Bb>f@Xr}+*`-JT)`i%z&m#u^0K9~% zpzxR+BqkEs7s?>&m-R6W#C~zQsGJpvEdFG-KFo0oOm`NApexYg;e>LrKO>a98pfAV zxU!HNwv_97t^agFIV1FnolmET6ZBg8EB}M%@p+}lOhP&8dDD{=Qr(pO?ec1=WV?&FZ9@%9^>F;My~_J+-!4R^5%dCv~u* zL~&C=tmoD%>*woXl#lArH8j3K+%Vg)w~^PVZhYPtt-Pvys0>o^Rc4h(6Sqm-wAjRK z7Bx>dlhr5HZR#a;Ov{%o(~=fqE3Z}4y3`u05o;_O|F$!2`nKQO(%Kd6)^=vc<&OIu z_$6bNlr@Q;Rf9XEbBkq~)A@=6R^SeB3zo7CGy5IPgCGbMP&4p-lA1<<9JVergT_J= zX?yU}Fdbk_?4ospu4qB)OKI>`2c_;Q?GXxpc5%Wgxrn7!SZd zm)!Po9{~G~C1=#^8-A3Y<-VhP*nh$3F39UNp{iocX=?kAL5}b3Xc8#`N1}I delta 887 zcmX|4drVVz82#P0)&ec1Em|Zb+)61-zyOIeHi9Ju1T=$GjoCjgY}{#F4Pf!HnE=0Q zGI_M6?T=@HQkp5Hz@-m_nQYEMM(ncdixEc_6hf*dtVTnusH5G5C4R}5?|kQ+ob#gk z&$9`#SWE;OvEqF}_Y7!U+XyTK=)#7!8u1<&7RO)m@)m{NuUf5Xv;FslrU4cz!K2DcGSpnEZ$HG;*63W<3 zx{UJ~wHY-Jxg7d^BObGvn}wGj5di=Hu(+V~Xi=d+tx+ohoxRnI<3*Qih_C91DkWHD zxO@SVx+fp=2j&wgoFhqzTYtFh_pdM|EB^YFsk@Av@b)yfkCsDjh?XOW#UEF~xOe_H zLS|?+d>wj~Hfz79qBSrqxRW0pnE&lfEb9w;8+iRI6BX3GBU422O;|jj|0ScC-8{i# zk4Op4z8XAspBxuU7z%yLO3j@lbM+)YDKnZ{rE(2q_~P^*P^l-MJq<7ZKKW5Fenf2~ zGO(WI*kHXlGb!$sjA#;7G$mdO7Jg6N5Kr4+X3~`~kuIvwqi&?HiFe;8H+yGn5dFaZ z2B~-@Tl)YL`h*-2hh-vB4(}vl{svR?-_3Xn(L%MnZ8_KqTW4GO`V)Ga{<%KeaLI7n zz%iB?k#WhG)%IQ6Y}*b~mC0=inGTwvdDa|bsjzfeo>=7QEb^drq-wv`KHr|wQPc5r zM@;AEozBisr>aZeHP@BceWrV|d!xIs$Jp~%4{kkUbz9f1>Rw|*??SJY{*of>72m5*H?`!H5anW-fzeOxy_GcIwTau2)L z+ebM|c zr9O`Q6vmDORmhVnLE7X5v?LTFd#V6YsU-~WKq`fjS2X>Lwe+)6fbtYY{7BHt1iHf5 v%SApa*ds^p6#{fe5yiN@h*l^W%;gqpKx8hA;9e=hW8+YEmc;iWEh796=D(S~ diff --git a/Source/Images/Test/z80full.com b/Source/Images/Test/z80full.com index a2b5afe0a673a3785769f58d31848e4b1360c795..ff3a76776b5ee5bc1f6101bb81acaba53c00c3de 100644 GIT binary patch delta 1401 zcmb7AZA?>V6n-z%PO60#m>}WD#a5}Ig#lS$4IeUS1thgAbBZw%Hi}M3sB2*|XG^(> zR=&%H@>wWf1q!sKrF3IN6mYI)cacn&IMOW2Fc?+?aWJ;IcDLnY&OgiELUD1SgbjnsRt6nAj}vmZ zr~n3~9<00+D9e%O6&Au0p;#h@MR{VeFh7zERvkzGoB`mD`&klnxa?l99zpBf}Xyn9E^0W`|S++&+<0k^(jlhUl;;B4@3=ZNiCv7ET>4hgQ$ zBcqsQ@h|JnT@4N)5~MWTE9H0Fnje0!2KnmxO8D2B?~Y(Sawqv#5^3?_oi$&tTx=Iu zy*-D*-u!TfSdGxAfeI)PU>d{+zwYG7E*sqF&2*;eSAkk1IiD63bB^?*g+QflBa-LeOaM0@>t^H!89!loj@h!+NNb~q;^5Ox_zlVRxMTA)czf3JM6P}*_LBNe^lAE@^+jomwUb)!ety5Yf2luqKsqoxKpNx^ss`;KcU}c$TX-7PYm(K8sj4)eN;U9 z)hN;Qfk|sxH6@s@neUrJ$Ig$9jR8xRrP=bt!W@^3PmU9;Syt2vfD52XY7lDmx#`JO zBs!Jzvec5D%7qy`PU>O&Me+{QO|&eezQV+9Gn7-$_&(lP|BB;Ij; zIB+?>`2Sk_wgs__P@k-{v@J2S-+?>`f>04H6OR+LbOPjZbfcMcHkwS|jhBwnIe4t1 zbA54Q!adgsJ-3q;C>%>eC+TFFVuhf~;H3!w&YL_ucy4DRukIKRz&}fF`M3*!bK8uSWwBeQN(TR#T5zIUQ2;O* delta 888 zcmX|4drVtp9Q|(F@$9899E^}~YfHfaa}XD`8Cc}ux-A1iWA@J!<<4d4LbtLx9|68g z;($JA`|*aB(!|jgxb(rsw&*fPBvy0HW<^DVLP&K9cG*JKF_*SpFxf9T`JJ3|a?ZV$ zpH62>GcXb8z-kXfybGXXGZtPBGf9w1wq(5`O@?>_sXMP}RTALhe4(7#%^HwsIZ1$z zceq8H*`5rWG#a9n)V1meZIez%Ht)m1+H!2|X;4}Y_Jp^S6$GP((n_$0!Qlq;9+Yys zbVcWi&K7C!Ch?dj9Yp$eZwXO%1P8(YX>FzYXiYU<)lj7b%!@m_1W|KQOMcKwHY>pf zt5x7^>)r}17+%Vu37$kI+`79K46d^y>%lhJ{I{%~{rJPAF-8WHqKpi6V401tLgAC( zBLREN>+oUpLBXQq2Nm-sjN`W|(!xvMJj&p_%j^OVzh!BWp-hifB~JUEVf^y z@n=fHBzHy{L)5HT!T@xDqbR#UmFX#dZgCpDL6;e*_=VfwL#3Yj>(BVgcQ>9H#%Ih# zAtPs_)CSwc#ks-$bXoap!qR&y*+XshToRtxOe6pPQba=FZg3d@=KMrk1wQt90S4Zgyc-;yvMY zdpEu1zHZ-=FGuP>R<>+4pj&3PZ*|Z-q3MK!un4?U6thxatLU9E5Wg#L%i1wFA0{03Mg8u+Y CB$eC% diff --git a/Source/Images/Test/z80mptr.com b/Source/Images/Test/z80mptr.com index f0c6f8edb62433514f9febffd95cd5233594746b..25eb3c89671c3bdab8a556a19a137ac07d57c470 100644 GIT binary patch delta 1396 zcmb7eM#=aTPjg1g-jqj#OHwP<2chtZQPMHm+hcsUD6q{w2h66p{wb1Zp&cTFV-wuvfbpp=gE2A z_jjJNRI*wY850aqzzyj8RJU~w+<56evw;;Tu(O&dmi(-OBoIlimP%PLxaOeKuoB!* zz-7fSxW1>QB8gN27Z+YG6%{3rKvV>Np|G?R-tCJEC6b-~y8G1ca{%1ie#V9|y&@(9 z9Ks3}cV!-k{>HIvE6mv@GhyMC%VM#phy=|W=>`x zp7Pl%RjhdA*$*Dq{Q{rC^r-{{{Rvu2O0SZIGNQ>ZVnj*`UwQbZJFD7k44qA{VnkPZ zM0AQQ-E5@442_lG>LCUhN5 zYmzn1Hw85dnsv>On-jI4Y42+zTSP7P7Qa@0tFHA~E3-}7HrqzlozZpbR&~kkpSI7+ z+ld{54t>XJM~Ysicj`ks&v%+Tf9uTd(sa4Hn1<_y1p~SJT=z)#RyVh&w&y`lMDMxY z!QP*H-|Ca~&G!-ePxl-8f9y{*UNue|{Rj91`hnGfltJ0x{2+0NKcpRU4aJ$nrY}rh zQ}%Gf@T1`)BPAoYk*yK-=&jN3M!8h8*gR!EV9B*;El(_I);jAWD{V|N_T^ZB?E{<9 zwr)FaueLw1M~{CrK0Xd6coVG?PbL_X(#h#bf`jKk9RPR%s-Z-pj=AWT-U#3SmnXYM>IpQ7$g*3BA4bZpINJmO139Qv zx+?wv0L0;-#kI-m~>$;bE zugU5I5IDXcfF!GcdIhm{Oxut(OM}6%&o|cgHgmSRxFJ*Ebw@r!OrZWBtJ{PeIRUD_D#h&J_I3H+HJrx&zSC$$H-G82r ze~1o%XLs4?s3Acs#Rt2vg8<>3e0GvYwEht-Mf}caeTbfuND&T?;_8wmy2L~avIE{Qsze9w&c|iovdAUP|(9^g4&c5`xC~}10t@Ni(6?}obo;lW1@CT_b=T< z581=?yy!XBOZBew3XJa=?Z!WhM@*lX?wGjdlV)fRn+y9s>s#r2#nNc;Sz?xBR?50! zO|#Y7hHSsuRPZA7!yTyYzuq6}R}Qocd^?af_`#riFgBcSdz%=Jv6*G1YkU_&4L+iFYTQ6Hg}Iw0GK9?b(h?j$01gS?9Dn|8y2l zUY%T;#9hZ-M%Rxn&eX}N{;BmTwOjAL>E3f!d2F7aJ=tE;JME2mb<>vV_37N1D>I8T zoY|V$uV;5>s~9U2X7c6?bIWs5-x;6Bx9uzScl$$rxnlm({O$PzfttWbU?cF_!sUhA z3*aUI2>>TkGvOxx4)zXgkQ{=wX{tb~;B01qt2%>m5>YMm=SZPGTL!}-5p?DVA(L~0 zCTOVyQvM0B2w^2V_z>jGH*x(fcSmh!6W0Lvj#>o|$kIHZa)A(5T|j}%G+ Jk8=~Ee*wQGo4^17 From 5f36cf9a12807fb0f90df4a708e42cadd7518997 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 3 Apr 2023 13:44:52 -0700 Subject: [PATCH 12/17] Fix TUNE Delay Factor Handling --- Doc/ChangeLog.txt | 1 + Source/Apps/Tune/tune.asm | 14 ++++++++------ Source/ver.inc | 2 +- Source/ver.lib | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index a4e02563..105a66ca 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -4,6 +4,7 @@ Version 3.2.1 - WBW: Fixed SURVEY.COM (again) - DDW: Updates to DOS/65 binaries in disk images - PMS: Updates to VGMPLAY including support for YM2151 +- WBW: Fix for quark delay adjustment being trashed Version 3.2 ----------- diff --git a/Source/Apps/Tune/tune.asm b/Source/Apps/Tune/tune.asm index 994d113a..d5f05cb6 100644 --- a/Source/Apps/Tune/tune.asm +++ b/Source/Apps/Tune/tune.asm @@ -45,6 +45,7 @@ ; 2021-08-13 [WBW] Add support for LiNC Z50 Sound Card ; 2021-08-17 [WBW] When playing via HBIOS, call BF_SNDRESET at end ; 2022-03-20 [DDW] Add support for MBC PSG module +; 2023-03-30 [WBW] Fix for quark delay adjustment being trashed ;_______________________________________________________________________________ ; ; ToDo: @@ -301,6 +302,11 @@ GOPT3 LD A,0 ; SETUP value to PT3 sound files JR GOPTX ; Play PTx file GOPTX + LD HL,(QDLY) ; Get basic quark delay + OR A ; Clear carry + SBC HL,DE ; Adjust for file type + LD (QDLY),HL ; Save updated quark delay factor + CALL CRLF2 LD DE, MSGSONGNAME ; Print song name message CALL PRTSTR @@ -322,10 +328,6 @@ GOPTX2 LD A,(DE) CALL CRLF2 ; Formatting LD DE,MSGPLY ; Playing message CALL PRTSTR ; Print message - LD HL,(QDLY) ; Get basic quark delay - OR A ; Clear carry - SBC HL,DE ; Adjust for file type - LD (QDLY),HL ; Save updated quark delay factor CALL START ; Do initialization PTXLP CALL START+5 ; Play one quark LD A,(START+10) ; Get setup byte @@ -655,8 +657,8 @@ TMP .DB 0 ; work around use of undocumented Z80 HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN -MSGBAN .DB "Tune Player for RomWBW v3.5, 20-Mar-2022",0 -MSGUSE .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3",13,10 +MSGBAN .DB "Tune Player for RomWBW v3.5a, 30-Mar-2023",0 +MSGUSE .DB "Copyright (C) 2023, Wayne Warthen, GNU GPL v3",13,10 .DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10 .DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10 .DB "Usage: TUNE .[PT2|PT3|MYM] [--hbios] [+tn|-tn]",0 diff --git a/Source/ver.inc b/Source/ver.inc index 5bd3ddd3..8d5d1e1d 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-dev.3" +#DEFINE BIOSVER "3.2.1-dev.4" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 6f85fecc..d0dd1e05 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-dev.3" + db "3.2.1-dev.4" endm From 51d962aeab8b1611ed78e45867635bbca9a0ecfd Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 7 Apr 2023 10:22:46 -0700 Subject: [PATCH 13/17] Finalize v3.2.1 --- Doc/RomWBW Applications.pdf | Bin 226590 -> 226592 bytes Doc/RomWBW Disk Catalog.pdf | Bin 124414 -> 124414 bytes Doc/RomWBW Errata.pdf | Bin 28540 -> 28594 bytes Doc/RomWBW ROM Applications.pdf | Bin 159615 -> 159616 bytes Doc/RomWBW System Guide.pdf | Bin 528135 -> 528135 bytes Doc/RomWBW User Guide.pdf | Bin 528273 -> 528270 bytes ReadMe.md | 2 +- ReadMe.txt | 2 +- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 10 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 15ed55d53559e4bddad97eac5a01323c484e93ca..853297d03d7e4013a4499771bfe2f13555863f83 100644 GIT binary patch delta 14670 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 delta 13036 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 E0BUaTkpKVy delta 530 zcmex&n*HBt_6e=^!KeKW8wl)quKkVu)w{#5Zv=^UUJyITJ4O0Yi;KT#(|`L7Wp7Mg zwz|Bts5^6}FSdnS!KSpLJ!L-!%aS)tt^ptUln*}N`upXHg|=4ukzb#m+_jnS&HVK& z$KSuZde3ZY_L|+IZ!JoH7teQ?0?Nw6HjCCLC9H!JaO!B)Xx7J>% z=!8X$kG`=ed%KR8v=*=59tQO?!QXC21ux34opA4i&6^v`ZD#Gi;+A|gW>v)gP8T+} z<4Sk(T^4n2=;YXG*LL*%;R7izCSPpPDx0G@b#q4k=9I-pt~t5tCUKWLoj#Oua#2U` zE*&}P)_||lVwY^*Ykxbtm))p2rQU6upsV_fQ#aiohThuzIiiD;fAi-#yK0w*MHDVH z-5WG(XW->)yMBiK+f;NXXxh|$JLc&Aja#*S`|_#2W%v9hyx}`KWtOjOw6qhSwfl~3 z<tukh9-sY57rzWFIGi6yBD8ZK5w21dpP za3$M2FEfe=IlGu!T9}%-8JL?J7?`;_8M`^TIy*bMnwc1xI9VDy8rmt?5K=Pz!Ba*# E08!HGF#rGn diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index cff3c1a4a1d1dd2cb7c074d9b9c3ce887f3fce85..a964b958f9f032c02247307048638906123b8495 100644 GIT binary patch delta 9005 zcmaiZbx>T-wl$F84ub~`1h;{i!8Ler3GPk?f|DSFYtVrZoFKv722F5>Kya5J!QJKM zzWTj)Zzb=m@6_q4?sazWy;kp4)qkA3CFJU5V2tK((V(~0OQMfn&?w^YUV8hOk$eYmc zxC6~peB%-kFjj@pORa~cqU-PbR_}FnZ+uao+pO(rluT9odIV^WZC2Bq>T~z|86)A6 z(@i4R+TuC~_}r%^G%_`#Z_W0$f=oRz6%s!gDEjf1nPJSI0&*JT$9rZXGmD>lm2VqT z542W?*j> z)QrH4ZpIArr3|Sro7oHw3XvCA(1wptE=M(GIB)@t5P4Qc@+q1giXmyrQvyAP>gSVH zPG6P<3yN=hu9s*JD=vNcmLXyA`AO{pm5dEfmAWKd!)GO0MH(kZ;&{W9Gr3mQ2Zam$ zjlWVXdX(S&nvJ-!%%1$FxDGom(h;?utgy`2sn;mceQ#+0tC%-;O88h?BkRibvxBtn})|5Pk`WMufv=@3G0Uc?vpj zZCN|KojO$x?dfcFVSbf%)q&VzUN@nz^L26UZRLMac6ha=UvTdAD<4+-%7>qo({(71 zm$)E?Vo_gZ(!%Yakk?l(mO}hGr2mHmDd}i&&C3fqC37Jq>pEQ{o!I>97p1HYJ*hRM zrA!Xp<9cWgqcqmkv(HP3cZZrP%lFi$GS02P+W5}U>Y7|U-R;e^yq~3=l>moZRk!c4 zT32#_gK@1oXWo7smaT@Rv$dA|)K1X}(e7|>uH;Gz*i|p`+b~W#)QN~PAZh6I6_2zXAtRpm78qEG znk{@bNPaPx}(n}UGu6o-|W@+$Nh_F zXWb{ASKN2>?9*njSn?kEuxN}lxD3-lWlHGh)|#=c%7Lp93`S6=Sr~52H_IZk)4aT_ z&ZsLTD#KjonTeCObJ1Oae8fSK5BPoU`W}8-g3t)QyvG(_?==Pbo&?eQLDAK42p=ENt&SzUVEloHfn5*e^I2O;tDf$!8yM-F%UNqhyBIHhIfnn!3zX_MJ zDb5H#L#u<`1=MP3)#AGST1H(zPYEY&A-`SiO4N%8yw%8$=T7cK zenk+<;qiV~(f$a^4UfA9Jn8;uL8Y<}_yUWq07ummn$TMgmm0y#QON56$3^TPB-xU=FM z^>>xR{Y`t?kr(MFGy`5p{i;_sykg-BJdP~yDQsBirKMenx+<6J#Wz*`g+|JntJ9JwVxvVN86iookgPJ^I`U+hLnGz(Wt_CI2OoD3}ye?maW)sw>MP5;~%% z!Sl?A9r>~<$nBV9EC|uzF46}V*!Fgpk8BRjW3fDGw-vD`!_U6i2^%IsWyhjZ2p+ly z1U2%T<)^{(et~MyGVYAHGmLmYuyS#>!=);`;vrT%Y>x& zD$p1IY~n|SQdkgL%TlDKFi57 z1$nVeAI~0cKlP5M5nj_F62-QM?dg#?n<@#Le$UP3y((a}iXlLas3ZbT;$|e=A{Uf| zm{9$uExqW-leODn^jN#LXb)mSk2J+WL@qX8(XX+nD z0h}kZc_eV1p+HPK`0(!+H${Q^qbzIGT0)-PHZq_rwG%t_&IY%%oB`JLGFihCsbF)| z&O_9pP{pr<#HDeoyHtZahEQ${8z&)leLe30gRXK;~(R(4sjY#AhLho-NN3xGr zo|_i~CwmTemE-c2>0lJ4K6NzdI>^NVa`nw z#Na;{Yzh?Zgn=k0WI|0yDS^HymR@Kc)L%Y%r>gYu7;E^)j+?H}xEVUCd{Iu?-vRtN-n>}R+xcyPPB(A;VmQG8^qRx-l>_%N1Sq(B_0Ji%tlIb;c zYl$x652}rs7Se5}e~@^$Vc7jC3V<@w8YdWxFV#Zk+$|7>rC6|c=nN^Ur8l}jH=@Bk zT4TcV=CCYB)wO_;CpZRSN^Odf{~+zs#n)JWv76xc)`6Ex67y6{J6NAp-hNeIb>%Rb z2g|)3!xg7D^r(!y0X=KSwwg*o^hhkseiJVSJzDjx9p=MZG|V?{pOnm+gS<@kFOj`m ztElob+y!ie4ZZPavwF{Sc392R;kTRUEWO_)9o_7V_&c~@2u)m*Uttj!jGyk*9wntZ zy}vy&^jxUc!%iry;IU@NopEmTEx#|3cM9_iy9nt@3b#S7rw{5q9+^vX3J7%7H1i&j z9Xn7DHC-5f+I{{W%ww2W2d#uC;OBpzlZ+>~9{sV$Bm4jL&YDQICdmb@-9n1uJH zABEZ>AaViL7XD$r6*09yn{KrcVSb<3YVwNsYkG|JM;ilamHDrcmniK9Q;Q`{SKl)) zKW$rzKa0D{WMkc8=GR&H?1~AiIcgyHM9z|R-Zi~!5f67GSFZTTmekM)P-43vNA&AK zog`2g!zN#zkh8^V7_)O<6HcSyvr$a`$hhN?yS}7>sb#S#j@Oku%*w3Tg&u>FBzBE% zqRlvVk;i>r*?F=@#@a0lz9D~N^d7a_n7AF8R>FUeyX13QqCL9gfef}*?dJ{!1Jklf zR#t$s!1L_eRyre_$dCJdTdrhAoqIaB6?&%BKz%Gs9{v8%w=q{>9xqrZsB5L`jf)us&!Z zlTdUYdx^V*jcYqiy`*(f%HKVzP|9C)Pn)$XAPb6=_53!saLYODh^|=9aykruGw(~v z&#Xo+Chq(%UE1k;bduDu&0$!J>mZ>}#Sozpm`WhnmepHbysl$YEjcHWvD_)*$6fey z3q!OvUuMgL>$1Rhqc*zBYpEn8eDzVZ4LMyos*LD{I)6ULYOP@AOK- zLJG82RT4s3xuQW0jFp|x(sH-JDC#r2AEpWW+&#zDI9p?xY+8N&X8&WI!B2sYA40z; zfni51V_*an#YER6cUb4AeNLcf`!~7T6_sOQ!YLWZqn^*~U`F9{z2Gi^4lQb&I@N5^ z%4$>mt(tKKryZ{O~ux-d1*a0;pKl{)O*-no4hx}th9h-K&we6EXR z#u<_#oJWF180tXDd+-4mZ5H=SjAXh?)(BQx1zGxeSK;xx$^cwTsyR|1J3IhlpXTuQ z$F#0ZA!8MprDr6r-KpZQ!#3QcZMp)~6M@H=+Iji6R_&^&T{9%QdsGPn zg_x|&N=%Ep#y3n{)URdK^YesE^75ksSALqwp|rt#qh%ZplQ+1 z&_x;JcSrVmJOm=<86n$QG#Qb-_eL|p7(POP&>8P|h9jAZEO#p09a<8OEdVH6Jv>Uw zh!A)#@GOQmLGx6-=1YCdX8)(jpp$dDj^WX!TJOH}_n{6UhyFnqlE=OihInc0ka$7G zn=wb!&_M4l-uUc!K^+BRE*NRDP4e5SJdS4GOVn<$cuK#ubAMvz!+<~~Y-s3}%y&Xfr)Q5{VxBgM( zMQ#X^fG1tRSK~!1Boi=>1y$)7;uDv3J=EB6XRpqc1-z8z$_Hs=^7c2KEHim0$|R7k z8i6+~Msm2z1)<6H-92H(y9+hboGB z?9&bL!%h>qoV+*Ypxk8=`|*QSqV;M+)5~%zr-?q;FAfy?h?!xIyG_ME3#GG&fVanf zh7U~G5-yt-w)hTnA4gd+TN;)NC@X`3^XsgpG@a}KKYt}PDG1glcTYrO^~pM*w7s>i z{-aKBr;s<$)`T$r19)j?@)qIE%HBJ8n0O7XT?qXCCq%*E`9Wa)5Uaf zk~E?hiYt|EFOtK|fZeG7&*FPipqrx;xzPdBQ*x(daf7-KQF=qsQ8Ia85XcHjxsj0(5_&ra<6 z2O#-D9$JUNsK#M^qNU)PW&a9j6&^K*(}0w)v60NSWd&=lb?r-cORrd0+q0+tk>}E> zB_jv5mlEAJU&b;7@o&6mv0&=dEpyjuj>k19)~_I-7r%U#hKM43M|{mNvsq#w6Y%g} zV#?mdZ%b(cV#QM}lRU5BDa!@)Y03Gj{v5h!y}vj_eZs{2Fg15se%{<7d-*0 zm8I@&Ow+RSzLEix>@xNgMUhQ^VC3$_1~%QykiOrEU)n-xZ-JU#w{%vE?S_@n*1N7DLki>E zkr^LtsX+vF@yHE6bn-?Yh>V>%3sGJ_i}!@RP$m8z_^BlU$F~`b!re)mcN^aHsY$8T zVK&Y9orEDV4!*zjwCkmQ02iQ;aCV^?66>r$f9fEpRYU5A*CN;lQK9%wKl;=|yG4^; z?|Bcoe~i~)Fn{bqhGxh$%v~~WP!nKlyT;ZOGqnfF!^UfuPdR7S%M>40;8T*C&3-c?gnR{1CxYtw)_8lDQi zBsaoY<+QYfD8|SRaCO!g}{R~Lxoa(mnxv5XgdD5r% z2iN>e%R7zpn{cY5%ifuOyb=0nASBSRFfQqmPmWry?sLI&z{K56tHC6T|E@8nz+}gW zhoKTHhOEqNo;oMQH2C3>_PLuV?2IlnY0!8$_yLgKO2IHeg}jtPy03(=|CHy=JV2lV z!SjJPt%X!JcjTW}?m_*(u&kqhMvpC_{EW|3`R#_Pqv%y&ia-M-vOT)|i=^|v0p+d5MrG@!J8q)R28?iJnk*}Pew+pFJr2k^<5|i79 zW()FpOTmC|zQ{SU6ywrb=*@Qp;vQJdwF| z#OHq97=M1k%lW*y15YpsBJ@llz+Nbj0Do}Tp*XH(6cnkJh#FuxFqvEE0YsEknODch z%`3jyCiP5cR)WHsEDvQ<)|H*-C`+@j3;UFlO974S>u)Kl@#zvZ%X(?ZzihN>WZ8s}q)~UaUcrbLu)*izb@WR>xmxEp65)pTr%bzS&mO z$p)*Sa`7?o+lGV<_S}gq}Gy`Akj)(Ea1C}Gs5tVhjO-6a6->VyPEn{GeOaYIY>BOaEvC`?M2U zIV}w~18w_P`=5M!Ef(>-=4g#KgIxL63wooO4?lUtLE}|U;ZQ<_UobP*`n)eq913n}GbD&&dOlSJ%G$>lXvv@{zP&uP!>s)pzw(>2$?tJdy!4Fk zmesluT9|Kft{Y{MO(dbj7&v|caN+-5KO}n+d z=$y@f6|a(ZuKNsnvTuFZ$SyD8K5Rl#>CcK3>tIl##XXJbPO1?wK|XZf;b3@(OR>q8 zQ;xuVvf$RTDeMxV_Hu1o^bW(izA~+ms)!r8)>P^EW8vp{_cBr_!i!DcD>&*^NhNOm z15M48>1&>L`ziQ5CQ36Ovfw&s1Hj-sgNxAt-`2H=4 zi%vOd`r9By2_4ItGQT9NpV1!F{C!V7Sz`^Dk~`|3ypBi!OeBgqsbN?*)o&-p63w5) zpBlcNR~GXI)WL`qF#T@ISlp{(LbMLm2iu9hN5*b$6CI(O)KGqO|2`;e$VEkKTLnu; zS`!gcJ*X#)3G3uzQEb~AH@Ld)F@+KgkqkTUE>xh%ZDUN2*Xisia?OXSOmrKQU)Rz- zOyhvcnvRu^#nt3d6WWQ&a22NPd@n>w-eztedw#v|Xpyi_zSwWBi>SCszOsLO!aTg7 ziDl(z>FVZUWd{A%%*osyi%)#XFI}d=r(G)+L^W9bN-! z&?WJ!>^7lE8sBw3ht-+OSUN$0`)G5FjK4lF`!S#LV=3uL9{(D;gK@iU?)2`m`Sq1V zM{PhEmJAK3(}uchOm>Buno?iS9bT=++blQ7!8>g`uG^!YmlAg-wxk3C+bA~Q@ z7jT=ooZh=N=iDv9#&^SaJufL9js5&u#JZd&zw8uW4e!U?x)U?sr(EXD-?l!^zqm_9 zAYOEY<4@PhXfH(_LlYPuf(n3H+F@b_RM8_3UAAvqI0sq;(*S8pF8nGo#+HjI9m{(w zN;~)!D$p&wC>H}6cm(;ojhy{d&9^?p(I1r$Qgap}cBAlM_c4=I<(K82&l7BgNE+vF z+S}5S&)Xx^X?@~vCv$|299M3;Zi_q^a7B9F=xmgiO{X|aZH&ken@9jj;5LtZ(S|9H zHJNYiYf$e)S52T{`Fo>Hm_gQlY6*Gb1p%Aijk2AwL?wydhicKKNKjHrqbbs3D{K>1 z6YLP39}}O!2w1GXm|G9L>K;l=iA-7Yp+jAiq?A(qoSakeT}h!tes>r>RXR^QFDY*_ zFUf1nEB-&maXShHh7F|+5%ZMKyB{DpSk$FpC=GsXWuM-Wrc7geg8#LuJr3PG8* zTO&hpx^vBks@9qZstE3T?Ol@(72X-tX+0)8N2S5d^UHHNZYJESMw9nNM^u@mtE+o< z*U#=z2~oVn|I?gsT`krB@no4+;6KwEkoGbFlb;8|BM1`U6NFRSQ~t+F!afTH!UJEm zCl=+WF(5C5?=OrWBnanqV1_~d{=)NTH1IbG;2&{7-rxUz z|G;?pc))+=1A=)Wf3f5N3;wegKJ9=j`sbeCD)|1|!_N!(D~_L!j|Wcwh8PC=g9#51 z1QGZXlU!S^m=_*uMk+ zkFx-R_;~*`KM*7+@K+Hq@UJub-3fs|jQ|9L{^%GL56^E9@^?ZAKQDaIQQTAt#QRcO zN;%3^fFTzr<;ZLh47N>gc%Bwhm(k`nztP`u?P6r*E*y(Fn?{mAx>fBw^Xz1(=$Ly+^B?nH5~kbmrUjiGR^9`>+g^k>yK zO4RQ|G^{V{?M$1%VREiP11MSv*lp2ryojh^7(;(*b*Koj^oh2%kS zp)m4t_oM`DV$~@aV9C6`K*dL$mz6|8GemkJk%@w5NMFY=UF%x3Dp*|h%jSn4>`TYW z^@#r}rJ9Sr{s$rNv{k`rJu7$j3Zq7c!Tz!JcVXA|Ss$Q6u1cnFuI5g)&EEJBh`km4*~EX^mEUoXOsnxOLnIbTg^m zR?CLCSG@aucXg|E0SB)t#QkEh&ExA?=8osJooK(=yqhz(siA~~U|aXhxut!RtJ8#m z?`8(7fo*8zVdXwn%Vo&vx|QyiV$;V{5z)p}O+Bx8-RR7xg{X53{d7P4@OGSbPV6KU zQ<+O}dweueJl^fu=PJKe9J)ynWNX#>K5dKL?z+qWG3`z+*~*@fCIa$d(n+I!e#G}& z{Ii0SV8`^`%;I8$%VP22^`Tr-*8F#vin`iyQULpAW6ZvfRk@;vY}MN~5R^8~b?Ojp zqbBg_*FmN0&%BRsJF9GuuPZZ(qETw485e~8ee&GAD4y<~U!xw12XH|4mcF|gDEGK! zliAE!#3Q>uV#4b5ZWhJ17Dxr-JTY@VgJT94&X(J2aU3m4pF+jAwgeC8dPw(RHTX8Z zQ6>FUkZ-&VP0%|^J*ri*pn@uUAtwzKW@T^>3)2I@wAXB5lYC^PChaNq*zhacS8sKq z8lV-WZ3kJ}lzV_gU2CA=_fY}!XGx^5cu>@vhaCqw+|ezFc?gt||}YxL~6mtEc%#|VdlV9r}up4rE1)7z{n z=sOj*q!g0F3UMN=Gt;7=L2$pS$cxT2;fki;hAqIF-R(sf4!2bHr3J8;6uSe>q1Ch=l&DTQVZiS?;up1vs6OoZgf@TgE z5W{u(V)Qq=V znm(Lyp!v?6ea1cHi!i8uW6LHM;cm@3=nc3KINT+z+DQrR93_CcYY1{hF<32`0KRa1 z5RWL1B(CAH35)0PGO$gNm!ANHe}z9wU?lC=^JRN?H3gV)tD0oZZb(_VfE%$+1WZts z7(M^-oTJ%tsv@wBwYN3$E6(|@w@6doR)h&Y-n=Eh!3D4XDOq+cRgz>)Ek8mGwr5J%+L1d(PZ~3jvJBw=O@tZOJw@1a@A)(Dj8Ci>c{6B|V6d2Z@Bd z^#uk~B@uj%HgZ^YQ?(0f>fya_Z|*_P=s92E!uVFPI)O7?xcS$4c8b33^5brc8SCyc zx*7+0FLrpvhquj0!CUCr1?=JVHF30ql5w|vw6;&A-_hmy>6NeH=NZCD8jq6>*W`ws zzi=E&oLo_1lz9E-1od8k4q-0J_A^tuPT^`Dld8RwCgGg0^1rv>nw5Yu=Dr21?O*vL>K(j#)mxt8#uXc z7&jLjNfHy%@L_NA$SsGS zpWh(OE%OTq^dtb(NJQ&X?vI6&te|R{I-Oyz1td(UP%ovUXW3QMQK;XI&>8kMm|2YTQr%|48f@ds z6|?#%;})jhEZTZMQZ}QPeD$W?a|Kp$(m$LT?&Xu_uo(er202)&v#|*$n2jfyjVVCM zLY%Q$#C=SPlVixNMvY-4{I{b<1}3r*irj?*Fa))coXG>Z8I2G3AskyCv(bjzrj!hE zc_gHaG^1aYm+|?N28))Ig?q1o`p4N22-f$(?G|+X8u<}Rx>|cH zDZCoRlxM#RU7wOq1{U>lo)|A0N;wVh=W)j(X7+J{B#;sy)U1*2ityw(x|q={%o%kP z7@v2nOd;nWHdO`jW2T%1Tx??Ya9?AC3K?5SF&znXcD&YYIPqJo_TmyZ zN#n5Bje#z>V$Y{(&Xl<1IlB{}`*mT)nsE#6&_kT9hsIU3wGk=kozTAf z_c-_!b)9(pzO=4puK>sO2(HG_r*})c6Jd5C%kIVG?H~lgT}9s8+{bqz9@l|pvN4A= z&QH69Lj*M4NMUq)mcD#R4Ck@1&$2VN;pTk1F3T8G`7uZP| z#5slKAS_a>cT6agOn0UIDqF${%;E$CR(KtHO12X|NSDZz+%}9OVvuwe(f1=5`ZDxa z4;@Ai_%4MzRz7si>$S5^tIz-H^E&;uXXj&G1>S0SDEEcpeX(C|&WpZ=9iqlZR9(G8 zj9e_0@(7T!>Z1}OIfXulMZ52u+5?(!d`5E+5^?hPrnQ+)AnBH+z0`SZWtiM&XxH|XwhB+T}9mPuY*@PT@ z;aM+&zg8v%dQ{~`X4H%2s@T!lo1Lf+mUqa-K$3G+sF5nWiv(tDrv~3wVV7Y1otP zH5-_sYVGASjBej06P;b^>L8#F`;@y6!AnWy`RKb++pzE!fG*?d8{_OB@|0wopwq*} z+>?(mU0(RNoh`8(4w&5&!lk7~K!{_*IQ!CDfw$^s#u^D}wX!rDpY>+Q`pZ!cFg!%L z_Rs_8{Qz)La!qYba4g;L2i_a(2M9}ZXx*|IO)v=_B(Cu`o^ejxGysuH;VyLc$SiJt z#?Y}?j)54bmPcc*pd!;u1Pk}MhLlEseB`^SOBdFZuY*Up!$MMpC>(Mm>T4{`afxe+ zOSPHyk`sa%`g`zP(gK5SLn8<+#)UumT&QEDk8h7ZkgvIBaF)9@4#t=xhLi(rT$1%z zWk{>+d*R0^_E_&!u501!ke_*NZKr5EutvX#yoJ zodlJ!vS@-$m{0km0`A=C!O)UN?Kq5GtpYG&A)RT8=Zrsy2w3hs4{EjG}oXXT!hE7zCdeFB)5^Wo3#4DB?)!@|uCcC2b;z_LbHm1JiA9l@$1m zD0lQ0ZkC~6v5vP6RIv=b*XaE0|7F|CI*%;FWMFaznK%;ey@+j%U=-80YtKH)+S6?` zPT&UhceR<klJ6)Ud?szSt85I3WTTCNmaf6Q3Ku<(ORoSsoLe(E zouCI(Nr2r=fLEdb71w?$zT8-|pSsH$98n17jQ z@qBK6ixZ&pGeiIVeYbzf>=987eLK0xhGzBwU6hdmbH@48-q(^vk@ub9O5$|Ym5jC0tp;WfXp)qn#$_JYnyaZs!>z#X zm(h*SyfbS%ZGbqlT;|C$Y95PHWQ-o_q%HiPlw9VgU1$=wXN=MzeB0k(#XjKFHe!Sv0jHYC^6z4GXfz~m!A>mc+B@}u_x5GVumT@L6arRa zzT2{bW_d7kCa71|xyTq{@a*h)>bZx>0vF(;e|Ghb#(_hwTgFgq4ZF}!ZO^>`l3#l3 z4!LYlDYA01e)7ubg;*z8uh#UNO!V94ow;6U?eh~JzTj|@E2+- zm}ZkoE{NNz;U~F|j!BO_#L{nVAsmS zTJvW9T^%rPLiqix7?*&KQ+B?v6DygUYmY(GZ3N`TGpE7o=en@?rdU;Z@Fh4siAe{6 zeB%gpCQ}3MCgm%Yv9ZJ)wbsgix{oFY4sGL#J29k+CC|JTEF&K zB7gkaDo4H>nT6@@nnk=9# z3g8o0Oe|D}?r&Xi)zZc<5#;%cAaq^(g}-j7vMi&i@$$7>OT!hDS%VygS>)m3=Fa*p zARaTFm^&585>@FHWp){UoLo-62h~;0cwXZx^_wm4P^=}G{`gUO^0%b-)^!o)70qm} z`rT#nG@C9P>)D@NL_de3iBDZS(PngDbLPA0mLZ`mUm;U()Q=DNWK0$j2BtUmyIu!!vjHBJaHcC{myuj?E@Ji3yaxD!OmvTx6lNlT#Ge>esOd&n zUhU{uJerx{ZJhy7$=^4;ugV1f!rlv(=GFRfFPXNZ?m026H8CZWzLFcQv0#adV$Bn+ zHbZLSj~RKGL_}kN63K+9Es?aik*-e;tP+z7Mi7&Q?Hi5`BJCs*slF-=n}1bdv)az; zqKLvoaQe7(-@5tbxg+kH^zQCQ27{R8H{%TR>_>Q9IA2W1>1HtGVI72nuj9#Qk4vw> z(^gYUY9*HKjpG8P7;35;?^jfxySr~0W{{K!tECt%oPlI4ON?B4j6HOgwZiX(Oj5_h z%M^ZrVV1+FjPEGqF|`v*yt11#Dh)T7fa)aii{}CBSLK!+q+HAk)6L7%N230;O<~g6 zRoQ;{54;qL>rI_jha)wXm!ukOp5o8^fT z4(h-YFjfiIY{;`iEi6O5$p1pTeWr}FLv4t%2K!WqiEXdrDS;Js-r}ve^nBQJu3RTw z@^dX1cUa5ptB3Nlog!l)g(}MYPTii)Lf!W-$b-hrg_AHH|nD}8iGJ&* zTxbjzPfw(|`?=466)(;lm@kUgvPbZ8SI|#f8th=*x;>1`!ir&TE$(YsQ`1}_%cR`JxV35R>f+cd+!vY~0o?z#J&+AH<$_L!vjB)P29 z9~Coiuk5g#*Xn1gBuy%F(m=@GVa_>zsHrZW{LfI{N9Dv z7v=Rse6Q7-=r3qY@6JC81ki7N<3n}2Q-EDi-Kq|fd9fk+h`&ky20Z#~;gr0Mf^;p5 zu(T?TN;Xv>!G!EaBR@N}Ic0rG=g_tuaI(?XA@lYLXJK_=ktmz%m_T50^~F-akYn3B zQyh;bSTV}{s&HUUzjS-y)6$J(5;pszN%@q9S8^aM|d_1lEW z*w}R=+GXdaZjsZY!l*A*K}{YAbXvO)63nceugsN`*($bL0Eq;aHj%l5262J>_}5wa zcSqNJy6~cl(m)5HU_9I*NBgn_*q2dWC5;r>Ad#Wz{8Aqfyu4PcE-_(I$>}HYtE5(G zXIP8Kv0~9U(lY{@ZG3&ZQCpIH%`bs(O-N9@(@spr$sVIwgy|^hcx+N+BwV)ecpT8Tej= zsi*Wn6hgoET`rWFtDn8|S%T>C!1xT{12(jPnvFcJgf#SWFHyq z4NTG)TT~C&UyNu7m?@GsJTar`^3U=e7HF*I9P$NJ-CZ<}B`5>wV2rO<<@(?{7;ad% zWODdsiq3@SSOEgbgh6|*n&0fGFIC`E!z!r#p?>bBq4gtfbj3VJ{O&*ADDF$R1y8?B zf4oXKH{a?*5X@5)Bch^Hi_7{UO;GWJo^9bCMcyj`BY(1&f?l>syP^T|LWIcVF=|~qhb6l( zy2JxFXslS1`&m#WlC?-YtHYVFh~qMa^3#EEmC=(I@|51&cQ7|e!cpUEsTw_!MC$QA zpK?TTQs=JMX*V&8S@~>VIxg{c@B^J;LQc~&=e2UpYj0P*WHSf6(u+d6J*{#Q3lU;W z(4PEUnanD=p1WO=jf>9vYH>+s(wVq`Xfq?QUff&Hb29*nRUTH+Md3(-9O}>2zNj(L za@5Z2bqs;dC~VF*^|J*~-e8sccW z21eRO(#cesYlyswu0*i6DXP&Mya-{(4@C3t)+mLFMrMT+EGlq(=Q1Uituu_B^Nq(E z3NF_=RvD|QEE0$SIX^ZZJ`L`E{ly$m_5MTLJOh*CGT7Gmr@)hL!?<08-O#yW)}!ve zl75ffwakjMwu_f~|E)tU$opxHxmxA5i2j=lZ`i~O8VAp;4etS%Z@Ku!Dosw-sE8@F zwa9g&Q7k(?G`7^NzVcUo)~^ox-q^%eD@LbN`Nb-iVM0Y}w!)*X37yxTXY(y~9+&dW z?>65$v-^P+eO5eD3JS`;Ju0m?i8LqOZ;TY~U)oz=sq$wfMrv2Ju9yaIhTEOla5y`9 z(r&imEXRyAJI61;TIu+QKw5iki*w%RM%nzCH*4iXu`>_b0mw~6i^}DSYiOf`0sYI0*(%Rj|alL~yVNo>20x${Kc}uQUpIiXBYjlVm6wDghfK zfkHuo0&SuceUJ=hB+9=4EKD+#JDps0;yV?4@{5cXALj606;)UDGb|S7Y&;nJp6b*) z>05o{5ovfdW40bl%`v~@=>2E=hq4pw^eH#pH*fqR9}%b9y;m`gUS1Y9S{_x`mogS!*0iiLLLgoc zAMgJyN%nEb(Skr}dH-3oF0`2cdEn)Rf`ETwKtTb4KQRyx%KI0_4~8V$It|9$gY znCXh=AZ9th_)0=%3ZRKtaC0dg2HEUB~}B zoIm;ac|o8*vESCg|6s8HKRA9M|6dbO;6h)iDSHg8W4Y1w#Ka4F&Q2X$A-aK_P!>@Wc532El)&00e>m>IBFK z0{;1%fPDPGzlMYt@>eoIJ}BhBQic7$xdrkG{M8+ZS3vO3?tYK$U-5&0f`2vg+cW6T zNd$p_pnnPla041SN2uO@p?>o;XZvSj& z&%85d&df80!B)ZF#$8FPv|Mh|~(>{A!rb!zhuHji9Aw%GIW&LC##?`J zVAWSAHoy73kN<1Sp@$Z}Jh6B6%0F%0e$wv$=(oZ7c(_3$M>99Or-`<_S(AAWV- zzB6C{#Lg#|d~-{DgmG*P0=b?CN{vqKQ548hhca2|LWlV}0qK-m{M`xVgFXM>o8C z85(7kW}ZFu|0%VSSo zer@m8?Q4Hs+&2IBf0=ct|0~4Wdv{r4lEzw?r_ zH(qn#wU7R)_`v?FW`=`jM)e!Lcg}6xJ-0FAnYoR|w$ILXDyr<0cFp}O8hw@j9$(Se zwK(*v@~3}&e^2Wdr9yU6rgP9zW{mgE-(A!ANMY$uI_J7fJEM&-rL9ReiFHP6FV{Ka zqN%Tgt07G37G2+Ua#1eSS{#?;GpspnP3#Jvw_!n z&FexCQH70UTv79;j7*NSFe2J=T{MY|MCZtv=;d)L6(OAZUeQUNm~}lga3&%9q~T-? z8A+DUIC(=yl0p)xcomE!OXrCb5s9Q!)=nrx);zkZ(OV!*C>Ytf_9i=fblKB>jE%G( zucC~F4)`Zxp|fw*K$%3HJT}%S`9Wi?ktb-ZbJ7_T9i^g)LCZjz7;Pm!rG2GLOkM`k zqL`)E7G)|8!#yLTW#OSTY<-qhuWTrkr-g93;$h1{n{AL$u-VC!P|kV^zq5>N&L-W8 zH1^*KzpIC)W!Ni2M!a&+YW=yR>y_6s3OHdpcW-m5>bByqjUp(}#t;& z$$DE2Yiq|2nJJD*>zHa4R>t2uML_4#xTF#9Y_)Vs8_EZ7Yac9SIZ^uvkjrQVXH6k9 zJw%tJ*HQbaaCM^LO5VQWxqkQZ7a9S$wWivZh*HE(oM873I(tqU?>vA zL{H&IGa*<;Ga+2C+8cSC*0>-O-D>N7e+&P*S&eF^c5HQu^g$#8$&8{FjfO?!2@R{u ze~KykYq3s70bVQi+7X3BYvL&QNJnCgchW{-eUfLQaCDS}C?-wL1e~%sI*SCBKm)Yp z79DIvqPODTDJPqalNpTGOC^TZ%V(T{qrw@71d$Fp1gpD|V)FLkDkag*YM?EhCsLJA z&l#YPFl;l?#gZEkO?3rGxGWP~dbIo?E(wy=<8BkE=VQmzbX?Sw{SIYZ+AZVX3BL=O z&dy;g5|A9qvm3&x2!iWPBcqaapnnzon5;iAAIe|=Ch8OJRUM3+NFLlpX0=yZvC}zA z2fZplbA%DEEF}^sSLfc*&JR#7svKXIiTs{(v=MLJBvfPno$!OYQ)dH*qviw-$LpN3 zvh2Lm)IGr~%ChT3wH1F53ktsnFvukIXzwfoT2ww*e%WKgvJ`#5$;)-Y7gRc6D(xF~ zH!>M1Ov*8kk(`Kz0gi|#1{0=^xWfO!G;kZh4y4xsj8__lj5=j-&Pk^Oj-(dBGX4R5 zQD%BTakDZAy@&#OBB5i5X!>#;@{MHCnWE-R=}bh52<3Blhq2`1E0OeNH zor>u4Kak96j09r0$b`(!5IQP2O++R7DDn;Q$A$?&B6yfQ5`bR)><}%mV1jBGkuwiK zbtDb}796bPe-X(l0R$YFZb_ipL`Ffi4LO~Y7#o4$;PTndg%1Bqn2O0p1TsVbk}PhJ zB0n$%nPwfMV*>OG-2&b)^GP5jRg^-cRq~OB6RC5L>!K)hY3PtVSV`S!jb?``Y2jZ* zxkR7(LX`rIlAz4Q0+($z9E@zy&<)*2)aHK)kR(C_!^q6KGo>;|Aus_+fu?rQ^)x*x zQb3{9jlgh{$pvLM&F*+?lQ8TM2@G9OS+apkpyYokV!&5l2xZ(?>M{jFE~mPX8F@Q~ zu9gW`uB%)~r}!W6O?Epdqv?}jFh!CD3E#lCOjwboLB~`?0tP4}U&%-!qLKh+B3Ypu zsc&E%(Xf;zBUt8tyUjuwtwS0{H3=gadm7mlp$ob}y0~PqtP=j7R{cTQO=EW@W6{a?H z7f4x)j@43zR{5Q(uHo=!dRow!nbq>B75{`uCY>=5Q{V!WW1_^&fvY6rB2jm+)Ftpq zITmyyO~3^@V;~46SLPDS7&8j;0>eB#!Mdqyd4>OFWu!BuGI2euquVjwdL(OtuBB%L ztgE;8GX5BbO%rNNed-~^I&f%`VfIp&!7x8JM^L`kob(yg)fw^jTg=BomKJ zl0rk5=lxhGn;4v-1cojqt&;y?AzdW0#$#69K`2`)MXaN1IpBkn8q@T4&UE-67IIeO z@stho8xbId;5%b9BuW-e)ALQCF!CWZ%Xs4zi3DXu7=U#WXz)EA&*QO+a|@G9C;1=7 z$eqx%@A()PNj9W1=o)1;s#8`(s}}1=hq|edk~aSiCLz2S@ z%u=$S|@HAG8{?93cY-W*J_j(O+8qr`-YZ%!6_i z%1G8aWTJgqJPuNFfql#HV}d6U6S|>NCF@$#E8wM*JOFn#jG=`ycn*rv!E&HTGTdoo zWL#`szNXRpwd7^KYcyq9&5&g|(LuQJ%qLuejCAp87+mwu>l;H$hwKn8y>4hwEsaA% pc^O!cR?D2ugF}e+;MGg|Kl%TbG{1aHM#ris_?WCOB-D??ed zaY1{O5_T?0k&MIA28Y`Pk>lFvupiI@cUrMr>27G$YSHU)e82F0zdu|4CC}&izMl8b z*ZaqPfv3@e*ex7+izd< zpRYXoukCdYtvGr7#$_kI|LXq5{ewdtjVJA%gUA1Vb-UX(}B)*rp~p?4oX za%$7!Ghb_1cWlnKqkE>jI(qV$U!1-At--O=2EOy$>C0~0`%=?{dsaSkd`{1&HvRkQ zpKY2ra^Twj)xW)S=gfi0V=vk9m!ICc_3|aVH*Wd(r0aHl)Y~5{Z{57)#Nm(q?oizU z(LcEU!=rY7bH<9vO;_ySH1!j^&bI8GFth%>#=ADmda!%@^>vp#*7fI!i+z}$*pE)*W_nC#q5B>b|*7h0SeqopW=c509 z`H|yuoBYW`T|3`<^!Y!Y+J5D>dnfKY^5hF!&&++j?pyEoKCyJ_%D1yh~F{SkQlv2$rQ%a@Hw~f)tOCy8wssE1Bl^6ZOYqVo$HpDcLAq@KzB74yZ%M^A>_%wb2AowRMIfQe>KF}>F zo!T-4`{bo&w(u%2SZ|C&oa@Z)D!a=y0YVIsj1ioTY1gn@ig9{=xX9#Bf5Cd_v z5DtPHC^wNQR&~N+($`%V;%yN@*ojYHS7s)mv$!>5Ix6 z7Awl*t<;ktsNTv4OYNg&jMNrdNfFa=>f*HC*(jZ{tJKU<`h0RvJM zjN;--XK6HxXcbe-z)loT`f%P%7u2#w#E|+R6H7=CDtEQBnwr|i0G6$3Er?@hG%XFn zc@wB;URtSAbB17_qI1+iKKj7VqA;m9Lr?>O-k8y(Q<53YMikGH3_-I5yu!E)Y=c7j zK^3h;E~+UKvT+eyOa+uq3#y!qhDUQmj#a}-X{}|_MjL6!fHunI`GSj;ieUcXEE9cS zX;BV|iV8}jqF28!K$wh7l-4Xf5wMIglvia3UL;dyv(&w~R6mXAD!{gk=MWorm+D7> zbiGYO_!Y}REv=%?(8@T)j`v5`dvih*RdaEO=GmLZrT@FP2O+S7p3Q5l)~ zG6an+6dUdl6k{64U^x_^n!5l&1vCYr2vTA#0Sc9usX0S%DbTZ!Xhz9n?Gc(sjmD%1 z0^vy8LS%?zr3{KFnMMi~L0(Wt8yCyDT5&3R4+r`{taDqS;b8X3`9PKPh@jMyA!ryG zG$#CvJK73(It^zC>Tly?q%WfUGe@KRqgu+(1A>MTx&X>=!XiAWm#i_!)b0#Hooa<= z9_fg!I7h@+9o)+gBp2!7qLybY+2{9fj;?m`F~ zSeggx1@%$@d#E%7h;@_|f{irICHS00CuSQ#^9yH=wBMDNkgU5x9dEOjMHur^==ad6Ry z)RrNb_gxI^MK7q&@D$qD)R!TcExe+m3$A1SsmUQ5gfVr?YLvZv+2PjPb45VvkxwE7g=}xU z4-w8D4w`lH0r^WzlDV(|mhVu&9TX40)#d5qq6kM2sx%ClD1GGnY^Dy-fye~4AZe2K zbFbnP@8@w=pq7X#b!P|`p6Dq^;z(m6+ja!B#v%=62tptEI_sDMsxQLxwz` zf6ICb++&jq#`Q5kthKKnl7eD-Xk`CkxPN=EU2Ie-vZ$tI?A2`2wc~J*aEP@63^ib z+mkd5i1eG5(nn_C-#no3_X=*Pyb+cUA;uXbN(qTEh=bK_wE@5veB%l7ro$?JD_Dx* zUO96sF%CfN`qB_&qD+WSJ~BtCz(%uZQN_}vm4IN@bL`JBG6z0`MGx##XNDl3a2?yg zYAfVWq%9uKA_n7u3_+s?J2X0qqw7($g^)_1dZ+OZ7eFY9d6h_^rT0W(iG80BsjUbC ze-5B}ORd<(UTUoI(Q#x5n#Wj`(v3Z?I~t()1Dz2%)pP)Ylr8k*!BcY@g^dYO4vl7T zsX0TiPXUF9UXO~Vj>IjEjspJUH9Ez3kL=(Yo|?{x8RoA{{bg*fq(!2 diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 457b037b806f9a6efddf1924681528cf90d19c15..f57e6d84cd1078d9984d2502dda0a839f7ed1277 100644 GIT binary patch delta 354 zcmZplr_er6VM8`!ed)a|$$iUO`Er6brzUJLchL?3HWT@A>ZOQ(N_QlHT`P&E6xt{oDRjJ@*r{R!&V_{N?-J;@=;4 zEk5aI*t9jp>xbiI{lm`!uINdzR9h`d5~R?2M1Ky7~C^;x*g6cF1+y6ibwz zrmNXnbozX%S?R|e>q4(To@bC&@m6G>74JWvIa6XcZM>BuD>V1$PyP+Q&fd;z|4)i2 z7l}S!p3BEO|LOG5)kMQr;$}C^-nR9xZn34)HJ`OQ(o6ThpL@Ii zx~y+mm*5)J;6wbg>LktDmC7a-_`g3AcmB=U`cu0XpZfdi(n-1da;aOrA}bZrZa3#f zY+EdHO4ok+%`1B!?+T6WuRb*6;nv`aS0+D<3xmo|9?RNX>QN&0-2Q+WuP*P_f8I&4 zfjPGKw_2LieA9pZh5zW$2X)OROzkF2j6e*cnSq!Eh*^P{ZMz8*`@PLP#zy9bCWhvw zmbwP!lP@xh@E92zz{R%PZDY@fa5ghBH8MA{a5Xn~bhb3NG;nsca5i%?buzRxbTu+F QHn&r-A*5vbOFj-c0P5b2r2qf` diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index 8fd97687ee5b050a6f8068f5be4319d9a080a846..316f4419a7f7cecea6731f590b82245e3018a26e 100644 GIT binary patch delta 26014 zcmai+3(RI!b%rwo<4-1_nGB_&3G!pgMQO{~=YC2wSKlqNjn*IAed+mXnPk8vyb9epMw;sCir~{w6^|-G-|J)f@ z?Eb;UA3p2@$3L-Y+jVzsKKK6pAAalJFYZ5f=jO?IfA_Z!Kk)RXJv;Ut`qspuFv_dRp|D-XT@mWSR{U;OExnq0N#@vFC7bmRv(aXQ^;@;;!^5ju_-*VaR*B$fbU%36D^B+3z?c1*W#I9zI@U(sXX%6cKqmqFTLkyuDoF115X`%{lCBF*vTEo-EzT&*;Le!|9I)e z`#-kt$=^Esj>|6m?T>$Q$L(hv{h8Zu`;B+5z4X6d`_7AB*n8@|_x;Lk=iT&^Z{GY; zegD?S-u~|U%O~D@$64Jyw>$-|#KwS4)PZ@A>9ec!zD z^S^iQjpfs?dh7o8p7yRQ4&8I@pY6P}`kU|k;PB&r`0al_wE4+B-#y{oY4dGq^Ctep ze-Go&;r!XcpI3Y)ZC=~|iJvR8ChMvuZ+|{(PR_EEU%P(V1=n2mhFv#azJAIZelgGT zB3llbo_p`wU+k>cv-oHI>h-Pt|72NHWJ*h2*C;JdO=q;SuBNB|_1ejk!v89h;bqHO zN^7#RP+HX%jeL)}Ws!7^tnS(wZL-==YFn9{WvMG|j}_n44_0+ybE~GUY+NTyPmpDu zb-50#^U?%amzj^NDj(M*AJ^8#Oq1o=L>F#S;{yvn>89*V3Qb)(t<~dkuaH(9Dv zn{wm2%^Op@wsdCN%0=BaB5EYvwp}^iF!JxRa>31#nJ#y(yP`G*yDF*pQ{K6LbhS&h zN@cws=RdqudDRMsSyttZYH-1^D>Ehh&9!=|)Me3_9+h2LFPWaqZ*!d|+ezq$YITzp zc1$c`3fJbTR6S~|#8$@}p0r)t=#D!qlb(Br&gcibu1(5d*L8(RCS^rc$Qmi^A8YjT zUx+KERA(Z>gbY*{QeGy#@2N;-Aq=LX&hn+GXOc!Nd9k8RdSjZ(F6r5&iu*2#2@Pc! zi!jwG>5enFG3{rRYJZj{MQI8WY^%bhqN!weEYc-C&s1i$9!VI=d3-qH>%`xcn%}ti#&x_R9zygI6W?-*Y@#nxPbxzRgRQTLhGjMN=B83V`1l;b1x-0|6Hri^QmzRqpyqM9hN%i2zqCdW8dx|6QSRTmI` zsaLVUzgO}-plwsmX-oW9fJ#&fMM^9^-boP-!D!fJQOp7;tjuJ2Dg+yZ{F8YnXth~0 zjHoIhm(dES~)$@8w3Ge#3QCtak-TU!{PvtW9O z|8ktpg1CTTI7&l4sQ*}lF=9E6(iSOmGu3%nDtMVN*})^=yA;J_oO`>xA_&qQbX=VlVe~?RCDvQrafww(vNh_;z&9l}`20#9xGsgkNrgliWcBZ+KIu`^pI;N06*G!Ehw8|8z#HNXXWn63i zk~ED*jO06#ZLT67o9OOvTNVjcM0mOr*i%fDRdFV=W5O)8uZ&yf5tm>LqWe75&8}Tl zk!R3Fs-m@pduJO5wz^@YP$cw4{#DhPxbV}O707_wE`=J*q0H2kUAu~8kealL_^wqj zR(3cu`5-P-4KZTL)Hia*m=&E%Hq&XuP0m2tXZ&K8WT#|5I;ce|aiC(s{4_5Np}49F@e3S^C1KbTbjNIheaiA4l;&QM_x z^D#gOGcZPaA9WoMWZ}k~6EUBLsu^*!DItj;OV%>izt#&7^wak}#>YuhIlTV>c+yUh(YQh+3x6b6dG zn-WWGG}50&19Suph!en~13SFG(pvZ4M1Gpr2|TQ*HUnIYtV6H7sIl+3OBymU zIa9m>3?V@)43aWeW16)aFi4m;8N%9dbPVJ^+Xpj??oJj-G04$Y#IgMv z1Mt+6s~1~ET+mcbYt4JZj7f`({vc&O!}jnp)}xSr2Yylo2}r8S1qw9t&|zD2$H-s= zkVC4($s2vo!4sJo%W4u4SSp1?ikT5AAm-md!Y-MWR9E1MvWVInY#JVEtP7My$TS;` z$V_RO)oqwdG(Q?QVH6-?ObnVCNop^ap-R{mMeEEZ`#f5N?_m(ddneNOoo2G4mZSF= z8uc*yAmORd5}69|Wy}qT5E`(wGmx64fn9(nh=mr7ncS#y#bkA&v4-Y=$v67KIbK;j z#e~VNdR8VUbqmnQWywxRYAS?e93hmAbIDK*!&LY7ZzUS?bZWWyV67MiOKmB%6j^0k zn0%5RT@HWCadYrQgiPv5xF*n5gG7Z4ImkHj@|ppNN}689peZz=k_LEH%_R8MyUpZE zp#%=1Q)C`AQ(%&$8WBXrEsnjH|H1=8tkhPM3_)PBEAFB*llL}Y z2%ac1CQS@O%gqE+W1Q}~AMj)Wd6atX6o{kLQ}bC%>@c^m8&2fyd#rFsAq$jep*mzu zto}$mQfq)8b!YW&jH41I!mWsyRA}V-M@TM|mk(wdb@IW+ZZ6~0zcH@TauEGImd&L! zh{g+pb=6JG_kc7teulx^+y_A3EPE8=RCQ{y4NhAWR#xB%4ylzHhn9It0C`OrLvvR_ zz+{#H6FFW3`7^n3DRhnI+8EcG8G#uyrc_*)&T(GRp$bdSfNYM7Q=Kjdje%~zpqX+t zT{S)7>ucM0%7)la%a&A-SYyqVvs7blv+26&Q%`X(Tk{7rquKUZ%C`@yRwUJy;2hb0 zOZ=j2q877~{or1bhvssPCzA}apa!+iG#-X#!5p;GHwSVYdfBVuUV%D-bh_;ydx5Laz=i6fqDZg7TmnaHLYio79Ha$H0C>|u@+h-I9SWRF zV%8RyY_fo+H3Al~Vl6aU&Bg~9w9y*9A*5lz7ioy+Y%-lSV;XpmTVk|Yqtd{In&jX_ zt5Y=p!@yjlNW@x9_xuy5Wp!7+v1n~rd6Xzg%LQkgg;CJRuq*EXNvBaoiE)F|ij8ZP z3A|}0jXt+RyO!wXp!}~3W5vZ_!yrkn!MHdr7U|SeM01FL5O8UWkWX=%c^=lN6^yWv za-s$fB8ANXhru8vEE8*w#dVw`9y(gA!;vP2d~Pt`xH@A(9Ide;1u})UNNswDT&7Qb zBQC$jo~&;f#OSioYz#b^Aq<)tLTHvyiT%tB%utewalYEeFIUCog zndeeqSqI~Kbs{aR@hAg3({0eCrjT+vHB1#DE))E7H_S$?kjSWNvcY5k*nq=OCqAcf z3ADy^8=C1hOq+GWGtH&2LP4xinJ!S%))o=guvSs#T4(`-tyG$X$HI`F2 zBn(#n8eK(ZOexRWErGVd!kv7NW}E^$ZXAX=Rc7LLk7MNHwIcY3Yx{EIl-19XEs8sj50$ECXo=|TPgK5i~GqUnhFlCMb4mV+D9GGc-k8bOG8Z(nrBsj< zg46A2RbLqNhDGAjF;tIBPuq_jU=<^UYZ}M!v#n-u{z@6542V^8O1?hoK z$-n3aak)Ouy6KrqB~9m2Kb_BAU3xUpTr)*?ySOxTID-xA$RfB7J0=2uY2V}01FAGc zrAe)_b0>s0@PcRt=*)bcg zs-?7+m!3ryXR^%2kcDs>@rE(eS<6WzQBC1Mk<;&g7o=rHVun-pls!@y)Y3avmTn*! zhs;dhd0VFCR(#<+B``!>(jzTO`5I=?>FUUc zWPn-ThWJjc1L#$I10tEGc`0bcL{m4>VrwRd|rs2{qqh=}k!Q->BGYq3kr?=)qq50X-cB^SY{Dh?dq1ii_ zpcy1!BjrRn#F5&q?@kd*gDtZ|TW){q|`9L2#X9PN+g^np*WZGWu^gTG?$V?Oyr z>W5D(Nyu>GtnqNH4#n&-EmqW^gLb5(W}eU`Vu}!1FB3Wc-Fhc zJ!sSfG8Z(fb9rkq1gSehc4(=>ZQ@ibnn1IJ5AZ!rcRjtfeN#2v^bnTa>`i=0ZzQi1 z=#o>`ylf8~H;l*JLeojCF>gH_%9HkB)z5eqVfqO(CMQ6(hQV|JEb`^cyaTjF^f;r1 zWse|28(^cGT@7rs6(~Z1W{oV-^{!SN8mShMAPi1-KEojpq{&~=+pI={R5Vsl#(|&J z&MZhf%u>$7Lm*MAXr8VHiwBr&g?bjT{)g!HR}35rkE~sP2=vcs z2v68cRbF;nl!T>9<0-4SSLRw>y@*a*wJboeiDupr0)s%5o zwvl>)99Qm@$+g*(2(aXX7`WQ>o!x1<0O`|VCd}{}b?lU0!5x6>=?RZ)5Z}ecQe;L~ zp4D4e%J5Ni?`bj~8VE^QqGx$_Faudc5TmCBP4Ns2TD~P{=0orkg97xdB^7iuzS8I- zlc{MchveDx1jF$tjjm(G^n~JoVErC1DO3uCn$)FbARpB3hG_lLdPZavdNDrhJef%g_Khb93liW(_y6X!dRaW}4}vkA&mhV7L{F_=Kek zXevfP$|mw2;)HN(WRDE+(2zW{5ks5L;~&j>VPHTqvPjgFRA*_%G+#%9iJdfE&!cQ? zZ}X#7+dfDdO{^X5(bhXa8?_Zeqm9~3FAuHkUeG6Y%J|wNt_Ee)%hwe3blYb+EnKe( zgG9d3z`n*iT598HkMMES_H+%NHT1OMX<<0D!bZ=pV_Q0q&GYh{+S~!(GlzWFEi5txA4}rbez3edk z3V-MbwbLgrp-~a{oL|ovEE0yJBb{utraRhqR}sYZ*JGn^=!U>|1nlFrppo1f(;~Lk z{V>kjf}qXq(cok#A=VZS0`b*w1v6?fnQJcqp^=drGe}Pm6^a2ZPKFk`ac#b*kp>sN zV=`86Fu5NG>N6VUe>qiNNNn`Ia=PhraXl12$MZ@PBnc}kh4AcDQ5A2bDQOCuP}K3o zbIlpXc+D!@0CoD~37TZ5Cmev!Mw0>b2HX1!K0)q8)+d2v;$)oG4Vk+vQY|7Nu;d)n z4V8uFTT_-Wk-ji}Kf(;-v@eB)4REnAS%$&fURmh5)1ow!SGApaX@}={of@eaXUalA ztw9WPF?)lBL(xDkbYUnl+Tn!8WOaD}e0$jzpx@Mq=2TZ5`rv14OkX~@b|lX~d_{Zv z#@8)wf(D>7ZmG2hjd9xl#oTs=?1xIgJ<~XYf!3kMAioieGLyZlF^5Z9Nq3B12-ILOd zKF%#GXw4V42VSh(<@!T*jKago?m&}%#w5&j9N^d_({?y^`5xnz>6E2iB;#%NlgZOZ z{~J?H=EuHKIiH-X^R%j2El<_a6~Qv6U~70{3IXwwNd_Wt^IK#L&7_l-G;_nc+9O4i z;Ttws#SEv21wWI5yZF>tBK z3+1BnIiB3lwLTK&QodIy03wuzYIPIUOu7{}m~4HYFimJ{i`Xw4z>J0W%w7Jf+%g%% zz*hUgpmpZ+spo6s1^H=v!T^nP5(cqe61PndHBVl3AZ=OZkHT)M;bfd$Px{8pm=Xxu zMi^JuQf!AA`>Ck-VFOLAG7c{)yQA67-~c9I0|r-JC5uN|nsZvzgTwv}P<<4WRSFx_ zM50`44Mau5Z9Yud67KZ2mjU<=-8l*5Vd zLUWafr#{LPIe$|Lvd+3Z1-n@jD4McF6vSCt&thSAB#ZDu&pbM}UJH%PrP63~NpB8l z@xwgv6JFD8TM&k&J`gBfG=uT8;Yq7Oe1e7$8ApSy8+|f(b`^Lg+zWCjj25`08|O#U zG{woni=UNQ36kuF;V-&r$4Iu{H+F2mbX;4~(Ze5(>Z=_rVn0*{jh_b?OrFiP?&HY) zX>SoUd#ld6{7R+5Uad!iRK++nt{eN z)k?e69M^DeuR760?~@6&L<)@aivfJG3*>e4c#5l)L1-YZAve9axaf9*#DcmA%{w-( zC3mOdkJkVu1$uI3>NG^WQRUPfQ}6W;S{Dq3U8{tX@TeUH6HJdTAM$7N2HuXMoiY=@ zf2KR(mw3#kGR{yAbrMVO(1*=$YRQfnXt^PNOTq9ODP!{(l$q_8;&{zE5SJ{H{wu`G zKy4+ZL6=8*!XQ8TJ?fANonf5a`VAg%mvM2%x&`8m4tJ9RxybQAjtO72!8nsl-%w*r zTTzO23F8#;Mq$<#@mdO#t!;xo3Ht>sdP}i1!VH&WshHFAzPh$`V!y``&#%qjQOopi z(LAg=SrM)2rQsQ}r3jD^ zYR}wpPPwBy=d7$di;k4;oa`LlqBdt1^;ylCGOV delta 26139 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 F{Xf}y32*=a diff --git a/ReadMe.md b/ReadMe.md index 4bf64341..47ed488f 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.2.1 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -27 Mar 2023 +07 Apr 2023 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 2581f30c..0ecab61b 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -27 Mar 2023 +07 Apr 2023 diff --git a/Source/ver.inc b/Source/ver.inc index 8d5d1e1d..8544ded2 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-dev.4" +#DEFINE BIOSVER "3.2.1-rc.0" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index d0dd1e05..64ee98f1 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-dev.4" + db "3.2.1-rc.0" endm From 53e201bd28f8e768035b09c972467a0a63fb48bd Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sun, 9 Apr 2023 12:48:36 -0700 Subject: [PATCH 14/17] Handle Overflow in CPUSPD Edge case where the CPU speed detection routine would overflow in a fast emulator and return a speed of 0.000 MHz. Modified to fail back to the default CPU speed from the config file if an overflow occurs. --- Source/HBIOS/hbios.asm | 21 +++++++++++---------- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index d3fd2e56..1a221d76 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -1908,7 +1908,7 @@ HB_CPU1: ; LATER. ; CALL HB_CPUSPD ; DYNAMIC CPU SPEED DETECTION - JR NZ,HB_CPUSPD2 ; SKIP AHEAD IF FAILED + JR NZ,HB_CPU2 ; SKIP AHEAD IF FAILED ; ; RECORD THE UPDATED CPU OSCILLATOR SPEED ; @@ -1921,7 +1921,7 @@ HB_CPU1: ; LD (HB_CPUOSC),HL ; RECORD MEASURED SPEED ; -HB_CPUSPD2: +HB_CPU2: ; ; INIT CPUKHZ BASED ON OSCILLATOR SPEED ; @@ -6299,14 +6299,15 @@ HB_CPUSPD1: POP AF OUT0 (Z180_DCNTL),A #ENDIF -; - LD A,H - OR L - RET Z ; FAILURE, USE DEFAULT CPU SPEED ; ; MOVE LOOP COUNT TO HL PUSH DE POP HL +; + ; CHECK FOR OVERFLOW (NOT TICKING) + LD A,H + OR L + JR Z,HB_CPUSPD2 ; FAILURE, USE DEFAULT CPU SPEED ; ; TIMES 4 FOR CPU SPEED IN KHZ ; RES 0,L ; GRANULARITY @@ -6367,12 +6368,12 @@ HB_RDSEC: LD A,E ; VALUE TO A RET ; - #ELSE +#ENDIF ; +HB_CPUSPD2: + ; HANDLE NO RTC OR NOT TICKING OR $FF ; SIGNAL ERROR - RET ; NO RTC, ABORT -; -#ENDIF + RET ; AND DONE ; ; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE? ; diff --git a/Source/ver.inc b/Source/ver.inc index 8544ded2..703a4e69 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-rc.0" +#DEFINE BIOSVER "3.2.1-rc.1" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 64ee98f1..def1da94 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-rc.0" + db "3.2.1-rc.1" endm From f640630a0676072a74d118a3a4bf27fdb988b979 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 10 Apr 2023 16:20:12 -0700 Subject: [PATCH 15/17] CPU Speed Calc Tweek - Exit CPU speed detection routine earlier if the clock is not ticking. - Fix minor regression in the SBC_simh.asm config file. --- Source/HBIOS/Config/SBC_simh.asm | 3 +++ Source/HBIOS/hbios.asm | 10 ++++++++-- Source/ver.inc | 2 +- Source/ver.lib | 2 +- Tools/simh/Sim.cmd | 5 +++-- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Source/HBIOS/Config/SBC_simh.asm b/Source/HBIOS/Config/SBC_simh.asm index 2ee17a8b..328d6eed 100644 --- a/Source/HBIOS/Config/SBC_simh.asm +++ b/Source/HBIOS/Config/SBC_simh.asm @@ -30,6 +30,9 @@ INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 ; HTIMENABLE .SET TRUE ; ENABLE SIMH TIMER SUPPORT ; +SIMRTCENABLE .SET TRUE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) +DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +; UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) UARTSBCFORCE .SET TRUE ; UART: FORCE DETECTION OF SBC UART (FOR SIMH) ; diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 1a221d76..e40a1533 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -6286,13 +6286,18 @@ HB_CPUSPD1: #ENDIF ; WAIT FOR AN INITIAL TICK TO ALIGN, THEN WAIT - ; FOR SECOND TICK AND TO GET A FULL ONE SECOND LOOP COUNT + ; FOR A SECOND TICK TO GET A FULL ONE SECOND LOOP COUNT. + ; WAITSEC WILL SET ZF IF AN OVERFLOW OCCURS (MEANING THAT THE + ; CLOCK IS NOT TICKING). THERE IS NO + ; POINT IN CALLING HB_WAITSEC AGAIN IN THAT CASE, SO WE ONLY + ; CALL HB_WAITSEC AGAIN IF ZF IS NOT SET. CALL DSRTC_START CALL HB_RDSEC ; GET SECONDS LD (HB_CURSEC),A ; AND INIT CURSEC CALL HB_WAITSEC ; WAIT FOR SECONDS TICK LD (HB_CURSEC),A ; SAVE NEW VALUE - CALL HB_WAITSEC ; WAIT FOR SECONDS TICK + ; CALL HB_WAITSEC AGAIN, BUT ONLY IF ZF IS NOT SET + CALL NZ,HB_WAITSEC ; WAIT FOR SECONDS TICK ; #IF (CPUFAM == CPU_Z180) ; RESTORE W/S SETTINGS FROM BEFORE TEST @@ -6323,6 +6328,7 @@ HB_CPUSPD1: HB_WAITSEC: ; WAIT FOR SECONDS TICK ; RETURN SECS VALUE IN A, LOOP COUNT IN DE + ; ZF IS SET ON OVERFLOW (CLOCK NOT TICKING) LD DE,0 ; INIT LOOP COUNTER HB_WAITSEC1: ; diff --git a/Source/ver.inc b/Source/ver.inc index 703a4e69..9116b4a7 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-rc.1" +#DEFINE BIOSVER "3.2.1-rc.2" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index def1da94..394a574e 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-rc.1" + db "3.2.1-rc.2" endm diff --git a/Tools/simh/Sim.cmd b/Tools/simh/Sim.cmd index ba1c2f70..3e501ab8 100644 --- a/Tools/simh/Sim.cmd +++ b/Tools/simh/Sim.cmd @@ -2,8 +2,9 @@ set ROM=..\..\Binary\SBC_simh.rom if not "%1"=="" set ROM=..\..\Binary\%1.rom if not exist %ROM% goto romerr -rem start C:\Users\WWarthen\Bin\putty.exe -load "SIMH Telnet" -start /w altairz80.exe sim.cfg %ROM% +:: start C:\Users\WWarthen\Bin\putty.exe -load "SIMH Telnet" +:: start /w altairz80.exe sim.cfg %ROM% +altairz80.exe sim.cfg %ROM% goto :eof :romerr From b5437c56e906b16cb571b5a7c12cacc6ccc54b33 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Tue, 11 Apr 2023 13:09:22 -0700 Subject: [PATCH 16/17] Suppress Serial HFC During Boot If serial hardware flow control is enabled, but not working, then a system will appear dead because it won't send any data to the host computer. This change suppresses hardware flow control during boot just to ensure that boot messages can make it to the serial console. This will only be effective for serial interfaces that support dynamic management of HFC. --- Source/HBIOS/hbios.asm | 49 ++++++++++++++++++++++++++++++-- Source/Images/d_zsdos/ReadMe.txt | 2 +- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 4 files changed, 50 insertions(+), 5 deletions(-) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index e40a1533..536eda5f 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -2274,6 +2274,29 @@ HB_BOOTDLY: LD A,BOOTCON ; GET REQUESTED CONSOLE DEV LD (CB_CONDEV),A ; SAVE IT HB_CONRDY: +; +; MOST SERIAL PORTS ARE CONFIGURED WITH HARDWARE FLOW CONTROL ENABLED. +; IF THERE IS A PROBLEM WITH THE RTS SIGNAL, THEN OUTPUT TO THE CONSOLE +; WILL BE STALLED WHICH CAN LEAD A USER TO THINK THE SYSTEM IS TOTALLY +; DEAD WHEN, IN FACT, IT IS JUST WAITING FOR RTS TO BE ASSERTED. ALSO, +; IF THE USER IS BOOTING TO A CRT DEVICE AND DISCONNECTS THE CONSOLE +; SERIAL PORT, THE SYSTEM WILL WAIT FOR RTS AND NEVER BOOT. SO, HERE +; WE SAVE THE ACTIVE CONSOLE CONFIGURATION, THEN TURN OFF HARDWARE +; FLOW CONTROL. THE ORIGINAL CONFIGURATION WILL BE RESTORED BELOW +; PRIOR TO LAUNCING THE ROM LOADER. +; + ; RETRIEVE THE CONFIG FROM THE CONSOLE PORT + LD B,BF_CIOQUERY ; HBIOS QUERY CIO CONFIG + LD A,(CB_CONDEV) ; GET CONSOLE DEVICE + LD (HB_BOOTCONSAV),A ; SAVE IT FOR LATER + LD C,A ; BOOT CONSOLE TO C + CALL HB_DISPATCH ; INTERNAL HBIOS CALL + LD (HB_CONCFGSAV),DE ; SAVE CONFIG + RES 5,D ; CLEAR RTS BIT + LD B,BF_CIOINIT ; HBIOS CIO INIT + LD A,(CB_CONDEV) ; GET CONSOLE DEVICE + LD C,A ; BOOT CONSOLE TO C + CALL HB_DISPATCH ; INTERNAL HBIOS CALL #IF (WBWDEBUG == USEMIO) ; OUTPUT ANY CACHED DEBUG TEXT LD HL,MIOOUTPTR @@ -2749,11 +2772,30 @@ HB_WDZ: LD A,(CB_CRTDEV) ; GET CRT DISPLAY DEVICE LD (CB_CONDEV),A ; SAVE IT AS ACTIVE CONSOLE DEVICE ; - ; DISPLAY HBIOS BANNER ON NEW CONSOLE - PRTX(STR_BANNER) #ENDIF ; INITSYS3: +; +; RESTORE BOOT CONSOLE CONFIGURATION +; + CALL LDELAY ; ALLOW SERIAL PORT TO FLUSH + LD B,BF_CIOINIT ; HBIOS CIO INIT + LD A,(HB_BOOTCONSAV) ; ORIGINAL BOOT CONSOLE DEVICE + LD C,A ; BOOT CONSOLE TO C + LD DE,(HB_CONCFGSAV) ; SAVED ORIGINAL CONSOLE CFG + CALL HB_DISPATCH ; INTERNAL HBIOS CALL +; + LD A,(HB_BOOTCONSAV) ; GET ORIGINAL BOOT CONSOLE DEV + LD C,A ; PUT IN C + LD A,(CB_CONDEV) ; GET ACTIVE CONSOLE DEVICE + CP C ; COMPARE + JR Z,INITSYS3A ; SKIP AHEAD IF NO CHANGE +; + ; DISPLAY HBIOS BANNER ON NEW CONSOLE IF WE SWITCHED TO NEW + ; CONSOLE DEVICE + PRTX(STR_BANNER) ; DISPLAY HBIOS BANNER +; +INITSYS3A: CALL PRTSUM ; PRINT UNIT/DEVICE SUMMARY TABLE ; #IF 0 @@ -7269,6 +7311,9 @@ HB_CURSEC .DB 0 ; CURRENT SECOND (TEMP) ; HB_BCDTMP .FILL 5,0 ; BCD NUMBER STORAGE (TEMP) ; +HB_BOOTCONSAV .DB 0 ; INITIAL BOOT CONSOLE SAVE AREA +HB_CONCFGSAV .DW 0 ; CONSOLE CONFIG SAVE AREA +; HB_WRKBUF .FILL 512,0 ; INTERNAL DISK BUFFER ; HB_END .EQU $ diff --git a/Source/Images/d_zsdos/ReadMe.txt b/Source/Images/d_zsdos/ReadMe.txt index f14d7c3b..9d19b002 100644 --- a/Source/Images/d_zsdos/ReadMe.txt +++ b/Source/Images/d_zsdos/ReadMe.txt @@ -45,7 +45,7 @@ an equate. Version 1.2 was never distributed and contains only a few minor fixes. Unfortunately, the use of v1.2 would make it incompatible with many support modules and overlays due to their reliance on hard-coded address assumptions. This is probably why it was never -distributed. I encountered this myself with the date stamping code –- +distributed. I encountered this myself with the date stamping code -- it won't work with v1.2 because it does a version check. For now, I have chosen to use v1.1 to maximize compatibility (seems to be what everyone is doing). Ultimately, I may go back and try to rebuild everything in diff --git a/Source/ver.inc b/Source/ver.inc index 9116b4a7..2898a7f8 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-rc.2" +#DEFINE BIOSVER "3.2.1-rc.3" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 394a574e..3b1b8da8 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-rc.2" + db "3.2.1-rc.3" endm From 2681b84a20c1c595f330d96fa73e1cb220a0a71c Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Fri, 14 Apr 2023 18:10:24 -0700 Subject: [PATCH 17/17] Finalize v3.2.1 --- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/ver.inc b/Source/ver.inc index 2898a7f8..590006df 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 2 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.2.1-rc.3" +#DEFINE BIOSVER "3.2.1" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 3b1b8da8..4e4d6cf6 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 2 rup equ 1 rtp equ 0 biosver macro - db "3.2.1-rc.3" + db "3.2.1" endm