TERSE

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Mention PACK/SPACK)
m (Related formats)
 
(2 intermediate revisions by one user not shown)
Line 3: Line 3:
 
|subcat=Compression
 
|subcat=Compression
 
|released=1984?
 
|released=1984?
 +
|wikidata={{wikidata|Q28452000}}
 +
|developed by=IBM
 +
|reference impl=https://www.ibm.com/docs/en/zos/2.3.0?topic=aids-amaterse-pack-unpack-data-set
 
}}
 
}}
 
'''TERSE''' is a data compression format used on OS/2, and on IBM mainframes. It is still in regular use on IBM mainframes to this day.
 
'''TERSE''' is a data compression format used on OS/2, and on IBM mainframes. It is still in regular use on IBM mainframes to this day.
Line 8: Line 11:
 
More research is needed to understand the scope of what TERSE was used for, and how many versions of it there are.
 
More research is needed to understand the scope of what TERSE was used for, and how many versions of it there are.
  
It can at least be used for single-file compression, as is done by the Advantis software listed below. This file format does not appear to have a conventional filename extension – compressed files may keep their original name.
+
There appear to be two compression algorithms, called PACK and SPACK. There are also two different modes - native and compatibility. Native mode files would not necessarily be able to interpreted on a different machine than they were created on. As such, there aren't many examples of native mode files available.
 +
 
 +
It can at least be used for single-file compression, as is done by the Advantis software listed below. This file format does not appear to have a conventional filename extension – compressed files may keep their original name. However, the extensions .PACK, .SPACK, and .TRS have been observed (with filenames in all-caps per z/OS conventions).
  
 
== Identification ==
 
== Identification ==
At least some TERSE-compressed files start with bytes {{magic|05 01 01 00}}.
+
TERSE files use either a 4 or 12 byte header, depending on if it is using native or compatibility mode. Native mode have a header of either {{magic|01 89 69 A5}} or {{magic|07 89 69 A5}}, apparently depending on which version they were created with. Compatibility mode headers start with {{magic|02 00}} or {{magic|02 01}} for PACK and {{magic|05 00}} or {{magic|05 01}} for SPACK. In both cases, the second byte being 1 indicates [https://www.ibm.com/docs/en/zos/2.1.0?topic=options-record-format-recfm RECFM=V]. It is assumed the alternative is RECFM=U, but this is uncertain.
  
 
== Related formats ==
 
== Related formats ==
Line 20: Line 25:
  
 
So, apparently, [[PKWARE DCL Implode]] is closely related to TERSE. It's possible that this distinction is or is related to the PACK/SPACK distinction in the file type.
 
So, apparently, [[PKWARE DCL Implode]] is closely related to TERSE. It's possible that this distinction is or is related to the PACK/SPACK distinction in the file type.
 +
 +
[[BSQ (W1GOH)]] is apparently related to TERSE.
  
 
== Software ==
 
== Software ==
Line 27: Line 34:
 
** [https://www.ibm.com/support/knowledgecenter/SSB27H_6.2.0/fa2ut_part3_terse.html IBM Knowledge Center: Terse Utility]
 
** [https://www.ibm.com/support/knowledgecenter/SSB27H_6.2.0/fa2ut_part3_terse.html IBM Knowledge Center: Terse Utility]
 
* [https://github.com/openmainframeproject/tersedecompress TerseDecompress] – open source (Apache2 licensed) Java program, written by IBM, to decompress TERSE files for mainframe.
 
* [https://github.com/openmainframeproject/tersedecompress TerseDecompress] – open source (Apache2 licensed) Java program, written by IBM, to decompress TERSE files for mainframe.
 +
** [https://github.com/openmainframeproject/tersedecompress-testdata] Canterbury Corpus files compressed with both PACK and SPACK
  
 
== Links ==
 
== Links ==

Latest revision as of 15:26, 26 December 2023

File Format
Name TERSE
Ontology
Wikidata ID Q28452000
Reference Implementation https://www.ibm.com/docs/en/zos/2.3.0?topic=aids-amaterse-pack-unpack-data-set
Developed By IBM
Released 1984?

TERSE is a data compression format used on OS/2, and on IBM mainframes. It is still in regular use on IBM mainframes to this day.

More research is needed to understand the scope of what TERSE was used for, and how many versions of it there are.

There appear to be two compression algorithms, called PACK and SPACK. There are also two different modes - native and compatibility. Native mode files would not necessarily be able to interpreted on a different machine than they were created on. As such, there aren't many examples of native mode files available.

It can at least be used for single-file compression, as is done by the Advantis software listed below. This file format does not appear to have a conventional filename extension – compressed files may keep their original name. However, the extensions .PACK, .SPACK, and .TRS have been observed (with filenames in all-caps per z/OS conventions).

Contents

[edit] Identification

TERSE files use either a 4 or 12 byte header, depending on if it is using native or compatibility mode. Native mode have a header of either 01 89 69 A5 or 07 89 69 A5, apparently depending on which version they were created with. Compatibility mode headers start with 02 00 or 02 01 for PACK and 05 00 or 05 01 for SPACK. In both cases, the second byte being 1 indicates RECFM=V. It is assumed the alternative is RECFM=U, but this is uncertain.

[edit] Related formats

The ZIP format documentation (APPNOTE) lists two "TERSE" compression methods:

10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
18 - File is compressed using IBM TERSE (new)

So, apparently, PKWARE DCL Implode is closely related to TERSE. It's possible that this distinction is or is related to the PACK/SPACK distinction in the file type.

BSQ (W1GOH) is apparently related to TERSE.

[edit] Software

[edit] Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox