HLASM Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


PROCESS

HLASM Programmer's Guide
SC26-4941-06

The assembler calls the exit with a request type of 5 (PROCESS) when the assembler is writing the object records, and it has a record for the exit to process. The address of the record is in the buffer pointer field, and the length is in the buffer length field.

z/VM and z/OS
The record length is always 80 bytes when you specify the NOXOBJECT assembler option. If you specify the XOBJECT assembler option, the record length is 80 bytes for fixed-length output or up to 8212 bytes for variable-length output. The record length for variable-length records does not include the 4-byte length of the record descriptor word (RDW), and the buffer pointer field points at the object data, not the RDW.
z/VSE
The record length is always 80 bytes.
The exit sets the return code in the Exit Parameter List to one of these values:
0
Indicates that the record has been accepted, and the assembler is to write it to the object data set. The exit can modify the record before it returns control to the assembler. The user exit can also insert extra records in the object data set by setting the reason code to 4. The assembler writes the current record and then calls the user exit with an empty buffer. The exit must place the additional object record in the area pointed to by the buffer pointer field. The exit can continue to supply additional records by setting the reason code to 4. The exit must keep track of when the assembler calls it with an empty buffer, and ensure that it resets the reason code to zero to resume normal processing.
Note: A reason code of 8 requests redrive of the exit.
4
Instructs the assembler to discard the record.
Note: A reason code of 8 requests redrive of the exit.
16
Instructs the assembler to make no further calls to the exit.

Although the user exit can insert or discard records, the assembler maintains the absolute record number and relative record number.

Table 1 summarizes the OBJECT and PUNCH exit processing.

Table 1. OBJECT and PUNCH exit processing summary
Request Value=Type Exit Return Code Action
1=OPEN 0 Assembler opens object data set. If reason code=16, REINIT call required.
4 Exit writes object records. If reason code=4, exit supplies data set information. If reason code=16, REINIT call required.
16 Assembler opens object data set, and makes no further calls to the exit.
2=CLOSE n/a Exit should close any data sets it opened, and release any storage it acquired.
4=WRITE 0 Exit writes record. If reason code=8, redrive requested. 1
5=PROCESS 0 Record accepted. Exit can modify record. If reason code=4, the assembler, after processing the current record, provides an empty buffer for the exit to provide additional record. If reason code=8, redrive requested. 1
4 Requests assembler to discard record. If reason code=8, redrive requested. 1
16 Assembler makes no further calls to the exit.
10=REINIT 0 Operation successful. If reason code=8, redrive requested. 1
16 Assembler makes no further calls to the exit.
Notes:
  1. When redrive is requested, the assembler issues any required error message and then recalls the exit with the same parameter list as before.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014