home *** CD-ROM | disk | FTP | other *** search
/ The California Collection / TheCaliforniaCollection.cdr / his008 / unarj220.exe / TECHNOTE.DOC < prev    next >
Text File  |  1991-07-10  |  4KB  |  116 lines

  1.  
  2.      ARJ TECHNICAL INFORMATION                    June 1991
  3.  
  4.  
  5.      ** IMPORTANT NEWS ****************************************************
  6.  
  7.      There is an extended header bug in older versions of ARJ, AV.C and
  8.      UNARJ.C.  The extended header processing in read_header() should
  9.      skip 4 bytes for the extended header CRC and not 2.  This is NOT a
  10.      current problem as no versions of ARJ use the extended header.
  11.  
  12.      **********************************************************************
  13.  
  14.  
  15.      Modification history:
  16.      Date      Description of modification:
  17.      --------  ------------------------------------------------------
  18.      06/28/91  Added several new HOST OS numbers.
  19.      05/19/91  Improved the description of extended header processing.
  20.      05/11/91  Simplified this document.  Added volume label type.
  21.      03/11/91  Added directory file type.
  22.      02/23/91  Added more comments.
  23.      01/10/91  Corrected timestamp description and header order of file mode.
  24.      10/30/90  Corrected values of flags in ARJ flags.
  25.  
  26.  
  27.      ARJ archives contains two types of header blocks:
  28.  
  29.     Archive main header - This is located at the head of the archive
  30.     Local file header   - This is located before each archived file
  31.  
  32.      Structure of archive block (low order byte first):
  33.  
  34.      Bytes Description
  35.      ----- -------------------------------------------------------------------
  36.        2   header id (main and local file) = 0xEA60 or 60000U
  37.        2   basic header size (from 'first_hdr_size' thru 'comment' below)
  38.          = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
  39.          = 0 if end of archive
  40.  
  41.        1   first_hdr_size (size up to and including 'extra data')
  42.        1   archiver version number
  43.        1   minimum archiver version to extract
  44.        1   host OS   (0 = MSDOS, 1 = PRIMOS, 2 = UNIX, 3 = AMIGA, 4 = MAC-OS)
  45.              (5 = OS/2, 6 = APPLE GS, 7 = ATARI ST, 8 = NEXT)
  46.              (9 = VAX VMS)
  47.        1   arj flags (0x01 = GARBLED_FLAG) indicates passworded file
  48.              (0x02 = RESERVED)
  49.              (0x04 = VOLUME_FLAG)  indicates continued file to next
  50.                        volume
  51.              (0x08 = EXTFILE_FLAG) indicates file starting position
  52.                        field
  53.              (0x10 = PATHSYM_FLAG) indicates path translated
  54.                        ("\" changed to "/")
  55.        1   method    (0 = stored, 1 = compressed most ... 4 compressed fastest)
  56.        1   file type (0 = binary, 1 = 7-bit text, 2 = comment header)
  57.              (3 = directory, 4 = volume label)
  58.        1   reserved
  59.        4   date time modified
  60.        4   compressed size
  61.        4   original size (this will be different for text mode compression)
  62.        4   original file's CRC
  63.        2   filespec position in filename
  64.        2   file access mode
  65.        2   host data (currently not used)
  66.        ?   extra data
  67.        4 bytes for extended file starting position when used
  68.        (this is present when EXTFILE_FLAG is set)
  69.  
  70.        ?   filename (null-terminated string)
  71.        ?   comment  (null-terminated string)
  72.  
  73.        4   basic header CRC
  74.  
  75.        2   1st extended header size (0 if none)
  76.        ?   1st extended header (currently not used)
  77.        4   1st extended header's CRC (not present when 0 extended header size)
  78.  
  79.        ...
  80.  
  81.        ?   compressed file
  82.  
  83.  
  84.      Time stamp format:
  85.  
  86.     31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
  87.        |<---- year-1980 --->|<- month ->|<--- day ---->|
  88.  
  89.     15 14 13 12 11 10  9  8  7  6  5  4  3    2  1  0
  90.        |<--- hour --->|<---- minute --->|<- second/2 ->|
  91.  
  92.  
  93.  
  94.      Compression methods:
  95.  
  96.  
  97.      ARJ methods 1 to 3 use Lempel-Ziv 77 sliding window with static Huffman
  98.      encoding.
  99.  
  100.      ARJ method 4 uses Lempel-Ziv 77 sliding window with pointer/length
  101.      unary encoding.
  102.  
  103.      There is one decoder for methods 1 to 3 and one decoder for method 4.
  104.  
  105.  
  106.  
  107.      Encryption technology:
  108.  
  109.  
  110.      ARJ does NOT use DES encryption algorithms.  It uses a combination of
  111.      simple exclusive-or operations.
  112.  
  113.  
  114.      end of document
  115.  
  116.