With Language Environment, assembler programs that call a PL/I routine must follow the calling conventions defined by Language Environment. For example, Register 13 pointing to a save area, save areas properly back-chained, and the first word of the save area being zero. For detailed information, see the z/OS Language Environment Programming Guide.
If your PL/I main program is called by an assembler program and you want to convert your assembler program to use Language Environment-conforming assembler, you must either:
In either case, the called PL/I program is treated as a subroutine. Either of these programs run under the same Language Environment enclave where the assembler program is the main program and the called PL/I program is a subroutine.
There are three ways Language Environment-conforming assembler can pass control to an Enterprise PL/I subroutine:
If you recompile PL/I subroutines that use method 1 or 2 with Enterprise PL/I you don't need to include CEESG011 with your assembler program. If your assembler program uses instructions as described in method 3, you must always include CEESG011 with your assembler program, even if you recompile your PL/I subroutine with Enterprise PL/I.