Placing user DAT-OFF routines in the DAT-OFF nucleus

To add 31-bit DAT-off code to the DAT-off nucleus, and execute the code, follow these steps:
  1. Create a separate module containing the code that runs with DAT-off, as follows:
    • Use entry point IEAVEURn, where n is a number from 1 to 4. MVS™ reserves four entry points in the DAT-off nucleus for AMODE 31 user code.
    • Give the module AMODE 31 and RMODE ANY attributes.
    • Make sure the DAT-off code does not alter register 0; it contains the return address to the routine that issues the DATOFF macro.
    • Use BSM 0,14 as the return instruction.
  2. Linkedit your DAT-off module (IEAVEURn) into SYS1.NUCLEUS. The member names are IEAVEDAT and IEAV2DAT; input to the linkage editor must include an ORDER and ENTRY control statement for entry point IEAVEDAT in both modules.
  3. Within a DAT-on routine, code a DATOFF macro to invoke the module created in step 1:
    DATOFF  INDEX=INDUSRn
    The suffix of the index (n) is the same as the suffix of the DAT-off module‘s entry point, IEAVEURn. See z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN for details on coding the DATOFF macro.
Note: You will need to re-linkedit your IEAVEURn module(s) into the DAT-off nucleus if you re-install the MVS base control program.
To add 64-bit DAT-off code to the DAT-off nucleus, and execute the code, follow these steps:
  1. Create a separate module containing the code that runs with DAT-off, as follows:
    • Use entry point IEAV64Un, where n is a number from 1 to 4. MVS reserves four entry points in the DAT-off nucleus for AMODE 64 user code. Give the module AMODE 64 and RMODE ANY attributes.
    • Give the module AMODE 31 and RMODE ANY attributes.
    • Make sure the DAT-off code does not alter register 0; it contains the return address to the routine that issues the DATOFF macro.
    • Use BR 14 as the return instruction.
  2. Linkedit your DAT-off module (IEAVEURn) into SYS1.NUCLEUS. The member name is IEAV2DAT; input to the linkage editor must include an ORDER and ENTRY control statement for entry point IEAVEDAT.
  3. Within a DAT-on routine, code a DATOFF macro to invoke the module created in step 1:
    DATOFF INDEX=INDUSR64n
    The suffix of the index (n) is the same as the suffix of the DAT-off module‘s entry point, IEAV64Un. See z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN for details on coding the DATOFF macro.
Note: You will need to re-linkedit your IEAV64Un module(s) into the DAT-off nucleus if you re-install the MVS base control program.