=============================================================================

				ARC for CP/M

ARC is a Turbo Pascal implementation of the original MS-DOS program written
by Thom Henderson of System Enhancement Associates.  The original program
was one of the first utilities to combine multiple files into a single trans-
portable file (archive) while compressing the member files.

More information along with some essential patching instructions can be
found in the file called READ.ME.

=============================================================================

2013.08.27	Jon Saxton

ARC v2.2 fixes two long-standing bugs present in v2.0 and v2.1.  The first
was by far the more serious in that it caused some members to be incorrectly
extracted.  The problem occurred on a string table reset so the bug affected
only those files which required such a reset during compression.

It was one of those problems which took a very long time to find and a very
short time to fix.

The second bug was a Y2K issue which affected the date display in archive
listings; a date would show as 27 Aug113 instead of 27 Aug 13.  That one was
much easier to find.

-----------------------------------------------------------------------------

2012.10.27	Jon Saxton

ARC v2.1 is a minor upgrade to Tilmann Reh's ARC v2.0 but one which, in my
opinion, makes the program much easier to use when transferring files between
CP/M and other systems.

Following a tradition established by Bob Freed in the mid 80s, SEA archives
on CP/M were given an extension of .ARK instead of .ARC.  This may have made
some sense at the time but not now.  Furthermore, the names of files in SEA
archives created on CP/M always had the member names stored in upper case.
That meant the internal and external names were identical.  It doesn't make
any difference on operating systems such as Windows and OS/2 with file systems
which are case-preserving but case-insensitive but it is really annoying on
Linux and other UNIX-style operating systems where "TESSER.CAT", "tesser.cat"
and "Tesser.Cat" represent three different files.  Linux tolerates file names
with upper case letters but it is fair to say that it generally expects file
names to be all lower case.  When a bunch of files with upper case names is
extracted from an archive then dealing with those files means typing their
names in UPPER CASE.  To me that seems an unnecessary and avoidable incon-
venience.

This new release of ARC for CP/M stores file names in lower case and makes
life a lot easier when transferring files between Linux and CP/M.  That is
something which I do frequently.  Furthermore, as mentioned above, there are
no nasty consequences when transporting archives between CP/M and other oper-
ating systems.

ARC v2.1 is distributed as a .ARC file created with ARC v2.1.  It is also
supplied in this volume as a standalone program to allow extracting the rest
of the files.

	arc x arc21

will unpack the archive onto the current drive.  Drive prefixes can be given
to overcome issues of limited storage, e.g.:

	arc x e:arc21 c:

That will unpack ARC21.ARC on the E: drive, putting the files on the C: drive.

ARC v2.1 is almost completely compatible with ARC 5.21 on MSDOS and other
systems but it cannot handle 'squashed' files, i.e. compression type 9.  That
is not an issue which I intend to address.  The default action of arc on
other systems is to not use compression type 9 anyway.  Should you encounter
an archive which contains squashed member files then Bob Freed's unarc can be
used on CP/M to extract the member files.

The original documentation file ARCCPM.DOC is in German.  With the help of
Google Translate I made an English language version (ARC-EN.TXT).  I can't
guarantee 100% accuracy.  One thing I do know is that using a wildcard in the
archive name does not work, despite what the documentation says.  I am
not concerned about that, it seems an unnecessary "feature" to me.  I have not
even bothered to check whether or not my changes were responsible for the
failure.

ARC-EN.WS is the source document for ARC-EN.TXT.

MANIFEST
========

ARC.COM		Compiled executable
ARC.FOR		BBS synopsis
ARC.PAS		Main program source code
*.INC		Functional modules source code
ARCDOC.TXT	Program documentation (in German)
ARC-EN.TXT	Program documentation (in English)
ARC-EN.WS	Source for ARC-EN.TXT
ARCMACS.ARC	Assembly language source code for inline functions
ARC22.TXT	This file
READ.ME		Summary and build instructions

