Passing control between programs with all registers intact

The CSRL16J callable service allows you to transfer control to another program running under the same request block (RB) as the calling program. The CSRL16J callable service functions much like a branch instruction except that you can specify the contents of all 16 registers when you transfer control. You do not have to use one register to specify the address of the target routine, as you do with a branch instruction.

When you transfer control to the other routine, use the CSRL16J callable service to:

When the CSRL16J callable service is successful, control transfers to the target routine. After the target routine runs, it can transfer control to any program running under the same RB, including the calling program.