Previous Topic: PL/I Optimizing Compiler

Next Topic: CALL to Subroutine EXPAND


CALL to Subroutine SHRINK

Each CALL to SHRINK compresses one record image in main storage. There are five parameters (four required and one optional) which the user codes in a SHRINK CALL. The parameters are positional and must be coded in the same sequence as shown in below. The following are model statements for calling SHRINK:

Assembler Language

CALL SHRINK,(URA,CRA,URL,FDT[,RC]),VL

COBOL

CALL 'SHRINK' USING URA CRA URL FDT [RC].

PL/I Optimizer

CALL SHRINK(URA CRA URL FDT [RC]);

The following table describes the parameters available to the SHRINK Subroutine:

Parm

Meaning

URA

Uncompressed Record Address (Required)

The address of the in-core record to be compressed. The SHRINK subroutine does not alter this area. If the record is variable length, URA is the address of the RDW.

CRA

Compressed Record Address (Required)

The address of a user-supplied main storage area at least 290 bytes larger than the uncompressed record. The SHRINK subroutine places the compressed record in this area in variable length format, including the standard 4-byte RDW. If the length exceeds 32K, the RDW is x'80' followed by a 3 byte length.

URL

Uncompressed Record Length (Required)

The address of a halfword or fullword in which the user supplies the length of the uncompressed record in binary form. The fullword format is specified by setting the first byte to x'80' and supports data up to 24 megabytes in length. If variable-length records are being compressed, URL should be the same as the URA parameter, the address of the RDW.

FDT

File Descriptor Table Identifier (Required)

If the FDT is in sequential data set format, FDT is the address of a binary fullword containing the file number (a value between 0 and 31). This value must correspond to the value coded for the xx in the TABLxx DD statement, which defines the FDT. If the FDT is in load module format, the File Descriptor Table Identifier is the address of the SCB associated with this file.

RC

Return Code (Optional)

The address of a binary fullword in which the SHRINK subroutine can store a value to indicate whether an error occurred in compressing the record. If this optional parameter is coded, certain ABEND conditions are suppressed, and a return code value is stored in the binary fullword addressed by RC and in register 15. If no error occurs during processing by the SHRINK subroutine, register 15 is zero upon return to the user's program, and RC is set to zero.