[comp.sys.tandy] Documentation for ARC4/CMD

UUCP@vu-vlsi.UUCP (04/14/87)

                                   ARC4/CMD
                             File Archive Utility
                           Version 01.00.00 12/11/86
                               for TRSDOS 6.x.x

          (C) COPYRIGHT 1985, 1986 by System Enhancement Associates;
                              ALL RIGHTS RESERVED
      TRSDOS 6.x.x adaptations (C) COPYRIGHT 1986 by David Huelsmann;
                              ALL RIGHTS RESERVED

   This document describes the ARC4 file utility, version 01.00.00, which was
based on the MS-DOS ARC created by System Enhancement Associates.

                                 INTRODUCTION

   ARC is the copyrighted property of System Enhancement Associates. Since ARC4
s a derivative work based on ARC, it, too, is the copyrighted property of
System Enhancement Associates. The TRSDOS 6.x.x modifications are the
copyrighted property of David Huelsmann.
   You are granted a limited license to use ARC4, and to copy it and distribute
it, provided that the following conditions are met:

1) No fee may be charged for such copying and distribution.
2) ARC4 may ONLY be distributed in its original, unmodified state.

   Any voluntary contributions for the use of this program will be appreciated,
and should be sent to:

System Enhancement Associates
21 New Street
Wayne, NJ   07470

   You may not use this product in a commercial environment or a governmental
organization without paying a license fee of $35. Site licenses and commercial
distribution licenses are available. See the order form in the back of this
manual for more details.

A word about user supported software:

   The user supported software concept (usually referred to as freeware) is an
attempt to provide software at low cost. The cost of offering a new product by
conventional means is staggering, and hence dissuades many independent authors
and small companies from developing and promoting their ideas. User supported
software is an attempt to develop a new marketing channel, where products can
be introduced at low cost.
   If user supported software works, then everyone will benefit. The user will
benefit by receiving quality products at low cost, and by being able to "test
drive" software thoroughly before purchasing it. The author benefits by being
able to enter the commercial software arena without first needing large sources
of venture capital.
   But it can only work with your support. We're not just talking about ARC and
ARC4 here, but about all user supported software. If you find that you are
still using a program after a couple of weeks, then pretty obviously it is
worth something to you, and you should send in a contribution.

And now, back to ARC4:

   ARC4 is used to create and maintain file archives. An archive is a group of
files collected together into one file in such a way that the individual files
may be recovered intact.
   ARC4 is different from other archive and library utilities in that it
automatically compresses the files being archived, so that the resulting
archive takes up a minimum amount of space.
   When ARC4 is used to add a file to an archive it analyzes the file to
determine which of three storage methods will result in the greatest savings.
These three methods are:

1) No compression; the file is stored as is.
2) Repeated-character compression; repeated sequences of the same byte value
   are collapsed into a three-byte code sequence.
3) Huffman squeezing with repeated-character compression; the file is
   compressed into variable length bit strings, similar to the method used by
   the SQ programs.

   Note that since one of the three methods involves no compression at all, the
resulting archive entry will never be larger than the original file.
   An interesting note: It has been brought to SEA's attention that BASIC
programs compress to a smaller size when they are not tokenized. If you are
more concerned with space than speed, you may wish to convert your BASIC
programs to ASCII form before adding them to an archive. Your BASIC manual
should give instructions on how to do this.

                                  USING ARC4

   ARC4 is invoked with a command of the following format:

ARC4 <x> <arcname>  <template> . . .|

Where:

<x> is an ARC4 command letter (see below), in either upper or lower case.

<arcname> is the name of the archive to act on, with or without an extension.
If no extension is supplied, then "/ARC" is assumed. The archive name may
include a drive specifier.

<template> is one or more file name templates. The "wildcard" characters "$",
"*" and "?" may be used. A "!"  may be used to reverse the sense of the
wildcard following. A file name template may include a drive specifier.

   If ARC4 is invoked with no arguments (by typing "ARC4", and pressing
<ENTER>, then a brief command summary is displayed.
   The following is an example of the display when ARC4 is invoked with no
arguments:

                      ARC4/CMD Version 01.00.00 12/11/86
          (C) COPYRIGHT 1985,1986 by System Enhancement Associates
                            ALL RIGHTS RESERVED
       TRSDOS 6.x.x adaptations (C) COPYRIGHT 1986 by David Huelsmann
                            ALL RIGHTS RESERVED
                      Distributed with permission of SEA

    Usage: ARC4  aumdexplvt| b| g{password}| archive  file(s)| >*pr|
>file|
              Where:   a,u = Add (update) file(s) to archive
                       m   = Move file(s) to archive
                       d   = Delete file(s) in archive
                       e,x = Extract file(s) from archive
                       p   = Print file(s) in archive to CRT
                       l,v = List table of contents (verbose) to CRT
                       t   = Test archive integrity
                       b   = Backup copy of archive retained
                       g   = Garble (encrypt/decrypt) archive file(s)

           Refer to program documentation for complete instructions
         and limitations on copying and distribution of this program.

                                 ARC4 COMMANDS

   This section describes each of the commands. ARC4 will accept any one
command at a time. If no commands are given, then a brief command list is
displayed as shown above.

ADDING FILES

   Files are added to an archive using the "A" (Add), "U" (Update), or "M"
(Move) commands. Add and Update are the same and always add the file. Move
differs from Add and Update in that the source file is deleted once it has been
added to the archive.
   For example, if you wish to add a file named "TEST/DAT" to an archive named
"MY/ARC", you would use a command of the form:

ARC4 A MY TEST/DAT

or

ARC4 A MY TEST.DAT

or

ARC4 U MY TEST/DAT

   Note that ARC4 will automatically supply the extension /ARC. You could also
supply the drive specifier on the archive without the extension such as "my:1".
ARC4 will read this as MY/ARC:1. ARC4 will accept a different extension than
/ARC for the archive file if you wish. Note, also, that ARC4 will accept either
the slash "/" or a period "." as an extension delimeter in the extensions of
files.
   If you wanted to add all files with a  "/C" extension, and all files named
"STUFF" to an archive named "JUNK/ARC" located on drive 1, you could type:

ARC4 A JUNK *.C STUFF.*

or

ARC4 A JUNK:1 $/C STUFF.*

   Note that failure to supply a drive specifier when using wildcards will
cause the addition of all files that match the wildcard on ALL drives.
   If you wanted to move all files on drive 2 into an archive named "SUM/ARC"
on drive 1, you could use a command of the form:

ARC4 M SUM:1 $/$:2

   Note that after the files are placed in the archive, they are killed from
the source drive.
   Archive entries are always maintained in alphabetic order. Archive entries
may not have duplicate names. If you add a file to an archive that already
contains a file by that name, then the existing entry in the archive is
replaced. Also, the archive itself and its backup will not be added.
   You cannot add two files with the same name. In other words, if you have a
file named "STUFF/TXT:0" and another file named "STUFF/TXT:1", then typing:

ARC4 A JUNK STUFF/$:0 STUFF/$:1

will not work.

   ARC4 does not save the drive specifier or any passwords. In other words, if
you specify a drive and/or password when adding a file, only the actual file
name is stored in the archive.
   ARC4 will never add an archive to itself, nor will it add the temporary
copy or a backup copy of the archive.

EXTRACTING FILES

   Archive entries are extracted with the "E" (Extract) and "X" (eXtract)
commands. For example, if you had an archive named "JUNK/ARC", and you wanted
all files in it with an extension of "/TXT" or "/DOC" to be recreated on your
disk, you could type:

ARC4 E JUNK $/TXT $/DOC

or

ARC4 X JUNK $/TXT $/DOC

   Note that in the above examples, the files would be extracted to drive 0.

   If you wanted to extract all of the files in an archive named "JUNK/ARC",
you could simply type:

ARC4 E JUNK

or

ARC4 E $/$:2

   Note that in the first example, all files would be extracted to drive 0 and
in the second example, all files would be extracted to drive 2.
   Whatever method of file compression was used in storing the files is
reversed, and uncompressed copies are created. If a file with the same name
already exists on the drive specified, you will be asked if you wish to
overwrite the file.
   You can also specify a drive specifier, in which case the decompressed copy
is placed on the specified drive. If you give more than one drive for a file,
then only the first one is used.
   For example, if you typed:

ARC4 X JUNK:1 TRASH/TXT:1 TRASH/TXT:2

then TRASH/TXT will be placed on drive 1.

DELETING FILES

   Archive entries are deleted with the "D" (Delete) command.  For example, if
you had an archive named "JUNK/ARC", and you wished to delete all entries in it
with a filename extension of "/C", you could type:

ARC4 D JUNK $/C

   Note that deleted files cannot be recovered (unless you specified to keep a
backup copy of the archive). ARC4 recovers all space from deleted files.

LISTING ARCHIVE ENTRIES

   You can obtain a list of the contents of an archive by using the "L" (List)
command or the "V" (Verbose list) command. Both commands display exactly the
same thing in ARC4.
   For example, to see what is in an archive named "JUNK/ARC", you could type:

ARC4 L JUNK

or

ARC4 V JUNK

   ARC4 prints a listing of an archive's contents like this:

  Name          Length    Stowage    SF   Size now  Date       Time    CRC
  ============  ========  ========  ====  ========  =========  ======  ====
  ARC4.C           27318  Squeezed   45%     15248  28 Dec 86   1:23p  69e4
  ARC4.H            5239  Squeezed   40%      3194  28 Dec 86   1:26p  5f5d
  ARC42.C          20620  Squeezed   44%     11617  28 Dec 86   1:26p  6d9e
  ARC42.H           5245  Squeezed   38%      3265  28 Dec 86   1:28p  2f7f
  ARC43.C          23682  Squeezed   43%     13538  28 Dec 86   1:28p  2a53
  ARC43.JCL          161     --       0%       161  28 Dec 86   1:30p  4fd8
  COMPARC.JCL        249     --       0%       249  28 Dec 86   1:31p  c134
          ====  ========            ====  ========
  Total      7     82514             43%     47272

"Name" is simply the name of the file.

"Length" is the unpacked file length. In other words, it is the number of bytes
of disk space which the file would take up if it were extracted.

"Date" is the date on which the file had last been added to the archive.

"Total" is pretty obvious, I think.

"Stowage" is the compression method used. The following compression methods are
currently employed:

   --          No compression.
 Packed        Runs of repeated byte values are collapsed.
Squeezed       Huffman squeeze technique employed.

"SF" is the stowage factor. In other words, it is the percentage of the file
length which was saved by compression. The total stowage factor is the stowage
factor for the archive as a whole, not counting archive overhead.

"Size  now" is the number of bytes the file is occupying while in the archive.

"Time" is the time of last addition to the archive, and is associated with the
date of last addition.

"CRC" is the CRC-16 check value which has been stored with the file. Another
CRC-16 value will be calculated when the file is extracted or tested to ensure
data integrity. There is no especially good reason for displaying this value.

PRINTING FILES

   Archive entries may be examined with the "P" (Print) command. This works the
same as the Extract command, except that the files are not created on disk and
the high bit is set to zero and unprintable characters are converted to
periods.
   Instead, the contents of the files are written to the CRT. For example, if
you wanted to see the contents of every "/TXT" file in an archive named
"JUNK/ARC", but didn't want them saved on disk, you could type:

ARC4 P JUNK $/TXT

   Note that you can pause the output to your CRT by pressing <SHIFT><@> and
then can resume by pressing any key. Pressing <BREAK> during printing will exit
you from the program back to DOS.
   If you wanted the files to be printed on your printer instead of on your
screen, you could type:

ARC4 P JUNK $/TXT >*PR

   Note that no check is done to ensure your printer is online and the program
will appear to "hang" until the printer is online.

TESTING AN ARCHIVE

   The integrity of an archive may be tested by use of the "T" (Test) command.
This checks to make sure that all of the file headers are properly placed, and
that all of the files are in good shape.
   This can be very useful for critical archives, where data integrity must be
assured. When an archive is tested, all of the entries in the archive are
unpacked (without saving them anywhere) so that a CRC-16 check value may be
calculated and compared with the recorded CRC-16 value.
   For example, if you just received an archive named "JUNK/ARC" over a phone
line, and you want to make sure that you received it properly, you could type:

ARC4 T JUNK

   Any errors that occur will be displayed and a total count will be given. If
no errors occur on a file, it will be displayed as "okay".

                                 ARC4 OPTIONS

   This section describes the options which are available to modify how ARC4
works. Any of these options can be combined with any of the commands, though
the result may not always be something you'd want to do.

BACKUP RETENTION

   When ARC4 changes an archive (during an Add, Update, Move, or Delete) it
creates a new archive with the same name, but with an extension of "/TMP".
   For example, if you add a file to an archive named STUFF/ARC, then ARC4 will
create a new archive named STUFF/TMP. ARC4 will read from your existing archive
and write out the new archive with any changes to the "/TMP" copy.
   Normally when ARC4 is finished it deletes the original and renames the new
archive to the original name (ie. STUFF/ARC goes away, and STUFF/TMP becomes
the new STUFF/ARC). Among other things, this means that if anything goes wrong
and ARC4 is unable to finish, then your original archive will still be intact.
   In some circumstances you may wish to retain the original version of the
archive as a backup copy. You can do this easily by using the Backup option.
Add the letter "B" to your command, and ARC4 will rename your original archive
to have an extension of "/BAK" instead of deleting it.
   In other words, if you wanted to add "WASTE/TXT" to an archive named
"JUNK/ARC", but wanted to keep a backup copy, then you would type:

ARC4 AB JUNK WASTE/TXT

   Your original archive would become "JUNK/BAK", while "JUNK/ARC" would
contain the new "WASTE/TXT" file.
   If you keep a backup of an archive which already has a backup, then the
older backup copy is deleted.
   Note that the "/TMP" file and/or the "/BAK" file are kept on the same drive
as your "/ARC" file.

ENCRYPTION/DECRYPTION

   Archive entries may be encrypted and decrypted by using the "G" (Garble)
option. The Garble option takes the remainder of the command string as the
password to use, so it must be the last option.
   For example, if you wanted to add a file named "WASTE/TXT" to an archive
named "JUNK/ARC", and you wanted to encrypt it using the password "DEBRIS",
then you would type:

ARC4 AGDEBRIS JUNK WASTE/TXT

   Later on, when you want to extract it again, you would type:

ARC4 EGDEBRIS JUNK WASTE/TXT

   The password you supply is used to encrypt (or decrypt) the archive entry by
performing an exclusive OR between each byte of the packed data and each byte
of the password. The password can be any length, and each of its bytes is used
in rotation. The password is converted to uppercase before it is used, so it is
not case sensitive. Since the encryption is performed on the packed data, it
has no effect on stowage factors.
   This is not a particularly sophisticated means of encryption, and it is
theoretically possible to crack. Still, since it is performed on the packed
data, the result should be quite sufficient for casual use.
   You can, if you wish, use different passwords for different files in an
archive, but it is not advisable. If you are going to encrypt an archive, use
the same password for every file, and give the password whenever you do
anything at all with the archive. It is possible to list the entries in an
encrypted archive using the "L" and "V" commands without giving the password,
but nothing else will work properly.
   It is advisable that you use this option sparingly, if at all. If you should
forget or mistype your password, it is highly unlikely that you will ever
recover your data.

                         MS-DOS ARC File Compatibility

   ARC4 uses the exact same conventions in its file creation as does MS-DOS
ARC. Therefore, archives created by ARC4 can be read by ARC and extracted
properly. Of course, CMD files and tokenized basic files will not run under
MS-DOS. Also, there has been no provision made in ARC4 to add a line feed after
every carriage return. This would make it difficult for an MS-DOS ARC user to
read text files extracted from archives created by ARC4. This is not a problem
with ARC4! Rather, it is differing conventions used in the different computers.
   An easy solution would be for the ARC4 user to first squeeze the text file
using SQ4/CMD and the new line option. After unsqueezing and then adding to the
archive, a line feed would follow every carriage return.
   ARC4 cannot read archives created by MS-DOS ARC except in some unique
circumstances. A table of contents listing (L,V) would error out on the first
encounter of a file crunched under ARC. It would also have a problem with the
old style headers because it does no conversion to the newer style header.
Therefore, if the first few files are what you wanted to obtain AND they were
squeezed, packed, or stored, you would be able to extract. If the first file in
the archive was crunched, you could not proceed. Watch for XARC4 to extract
files from an MS-DOS archive sometime in January.

                               TECHNICAL SUPPORT

   It should be obvious by now that SEA cannot provide technical support even
though they wrote the original ARC that ARC4 is based on. They do not have
access to the source code, nor do they have a Model IV Tandy computer. ARC4 is
NOT in the public domain and can only be modified with the permission of the
original copyright holders of ARC and myself. Except for providing
contributions or obtaining a noncommercial or a commercial site license, you
should not be contacting SEA for support for ARC4.
   Please address all inquiries concerning ARC4 technical matters to:

David Huelsmann
3308 Delamar NE
Albuquerque, NM 87107

or to
SSE BBS
(505) 821-7379
1200/2400 bps anytime
300 bps after 2400 Mountain

or to

CIS ppn  71525,1363|

                                VERSION NUMBERS

   The version number of ARC4 is given as follows XX.YY.ZZ.

XX = a major revision, such as adding a new packing algorithm.
YY = a minor revision that is not essential, but which may be desired.
ZZ = a trivial revision that will probably only be desired by  specific
     individuals or by die-hard "latest version" fanatics.

   ARC4 also displays its date of last edit. A change of the date without a
corresponding change in version number indicates a truly trivial change, such
as fixing a spelling error.

                         COMMON QUESTIONS AND ANSWERS

Q:

   Why isn't crunching available in ARC4? Crunching is much faster.

A:

   Actually, crunching isn't really as fast as it looks. Crunching is a one
pass operation, while squeezing requires two passes. ARC actually does the
crunching during the analysis pass, and puts the crunched output in a file
named "$ARCTEMP.CRN". If crunching turns out to be the best method, then this
temporary file is copied into the new archive. In other words, when ARC says
"crunching" it isn't really crunching, it's just copying a file.
   Also, there are a lot of files out there that squeeze much better than they
crunch.
   Due to the memory limitations of the Tandy Model IV, it just wasn't possible
to add the coding and the tables necessary to handle crunching in ARC4.

Q:

   Why does ARC4 run out of room if I make an archive bigger than about 180k?

A:

   Because you are working on a floppy disk. ARC4 creates a copy of your
archive, incorporating any new files as it goes. When it is done, it deletes
the original and renames the new one. There are a number of reasons for doing
it this way, one being that your original archive is still intact if anything
happens while ARC4 is running.
   If you need to make a larger archive, and if you have a fixed disk, then you
can create the archive on the fixed disk and then copy it to the floppy.

Q:

   Can I use ARC4 to distribute my public domain or freeware program?

A:

   Yes, of course.

Q:

   Can I use ARC4 to distribute my commercial software package?

A:

   Yes. Please contact SEA for a commercial distribution license.

Q:

   I'm a commercial user. Why should I pay for freeware that others get for
free?

A:

   Because you cannot credibly plead poverty. Freeware, all freeware, is an
attempt to develop a new marketing channel to the benefit of everyone. You can
still "test drive" freeware for a short period, but if you decide to use it in
your business, then you should pay for it.

Q:

   Why not allow me to select which method of compression I want ARC4 to use?

A:

   It would needlessly complicate ARC4, both internally and in use. The exact
nature of the compression methods used are complex, and quite different. The
only sure way to tell which will be best in any given case is to analyze the
data, as ARC4 does. The method chosen may not always be what you expect.

Q:

   How can I get the latest version of ARC4?

A:

   ARC4 updates are distributed through normal freeware channels, and by
FidoNet.

                               REVISION HISTORY

    Version 01.00.00 12/11/86 of ARC4/CMD was released on 12/28/86.

                          PROGRAM HISTORY AND CREDITS

   ARC4/CMD is based on ARC Version 5.1.2 of System Enhancement Associates.
Thom Henderson graciously gave his permission to release a modified version of
ARC for the TANDY Model IV users on 12/11/86.
   While a number of changes and adaptations had to be made to the existing
source code (including eliminating some features like Lempel-Zev crunching),
the majority of the program is the original work of SEA, now, almost 2 years
old. The following is the program history and credits, as described by SEA, for
MS-DOS ARC:

   In its short life thus far, ARC has astounded us with its popularity. We
first wrote it in March of 1985 because we wanted an archive utility that used
a distributive directory approach, since this has certain advantages over the
more popular central directory approach. We added automatic squeezing in
version 2 at the prompting of a friend. In version 2.1 we added the code to
test for the best compression method.
   Now (in October of 1985) we find that our humble little program has spread
across the country, and seems to have become a new institution.We are thankful
for the support and appreciation we have received. We hope that you find this
program of use.
   If we have achieved greatness, it is because we have stood upon the
shoulders of giants. Nothing is created as a thing unto itself, and ARC is no
exception. Therefore, we would like to give credit to the following people,
without whose efforts ARC could not exist:

   Brian W. Kernighan and P. J. Plauger, whose book "Software  Tools" provided
many of the ideas behind the distributive directory approach used by ARC.
   Dick Greenlaw, who wrote the public domain SQ and USQ programs, in which the
Huffman squeezing algorithm was first developed.
   Robert J. Beilstein, who adapted SQ and USQ to Computer Innovations C86 (the
language we use), thus providing us with important parts of our squeezing
logic.
   Kent Williams, who graciously allowed us to use his LZWCOM and LZWUNC
programs as a basis for our Lempel-Zev compression logic, and who continues to
make valuable contributions.
   David Schwaderer, whose article in the April 1985 issue of PC Tech Journal
provided us with the logic for calculating the CRC 16 bit polynomial.
   Terry  A. Welch, whose article "A Technique for  High Performance Data
Compression", IEEE Computer Vol 17 No 6 (June 1984) seems to have started all
the research on Lempel-Zev coding.
   Spencer W. Thomas, Jim McKie, Steve Davies, Ken Turkowski, James A. Woods,
and Joe Orost, who are the authors of the UNIX compress utility.
   And many, many others whom we could not identify.

                                 SITE LICENSE

   Corporate users may wish to obtain a site license for the use of ARC4.
Please use the order form in this manual to order a site license. Site licenses
are granted as of when SEA receives your payment. License fees vary depending
on the number of computers on which ARC4 will be used, as follows:

1 to 9 copies   - $35 each
10 to 24 copies - $25 each
25 to 49 copies - $20 each
50 to 99 copies - $15 each
over 99 copies  - $1500 one time fee

   The following is a site license agreement, which should be signed and sent
with your payment when ordering a commercial site license.

                            Site License Agreement

   The use of ARC4 in a commercial environment or government organization is
granted under the following terms:

1. Payment of the license fee must be made to System Enhancement Associates.
   The fee is based on the number of computers which will be used to run ARC,
   as follows:

   1 to   9 copies  $35 each
   10 to 24 copies  $25 each
   25 to 49 copies  $20 each
   50 to 99 copies  $15 each
   over  99 copies  $1500 one time fee

2. You may use ARC4 on the number of computers included in the license fee. If
   you have paid the fee for over 99 copies, then you may use ARC4 on any
   number of computers within your organization.

3. You may make copies of the program, in its original, unmodified form,
   without restriction. You may distribute these copies of the program without
   restriction.

4. If these copies are distributed outside of your organization, you have no
   obligation to control the use of those copies which are outside of your
   organization.

5. You may make copies of the program documentation, in both its printed form
   and machine readable form, without restriction.

6. You may use future versions of ARC4 under this license.

7. You may NOT modify the program or charge a fee for copying or distributing
   the program.

8. It is your responsibility to make the necessary copies and to deliver them
   to the computers which they will be used on.

   I agree to abide by the terms and conditions of this license.


     _____________________________         __________________________
             Signature                             Date

    _____________________________
      Name (please print or type)

    _____________________________
             Title

    _____________________________
           Company



                                  ORDER FORM

   Check which items you wish to purchase:

(_) Noncommercial license for the use of ARC4.

(_) Commercial license for the use of ARC4 on ___ computers (see price schedule
    and terms above).

(_) Payment of $_____ is enclosed (check or money order).

(_) Please charge $_____ to my (_) Visa or (_) MasterCard:

    Card number: ______________________________

    Expiration date: __________________________

    _______________________________________________
    Name

    _______________________________________________

    _______________________________________________
    Address

    ______________________   ________  ____________
    City                     State     Zip

    _______/_______
    FidoNet address


   Send this completed form to:

System Enhancement Associates
21 New Street
Wayne, NJ   07470

   For commercial site license orders, please enclose a signed copy of the site
license agreement.

UUCP@vu-vlsi.UUCP (06/04/87)

                                   ARC4/CMD

                             File Archive Utility
                           Version 01.01.00 03/20/87
                               for TRSDOS 6.x.x
















          (C) COPYRIGHT 1985, 1986 by System Enhancement Associates;
                              ALL RIGHTS RESERVED

     TRSDOS 6.x.x adaptations (C) COPYRIGHT 1986,1987 by David Huelsmann;
                              ALL RIGHTS RESERVED


    This document describes the ARC4 file utility, version 01.01.00,  which
    was based on the MS-DOS ARC created by System Enhancement Associates.
















                                   ARC4/CMD
    Documentation                                          Page 2


                               Table of Contents



    Table of contents  ...............................................   2
    Introduction  ....................................................   3
    Using ARC4 .......................................................   5
    ARC4 commands  ...................................................   6
        Adding files  ................................................   6
        Extracting files  ............................................   7
        Deleting files  ..............................................   8
        Listing archive entries  .....................................   8
        Printing files  ..............................................   9
        Testing an archive  ..........................................  10
    ARC4 options  ....................................................  10
        Backup retention  ............................................  10
        Encryption/decryption  .......................................  11
        New Line Mode  ...............................................  12
    MS-DOS ARC File Compatibility  ...................................  12
    Technical Notes  .................................................  12
    Technical Support  ...............................................  13
    Version numbers  .................................................  14
    Common questions and answers  ....................................  14
    Revision history  ................................................  15
    Program history and credits  .....................................  16
    Site license  ....................................................  17
    Site License Agreement  ..........................................  18
    Order form  ......................................................  19


































                                   ARC4/CMD
    Documentation                                          Page 3


                                 INTRODUCTION



    ARC is the copyrighted property of System Enhancement Associates. Since
    ARC4 is a derivative  work based  on ARC,  it,  too, is the copyrighted
    property  of   System   Enhancement   Associates.   The  TRSDOS   6.x.x
    modifications are the  copyrighted property of David Huelsmann. You
    are  granted  a  limited  license  to use  ARC4,  and  to  copy it  and
    distribute it, provided that the following conditions are met:

    1) No fee may be charged for such copying and distribution.

    2) ARC4 may ONLY be distributed in its original, unmodified state.


    Any  voluntary contributions  for  the  use  of  this program  will  be
    appreciated, and should be sent to:

                         System Enhancement Associates
                                 21 New Street
                               Wayne, NJ   07470

    You may  not  use  this  product  in  a  commercial  environment  or  a
    governmental  organization without paying  a  license fee of  $35. Site
    licenses and commercial distribution  licenses  are  available. See the
    order form in the back of this manual for more details.



    A word about user supported software:

    The user supported software concept (usually referred to  as  freeware)
    is an attempt  to provide software at low cost. The  cost of offering a
    new product by conventional means is  staggering,  and  hence dissuades
    many  independent authors  and  small  companies  from  developing  and
    promoting their ideas. User supported software is an attempt to develop
    a new marketing channel, where products can be introduced at low cost.

    If  user supported software works, then everyone will benefit. The user
    will benefit by  receiving quality products at low cost,  and  by being
    able  to  "test drive"  software thoroughly  before  purchasing it. The
    author  benefits  by being able to enter the commercial  software arena
    without first needing large sources of venture capital.

    But it  can only work with  your support. We're not just talking  about
    ARC and ARC4 here, but  about all user  supported software. If you find
    that you   are still using a  program  after a  couple  of  weeks, then
    pretty obviously it is worth something to you, and you should send in a
    contribution.

    And now, back to ARC4:

    ARC4  is used to create  and maintain file archives.  An  archive  is a
    group of files collected together into one file in such a way that the
    individual files may be recovered intact.






                                   ARC4/CMD
    Documentation                                          Page 4


    ARC4 is different from other archive and  library utilities in that  it
    automatically   compresses  the  files  being  archived,  so  that  the
    resulting archive takes up a minimum amount of space.

    When ARC4  is used to add a file to an  archive it analyzes the file to
    determine which of three storage methods will result in  the  greatest
    savings. These three methods are:

    1) No compression; the file is stored as is.

    2) Repeated-character compression;  repeated sequences of the same byte
    value are collapsed into a three-byte code sequence.

    3) Huffman  squeezing with repeated-character compression; the  file is
    compressed into variable length bit strings, similar to the method used
    by the SQ programs.


    Note  that since  one of the three  methods  involves no compression at
    all, the resulting archive entry will never be larger than the original
    file.


    An interesting note: It has been brought to SEA's attention that BASIC
    programs compress to a smaller size when they are not tokenized. If you
    are  more concerned with space than speed, you may wish to convert your
    BASIC  programs to  ASCII form before adding  them to  an archive. Your
    BASIC manual should give instructions on how to do this.


































                                   ARC4/CMD
    Documentation                                          Page 5


                                  USING ARC4



    ARC4 is invoked with a command of the following format:

                     ARC4 <x> <arcname>  <template> . . .|

    Where:

    <x> is an ARC4 command  letter  (see  below), in either upper  or lower
    case.

    <arcname> is the name  of  the archive  to  act on, with or  without an
    extension. If  no  extension is supplied,  then  "/ARC" is assumed. The
    archive name may include a drive specifier and it is recommended that a
    drive  specifier be  used  when  the Add, Update,  or Move  options are
    invoked.

    <template>  is  one  or  more  file  name templates.    The  "wildcard"
    characters  "$",  "*"  and "?" may be used for the filename  and/or the
    extension.  The  delimeter  character  between  the  filename  and  the
    extension  may be either the "/" or a ".". A "!" may be used to reverse
    the sense of the wildcard following. A file name template may include a
    drive specifier.

    If ARC4 is  invoked  with  no arguments (by typing "ARC4", and pressing
    "enter"), then a brief command summary is displayed.



    The following is an example of the display when ARC4 is invoked with no
    arguments:

                      ARC4/CMD Version 01.01.00 03/20/87
          (C) COPYRIGHT 1985,1986 by System Enhancement Associates
                            ALL RIGHTS RESERVED
     TRSDOS 6.x.x adaptations (C) COPYRIGHT 1986,1987 by David Huelsmann
                            ALL RIGHTS RESERVED
                      Distributed with permission of SEA

    Usage: ARC4  aumdexplvt| b| g{password}| archive  file(s)| >*pr|
>file|
              Where:   a,u = Add (update) file(s) to archive
                       m   = Move file(s) to archive
                       d   = Delete file(s) in archive
                       e,x = Extract file(s) from archive
                       p   = Print file(s) in archive to CRT
                       l,v = List table of contents (verbose) to CRT
                       t   = Test archive integrity
                       b   = Backup copy of archive retained
                       g   = Garble (encrypt/decrypt) archive file(s)

           Refer to program documentation for complete instructions
         and limitations on copying and distribution of this program.








                                   ARC4/CMD
    Documentation                                          Page 6


                                 ARC4 COMMANDS



    This section describes  each  of the commands. ARC4 will accept any one
    command at a  time. If no commands are given, then a brief command list
    is displayed as shown on the previous page.



    ADDING FILES

    Files are added to an archive using the "A" (Add), "U" (Update), or "M"
    (Move)  commands. Add and Update are the same and always  add the file.
    Move  differs  from Add and Update  in  that the source file is deleted
    once it has been added to the archive.



    For example, if  you wish to  add a file named "TEST/DAT" to an archive
    named "MY/ARC", you would use a command of the form:

                              ARC4 a my test/dat
                                      or
                              ARC4 u my test.dat
                                      or
                              ARC4 m my test/dat

    Note that ARC4 will  automatically supply the extension /ARC. You could
    also supply the drive  specifier on the  archive without the  extension
    such as "my:1".  ARC4 will  read this  as  MY/ARC:1. ARC4 will accept a
    different  extension  than /ARC for the archive file if you wish. Note,
    also, that ARC4 will accept either the slash "/" or  a period "." as an
    extension delimeter in the extensions of files.

    If you  wanted to add all  files with a "/C"  extension, and all  files
    named "STUFF" to an archive named  "JUNK/ARC"  located on drive 1,  you
    could type:

                            ARC4 a junk *.c stuff.*
                                      or
                           ARC4 a junk:1 $/c stuff.*

    Note that failure to supply a drive specifier when using wildcards will
    cause the addition of all files that  match the wildcard  on ALL drives
    unless there are duplicate filespecs in which case ARC4 will error exit
    back to DOS.

    If  you wanted  to move all files  on  drive  2 into an  archive  named
    "SUM/ARC" on drive 1, you could use a command of the form:

                              ARC4 m sum:1 $/$:2

    Note that after  the files  are placed in the  archive, they are killed
    from the source drive.







                                   ARC4/CMD
    Documentation                                          Page 7



    Archive entries  are always  maintained  in alphabetical order. Archive
    entries may  not  have duplicate names. If you add a file to an archive
    that already contains a  file by that name,  then the existing entry in
    the  archive is replaced. Also, the archive itself and its backup  will
    not be added.

    You  cannot  add  two files  with the same name. In other words, if you
    have a file named "STUFF/TXT:0" and another  file  named "STUFF/TXT:1",
    then typing:

                        ARC4 a junk stuff/$:0 stuff/$:1

    will not work.


    ARC4 does  not  save the drive  specifier or  any passwords.  In  other
    words, if you specify a drive and/or password when adding  a file, only
    the actual file name is stored in the archive.


    ARC4 will never add an archive to itself, nor will it add the temporary
    copy or a backup copy of the archive.



    EXTRACTING FILES

    Archive  entries are extracted with the "E" (Extract) and "X" (eXtract)
    commands. For example, if you  had an archive named "JUNK/ARC", and you
    wanted  all files in it with  an  extension of  "/TXT" or "/DOC" to  be
    recreated on your disk, you could type:

                            ARC4 e junk $/txt $/doc
                                      or
                            ARC4 x junk $/txt $/doc

    Note that in the  above examples, the files would be extracted to drive
    0.

    If  you  wanted to  extract  all  of  the  files  in  an  archive named
    "JUNK/ARC", you could simply type:

                                  ARC4 e junk
                                      or
                                 ARC4 e $/$:2

    Note that in the first example, all files would be extracted to drive 0
    and in the second example, all files would be extracted to drive 2.

    Whatever method of file  compression was used in storing the  files  is
    reversed, and uncompressed  copies are created. If a file with the same
    name already exists on the  drive  specified, you will  be asked if you
    wish to overwrite the file.








                                   ARC4/CMD
    Documentation                                          Page 8

    You can also specify a drive specifier, in which case the  decompressed
    copy is placed on the  specified drive.If you give  more than one drive
    for  a file, then  only the  first one is  used.   For example, if  you
    typed:

                     ARC4 x junk:1 trash/txt:1 trash/txt:2

    then TRASH/TXT will be placed on drive 1.



    DELETING FILES

    Archive  entries  are deleted  with  the "D"  (Delete)  command.    For
    example, if you  had an  archive named  "JUNK/ARC", and you  wished  to
    delete all entries in it  with a filename  extension of "/C", you could
    type:

                                ARC4 d junk $/c

    Note that deleted files cannot be  recovered  (unless you  specified to
    keep  a backup copy  of  the  archive).  ARC4  recovers all space  from
    deleted  files.  Note  also  that  the archive  did not  have  a  drive
    specified.  As a  result,  the new archive (made  after  the  file  was
    deleted) will be created on drive 0!


    LISTING ARCHIVE ENTRIES

    You can obtain a  list of the contents of  an archive by using  the "L"
    (List) command or the "V" (Verbose list) command. Both commands display
    exactly  the  same  thing  in ARC4.  For example, to see what  is in an
    archive named "JUNK/ARC", you could type:

                                  ARC4 l junk
                                      or
                                  ARC4 v junk


    ARC4 prints a listing of an archive's contents like this:


  Name          Length    Stowage    SF   Size now  Date       Time    CRC
  ============  ========  ========  ====  ========  =========  ======  ====
  ARC4.C           27318  Squeezed   45%     15248  28 Dec 86   1:23p  69e4
  ARC4.H            5239  Squeezed   40%      3194  28 Dec 86   1:26p  5f5d
  ARC42.C          20620  Squeezed   44%     11617  28 Dec 86   1:26p  6d9e
  ARC42.H           5245  Squeezed   38%      3265  28 Dec 86   1:28p  2f7f
  ARC43.C          23682  Squeezed   43%     13538  28 Dec 86   1:28p  2a53
  ARC43.JCL          161     --       0%       161  28 Dec 86   1:30p  4fd8
  COMPARC.JCL        249     --       0%       249  28 Dec 86   1:31p  c134
          ====  ========            ====  ========
  Total      7     82514             43%     47272


    "Name" is simply the name of the file.







                                   ARC4/CMD
    Documentation                                          Page 9

    "Length" is the unpacked file length.  In other words, it is the number
    of  bytes  of  disk  space  which the  file would take up  if  it  were
    extracted.

    "Total" is pretty obvious, I think.

    "Stowage"  is  the  compression method  used. The following compression
    methods are currently employed:

                --          No compression.
              Packed        Runs of repeated byte values are collapsed.
             Squeezed       Huffman squeeze technique employed.

    "SF" is the stowage factor. In other words, it is the percentage of the
    file length which was saved by compression. The total stowage factor is
    the  stowage factor for the archive  as a  whole,  not counting archive
    overhead.

    "Size now" is the number  of  bytes the file is occupying  while in the
    archive.

    "Date"  is the  date on  which the  file had last  been  added  to  the
    archive.

    "Time"  is the time of last addition  to the archive, and is associated
    with the date of last addition.

    "CRC" is  the  CRC-16 check value which has been stored with the  file.
    Another  CRC-16 value will  be calculated when the file is extracted or
    tested to ensure data integrity. There is no especially good reason for
    displaying this value.



    PRINTING FILES

    Archive entries  may  be  examined with the  "P"  (Print) command. This
    works  the same as  the Extract command, except that the files are  not
    created  on  disk  and the  high  bit is set  to zero  and  unprintable
    characters are converted to periods. Instead, the contents of the files
    are written to the CRT.  For example, if you wanted to see the contents
    of  every "/TXT" file  in  an archive named "JUNK/ARC", but didn't want
    them saved on disk, you could type:

                               ARC4 p junk $/txt

    Note that you can pause the output to your CRT by pressing shift  @ and
    then can resume by pressing any  key. Pressing <BREAK> during  printing
    will exit you from the program back to DOS.

    If  you  wanted  the files to  be printed on your printer instead of on
    your screen, you could type:

                            ARC4 p junk $/txt >*pr

    Note that  no  check is  done to ensure  your printer is online and the
    program may appear to "hang" until the printer is online.






                                   ARC4/CMD
    Documentation                                          Page 10



    TESTING AN ARCHIVE

    The integrity of an archive  may be  tested  by use  of the "T"  (Test)
    command. This  checks  to  make  sure  that all of the file headers are
    properly placed, and that all of the files are in good shape.

    This can be  very useful  for critical archives,  where data  integrity
    must be assured. When an archive  is tested, all of  the entries in the
    archive are unpacked (without saving them  anywhere) so that  a  CRC-16
    check value may  be  calculated and compared with  the  recorded CRC-16
    value.

    For example, if  you just received  an archive  named "JUNK/ARC" over a
    phone line, and you  want to make  sure that you received  it properly,
    you could type:

                                  ARC4 t junk

    Any errors  that occur  will be  displayed  and  a total count will  be
    given. If no errors occur on a file, it will be displayed as "okay".

                                 ARC4 OPTIONS



    This section describes the options which are available  to  modify  how
    ARC4 works.  Any of these  options  can be  combined  with  any  of the
    commands, though the  result may not always  be something you'd want to
    do.


    BACKUP RETENTION

    When ARC4 changes an archive (during an Add,  Update, Move,  or Delete)
    it creates a new archive with the same name,  but  with an extension of
    "/TMP". For example,  if you add a file to  an archive named STUFF/ARC,
    then  ARC4  will create a new archive  named STUFF/TMP. ARC4 will  read
    from your  existing  archive  and write  out  the new archive  with any
    changes to the "/TMP" copy.

    Normally when ARC4 is finished it deletes the original and  renames the
    new  archive  to the  original  name  (ie.  STUFF/ARC  goes  away,  and
    STUFF/TMP  becomes  the new STUFF/ARC). Among other things, this  means
    that if anything  goes wrong and ARC4  is unable to  finish,  then your
    original archive will still be intact.


    In  some circumstances you may wish to retain the  original  version of
    the archive  as a backup  copy. You can  do  this easily by  using  the
    Backup option. Add the letter "B" to your command, and ARC4 will rename
    your  original  archive  to  have  an  extension of "/BAK"  instead  of
    deleting it.









                                   ARC4/CMD
    Documentation                                          Page 11

    In other words, if you  wanted to add "WASTE/TXT" to an  archive  named
    "JUNK/ARC", but wanted to keep a backup copy, then you would type:

                            ARC4 ab junk waste/txt

    Your original archive would  become  "JUNK/BAK", while "JUNK/ARC" would
    contain the new "WASTE/TXT" file.


    If you keep a backup of an archive which already has a backup, then the
    older backup copy is deleted.


    Note that the "/TMP"  file and/or the  "/BAK" file are kept on the same
    drive as your "/ARC" file unless you failed to add a drive specifier to
    the archive name on the command line. In that  case, the /TMP file will
    be created  on drive 0 and subsequently renamed to  /ARC. The /BAK file
    wil be located on the drive where the original archive was located.


    ENCRYPTION/DECRYPTION

    Archive  entries  may  be  encrypted  and  decrypted by  using the  "G"
    (Garble)  option. The Garble option takes the remainder of the  command
    string as the password to use, so it must be the last option.


    For  example, if you  wanted  to add  a file named  "WASTE/TXT"  to  an
    archive  named  "JUNK/ARC",  and  you  wanted to encrypt  it  using the
    password "DEBRIS", then you would type:

                         ARC4 agdebris junk waste/txt

    Later on, when you want to extract it again, you would type:

                         ARC4 egdebris junk waste/txt


    The password you supply  is  used to encrypt (or  decrypt) the  archive
    entry by performing  an exclusive OR  between each  byte of the  packed
    data and each byte of the password. The password can be any length, and
    each of its  bytes  is used  in rotation. The password  is converted to
    uppercase before it  is  used, so it is not case sensitive.  Since  the
    encryption is performed on the packed data, it has no effect on stowage
    factors.

    This is not a particularly sophisticated means of encryption, and it is
    theoretically possible to crack.   Still, since it is  performed on the
    packed data, the result should be quite sufficient for casual use.


    You can, if you wish, use different passwords for different files in an
    archive,  but it  is not advisable.  If you  are going  to  encrypt  an
    archive, use the same  password for every  file, and  give the password
    whenever you do anything  at  all with the archive.  It is  possible to
    list the entries in an encrypted archive using the "L" and "V" commands
    without giving the password, but nothing else will work properly.






                                   ARC4/CMD
    Documentation                                          Page 12



    It is advisable that you use  this option sparingly, if  at all. If you
    should forget or mistype your password, it  is highly unlikely that you
    will ever recover your data.


    NEW LINE MODE

    ARC4  automatically removes  Line Feeds  after  Carriage  returns  when
    extracting  from  an  archive  (not during  printing). This feature was
    added primarily  for  those that attempt to  remove stored, packed,  or
    squeezed files from MS-DOS archives using ARC4 rather than XARC4.


    While  not documented  on  the help screen, it is possible  to suppress
    this feature by adding a "n" to the command line as follows:

                            arc4 en junk:1 $/doc:2

    In the above  example, all occurances of  files with  the  extension of
    /DOC will be extracted to drive 2 and  LF  after CR will NOT be removed
    from the files.


                         MS-DOS ARC File Compatibility



    ARC4 uses  the exact same  conventions  in its  file  creation as  does
    MS-DOS ARC. Therefore, archives created by ARC4  can be read by ARC and
    extracted properly. Of course, CMD files and tokenized basic files will
    not run under MS-DOS. Also, there has been no provision made in ARC4 to
    add  a line  feed after  every  carriage  return.  This  would  make it
    difficult  for an MS-DOS ARC user  to read  text files  extracted  from
    archives created  by  ARC4. This is not a problem with ARC4! Rather, it
    is  differing  conventions used in the  different  computers.  An  easy
    solution would  be  for the ARC4 user to  first  squeeze the text  file
    using SQ4/CMD  and  the new  line  option.  After unsqueezing and  then
    adding to the archive, a line feed would follow every carriage return.

    ARC4 can  now read archives created by MS-DOS  ARC!  It will even allow
    the extraction  of files that were  stored, packed, or squeezed without
    giving error messages  and exiting  to DOS. In the  process,  ARC4 will
    ensure that the filenames and extensions  are legal for TRSDOS and will
    substitute  the letter "Z" for  any  character  not legal under  TRSDOS
    conventions.

    If  you wish  to be able to fully extract files from  an MS-DOS archive
    created  by ARC version  5.0 to 5.1.2 (probably also works  under 5.2),
    then you should get a copy of XARC4 - now available!


                                TECHNICAL NOTES

    ARC4 loads at 2600H and occupies up to D345H. This leaves only 2CBAH of
    RAM  for ARC4  to  handle  it's  own  stack.  The squeeze  routines are






                                   ARC4/CMD
    Documentation                                          Page 13

    recursive  (call  themselves)  and  require  varying amounts of RAM  to
    operate under. ARC4 definitely works with memory set to FA00H  and will
    probably also work with memory set down as  low as  F000H, however,  it
    has not  been  tested  at  F000H. Wildcards used for  filenames consume
    memory.   Appropriate   error  messages  are  displayed  if   there  is
    insufficient  memory  to  handle the number  of  files recovered  using
    wildcards.

    The  ARC4 help display uses  space compression codes which are expanded
    to spaces upon display. If the help display appears  all at the left of
    the screen, it can be corrected by entering basic and typing:

                                PRINT CHR$(21)

    The space  compression codes will then  work correctly.  Unfortunately,
    there is no flag set that  will allow a program to  determine the state
    of the special characters and space compression status.

    ARC4  is  fully  compatible with ARC31 (the  model  1  and  3 version).
    Archives created by either  one can be  read and extracted from  by the
    other.  XARC4  can also extract from ARC4 or  ARC31 archives as well as
    from MS-DOS archives.

    If a problem  should arise  with your computer  when adding or deleting
    files from  an archive, you could be left with only an archive with the
    /TMP extension  or you could have both the original archive  (/ARC) and
    the temporary archive. DO  NOT ATTEMPT  to  access an archive  with the
    /TMP extension for any purpose  other than extraction or listing of the
    contents. ARC4 does NOT expect to find  a  file with  the same name and
    the extension of /TMP  on your  disk. It will attempt to create another
    /TMP file if you try to add or delete.  There is  NO  error checking to
    ensure that another /TMP file does not exist. A computer "hang" will be
    the likely result.


                               TECHNICAL SUPPORT



    It  should be obvious by now that SEA cannot  provide technical support
    even though they wrote the original ARC that ARC4 is based  on. They do
    not have access to the  source code nor do they  have a Model  IV Tandy
    computer. ARC4  is NOT  in the  public  domain and can only be modified
    with the permission  of the  original  copyright  holders  of  ARC  and
    myself. Except for providing contributions or obtaining a noncommercial
    or  a commercial site license,  you  should  not be  contacting SEA for
    support for ARC4.

    Please address all inquiries concerning ARC4 technical matters to:

                                David Huelsmann
                                3308 Delamar NE
                             Albuquerque, NM 87107

                                     or to
                                    SSE BBS
                                (505) 821-7379






                                   ARC4/CMD
    Documentation                                          Page 14

                             1200/2400 bps anytime
                          300 bps after 2400 Mountain

                                     or to
                              CIS ppn 71525,1363


                                VERSION NUMBERS


    The version number of ARC4 is given as follows XX.YY.ZZ.

    XX = a major revision, such as adding a new packing algorithm.

    YY = a minor revision that is not essential, but which may be desired.

    ZZ = a trivial revision  that will probably only be desired by specific
    individuals or by die-hard "latest version" fanatics.

    ARC4 also displays its date of last edit.  A change of the date without
    a  corresponding  change in version number  indicates  a truly  trivial
    change, such as fixing a spelling error.


                         COMMON QUESTIONS AND ANSWERS



    Q: Why isn't crunching available in ARC4? Crunching is much faster.

    A: Actually, crunching isn't really as fast as it looks. Crunching is a
    one pass operation, while squeezing  requires two passes.  ARC actually
    does  the  crunching  during  the analysis pass, and puts the  crunched
    output in a file named "$ARCTEMP.CRN". If crunching turns out to be the
    best method, then this temporary file is copied  into the  new archive.
    In  other words, when ARC  says "crunching" it isn't  really crunching,
    it's just copying a file.

    Also, there are a lot of files  out there that squeeze much better than
    they crunch.

    Due to the  memory limitations of  the  Tandy Model IV, It  just wasn't
    possible to add the coding and the tables necessary to handle crunching
    in ARC4.


    Q: Why does ARC4 run out of room if I make an archive bigger than about
    180k?

    A:  Because you are working  on a floppy disk.  If you  are using DS DD
    disks, you  are limited to about 180K archive size if you add or delete
    to or  from the archive. Of course, if you are creating a  new archive,
    you could fill up the entire disk (about  360K). ARC4 creates a copy of
    your archive, incorporating any new files as  it goes. When it is done,
    it  deletes the original and renames the new one. There are a number of
    reasons for doing it this way, one being that your original  archive is
    still intact if anything happens while ARC4 is running.






                                   ARC4/CMD
    Documentation                                          Page 15


    If  you  need to make a  larger archive, and  if you have a fixed disk,
    then you can create the archive on the  fixed  disk and then copy it to
    the floppy.


    Q: Can I use ARC4 to distribute my public domain or freeware program?

    A: Yes, of course.


    Q: Can I use ARC4 to distribute my commercial software package?

    A: Yes. Please contact SEA for a commercial distribution license.


    Q: I'm a commercial user. Why should I pay for freeware that others get
    for free?

    A: Because you cannot  credibly plead poverty.  Freeware, all freeware,
    is an  attempt to  develop  a new marketing channel  to the  benefit of
    everyone.  You can still "test drive" freeware for  a short period, but
    if you decide to use it in your business, then you should pay for it.


    Q: Why not allow  me to select which  method of compression I want ARC4
    to use?

    A: It would needlessly complicate ARC4, both internally and in use. The
    exact  nature  of the  compression methods  used are complex, and quite
    different.  The only  sure way to tell which will be  best in any given
    case is to analyze the  data,  as ARC4 does.  The method chosen may not
    always be what you expect.


    Q: How can I get the latest version of ARC4?

    A:  ARC4 updates are distributed through normal freeware  channels, and
    by FidoNet.


                               REVISION HISTORY


    Version 01.00.00 12/11/86 of ARC4/CMD was released on 12/28/86.
    Version  01.01.00 03/20/87 of ARC4/CMD  was released  on 03/22/87. This
    version incorporates a number of minor fixes such as:
    Time display  of 12:00 to 12:59 will now  correctly display  "p" rather
    than "a" (This is a bug in MS-DOS ARC as well).
    Errors  discovered  while Testing  an  archive  will  now be  correctly
    counted rather than doubled as in the original version.
    Failure to supply a drivespec to an archive name will no longer cause a
    display of extraneous characters..
    After moving  files to an  archive,  the  display of  those files being
    removed will no longer  be displayed unformatted across a line but will
    be displayed formatted as does TRSDOS.







                                   ARC4/CMD
    Documentation                                          Page 16

    The minor enhancement added in this version  was the ability to display
    an MS-DOS archive directory and extract files that were stored, packed,
    or squeezed with  the appropriate  coding  added to prevent problems if
    some of the other features are attempted on an MS-DOS archive.



                          PROGRAM HISTORY AND CREDITS


    ARC4/CMD   is  based   on  ARC  Version  5.1.2  of  System  Enhancement
    Associates. Thom Henderson graciously  gave his permission to release a
    modified version of ARC for the TANDY Model IV users on 12/11/86. While
    a number of changes  and  adaptations had  to be made  to  the existing
    source  code  (including  eliminating  some  features  like  Lempel-Zev
    crunching), the majority of the program is  the  original work of  SEA,
    now, almost  2 years  old. The following  is the  program  history  and
    credits, as described by SEA, for MS-DOS ARC:

    In  its short life  thus far, ARC has astounded us with its popularity.
    We first wrote it in March of 1985 because we wanted an archive utility
    that  used a distributive directory  approach,  since  this has certain
    advantages over the more  popular central directory approach.  We added
    automatic  squeezing  in  version 2 at the  prompting of  a friend.  In
    version 2.1 we added the code to test  for the best compression method.
    Now (in October  of 1985)  we  find that our humble little program  has
    spread across the country, and seems to have become a new institution.

    We  are  thankful for the support and appreciation we have received. We
    hope that you find this program of use.


    If  we  have achieved greatness,  it is because we have stood  upon the
    shoulders of giants. Nothing is created as a thing unto itself, and ARC
    is  no  exception.  Therefore, we would like  to  give  credit  to  the
    following people, without whose efforts ARC could not exist:


      Brian W. Kernighan and  P.  J.  Plauger, whose  book "Software Tools"
    provided  many of the ideas behind the distributive  directory approach
    used by ARC.

    Dick Greenlaw, who  wrote  the public domain  SQ  and USQ programs,  in
    which the Huffman squeezing algorithm was first developed.

    Robert J. Beilstein, who adapted SQ and USQ to Computer Innovations C86
    (the  language  we  use), thus providing us with important parts of our
    squeezing logic.

    Kent  Williams, who graciously allowed us to use his  LZWCOM and LZWUNC
    programs  as  a basis for  our  Lempel-Zev compression logic,  and  who
    continues to make valuable contributions.

    David  Schwaderer, whose  article in  the  April  1985 issue of PC Tech
    Journal  provided  us with  the logic for calculating  the  CRC 16  bit
    polynomial.







                                   ARC4/CMD
    Documentation                                          Page 17

    Terry  A. Welch,  whose article "A  Technique for High Performance Data
    Compression", IEEE  Computer  Vol 17  No 6  (June  1984)  seems to have
    started all the research on Lempel-Zev coding.

    Spencer W.  Thomas, Jim McKie,  Steve Davies,  Ken Turkowski,  James A.
    Woods, and Joe Orost, who are the authors of the UNIX compress utility.


    And many, many others whom we could not identify.


                                 SITE LICENSE


    Corporate  users may wish to obtain a site license for the use of ARC4.
    Please use the order form in this manual to order a  site license. Site
    licenses are granted as of when SEA receives your payment. License fees
    vary depending on  the number of computers on  which ARC4 will be used,
    as follows:

                           1 to  9 copies  $35 each
                           10 to 24 copies  $25 each
                           25 to 49 copies  $20 each
                           50 to 99 copies  $15 each
                      over  99 copies  $1500 one time fee


    The following  page is a site license agreement, which should be signed
    and sent with your payment when ordering a commercial site license.


































                                   ARC4/CMD
    Documentation                                          Page 18


                            Site License Agreement

    The use of ARC4 in  a commercial environment or government organization
    is granted under the following terms:

    1.   Payment  of  the  license  fee must be made  to System Enhancement
    Associates. The  fee is based on the number of computers which will  be
    used to run ARC4, as follows:

                           1 to  9 copies  $35 each
                           10 to 24 copies  $25 each
                           25 to 49 copies  $20 each
                           50 to 99 copies  $15 each
                      over  99 copies  $1500 one time fee

    2.  You may use ARC4 on the number of computers included in the license
    fee. If you have paid the fee for over 99 copies, then you may use ARC4
    on any number of computers within your organization.

    3.   You may make  copies of the program, in its original,   unmodified
    form,  without  restriction. You may  distribute  these  copies of  the
    program without restriction.

    4.  If  these copies  are distributed outside of your organization, you
    have no obligation to control the use of those copies which are outside
    of your organization.

    5.   You  may make  copies of  the program documentation,  in  both its
    printed form and machine readable form, without restriction.

    6.  You may use future versions of ARC4 under this license.

    7.  You may NOT  modify  the  program or charge  a  fee  for copying or
    distributing the program.

    8.   It is your  responsibility to  make the  necessary  copies  and to
    deliver them to the computers which they will be used on.



    I agree to abide by the terms and conditions of this license.


     _____________________________         __________________________
             Signature                             Date

    _____________________________
      Name (please print or type)

    _____________________________
             Title

    _____________________________
           Company








                                   ARC4/CMD
    Documentation                                          Page 19

                                  ORDER FORM



    Check which items you wish to purchase:

    (_) Noncommercial license for the use of ARC4.

    (_) Commercial  license for the use of ARC4 on ___ computers (see price
    schedule and terms on preceding page).

    (_) Payment of $_____ is enclosed (check or money order).

    (_) Please charge $_____ to my (_) Visa or (_) MasterCard:

    Card number: ______________________________

    Expiration date: __________________________

    _______________________________________________
    Name

    _______________________________________________


    _______________________________________________
    Address

    ______________________   ________  ____________
    City                     State     Zip

    _______/_______
    FidoNet address


    Send this completed form to:

                         System Enhancement Associates
                                 21 New Street
                               Wayne, NJUCP ^$^\(