-- MMInit.Mesa  Edited by Sandman on May 25, 1979  7:46 AM
-- Edited by Forrest on July 15, 1980  4:29 PM

DIRECTORY
  AltoDefs USING [PageNumber];

MMInit: DEFINITIONS =
  BEGIN

  MMMemory: PROGRAM;
  MMSignals: PROGRAM;
  MMTraps: PROGRAM;
  MMStart: PROGRAM [POINTER] RETURNS [PROGRAM];
  MMDebug: PROGRAM [PROGRAM];
  MMInterrupt: PROGRAM;
  MMModules: PROGRAM;
  MMProcess: PROGRAM;
  MMMakeBoot: PROGRAM;
  MMDisplay: PROGRAM;
  MMKeyboard: PROGRAM;
  
  SD: PROCEDURE;

  CheckInterrupt: PROCEDURE;
  wakeup: CONDITION;

  Processes: PROCEDURE;
  dead, frameReady, frameTaken, rebirth: CONDITION;
  ProcessTrap: PROCEDURE RETURNS [BOOLEAN];

  Memory: PROCEDURE [ff, lf: AltoDefs.PageNumber];
  PageState: TYPE = {free, inuse};
  pageMap: PACKED ARRAY [0..256) OF PageState;
        -- someday, support more than 256 pages??
  ffvmp, lfvmp: AltoDefs.PageNumber;

  MakeBootFile: PROCEDURE;

  END..