From 40007cfa47bb3e7d72d2d255799e1c97cb990555 Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Wed, 31 Mar 2021 19:44:41 -0400 Subject: [PATCH] 24/32 bit fix in RDInit? --- bin/driver7M5.bin | Bin 1823 -> 1869 bytes bin/rom8M.bin | Bin 8388608 -> 8388608 bytes rdisk.c | 12 +++++++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bin/driver7M5.bin b/bin/driver7M5.bin index d50fe62968354899a1651cc248faf541003328c8..04330d6888b5b5451ba2a544ff69c121af0f3ee1 100755 GIT binary patch delta 598 zcmZutL1@!p7=2%oX{NE1QATOE`t!5Fm?Ir{DLafT8xlh;DhxdgiBpm?b_lXbg~FnA zFuhm^j3J6Sco5k|3!*2hcvZxD@HP>_i=fC33bOiV?U)CT?|tumy!Y-W-X!X0jz2AK z$tW#bU(vh>(qrWC4w83bq?JL)xQRVYPw{bWkPbf_I-MRx&IP5zO&TfCMyfzdk_76{ zBO}RB#OWEkW~>fw*!6QwE3ld~fvMOr|3J+{M#cl(2{kFba_9ier@di6T+ z%636}B1Gl!Drr2)r&@p7YXB>d`g!d@04QiQFPV*(mnYfH;geu~#WGmc5SmCgMm?(RQauWl=zA`EgkAP-1%E1Zydffh!_Fr?K`0Tw}X{1}q&YufcL zF7}P#phl2f;1^#6>x9L}ur8li!Kb8{K?UHcsXVd{b}sZo%pwVnyuO%=$GS=t@=09h zP086dW#{LW7%dG~A^L%x`faS{QgJW7%XHe6*8ktGwBBtO-jj}$#h*>q8_jZqDQvp* zJpSaMofDyD7wxmQSje5U18;)u#XrOpJ{{>o#hDt-GU4R=&V>J^xHXqPf4j8ozi_tw Vx6Tj$gY&I1u4IX#MzNca@Q1 z^d7PTt5H3|K9)qodk9Q<>!w|6Bi8G zW#cF6Ga$(pvP2uPZ!M(FgCJrDI-0K7hhiVOUx+^o4915r12}1CQFop^rR4> z42m3S{Efcew{4cE>V{|3$GnVUN*;gJ6c{27@Y~mDIA`vHw#>lT z*7l_6^KhPMA}Ai8|7(^2o+fIebjJe})atX5+QD28f7ky6++8trp4X+OlFST%KFnhb zQU8=B5~kw3mJ~CY{mT6^aq%+zVl%rOl)tI~95s|e)I#%~Utqn-W*|eYKN)6SE)q%d z{ygNh_I`2Ox36Tk8;_G2r&Rh2?!H%uAC9x**`JMKPEaRa{@B(rrN9OQ ztGk*Kk&x)qN{kPE@PRBm31OH>9EN8@m=7jCV2p_`Bp9*>O$hUQ?T9}3@Oe1rcg`>8 z9M^SC*Hcm@qvR`@m#k~ywU^Vke3BVY{w}k7MMb^Hv8$2qz83}ZqNF)n_n^i~&&-Fd zuv&gTvLo0ftyxjQa!Z@l8B^yPV`|JWL^btDv*8nyw=4QY{8ac{>hoQ*NjEt=;3mwJ zm;cJ&BR*-)iTa{kY_o!sZABT7P-FbWLT*j%!o*XTI^i za%7>EseM^l*qP!;+1`|!+oT`Nzf7BUeUGnIBLq*P_*TicpbpInVtSc0YSqXx^c90Am#4iBLo52FE(pb;z3ghvs? zV`xSQEeN9(ZO~|kjmHr|2cE!6bmB>LVHLWu8d3CM4W7c&Sc_+{4(qW2F>J&pY{nKm zi(Wj3IQo!4KL+qTw&DdOF^CklA&u?G;6?1fOW28*@d}3UDt2KvUc>8n1H*U|d+-(< z?8QFp#{s;JEON->9gN^0M)5A*!yy!K7)NjvV;ILV9LEGs;3VEh5g*{gnX8e>{-6H_ DRFrz{ delta 1056 zcmXxgO>7fa5Ww+SuNMrMG|-R+C$?V}r!^sUQV7L-6pRy6vjmr~@Ku^DklGXib<+d_ zxM5p4s^J0$ggIKhAVr)2DFRh(Kpc9CD&W=wC_+L)hyy~XAcXrjX%4@qnRzpsed{=m z+bPRwIaf~4xo;S^{mb&54|PcnCZ5Rne$gW3%r>Vo{qJ(-JtUg=QWeuZMquov-|%a5 zhC^Fw8YPetEnlb$8sVrstBPs^E|+N4&Ej+E;^xk)PR2(3m#quC#uH9ryxobrE$Z^G zr&)CIrA3|>vO%M!+Zq)$)sy%oap$g+9@zXkHWH|^qTXwC{oaz*yk@1j{{GuiUPMJT z&t!gvBjT3p;|G1$Z}(QKvkezPzK^H& zBrkE>U8rNmRT?g=Qijm%XxqPKOddnBs0C5xKh1lpQ!h5 zOcX9Eqhs&8Nj0n3WyX|SwIy$s|A2j!PCYeg@tRbt<)mBG^o&Qj&9-91zM(wDF2#&F zJ@Z@Uu`TZ|WhOW;WFByy8=I&%YBjBY?5Szo*Ze9um=XJx*`tD20+D?3P3b9dPccaJ zsPMAkbxPP2@hsrHs-*Kxv0PgsKh+X$A_rG0#xH8)L3Vii_n4ZgrytV0az5l0)^u>l?U z5(#XCg-z(hW+d?ywqPr^VLNu93p=q3yRip*@iq408+4-wHumEH4x$&|B84;#;X540 o5%l3Gj^TS`@B{ksBL*;t<2ZpKoWv=dMixI|cx)ncX6Zlw0V8>QAOHXW diff --git a/rdisk.c b/rdisk.c index 25042c3..4cf1eac 100644 --- a/rdisk.c +++ b/rdisk.c @@ -126,6 +126,8 @@ static void RDInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { c->dbgEN = dbgEN; c->cdromEN = cdromEN; + char dis = 0x44; + // If RAM disk enabled, try to allocate RAM disk buffer if not already if (ramEN & !c->ramdisk) { if (*MMU32bit) { // 32-bit mode @@ -142,6 +144,10 @@ static void RDInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { BlockMove(RDiskBuf, c->ramdisk, RDiskSize); // Clearing write protect marks RAM disk enabled c->status.writeProt = 0; + + // Patch debug and CD-ROM enable bytes + BlockMove(&dis/*RDiskDBGDisByte*/, &c->ramdisk[*RDiskDBGDisPos], 1); + BlockMove(&dis/*RDiskCDROMDisByte*/, &c->ramdisk[*RDiskCDROMDisPos], 1); } } else { // 24-bit mode // Put RAM disk just past 8MB @@ -154,14 +160,14 @@ static void RDInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { // Will this wrap around and overwrite low memory? // That's not the worst, since the system would just crash, // but it would be better to switch to read-only status + // Patch debug and CD-ROM enable bytes + copy24(&dis/*RDiskDBGDisByte*/, &c->ramdisk[*RDiskDBGDisPos], 1); + copy24(&dis/*RDiskCDROMDisByte*/, &c->ramdisk[*RDiskCDROMDisPos], 1); } // Patch debug and CD-ROM enable bytes - char dis = 0x44; //if (!c->dbgEN) { - copy24(&dis/*RDiskDBGDisByte*/, &c->ramdisk[*RDiskDBGDisPos], 1); //} //if (!c->cdromEN) { - copy24(&dis/*RDiskCDROMDisByte*/, &c->ramdisk[*RDiskCDROMDisPos], 1); //} }