JOBCOM (Job Communication) Macro

The macro provides for communication between jobs or job steps in a partition.

For dynamic partitions, this applies only to z/VSE jobs and job steps within one VSE/POWER job, because a dynamic partition and its z/VSE control blocks are only existent during the execution of a VSE/POWER job.

Information being communicated is stored in a 256-byte area. The system provides such an area for each partition. Through the JOBCOM macro, a program either moves information into that area or retrieves information that had previously been stored there by another program. The area remains unaltered from one job (or job step) to the next. Unless it is modified through execution of the JOBCOM macro, the contents of the area remain unchanged over any number of jobs. The JOBCOM macro is not reentrant.

The program that issues the JOBCOM macro must provide a register save area 18 fullwords long. Prior to execution of the macro, register 13 must point to that save area.
Note: When the JOBCOM macro is used, the contents of registers 14 through 1 are destroyed.

Format

Read syntax diagramSkip visual syntax diagramnameJOBCOM FUNCT=PUTCOMGETCOM,AREA=address( r1),LENGTH=length( r2)

Requirements for the caller

AMODE:
24
RMODE:
24
ASC Mode:
Primary

Parameters

FUNCT=PUTCOM | GETCOM
This operand describes the function that the macro is to perform. Specifying PUTCOM causes information to be stored into the system-supplied area. The number of bytes to be moved is given by the LENGTH operand. If LENGTH yields a value smaller than 256, the remainder of the area is left unaltered.

Specifying GETCOM indicates that information is to be retrieved from the system-supplied area. Again, the number of bytes to be moved is given by the LENGTH operand.

AREA=address | (r1)
This operand gives the address of a field where the program provides (FUNCT=PUTCOM specified) or receives (FUNCT=GETCOM specified) the information to be moved.
LENGTH=length | (r2)
This operand specifies the number of bytes to be moved. The value is either given as a self-defining term or in register notation. If register notation is used, the specified register is expected to contain the length value.

Length should be a positive number up to 256. If it is zero or negative, no information gets moved. If it is greater than 256, only 256 bytes are moved.