<> <> <> <> DIRECTORY BcdDefs USING [SGIndex, RefLitIndex, TypeIndex, VersionStamp], RCMap USING [Base, Index], Symbols USING [SEIndex]; RTBcd: DEFINITIONS = { -- BCD extensions for RT info VersionID: CARDINAL = 03122; <> RTHeader: TYPE = RECORD [ versionIdent: CARDINAL _ VersionID, refLitTable: RTBase RELATIVE POINTER TO RefLitList, litBase: RTBase RELATIVE POINTER, -- to uninterpreted words litLength: CARDINAL, rcMapBase: RTBase RELATIVE RCMap.Base, rcMapLength: CARDINAL, stampTable: RTBase RELATIVE POINTER TO StampList, typeTable: RTBase RELATIVE POINTER TO TypeList]; RTBase: TYPE = LONG BASE POINTER TO RTHeader; <> RefLitIndex: TYPE = BcdDefs.RefLitIndex; RefLitItem: TYPE = RECORD [ referentType: TypeIndex, offset, length: CARDINAL]; RefLitList: TYPE = RECORD [SEQUENCE length: NAT OF RefLitItem]; <> TypeIndex: TYPE = BcdDefs.TypeIndex; TypeItem: TYPE = MACHINE DEPENDENT RECORD [ table (0): BcdDefs.SGIndex, sei (1: 0..13): Symbols.SEIndex, canonical (1: 14..15): BOOLEAN, ct (2): CTInfo, ut (3): UTInfo, rcMap (5): RCMap.Index]; TypeList: TYPE = RECORD [SEQUENCE length: NAT OF TypeItem]; <> CTInfo: TYPE = RECORD [index: CARDINAL]; -- offset of string from litBase StampList: TYPE = RECORD [SEQUENCE limit: [1..LAST[NAT]] OF BcdDefs.VersionStamp]; StampIndex: TYPE = RECORD [NAT]; -- index in StampList AnyStamp: StampIndex = [0]; UTInfo: TYPE = MACHINE DEPENDENT RECORD [ version (0): StampIndex, -- AnyStamp => sei good in any table sei (1): Symbols.SEIndex]; }.