!Trace file decoder. This is the original (non-JHB) version
include "SYSTEM:CONFIG.INC"
include "Inc:UTIL.IMP"
constinteger trace in length = 23
recordformat trace fm(integer context, inout, string (55) text)
recordformat tbuff fm(integer q,
record (trace fm)array t(0 : tbuffs),
integer p)
constinteger trace in = 0
constinteger trace out = 1
begin
record (tbuff fm)name tbuff
record (trace fm)name t
integer s, l, i, context
string (127) command = ""
on 9 start ; stop ; finish
connect file("$:TRACE", 0, s, l)
tbuff == record(s)
! printstring("Pointer p at "); write(tbuff_p, 0); newline
! printstring("Pointer q at "); write(tbuff_q, 0); newline
! prompt("Context: "); read(context)
context = stoi(cliparam)
for i = tbuff_p, 1, tbuffs + tbuff_q cycle
t == tbuff_t(i & tbuffs)
! printstring("Slot "); write(i & tbuffs, 0)
! printstring(": context "); write(t_context, 0)
! newline
if t_context = context start
if t_inout = trace in start
if command # "" start
spaces(trace in length - length(command))
printstring(command)
printstring(" / *** No reply ***")
newline
finish
command = t_text
else
command = "..." if command = ""
spaces(trace in length - length(command))
printstring(command)
printstring(" / ")
printstring(t_text)
newline
command = ""
finish
finish
repeat
if command # "" start
spaces(trace in length - length(command))
printstring(command)
printstring(" / *** No reply ***")
newline
finish
end of program