Hi
>BPRing CS:<segstart> CS<segend> is ok, except that it would limit me to only four segments.
BPR breakpoints don't fall into the maximum-of-4 limitation of BPM bps if that's what you mean. You should be able to BPR the entire module by specifying the taskname, if you then type BL you should see breakpoints set up for every segment. You can also include or exclude specific segments from breakpoint activation with the CSIP command, this is an old holdout of early Softice that only works on 16bit apps.
I just did a backtrace of a 16bit app with several segments with
BPRW
taskname T
and displayed it with SHOW. This may not be your ideal solution, but at least you get a record of the exact code execution, /screendumps of the backtrace will give you output, (if you were to do backtracing on 32bit PE files in Win98, TraceDump is the ultimate tool of choice of course...
Indirection with 16bit apps does seem difficult because of the segment/selector information built into address type values. I tried several combinations of indirection operators and couldn't get the contents of cs:ip returned either, presumably you want to test the opcodes for a call function. I don't know how else you could test for a CALL, the only thing you might be able to test for is a segment change using the underscore "_" directive to evaluate CS as a constant at the time the breakpoint is set, a Call to another segment should be picked up this way
BPRW
taskname R if (cs != _cs)
Kayaker