DAT-off routines

The z/OS nucleus is mapped and fixed in central storage without attempting to make its virtual storage addresses equal to its real addresses. Systems that use 31-bit addressing save a V=F (virtual=fixed) nucleus.

Because the z/OS nucleus is not V=R, the nucleus code cannot turn DAT-off and expect the next instruction executed to be the same as if DAT was on.

To allow for the execution of DAT-off nucleus code, the z/OS nucleus consists of two load modules, one that runs with DAT on and one that runs with DAT off. Nucleus code that needs to run with DAT off must reside in the DAT-off portion of the nucleus.

When the system is initialized, the DAT-off portion of the nucleus is loaded into the highest contiguous central storage. Therefore, you must modify any user modules in the nucleus that run with DAT off so that they operate correctly above 16 megabytes. Among the things you may have to consider are:
To support modules in the DAT-off nucleus:

See z/OS MVS Programming: Authorized Assembler Services Guide and z/OS MVS Programming: Authorized Assembler Services Reference ALE-DYN for more information about modifying the DAT-off portion of the nucleus and the DATOFF macro.