-- Init.mesa  last edit by:
-- Smokey  Sep 15, 1980 2:36 PM
-- Bruce  September 24, 1980  11:50 AM

DIRECTORY
  Event USING [Notifier],
  MachineDefs USING [SwapReason],
  NubOps USING [Place],
  ToolWindow USING [AdjustProcType, TransitionProcType];
  
Init: DEFINITIONS =
  BEGIN
  
  usermessage: STRING;
  warning: CoreSwapMessages;
  bootLoaded: BOOLEAN;
  myPlace: NubOps.Place;
  
  CoreSwapMessages: TYPE = {none, cantSwap, evalstack, interrupt, maplog};
  LoadStateReason: TYPE = {debug, ucs, maplog};
  
  Debug: SIGNAL;
  Break: PROC;
  CheckMemory: PROC;
  CopyUserNamePassword: PROC;
  CoreSwapMsg: PROC [CoreSwapMessages];
  CoreSwap: PROCEDURE [why: MachineDefs.SwapReason];
  GetUserMessage: PROCEDURE;
  RestartMsg: PROC;
  UCSHandler: PROCEDURE;
  StartDebugger: PROCEDURE [boot: BOOLEAN ← TRUE];
  NewLoadState: PROCEDURE [why: LoadStateReason];
  WriteHerald: PROC [install: BOOLEAN ← FALSE];
  Files: PROCEDURE;
  
  -- tables
  DebugTab: PROGRAM;
  CommandTab: PROGRAM;
  DIGrammar: PROGRAM;
  
  -- modules
  DumpHot: PROGRAM;
  DumpCold: PROGRAM;
  PcHot: PROGRAM;
  UtilsHot: PROGRAM;
  
  
  FlushCaches: Event.Notifier;  -- knows initialization stuff
  TopLevel: PROC; -- resets Fobs and checks Symbol Table
  CheckSymTabLength: PROC; -- checks Symbol Table
  
  -- SourceWindows
  WiskOperations: PROGRAM;
  Adjust: ToolWindow.AdjustProcType;
  Transition: ToolWindow.TransitionProcType;
  
  END.