From aa2c5eb2d455713a1ee2428f5019c621fdceed80 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 3 Feb 2017 21:36:07 +0100 Subject: [PATCH] Add documentation for old archive format, copied from ARCSAL. --- doc/sysdoc/oarcdv.format | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 doc/sysdoc/oarcdv.format diff --git a/doc/sysdoc/oarcdv.format b/doc/sysdoc/oarcdv.format new file mode 100644 index 00000000..7be51a12 --- /dev/null +++ b/doc/sysdoc/oarcdv.format @@ -0,0 +1,44 @@ +; ARCHIVE FORMAT + + +; FIRST BLOCK LOOKS ALMOST EXACTLY LIKE A DISK DIRECTORY EXCEPT FOR +; THE FIRST FOUR WORDS: + +; WORD 0 - ALWAYS -1 TO DISTINGUISH FROM OLD ARCHIVES +; WORD 1 - "UDNAMP" RELATIVE POINTER WITHIN DIRECTORY TO +; START OF FIRST NAME AREA BLOCK +; WORD 2 - "UDESCP" BYTE NUMBER OF NEXT AVAILABLE BYTE IN +; DESCRIPTOR AREA +; WORD 3 - GC TAG - SYSTEM PACKED DATE/TIME OF LAST REARRANGEMENT +; OF DIRECTORY (E.G. DELETION, INSERTION, GARBAGE COLLECTION) + +; ONLY OTHER DIFFERENCE FROM STANDARD DISK DIRECTORY IS IN 5TH WORD +; OF EACH NAME BLOCK. DISK USES LEFT HALF FOR REFERENCE DATE, DOESN'T +; USE RIGHT HALF. ARC USES LEFT HALF FOR REFERENCE DATE, USES RIGHT HALF +; FOR COUNT OF NUMBER OF OPENS FOR READING. + +; SECOND BLOCK: + +; WORD 2000 - ACCESS POINTER TO FIRST BLOCK IN FREE BLOCK CHAIN +; (0=>CHAIN IS EMPTY) +; WORD 2001 - NUMBER OF FREE WORDS IN ENTIRE ARCHIVE +; WORD 2002 - NUMBER OF FREE BLOCKS IN ENTIRE ARCHIVE +; WORD 2003 - NUMBER OF WORDS IN USE IN ENTIRE ARCHIVE +; WORD 2004 - NUMBER OF BLOCKS IN USE IN ENTIRE ARCHIVE +; WORD 2005 - RELATIVE POINTER (RELATIVE TO 2005) TO NEXT AVAILABLE +; FBAT ENTRY (0=>FBAT IS FULL) +; WORDS 2006-<2005+200.> - THE FBAT - EACH ENTRY POINTS TO +; THE FIRST DATA BLOCK IN A FILE. +; WORDS <2005+200.>-EOF - DATA BLOCKS + +; A DATA BLOCK: + +; HEADER - 4.9 BIT - 1=>BLOCK IS FREE +; 4.8 BIT - 1=>LAST BLOCK IN FILE CHAIN +; 4.9,4.8 BITS BOTH 1 => SINGLE WORD OF GARBAGE +; 4.7 BIT - UNUSED +; 4.6-3.6 - LENGTH-1 OF DATA AREA (NOT INCLUDING HEADER AND TRAILER) +; 3.4-1.1 - DISK ADDRESS OF NEXT DATA BLOCK IN THE CHAIN + +; TRAILER - IDENTICAL TO HEADER EXCEPT +; 3.4-1.1 - DISK ADDRESS OF PREVIOUS DATA BLOCK IN THE CHAIN