Use this system macro to modify a protected main storage area by an
application program.
Format
- label
- A symbolic name can be assigned to the macro statement.
- symbol1
-
- GLOBALn
- To unprotect the global area of n
- APLn
- To unprotect the application program area of n in permanent
storage.
- KEY=reg
- Optional parameter. If coded, the general register specified will
contain the protect key value. Valid registers are R1 through R7, R14,
and R15.
- KEYA=symbol2|(reg2)
- Optional parameter. If coded, the address referenced will contain
the protect key value. Valid registers are R1 through R7, R14, and
R15.
Entry Requirements
R9 must contain the address of the ECB being processed.
Return Conditions
- Control is returned to the next sequential instruction (NSI).
- The contents of R14 and R15 are unknown. The contents of all other
registers are preserved across this macro call.
- The condition code is saved during processing of this macro.
- On return, the current PSW protection key is identical to the protection
key assigned to the specified core area.
Programming Considerations
- This macro can be run on any I-stream.
- The KEYCC macro requires 4 bytes of storage if the KEY parameter is coded,
and 6 bytes of storage if the KEYA parameter is coded.
- The core area is unprotected for the ECB issuing the change protect key
(KEYCC) macro.
- After the macro has been issued, no store can be processed in
any of the previously unprotected areas (ECB, held data blocks, fixed
unprotected core) without first issuing the restore protect key (KEYRC)
macro.
- Neither the WAITC macro or any macros with implied waits can be issued
between the KEYCC and KEYRC macros.
- No fast-link macro can be issued between the KEYCC and KEYRC
macros.
Examples
None.