-- XXDebugDefs.mesa  Edited by Sweet, June 10, 1980  10:11 AM

DIRECTORY
  DebugFormat: FROM "debugformat",
  Menu: FROM "menu" USING [MCRType],
  FormSW: FROM "FormSW",
  RESOut: FROM "RESOut" USING [WindowsHandle],
  State: FROM "state";

XXDebugDefs: DEFINITIONS =
  BEGIN
  STSource: TYPE = {allocator, file, copier, alFrame, spFrame, none};

  XXDebugCommands: PROGRAM;
  handle: RESOut.WindowsHandle;
  ParamNotify: FormSW.NotifyProcType;
  MenuProc: Menu.MCRType;

  XXDebugGlobals: PROGRAM;
  stSource: STSource;
  stFile: STRING;
  ClearFileSource: PROCEDURE;
  SourceChanged: FormSW.EnumeratedNotifyProcType;
  GS: PROCEDURE RETURNS [State.GSHandle];
  TopCtx: PROCEDURE RETURNS [State.Handle];
  PCCache: PROCEDURE RETURNS [POINTER];
  PCHead: PROCEDURE RETURNS [UNSPECIFIED];

  XXDebugInterface: PROGRAM;

  XXDebugContext: PROGRAM;
  PutAsContext: PROCEDURE [handle: State.Handle];
  PutAsStack: PROCEDURE [stack: POINTER TO State.Stack];
  PutTopCtx: PROCEDURE;
  PutTos: PROCEDURE;
  PutAsFoo: PROCEDURE [foo: DebugFormat.Foo];
  PutAsBB: PROCEDURE [brk: DebugFormat.BBHandle];
  
  XXDebugUser: PROGRAM;
  UserREAD: PROCEDURE [loc: LONG POINTER] RETURNS [val: UNSPECIFIED];  
  UserCopyRead: PROCEDURE [
    from: LONG POINTER, nwords: CARDINAL, to: LONG POINTER];
  UserOctalRead: PROCEDURE [loc: LONG POINTER];
  nString: STRING;

  XXDebugPC: PROGRAM;
  PrintPCCache: PROCEDURE;
  PrintCacheItem: PROCEDURE [item: UNSPECIFIED];
  PrintNextCacheItem: PROCEDURE;
  PrintListNode: PROCEDURE [p: POINTER];
  PrintNextListNode: PROCEDURE;
  nodeSizeString: STRING;
  nodeLinkString: STRING;
  END.