home *** CD-ROM | disk | FTP | other *** search
-
- ARJ TECHNICAL INFORMATION January 1992
-
-
- This is an abbreviated version of the documentation in UNARJ archives.
-
-
- Modification history:
- Date Description of modification:
- -------- ------------------------------------------------------------
- 12/03/91 Added BACKUP flag to header arj flags.
- 11/21/91 Described the two types of headers separately.
-
-
- ARJ archives contains two types of header blocks:
-
- Archive main header - This is located at the head of the archive
- Local file header - This is located before each archived file
-
- Structure of main header (low order byte first):
-
- Bytes Description
- ----- -------------------------------------------------------------------
- 2 header id (main and local file) = 0xEA60 or 60000U
- 2 basic header size (from 'first_hdr_size' thru 'comment' below)
- = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
- = 0 if end of archive
-
- 1 first_hdr_size (size up to and including 'extra data')
- 1 archiver version number
- 1 minimum archiver version to extract
- 1 host OS (0 = MSDOS, 1 = PRIMOS, 2 = UNIX, 3 = AMIGA, 4 = MAC-OS)
- (5 = OS/2, 6 = APPLE GS, 7 = ATARI ST, 8 = NEXT)
- (9 = VAX VMS)
- 1 arj flags
- (0x01 = NOT USED)
- (0x02 = RESERVED)
- (0x04 = VOLUME_FLAG) indicates presence of succeeding
- volume
- (0x08 = NOT USED)
- (0x10 = PATHSYM_FLAG) indicates archive name translated
- ("\" changed to "/")
- (0x20 = BACKUP_FLAG) indicates backup type archive
- 1 reserved
- 1 file type (2 = comment header)
- 1 reserved
- 4 date time when original archive was created
- 4 reserved (future use may be archive size starting at main header)
- 4 reserved
- 4 reserved
- 2 filespec position in filename
- 2 (currently not used)
- 2 (currently not used)
- ? (currently none)
-
- ? filename of archive when created (null-terminated string)
- ? archive comment (null-terminated string)
-
- 4 basic header CRC
-
- 2 1st extended header size (0 if none)
- ? 1st extended header (currently not used)
- 4 1st extended header's CRC (not present when 0 extended header size)
-
-
- Structure of local file header (low order byte first):
-
- Bytes Description
- ----- -------------------------------------------------------------------
- 2 header id (main and local file) = 0xEA60 or 60000U
- 2 basic header size (from 'first_hdr_size' thru 'comment' below)
- = first_hdr_size + strlen(filename) + 1 + strlen(comment) + 1
- = 0 if end of archive
-
- 1 first_hdr_size (size up to and including 'extra data')
- 1 archiver version number
- 1 minimum archiver version to extract
- 1 host OS (0 = MSDOS, 1 = PRIMOS, 2 = UNIX, 3 = AMIGA, 4 = MAC-OS)
- (5 = OS/2, 6 = APPLE GS, 7 = ATARI ST, 8 = NEXT)
- (9 = VAX VMS)
- 1 arj flags (0x01 = GARBLED_FLAG) indicates passworded file
- (0x02 = RESERVED)
- (0x04 = VOLUME_FLAG) indicates continued file to next
- volume (file is split)
- (0x08 = EXTFILE_FLAG) indicates file starting position
- field (for split files)
- (0x10 = PATHSYM_FLAG) indicates filename translated
- ("\" changed to "/")
- (0x20 = BACKUP_FLAG) indicates file marked as backup
- 1 method (0 = stored, 1 = compressed most ... 4 compressed fastest)
- 1 file type (0 = binary, 1 = 7-bit text)
- (3 = directory, 4 = volume label)
- 1 reserved
- 4 date time modified
- 4 compressed size
- 4 original size (this will be different for text mode compression)
- 4 original file's CRC
- 2 filespec position in filename
- 2 file access mode
- 2 host data (currently not used)
- ? extra data
- 4 bytes for extended file starting position when used
- (this is present when EXTFILE_FLAG is set)
-
- ? filename (null-terminated string)
- ? comment (null-terminated string)
-
- 4 basic header CRC
-
- 2 1st extended header size (0 if none)
- ? 1st extended header (currently not used)
- 4 1st extended header's CRC (not present when 0 extended header size)
-
- ...
-
- ? compressed file
-
-
- Time stamp format:
-
- 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- |<---- year-1980 --->|<- month ->|<--- day ---->|
-
- 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
- |<--- hour --->|<---- minute --->|<- second/2 ->|
-
-
- end of document
-
-