<> <> <> <> DIRECTORY PrincOps: TYPE USING [BytePC, FrameSizeIndex, localbase, PrefixHandle]; CatchFormat: DEFINITIONS = { Codebase: TYPE = PrincOps.PrefixHandle; CatchAction: TYPE = CARDINAL; cReject: CatchAction = 0; cResume: CatchAction = 1; cEnable: CatchAction = 2; cExit: CatchAction = 3; CatchIndex: TYPE = NAT; CatchNull: CatchIndex = CatchIndex.LAST; EnableItem: TYPE = RECORD[ start: PrincOps.BytePC, length: CARDINAL, index: CatchIndex, alsoNested: BOOL]; EnableIndex: TYPE = CARDINAL[0..CARDINAL.LAST/EnableItem.SIZE); EnableTableBody: TYPE = RECORD[SEQUENCE count: EnableIndex OF EnableItem]; EnableTable: TYPE = Codebase RELATIVE POINTER TO EnableTableBody; EnableHandle: TYPE = LONG POINTER TO EnableTableBody; <> <> CatchEVBody: TYPE = RECORD[SEQUENCE count: CatchIndex OF PrincOps.BytePC]; CatchEV: TYPE = Codebase RELATIVE POINTER TO CatchEVBody; nullCatchEV: CatchEV = LOOPHOLE[0]; CatchEVHandle: TYPE = LONG POINTER TO CatchEVBody; <> sigOffset: CARDINAL = PrincOps.localbase + 1; msgOffset: CARDINAL = PrincOps.localbase + 2; defaultFsi: PrincOps.FrameSizeIndex = 1; }.