<> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE], TeleLoad USING [AddressSpace, CoreAddress, CoreBlock, State8086Object]; LarkPrograms: CEDAR DEFINITIONS = { <<>> <> IDType: TYPE = {procedure, variable}; STObject: TYPE = RECORD [ id: Rope.ROPE _ NIL, addr: INT _ 0, type: IDType _ variable ]; <> nullItem: STObject; STItem: TYPE = REF STObject; SymbolTable: TYPE = REF SymTabObject; SymTabObject: TYPE = RECORD [ e: SEQUENCE length: NAT OF STObject ]; <> PatchItem: TYPE = REF PatchItemObject; PatchItemObject: TYPE = RECORD [ name: Rope.ROPE, address: TeleLoad.CoreAddress, wordValue: CARDINAL ]; Program: TYPE = REF ProgramObject; ProgramObject: TYPE = RECORD [ program: LIST OF TeleLoad.CoreBlock _ NIL, patchList: LIST OF PatchItem _ NIL, programName: Rope.ROPE _ NIL, addressSpace: TeleLoad.AddressSpace _ main, startState: TeleLoad.State8086Object, searchTable: REF SymTabObject _ NIL, nameTable: REF SymTabObject _ NIL ]; <> EnumeratePrograms: PROC [proc: PROC [program: Program] RETURNS [stop: BOOL]]; <> FetchProgram: PROC [programName: Rope.ROPE] RETURNS [p: Program]; <> AddOrReplaceProgram: PROC [program: Program]; <> ResetPatchList: PROC [program: Program]; <> ReadProgramFromDisk: PROC [objectFileName: Rope.ROPE, log: IO.STREAM _ NIL, addressSpace: TeleLoad.AddressSpace _ main] RETURNS [Program]; ReadProgramFromMBFile: PROC [mbFileName: Rope.ROPE, baseAddress: TeleLoad.CoreAddress, log: IO.STREAM _ NIL, addressSpace: TeleLoad.AddressSpace _ main] RETURNS [Program]; <> BuildSearchTable: PROC [program: Program, name: Rope.ROPE, log: IO.STREAM _ NIL]; <> PatchProgramWord: PROC [program: Program, address: TeleLoad.CoreAddress, wordValue: CARDINAL, name: Rope.ROPE _ NIL]; <> PatchFromFile: PROC [program: Program, fileName: Rope.ROPE, log: IO.STREAM _ NIL] RETURNS [LIST OF PatchItem]; <> ProcedureEnclosing: PROC [program: Program, addr: TeleLoad.CoreAddress, searchMonitor: BOOL _ TRUE] RETURNS [s: STObject]; <> FindVariable: PROC [program: Program, name: Rope.ROPE, searchMonitor: BOOL _ TRUE] RETURNS [item: STObject, found: BOOL]; <> Monitor: PROC [log: IO.STREAM _ NIL, addressSpace: TeleLoad.AddressSpace _ main] RETURNS [mon: Program]; }. April 25, 1983 11:08 am, LCS, created from TeleDebOps August 10, 1983 12:07 pm, LCS, added ReadProgramFromMBFile August 30, 1983 3:11 pm, LCS, added addressSpace arg to Monitor