-- STDebugDefs.mesa	Edited by Sweet, May 21, 1980  9:35 AM
--			Edited by Bruce, October 13, 1980  6:33 PM

DIRECTORY
  BcdDefs USING [VersionStamp],
  DebugFormat USING [LongSubString],
  Literals USING [LitRecord],
  StringDefs USING [SubString],
  Symbols USING [
    BTIndex, CTXIndex, HTIndex, ISEIndex, MDIndex, SEIndex, TransferMode, 
    TypeClass],
  Table USING [Base, Selector],
  Tree USING [Link];
  
STDebugDefs: DEFINITIONS =
  BEGIN
  
  STDebugMisc: PROGRAM;
  PutNodeName: PUBLIC PROCEDURE [n: UNSPECIFIED];
  PutTypeName: PROCEDURE [n: Symbols.TypeClass];
  PutModeName: PROCEDURE [n: Symbols.TransferMode];
  HashForSei: PROCEDURE [sei: Symbols.ISEIndex]
    RETURNS [hti: Symbols.HTIndex];
  SubStringForHash: PROCEDURE [
    ss: StringDefs.SubString, hti: Symbols.HTIndex];
  PutHashString: PROCEDURE [hti: Symbols.HTIndex];
  PSTSubString: PROCEDURE [ss: StringDefs.SubString];
  PSTString: PROCEDURE [s: STRING];
  
  STDebugSymbols: PROGRAM;
  PutAsSei: PROCEDURE [sei: Symbols.SEIndex];
  NextSe: PROCEDURE;
  PutAsHti: PROCEDURE [hti: Symbols.HTIndex];
  PutAsCti: PROCEDURE [cti: Symbols.CTXIndex];
  PutAsBti: PROCEDURE [bti: Symbols.BTIndex];
  PutAsMdi: PROCEDURE [mdi: Symbols.MDIndex];
  PutVersion: PROCEDURE [stamp: POINTER TO BcdDefs.VersionStamp];
  
  STDebugTrees: PROGRAM;
  showLinks: BOOLEAN;
  depthString: STRING;
  PutAsTree: PROCEDURE [t: Tree.Link];
  PutAsLti: PROCEDURE [lti: Literals.LitRecord];
  
  WriteMOpName: PROCEDURE [n: CARDINAL];
  AppendMopcodeName: PROCEDURE [s: STRING, n: CARDINAL]; -- without the 'z
  PutAsMopcode: PROCEDURE [n: CARDINAL];
  WriteOpName: PROCEDURE [n: CARDINAL, id: TableId];
  PutAsVariousRep: PROCEDURE [n: UNSPECIFIED];
  PRemoteSubString: PROCEDURE [ss: StringDefs.SubString];
  PRemoteString: PROCEDURE [s: STRING];
  
  -- machine dependent (STDebugXD or STDebugCP)
  TableId: TYPE = {fopcodes, mopcodes, debugtab};
  
  LockTableSegment: PROC [TableId] RETURNS [LONG POINTER]; 
  UnlockTableSegment: PROC [TableId];
  AppendLongSubString: PROC [s: STRING, ss: DebugFormat.LongSubString];
  PLongSubString: PROC [ss: DebugFormat.LongSubString];
  
-- supplied by user

  LockSymbols, UnlockSymbols: PROCEDURE;
  STCopyRead: PROCEDURE [from: POINTER, nwords: CARDINAL, to: POINTER];
  STRead: PROCEDURE [POINTER] RETURNS [UNSPECIFIED];
  TableBase: PROCEDURE [Table.Selector] RETURNS [Table.Base];
  TableSize: PROCEDURE [Table.Selector] RETURNS [CARDINAL];
  
  END.