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 >
Wrap
Text File
|
1990-10-03
|
16KB
|
349 lines
Interior File Listing Utility 02/24/89 Version 1.10
IFL
Interior File Listing Utility
Copyright 1989 by Martin Pollard. All rights reserved.
This program may be freely copied and distributed. In the same vein, I
ask for no monetary contributions whatsoever; thus, this program is
truly Freeware. I only ask that, if distributed, the program and
documentation not be altered in any way. Your cooperation with this
simple request will be an incen-tive for newer and better versions of
this program.
Although I have tried to make this program as bug-free as possible, I
will not be liable for any damages caused, either directly or indirectly
by the use of this program. This program is distributed without warran-
ty, either expressed or implied.
NOTE: Throughout this documentation, the term "archive file"
is used to describe any file that contains multiple
files. Likewise, the term "archiving program" is used
to describe any program that creates an archive file.
If you encounter any problems while using the program, or if you have
any suggestions to improve the operation of IFL, please feel free to
drop me a line:
Martin Pollard
21116 Erben
St. Clair Shores, MI 48081
ATTN: IFL
Please include a self-addressed stamped envelope to ensure a speedy re-
ply. Letters that do not include an SASE will not necessarily be ig-
nored; they just won't be replied to as quickly!
ARC is a trademark of System Enhancement Associates
CP/M is a trademark of Digital Research Inc.
IBM is a trademark of International Business Machines Corp.
MS-DOS is a trademark of Microsoft Corp.
-- 1 --
Interior File Listing Utility 02/24/89 Version 1.10
A SHORT HISTORY OF ARCHIVING PROGRAMS
What exactly is an archiving program? It is a program that takes a
group of files and stores them into one single file, called an archive
file. Such an archiving program may or may not compress the files be-
fore storing them in the archive file. (Compression means to read the
file, perform mathematical and probability calculations on the data --
which can be either text or binary data -- and write a new file
containing the compressed information.)
The first of these kinds of programs originated under the CP/M operating
system. They were LU, SQ and USQ, which stood for Library Utility,
Squeeze, and Unsqueeze. LU was a very primitive archiving program: It
simply took files and placed them into an archive file (LU called them
"library" files), with no compression performed on the data at all. The
SQ program was usually used to compress files before they were stored by
LU. (SQ used a method call Huffman encoding to compress the information.
USQ, as you may have guessed, simply reversed the process.) LU-created
files can usually be identified by the ".LBR" extension (although this
was not required, the .LBR extension was usually used to maintain con-
sistency) or the ".LQR" extension (if the file was squeezed AFTER files
were stored in it). For years, the combination of LU, SQ and USQ -- and
its derivatives -- were the next best thing to sliced bread.
When the IBM PC appeared, these programs were, naturally, ported over to
the MS-DOS operating system. However users quickly felt the limitations
of LU, SQ and USQ. These programs were originally written for slow,
8080 and Z80 based systems with a maximum of 64K of memory; the IBM PC
was faster, and MS-DOS was free from the 64K limitation. (Okay, it has a
640K limitation, but that's irrelevant here.) Users figured there HAD to
be a better way.
System Enhancement Associates (SEA) came up with the better mousetrap
with its ARC program. ARC essentially combined the functions of LU, SQ,
and USQ by compressing files before storing them in the archive file.
Even here, ARC took a different approach, replacing LU's fixed directory
(which was at the beginning of each library file) with a "distributive"
directory (files stored in the archive are preceded by a "header" de-
scribing the file in detail). Over the years, ARC has been improved
with more user options and more advanced compression methods (like
Dynamic Lempel-Zev-Welch, or "Crunching").
Unfortunately, ARC had the big problem that plagued the early CP/M pro-
grams: It was very slow. To solve this, Phil Katz of PKware created
PKARC, an ARC "clone" that was so fast that it began to surpass ARC in
popularity. Later enhancements to PKARC also included a Dynamic LZW
variant that Phil Katz called "squashing", and PKARC created a fanatic-
ally loyal legion of followers.
(Another file compression program called DWC appeared during this time,
but due to its incompatibility with .ARC-format files, it did not gain
much popularity. It is very rare that you will find a DWC-format file.)
-- 2 --
Interior File Listing Utility 02/24/89 Version 1.10
SEA, in 1988, filed a lawsuit against PKware, charging unlawful use of
ARC's source code and unfair business practices. (The details of the
lawsuit have been discussed elsewhere, so I will not go into them here.)
The settlement between Phil Katz and SEA essentially ended production of
PKARC; this action has, unfortunately, alienated many users of both ARC
and PKARC, and may threaten the continuance of ARC as a valid file
archiving format.
In the midst of all this, a company called NoGate Consulting released a
program called PAK. PAK was yet another variation of ARC, with an even
more advanced Dynamic LZW variant dubbed "Crushing." PAK, which is still
in existence today, has created a small following of users, but has not
caught on overall, for two reasons: It is slower than PKARC (but faster
than ARC), and the Crushing format makes it incompatible with many pro-
grams that process ARC files.
And if that weren't enough, two non-ARC-compatible file compression pro-
grams are making their way into the mainstream: ZOO by Rahul Dhesi, and
PKZIP from PKware. ZOO, which uses its own versions of Dynamic LZW com-
pression, exists under many different machine environments, including
UNIX and VAX, and is the program of choice for those users moving be-
tween different machines. PKZIP is Phil Katz' alternative to the ARC
format; it operates very similarly to PKARC, but uses an enhanced file
format (which, unlike ARC, can store subdirectory information) and new
methods of file compression. (One is a variant of Dynamic LZW compres-
sion called "Shrinking", the other is a combination of repeat-byte and
probabilistic compression called "Reducing.")
(More detailed descriptions of Huffman encoding, Dynamic Lempel-Zev-
Welch compression, and repeat-byte and probabilistic compression can be
found in the documentation for SQ/USQ, ARC, PKARC/PKPAK, PAK, ZOO, and
PKZIP.)
It can become highly confusing to work with all these different file
formats. This can be especially nerve-wracking to BBS system operators
and users alike, since BBS systems, although mainly populated with ARC
files, can conceivably contain files in ANY of the aforementioned for-
mats. What is needed is a single program to read any of these formats.
IFL to the rescue!
WHAT IS IFL AND HOW DO I USE IT?
IFL stands for Interior File List, and that's exactly what it does: It
provides a listing of the contents of an archive file. Currently sup-
ported formats, and the programs that produce them, are:
ARC format:
ARC by System Enhancement Associates
PKARC and PKPAK by PKware
PAK by NoGate Consulting
ZIP format:
PKZIP by PKware
-- 3 --
Interior File Listing Utility 02/24/89 Version 1.10
Other formats may be supported in future versions. (Note that IFL does
not support self-extracting archives!) The syntax for using IFL is very
straightforward:
IFL filename
Where "filename" is the name of the archive file you wish to view. If
you do not specify an extension with the filename, IFL will automatic-
ally cycle through all the extensions it supports (appending them one at
a time to the filename) until it finds the file. At this time, support-
ed extensions include ARC, ARK, PAK, and ZIP. The filename may be pre-
ceeded by a drive and/or pathname. If no filename is specified, a help
screen is displayed.
Output from IFL may be redirected to another file or device (such as
PRN) using the MS-DOS output redirection symbol ">". The output con-
sists of the following information:
Length The length of the file when uncompressed, in
bytes.
Size Now The length of the compressed file, in bytes. This
This is the number of bytes the file actually
take up inside the archive file.
Ratio The amount of space saved, in percent.
Storage The compression method used to store the file.
Valid methods are:
-- The file is not compressed.
Unknown! The file is compressed using an un-
known (unsupported) compression
method.
Packed The file is compressed with repeat-
byte compression.
Squeezed The file is compressed with Huffman
encoding.
crunched The file is compressed using an ob-
solete version of Lempel-Zev-Welch
compression.
Crunched The file is compressed using Dynamic
LZW (code size of 9 to 12 bits) and
repeat-byte compression with
adaptive reset.
Squashed The file is compressed using Dynamic
LZW (code size of 9 to 13 bits) com-
pression with adaptive reset.
Crushed The file is compressed using Dynamic
LZW (code size of 2 to 13 bits) com-
pression with partial adaptive reset.
Shrunk The file is compressed using Dynamic
LZW (code size of 9 to 13 bits) com-
pression with partial adaptive reset.
-- 4 --
Interior File Listing Utility 02/24/89 Version 1.10
Reduced 1 The file is compressed using repeat-
byte and probabilistic compression
(factor 1).
Reduced 2 The file is compressed using repeat-
byte and probabilistic compression
(factor 2).
Reduced 3 The file is compressed using repeat-
byte and probabilistic compression
(factor 3).
Reduced 4 The file is compressed using repeat-
byte and probabilistic compression
(factor 4).
Directory Indicates an ARC 6.00 directory entry.
Files shown below this marker will be
indented until the end of directory
marker (not shown) is encountered.
Date and The date and time of the last modification of the
Time file. Except for ARC 6.00 directory entries, this is
usually not the date and time in which the file was
stored.
Filename The name of the stored file. Note that files in ZIP-
format archives may contain a pathname (indicated by
forward slashes "/").
Below the main listing will be displayed total values for all the files
displayed. Shown are totals for length, size now, ratio (overall), and
number of files. Note that these totals do NOT take into account the
overhead for file headers, the central directory of ZIP archives or di-
rectory markers of ARC 6.00 archives. (Sample output from IFL is shown
below.)
Figure 1 - Sample Output From IFL
IFL v1.10 listing of C:IFL.ZIP
Length Size Now Ratio Storage Date Time Filename
======== ======== ===== ========= ======== ====== ============
6866 2908 58% Reduced 4 2-06-89 10:19p IFL.C
2574 1250 52% Reduced 4 2-06-89 10:12p IFL.H
======== ======== ===== ============
9440 4158 56% 2 files
ERROR MESSAGES
Listed below are all error messages produced by IFL. If you do receive
an error while using IFL, check this list for the probable cause. (In
most cases, a corrupt archive is the cause of the error.)
-- 5 --
Interior File Listing Utility 02/24/89 Version 1.10
"Unable to access specified file"
IFL could not, for some reason, access the specified file. The
file may not exist on the disk, or some other error may be pre-
venting IFL from accessing the file.
"Unexpected end of file"
The end of the archive file was encountered when IFL was not
expecting it.
"Unexpected read error"
IFL encountered an error while reading the archive file.
(Pretty straightforward, eh?!)
"Invalid header ID encountered"
Each entry in an archive file is preceded by a header that
identifies the file, and includes such information as the file-
name, the compressed and uncompressed length, the date and
time, etc. If this header is not in the place that IFL expects
it, this error message is displayed.
"Can't find next entry in archive"
This message is somewhat related to the preceding one, in that
IFL could not find the next entry in the archive file.
"File is not in ARC/ZIP format"
The specified file is not in a format that IFL can process.
Either the file was created with an unsupported archiving
program, or the file is a self-extracting archive (which IFL
does not support).
PROGRAM VERSION HISTORY
Version 1.10 - 02/24/89
1. Restructured much of the code. This allowed for the
addition of the new features described below without
adding much over- head to the executable file.
2. Added automatic extension support (described earlier in
this documentation).
3. Added support for archives created with SEA's new ARC
6.00, which uses new header codes to support subdirectory
archiving.
Version 1.00 - 02/11/89
Initial release.
-- 6 --