ArcFS - Archive file format for the RISC OS ArcFS filesystem
Contents
Archive Header
The last header starts at 60+length of headers and ends at 96+length of headers. The format of each
header is as follows.
Infobyte
Object information byte, show compression method used:
0x00 end of directory marker
0x01 object has been deleted
0x82 stored
0x83 packed
0x88 crunched
0xFF compressed
Filename
File name, 11 bytes.
Fulllength
Original file length, or 0xFFFFFFFF for a directory), one word.
Loadaddress
Load address of the file, or 0xFFFFFFdd for a directory), one word.
Execaddress
Exec address of the file, or 0xdddddddd for a directory), one word.
File load and execution address may contain a filetype and datestamp as normal.
Directories can be date-stamped, the number of centiseconds since the 1st January 1900 when the directory
was created are given by &dddddddddd contained in the directory's load and execution addresses as shown
above.
Archives converted from spark(5) format using ArcConv will have the same full length, compressed length,
load address and execute address as they had in the Spark archive.
Attributes
Attributes of the file, one word. Contains the number of bits compression for crunch and compress format
files and the least significant bytes contains the standard RISC OS information on file access.
Compressedlength
Length of compressed data, or 0xFFFFFFFF for a directory, one word.
Informationword
The top bit (definitively) indicates whether the object is a file or a directory, 0 for a file, 1 for a
directory.
In the case of a file, the least significant 31 bits show the offset from the start of data at which the
file data can be found.
In the case of a directory, the least significant 31 bits show the offset from the start of headers (96)
at which the next object in this directory can be found, the following object being the first in the sub-
directory.
Conventions
Strings are given in ASCII with C-style escapes. No terminating is present if not explicitly included.
Words are 32 bit little-endian numbers.
Half words are 16 bit little-endian numbers.
This document describes format version 0, for ArcFS minimum versions 0.40 and 1.00, and version 0a, for
ArcFS minimum versions 0.58 and 2.17.
File Header
Filestringsignature
The string "Archive" followed by a zero byte.
Headerlength
Length of header info in bytes, one word, multiple of 36.
Dataoffset
Offset, in bytes, into archive at which data starts, one word.
Read-onlyversion
Minimum read-only version required, multiplied by 100, one word.
Read-writeversion
Minimum read--write version required, multiplied by 100, one word.
Reserved
Reserved for future use, 68 bytes.
Format
The file consists of a file header, a sequence of archive headers, then a sequence of compressed files.
Format Version 0A
This archive format is backwards compatible with versions 0.40 and 1.00, the only difference being that
there is a block of catalogue information immediately prior to the start of each file's data as described
below.
Note that this information is there to aid the recovery of most files in the event of archive corruption
and is not used by ArcFS.
Note, also that Compact and Autocompact in release versions 1.09, 2.02 and 2.11 will compact out the
catalogue information blocks, so try to avoid writing to new archives with old versions of ArcFS.
Marker
A marker to indicate the start of a file, the string "FileData", not terminated.
Infobyte
One byte, as above.
Leafname
The file name, 11 bytes.
Fulllength
One word, as above.
Loadaddress
One word, as above.
Execaddress
One word, as above.
Attributes
One word, as above.
Name
ArcFS - Archive file format for the RISC OS ArcFS filesystem
See Also
spark(5), nspark(1)
ARCFS(5)
