DIRECTORY BcdDefs USING [ BcdBase, CTHandle, FPHandle, FTIndex, ModuleIndex, MTHandle, NameRecord, SPHandle], BootFile USING [Header], BootStartList USING [Header, Base, StateVectorCounts], IO USING [STREAM], MBVM USING [Base, BIndex, CodeSeg, DataSeg, FileSeg, nullIndex, Segs], PrincOps USING [ControlLink, FrameSizeIndex, GlobalFrameHandle, PageNumber], Rope USING [ROPE], Segments USING [FHandle, SHandle], Time USING [Packed]; MB: DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; Handle: TYPE = REF Object; Object: TYPE = RECORD [ input, output, etherOutput, loadmapName: ROPE _ NIL, buildTime: Time.Packed _ [0], typescript, loadmap: IO.STREAM _ NIL, debug, germ, etherFormat, hexLoadmap: BOOLEAN _ FALSE, inputBCDs: REF InputBCDs _ NIL, lsseg: MBVM.DataSeg _ NIL, -- loadstate's MBVM segment bootHeader: REF BootFile.Header _ NIL, bootStream: IO.STREAM _ NIL, header: REF BootStartList.Header _ NIL, -- header portion of start list in MakeBoot's VM scriptBase: BootStartList.Base _ NIL, -- entire start list in MakeBoot's VM scriptBaseInVM: BootStartList.Base _ NIL, -- entire start list in target VM nProcesses, framePages, pdaPages, svSize, gftLength: CARDINAL _ 0, mdsBase, codeBase: MBVM.Base _ 0, vmMap: BitArray _ NIL, lastVMPage: MBVM.Base _ 0, nModules, nGFIs, nFilePages, nResidentPages, nBootLoadedPages: CARDINAL _ 0, stateVectorCounts: BootStartList.StateVectorCounts _ ALL[0] ]; BIndex: TYPE = MBVM.BIndex; nullIndex: BIndex = MBVM.nullIndex; BCount: TYPE = [0..LAST[BIndex]-1+1]; InputBCDs: TYPE = RECORD[ nBcds: BCount _ 0, bcds: SEQUENCE length: BCount OF BHandle _ NULL ]; BHandle: TYPE = REF BObject; BObject: TYPE = RECORD [ name: ROPE, bcd: BcdDefs.BcdBase, bcdSeg: MBVM.FileSeg, -- in boot file's address space bcdSegment: Segments.SHandle, -- in MakeBoot's address space mt: MT, gfiOffset: CARDINAL, files: FileItem ]; FileItem: TYPE = REF FileObject; FileObject: TYPE = RECORD [ link: FileItem, fti: BcdDefs.FTIndex, handle: Segments.FHandle, create: Time.Packed, ext: BOOL ]; -- TRUE => file's name has extension MT: TYPE = REF ModuleInfoSequence; ModuleInfoSequence: TYPE = RECORD [ SEQUENCE length: BcdDefs.ModuleIndex OF ModuleInfo ]; ModuleInfo: TYPE = RECORD [ mth: BcdDefs.MTHandle, frame: PrincOps.GlobalFrameHandle, code: MBVM.CodeSeg ]; BitArray: TYPE = REF BitArrayObject; BitArrayObject: TYPE = RECORD [PACKED SEQUENCE length: CARDINAL OF BOOL]; InitDebug: PROC [h: Handle]; FinishDebug: PROC; DumpSegs: PROC [segs: MBVM.Segs, msg: ROPE]; DumpFrames: PROC; DumpInputBcds: PROC; DumpBootHeader: PROC; DumpStartList: PROC; MakeBootVersion: PROC RETURNS [ROPE]; InitLoader: PROC [h: Handle]; FinishLoader: PROC; Load: PROC; Alloc: PROC [fsi: CARDINAL] RETURNS [p: POINTER]; AllocFault: ERROR; InitLoadmap: PROC [h: Handle]; FinishLoadmap: PROC; OpenLoadmap: PROC; InitMain: PROC [h: Handle]; FinishMain: PROC; Abort: SIGNAL; Error: PROC [msg: ROPE]; InitMemory: PROC; TurnOffStartTrap: PROC; StartControlLink: PROC RETURNS [PrincOps.ControlLink]; GetFrameWeight: PROC [index: PrincOps.FrameSizeIndex] RETURNS [weight: CARDINAL]; SetFrameWeight: PROC [index: PrincOps.FrameSizeIndex, weight: CARDINAL]; GetFsiChain: PROC [index: PrincOps.FrameSizeIndex] RETURNS [fsiNext: PrincOps.FrameSizeIndex]; SetFsiChain: PROC [index: PrincOps.FrameSizeIndex, fsiNext: PrincOps.FrameSizeIndex]; AllocateFrames: PROC [size: CARDINAL, single, resident: BOOL] RETURNS [frames: POINTER, inFrameHeap: BOOL]; ReportFrameAllocation: PROC; InitOutput: PROC [h: Handle]; FinishOutput: PROC; PreScanSegsForOutput: PROC [segs: MBVM.Segs] RETURNS [lastBootedPage: PrincOps.PageNumber]; WriteBootFile: PROC; WriteGermFile: PROC; ListType: TYPE = {resident, resDesc, in}; InitParse: PROC [h: Handle]; FinishParse: PROC; ProcessInput: PROC [file: ROPE]; EchoInput: PROC; WartFrame: PROC RETURNS [PrincOps.GlobalFrameHandle]; EnumerateCode: PROC [ state: ListType, proc: PROC [bh: BHandle, mth: BcdDefs.MTHandle] RETURNS [BOOL]]; EnumerateFramePacks: PROC [ state: ListType, proc: PROC [bh: BHandle, fph: BcdDefs.FPHandle] RETURNS [BOOL]]; EnumerateSpaces: PROC [ state: ListType, proc: PROC [bh: BHandle, sph: BcdDefs.SPHandle, index: CARDINAL] RETURNS [BOOL]]; EnumerateGlobalFrames: PROC [ state: ListType, proc: PROC [bh: BHandle, mth: BcdDefs.MTHandle] RETURNS [BOOL]]; EnumerateBCDs: PROC [ state: ListType, proc: PROC [bh: BHandle] RETURNS [BOOLEAN]]; EnumerateNoTrapModules: PROC [ proc: PROC [bh: BHandle, mth: BcdDefs.MTHandle] RETURNS [BOOL]]; EnumerateControlList: PROC [ proc: PROC [bh: BHandle, cth: BcdDefs.CTHandle] RETURNS [BOOL]]; InitScript: PROC [h: Handle]; FinishScript: PROC; MakeScript: PROC; InitUtilities: PROC [h: Handle]; FinishUtilities: PROC; NameToG: PROC [name: ROPE] RETURNS [PrincOps.GlobalFrameHandle]; NameToMTHandle: PROC [name: ROPE] RETURNS [bh: BHandle, mth: BcdDefs.MTHandle]; NameToFPHandle: PROC [name: ROPE] RETURNS [bh: BHandle, fph: BcdDefs.FPHandle]; NameToSPHandle: PROC [name: ROPE] RETURNS [bh: BHandle, sph: BcdDefs.SPHandle, index: CARDINAL]; NameToCTHandle: PROC [name: ROPE] RETURNS [bh: MB.BHandle, cth: BcdDefs.CTHandle]; InstanceToMTHandle: PROC [module, instance: ROPE] RETURNS [bh: BHandle, mth: BcdDefs.MTHandle]; RopeForNameRecord: PROC [bcd: BcdDefs.BcdBase, name: BcdDefs.NameRecord] RETURNS [ROPE]; DoAllModules: PROC [PROC [BHandle, BcdDefs.MTHandle] RETURNS [BOOL]] RETURNS [BOOL]; DoAllSpaces: PROC [PROC [BHandle, BcdDefs.SPHandle, CARDINAL] RETURNS [BOOL]] RETURNS [BOOL]; DoAllFramePacks: PROC [PROC [BHandle, BcdDefs.FPHandle] RETURNS [BOOL]] RETURNS [BOOL]; DoAllBCDs: PROC [PROC [BHandle] RETURNS [BOOL]] RETURNS [BOOL]; DoAllTopLevelConfigs: PROC [proc: PROC [MB.BHandle, BcdDefs.CTHandle] RETURNS [BOOL]] RETURNS [BOOL]; SetConfig: PROC [name: ROPE]; ResetConfig: PROC; VirtualGlobalFrame: PROC [PrincOps.GlobalFrameHandle] RETURNS [PrincOps.GlobalFrameHandle]; InitCache: PROC [h: Handle]; FinishCache: PROC; InitVM: PROC [h: Handle]; FinishVM: PROC; END. `MB.mesa Last edited by Sandman on 6-Aug-81 16:06:17 Last edited by Lewis on 17-Sep-81 14:54:32 Last edited by Levin on September 30, 1983 11:40 am Types and Related Declarations From MBDebug From MBDriver From MBLoader and friends From MBLoadmap From MBMain From MBOutput From MBParse From MBScript From MBUtilities From MBVMemory and MBCache Ê ó˜Jšœ™Jšœ,™,Jšœ*™*Jšœ3™3J˜šÏk ˜ šœœ˜JšœS˜S—Jšœ œ ˜Jšœœ#˜6Jšœœœ˜Jšœœ<˜FJšœ œ>˜LJšœœœ˜Jšœ œ˜"Jšœœ ˜J˜—Jšœ œ˜J˜Jš˜J˜Jšœ™J˜J˜Jšœœœ˜J˜Jšœœœ˜šœœœ˜Jšœ)œœ˜4J˜Jšœœœœ˜%Jšœ&œœ˜6Jšœ œ œ˜Jšœœ œÏc˜7Jšœ œœ˜&Jšœ œœœ˜Jšœœœž0˜YJšœ!œž%˜LJšœ%œž!˜LJšœ5œ˜BJšœœ ˜!Jšœœ˜Jšœ œ ˜Jšœ?œ˜LJšœ5œ˜;J˜J˜—Jšœœœ˜Jšœœ ˜#J˜Jšœœœ˜%šœ œœ˜J˜Jšœœœ ˜/Jšœ˜J˜—Jšœ œœ ˜šœ œœ˜Jšœœ˜ J˜Jšœœ ž˜6Jšœž˜=Jšœœ˜Jšœ œ˜J˜J˜J˜—Jšœ œœ ˜ šœ œœ˜J˜J˜J˜J˜Jšœ˜ Jšœž$˜(J˜—Jšœœœ˜"šœœœ˜#Jšœœ ˜2Jšœ˜—šœ œœ˜J˜J˜"Jšœœ˜Jšœ˜J˜—Jšœ œœ˜$Jšœœœœœ œœœ˜IJ˜J˜šœ ™ J˜JšÏn œœ ˜JšŸ œœ˜J˜JšŸœœœ œ˜,JšŸ œœ˜JšŸ œœ˜JšŸœœ˜JšŸ œœ˜—J˜Jšœ ™ ˜JšŸœœœœ˜%—J˜Jšœ™˜JšŸ œœ ˜JšŸ œœ˜J˜JšŸœœ˜ J˜Jš Ÿœœœœœ˜1Jšœ œ˜—J˜Jšœ™˜JšŸ œœ ˜JšŸ œœ˜—˜JšŸ œœ˜—J™Jšœ ™ ˜JšŸœœ ˜JšŸ œœ˜J˜Jšœœ˜JšŸœœœ˜J˜JšŸ œœ˜JšŸœœ˜JšŸœœœ˜6J˜JšŸœœ"œ œ˜QJšŸœœ*œ˜HJ˜šŸ œœ!˜2Jšœ$˜+—JšŸ œœD˜UJ˜šŸœœœœ˜=Jšœ œœ˜-J˜—JšŸœœ˜—J˜Jšœ ™ ˜JšŸ œœ ˜JšŸ œœ˜J˜šŸœœœ˜,Jšœ'˜.J˜—JšŸ œœ˜JšŸ œœ˜—J˜Jšœ ™ ˜Jšœ œ˜)J˜JšŸ œœ ˜JšŸ œœ˜J˜JšŸ œœœ˜ JšŸ œœ˜J˜JšŸ œœœ˜5šŸ œœ˜Jšœœ&œœ˜Q—šŸœœ˜Jšœœ&œœ˜Q—šŸœœ˜Jš œœ-œœœ˜b—šŸœœ˜Jšœœ&œœ˜Q—šŸ œœ˜Jšœœœœ˜=—šŸœœ˜Jšœœ&œœ˜@—šŸœœ˜Jšœœ&œœ˜@J˜J˜——Jšœ ™ ˜JšŸ œœ ˜JšŸ œœ˜J˜JšŸ œœ˜—J˜Jšœ™˜JšŸ œœ ˜ JšŸœœ˜J˜JšŸœœœœ˜@JšŸœœœœ&˜OJšŸœœœœ&˜OšŸœœœ˜!Jšœ-œ˜>—š Ÿœœœœœ!˜RJ˜—šŸœœœ˜1Jšœ&˜-J˜—šŸœœ1˜HJšœœ˜J˜—š Ÿ œœœœœ˜DJšœœ˜—š Ÿ œœœœœœ˜MJšœœ˜—š Ÿœœœœœ˜GJšœœ˜—š Ÿ œœœ œœ˜/Jšœœ˜—š Ÿœœœœœœ˜UJšœœ˜J˜—JšŸ œœœ˜JšŸ œœ˜J˜šŸœœ˜5Jšœ˜%—J˜—Jšœ™˜JšŸ œœ ˜JšŸ œœ˜J˜JšŸœœ ˜JšŸœœ˜—J˜šœ˜J˜J˜——…—x"Ë