Jojhn writes: > The main drawback with DEBUG is that in a code disassembly, the branch > and link's do not show the target procedure name. With a little > analysis, a good disassembler could show those targets. Or am I missing > something? Depends a bit on the language. What you are seeing is that the branches have been patched to point to an "import stub" which is necessary for all inter-space procedure calls such as to an XL like XL.PUB.SYS or NL.PUB.SYS (i.e. Intrinsics, language runtime libraries, and subsystems like Image). It's possible (though non trivial) to determine what the actual target of the branch is, or you can simply run the program to that point and step through the code to see where it ends up. Local procedure calls and GOTOs in your program should display the actual address in most cases (unless the branch target is out of range in which case you may see a branch to a long branch stub). While annoying, I've not found this to be that big of a problem when debugging. I suspect this is one area where Avatar does a better job of showing you what's actually being called, but again I'll defer to Stan for details. We currently teach a three day class at HP entitled "PA-RISC Understanding Code" which covers the PA-RISC instruction set and Procedure Calling Conventions. This is currently an internal-only class for HP engineers. Out of curiosity, how many people would be interested in taking such a class if it were offered by HP to customers? G.