In addition some macros generate more efficient code when the execution environment is newer. For macros that are sensitive to their environment, use the SYSSTATE macro to define the environment. During the assembly stage, SYSSTATE sets global symbols. Later in your source code the macro checks the global symbols and generates the correct code, which might mean avoiding using a z/Architecture instruction or an access register. For more information about SYSSTATE, refer to z/OS MVS Programming: Assembler Services Reference IAR-XCT.
All VSAM macros can be issued in 24-bit or 31-bit mode. The non-VSAM macro descriptions state whether it can be issued in 31-bit mode and which fields may reside above the 16 MB line. For information about which macros can be issued in 31-bit mode, refer to Macros available by access method.
For those macros that may be issued in 31-bit addressing mode, the macro description may state that when it is issued in 31-bit addressing mode, it expects all addresses to be valid 31-bit addresses. A valid, or clean, 31-bit address is a 4-byte address in which, when referring to location below the 16 MB line, the high order byte is zero, or, when referring to locations above the 16 MB line, the high order bit is zero. For more information, refer to Data above the 16MB line.