-- RamDefs.mesa Last Edited by Johnsson, May 21, 1980 11:04 AM DIRECTORY PrivateRamDefs; RamDefs: DEFINITIONS = BEGIN BootLocusVector: TYPE = PrivateRamDefs.BootLocusVector; MuImage: TYPE = POINTER TO PrivateRamDefs.PackedMuFile; LoadRamAndBoot: PROCEDURE [m: MuImage, boot: BOOLEAN ← FALSE, bank: [0..2] ← 0] RETURNS [constDiffs: CARDINAL]; -- loads the ram from the MuImage, checks the constants and returns number of constant mismatches. If boot=TRUE, also does a silent boot: first, a silent boot is done to guarantee that the machine is in ground state (everything running in ROM0 - ok for Mesa?) and then, after loading the ram image, another silent boot is done as specified in the blv field of the MuImage. ReadBlv: PROCEDURE [m: MuImage] RETURNS [BootLocusVector]; NoEtherNetBoard: ERROR; SilentBoot: PROCEDURE [blv: BootLocusVector]; -- check to see that a silent boot is possible (I.e., that Alto has an EtherNet board), sets boot locus vector and does the StartIO to cause a silent boot. StartIO: PROCEDURE [ac0: UNSPECIFIED] RETURNS [fromAc0: CARDINAL]; -- Do an SIO with ac0 passed in the Alto AC0. MuFileAlreadyOpen: ERROR; SuspiciousPackedMuFile: ERROR; ReadPackedMuFile: PROCEDURE [name: STRING] RETURNS [theImage: MuImage]; -- Read and swap in a Packed Mu file and check it to increase our confidence that it is a valid MuImage as prepared by the program PackMu.Run. ReleaseMuImage: PROCEDURE [theImage: MuImage]; -- Release the FileHandle for the current packed MuImage. IF muSeg#NIL, then swap it out first and get rid of the segment. Then release the file. END...