mirror of
https://github.com/ksherlock/mpw.git
synced 2025-02-26 03:29:06 +00:00
Temp Handle functions
This commit is contained in:
parent
f9508bbfda
commit
490519b0d1
@ -1474,4 +1474,73 @@ namespace MM
|
||||
|
||||
return SetMemError(0);
|
||||
}
|
||||
|
||||
uint16_t TempNewHandle(void)
|
||||
{
|
||||
// FUNCTION TempNewHandle (logicalSize: Size;
|
||||
// VAR resultCode: OSErr): Handle;
|
||||
uint16_t rv;
|
||||
uint32_t logicalSize;
|
||||
uint32_t resultCode;
|
||||
uint32_t theHandle;
|
||||
|
||||
uint32_t sp = StackFrame<8>(logicalSize, resultCode);
|
||||
|
||||
Log(" TempNewHandle(%08x, %08x)\n", logicalSize, resultCode);
|
||||
|
||||
rv = Native::NewHandle(logicalSize, true, theHandle);
|
||||
|
||||
if (resultCode) memoryWriteWord(rv, resultCode);
|
||||
ToolReturn<4>(sp, theHandle);
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint16_t TempHLock(void)
|
||||
{
|
||||
// PROCEDURE TempHLock (theHandle: Handle; VAR resultCode: OSErr);
|
||||
uint32_t theHandle;
|
||||
uint32_t resultCode;
|
||||
|
||||
StackFrame<8>(theHandle, resultCode);
|
||||
|
||||
Log(" TempHLock(%08x, %08x)\n", theHandle, resultCode);
|
||||
|
||||
uint16_t rv = Native::HLock(theHandle);
|
||||
|
||||
if (resultCode) memoryWriteWord(rv, resultCode);
|
||||
return rv;
|
||||
}
|
||||
|
||||
uint16_t TempHUnlock(void)
|
||||
{
|
||||
// PROCEDURE TempHUnlock (theHandle: Handle; VAR resultCode: OSErr);
|
||||
uint32_t theHandle;
|
||||
uint32_t resultCode;
|
||||
|
||||
StackFrame<8>(theHandle, resultCode);
|
||||
|
||||
Log(" TempHUnlock(%08x, %08x)\n", theHandle, resultCode);
|
||||
|
||||
uint16_t rv = Native::HUnlock(theHandle);
|
||||
|
||||
if (resultCode) memoryWriteWord(rv, resultCode);
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
uint16_t TempDisposeHandle(void)
|
||||
{
|
||||
// PROCEDURE TempDisposeHandle (theHandle: Handle; VAR resultCode: OSErr);
|
||||
uint32_t theHandle;
|
||||
uint32_t resultCode;
|
||||
|
||||
StackFrame<8>(theHandle, resultCode);
|
||||
|
||||
Log(" TempDisposeHandle(%08x, %08x)\n", theHandle, resultCode);
|
||||
|
||||
uint16_t rv = Native::DisposeHandle(theHandle);
|
||||
|
||||
if (resultCode) memoryWriteWord(rv, resultCode);
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
@ -91,6 +91,11 @@ namespace MM
|
||||
|
||||
uint16_t TempMaxMem(void);
|
||||
uint16_t TempFreeMem(void);
|
||||
uint16_t TempNewHandle(void);
|
||||
|
||||
uint16_t TempHLock(void);
|
||||
uint16_t TempHUnlock(void);
|
||||
uint16_t TempDisposeHandle(void);
|
||||
}
|
||||
|
||||
|
||||
|
@ -68,6 +68,19 @@ namespace ToolBox {
|
||||
case 0x0018:
|
||||
return MM::TempFreeMem();
|
||||
|
||||
case 0x001d:
|
||||
return MM::TempNewHandle();
|
||||
|
||||
case 0x001e:
|
||||
return MM::TempHLock();
|
||||
|
||||
case 0x001f:
|
||||
return MM::TempHUnlock();
|
||||
|
||||
case 0x0020:
|
||||
return MM::TempDisposeHandle();
|
||||
|
||||
|
||||
default:
|
||||
fprintf(stderr, "OSDispatch: selector %04x not implemented\n",
|
||||
selector);
|
||||
|
Loading…
x
Reference in New Issue
Block a user