-- file: ListerDefs.mesa
-- last edited by Bruce;   6-Jan-81 16:44:13
-- last edited by Satterthwaite, 15-Dec-81 12:05:15

DIRECTORY
  Alloc: TYPE USING [Notifier],
  BcdDefs: TYPE USING [MTIndex, VersionStamp],
  FileSegment: TYPE USING [Pages],
  RTBcd: TYPE USING [RTBase],
  Space: TYPE USING [Handle],
  Symbols: TYPE USING [HTIndex, ISEIndex],
  SymbolTable: TYPE USING [Base],
  Table: TYPE USING [Base, Selector];

ListerDefs: DEFINITIONS = {
  
  IncorrectVersion: SIGNAL;
  Load: PROC [name: STRING] RETURNS [code, symbols, bcd: FileSegment.Pages];
  LoadFromConfig: PROC [configName, moduleName: STRING]
    RETURNS [code, symbols, bcd: FileSegment.Pages, mti: BcdDefs.MTIndex];
  NoFile, NoCode, NoSymbols, NoFGT, MultipleModules: SIGNAL;

  MapPages: PROC [FileSegment.Pages] RETURNS [Space.Handle];
  
  WriteVersionId: PROC [stamp: BcdDefs.VersionStamp];
  WriteVersions: PROC [
    version, creator, source: LONG POINTER TO BcdDefs.VersionStamp ← NIL];
  SetRoutineSymbols: PROC [s: SymbolTable.Base];
  PrintHti: PROC [hti: Symbols.HTIndex];
  PrintSei: PROC [sei: Symbols.ISEIndex];
  Indent: PROC [n: CARDINAL];
  PrintMachine: PROC [stamp: BcdDefs.VersionStamp];
  WriteFileID: PROC;
  
  -- Instead of Alloc
  
  AddNotify: PROC [proc: Alloc.Notifier];
  DropNotify: PROC [proc: Alloc.Notifier];
  Bounds: PROC [table: Table.Selector] RETURNS [base: Table.Base, size: CARDINAL];

  -- IODefs replacement
  
  WriteChar: PROC [CHARACTER];
  WriteString: PROC [STRING];
  WriteLine: PROC [STRING];
  WriteOctal: PROC [UNSPECIFIED];
  WriteDecimal: PROC [INTEGER];
  
 -- RTBcd extensions
 
  PrintRTBcd: PROC [RTBcd.RTBase];
  
  }.