From 861ca9b83ae71708e1766c401fc554487469c1c5 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Fri, 27 Feb 2015 08:55:10 -0500 Subject: [PATCH] SetApplLimit toolcall --- toolbox/dispatch.cpp | 4 ++++ toolbox/mm.cpp | 20 ++++++++++++++++++++ toolbox/mm.h | 2 ++ toolbox/toolbox.cpp | 4 ++++ 4 files changed, 30 insertions(+) diff --git a/toolbox/dispatch.cpp b/toolbox/dispatch.cpp index c490c64..6b58927 100644 --- a/toolbox/dispatch.cpp +++ b/toolbox/dispatch.cpp @@ -622,6 +622,10 @@ namespace ToolBox { d0 = MM::HUnlock(trap); break; + case 0xa02d: + d0 = MM::SetApplLimit(trap); + break; + // BlockMove (sourcePtr,destPtr: Ptr; byteCount: Size); case 0xa02e: // BlockMove case 0xa22e: // BlockMoveData diff --git a/toolbox/mm.cpp b/toolbox/mm.cpp index 21018e0..7f8daa9 100644 --- a/toolbox/mm.cpp +++ b/toolbox/mm.cpp @@ -1567,6 +1567,26 @@ namespace MM return 0; } + uint16_t SetApplLimit(uint16_t trap) + { + // PROCEDURE SetApplLimit (zoneLimit: Ptr); + + /* + * on entry + * A0 Pointer to desired new zone limit + * + * on exit + * D0 Result code + */ + + uint32_t zoneLimit = cpuGetAReg(0); + + Log("%04x SetApplLimit(%08x)\n", trap, zoneLimit); + return 0; + } + + + uint32_t PurgeSpace(uint16_t trap) { // PROCEDURE PurgeSpace (VAR total: LongInt; VAR contig: LongInt); diff --git a/toolbox/mm.h b/toolbox/mm.h index 12db5f3..6b8b909 100644 --- a/toolbox/mm.h +++ b/toolbox/mm.h @@ -115,6 +115,8 @@ namespace MM uint16_t MaxApplZone(uint16_t trap); + uint16_t SetApplLimit(uint16_t trap); + // OS Dispatch uint16_t TempMaxMem(void); diff --git a/toolbox/toolbox.cpp b/toolbox/toolbox.cpp index d97f42c..6b4b454 100644 --- a/toolbox/toolbox.cpp +++ b/toolbox/toolbox.cpp @@ -273,6 +273,10 @@ namespace ToolBox { d0 = MM::HUnlock(trap); break; + case 0xa02d: + d0 = MM::SetApplLimit(trap); + break; + // BlockMove (sourcePtr,destPtr: Ptr; byteCount: Size); case 0xa02e: // BlockMove case 0xa22e: // BlockMoveData