-- file Starter.Mesa
-- last edited by Sandman, July 10, 1980  7:43 AM
-- Copyright  Xerox Corporation 1979, 1980

DIRECTORY
  BootmesaOps USING [BootData],
  CommanderDefs USING [InitCommander, WaitCommands],
  ImageDefs USING [BcdTime],
  MiscDefs USING [SetBlock],
  String USING [AppendString],
  Time USING [Append, Unpack];

Starter: PROGRAM
  IMPORTS CommanderDefs, ImageDefs, String, Time, MiscDefs EXPORTS BootmesaOps =
  BEGIN
  
  dataObject: PUBLIC BootmesaOps.BootData;
  imageName: STRING ← [40];
  
  MakeHerald: PROCEDURE =
    BEGIN
    String.AppendString[herald, "Alto/Mesa Bootmesa 6.0 of "L];
    Time.Append[herald, Time.Unpack[ImageDefs.BcdTime[]]];
    herald.length ← herald.length - 3; -- remove seconds
    RETURN
    END;
    
  RunInitCode: PROCEDURE =
    BEGIN
    CommanderDefs.InitCommander[herald];
    MiscDefs.SetBlock[@dataObject, NIL, SIZE[BootmesaOps.BootData]];
    dataObject.imageFileRoot ← imageName;
    END;
    
  herald: STRING ← [80];
  
  -- Main Body
  
  RunInitCode[];
  MakeHerald[];
  CommanderDefs.WaitCommands[];
  END..