formats index
*** ARC (compressed ARChive)
** Document revision 1.1
The name is likely a shortened version of "ARChive". It is a direct
relative of SDA, as SDA's are simply self-dissolving ARC files. ARC does
not contain the dissolving code on the front of the file. Do not confuse
these ARC files with C64 ARKive files (made with the ARKIVE program), or
with PC .ARC files, as they are all completely different. Below is a dump
of the first 48 bytes of an ARC file...
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ASCII
----------------------------------------------- ----------------
0000: 02 01 20 9D 47 01 00 01 00 50 01 41 FE 3A 21 FE ..G..P.A:!
0010: 00 01 FE 00 02 FE 03 02 A9 00 20 90 FF A9 02 A6 .....
0020: BA A0 01 20 BA FF A9 04 A2 35 A0 02 20 BD FF A2 ..5.
Byte: $00 - Archive version
$01 = original
02 = extended header
01 - Compression mode
$00 - Stored
01 - Packed
02 - Squeezed
03 - Crunched (arc version 2 only)
04 - Squeezed and packed (arc version 2 only)
05 - Crunched in 1 pass (arc version 2 only)
02-03 - Checksum (low/high format)
04-06 - Original file size in bytes (low/med/high format).
This value is not valid if the compression mode (from
above) is 5, a one pass crunch)
07-08 - Number of blocks compressed file takes (low/high, 254
bytes/block)
09 - Filetype ("P", "S", "U", "R", uppercase in ASCII,
lowercase in PETASCII )
0A - Filename length
0B-0B+length - Filename (in PETASCII, no longer than 16 characters)
0B+length+1 - Relative file record length (only for arc version 2)
0B+length+2 - Date (2 bytes, in MSDOS format, only in arc vers. 2)
The header can also have some extra fields, depending on what version the
archive is. Version 1 archives do not have the RECORD length and DATE
fields, meaning they cannot contian REL files. The RECORD length is only
used when the filetype is REL.
Immediately following the filename (for version 1 archives) is the RLE
control byte, and then follows the LZ table and compressed data.
64COPY can unpack ARC files easily, as they are treated like any emulator
file, and just hitting return on them will open the archive. Simply select
what files you want to extract, and copy them out.