From d642756985aa5af4aea3a73059b1eef406a7b6d4 Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Sat, 3 Apr 2021 09:21:59 -0400 Subject: [PATCH] Fix disk image patch bugs --- bin/driver7M5.bin | Bin 1921 -> 1905 bytes bin/rom8M.bin | Bin 8388608 -> 8388608 bytes rdisk.c | 28 +++++++++++++++------------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/bin/driver7M5.bin b/bin/driver7M5.bin index 473213c99c1b79f350d6ee7ffd435771a7848843..f95038261f66aa1394b06928f327802e8d1ca8a2 100755 GIT binary patch delta 796 zcmZ8eUr19?9RAMT-JCk?CewkM+^wN=b93N>GbFBanO(-%BBKY1Yvks?U`YNcMpJMq z7EHKdF(fWNl`oN$5CjhCDIrQUdI;8oV2Y5vh=I7yo%&!L&hLER@B7Xb zT9cZ21?Rg%i~#+myaRj$m=`C*G;X8=?}bF=qO}jU6Gz#JBPEVgN2=5T=c!B7(w%c& z2Q;FNYO~R0f2QN$mOQNCE*4jS(SgweBm(lGxDM57%`x(jJR&1RLY9#iH0B1oI2l2< zcjHi)0&Ixv|9vT<)7HDkk;Z;T=bR!Uaz$CG;i_c z>N3*Y?dYb2BX{&OjrQm|jaD!1<;WixoV@M}4)omX0z%2QEzV=@fl-{My|>Dv+M4(T zF6YK9ym)bfk27cE8rJXw`vw8ck(fcqucJ@=G5T9-746VO_Gx6od*TB9v>oqjaC90) zk6|(FigI6)N_!QatzP>}zt9-fTUz*D@LyL0PlJ!+ONa4;@UBqFeq4qQ&UA delta 826 zcmZ8fUr1A76#sp9cXR5^miUKk$#o2!Zq9)ZPOx#EmUbCqN?LJ_#v6rw_VT@OKMQPzVPNbB5de;_{Y;r!0|edjypckZ{M$%C_9 zjppp*hgkwN5TLYDq=-{I2QRyYKXDh>Ne{u+^de*-KdO#t*X6T zefjrdKO5y3*k-1wwLpS(GtW>w=#*^au*`IFujX{z#)Ga*eKy(M;pXKN%l4Rq%> za*1v@g$axU!|l!?i1JkhSd=fvfQMyncs4TOXH+9CJkU9C4p;tVEyyWi-6K~0#wWP; zd9sD>F9qE&$>!KG;BI^+lS7hz+ zb+Tnaec(WN>`HfgWMuGMKhQNpzlGm9h!TAxET9gUYY(IlFwPAGF|TUo!^r?v>8#_6 zAfZ(m6{P$I(*H&LYqVXiqXBowa)_ zBdJ=NfEA{H1j;`@z6EcU414sk-i%UEl>qodgf+vnkvFe6U0Ed{Q(14>Iv9V!KJJ4(mc+0`<~+;q-kO3S}##lhID zYfZ{nrU||kXPD8m$z3BqWKhD$@zX zTZP!S@>I>7G(w*34(E2qtdc{=Y^9I<54#i&PhJW8$f%f6yPUciT{^ygR9hA}epk7R z3}!M|h**-?_vOvhpl>_P&av}slBu+5(4210-Rf1Qle9T}YeT+BR9rspkf{j`N0b~Y z6aTCDQ8}rYwXB<~YCEj&&eNeks$`P}4+*2h|8Y@lBHs34@e7HWyaAGIQ(Gfi(`yS; z+9K9AazaE~cXO>}KMJM!K2a9*iFT12=;g#nK7f_R1WUe8KtYTY_h!f3iPUYC9t2ar zAbL}ah*B6I^dK4=pFR|cj}4s~AnKjzS>{915ZRSWIDl^Lp2#(3F3_Ihb(zBS`F6fF z^JrY41^SEDY%+Bw(>A%Z87KWy>aNEHq4|XMFn@a>z{I4_l zzIxK;5B!TiX-`?iE@7C2-{xbV#y`q@vyoX(tcK<2lFJgGiH%S2zt5$H7K28RVtS7MV;HX|j;`mUX(H23jAx4( zkL(jY>mX$8g2qc+RmrG+f}4ZdZi&08%^z%cX@T#KJvMEv6hV1ZJwLK)aV@7V#5 z0}nf)9G(C>R6r#-;7NE2oKOWWsD>J-1p(Y3!Y+`Y4(g!+JkSVU@Ie#!App$~gr{LQ zw7@g)EIbFT5P~*nhv%UKUVuHY7i8#!Fmyo#_CYu7haNZp3cLtWI0!L#3F6QThu~#6 z41I6}UV)=<3|@uT;5fVvC*TcGp&w4doA4G4Kmw952tzOoBQOf5;B9yZQt&Q}!FzBT a#$f`^z$Bc7bMQW-;R85-!&;YF`}05QyKCS8 delta 1348 zcmZ9~YfKzf6u|K_%ML8CZMVq7QXaF@k=OE4R6r>m7Fy_t>w-nA*1D+dltSx@P_eGE z>NaiEh=~nrj2||QF}0d#NMoaEQv7IZjGAIh{6IgLm{y~$F$5DL{%7kWF_YiTeVn;- z?zxjlB-{x{Qc1d!SxNV4^|SJp`TnIW2~G9=C=0`)TyjPc{rX6CJ0tHtQKU4w{-2m^ z>&)-v>X@Rum5NlV!}+UK;j(~KL`6BD`l3>8DEY0RO__8lqFi2R?aDL7b9tdx392cd zrWPs7sVYrvn`!JYk5s&9#LXk+Z)&}v*Q-r2GNZTu9@S_8F}w+x78&m`#zeDTwna`_ zFGWQ@C=N*d;zH;X_L%p+@5G2PUh!|#2`fp|yF@iC{vz(q@cGp>r!rXX-m$tzDOt&dl?g1Z6Je+oEoo>6G(47v&eP zDP8uY*UW9=7S6_gjr3S`oN}4g6}@Vm63xC6{7}5`S#93=Xm-r|)ogkwbz$cp+;U;e z^Ty}ee$l?Z5IP=y<>S?vmFUkwvwx{f!d#%USM+M+WMGmtq=(nUS@{yB_o#&5>xHmFRXL>$*b55^A=)F2;sGD;p zoFc6qOzDPt?&vi`MK*HaK`!!;4=>hXJvP9HjVQnkC`1v8QGy$>38mPKGL)kNmC)da zjx8{76RJ>+8q}f=0o0=bjc7tMZpJNW!L7Irx1$wpXvZD66CK!!PHcmTE(Fny9&E=B z^r8rsL93zOr#y*T< qKgKYQ12~8$5W|z0z*CsS6b|8OOye0G#dbgDisPos); - peek24L((long*)0x40851D9C, c->cdrDisPos); + c->dbgDisPos = *(long*)0x40851D98; + c->cdrDisPos = *(long*)0x40851D9C; + c->dbgDisByte = *(char*)0x40851DA8; + c->cdrDisByte = *(char*)0x40851DA9; // Patch if (c->dbgDisPos < RDiskSize) { - if (c->ramdisk && !dbgEN) { poke24(c->ramdisk + c->dbgDisPos, c->dbgDisByte); } - else { peek24(dbgEN ? - RDiskBuf + c->dbgDisPos : - (char*)0x40851DA8, c->dbgDisByte); + if (c->ramdisk && !dbgEN) { + poke24(c->ramdisk + c->dbgDisPos, c->dbgDisByte); + } else if (dbgEN) { + peek24(RDiskBuf + c->dbgDisPos, c->dbgDisByte); } } - if (c->dbgDisPos < RDiskSize) { - if (c->ramdisk && !cdrEN) { poke24(c->ramdisk + c->cdrDisPos, c->cdrDisByte); } - else { peek24(cdrEN ? - RDiskBuf + c->cdrDisPos : - (char*)0x40851DA9, c->cdrDisByte); + if (c->cdrDisPos < RDiskSize) { + if (c->ramdisk && !cdrEN) { + poke24(c->ramdisk + c->cdrDisPos, c->cdrDisByte); + } else if (cdrEN) { + peek24(RDiskBuf + c->cdrDisPos, c->cdrDisByte); } } @@ -277,8 +279,8 @@ OSErr RDCtl(CntrlParamPtr p, DCtlPtr d) { !c->ramdisk) { return controlErr; } long long z = 0; Ptr pz; - if (*MMU32bit) { p = (Ptr)&z; } - else { StripAddress((Ptr)&z); } + if (*MMU32bit) { pz = (Ptr)&z; } + else { pz = StripAddress((Ptr)&z); } for (int i = 0; i < 4095; i++) { copy24(c->ramdisk + i * sizeof(z), pz, sizeof(z)); }