Removing vm_memcpy dependency for BII

This commit is contained in:
Seth Polsley 2020-09-11 14:44:58 -05:00
parent 40e2d3d84b
commit 25e2d4af6f

View File

@ -667,7 +667,7 @@ int16 SoundInStatus(uint32 pb, uint32 dce) // A0 points to Device Manager parame
// 0x72 // r // 0x72 // r
// }; // };
WriteMacInt32(pb + csParam, 0); // response will be written directly into buffer WriteMacInt32(pb + csParam, 0); // response will be written directly into buffer
vm_memcpy(bufferptr, str, sizeof(str)); Host2Mac_memcpy(bufferptr, str, sizeof(str));
return noErr; return noErr;
} }
@ -684,7 +684,7 @@ int16 SoundInStatus(uint32 pb, uint32 dce) // A0 points to Device Manager parame
return memFullErr; return memFullErr;
WriteMacInt32(bufferptr, h); WriteMacInt32(bufferptr, h);
uint32 sp = ReadMacInt32(h); uint32 sp = ReadMacInt32(h);
vm_memcpy(sp, CDROMIcon, sizeof(CDROMIcon)); Host2Mac_memcpy(sp, CDROMIcon, sizeof(CDROMIcon));
return noErr; return noErr;
@ -760,7 +760,7 @@ int16 SoundInStatus(uint32 pb, uint32 dce) // A0 points to Device Manager parame
return memFullErr; return memFullErr;
WriteMacInt32(bufferptr, h); WriteMacInt32(bufferptr, h);
uint32 sp = ReadMacInt32(h); uint32 sp = ReadMacInt32(h);
vm_memcpy(sp, str, sizeof(str)); Host2Mac_memcpy(sp, str, sizeof(str));
return noErr; return noErr;
} }
@ -795,11 +795,17 @@ int16 SoundInStatus(uint32 pb, uint32 dce) // A0 points to Device Manager parame
case siSampleRateAvailable: { case siSampleRateAvailable: {
WriteMacInt32(pb + csParam, 0); WriteMacInt32(pb + csParam, 0);
uint32 virtual_addr = Mac_sysalloc(4); M68kRegisters r;
WriteMacInt32(virtual_addr, 0xac440000); // 44100.00000 Hz, of Fixed data type r.d[0] = 4;
Execute68kTrap(0xa122, &r); // NewHandle()
uint32 h = r.a[0];
if (h == 0)
return memFullErr;
WriteMacInt16(bufferptr, 1); // 1 sample rate available WriteMacInt16(bufferptr, 1); // 1 sample rate available
WriteMacInt32(bufferptr + 2, virtual_addr); // handle to the sample rate list WriteMacInt32(bufferptr + 2, h); // handle to sample rate list
uint32 sp = ReadMacInt32(h);
WriteMacInt32(sp, 0xac440000); // 44100.00000 Hz, of Fixed data type
return noErr; return noErr;
} }