home *** CD-ROM | disk | FTP | other *** search
/ Share Gallery 1 / share_gal_1.zip / share_gal_1 / UT / UT130.ZIP / ALLEYCAT.ZIP / IFL.DOC < prev    next >
Text File  |  1990-10-03  |  16KB  |  349 lines

  1.  
  2.  
  3. Interior File Listing Utility            02/24/89           Version 1.10
  4.  
  5.                                   IFL
  6.                      Interior File Listing Utility
  7.         Copyright 1989 by Martin Pollard.  All rights reserved.
  8.  
  9. This program may be freely copied and distributed.  In the same vein, I
  10. ask for no monetary contributions whatsoever; thus, this program is
  11. truly Freeware.  I only ask that, if distributed, the program and
  12. documentation not be altered in any way.  Your cooperation with this
  13. simple request will be an incen-tive for newer and better versions of
  14. this program.
  15.  
  16. Although I have tried to make this program as bug-free as possible, I
  17. will not be liable for any damages caused, either directly or indirectly
  18. by the use of this program.  This program is distributed without warran-
  19. ty, either expressed or implied.
  20.  
  21. NOTE:     Throughout this documentation, the term "archive file"
  22.           is used to describe any file that contains multiple
  23.           files.  Likewise, the term "archiving program" is used
  24.           to describe any program that creates an archive file.
  25.  
  26. If  you  encounter  any problems while using the program, or if you have
  27. any suggestions to improve the operation of IFL,  please  feel  free  to
  28. drop me a line:
  29.  
  30.                              Martin Pollard
  31.                               21116 Erben
  32.                       St. Clair Shores, MI  48081
  33.                                ATTN: IFL
  34.  
  35. Please include a self-addressed stamped envelope to ensure a speedy re-
  36. ply.  Letters that do not include an SASE will not  necessarily be ig-
  37. nored; they just won't be replied to as quickly!
  38.  
  39.         ARC is a trademark of System Enhancement Associates
  40.         CP/M is a trademark of Digital Research Inc.
  41.         IBM is a trademark of International Business Machines Corp.
  42.         MS-DOS is a trademark of Microsoft Corp.
  43.  
  44.                                 -- 1 --
  45.  
  46.  
  47. Interior File Listing Utility            02/24/89           Version 1.10
  48.  
  49.  
  50.                  A SHORT HISTORY OF ARCHIVING PROGRAMS
  51.  
  52. What exactly is an archiving program?  It is a program that takes a
  53. group of files and stores them into one single file, called an archive
  54. file.  Such an archiving program may or may not compress the files be-
  55. fore storing them in the archive file.  (Compression means to read the
  56. file, perform mathematical and probability calculations on the data  --
  57. which can be either text or binary  data  --  and write a new file
  58. containing the compressed information.)
  59.  
  60. The first of these kinds of programs originated under the CP/M operating
  61. system.  They were LU, SQ and USQ,  which  stood  for  Library  Utility,
  62. Squeeze,  and  Unsqueeze.  LU was a very primitive archiving program: It
  63. simply took files and placed them into an archive file (LU  called  them
  64. "library" files), with no compression performed on the data at all.  The
  65. SQ program was usually used to compress files before they were stored by
  66. LU. (SQ used a method call Huffman encoding to compress the information.
  67. USQ,  as  you may have guessed, simply reversed the process.) LU-created
  68. files can usually be identified by the ".LBR" extension  (although  this
  69. was  not  required, the .LBR extension was usually used to maintain con-
  70. sistency) or the ".LQR" extension (if the file was squeezed AFTER  files
  71. were stored in it).  For years, the combination of LU, SQ and USQ -- and
  72. its derivatives -- were the next best thing to sliced bread.
  73.  
  74. When the IBM PC appeared, these programs were, naturally, ported over to
  75. the MS-DOS operating system.  However users quickly felt the limitations
  76. of  LU,  SQ  and  USQ.  These programs were originally written for slow,
  77. 8080 and Z80 based systems with a maximum of 64K of memory; the  IBM  PC
  78. was faster, and MS-DOS was free from the 64K limitation. (Okay, it has a
  79. 640K limitation, but that's irrelevant here.) Users figured there HAD to
  80. be a better way.
  81.  
  82. System  Enhancement  Associates  (SEA) came up with the better mousetrap
  83. with its ARC program.  ARC essentially combined the functions of LU, SQ,
  84. and USQ by compressing files before storing them in  the  archive  file.
  85. Even here, ARC took a different approach, replacing LU's fixed directory
  86. (which  was at the beginning of each library file) with a "distributive"
  87. directory (files stored in the archive are preceded by  a  "header"  de-
  88. scribing  the  file  in  detail).  Over the years, ARC has been improved
  89. with more user options  and  more  advanced  compression  methods  (like
  90. Dynamic Lempel-Zev-Welch, or "Crunching").
  91.  
  92. Unfortunately,  ARC had the big problem that plagued the early CP/M pro-
  93. grams: It was very slow.  To solve this, Phil  Katz  of  PKware  created
  94. PKARC,  an  ARC "clone" that was so fast that it began to surpass ARC in
  95. popularity.  Later enhancements to PKARC also  included  a  Dynamic  LZW
  96. variant  that Phil Katz called "squashing", and PKARC created a fanatic-
  97. ally loyal legion of followers.
  98.  
  99. (Another  file compression program called DWC appeared during this time,
  100. but due to its incompatibility with .ARC-format files, it  did  not gain
  101. much popularity.  It is very rare that you will find a DWC-format file.)
  102.  
  103.                                 -- 2 --
  104.  
  105.  
  106. Interior File Listing Utility            02/24/89           Version 1.10
  107.  
  108. SEA, in 1988, filed a lawsuit against PKware, charging unlawful  use  of
  109. ARC's  source  code  and unfair business practices.  (The details of the
  110. lawsuit have been discussed elsewhere, so I will not go into them here.)
  111. The settlement between Phil Katz and SEA essentially ended production of
  112. PKARC; this action has, unfortunately, alienated many users of both  ARC
  113. and  PKARC,  and  may  threaten  the  continuance of ARC as a valid file
  114. archiving format.
  115.  
  116. In the midst of all this, a company called NoGate Consulting released  a
  117. program  called PAK.  PAK was yet another variation of ARC, with an even
  118. more advanced Dynamic LZW variant dubbed "Crushing." PAK, which is still
  119. in existence today, has created a small following of users, but has  not
  120. caught  on overall, for two reasons: It is slower than PKARC (but faster
  121. than ARC), and the Crushing format makes it incompatible with many  pro-
  122. grams that process ARC files.
  123.  
  124. And if that weren't enough, two non-ARC-compatible file compression pro-
  125. grams  are making their way into the mainstream: ZOO by Rahul Dhesi, and
  126. PKZIP from PKware.  ZOO, which uses its own versions of Dynamic LZW com-
  127. pression, exists under many different  machine  environments,  including
  128. UNIX  and  VAX,  and is the program of choice for those users moving be-
  129. tween different machines.  PKZIP is Phil Katz' alternative  to  the  ARC
  130. format;  it  operates very similarly to PKARC, but uses an enhanced file
  131. format (which, unlike ARC, can store subdirectory information)  and  new
  132. methods  of file compression.  (One is a variant of Dynamic LZW compres-
  133. sion called "Shrinking", the other is a combination of  repeat-byte  and
  134. probabilistic compression called "Reducing.")
  135.  
  136. (More  detailed  descriptions  of  Huffman encoding, Dynamic Lempel-Zev-
  137. Welch compression, and repeat-byte and probabilistic compression can  be
  138. found  in  the documentation for SQ/USQ, ARC, PKARC/PKPAK, PAK, ZOO, and
  139. PKZIP.)
  140.  
  141. It  can  become  highly  confusing to work with all these different file
  142. formats.  This can be especially nerve-wracking to BBS system  operators
  143. and  users  alike, since BBS systems, although mainly populated with ARC
  144. files, can conceivably contain files in ANY of the  aforementioned  for-
  145. mats.   What is needed is a single program to read any of these formats.
  146. IFL to the rescue!
  147.  
  148.  
  149.                     WHAT IS IFL AND HOW DO I USE IT?
  150.  
  151. IFL stands for Interior File List, and that's exactly what it  does:  It
  152. provides  a  listing of the contents of an archive file.  Currently sup-
  153. ported formats, and the programs that produce them, are:
  154.  
  155.      ARC format:
  156.           ARC by System Enhancement Associates
  157.           PKARC and PKPAK by PKware
  158.           PAK by NoGate Consulting
  159.  
  160.      ZIP format:
  161.           PKZIP by PKware
  162.  
  163.                                 -- 3 --
  164.  
  165. Interior File Listing Utility            02/24/89           Version 1.10
  166.  
  167.  
  168. Other formats may be supported in future versions.  (Note that IFL  does
  169. not support self-extracting archives!) The syntax for using IFL is very
  170. straightforward:
  171.  
  172.                               IFL filename
  173.  
  174. Where  "filename"  is the name of the archive file you wish to view.  If
  175. you do not specify an extension with the filename, IFL  will  automatic-
  176. ally cycle through all the extensions it supports (appending them one at
  177. a time to the filename) until it finds the file.  At this time, support-
  178. ed  extensions include ARC, ARK, PAK, and ZIP.  The filename may be pre-
  179. ceeded by a drive and/or pathname.  If no filename is specified, a  help
  180. screen is displayed.
  181.  
  182. Output  from  IFL  may  be redirected to another file or device (such as
  183. PRN) using the MS-DOS output  redirection symbol ">".  The  output  con-
  184. sists of the following information:
  185.  
  186. Length         The  length  of  the  file  when uncompressed, in
  187.                bytes.
  188.  
  189. Size Now       The length of the compressed file, in bytes. This
  190.                This is the number of  bytes  the  file  actually
  191.                take up inside the archive file.
  192.  
  193. Ratio          The amount of space saved, in percent.
  194.  
  195. Storage        The  compression  method  used to store the file.
  196.                Valid methods are:
  197.  
  198.                   --       The file is not compressed.
  199.  
  200.                Unknown!      The file is compressed using an un-
  201.                              known   (unsupported)   compression
  202.                              method.
  203.                Packed        The file is compressed with repeat-
  204.                              byte compression.
  205.                Squeezed      The file is compressed with Huffman
  206.                              encoding.
  207.                crunched      The file is compressed using an ob-
  208.                              solete version of  Lempel-Zev-Welch
  209.                              compression.
  210.                Crunched     The file is compressed using Dynamic
  211.                             LZW  (code size of 9 to 12 bits) and
  212.                             repeat-byte     compression     with
  213.                             adaptive reset.
  214.                Squashed     The file is compressed using Dynamic
  215.                             LZW (code size of 9 to 13 bits) com-
  216.                             pression with adaptive reset.
  217.                Crushed      The file is compressed using Dynamic
  218.                             LZW (code size of 2 to 13 bits) com-
  219.                             pression with partial adaptive reset.
  220.                Shrunk       The file is compressed using Dynamic
  221.                             LZW (code size of 9 to 13 bits) com-
  222.                             pression with partial adaptive reset.
  223.  
  224.                                 -- 4 --
  225.  
  226.  
  227. Interior File Listing Utility            02/24/89           Version 1.10
  228.  
  229.                Reduced 1    The file is compressed using repeat-
  230.                             byte and  probabilistic  compression
  231.                             (factor 1).
  232.                Reduced 2    The file is compressed using repeat-
  233.                             byte and  probabilistic  compression
  234.                             (factor 2).
  235.                Reduced 3   The file is compressed using  repeat-
  236.                            byte  and  probabilistic  compression
  237.                            (factor 3).
  238.                Reduced 4   The file is compressed using  repeat-
  239.                            byte  and  probabilistic  compression
  240.                            (factor 4).
  241.                Directory   Indicates an ARC 6.00 directory entry.
  242.                            Files shown below this marker will be
  243.                            indented until the end  of  directory
  244.                            marker (not shown) is encountered.
  245.  
  246. Date and       The date and time of the  last  modification  of  the
  247.   Time         file.  Except for ARC 6.00 directory entries, this is
  248.                usually  not  the date and time in which the file was
  249.                stored.
  250.  
  251. Filename       The name of the stored file.  Note that files in ZIP-
  252.                format archives may contain a pathname (indicated  by
  253.                forward slashes "/").
  254.  
  255. Below  the main listing will be displayed total values for all the files
  256. displayed.  Shown are totals for length, size now, ratio (overall),  and
  257. number  of  files.   Note that these totals do NOT take into account the
  258. overhead for file headers, the central directory of ZIP archives or  di-
  259. rectory  markers of ARC 6.00 archives.  (Sample output from IFL is shown
  260. below.)
  261.  
  262.                    Figure 1 - Sample Output From IFL
  263.  
  264. IFL v1.10 listing of C:IFL.ZIP
  265.  
  266.  Length   Size Now  Ratio   Storage     Date     Time   Filename
  267. ========  ========  =====  =========  ========  ======  ============
  268.     6866      2908   58%   Reduced 4   2-06-89  10:19p  IFL.C
  269.     2574      1250   52%   Reduced 4   2-06-89  10:12p  IFL.H
  270. ========  ========  =====                               ============
  271.     9440      4158   56%                                2 files
  272.  
  273.  
  274.                              ERROR MESSAGES
  275.  
  276. Listed below are all error messages produced by IFL.  If you do  receive
  277. an  error  while using IFL, check this list for the probable cause.  (In
  278. most cases, a corrupt archive is the cause of the error.)
  279.  
  280.                                 -- 5 --
  281.  
  282. Interior File Listing Utility            02/24/89           Version 1.10
  283.  
  284. "Unable to access specified file"
  285.  
  286.      IFL could not, for some reason, access the specified file.  The
  287.      file may not exist on the disk, or some other error may be pre-
  288.      venting IFL from accessing the file.
  289.  
  290. "Unexpected end of file"
  291.  
  292.      The  end  of  the archive file was encountered when IFL was not
  293.      expecting it.
  294.  
  295. "Unexpected read error"
  296.  
  297.      IFL encountered  an  error  while  reading  the  archive  file.
  298.      (Pretty straightforward, eh?!)
  299.  
  300. "Invalid header ID encountered"
  301.  
  302.      Each  entry  in  an  archive  file is preceded by a header that
  303.      identifies the file, and includes such information as the file-
  304.      name, the compressed and  uncompressed  length,  the  date  and
  305.      time, etc.  If this header is not in the place that IFL expects
  306.      it, this error message is displayed.
  307.  
  308. "Can't find next entry in archive"
  309.  
  310.      This  message is somewhat related to the preceding one, in that
  311.      IFL could not find the next entry in the archive file.
  312.  
  313. "File is not in ARC/ZIP format"
  314.  
  315.      The specified file is not in a format  that  IFL  can  process.
  316.      Either  the  file  was  created  with  an unsupported archiving
  317.      program, or the file is a self-extracting  archive  (which  IFL
  318.      does not support).
  319.  
  320.  
  321.                         PROGRAM VERSION HISTORY
  322.  
  323. Version 1.10 - 02/24/89
  324.  
  325.      1.   Restructured  much  of  the  code.   This  allowed for the
  326.           addition of  the  new  features  described  below  without
  327.           adding much over- head to the executable file.
  328.  
  329.      2.   Added  automatic  extension  support (described earlier in
  330.           this documentation).
  331.  
  332.      3.   Added support for archives  created  with  SEA's  new  ARC
  333.           6.00,  which uses new header codes to support subdirectory
  334.           archiving.
  335.  
  336. Version 1.00 - 02/11/89
  337.  
  338.      Initial release.
  339.  
  340.                               -- 6 --
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.