From 980eed4c88cb4b6b4bc0c7889334b4ca41168ad5 Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Fri, 2 Apr 2021 01:16:47 -0400 Subject: [PATCH] rearrange functions again --- bin/driver7M5.bin | Bin 1507 -> 1591 bytes bin/rom8M.bin | Bin 8388608 -> 8388608 bytes rdisk.c | 19 +++++++------------ rdisk.h | 5 ++++- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/bin/driver7M5.bin b/bin/driver7M5.bin index 743a23b08a6a0c4be7c33de93dbb1a63ebfc362b..7e8613deef36f2e78e0f7183c72a0081c4264b8b 100755 GIT binary patch delta 311 zcmaFNy`5)5AYU|msh`fkFsI;sf|{2W19Q6bHz387_CXP3D2DL8Q7iQGqC&Z zbZC_eaB@(IkLdR+1u0JZlyCy9>5zdI1CPf6gBk|*1^NkFCZAxD58UJWia|}$i$Nw~ z6UfALF2x!K1{Ogee-W4^0A$Sov1}NCtUl2i21W)s;~EAz1|i_@% diff --git a/bin/rom8M.bin b/bin/rom8M.bin index d17ff5e565363b485766cc742e40299f44152bdf..c6835323222bf03accb1e239e198ace0b257071b 100755 GIT binary patch delta 827 zcmY+;yHAr*7{~Far7tbDDj*0Vz1Ir$(qg@!AilJsSh1FiNWD=}TR|;V0dG}0)VPUT z9UP1cNhf2PG$sy;i<9vWa5N4s7-L){soz!?bMkr4@0>j6$;o6gx=dMClhtOcvbuuu z&a8>&mdr|rW~KPktki3?&PdTT=z`binv{mZibz5<7T1ukOh$Qa zN^Y76YcnFH(x;5C%TOKuEn107Ph}+~Aanon-<$tyUh-0qk4))JjF{9KZ$ji*YB}Z( zd88^4{Kck?f45DE?Pd83Ujtsz2bV=3eyu*VL;|X7d~6{+TW*g3h<&I$TJm|s)c@9( z7X5Q?tdQ$;DAvI@ec!}w4@qn6Re5B>Xitmi>Nvlsq*~I`a_Sb+qEkUN^e~_XMy!GftFZ=aQHwg%V;vgMi1lbfGd7?F z8_^0gEU>}`I~;Jrg-vi{GuqG&54K<{wqZNG@Sy`c;Kxqv!fxzAC-!0=y3mdN=)nP~ z=tTfQ97G=u;V}Af1R)&70FEJyflIHzZV@o|Nrlt^Z%bjB4JCIl1kE&v?gtf>U*c+ znEl{Xo0R#bKTg%5SlsJNSuXXZWm?Pej7j0*x`-k2+0*N*l~TJd#Z*tDUQ(tJiaNLz z!_TQ2t+8Jbkrx?y`iI#a`rZ9qsw;z17I9N|87+1_TQf$}nx>*-nQCzab`v1Yd`3j#bMvl48R=~Qq8!4ak zn%9byH^-%1+~yY1E5zIqc@|sqglE^>>c>8>ramdisk) { - RDiskPatch_t fun = P24; - if (!dbgEN /*&& *RDiskDBGDisPos >= 0*/) { fun(c->ramdisk + 0x00000031UL, RDiskDBGDisByte); } - if (!cdrEN /*&& *RDiskCDRDisPos >= 0*/) { fun(c->ramdisk + 0x00012CAFUL, RDiskCDRDisByte); } + if (!dbgEN /*&& *RDiskDBGDisPos >= 0*/) { patch24(c->ramdisk + 0x00000031UL, RDiskDBGDisByte); } + if (!cdrEN /*&& *RDiskCDRDisPos >= 0*/) { patch24(c->ramdisk + 0x00012CAFUL, RDiskCDRDisByte); } } // Unmount if not booting from ROM disk @@ -234,15 +232,12 @@ OSErr RDCtl(CntrlParamPtr p, DCtlPtr d) { switch (p->csCode) { case killCode: return noErr; - /*case kFormat: + case kFormat: if (!c->status.diskInPlace || c->status.writeProt || !c->ramdisk) { return controlErr; } - long zero[32]; - for (int i = 0; i < 32; i++) { zero[i] = 0; } - for (int i = 0; i < 32; i++) { - copy24((Ptr)zero, c->ramdisk + i * sizeof(zero), sizeof(zero)); - } - return noErr;*/ + char zero = 0; + patch24(c->ramdisk, &zero); + return noErr; case kVerify: if (!c->status.diskInPlace) { return controlErr; } return noErr; diff --git a/rdisk.h b/rdisk.h index 3983a5b..0812bda 100644 --- a/rdisk.h +++ b/rdisk.h @@ -35,7 +35,10 @@ typedef struct RDiskStorage_s { } RDiskStorage_t; typedef void (*RDiskCopy_t)(Ptr, Ptr, unsigned long); -#define copy24(s, d, b) { RDiskCopy_t copy24 = C24; copy24(s, d, b); } +#define copy24(s, d, b) { RDiskCopy_t f = C24; f(s, d, b); } + +typedef void (*RDiskPatch_t)(Ptr, Ptr); +#define patch24(d, s) { RDiskPatch_t f = P24; f(d, s); } #define PackBits_Repeat(count) (-1 * (count - 1)) #define PackBits_Literal(count) (count - 1)