Each CALL to SHRKHCX returns one compressed record image in main storage to its original uncompressed form. There are five parameters (four required and one optional) which you code in a SHRKHCX CALL. The parameters are positional and must be coded in the same sequence as shown in the following table. The following are model statements for calling SHRKHCX:
CALL SHRKHCX,(URA,CRA,URL,WRK[,RC]),VL
CALL 'SHRKHCX' USING URA CRA URL WRK [RC].
CALL SHRKHCX(URA CRA URL WRK [RC]);
The following table describes the parameters available to the SHRKHCX Subroutine:
|
Parm |
Meaning |
|
|---|---|---|
|
URA |
Uncompressed Record Address (Required) The address of the main storage area where the SHRKHCX subroutine places the uncompressed data which it constructs, excluding any RDW. The storage area provided by the user must be large enough to contain the entire expanded record. |
|
|
CRA |
Compressed Record Address (Required) The address of the compressed data to be expanded by the subroutine. CRA must be the address of the data portion of the record, not the RDW. This storage area (that is, the compressed record) is not modified by the SHRKHCX subroutine. |
|
|
URL |
Uncompressed Record Length (Required) The address of a halfword or fullword from which SHRKHCX receives the length of the compressed record in binary form and into which it returns the length of the expanded record in binary form. Setting the first byte to x '80' specifies the fullword format. |
|
|
WRK |
Hardware Compression Work Area (Required) The address of a 60-byte work area. |
|
|
|
Bytes
|
Meaning |
|
|
0–7 |
HC#STDnn where nn is 01 thru 99 for a CA supplied dictionary, or HC#USRnn where nn is 00 thru 27 for a user defined dictionary. |
|
|
8–11 |
Address of the selected dictionary load module. Although only the expansion dictionary is used, the compression dictionary must be the first half of the load module. If the desired dictionary is already LOADed, insert its address here before the first call. If the address is zero, the subroutine will load it and fill in its address for you. An invalid nonzero value will cause an abend or other unpredictable results, so you must set it either to zero or to the valid dictionary address. |
|
|
12–14 |
ICB. Set this to zero for the first call to permit the subroutine to calculate it for you. |
|
|
15 |
Dictionary size. Set this to zero for the first call to permit the subroutine to calculate it for you. |
|
|
16–17 |
Noncompressible length if any, or zero. |
|
|
18–20 |
Return code from CSRCMPSC macro. |
|
|
24–27 |
Dynamic area address. Set to zero for first call. |
|
RC |
Return Code (Optional) The address of a binary fullword in which the SHRKHCX subroutine can store a value to indicate whether or not an error occurred in expanding the record. If this optional parameter is coded, ABEND 10 (check byte mismatch) and certain other user abends are suppressed. Instead, the corresponding completion code is stored in the binary fullword addressed by the RC parameter and in register 15. If no error occurs during SHRKHCX processing, register 15 and RC are set to zero. If the compressed data is not compressed, RC and register 15 are set to -1. You can consider the compressed data to be the uncompressed data. |
|
| Copyright © 2012 CA. All rights reserved. |
|