-- 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.