BasicLoadStateFormat.mesa
Last Modified by McJones, April 18, 1980 1:26 PM
Last Modified by Paul Rovner, 4-May-82 9:29:27
Last Edited by: Levin, May 19, 1983 2:05 pm
DIRECTORY
BcdDefs USING [BcdBase, ModuleIndex],
PrincOps USING [GFTIndex];
BasicLoadStateFormat: DEFINITIONS =
BEGIN
ModuleIndex: TYPE = BcdDefs.ModuleIndex;
LoadState: TYPE = LONG POINTER TO LoadStateObject;
versionID: CARDINAL = 03302; -- 03302 is compatible with Rubicon Pilot
LoadStateObject: TYPE = MACHINE DEPENDENT RECORD [
versionident(0): CARDINAL,
nBcds(1): ConfigIndex,
gft(2): ModuleTable,
bcds(2+SIZE[ModuleTable]): SEQUENCE length(2+SIZE[ModuleTable]): ConfigIndex OF BcdInfo];
ConfigIndex: TYPE = [0..377B];
nullConfig: ConfigIndex = LAST[ConfigIndex];
ModuleTable: TYPE = ARRAY PrincOps.GFTIndex OF ModuleInfo;
ModuleInfo: TYPE = MACHINE DEPENDENT RECORD [
fill0: [0..(LAST[CARDINAL]/(LAST[ConfigIndex]-FIRST[ConfigIndex]+1))/2] ← 0,
resolved: BOOLEAN,
config: ConfigIndex,
fill1: [0..LAST[CARDINAL]/(LAST[ModuleIndex]-FIRST[ModuleIndex]+1)] ← 0,
module: ModuleIndex];
nullModule: ModuleInfo = [resolved: FALSE, config: nullConfig, module: 0];
BcdInfo: TYPE = MACHINE DEPENDENT RECORD [
SELECT OVERLAID * FROM
ptr => [bcd: BcdDefs.BcdBase],
flags => [
fill: [0..LAST[CARDINAL]/4] ← 0,
exports, typeExported: BOOLEAN]
ENDCASE];
Bcd: TYPE = LONG POINTER TO BcdInfo;
END.