<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Mon, 13 Jul 1987 00:25:00 MDT
From   : Keith Petersen <W8SDZ@SIMTEL20.ARPA>
Subject: Decompression / IMP / MEX

     This document is intended to give a brief overview of files stored
in the public domain archives at SIMTEL20.

     Many of the files in our archives have been compressed and/or
grouped together in a single file by using one of the utilities
available to the public domain that either SQueezes, CRUNCHes,
LiBRaries, or ARChives files.  This has been done to minimize disk
storage requirements and also to minimize download time.

     These processed files are specially named with a filetype and can
be identified by the last 3 letters of a filename after the "." that
signifies the conversion.  These are:

        .ARK   for CP/M files archived (same as MS-DOS "ARC").
        .LBR   for files libraried.
        .?Q?   for squeezed files (middle letter is a Q).
        .?Z?   for crunched files (middle letter is a Z).

     A library is a group of files collected together into one file in
such a way that the individual files may be recovered intact.  A
library file can be identified by the "LBR" as the extent of the file
name.  LU (Library Utility) is a CP/M utility used to maintain
libraries of files.  LU does not perform any compression.  Because of
this, most people will squeeze or crunch files before adding them to a
library if they want to save space.  If you want to remove the
component files (members) from a LBR file, you should have a copy of
LU.COM or other LBR extractor utility.  At the end of this document is
a list of the programs available for that function with libraries.

     Recently, popular CP/M Public Domain software files and
information files are being distributed using ARCHIVE files.  Archive
files are similar to library (LBR) files in that they take a logical
group of files and put them together in a single file.  The main
difference, is that the members of the "ARC" or "ARK" file are
automatically compressed.  The compression algorithm chosen is one of
three which will produce the smallest file.

     Archive files have been available to the MS-DOS and PC-DOS areas,
but, have been made useful in the CP/M environment with the
introduction of the "UNARC" program.  The current version is 1.6, and
is available with extensive documentation, and two executable COM
files, a 8080/8085 version and a Z80 version.  The Z80 version takes
advantage of the expanded Z80 (and equivalent) instruction set for
speed and size, and therefore is machine dependent.  There is also a
modification overlay to adapt the program to non-standard CP/M 2.2 and
3.0 operating systems, such as CP/M68k and CP/M emulators.  Programs
are available on many machines to process "ARC" files, the Atari ST,
systems running the UNIX systems, systems running MS-DOS, and CP/M.

     There currently is no CP/M utility available to make an "ARK"
file.  Archive files will be made in the MS-DOS/PC-DOS, TOPS20 or UNIX
environment.  To avoid confusion on RCP/Ms that support both MS-DOS
and CP/M callers, Archive files have a file extension of "ARK" for
CP/M software and information files.

     Some files on SIMTEL20 have been compressed, using one of the
standard public domain utilities, to minimize download time and to
save storage space.

     Files that have been compressed can be identified by the filetype
(the last 3 letters of a filename after the '.') that signifies the
compression.  These are:

        .?Q?   for Squeezed files (middle letter is a Q).
        .?Z?   for Crunched files (middle letter is a Z).

     USQ120.COM is used to unsqueeze, or expand files that have a "Q"
as the middle letter of the filetype.  Such files have been squeezed,
or compressed with SQ111.COM or similar.  These programs use Huffman
Encoding to reduce the size of the target file.  Depending on the
distribution of data in a file it can be reduced in size by 30% to 60%
by squeezing it.  If you download a file with a filetype indicating
that it is squeezed, you will need USQ120.COM to expand it before you
can use it.  There are other programs available, written in different
languages and take advantage of special hardware, but USQ120 is
8080/8085/Z80 compatible.

     Other utilities are available that have the unsqueeze coding
imbedded and function with squeezed or unsqueezed files.  There are
programs that perform file maintenance functions (NSWP), bi-directiona
display utilities (BISHOW), and string search programs, (FYNDE and
FINDU).  This method of compressing files has been used for some time
now and programs to uncompress the files are available to several
micro processors and main frame computers.

     CRUNCH uses the Lempel-Ziv-Welch (LZW) techniques.  This method
is fast and offers compression ratios around 55%.  Highest compression
is achieved with graphics data, values of 90% are typical, followed by
text, with 50%, and COM files around 20%.  This method is new to the
CP/M environment.  See CRUNCH23.LBR for the Z80 CRUNCH and UNCRunch
programs.  See FCRNCH11.LBR for the 8080/8085 and V20 CRUNCH and
UNCRunch programs.

     Since this method of compression is relatively new, the only
utilities available that processes crunched files are "typer"
utilities such as TYPELZW, TYPEQZ, and LT, which also type members of
libraries and squeezed files.  If running a 8080/8085 processor, check
the documentation to determine if the utility will only process files
on systems using the Z80 processor.  Currently, there is no compatible
program for other micro processors or mainframes.

     MicroSoft BASIC programs are always saved as ASCII files (saved
with the ",A" operand).  They may than be squeezed or crunched.  This
has been done to allow them to be converted for use with other BASIC
compilers or interpreters.

     Some executable files have a file extension of "OBJ".  These are
really "COM" files that have been renamed to "OBJ" to avoid execution
on RCP/M systems.  Rename them back to "COM" for use them as commands
on your system.


     Below is a list of utilities available on SIMTEL20 that work with
the above mentioned files.  For the current version, check the
directory list PD:<CPM.CRCLST>.

        CPMSQV3.LBR     SQueeze/UnSQueeze - Turbo Pascal
        CRUNCH23.LBR    Data compression with LZW algorithm
        DELBR11.COM     LBR file extractor
        DLU12.PQS       A library utility in turbo pascal
        FCRNCH11.LBR    A cruncher for 8080 systems.
        LDIR.COM        Directory lister for LBR files
        LDIR23.COM      Lists directory of LBR file
        LRUN20.LBR      Run .COM files inside LBRs
        LSTYPE.LBR      Print multiple files inside LBRs
        LSWEEP13.LBR    Library SWEEP utility extract/view
        LTYPE17.LBR     Types text files inside LBRs
        LT19.LBR        Types and extracts files inside LBRs
        LU300.DQC       Documentation for LU
        LU310.COM       Library Utility version 3.10
        LU310.HLP       Help file for use with LU310
        LU310.UPD       Update info on LU310.COM
        LUDEF5.DQC      Internal structure of LBR files
        LZW.LBR         Compression/decompression Utilities
        NULU15.NOT      A note from the author of NULU151
        NULU15.WQ       Complete user's guide for NULU151
        NULU151.COM     Machine lang. Library Utility pgm
        NULUFIX.ASM     Bug fixes for NULU15.COM
        NULUTERM.AQM    Terminal configuration for NULU151
        SQ.PQS          File SQueezer
        SQ111.COM       Machine language SQueezer, very fast
        SQUEEZE.TXT     Tutorial on SQueeze/UnSQueeze
        SQUPRT33.LBR    Portable SQueeze/UnSQueeze in C lang
        UNARC.COM       Z80 version of UNARChive utility
        UNARC16.ARK     UNARC utility for CP/M (rename to UNARC16.COM)
        UNARCA.COM      8080/8085 version of UNARChive utility
        UNCR23.COM      UNCRunch for CRUNCH20 and prior
        USQ.PQS         SQueezed file UnSQueezer
        USQ120.COM      Dave Rand's machine lang. UnSQueezer
        USQFST20.LBR    Fast unsqueezer for Z80 computers


                      GETTING STARTED

CP/M-80 files:

PD:<CPM.STARTER-KIT>COMPRESS.TXT <--explains compressed files
PD:<CPM.STARTER-KIT>CRUNCH.COM   <--LZW file cruncher (Z80 only)
PD:<CPM.STARTER-KIT>CRUNCH.HEX   <--use LOAD.COM to make CRUNCH.COM
PD:<CPM.STARTER-KIT>DELBR11.COM  <--extracts file from LBR's
PD:<CPM.STARTER-KIT>DELBR11.HEX  <--use LOAD.COM to make DELBR11.COM
PD:<CPM.STARTER-KIT>DELBR11A.C   <--Aztec C II source for above
PD:<CPM.STARTER-KIT>LU300.DQC    <--explains CP/M "LU" program
PD:<CPM.STARTER-KIT>LU310.COM    <--the LU program itself (does LBR's)
PD:<CPM.STARTER-KIT>LU310.HEX    <--use LOAD.COM to make LU310.COM
PD:<CPM.STARTER-KIT>LU310.HLP    <--and a help file for it
PD:<CPM.STARTER-KIT>SQ111.COM    <--CP/M-80 file squeezer
PD:<CPM.STARTER-KIT>SQ111.HEX    <--use LOAD.COM to make SQ111.COM
PD:<CPM.STARTER-KIT>SQUEEZE.TXT  <--explains squeezed files
PD:<CPM.STARTER-KIT>UNARC.COM-Z80 <--extracts files from ARCs (Z80 only)
PD:<CPM.STARTER-KIT>UNARC.HEX-Z80 <--use LOAD.COM to make UNARC.COM
PD:<CPM.STARTER-KIT>UNARCA.COM-8080 <--ditto, for 8080
PD:<CPM.STARTER-KIT>UNARCA.HEX-8080 <--use LOAD.COM to make UNARCA.COM
PD:<CPM.STARTER-KIT>UNARC.DOC    <--how to use UNARC
PD:<CPM.STARTER-KIT>UNARC.INF    <--technical info on UNARC and ARC files
PD:<CPM.STARTER-KIT>UNCR.COM     <--LZW file uncruncher (Z80 only)
PD:<CPM.STARTER-KIT>UNCR.HEX     <--use LOAD.COM to make UNCR.COM
PD:<CPM.STARTER-KIT>UNCR8080.COM <--LZW file uncruncher (8080)
PD:<CPM.STARTER-KIT>UNCR8080.HEX <--use LOAD.COM to make UNCR8080.COM
PD:<CPM.STARTER-KIT>USQ120.COM   <--CP/M-80 file unsqueezer
PD:<CPM.STARTER-KIT>USQ120.DOC   <--how to use it
PD:<CPM.STARTER-KIT>USQ120.HEX   <--use LOAD.COM to make USQ120.COM
PD:<CPM.STARTER-KIT>UUDECODE.BAS <--decodes uuencoded files (BASIC) (slow)
PD:<CPM.STARTER-KIT>UUDECODE.COM <--decodes uuencoded files
PD:<CPM.STARTER-KIT>UUDECODE.HEX <--use LOAD.COM to make UUDECODE.COM
PD:<CPM.STARTER-KIT>UUDECODE.PAS <--Turbo Pascal source for above
PD:<CPM.STARTER-KIT>UUENCODE.COM <--makes uuencoded files
PD:<CPM.STARTER-KIT>UUENCODE.HEX <--use LOAD.COM to make UUENCODE.COM
PD:<CPM.STARTER-KIT>UUENCODE.PAS <--Turbo Pascal source for above

CP/M-86 files:

PD:<CPM.CPM86>NUSQ110.CMD   <--unsqueeze for CP/M-86
PD:<CPM.CPM86>NUSQ110.HEX   <--unsqueeze for CP/M-86
PD:<CPM.CPM86>NUSQ110.UUE   <--uuencoded NUSQ110.CMD
PD:<CPM.CPM86>UUDECODE.CMD  <--decodes uuencoded files
PD:<CPM.CPM86>UUDECODE.PAS  <--Turbo Pascal source for above
PD:<CPM.CPM86>UUENCODE.CMD  <--makes uuencoded files
PD:<CPM.CPM86>UUENCODE.PAS  <--Turbo Pascal source for above

--Keith Petersen
Arpa: W8SDZ@SIMTEL20.ARPA
Uucp: {bellcore,decwrl,harvard,lll-crg,ucbvax,uw-beaver}!simtel20.arpa!w8sdz
GEnie: W8SDZ
RCP/M Royal Oak: 313-759-6569 - 300, 1200, 2400 (V.22bis) or 9600 (USR HST)
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>