Crunch

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Identification)
(Reorganizing)
Line 11: Line 11:
 
Files begin with bytes {{magic|76 fe}}.
 
Files begin with bytes {{magic|76 fe}}.
  
== Tools ==
+
== Specifications ==
 
+
* [[CFX]] (DOS/Unix)
+
* [http://www.svgalib.org/rus/lbrate.html lbrate] by Russell Marks, c. 2001 (Unix, GPL2)
+
* On CP/M (or emulators):
+
** The canonical tools were CRUNCH and UNCR. Possibly Greenberg's last version (Feb 1988) is v2.4: [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/squsq/crunch24.lbr CRUNCH24.LBR], [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/squsq/crnch24s.lbr CRNCH24S.LBR] (source code).
+
** The later LT31 deals with extracting from all of [[Squeeze]], [[Crunch]], [[CrLZH]] and [[LBR]] formats. Widely available in CP/M archives, e.g. [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/arc-lbr/lt31.lbr LT31.LBR]
+
 
+
== References ==
+
  
 
* The file header is described in the text file LZDEF20.DOC shipped with [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/sigm/vol294/crunch20.lbr CRUNCH20.LBR].
 
* The file header is described in the text file LZDEF20.DOC shipped with [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/sigm/vol294/crunch20.lbr CRUNCH20.LBR].
Line 27: Line 19:
 
** CRUNCH20.DOC shipped in CRUNCH20.LBR says: ''It embodies all of the concepts employed in the UNIX COMPRESS / ARC512 algorithm, but is additionally enhanced by a "metastatic code reassignment" facility. This is one of several concepts I am developing as part of an effort to advance data compression techniques beyond current performance limits. I believe this is the first time this principle has been proposed or implemented.''
 
** CRUNCH20.DOC shipped in CRUNCH20.LBR says: ''It embodies all of the concepts employed in the UNIX COMPRESS / ARC512 algorithm, but is additionally enhanced by a "metastatic code reassignment" facility. This is one of several concepts I am developing as part of an effort to advance data compression techniques beyond current performance limits. I believe this is the first time this principle has been proposed or implemented.''
 
** See also "Technical Abstract" by Steven Greenberg, 16 November 1986: [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/squsq/crunch.abs CRUNCH.ABS]
 
** See also "Technical Abstract" by Steven Greenberg, 16 November 1986: [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/squsq/crunch.abs CRUNCH.ABS]
 +
 +
== Tools ==
 +
 +
* [[CFX]] (DOS/Unix)
 +
* [http://www.svgalib.org/rus/lbrate.html lbrate] by Russell Marks, c. 2001 (Unix, GPL2)
 +
* On CP/M (or emulators):
 +
** The canonical tools were CRUNCH and UNCR. Possibly Greenberg's last version (Feb 1988) is v2.4: [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/squsq/crunch24.lbr CRUNCH24.LBR], [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/squsq/crnch24s.lbr CRNCH24S.LBR] (source code).
 +
** The later LT31 deals with extracting from all of [[Squeeze]], [[Crunch]], [[CrLZH]] and [[LBR]] formats. Widely available in CP/M archives, e.g. [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/cpm/arc-lbr/lt31.lbr LT31.LBR]
  
 
[[Category:File formats with too many extensions]]
 
[[Category:File formats with too many extensions]]
 
[[Category:CP/M]]
 
[[Category:CP/M]]

Revision as of 15:58, 8 August 2020

File Format
Name Crunch
Ontology
Extension(s) .?z?, .zzz
Crunch was a method of compressing single files popular on CP/M, devised by Steve Greenberg circa 1986. It superseded Squeeze and was succeeded by CrLZH, and crunched files were common in LBR archives. The underlying compression uses the LZW algorithm.

Similar to Squeeze, crunched files were signified in CP/M's 8.3 filename format by replacing the middle letter of the extension with Z (.?Z?), with the extension .ZZZ used for corner cases such as a blank extension.

Identification

Files begin with bytes 76 fe.

Specifications

  • The file header is described in the text file LZDEF20.DOC shipped with CRUNCH20.LBR.
    • An extracted copy is provided here.
    • Note that the file header follows a similar/compatible structure to Squeeze and CrLZH.
  • FIXME: is the exact compression algorithm documented anywhere?
    • CRUNCH20.DOC shipped in CRUNCH20.LBR says: It embodies all of the concepts employed in the UNIX COMPRESS / ARC512 algorithm, but is additionally enhanced by a "metastatic code reassignment" facility. This is one of several concepts I am developing as part of an effort to advance data compression techniques beyond current performance limits. I believe this is the first time this principle has been proposed or implemented.
    • See also "Technical Abstract" by Steven Greenberg, 16 November 1986: CRUNCH.ABS

Tools

  • CFX (DOS/Unix)
  • lbrate by Russell Marks, c. 2001 (Unix, GPL2)
  • On CP/M (or emulators):
    • The canonical tools were CRUNCH and UNCR. Possibly Greenberg's last version (Feb 1988) is v2.4: CRUNCH24.LBR, CRNCH24S.LBR (source code).
    • The later LT31 deals with extracting from all of Squeeze, Crunch, CrLZH and LBR formats. Widely available in CP/M archives, e.g. LT31.LBR
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox