From bf47a41ecc1286b8e61900f50599d05b8adcd50c Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Tue, 19 Feb 2013 18:28:29 -0500 Subject: [PATCH] MoveHHi --- toolbox/mm.cpp | 23 +++++++++++++++++++++++ toolbox/mm.h | 3 +++ toolbox/toolbox.cpp | 4 ++++ 3 files changed, 30 insertions(+) diff --git a/toolbox/mm.cpp b/toolbox/mm.cpp index 4a515f0..e64c444 100644 --- a/toolbox/mm.cpp +++ b/toolbox/mm.cpp @@ -201,6 +201,29 @@ namespace MM return 0x0f0000; } + uint16_t MoveHHi(uint16_t trap) + { + /* + * on entry: + * A0: Handle to move + * + * on exit: + * D0: Result code. + * + */ + + uint32_t theHandle = cpuGetAReg(0); + + Log("%04x MoveHHi(%08x)\n", trap, theHandle); + + // check if it's valid. + + auto iter = HandleMap.find(theHandle); + if (iter == HandleMap.end()) return SetMemError(memWZErr); + + return SetMemError(0); + } + #pragma mark Pointers diff --git a/toolbox/mm.h b/toolbox/mm.h index 6024ad0..b29177c 100644 --- a/toolbox/mm.h +++ b/toolbox/mm.h @@ -45,6 +45,9 @@ namespace MM uint16_t HLock(uint16_t trap); uint16_t HUnlock(uint16_t trap); + + uint16_t MoveHHi(uint16_t trap); + } diff --git a/toolbox/toolbox.cpp b/toolbox/toolbox.cpp index 3f635d5..f7b7397 100644 --- a/toolbox/toolbox.cpp +++ b/toolbox/toolbox.cpp @@ -84,6 +84,10 @@ namespace ToolBox { d0 = MM::CompactMem(trap); break; + // MoveHHi (h: Handle); + case 0xa064: + d0 = MM::MoveHHi(trap); + break; // ReadDateTime (VAR sees: LONGINT) : OSErr; case 0xa039: