diff --git a/bin/driver7M5.bin b/bin/driver7M5.bin index 477b7eb..ab346a8 100755 Binary files a/bin/driver7M5.bin and b/bin/driver7M5.bin differ diff --git a/bin/rom8M.bin b/bin/rom8M.bin index dd4ab33..4f45654 100755 Binary files a/bin/rom8M.bin and b/bin/rom8M.bin differ diff --git a/rdisk.c b/rdisk.c index 252857b..4e5809f 100644 --- a/rdisk.c +++ b/rdisk.c @@ -45,7 +45,7 @@ static void RDDecodeSettings(Ptr unmountEN, Ptr mountEN, Ptr ramEN, Ptr dbgEN, P // Switch to 32-bit mode and copy #pragma parameter C24(__A0, __A1, __D0) -void C24(Ptr sourcePtr, Ptr destPtr, unsigned long byteCount) { +void __attribute__ ((noinline)) C24(Ptr sourcePtr, Ptr destPtr, unsigned long byteCount) { signed char mode = true32b; SwapMMUMode(&mode); BlockMove(sourcePtr, destPtr, byteCount); @@ -53,21 +53,25 @@ void C24(Ptr sourcePtr, Ptr destPtr, unsigned long byteCount) { } // Switch to 32-bit mode and get -#pragma parameter G24(__A2) +#pragma parameter __D0 G24(__A2) char __attribute__ ((noinline)) G24(Ptr pos) { + long ret; signed char mode = true32b; SwapMMUMode(&mode); - return *pos; // Peek + ret = *pos; // Peek SwapMMUMode(&mode); + return ret; } // Switch to 32-bit mode and get -#pragma parameter G24L(__A2) +#pragma parameter __D0 G24L(__A2) long __attribute__ ((noinline)) G24L(long *pos) { + long ret; signed char mode = true32b; SwapMMUMode(&mode); - return *pos; // Peek + ret = *pos; // Peek SwapMMUMode(&mode); + return ret; } // Switch to 32-bit mode and set