TeleDebOps.mesa
Last Edited by: Stewart, April 25, 1983 11:10 am
DIRECTORY
IO,
LarkPrograms USING [Program],
OrderedSymbolTableRef,
Rope,
TeleLoad;
TeleDebOps: DEFINITIONS = {
Failed: ERROR; -- raised by communication failure.
Utilitites
Swab: PROC [a: CARDINAL] RETURNS [b: CARDINAL];
MCR: PROC [s: IO.STREAM];
GetHex: PROC [h: IO.Handle] RETURNS [LONG CARDINAL];
Basic facilities
FindByNameOrAddress: PROC [hostName: Rope.ROPE] RETURNS [htd: TeleDebOps.TeleDebugData];
GetCoreBlock: PROC[host: TeleDebugData, addr: TeleLoad.CoreAddress, count: CARDINAL]
RETURNS [TeleLoad.CoreBlock];
Show: PROC[host: TeleDebugData, addr: TeleLoad.CoreAddress, count: CARDINAL, words: BOOLFALSE];
FetchState: PROC [host: TeleDebugData, adv: TeleLoad.Advice ← [FALSE, FALSE, 0]];
Read: PROC [host: TeleDebugData, addr: TeleLoad.CoreAddress] RETURNS [CARDINAL];
ReadWord: PROC [host: TeleDebugData, addr: TeleLoad.CoreAddress] RETURNS [CARDINAL];
Write: PROC [host: TeleDebugData, addr: TeleLoad.CoreAddress, value: CARDINAL];
WriteWord: PROC [host: TeleDebugData, addr: TeleLoad.CoreAddress, value: CARDINAL];
FlushWrites: PROC [host: TeleDebugData];
ResetCache: PROC [host: TeleDebugData];
ShortCoreAddress: TYPE = CARDINAL;
TeleDebugData: TYPE = REF TeleDebugDataObject;
TeleDebugDataObject: TYPE = RECORD [
h: TeleLoad.Handle ← NIL,
in, out, edit: IO.Handle ← NIL,
origecho: IO.Handle ← NIL,
rh: IO.Handle ← NIL,
iS: IO.Handle ← NIL,
larkState: TeleLoad.State8086Object,
cacheCB: TeleLoad.CoreBlock,
dirty: BOOLEANFALSE,
program: LarkPrograms.Program
];
LoadProgram: PROC [host: TeleDebugData, program: LarkPrograms.Program, log: IO.STREAM];
VerifyProgram: PROC [host: TeleDebugData, program: LarkPrograms.Program, log: IO.STREAM];
global variables
loadWindowLow: TeleLoad.CoreAddress;
loadWindowHigh: TeleLoad.CoreAddress;
locMaxByte: NAT;
for convenience of TDX
host: TeleDebOps.TeleDebugData;
SetHostByRef: PROC [h: TeleDebOps.TeleDebugData];
Exported by TDX
SetValue: PROC [host: TeleDebugData, name: Rope.ROPE, value: CARDINAL, offset: NAT ← 0]
RETURNS [success: BOOL];
PrintVariable: PROC [host: TeleDebugData, name: Rope.ROPE, words: NAT ← 1];
}.
Modified by Swinehart, November 16, 1982 2:40 pm
Modified by Stewart, November 19, 1982 4:59 pm
Modified by Stewart, December 20, 1982 12:45 pm, add FindVariable and PV
Modified by Stewart, December 28, 1982 3:16 pm, faster FindVariable ProcedureEnclosing
Modified by Stewart, March 4, 1983 8:55 am, multiple instances, new protocol
Modified by Stewart, April 25, 1983 11:11 am, separated LarkPrograms