Re: os version check
Thanks for this information, Robert. The only difficulty I see in the information you provided is that I
won't be able to determine if the OS is NitrOS-9 pre-v1.22f and OS-9 Level 2 without having to read a second
file. In either case, I have to read and compare data to make the determination. Using the -n option is much
less code, and easier to process. I'm going to keep this info anyway, because I may find it useful later.
Update on DCom. I have added the OS option flag (-n) and added the boolean flag, plus condition code to
determine which form of TMode to use. I have corrected the tpyo in the parameter being passed to DData2. The
211 error in DVars turned out to be a simple fix.
My memory was jogged by it. I remember having that bug before. It was because I wasn't checking for EOF in the
loop that read through the variables file seeking a match to the currently identified variable. I added
EOF(#DC5path) to the exit condition, and the error disappeared.
DCom now makes it to the DInstr routine before another problem occurs. Testing with a small procedure named
'elapsed', once DInstr is called, it prints out 2 of 3 print statements containing comment lines. Since
there is nothing in the statements except PRINT and the string containing the comment, it made no sense. I
used another procedure named 'ribbsmain' as the test, and DTypes reported a 211 error. I'm reasonable
sure it's another case of needing the EOF(#datapath) in the exit condition. However, it doesn't end there.
DTypes builds, and prints out, the TYPE, DIM and PARAM statements. Before those statements are output, a
series of comment lines are generated that contain specifics of the data accumulated by DCom as it
concerns the variables and line references. DCom reported 1 variable, -512 complex variables, and a
total of 13 program variables. Obviously, that data cannot be correct. I believe I know what is the
culprit. In decoding the I-Code manually (I did that a few weeks ago), I discovered there is a unused record
in the DSAT for elapsed. I think it may be the same problem I always had with type statements in DCom.
Packed I-Code does not contain everything related to variables. There are references to the variables as
they relate to the data memory allocation in the DSAT. If the variable was not used in the instruction
statements, any and all pointers to that data are lost in packing. I can pretty much figure out where the
gaps in the allocation are, and their size, but when it comes to records (your TYPE statements), there is no
(Continue reading)