<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://fileformats.archiveteam.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=Crunch%2FLZDEF20.DOC</id>
		<title>Crunch/LZDEF20.DOC - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/index.php?action=history&amp;feed=atom&amp;title=Crunch%2FLZDEF20.DOC"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Crunch/LZDEF20.DOC&amp;action=history"/>
		<updated>2026-05-17T08:19:16Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://fileformats.archiveteam.org/index.php?title=Crunch/LZDEF20.DOC&amp;diff=7398&amp;oldid=prev</id>
		<title>JTN: extracted for convenience; see Crunch</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/index.php?title=Crunch/LZDEF20.DOC&amp;diff=7398&amp;oldid=prev"/>
				<updated>2012-12-06T01:14:41Z</updated>
		
		<summary type="html">&lt;p&gt;extracted for convenience; see &lt;a href=&quot;/wiki/Crunch&quot; title=&quot;Crunch&quot;&gt;Crunch&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Here, extracted for convenience, is a description of the [[Crunch]] header format LZDEF20.DOC, included in [http://www.classiccmp.org/cpmarchives/cpm/mirrors/oak.oakland.edu/pub/sigm/vol294/crunch20.lbr CRUNCH20.LBR CRUNCH20.LBR] (as LZDEF20.DZC -- yes, crunched):&lt;br /&gt;
&lt;br /&gt;
                --------------------------------------------&lt;br /&gt;
                 Crunched File Format, Rev. C   30 Aug 1986&lt;br /&gt;
                --------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
          ID  FIELD:  Bytes 0 and 1 are always 076H and 0FEH,  respec-&lt;br /&gt;
     tively.  This identifies the file as &amp;quot;crunched&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
          FILENAME:   The  filename field starts at byte 2.  It  is  a&lt;br /&gt;
     field  of variable length, terminated by a zero byte.  The  field&lt;br /&gt;
     contains  the  filename as ASCII chars, including  an  ASCII  &amp;quot;.&amp;quot;&lt;br /&gt;
     immediately preceding the filename's extension.  Less than  eight&lt;br /&gt;
     characters may precede the &amp;quot;.&amp;quot;, but three characters must  follow&lt;br /&gt;
     it  (ie  blanks in the extension  are to be explicitly included).&lt;br /&gt;
     Additional  characters after the 3rd extension character but  be-&lt;br /&gt;
     fore  the  zero byte specifically are allowed.  Those  characters&lt;br /&gt;
     preceded by a &amp;quot;[&amp;quot; char and followed by a &amp;quot;]&amp;quot; char are defined  as&lt;br /&gt;
     in  informal  file id or date stamp. Most versions of  UNCR  will&lt;br /&gt;
     echo these chars to the console for reference. Those bytes  which&lt;br /&gt;
     are  not  between these brackets are ignored by the  current  un-&lt;br /&gt;
     cruncher (reserved for future expansion).&lt;br /&gt;
 &lt;br /&gt;
          Following the zero byte are the following 4 bytes, in order:&lt;br /&gt;
 &lt;br /&gt;
          REFERENCE REVISION LEVEL:   1 byte  }&lt;br /&gt;
          SIGNIFICANT REVISION LEVEL: 1 byte  } described later&lt;br /&gt;
          ERROR DETECTION TYPE:       1 byte  }&lt;br /&gt;
          SPARE:                      1 byte  }&lt;br /&gt;
 &lt;br /&gt;
          CRUNCHED  OUTPUT: After the SPARE byte, the actual  crunched&lt;br /&gt;
     output  begins.  The crunched output is a series of variable  bit&lt;br /&gt;
     length  codes where byte boundaries are insignificant.   Crunched&lt;br /&gt;
     data  is  terminated by detection of an embedded EOF  code.  Zero&lt;br /&gt;
     bits are padded after the EOF to get back on byte boundary again.&lt;br /&gt;
 &lt;br /&gt;
          CHECKSUM: The next two bytes are the 16-bit checksum,  least&lt;br /&gt;
     significant  byte first.  The checksum is the modulo 2^16 sum  of&lt;br /&gt;
     all  the bytes as input from the physical input stream, prior  to&lt;br /&gt;
     repeat  byte encoding (or, in the case of uncrunching, as  output&lt;br /&gt;
     to the physical output stream, after repeat byte decoding).&lt;br /&gt;
 &lt;br /&gt;
          REMAINDER  OF THE SECTOR: The remaining bytes in the  sector&lt;br /&gt;
     following  the checksum are irrelevant.  CRUNCH fills  them  with&lt;br /&gt;
     &amp;quot;1A&amp;quot;'s.&lt;br /&gt;
     &lt;br /&gt;
               ---------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
          These are the four bytes not fully described above:&lt;br /&gt;
 &lt;br /&gt;
          &amp;quot;Reference  Revision Level&amp;quot;:  The program/revision level  of&lt;br /&gt;
     the  program that performed the crunch operation.  This  byte  is&lt;br /&gt;
     put  in  for general reference only. The current  value  is  &amp;quot;20&amp;quot;&lt;br /&gt;
     (hex).&lt;br /&gt;
 &lt;br /&gt;
          &amp;quot;Significant Revision Level&amp;quot;:  If the value of this byte  in&lt;br /&gt;
     a  crunched data file exceeds the value contained within the  un-&lt;br /&gt;
     crunching  program, the message &amp;quot;File requires newer revision  of&lt;br /&gt;
     program&amp;quot; will be displayed.  If changes or enhancements are  ever&lt;br /&gt;
     made to CRUNCH which are significant enough to actually output an&lt;br /&gt;
     incompatible file, the information in this byte will allow a  new&lt;br /&gt;
     revision  of UNCR to be compatible with all existing data  files,&lt;br /&gt;
     old  or  new.  The error message gets displayed only  if  someone&lt;br /&gt;
     tries to uncrunch a new file with an old uncruncher which doesn't&lt;br /&gt;
     know about the &amp;quot;future&amp;quot; format yet. Current value is &amp;quot;20&amp;quot; (hex).&lt;br /&gt;
 &lt;br /&gt;
          &amp;quot;Error Detection Type&amp;quot;: If this value is non-zero, the  cur-&lt;br /&gt;
     rent  uncruncher will not examine the checksum or give  an  error&lt;br /&gt;
     associated  with  it.  This will permit a CRC type (or  no  error&lt;br /&gt;
     checking) value to be used if circumstances warrant it. The  cur-&lt;br /&gt;
     rent  UNCR program is always checking for &amp;quot;illegal&amp;quot; codes,  which&lt;br /&gt;
     are  ones which have not been defined by previous codes.  If  any&lt;br /&gt;
     are  encountered,  the message &amp;quot;Invalid Crunched File&amp;quot;  is  disp-&lt;br /&gt;
     layed. This inherent self-checking probably precludes the  neces-&lt;br /&gt;
     sity of more advanced error checking.&lt;br /&gt;
 &lt;br /&gt;
          &amp;quot;Spare&amp;quot;:  The SPARE byte is a spare byte.&lt;br /&gt;
 &lt;br /&gt;
                                                - Steven Greenberg&lt;br /&gt;
 &lt;br /&gt;
                                              Rev C  30 Aug   1986&lt;br /&gt;
                                              Rev B  16 June  1986&lt;br /&gt;
                                              Rev A  30 March 1986&lt;/div&gt;</summary>
		<author><name>JTN</name></author>	</entry>

	</feed>