From acf71fcd80ed6897bea72f0b9622df8a7e518e73 Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Fri, 2 Apr 2021 06:29:33 -0400 Subject: [PATCH] Refactor settings load again --- bin/driver7M5.bin | Bin 1877 -> 1909 bytes bin/rom8M.bin | Bin 8388608 -> 8388608 bytes rdisk.c | 28 +++++++++++++++++----------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/bin/driver7M5.bin b/bin/driver7M5.bin index 8aabf41a46bb66ac31e65fa7fb9e60dff2249e09..e415a7f424e6ecf8f8fa1a35d8f26ce16a9e14b8 100755 GIT binary patch delta 543 zcmZ9HF=!J}9LB%@<*tNsgc3t5rH$utB!OIQM8T^_dCg!ik8-pisNfKnJS7>9VkF2x zg0@f`Y&9Yd9UMf|PF5EeJslmK%v>i+b+C)jp|rlcT0xh``~AP~`@iq?Qom9wbElro zY$V_{-A#m7L0==Png^urM5JE>VYrq$^z==>TBsA<>u!_RzP#*i9y@Ehg^F<<8NMW- zZ0BZ2ipbVL?}h>y%})J9ZeI1tWhHttCn-O#9n!!!a@?V21NfG9=!Qa|t?D`Dls$Btm!(bom=y%dmc4w&8JiIeRU=h$NQwiU3&(Z|NLw~}YDVp{z} z1)~T{@1O-V9IFn4-<3O72aB+Kq4!p%*Y&kXh1EFvk3QD>fx>}<_sPu5auErx)qtn| z`m-0Ba#;D?f%tfhZt^x``nND5zy~f%E7?E zkj^2a&!C;a@b7~J0}~4a6HtsXoq@3pBnt9z1!EOs9b*|IP{jlF8iod-7KMTe4+o_h zhRJK0g=BNQSki?oYZ#_6C>iK5urN3%FjzV;uy_G2OYfMhz%rTf$K)+66NS?X&H;@` TD7XS7qny})WYgvdR#_$hD*lXY diff --git a/bin/rom8M.bin b/bin/rom8M.bin index 642a299fa960b77a54c6c3b449dae5f7626c6315..081c915fcd56c8c47f968ce6bbead9b10930298d 100755 GIT binary patch delta 3015 zcmeH}|8HB>6~NDZe$Vms?BK-4N$fazah${iQ*s;v2EK#2Yc|#`#+86J$k>l$U#ZqLv*)q)_e+~<+ru6D0C=MFNl=z5 zyNhd}&xu*o5Szvefv355asAamO` zJA&(a~-bOq%}U8|po+<~IxSSXDm@MFEL z>qHeoC@Vejr4-g{Amo^Z6u?kJXb|-14{4GoyfsjJA=C9c@;>8u+SEd5sPJq0br(K@ z@HLC5m3)5HTmzP6$%U=&weX#2BfueyzV=M{mC3Dn_ zYMQ0l5td?Pp;o0~mR$7FR67Q<_j(%V0kR8u$f7p8{nODOByAzQaP=!)cL72z>3g&K zUq*x4I@2VoCG#88a0-HTwV(p((1@T$Y5z%BZIz>C+9EqE)u49L9UOhR z4_1mtU!&gJOj}&pVw?_Y0Y$#Dv#C%NMA^TpeNg+zn_CXbZgRBC4H`e4Q*BNSM;9NqlB(^3>v^mY{sAfV@zkCD{w5k3qN`2^iXo7!^gjHg|k7r zZ95WE_mA|C#mUhp@AdN;x!+GAT=Mhh<&{uOmw%hY2PjV$jn4zzp|G%_>fE9@!xRv0 z(2NhREDw}8fjipW8 zt+HxEZQ{SMTg(S`qOr{@FMqtNfL6>g-fQ6%Osl4qm|SV)Elvgh9cx^^`mVKHwWmOl zS6X@WMx{qyEQ&d;0BbhQn$|nkKQ3A9ZePiNO=NcR8~mdV_92V22y1~Cp~YBfT&BQoUjw$A{>O1 z$R%zfTtps`Pq+yWaWmm13W!3Yi0~19!}>|_KW=hSC8uwYU8T;XMY>Y^^xFS*kY9hG z%acWZufsgJuYJr4%7;?>j+rOwa&~0dJYZ$h`N}Hk48+Rl>n_imy7b7o#kHb9dPSC< z3A#&jw~q`@jExNG-TlLfp>f)q`TOA}^2n%O{^fjS#eGfJRT%&)Xpx?g;VCLC=4xM$ z2BsrR)}PRDG29A3#m}sLR7ls_%)*V;QD8t|iNI2Uy1+7lL4oB0Ljo%VRtl^V7#3J9 z@D_nJ0&4}X6BrS=USOTTdV#kJ+#qnHz)b=-3%pHWgTO|CO#*Khc!$7m3)~`bt3VXE zO<=RY?E+f_-YKwEV4J{pfgJ*)0(S`P6u47hm%v>Dy9LGs-t`>ze6)jEWo>8A`L!R1 z=Zxi@J=|rm-X4o`T0AVv3k1juL6&LE<4p?VGv!(|-Xi Cn9Pm< delta 2572 zcmeH}VN6@s701tgem1_2aR@L&z=j7g#0>;U6B?kjHk1a(A+{;7BwcUgEE!IlTcBB? zBxS(T+?!--RMte?eb~B8o7$vJJ62_V>y~IllcK2Fx_nrtXhjL@m#SJs(X=+K0=)A~ ztL;-i?PD$d?tACl|2g-bbKkQ)K0dCGTO23Hwd1zq`X&2S|7O{7+Xk`0$VV`}56G-# zCCgVV{ibEP4+4RrUeA{rM~V3_zx@y)eJWXMkBxP{82PBQsX7weZae|`(UU3AZd4|U zs-UD7$hm?Mj4o;U1U4Mj2S_AbN6vMkRdv|@rIk|)8=?(lkOOh~8pt!61IWkI&$hV2 z;QV-cD{0kR{v8%2#{wf^;r~%>1S(?_>%$Pp*grN{{}+y6#&JG+BIODkg24NW;gbM0 z%@~?6+G7(1VW>9RGnxz0=QEn%iY7C+G5R_fyQa5KZ@>1(@l-h4;C?Fw@S3VL> z&xrmYRbFjnd&^q|)$jiU0>-x31m177X3-8>cGR9a&{_qysNS0#_^M#=4prMbXfJn=0l{`$2l2I~5P%*oH1jaGM7#NO(%SS-@%j~&+9@SI1 zjUzA#<#pAdL)d`EFz8WSEp<{&l-bXa1r;c_|1ht2;62Qe9QX^4kG48+JZ4@mxBInX z?dRLDfqHDPydQL?#?E^s`=fX>=UjEJK`{166HEtVaTvvjVTf0F&CD0H%9wvVN^y-DvD`s@RNU8+zU_7t+p6HYIGd zO+96!FWXiDs4exhTX}T)rqlJ%KE8jD?^9E^cNVMLIz4ZGV5fCCL{n}rol-*uw8&8g zY5b_k0$Q)`{;XxS`db0bvAy!kwCdDoKz&d^SF4L&nq#S-&#QyW(1wKrlp*dk0bTvp zOOGl~A)Qy_Yw6IL(>9lv+#y5oImnE%7?lS0$f4XtbV;#dI;I{k#!b!?)3;SqJzb}! zc6aBR=Q?N|G4J}RTO+xqZcv-%Tw|>O;8lMwqFz-IqtB@a@Ay`!*JE^#@|4qmI>{V9 zBs#ocF0Z56IV8(;Z=peQ=KHqG=6pTP(@DV8o9L@9^;3;*H9u^l6+~qv=x!UHA*#G; zI6-$QdnesA*-7o{op#!Yt^JLY+=nOpE}S)&+iAU4eCiLs!ZPsX!Gpd--dtndPZLNl zre{^z^&+2|FZSBa{wO_bGuu85ULa=T)8J3O9>4Cu|Dgl;KsKwyj(q)uV~!#&WEJ8@ zvJnrm8p%P{Ah}2$l8<}?@gfCCA+i=JLW)htobU71_bk`eEM2T^1X6fC_71>@Gx1L# zH5k8RcCuwI-Q020x7do2{>q-X6-#DwO4antX#SH? z^m@Bek)C*MO*(1KX~DYEE#pRCI%y=L=b<}QxN=_`gl=Q+xpga6E6()9BdE&66k0J! zATRaALp4hc=+m@|U-(8_YnHF%EvlGrEEEq~8!fmTY6d;hxA50U-_jIv>B8yA5rF91 znekF)oJ7B+vsuZ!zp#q6JS*{547OuR&G^QO#?no#eG50Em^r^B)%L&5B%^5h3Pqiz@J@Y&!t+1PU4z}V7WapG9e(`BuzW>zdaH}n z%bTmS)M%(OTix=H((Y`tJX!R`@kgJ4yHRSULJ zuo}T?1*;QmlVJA>wpp+(g4GLlpI}=BYY?nauqMIo7pz&Z2LyXiu#jM3!CC}s73?9w z+5~%8ux*013lg2e?(2-YdsBfn-{@9iL2s=A}=PwL*MTiUI! zS94)!7tJv@9t@?kCGV2FTk;;szbW}H$#+Y>NAgD{|CZ#BNzNpHT=Kn=Cnet}`L`wC zFZltinitialized = 1; // Decode settings RDDecodeSettings(&unmountEN, &mountEN, &ramEN, &dbgEN, &cdrEN); - // Set debug and CD-ROM disable stuff in storage struct - peek24L((long*)0x40851D98, c->dbgDisPos); - peek24L((long*)0x40851D9C, c->cdrDisPos); - peek24(dbgEN ? RDiskBuf + c->dbgDisPos : (char*)0x40851DA8, c->dbgDisByte); - peek24(cdrEN ? RDiskBuf + c->cdrDisPos : (char*)0x40851DA9, c->cdrDisByte); // If RAM disk enabled, try to allocate RAM disk buffer if not already if (ramEN & !c->ramdisk) { @@ -186,12 +181,23 @@ static void RDInit(IOParamPtr p, DCtlPtr d, RDiskStorage_t *c) { } } - // Apply patches to RAM disk - if (c->ramdisk) { - // Patch debugger enable byte - poke24(c->ramdisk + c->dbgDisPos, c->dbgDisByte); - // Patch CD-R enable byte - poke24(c->ramdisk + c->cdrDisPos, c->cdrDisByte); + // Get debug and CD-ROM disable settings from ROM table + peek24L((long*)0x40851D98, c->dbgDisPos); + peek24L((long*)0x40851D9C, c->cdrDisPos); + // Patch + if (c->dbgDisPos < RDiskSize) { + if (c->ramdisk) { poke24(c->ramdisk + c->dbgDisPos, c->dbgDisByte); } + else { peek24(dbgEN ? + RDiskBuf + c->dbgDisPos : + (char*)0x40851DA8, c->dbgDisByte); + } + } + if (c->dbgDisPos < RDiskSize) { + if (c->ramdisk) { poke24(c->ramdisk + c->cdrDisPos, c->cdrDisByte); } + else { peek24(cdrEN ? + RDiskBuf + c->cdrDisPos : + (char*)0x40851DA9, c->cdrDisByte); + } } // Unmount if not booting from ROM disk