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)