-- Frame.Mesa  Edited by McJones on April 18, 1980  10:09 AM

DIRECTORY
  PrincOps: FROM "PrincOps" USING [
    ControlLink, FrameHandle, GlobalFrameHandle, returnOffset],
  Mopcodes: FROM "Mopcodes" USING [
    zALLOC, zFREE, zGADRB, zKFCB, zLADRB, zLLB, zSLB],
  SDDefs: FROM "SDDefs" USING [sCopy];

Frame: DEFINITIONS =

  BEGIN OPEN PrincOps;

  GetReturnLink: PROCEDURE RETURNS [ControlLink] = MACHINE CODE
    BEGIN Mopcodes.zLLB, returnOffset END;

  GetReturnFrame: PROCEDURE RETURNS [FrameHandle] = LOOPHOLE[GetReturnLink];
  SetReturnLink: PROCEDURE [ControlLink] = MACHINE CODE
    BEGIN Mopcodes.zSLB, returnOffset END;

  SetReturnFrame: PROCEDURE [FrameHandle] = LOOPHOLE[SetReturnLink];

  MyLocalFrame: PROCEDURE RETURNS [FrameHandle] = MACHINE CODE
    BEGIN Mopcodes.zLADRB, 0 END;

  MyGlobalFrame: PROCEDURE RETURNS [GlobalFrameHandle] = MACHINE CODE
    BEGIN Mopcodes.zGADRB, 0 END;

  Copy: PROCEDURE [old: GlobalFrameHandle] RETURNS [new: GlobalFrameHandle] =
    MACHINE CODE BEGIN Mopcodes.zKFCB, SDDefs.sCopy END;

  Alloc: PROCEDURE [CARDINAL] RETURNS [POINTER] = MACHINE CODE
    BEGIN Mopcodes.zALLOC END;

  Free: PROCEDURE [POINTER] = MACHINE CODE BEGIN Mopcodes.zFREE END;

  END.