mirror of
https://github.com/ksherlock/mpw.git
synced 2024-06-09 09:29:30 +00:00
Temp Handle functions
This commit is contained in:
parent
f9508bbfda
commit
490519b0d1
|
@ -1474,4 +1474,73 @@ namespace MM
|
||||||
|
|
||||||
return SetMemError(0);
|
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 TempMaxMem(void);
|
||||||
uint16_t TempFreeMem(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:
|
case 0x0018:
|
||||||
return MM::TempFreeMem();
|
return MM::TempFreeMem();
|
||||||
|
|
||||||
|
case 0x001d:
|
||||||
|
return MM::TempNewHandle();
|
||||||
|
|
||||||
|
case 0x001e:
|
||||||
|
return MM::TempHLock();
|
||||||
|
|
||||||
|
case 0x001f:
|
||||||
|
return MM::TempHUnlock();
|
||||||
|
|
||||||
|
case 0x0020:
|
||||||
|
return MM::TempDisposeHandle();
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "OSDispatch: selector %04x not implemented\n",
|
fprintf(stderr, "OSDispatch: selector %04x not implemented\n",
|
||||||
selector);
|
selector);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user