Processing of PRTEXIT

The PRTEXIT exit module is used in place of the SYSPRINT data set.

Table 1. PRTEXIT processing
Action by compiler Action by exit module
Loads the exit module (mod3) during initialization  
Calls the exit module with an OPEN operation code (op code) Prepares its output destination for processing. Passes the status of the OPEN request to the compiler.
Calls the exit modules with a PUT op code when a line is to be printed, supplying the address and length of the record that is to be printed Passes the status of the PUT request to the compiler by a return code. The first byte of the record to be printed contains an ANSI printer control character.
Calls the exit module with a CLOSE op code when the end-of-data is presented Releases any resources that are related to its output destination

PRTEXIT parameters

The compiler uses 10 parameters, passed by reference, to communicate with the exit module. The return code, data length, and data buffer parameters are set by the exit module for return to the compiler; the other items are passed from the compiler to the exit module.

Table 2. PRTEXIT parameters
Parameter number Parameter item Description of item
1 User-exit type Halfword that identifies which user exit is to perform the operation.

3=PRTEXIT

2 Operation code Halfword that indicates the type of operation:
  • 0=OPEN
  • 1=CLOSE
  • 3=PUT
3 Return code Fullword, set by the exit module, that indicates the success of the requested operation:
  • 0=Operation was successful
  • 12=Operation failed
4 User-exit work area Six-fullword work area provided by the compiler for use by the user-exit module.

Third word: for use by PRTEXIT

5 Data length Fullword that specifies the length of the record being supplied by the PUT operation (the compiler sets this value to 133)
6 Data buffer or str3 Data buffer where the compiler has placed the record to be printed by the PUT operation.

str3 applies only to OPEN. The first halfword (on a halfword boundary) contains the length of the string, followed by the string.

7 Not used (Used only by LIBEXIT and MSGEXIT)
8 Not used (Used only by LIBEXIT)
9 Not used (Used only by LIBEXIT)
10 Not used (Used only by LIBEXIT)