...
This commit is contained in:
parent
77a46f81df
commit
ab16e98a10
Binary file not shown.
BIN
bin/rom8M.bin
BIN
bin/rom8M.bin
Binary file not shown.
16
rdisk.c
16
rdisk.c
|
@ -57,17 +57,23 @@ void C24(Ptr sourcePtr, Ptr destPtr, unsigned long byteCount) {
|
|||
}
|
||||
|
||||
// Switch to 32-bit mode and patch
|
||||
void P24(Ptr ramdisk, char dbgEN, char cdromEN) {
|
||||
void P24(Ptr dbg, Ptr cdrom, char dbgByte, char cdromByte) {
|
||||
signed char mode = true32b;
|
||||
SwapMMUMode(&mode);
|
||||
register Ptr dbg __asm__("%a1") = &ramdisk[*RDiskDBGDisPos];
|
||||
register Ptr cdrom __asm__("%a2") = &ramdisk[*RDiskCDROMDisPos];
|
||||
// Patch debug and CD-ROM disable bytes
|
||||
//if (!dbgEN) { *dbg = *RDiskDBGDisByte; }
|
||||
if (!cdromEN) { *cdrom = *RDiskCDROMDisByte; }
|
||||
if (dbg) { *dbg = dbgByte; }
|
||||
if (cdrom) { *cdrom = cdromByte; }
|
||||
SwapMMUMode(&mode);
|
||||
}
|
||||
|
||||
typedef void (*RDiskPatch_t)(Ptr, Ptr, char, char);
|
||||
static void patch24(Ptr buf, char dbgEN, char cdromEN) {
|
||||
RDiskPatch_t fun = (RDiskPatch_t)P24;
|
||||
fun(/*dbgEN ?*/ buf + *RDiskDBGDisPos /*: (Ptr)0*/,
|
||||
/*cdromEN ?*/ buf + *RDiskCDROMDisPos /*: (Ptr)0*/,
|
||||
*RDiskDBGDisByte, *RDiskCDROMDisPos);
|
||||
}
|
||||
|
||||
// Figure out the first available drive number >= 5
|
||||
static int RDFindDrvNum() {
|
||||
DrvQElPtr dq;
|
||||
|
|
2
rdisk.h
2
rdisk.h
|
@ -34,8 +34,6 @@ typedef struct RDiskStorage_s {
|
|||
|
||||
typedef void (*RDiskCopy_t)(Ptr, Ptr, unsigned long);
|
||||
#define copy24(s, d, b) { RDiskCopy_t copy24 = (RDiskCopy_t)C24; copy24(s, d, b); }
|
||||
typedef void (*RDiskPatch_t)(Ptr, char, char);
|
||||
#define patch24(s, d, b) { RDiskPatch_t patch24 = (RDiskPatch_t)P24; patch24(s, d, b); }
|
||||
|
||||
#define PackBits_Repeat(count) (-1 * (count - 1))
|
||||
#define PackBits_Literal(count) (count - 1)
|
||||
|
|
Loading…
Reference in New Issue