There seem to me to be some separable issues here.
The notion that long-displacement instructions should be avoided where they are
available seems to me to be a very dubious one. That said, it is clear beyond
cavil that they cannot be used where they are not available.
Resort to the macro language---I have made my view that those who cannot use it
are in effect crippled as assembly-language programmers clear on many
occasions---provides simple solutions.
There is an OPTABLE assembler option, and there is a system variable symbol,
&SYSOPT_OPTABLE, that makes the value of OPTABLE that is in effect for a
particular assembly available at assembly time. It is thus easy to use the
usual conditional-assembly machinery of the HLASM to assemble one set of
instructions for modern hardware and and another, different set of instructions
for obsolescent hardware where there is a need to support such obsolescent
hardware. I have done this, twice; and on both occasions I found it
straightforward to do, although it would be disingenuous not to concede that it
is also tedious to do.
To support USING ranges in assembling long-displacement instructions would be,
I think, to deprive these instructions of their raison d'ĂȘtre.
It may well be possible to equip the HLASM with machinery for issuing
suppressible warning messages when such USING-range excursions are detected.
Whether doing so would constitute a good use of the very limited resources that
appear to be available for maintaining the assembler is an again separable
question that is worth examining.
John Gilmore
Ashland, MA 01721, USA