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; }. $CatchFormat.mesa, Edited by JGS, 11-Nov-81 15:53:26 Sweet, July 19, 1982 12:02 pm Satterthwaite November 27, 1985 2:46:13 pm PST if et[i].alsoNested = TRUE for any i IN [0..et.count) then et+SIZE[EnableTableBody[et.count]] is a valid EnableTable word after entry vector is CatchEV*2 Êâ˜Jšœ™Jšœ™Jšœ™Jšœ.™.J˜šÏk ˜ Jšœ œœ3˜GJ˜—šœ œ˜J˜Jšœ œ˜'J˜Jšœ œœ˜J˜J˜J˜J˜J˜Jšœ œœ˜Jšœ#œ˜(J˜šœ œœ˜J˜Jšœœ˜J˜Jšœ œ˜J˜—Jš œ œœœœ œ˜?J˜š œœœœœ ˜JJ˜—Jš œ œ œœœ˜AJš œœœœœ˜5˜Jšœ:™:Jšœ9™9—J˜—˜š œ œœœœ˜JJ˜—Jš œ œ œœœ ˜9Jšœœ˜#J˜Jš œœœœœ ˜2—˜šœ$™$J˜—Jšœ œ˜-Jšœ œ˜-J˜J˜(J˜J˜——…—BH