home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1996
/
ARCHIVE_96.iso
/
discs
/
mag_discs
/
volume_2
/
issue_06
/
arcstuff
/
ARC_DOC
< prev
Wrap
Text File
|
1988-10-17
|
19KB
|
433 lines
************************************************************
* *
* Beebug *
* *
* A R C H I M E D E S *
* *
* AA RRRRRRRR CCCCCC *
* AA AA RR RR CC CC *
* AA AA RR RR CC *
* AAAAAAAAAA RRRRRRRR CC *
* AA AA RR RR CC *
* AA AA RR RR CC CC *
* AA AA RR RR CCCCCC *
* *
* *
* by David Pilling *
* *
* *
* This program is Public Domain *
* *
************************************************************
********************************************************************************* ARC Version Numbers ** ------------------- ** ** Version 1.0 - 29/06/88 Initial release ** Version 1.1 - 01/09/88 PKARC compatibility added ** Version 1.2 - 17/10/88 Network compatible version ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** *********************************************************************************Archimedes ARC Page 2
Contents
--------
(1) Introduction
(2) How to use ARC
(3) ARC commands
(4) Archimedes ARC file format
(5) ARC support
1. Introduction
---------------
ARC is the Archimedes archive utility. An archive is a file in which many
smaller files are stored. You may, using the ARC utility, create archives and
add files to them (ARC'ing a file) or remove files (de-ARC'ing). One of the
features of ARC, is that files are stored in a highly compressed form; thus
saving disc space and allowing more rapid transfer of files by modem. However,
probably the most useful feature of an archive is that like sub-directories
in the ADFS, it makes keeping track of files when transferring them from one
machine to another, much simpler.
Archives have a long history going back to UNIX and CP/M. An example of an
archive with no compression is the UNIX shar format. Whilst on CP/M archive
utilities which used data compression include squeeze, LUE and LBR. Perhaps
the most well known archive format and utility is the System Enhancements
Associates (SEA) ARC for the IBM PC which was based on many of these earlier
programs. This has now been transferred to the Atari ST and Amiga micros. In
addition, other more advanced versions of it have appeared on the PC like
PKARC by Phil Katz. Beebug Archimedes ARC is fully compatible with SEA's ARC
program. Using it, you can successfully unpack PC archives on your Archimedes,
as well as create PC format archives. In addition, you can use a special
Archimedes format archive which while not compatible with the PC, preserves
Archimedes file attributes like load and exec addresses.
If you dial up your local bulletin board, you will see many ARC files (they
are usually identified by the suffix .ARC). Using ARC, you will be able to
transfer the files in these to your Archimedes. Obviously, you cannot use
executable PC programs, but there are many text and data files which you may
want to examine (such as documentation, C source files, screen images etc.).
Do not get the impression from the above, that the data compression aspect of
ARC is just a side effect. Frequently, you may achieve a space saving of upto
90%. Just how much space you save, depends on the type of file being ARC'd.
Text files usually compress well. Whilst PC executable files rarely compress
by much, Archimedes executables seem to show good savings in space (often
owing to Acorn's way of handling arrays and because of the high redundancy in
ARM code).
Archimedes ARC Page 3
2. How to use ARC
-----------------
Archimedes ARC consists of two files: the program ARC, and ARC_DOC containing
this text. You use ARC by typing *arc followed by a number of parameters. If
you type *arc on its own without parameters, a page of help information is
displayed. For example:
*arc
Archimedes ARC - Archive utility
Usage: ARC {amufdxeplt}[bswnoiq][g<password>] <archive> [<filename> . . .]
Where: a = add files to archive
m = move files to archive
u = update files in archive
f = freshen files in archive
d = delete files from archive
x,e = extract files from archive
p = print file to screen
l = listing of files in archive
t = test archive integrity
b = retain backup copy of archive
s = suppress compression (store only)
w = suppress warning messages
n = suppress notes and comments
o = overwrite existing files when extracting
i = Use IBM PC Archive format
q = Use PKARC style squashing
g = Encrypt/decrypt archive entry
Written for the Archimedes by David Pilling
Put in the Public Domain by BEEBUG V1.1 September 1988
Although the syntax of the ARC program may look a little frightening at first,
it is really quite straightforward. Typically you will almost always use just
a few of these options. The letters which appear after 'ARC', split into two
groups; commands amufdxeplt and options bswnoiq and g. In general, you should
have just one command letter and as many options as you need. The next section
looks at the commands and options.
Archimedes ARC Page 4
3. ARC commands
---------------
a = add files to archive
This command is used to add files to an archive. If the archive does not
exist, it is automatically created. An example of this command is:
*arc a utils_arc util1 util2 util3 util4
This adds the files util1, util2 etc. to the archive utils_arc. You can
use wildcards in this command as follows:
*arc a my_arc b*
This will add all files whose names begin with 'b' to the archive. You
can use any legal filename for the name of the archive, but we recommend
that you add the suffix '_arc' to the end of the name. This will help
you identify ARC files. In addition, ARC files can also be identified by
their filetype, which is set to &DDC (Acorn approved filetype).
m = move files to archive
This command is like 'a' except that the files are deleted from the
local filing system as they are added to the archive file.
u = update files in archive
This only adds files to the archive if the versions on disc have a more
recent date stamp, or if they are not already in the archive. For
example:
*arc u my_arc
will update all files in the current directory that have been created or
changed since they were last archived.
f = freshen files in archive
This is like the 'a' command, except that files are only added if they
already exist in the archive with an earlier date stamp.
d = delete files from archive
This command allows you to delete files from an archive. For example:
*arc d my_arc bob
will remove the file bob from the archive file.
Archimedes ARC Page 5
x,e = extract files from archive
These two commands, remove files from an archive and create them in a
usable form on your disc. For example;
*arc x my_arc util1
recreates the file 'util1' from the archive. Notice that 'util1' remains
part of the archive. If you want to extract all the files, simply type:
*arc x my_arc
p = print file to screen
This is very similar to 'x' and 'e' except that the file is printed out
on the screen, instead of being sent to the filing system.
l = listing of files in archive
This very useful command shows you the contents of an archive along with
much useful information. For example, to see the contents of the archive
called 'my_arc', type:
*arc l my_arc
You can, of course, specify individual files or groups of files using
wildcards. For example:
*arc l my_arc pr*
The information displayed gives the original length of the file,
and how long it is in its compressed form. The time and date stamps for
the file and information on which form of data compression has been used
to store the file. You will notice that this is preceded by either 'PC'
or 'ARC', which indicates whether the file is stored in PC or Archimedes
format.
t = test archive integrity
A CRC (Cyclic Redundancy Check) is kept for each file added to the
archive, this allows ARC to tell you if a file has been corrupted. This
can happen when you are transferring files between different computers.
The 't' command unpacks all of the archive entries (without saving them
anywhere), and checks the CRC for each file against the recorded value.
It reports back to you any damage to the archive. For example, to test
that the archive 'my_arc' has been recieved correctly, type:
*arc t my_arc
Archimedes ARC Page 6
b = retain backup copy of archive
When you add a file to an archive, the original archive is renamed to
B_oldname. Normally, this is deleted after the file has been succesfully
added. By using the 'b' option, you can keep a copy of the original
archive. For example, if you wanted to add the file 'program' to the
archive 'my_arc', but want to keep a backup copy of the archive,
then type:
*arc ab my_arc program
The backup archive is called 'b_my_arc'.
s = suppress compression (store only)
This allows you to add files to the archive without compressing them.
w = suppress warning messages
This option prevents warning messages being printed.
n = suppress notes and comments
This option suppresses notes and comments.
o = overwrite existing files when extracting
When you extract a file, it may be that a file with the same name
already exists. Normally, you will be prompted to overwrite the file. If
you then select N, you will be prompted for permission to rename the
file. If you then select Y, ARC will pick a sensible name, but if you
select N, ARC will continue to the next file to be extracted. The 'o'
option allows you to prevent all prompting, and just overwrite existing
files. For example:
*arc xo my_arc
i = Use IBM PC Archive format
When you add a file to an archive, ARC assumes that you want the file to
be stored with its load and exec addresses and attributes. However, if
you want to give an archive to a friend with a PC, you should store the
files in PC format by adding the 'i' option to the command line. For
example, to add a PC file to an archive, type:
*arc ai my_arc PCprog
Archimedes ARC Page 7
q = Use PKARC style squashing
Squashing is a variation on LZW coding used by the fairly popular PC
program PKARC. By adding this option, you make ARC use squashing instead
of crunching. You should consider that squashing will not always be
more efficient than crunching and often will produce only small gains.
However, there are far more copies of ARC than PKARC, and these will not
be able to unpack squashed archives. ARC from version 1.1, can unpack
IBMPC archives made using PKARC and it will do this whether you set the
q flag or not.
g = Encrypt/decrypt archive entry
The 'g' (garble) option allows you to give a password which is used to
encrypt files stored in the archive. The data compression normally
applied will make files unreadable using *TYPE or *DUMP, this lets only
people who know the password extract them from the archive. For example,
if you wish to add 'newfile' to the archive 'my_arc', and encrypt it
using the password 'beebug', type:
*arc agbeebug my_arc newfile
When you want to extract the file again, you should type:
*arc xgbeebug my_arc newfile
The password can be any length, and is not case sensitive. You can if
you wish use different passwords for each file in an archive, but we
advise against it. If you should forget or mistype your password, it is
unlikely that you will ever recover the file.
Archimedes ARC Page 8
4. Archive file format
----------------------
An Archive, is a binary file consisting of archive markers, archive headers
and file data. All archives are preceded by an archive marker. This is a
single byte of value 27.
An archive header, consists of several bytes.
byte 1 Header version number. This tells you how the file data is stored
and how many bytes there are in the header. The header version
numbers for the PC, are detailed below. An Archimedes header
version number is identical to the corresponding PC number except
it has bit 7 set.
bytes 2-15 Filename
bytes 16-19 Compressed file length
bytes 20,21 File date stamp
bytes 22,23 File time stamp
bytes 24,25 CRC for the file
bytes 26-29 If the header type is greater than 1, these hold the original
file length otherwise they are not present.
bytes 30-33 If bit 7 of the header version number is set, these bytes hold
the Archimedes load address for the file otherwise they are not
present.
bytes 34-37 If bit 7 of the header version number is set, these bytes hold
the Archimedes exec address for the file otherwise they are not
present.
bytes 38-41 If bit 7 of the header version number is set, these bytes hold
the Archimedes file attributes otherwise they are not present.
The archive header, is followed by the file data.
The file data is followed by another archive marker
The archive finishes with an archive marker followed by a zero byte.
The time and date fields are always filled in. If the file has a load and exec
address, these are the time and date when the file was added to the archive
otherwise, they are derived from the Archimedes datestamp. In all extract
operations on Archimedes format archives, the contents of the load and exec
fields take precedence.
PC and ARC formats may be mixed in one archive for use on the Archimedes.
Archimedes ARC Page 9
PC ARC Header version numbers:
1 = Old style, no compression
2 = New style, no compression
3 = Compression of repeated characters only
4 = Compression of repeated characters plus Huffman Squeezing
5 = Lempel-Zev packing of repeated strings (old style)
6 = Lempel-Zev packing of repeated strings (new style)
7 = Lempel-Zev Welch packing with improved hash function
8 = Dynamic Lempel-Zev packing with adaptive reset
9 = PKARC style squashing
The time and date stamps are two byte values from which the time in years
etc., can be found as follows;
year = (date >> 9) & 0x7f;
month = (date >> 5) & 0x0f;
day = date & 0x1f;
hour = (time >> 11) & 0x1f;
minute = (time >> 5) & 0x3f;
second = (time & 0x1f) * 2;
Where years are offset from 1980, months begin with 1=January.
Archimedes ARC Page 10
5. ARC support
--------------
Please send any comments or suggestions for ARC to the address below. In
addition, if you would like details of the latest version of ARC and how to
get hold of a copy, please contact:
Software Manager
Beebug Ltd.
Dolphin Place,
Holywell Hill,
St. Albans,
Herts.
AL1 1EX
Tel. (0727) 40303