As mentioned before, PASSNAP had to be extended to be able to show the static variables, too.
When doing those changes to PASSNAP, I did some other reworking, too:
I removed the $ chars from the internal proc names (no name conflicts, because the lower level procs now have artificial CSECT names)
to get access to the debug information which is stored at the end of the Code CSECT, PASSNAP needs to find the length of the code at runtime, when it only has the EPA (that is: the beginning of the Code CSECT). This was stored at EPA + 10 and overwrote part of the CSECT info. I moved it behind the CSECT info, at the position 2 bytes before the STATIC CSECT pointer, that is: displacement of the initial branch instruction minus 6. PASSNAP was changed at several places according to this logic (see PTRADD-calls).
the calls to TRACER will work no more, because TRACER still expects the code size at the old place (see some places in PASMONN.ASS). This will be reworked later.
I furthermore wanted PASSNAP to output the offsets and addresses of the variables, too - and the storage class (auto or static).
See the following example output of PASSNAP and compare it to the output of the same program (same Snapshot) in the 1979 Stanford documentation - see below in the Documentation paragraph. I added some static definitions in the main program and in the FIBONACCI procedure, which - of course - were not present in 1979.
|
Here you have the sourcecode of the 2016 version of FIBDEMO.PAS:
|