Black Archive File Format ========================= As used by the Archive program originally by Andrew Black, http://mdfs.net/Apps/Archivers/Archive. The format of a Black archive is as follows: A version 2 Black archive starts with a 'dummy' header to prevent earlier versions from extracting incorrectly: Read using INPUT# 000000 : 00 00 : "" - ie, null string 000002 : 40 FF xx xx xx : ( filelength-17 ) OR &FF000000 000007 : 40 00 00 00 00 : dummy load% - set to zero 00000C : 40 00 00 00 00 : dummy exec% - set to zero 000011 : xx xx ... : rest of file starts here Repeated for each file: Read using INPUT#: name$ : 00 nn ... : Filename, last char...first char len% : 40 hi nn mm lo : length load% : 40 hi nn mm lo : load address exec% : 40 hi nn mm lo : execute address Version 2 archives then have: attr% : 40 hi nn mm lo : file attributes Read using BGET: The bytes of the file Filenames are in Acorn format, ie '.' directory seperators. The bottom three bytes of len% is the actual data length occupied within the archive, even if this data expands to form a larger file. The top byte of len% is a flag. Current meanings are as follows: &00 Stored file <>&00 Not a file &FF Ignore this data Future versions will use this flag to indicate actual file compression methods. Archive versions before 2.10 will read a version 2 archive file as a single entry with the flag set to 'ignore this data'. Archive version 2.10 onwards can read version 1 archive files and version 2 archive files.