CSRCMPSC (Compression/Expansion) Macro

The CSRCMPSC macro is used to compress data (to save DASD space, for example) and to expand previously compressed data.

Data compression and expansion services allow you to compress certain types of data so that the data occupies less space while you are not using it. You can then restore the data to its original state when you need it.

For detailed guide information about how to compress and expand data, refer to the Using z/VSE Macro Support.

Format

Read syntax diagramSkip visual syntax diagramname CSRCMPSC CBLOCK=address( r1),RETCODE=address( r2)

Requirements for the caller

AMODE:
31
ASC Mode:
Primary or AR (access register)

Parameters

CBLOCK=address | (r1)
Specifies the address of a 36-byte input/output area (compression block) which contains the parameter information for the compression/expansion service. The area is mapped by DSECT CMPSC in macro CSRYCMPS and contains information such as the compression and expansion dictionaries and the source and target areas, together with their lengths.
RETCODE=address | (r2)
Specifies the address of an 8-byte area into which the return code is to be copied from R15.

Return Codes in Register 15

00
Successful completion of CSRCMPSC macro.
04
Source operand was not completely processed. No room is left in the source operand.
10
A field in the CSRYCMPS area does not contain a value.
14
The symbol size (CMPSC_SYMSIZE) in the CSRYCMPS area does not have a value of 1 through 5.
18
The target area for compression or the source area for expansion is not large enough to hold even one compression symbol. The length of the area is specified in the CSRYCMPS area.
1C
The length of the string represented by a single compression symbol exceeds the limit of 260 bytes.
20
The number of child characters for a compression dictionary entry exceeds 260.
24
A compression dictionary entry indicates that it contains more than six child characters, not including sibling characters.
28
The number of extension characters for a compression dictionary entry with 0 or 1 child characters exceeds 4.
2C
A sibling descriptor compression dictionary entry has a count of 0.
30
Expansion of a compression symbol used more than 127 dictionary entries.