CSegDebugDefs:
CEDAR DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
Cmd: TYPE = Buttons.Button;
NumberCell, TextCell: TYPE = ViewerClasses.Viewer;
DataRec:
TYPE =
RECORD [
outer: Containers.Container ← NIL,
msg: Labels.Label,
cmd: CommandViewer, -- the commands
ts: ViewerClasses.Viewer, -- the typescript
in, out: IO.STREAM,
opData: ListerUtils.OpCodeArray,
height: INT ← 0,
autoNext: REF BOOL,
stopFlag: BOOLEAN ← FALSE,
offset: CARDINAL, byte: [0..1],
bytesShown, bytesSeen, shortfall: CARDINAL,
charsOnLine: INT ← 0,
en: INT
];
Handle: TYPE = REF DataRec;
CommandViewer:
TYPE =
RECORD [
gfVal: NumberCell,
bpcVal: NumberCell,
nVal: NumberCell,
keyString: TextCell,
rangeVal: NumberCell];
CmdIndex: TYPE = {stop, gfi, wpc, code, octal, bytes, ascii, dspLf, goLf, prefix, findEp, next, back, pd, link, evi, find, numMop, mopNum};
BYTE: TYPE = [0..256);
Operation:
TYPE =
RECORD [
inst: BYTE,
params: [0..2],
wild: PACKED ARRAY [1..2] OF BOOLEAN ← [FALSE, FALSE],
variant:
SELECT
OVERLAID *
FROM
ab => [param: PACKED ARRAY [1..2] OF BYTE],
wd => [wparam: CARDINAL],
ENDCASE ← NULL];
CSegDebugCommands: PROGRAM;
DoCommand: PROC [Handle, CmdIndex, Menus.MouseButton];
CSegDebugInterface: PROGRAM;
CellCard: PROC [handle: Handle, n: NumberCell] RETURNS [CARDINAL];
CellInt: PROC [handle: Handle, n: NumberCell] RETURNS [INT];
GetNumber: PROC [handle: Handle, contents: Rope.ROPE] RETURNS [INT];
GetSelectionValue: PROC [Handle] RETURNS [UNSPECIFIED];
GetLongSelectionValue: PROC [Handle] RETURNS [LONG UNSPECIFIED];
CSegDebugContents: PROGRAM;
MopToRope: PROC [Handle, BYTE];
RopeToMop: PROC [Handle, ROPE];
PutAsCode: PROC [Handle];
PutAsOctal: PROC [Handle];
PutAsAscii: PROC [Handle];
PutAsBytes: PROC [Handle];
DisplayPrefix: PROC [Handle];
PutEntryItem: PROC [handle: Handle, epi: CARDINAL];
PutAsProcDesc: PROC [handle: Handle, desc: UNSPECIFIED];
FindEP: PROC [handle: Handle, pc: CARDINAL];
GoToLf: PROC [handle: Handle, lf: PrincOps.FrameHandle];
DspLf: PROC [handle: Handle, lf: PrincOps.FrameHandle];
PutLink: PROC [handle: Handle, lki: CARDINAL];
BackupPc: PROC [handle: Handle];
GenOperations:
PROCEDURE [
handle: Handle, startPC: CARDINAL,
Action: PROC [handle: Handle, pc: CARDINAL, op: Operation] RETURNS [BOOLEAN],
n: CARDINAL] RETURNS [unused: CARDINAL];
CSegDebugSearch: PROGRAM;
MopForRope: PROC [handle: Handle, s: ROPE] RETURNS [b: BYTE];
RopeForMop: PROC [handle: Handle, b: BYTE] RETURNS [s: ROPE];
Search: PROC [handle: Handle] RETURNS [found: BOOLEAN];
END.