#### COMPRESS

#### Synopsis

    HELP:   Activate compression (write) [FALSE]
    TYPE:   SWITCH
    SYNTAX: COMPRESS/C

#### Description

This parameter activates data compression.

FLAM compresses the standardized data formats with a typical compression rate of 4:1. The compression rate can be as high as 95% (20:1).

FLAM does not need any additional specification about data to be compressed. The compression method is independent from file, record, and field formats.

As FLAM compresses a file, it will write the result into a sequential or index sequential file, the FLAMFILE. This file may have a header that will store information about the original file.

FLAM is able to process all PS, PO and VSAM files. It is possible to compress a number of files into one or a number of FLAMFILEs.

To adapt the compression process to the requirements of the user, it is possible to specify parameters during the program call. It is also possible to define the parameters using a parameter file or while generating the system.

FLAM creates a job protocol for each execution (on screen or into a log file).

During compression, FLAM processes a set of 1-4095 (logical) records within one block (Matrix).

FLAM can process input and output from both disc and magnetic tape or cartridge. This is also true for the compressed file, the FLAMFILE.

FLAM always compresses a set of records in one step. The size of the intermediate buffer can be specified via the parameter MAXBUFFER. FLAM will read only as many input records in one step as can be stored within the intermediate buffer.

For compatibility reasons to all FLAM versions, the size of the intermediate buffer is restricted to 32 KiB. However, if the target computer (i.e., the computer on which the compressed file will be decompressed) is known and the FLAM version installed on this computer allows for it, a bigger buffer size for optimal compression can be defined.

It is also possible to restrict the number of records within one set using the MAXRECORDS parameter. If you define MAXRECORDS=1, FLAM will use a serial context free compression method that is only useful with long records.

The typical compression ratios are usually achieved with 16-32 records within one set. With a bigger set, a slightly better compression ratio can be achieved (which also leads to less CPU utilization!), but the intermediate buffer has to be bigger.

The better the compression ratio is, the less CPU time is needed !

It is possible to generate all compressed data in EBCDIC and ASCII code. Compressed records can be created in both fixed and variable format.

The compression method is always the same - based on the Frankenstein-Limes-Access-Method. Only the treatment of the matrix columns and the representation of the compressed files differs from case to case. This is controlled with the MODE parameter.

Compression mode ADC is introduced as default value. That means, that when the MODE parameter is omitted, MODE=ADC is used. With MODE=CX8, FLAM will only compress repeating characters (horizontally and vertically). With MODE=VR8, the remaining data is compressed in addition using the FL-B(4) code. This process first translates the characters into a special 8-bit code and then homogenizes them using specially designed logical operations. The results are bit strings that can be compressed efficiently.

In both cases, the compressed file, the FLAMFILE, is a sequence of 8-bit combinations that are written into sequential or index sequential files. Record size, record format, block size can be defined by the user. Each record of a file is protected with a checksum. Code conversions within the FLAMFILE are not allowed. During transmission, the file has to be treated as a binary file.

Compression modes CX7, CX8 or VR8 are processed by zIIP processors when a free zIIP processor is found. This decreases CPU utilization and leads to cost savings. It is done automatically without any parameter.

For files that contain only printable characters and shall be transmitted using a 7-bit-line, FLAM offers MODE=CX7. This mode creates a compressed file which will "behave" during transmission in the same way as the uncompressed file. FLAM does not check, if the original file is suitable for transmission, but will create a compressed file using a very restricted character set that is neutral to the different code conversion utilities on the marketplace.

Using this mode, FLAM can create compressed files that can be converted from EBCDIC to ASCII and vice versa (e.g., during a file transfer).

However, it is necessary that the code conversion is reversible without any changes. Otherwise, FLAM will signal a syntax error in the compressed file due to differences in the byte numbers and will stop decompression. Such cases are possible if the original file contains printer control characters or tabulator characters, which are not converted 1:1.

Apart from this, code conversion can be performed integrated with the compression step. FLAM offers the possibility of code conversion (before compression, or after decompression). Code conversion is controlled via standard code tables or user defined code tables. For special cases where a 1:1 code conversion is not possible for all characters, user exits are provided.

Syntax restrictions for FLAMv4 or older:

- z/OS
  - `COMPRESS`
  - `C`
- UNIX
  - `-compress`
- WINDOWS
  - `compress`

Values

- No values

Default

- z/OS
  - `COMPRESS`
- UNIX/WINOWS
  - none

Valid for

- compression