<<>> <> <> <> <> DIRECTORY MobDefs USING [SGIndex, RefLitIndex, TypeIndex, VersionStamp], RCMap USING [Base, Index], Symbols USING [SEIndex]; RTMob: DEFINITIONS = { <> VersionID: CARD = 03122; <> RTHeader: TYPE = MACHINE DEPENDENT RECORD [ versionIdent: CARD ¬ VersionID, refLitTable: RTBase RELATIVE LONG POINTER TO RefLitList, litBase: RTBase RELATIVE LONG POINTER, -- to uninterpreted words litLength: INT, rcMapBase: RTBase RELATIVE RCMap.Base, rcMapLength: INT, stampTable: RTBase RELATIVE LONG POINTER TO StampList, typeTable: RTBase RELATIVE LONG POINTER TO TypeList]; RTBase: TYPE = LONG BASE POINTER TO RTHeader; <> RefLitIndex: TYPE = MobDefs.RefLitIndex; RefLitItem: TYPE = MACHINE DEPENDENT RECORD [ referentType: TypeIndex, offset: INT, length: INT ]; RefLitList: TYPE = MACHINE DEPENDENT RECORD [ pad: CARD16 ¬ 0, elems: SEQUENCE length: CARD16 OF RefLitItem]; <> TypeIndex: TYPE = MobDefs.TypeIndex; TypeItem: TYPE = MACHINE DEPENDENT RECORD [ table: MobDefs.SGIndex, sei: Symbols.SEIndex, canonical: BOOLEAN, pad1: NAT15 ¬ 0, pad2: CARD16 ¬ 0, ct: CTInfo, ut: UTInfo, rcMap: RCMap.Index]; TypeList: TYPE = MACHINE DEPENDENT RECORD [ pad: CARD16 ¬ 0, elems: SEQUENCE length: CARD16 OF TypeItem]; <> CTInfo: TYPE = MACHINE DEPENDENT RECORD [index: INT]; <> StampList: TYPE = MACHINE DEPENDENT RECORD [ pad: CARD16 ¬ 0, elems: SEQUENCE limit: [1..CARD16.LAST] OF MobDefs.VersionStamp]; StampIndex: TYPE = MACHINE DEPENDENT RECORD [INT]; -- index in StampList AnyStamp: StampIndex = [0]; UTInfo: TYPE = MACHINE DEPENDENT RECORD [ version: StampIndex, -- AnyStamp => sei good in any table sei: Symbols.SEIndex]; }.