From e6b8367a8e9c1f44ab79e040de32bfbb6908b23e Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Sat, 8 Jan 2022 01:53:49 -0500 Subject: [PATCH] Fix CD/debug patch bug --- bin/GWSys6_4M.bin | Bin 4194304 -> 4194304 bytes bin/GWSys6_8M.bin | Bin 8388608 -> 8388608 bytes bin/GWSys71_8M.bin | Bin 8388608 -> 8388608 bytes bin/GWSys7Diagnostics_8M.bin | Bin 8388608 -> 8388608 bytes bin/baserom_romdisk_noramtest.bin | Bin 524288 -> 524288 bytes bin/baserom_romdisk_ramtest.bin | Bin 524288 -> 524288 bytes bin/driver.bin | Bin 1905 -> 1873 bytes rdisk.c | 51 ++++++++++++++---------------- 8 files changed, 23 insertions(+), 28 deletions(-) diff --git a/bin/GWSys6_4M.bin b/bin/GWSys6_4M.bin index e9e434fde29ecbb077d4b2a7bbdfb1b572ed27ba..2f7d728d79d3d4aaf4bb5e1644426b24f641dca1 100755 GIT binary patch delta 1110 zcmYk)(Q8vz90&04xxKgE&aB25P3@BAO`QKKvul$?u&M?%qYoy zZnD+p&14d0XcF;UwXEN}cp-g5;|-&zTib#N@#rT+%mMt-h$NY$0VB=+fC3I zx&6@48bYc!4%^E0!~DW(Vcs|oRi1~wHal*?Cr=kYE`0mI)TotqkWOv%8to(>y-w}4 zi~O{k0 zr7&?LV3f3q7uE~$c;Q9vR&fj|zJiQxf50dk!eAGryV#fmy>(+4zvsvt+r@`GFW={v z=lLbIT1~6D>Y}dIeRcnB{l{p}=c5}wl-0;@_~rxX%AEyfA<$WAAN%y>YRi=KEUG^~ z6Uilv#9O5s2vs0TatILPU#Q*@gl6_PQgRL1+qW;g^ z%)*>E)!VW-_P}21y1Vdu8A3Av%;XAvh>;9t5z+)ico^{@IP!C(G+@dI+vv`v;n(bq zX1PCHHS27O)pCR9yT#>WTPU+>& z!bgyK=i8XRs}laqUW%?F>3!ZnDqn3H(7f{gd=Y{C93p6!2bubEvF(@Dyp3SCYA;zA zVGch=UzXh%`2=Rxe{@JhSJ%1LlJo8BL%Y|Jv4TCi5r{aGQjcv}PK=k*=&AsJIp?I_ z+qzf+J3H^(l6q8}biS8*_Cz@`f(t3xLo+l73liWJ)(-RixLAYwoGF+K0fhH^2UB-jLi;tiFCWWy2g8 zMzUa+fnWKC7|EUdxuyzpP-Q&7(pyE1{|AfXuOI#W>cQ_al;qlz|E;CC_FT3#CY0@7 z>1A`uXwG_%_zISLrRIV&uJrI;G$*+={hzJl?(Fhe$+vC4iIf2*3VgAzg661mS?SU6 z9%(ctBl^pJQ+iXJ-?VgUp;j`ejb5WI6riotPTR<&?G&UP6rwP7&`yfbF6yM+ zw1=Y9MKO{TCq><4Q4b}kmy(pCK1x$R4N!)%l%u`0k6x!YC{O!okPgs6Iz)$Qh~A_l L_cpDgv7cW6oT)u0 diff --git a/bin/GWSys6_8M.bin b/bin/GWSys6_8M.bin index 7ee7725262f046ee93f1ede40aa3d1895829d4d0..cda9863c941309291c4aad0ed7c9ea2877dac9c4 100644 GIT binary patch delta 2219 zcmeIyUuauZ90&04xxKf$b+KkKTe_MwC%3n4(sWInf6~_4+$M9>5Mx9Kn+RTYBxNhz zC>B(L%`mOQmx>JU9{LdRVJ#CGr8s?Z_~7$U1~MPY_9E(=PZebGdv99Vv(J6_z&VHC zIltdI_wuXP>uTNA5Dlf#(NMRvpCbcTirXEqjhWwY>n&)CJM+y#ptsUpT5PX&PB}Xf z?T@AK#GoF3v9N()1>&rn1Vs6ok(fcSI@V0cIRppG?}dL^l_wU|i(jI$h)iZ zg#~SI?oS~+=QoNnU;55k?)&EA?>0oQ4xpOOB@rbVNI@zBA~cOy034|t8A=Y&Ll*ke zBTyA9D2|#$GP*Xg|7SS84H0_ z&003kAw2yjhEp?;DK({KCq-oaHdi{+9mkXC_Fkowvx?hqjFp|N)cOt<2g`*d`YOPV zGb^>BfpZ184}4~IV^M}quip6NZS~cUDt8$atELNMzRfDc>&}+cQfC6~3S`Zz-F?v> zh8Y!k#I0<-eKVPa8OkGGs8{tnx4d^>VO0Na)JFTZyHSaDlrt665~AqL#ikDc8xMYzUCmR5<)-nj(qmuo ziuxKRlX%B}dP%aJL)Q`4;TBR|u|In#X2l)<7n9IoqxCK?(osR{L+6H}MGlvw-aI9l z#Mn!M*2K;GhSm~Ny>`-8zC6hX}}MUT)y z^3kKzO^=bE4pD#}ryw1sBNU<@I!e9t1cfO=eH0~0F*2y1Od6m;8lpHQXqb{TLdR&7 zQk14A={P+_Pt!B>EM;hn#%Y3{qe*(6rYK7mO;e8YH}9Dz{@U4ZD*H`kzp3mumH*LH K*g&$;U;hQ+{D!gs delta 2179 zcmeIy-)mcC7zgn0dvZ>D>S8^MNte~7dGq!(O`0yrrdcq)YUnw3&vn-!tNS<+&M zmV%-ZSSD#5Uf5lTXBWH3ogEVyWpfH5n}5J48w0_MGB1>EFu|)SviLn`IMEybfnI#b z`{Q|^yzi6nG#U-P;c1Gd)(kZDOUBLEzy}kX0aVraFSzbz#0hehq6KbA}%W}skPqEHtC%8Q00G2%cUspB)KS68#&0s&LLGQBG2 zp}lKVdrNOZ7TjxbV`nY$zOx)#L(2a=k948lHlg|H^+FlJ!UCe`mIoO1#ZuQ#YXt|P zT-{l=KZaGji=iB=G5$8JoIW-xVrv^*>&OT84x!tx$YjZx*bGM9X=%i_tt6)^8T8eF zKim(cG1$3O0V{jLy(o>CIPPATM((w0a@6}SS(cWpJEsA^a?w%-n(f{7tSn#NnC)RA z#j{pV2B};3VEa)ke#E)Uzk3<{n1059F=;QxJ(e)iqUkmg#=yzrsVwZTPtQV3t6^9- zn(N+pB9ujEP(br8sosLD><_Nb0iQ@+mRs4%1=uy|SL3XAYQ6CWu;S0pJ)XBDcNDX4 zoJu>eb{CN2Y;@a(gIW!4?i8Oqrv}!&GC1){(Su4BMeG$?f!q((p-Be zyIMz;<6Y@dajIy~`;Yh%ws)oWqC2IG$R4z(xi$N*tz+Ko%qhvYZNGrD2}YFo;y?}U z3HOXLVv$|aY#o)%ul~tzUin@bZSm1<+n^5WB$K-63ED7DY9rgh3IJtQ-peG z2SsTo_0lu6i(=GAagvlEMg3&c03~UVQk144%Frob-7s+OQ00000 diff --git a/bin/GWSys71_8M.bin b/bin/GWSys71_8M.bin index a019f544bae6ff2d24cb79a87778676df76fcd6a..4da7ea08970d5284dcf72e2b8dfa762804a7563a 100755 GIT binary patch delta 1366 zcmYk)-)~c87zgm@Jv(QdNu8w@I%d1RJv-alb*vSCbenTKYhjjJN)e_Tq8wnJ&aG~9 zG6k%xgl-aUMhM|>v5Oin*n%-+SpcsjUU*G3BnB@QxH0NKfQg}g&*^5k_$2T9=6T=e z`@ZKCi$$?$DY24Jsws(U(yzXjtLgO`(v{>NbniGxf;DrD5u-+|I~>!%0!fl#>37%|TP1zd!Yh>;@1iDZvP&Cw1L z1#P{ecX$d2>c?hg^x0#MH@I>W29Ksq;cxjNbEMh@k@>31o4>pqhH!NxBnkx zIIN!0=6%;6{Ht9g%3QG!=!o=6igL!@`HQ!yDy-sd82BjdfSbvP_@eJ3rHcBHpc=|%UpY~lhnHx zM~QKzgPgyVR;{ty)k#|%j07bANtq;WN7K2;6Xnj-O;Qc7o$k7|XSH~8*q$wI%qBTj z6`Xtjd`Khbt^o?hHJxZ}^DnSIVSIuVo$^nY+6q*}KcedN^k-gI9#S-`jeV5{{i+@6 zds5NFKK}A~jyT(HQcxx*wupg{#^7TZhY85TCol<9Fb$u= f415NsU=}`yFW@wsfwS->6yPg3cju8h=l}gbke0mU delta 1346 zcmZ9~-)~c890u^`oc3&;)Oo1wD3h*l&(6Ab9c@9&Kqs8GsHN0dl#L=f%b49{6J`|z ztgeu55-%JV#=`{{y>kR(%p#(RG3p;+77dAs7Ykl!#6)k^80vEl5u+EM^!@R?-@fm+ zt=H?$x}_mC^lKL_vBwq{h!z^fP2zd@}!=cJsGl$!fadB0l{yQ|7Sb2R~V zR@L^3?8v9aLeIx@KbIlNE&x->%m9KUJPCMZ36d|3kOv$&Inrcc+~qUSn~cFJ8*8od zps&Vj266;ixup7DKP!rBw!%|>*m1}KD$JPOK+8r6m7=<;r-z*6wxNb3A%*W7E0sb`438lZi zng=^OYknw{fHYx#EtJHea(LMKE|C?gs2S%0yL0|b46<(B^`gjLU7hS=A&qC%t{5WM ze}QhN7VX5PtAAJ(>`X5+U?ys1%(0LXl^SL}r1Z^CMB>mtIX?-hqzyv-rm~37NPOa3B0E_ng(w%uza7SbH)w59p>gF^e z8KVsR$TtK@Y~ar|o|%DG#;teyYpC=8pmY5B^}p^sct1lCuKoJIwJ6taiH_!|W>{Cc z-JCL7)Al1ifNou>HD?wz#kU2m61OJ*vo&VTE}Rv7+xjbry1+z+FLqSWDwr2ECE(j6 zT+LCz`r5zsUDv+Sl$P}74PBu&Y9|+U&|S2S+;lf}(mkZodh*b{f zXcGmfhk_(1L>l#yPJI-neu_|(1}H{@w3*_Rpd@Xft#m&PSUG%icZrRdW~xII=yl2 JhCUzs{%v5Oin*n%-+SpcsjUU*G3BnB@QxH0NKfQg}g&*^5k_$2T9=6T=e z`@ZKCi$$?$DY24Jsws(U(yzXjtLgO`(v{>NbniGxf;DrD5u-+|I~>!%0!fl#>37%|TP1zd!Yh>;@1iDZvP&Cw1L z1#P{ecX$d2>c?hg^x0#MH@I>W29Ksq;cxjNbEMh@k@>31o4>pqhH!NxBnkx zIIN!0=6%;6{Ht9g%3QG!=!o=6igL!@`HQ!yDy-sd82BjdfSbvP_@eJ3rHcBHpc=|%UpY~lhnHx zM~QKzgPgyVR;{ty)k#|%j07bANtq;WN7K2;6Xnj-O;Qc7o$k7|XSH~8*q$wI%qBTj z6`Xtjd`Khbt^o?hHJxZ}^DnSIVSIuVo$^nY+6q*}KcedN^k-gI9#S-`jeV5{{i+@6 zds5NFKK}A~jyT(HQcxx*wupg{#^7TZhY85TCol<9Fb$u= f415NsU=}`yFW@wsfwS->6yPg3cju8h=l}gbke0mU delta 1346 zcmZ9~-)~c890u^`oc3&;)Oo1wD3h*l&(6Ab9c@9&Kqs8GsHN0dl#L=f%b49{6J`|z ztgeu55-%JV#=`{{y>kR(%p#(RG3p;+77dAs7Ykl!#6)k^80vEl5u+EM^!@R?-@fm+ zt=H?$x}_mC^lKL_vBwq{h!z^fP2zd@}!=cJsGl$!fadB0l{yQ|7Sb2R~V zR@L^3?8v9aLeIx@KbIlNE&x->%m9KUJPCMZ36d|3kOv$&Inrcc+~qUSn~cFJ8*8od zps&Vj266;ixup7DKP!rBw!%|>*m1}KD$JPOK+8r6m7=<;r-z*6wxNb3A%*W7E0sb`438lZi zng=^OYknw{fHYx#EtJHea(LMKE|C?gs2S%0yL0|b46<(B^`gjLU7hS=A&qC%t{5WM ze}QhN7VX5PtAAJ(>`X5+U?ys1%(0LXl^SL}r1Z^CMB>mtIX?-hqzyv-rm~37NPOa3B0E_ng(w%uza7SbH)w59p>gF^e z8KVsR$TtK@Y~ar|o|%DG#;teyYpC=8pmY5B^}p^sct1lCuKoJIwJ6taiH_!|W>{Cc z-JCL7)Al1ifNou>HD?wz#kU2m61OJ*vo&VTE}Rv7+xjbry1+z+FLqSWDwr2ECE(j6 zT+LCz`r5zsUDv+Sl$P}74PBu&Y9|+U&|S2S+;lf}(mkZodh*b{f zXcGmfhk_(1L>l#yPJI-neu_|(1}H{@w3*_Rpd@Xft#m&PSUG%icZrRdW~xII=yl2 JhCUzs{%)I!kP_PM;s(-*BT)%s#A^d)D&f$B``JD6nrPGw=C&MyA z#+DJ+rLXR)x#+G9y3+Lnn|B}yrf2U5LwTY&HlB|bv>FF)>DPp-xmxyJjx3`z0oF$? z0E;gw{w|az8?$~ILTPpUf$Q5WT^tifS(g@M*=vtzXO=FFNymOk0Is1DB}yH!58714 zyV0LISh)-!84TCK!!J1kAc287+u?P9TOzjb)4VA%qh=R78)9aln4(j2_EYWJ& z#LJVweXjF{Qj9?{)zAn{8pI~!l}9QU2SFj@qenV7apezZxS>AOrrh(}f3+DP_L8Ui ztjNNNh(DCd$q=k2VyFZ5&=AT{OieuV%~;X?Qb>a%kkY2q0l3}!*jDC`8ssid~KFjDGK@+Gro+NF*L6xtaCPX0+5 z23cr2iPVv8h^# zYy2{F@=sJ`*E3+fBTQa@+*D=8b(t$}tibJ9Xi8Cx2lvHm;07q!Gx= Z!)+SubUS`E_H<8`_$}DjQwu%c{{hvR;>iF2 delta 864 zcmZ9K?@Lo*6vw~M-L6g=avPg1Y3|wMb#BhK6)X#+?zUd6C9)uG5y&!`l2S4#DhAG& zCcQ{sMAsL-*t--XLb4waQT+iSg%I>Y>_w45y{!n>xmPj@?%|$up3nK-bIyHAC0?SZ z%*s;PQno&n-+EfEb*)*D6RA&laTc;LBKr^+8uRttm$tGsefoEgyfNmE`fdJW=><6R zU}@e7u*_Z2nu2riKqbhB;Z!s6Z%_)>QI^u8ta9Rt^W8K*T9E(5N(9P?B98N9_fu`6 z>Cx!t9GGMSFc?j=!Ar&+5jZ6V=8D7T0C`sOgaq{2TpF6AAy_4Ct(t3h6{$@x6|?+d z)8{1bB#;s3ixnAzFlcBT9U811McjcnJso}qSZw@McA5`Cx-91!6X(HW`b)38JMX%x zO?c)JFy9LZ#)?%NBvalROTr!-h8y+#5K;FEbsy$q8XS?LHlf~x65l{ugtn2o2qj`Y z(#bsYE0n8=TK2c0-rPucLhD+yyY(!Wy*noTnREzEdElphoy)DYg*0fhBl-g_dsx5z zn#++hIe(||EuQ2GFKSbOxjA%@+gb-N$0@b7@O=52OhoN9H z&BTD1puy<9J~_zBddVlZjP(b?P@hZ#9sv L^LSmY^}hcNmMz`z diff --git a/bin/baserom_romdisk_ramtest.bin b/bin/baserom_romdisk_ramtest.bin index 7b9c5850f010c49a45bf59104c492eb3ba1cb801..cc70301ebc02f3b896a9a8fc933f6eee18465828 100755 GIT binary patch delta 884 zcmYk4(MwZt6vw~6yL)I!kP_PM;s(-*BT)%s#A^d)D&f$B``JD6nrPGw=C&MyA z#+DJ+rLXR)x#+G9y3+Lnn|B}yrf2U5LwTY&HlB|bv>FF)>DPp-xmxyJjx3`z0oF$? z0E;gw{w|az8?$~ILTPpUf$Q5WT^tifS(g@M*=vtzXO=FFNymOk0Is1DB}yH!58714 zyV0LISh)-!84TCK!!J1kAc287+u?P9TOzjb)4VA%qh=R78)9aln4(j2_EYWJ& z#LJVweXjF{Qj9?{)zAn{8pI~!l}9QU2SFj@qenV7apezZxS>AOrrh(}f3+DP_L8Ui ztjNNNh(DCd$q=k2VyFZ5&=AT{OieuV%~;X?Qb>a%kkY2q0l3}!*jDC`8ssid~KFjDGK@+Gro+NF*L6xtaCPX0+5 z23cr2iPVv8h^# zYy2{F@=sJ`*E3+fBTQa@+*D=8b(t$}tibJ9Xi8Cx2lvHm;07q!Gx= Z!)+SubUS`E_H<8`_$}DjQwu%c{{hvR;>iF2 delta 864 zcmZ9K?@Lo*6vw~M-L6g=avPg1Y3|wMb#BhK6)X#+?zUd6C9)uG5y&!`l2S4#DhAG& zCcQ{sMAsL-*t--XLb4waQT+iSg%I>Y>_w45y{!n>xmPj@?%|$up3nK-bIyHAC0?SZ z%*s;PQno&n-+EfEb*)*D6RA&laTc;LBKr^+8uRttm$tGsefoEgyfNmE`fdJW=><6R zU}@e7u*_Z2nu2riKqbhB;Z!s6Z%_)>QI^u8ta9Rt^W8K*T9E(5N(9P?B98N9_fu`6 z>Cx!t9GGMSFc?j=!Ar&+5jZ6V=8D7T0C`sOgaq{2TpF6AAy_4Ct(t3h6{$@x6|?+d z)8{1bB#;s3ixnAzFlcBT9U811McjcnJso}qSZw@McA5`Cx-91!6X(HW`b)38JMX%x zO?c)JFy9LZ#)?%NBvalROTr!-h8y+#5K;FEbsy$q8XS?LHlf~x65l{ugtn2o2qj`Y z(#bsYE0n8=TK2c0-rPucLhD+yyY(!Wy*noTnREzEdElphoy)DYg*0fhBl-g_dsx5z zn#++hIe(||EuQ2GFKSbOxjA%@+gb-N$0@b7@O=52OhoN9H z&BTD1puy<9J~_zBddVlZjP(b?P@hZ#9sv L^LSmY^}hcNmMz`z diff --git a/bin/driver.bin b/bin/driver.bin index 30accd31907d3fac016972f500517d56495d550f..add226d7bcaaf6bea95e1d312eabe424136557c2 100755 GIT binary patch delta 813 zcmYjPQAkr^7(M^pon2{+HC8j3`g^_VuCv|M%T&aEH-k0ST9lyC!!6}5bcl?Eijhhw z(#xzX;e!u*OEDrWBHyHk9?JqDd=Ywy>Z!K{;rj2Lh7T9ccR1g7&iDQIxBIhuain!A zwda5?C%$9rCY*v*xo(4?-f*X}dF-6Fk^cOKRr4S}3TPSJRJlg%~0o&2GL)Jp)ekyr># z{G(nCR3IS!el&Z*k;suO!~n_9&=To{D6qYX-svy!m`%Ky7=1RTd^{C+&2`Pu0wIts zH5f%VgV=4J73#%t(5QJ?I6Zyo4^MDSxyR-jmUsTL1t9&5HwJBHv!TuU24l$`}IuztEv2Ks8Zwp6?|MtJ|EZi8#)M;I?m)j2P(CyGCw+0 zk}}JV*6EI57|OeaQ4lJ3!t>?PhJ}6JFpjwh1fKf6JOOIw(y2(}rEqc`iV?80En7Vs zGb2NGwQ^8RP|nJH?)I$8;5pNeV2tU&o5Sa~-Yzx{Sx0VvrM-X|{&Ofg_CL_t(xA*N z8+(yDeaQ~>5(+o5$1l!O9_Pe5f)cDC*?Ilx5zV}X|7%nUIx2VgA`SzU2PShioJ>=x SG)TFJeCUBn&+ELiLjD06y3c_C delta 825 zcmZ9K;Y$;77{|ZAyPKXg#x*uu(%jGUoSU<41D=Xrjg=X=ldy?f*N?wKEG zxl`B_VW_!}czp#f)y~|*U}z|Lx^C=NYl`=0x5op?upB;wcuR=HMGT zR*muz__XfyHz;LkjOFwstM=UTy_@5w%dS7Ul7KR*sAqY$>xDku_-yR60Vc=*hLV{! zgy?W@0zQF(`O|3ff+C3`RRD^zUq^E?21(F2Eu-CEp&>)m%t|Mnn3KGZKt^0ss=^pl zn}*KOp+oAZ;33pYbMcpeDD#Vbb9@-WO_$M-xeA^#dxV1}|80FbxP*xFTt+liv1AC2 zx|GVoof<&^9)5zT$K|>YODP@RL`9$0?m|g#qb)&Z$Z zkcmOi>^T>Bc5QvIo>WxoRO(}hYrc6a@8Sjt8 zp*^1+1nX1Vp}d`1wc~;}j#@W^V9%#s1J56KuMPqCxWu#7czy+1i90?l*j=j=1Hg=v zFYe`4PB$v4uTMsGD2LOCWOM`Aq76cH_yPJ(#mop)13M2|E0~}kL8JK9#;?6~&l41( z+SmVTQL63mx@xbg+av8-W561AmUsfq9?2Rr-%I`@u=?m`@SmFtb~ZoBX|??;h{_-$ dLko)~SOt^2g8oBXuJ&?LSO2QZPtUn5_8a6y(B}XE diff --git a/rdisk.c b/rdisk.c index a1644ac..a01c4b2 100644 --- a/rdisk.c +++ b/rdisk.c @@ -92,6 +92,21 @@ void __attribute__ ((noinline)) S24(Ptr pos, char patch) { SwapMMUMode(&mode); } +static void RDUnpatch(unsigned long pos, Ptr patch) { + char (*peek)(Ptr) = G24; + *patch = peek(RDiskBuf + pos); +} + +static void RDPatch(char enable, Ptr patch, Ptr ramdisk, unsigned long pos, char data) { + if (!enable) { + *patch = data; + if (ramdisk) { + void (*poke)(Ptr, char) = S24; + poke(ramdisk + pos, data); + } + } +} + // Figure out the first available drive number >= 5 static int RDFindDrvNum() { DrvQElPtr dq; @@ -144,9 +159,9 @@ OSErr RDOpen(IOParamPtr p, DCtlPtr d) { // Find first available drive number drvNum = RDFindDrvNum(); - // Get debug and CD-ROM disable settings from ROM table - c->dbgDisByte = RDiskDBGDisByte; - c->cdrDisByte = RDiskCDRDisByte; + // Enable debugger and CD-ROM + RDUnpatch(RDiskDBGDisPos, &c->dbgDisByte); + RDUnpatch(RDiskCDRDisPos, &c->cdrDisByte); // Set drive status //c->status.track = 0; @@ -173,19 +188,6 @@ OSErr RDOpen(IOParamPtr p, DCtlPtr d) { return noErr; } -static void RDPatchRAMDisk(char enable, Ptr ram, Ptr rom, - unsigned long pos, unsigned long size, Ptr patch) { - if (pos < size) { - if (enable) { - void (*poke)(Ptr, char) = S24; - poke(ram + pos, *patch); - } else { - char (*peek)(Ptr) = G24; - *patch = peek(rom + pos); - } - } -} - // Init is called at beginning of first prime (read/write) call static void RDBootInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { // Mark init done @@ -216,19 +218,12 @@ static void RDBootInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { // but it would be better to switch to read-only status } } + // Copy ROM disk image to RAM disk + if (c->ramdisk) { copy24(RDiskBuf, c->ramdisk, RDiskSize); } - if (c->ramdisk) { - // Copy ROM disk image to RAM disk - copy24(RDiskBuf, c->ramdisk, RDiskSize); - // Clearing write protect marks RAM disk enabled - c->status.writeProt = 0; - // Patch debug - RDPatchRAMDisk(!c->dbgEN, c->ramdisk, RDiskBuf, - RDiskDBGDisPos, RDiskSize, &c->dbgDisByte); - // Patch CD - RDPatchRAMDisk(!c->cdrEN, c->ramdisk, RDiskBuf, - RDiskCDRDisPos, RDiskSize, &c->cdrDisByte); - } + // Patch to disable debugger and CD-ROM + RDPatch(c->dbgEN, &c->dbgDisByte, c->ramdisk, RDiskDBGDisPos, RDiskDBGDisByte); + RDPatch(c->cdrEN, &c->cdrDisByte, c->ramdisk, RDiskCDRDisPos, RDiskCDRDisByte); // Unmount if not booting from ROM disk if (c->unmountEN) { c->status.diskInPlace = 0; }