Decompress Data (DCPDATA)


Op Code (Hex) Operand 1


1051 Decompress data template


Operand 1: Space pointer.
Bound program access

Built-in number for DCPDATA is 108. DCPDATA ( decompress_data_template : address )

Description

The instruction decompresses user data. Operand 1 identifies a template which identifies the data to be decompressed. The template also identifies the result space to receive the decompressed data.

The decompress data template must be aligned on a 16-byte boundary. The format is as follows:


Offset
Dec Hex
Field Name
Data Type and Length
0 0
Reserved (binary 0)
Char(4)
4 4
Result area length
Bin(4)
8 8
Actual result length
Bin(4) +
12 C
Reserved (binary 0)
Char(20)
32 20
Source space pointer
Space pointer
48 30
Result space pointer
Space pointer
64 40
--- End ---

Note: The input value associated with template fields annotated with a plus sign (+) are ignored by the instruction; these fields are updated by the instruction to return information about instruction execution.

The data at the location specified by the source space pointer is decompressed and stored at the location specified by the result space pointer. The actual result length is set to the number of bytes in the decompressed result. The source data is not modified.

The result area length field value must be greater than or equal to zero. A zero value means not specified. The length of the source data is not supplied in the template because this length is contained within the compressed data.

If the decompressed result data will not fit in the result area (as specified by the result area length), the decompression is stopped and only as many decompressed bytes as will fit in the result area are stored. The actual result length is always set to the full length of the result, which may be larger than the result area length.

The compressed data (previously compressed with CPRDATA) contains a signature which is checked by DCPDATA. The signature indicates which compression algorithm was used to compress the data. If the signature is invalid, an invalid compressed data  (hex 0C14) exception is signaled. It is possible that the signature appears valid even though the compressed data has been corrupted. In almost all cases, the DCPDATA instruction will signal the invalid compressed data  (hex 0C14) exception. Data corruption will not be detected only in the case when the decompression algorithm applied to the corrupted data produces the correct number of decompressed bytes.

It is not possible to corrupt the compressed data in such a way that the DCPDATA instruction would fail (that is, function check) or fail to terminate (that is, loop).

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

0C Computation

10 Damage Encountered

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2E Resource Control Limit

36 Space Management

38 Template Specification

44 Protection Violation