mirror of
https://github.com/ksherlock/mpw.git
synced 2025-01-07 00:29:44 +00:00
add back new tool calls.
This commit is contained in:
parent
cbb554174e
commit
c7c548e5ac
@ -188,6 +188,44 @@ namespace OS {
|
||||
cpuSetAReg(0, 0);
|
||||
return MacOS::dsCoreErr;
|
||||
}
|
||||
|
||||
uint16_t OSDispatch(uint16_t trap)
|
||||
{
|
||||
uint16_t selector;
|
||||
|
||||
|
||||
StackFrame<2>(selector);
|
||||
Log("%04x OSDispatch(%04x)\n", trap, selector);
|
||||
|
||||
switch(selector)
|
||||
{
|
||||
case 0x0015:
|
||||
return MM::TempMaxMem();
|
||||
|
||||
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);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace ToolBox {
|
||||
@ -403,12 +441,17 @@ namespace ToolBox {
|
||||
d0 = OS::Write(trap);
|
||||
break;
|
||||
|
||||
case 0xa207:
|
||||
d0 = OS::HGetVInfo(trap);
|
||||
break;
|
||||
|
||||
case 0xa008: // Create
|
||||
case 0xa208: // HCreate
|
||||
d0 = OS::Create(trap);
|
||||
break;
|
||||
|
||||
case 0xa009:
|
||||
case 0xa009: // Delete
|
||||
case 0xa209: // HDelete
|
||||
d0 = OS::Delete(trap);
|
||||
break;
|
||||
|
||||
@ -438,15 +481,20 @@ namespace ToolBox {
|
||||
d0 = OS::GetVol(trap);
|
||||
break;
|
||||
|
||||
case 0xa015: // SetVol
|
||||
case 0xa215: // HSetVol
|
||||
d0 = OS::SetVol(trap);
|
||||
break;
|
||||
|
||||
case 0xa214:
|
||||
d0 = OS::HGetVol(trap);
|
||||
break;
|
||||
|
||||
|
||||
case 0xa015: // SetVol
|
||||
d0 = OS::SetVol(trap);
|
||||
break;
|
||||
|
||||
case 0xa215: // HSetVol
|
||||
d0 = OS::HSetVol(trap);
|
||||
break;
|
||||
|
||||
|
||||
case 0xa018:
|
||||
d0 = OS::GetFPos(trap);
|
||||
break;
|
||||
@ -455,6 +503,10 @@ namespace ToolBox {
|
||||
d0 = OS::SetFPos(trap);
|
||||
break;
|
||||
|
||||
case 0xa051:
|
||||
d0 = OS::ReadXPRam(trap);
|
||||
break;
|
||||
|
||||
case 0xa060:
|
||||
d0 = OS::FSDispatch(trap);
|
||||
break;
|
||||
@ -519,7 +571,8 @@ namespace ToolBox {
|
||||
break;
|
||||
|
||||
// BlockMove (sourcePtr,destPtr: Ptr; byteCount: Size);
|
||||
case 0xa02e:
|
||||
case 0xa02e: // BlockMove
|
||||
case 0xa22e: // BlockMoveData
|
||||
d0 = MM::BlockMove(trap);
|
||||
break;
|
||||
|
||||
@ -527,6 +580,11 @@ namespace ToolBox {
|
||||
d0 = MM::HPurge(trap);
|
||||
break;
|
||||
|
||||
case 0xa04a:
|
||||
d0 = MM::HNoPurge(trap);
|
||||
break;
|
||||
|
||||
|
||||
case 0xA11D:
|
||||
d0 = MM::MaxMem(trap);
|
||||
break;
|
||||
@ -556,6 +614,11 @@ namespace ToolBox {
|
||||
d0 = MM::HGetState(trap);
|
||||
break;
|
||||
|
||||
case 0xa06a:
|
||||
d0 = MM::HSetState(trap);
|
||||
break;
|
||||
|
||||
|
||||
// MoveHHi (h: Handle);
|
||||
case 0xa064:
|
||||
d0 = MM::MoveHHi(trap);
|
||||
@ -568,7 +631,10 @@ namespace ToolBox {
|
||||
case 0xa9e3:
|
||||
d0 = MM::PtrToHand(trap);
|
||||
break;
|
||||
|
||||
case 0xa9ef:
|
||||
d0 = MM::PtrAndHand(trap);
|
||||
break;
|
||||
|
||||
case 0xa11a:
|
||||
d0 = MM::GetZone(trap);
|
||||
break;
|
||||
@ -581,11 +647,19 @@ namespace ToolBox {
|
||||
d0 = MM::HandleZone(trap);
|
||||
break;
|
||||
|
||||
case 0xa128:
|
||||
d0 = MM::RecoverHandle(trap);
|
||||
break;
|
||||
|
||||
// MaxApplZone
|
||||
case 0xa063:
|
||||
d0 = MM::MaxApplZone(trap);
|
||||
break;
|
||||
|
||||
case 0xa162:
|
||||
d0 = MM::PurgeSpace(trap);
|
||||
break;
|
||||
|
||||
// ReadDateTime (VAR sees: LONGINT) : OSErr;
|
||||
case 0xa039:
|
||||
d0 = OS::ReadDateTime(trap);
|
||||
@ -650,6 +724,19 @@ namespace ToolBox {
|
||||
d0 = MM::EmptyHandle(trap);
|
||||
break;
|
||||
|
||||
|
||||
case 0xa058:
|
||||
d0 = OS::InsTime(trap);
|
||||
break;
|
||||
|
||||
case 0xa059:
|
||||
d0 = OS::RmvTime(trap);
|
||||
break;
|
||||
|
||||
case 0xa05a:
|
||||
d0 = OS::PrimeTime(trap);
|
||||
break;
|
||||
|
||||
// resource manager stuff.
|
||||
|
||||
// Count1Resources (theType: ResType): Integer;
|
||||
@ -665,6 +752,14 @@ namespace ToolBox {
|
||||
d0 = RM::Get1IndType(trap);
|
||||
break;
|
||||
|
||||
case 0xa81a:
|
||||
d0 = RM::HOpenResFile(trap);
|
||||
break;
|
||||
|
||||
case 0xa81b:
|
||||
d0 = RM::HCreateResFile(trap);
|
||||
break;
|
||||
|
||||
case 0xa81c:
|
||||
d0 = RM::Count1Types(trap);
|
||||
break;
|
||||
@ -841,6 +936,10 @@ namespace ToolBox {
|
||||
d0 = Utility::BitTst(trap);
|
||||
break;
|
||||
|
||||
case 0xa88f:
|
||||
d0 = OS::OSDispatch(trap);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "Unsupported tool trap: %04x (%s)\n",
|
||||
trap, TrapName(trap));
|
||||
|
@ -57,6 +57,7 @@ namespace ToolBox {
|
||||
|
||||
bool Trace = false;
|
||||
|
||||
#ifdef OLD_TRAP_DISPATCH
|
||||
|
||||
uint16_t OSDispatch(uint16_t trap)
|
||||
{
|
||||
@ -95,7 +96,6 @@ namespace ToolBox {
|
||||
|
||||
}
|
||||
|
||||
#ifdef OLD_TRAP_DISPATCH
|
||||
void dispatch(uint16_t trap)
|
||||
{
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user