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