On Wed, Jun 5, 2019 at 11:39 AM Charles Mills <[email protected]> wrote:
> O'opcode will tell you what machine the programmer claimed he was
> targeting. What better test is there? Yes, he might be lying or confused,
> but no matter what you test at assembly time, the "user" (of your source
> code -- programmer IOW) might be lying or confused. You could introduce
> your own macro MCKOWN TARGET=Z14 and set GBLB's, but still, the programmer
> might be lying or confused.
>
True. I am over doing it on this. I have, on the 2.3 system (on a Z14), put
in code that now looks like:
LHI R0,LANSWER LENGTH OF ANSWER AREA (4K)
AIF ('&ZOS_LVL' LT '02.02.00').NOEXEC
AIF ('&SYSOPT_CURR_OPTABLE' LT 'Z14').NOEXEC
STORAGE OBTAIN, X
BNDRY=PAGE, * 4K BOUNDRY X
FIX=SHORT, * MUST BE FIXED FOR CP X
LENGTH=(0), * 4K LENGTH X
EXECUTABLE=NO, * X
COND=YES * CONDITIONAL
AGO .NOEXEC1
.NOEXEC ANOP
STORAGE OBTAIN, X
BNDRY=PAGE, * 4K BOUNDRY X
FIX=SHORT, * MUST BE FIXED FOR CP X
LENGTH=(0), * 4K LENGTH X
COND=YES * CONDITIONAL
.NOEXEC1 ANOP
>
> For EXECUTABLE=NO, it appears the MVS guys did it right. If the operand is
> accepted at assembly time, there is no possible harm at run time (assuming
> YOU are not lying or confused <g>).
>
> Charles
>
--
This is clearly another case of too many mad scientists, and not enough
hunchbacks.
Maranatha! <><
John McKown