TERSE
(→Software) |
m (→Related formats) |
||
(4 intermediate revisions by 2 users 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 == | ||
− | + | 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 19: | Line 24: | ||
18 - File is compressed using IBM TERSE (new) | 18 - File is compressed using IBM TERSE (new) | ||
− | So, apparently, [[PKWARE DCL Implode]] is closely related to TERSE. | + | 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 26: | Line 33: | ||
** [https://www.sac.sk/download/pack/terse.zip terse.zip] - OS/2 binaries | ** [https://www.sac.sk/download/pack/terse.zip terse.zip] - OS/2 binaries | ||
** [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 | + | * [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
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
- TERSE utility by Michael Nagy and Advantis
- [1] → tersepc.zip - Collection of binaries for several platforms
- terse.zip - OS/2 binaries
- IBM Knowledge Center: Terse Utility
- TerseDecompress – open source (Apache2 licensed) Java program, written by IBM, to decompress TERSE files for mainframe.
- [2] Canterbury Corpus files compressed with both PACK and SPACK