>AIF ('&ZOS_LVL' LT '02.02.00').NOEXEC
FWIW, The intended way for a program to indicate to z/OS (or other) macros
what z/OS release the coder is asserting may be assumed is via
SYSSTATE OSREL=xxx.
This sets GBLC &SYSOSREL. A new possible value is added every release.
The intended way to indicate to z/OS macros what architecture level may be
assumed is via SYSSTATE ARCHLVL=xxx, but that provides support only up to
architecture level-sets and thus nothing past zEC12.
This sets GBLA &SYSALVL.
In John's example with conditionally using EXECUTABLE=NO, understandable
if only for learning purposes, but as has been pointed out, unnecessary
for reality. If you want "executable=no when z14 and OK to execute when
before z14" then specifying executable=no works regardless of the machine
for which you are assembling and regardless of the z/OS release upon which
you will be running.
Peter Relson
z/OS Core Technology Design