-- DebugFormat.mesa last edit, Bruce September 24, 1980 12:21 PM DIRECTORY BcdDefs USING [SGIndex], Format USING [NumberFormat], MachineDefs USING [ConfigIndex, BYTE, GFHandle, WordLength], PrincOps USING [BytePC], Symbols USING [HTIndex, HTNull, SEIndex, SENull]; DebugFormat: DEFINITIONS = BEGIN OPEN MachineDefs; BitAddress: TYPE = RECORD [ base: LONG POINTER, offset: [0..WordLength], local: BOOLEAN ← FALSE, useStack: BOOLEAN ← FALSE]; Fob: TYPE = RECORD [ xfer: BOOLEAN, hti: Symbols.HTIndex, there: BOOLEAN, typeOnly: BOOLEAN, tsei: Symbols.SEIndex, addr: BitAddress, words: CARDINAL, -- normalized length bits: [0..WordLength), indent: [0..32), nesting: [0..32)]; NullFob: Fob = [ xfer: FALSE, hti: Symbols.HTNull, there: FALSE, typeOnly: FALSE, tsei: Symbols.SENull, addr: [NIL,0,FALSE], words: 0, bits: 0, indent: 0, nesting: 0]; Foo: TYPE = POINTER TO Fob; BreakBlock: TYPE = RECORD [ link: BBHandle, -- link to other blocks gf: GFHandle, condition, exp: STRING, pc: PrincOps.BytePC, -- relative pc num: CARDINAL, inst: BYTE, -- old inst symbolsAvailable: BOOLEAN, there: BOOLEAN, step: BOOLEAN, bt: BreakType]; CodeObject: TYPE = RECORD [ config: ConfigIndex, seg: BcdDefs.SGIndex]; BreakType: TYPE = RECORD [ex: EXOI, bt: BT]; EXOI: TYPE = {entry, exit, octal, in}; BT: TYPE = {break, trace}; BBHandle: TYPE = POINTER TO BreakBlock; LongSubStringDescriptor: TYPE = RECORD [ base: LONG STRING, offset, length: CARDINAL]; LongSubString: TYPE = POINTER TO LongSubStringDescriptor; NumberFormat: TYPE = Format.NumberFormat; OctalFormat: NumberFormat = [8,FALSE,TRUE,6]; END.