
Central-Point Backup 8
----------------------

Tape-Format
-----------

Clusters  32 Blocks  512 bytes.

Aeusserste Struktur:
   Tape header
   *Filemark
   (Daten fr 1. Archiv:)
      Datencluster des 1. Archives
      *Filemark
      Index des 1. Archives
      *Filemark
      Volume-Table
      *Filemark
   ... 2. Archiv...

Cluster Structure:
   4 Bytes:
      Cluster Nr innerhalb des Archives fr Data-Cluster
      X'55AA55AA' fr Tape Header
      X'66bb66bb' fr Archive Index
      "VTBL" fr Volume Table
  fr Data-Cluster:
   2 Bytes: Lnge der folgenden Filler-Bytes (normalerweise 0)
   n Bytes: Filler-Bytes (Zweck unklar, Daten immer 0)
   Rest: Subcluster

Subcluster Structure:
   2 Bytes:
      00 00    uncompressed Subcluster
      01 00    "minimize time" compressed
      02 00    "minimize space-moderate" compressed
      03 00    "minimize space-maximum" compressed
   4 Bytes: Length of following Data
   n Bytes: Subcluster data records

Data Records Structure (in Subclusters):
   4 Byte: Sequence nr (starting at 0x100) (?)
   4 Bytes:
      FF FF FF FF: fr Directory Entry Record
      file offset: fr Data Record
   4 Bytes: Length of following Data
   n Bytes:
      fr Data Records: File Data
      fr Directory Entry Records: Directory Entry Subrecord 1

Directory Entry Subrecord 1:
   2 Bytes: 02 00
   4 Bytes: Length of following Data
   n Bytes: Directory Entry Subrecord 2

Directory Entry Subrecord 2:
   1 Byte: Entry Type
      1: ?
      2: Drive
      3: Directory
      4: File
      5: Directory End (?)
   1 Byte: Attribute byte
   2 Bytes: time
   2 Bytes: date
   4 bytes: file size
   12 bytes: fs object name without path
   1 byte: 0
   n bytes: full fs object name including path
   1 byte: 0



Kompression
-----------

1. Bit = 0
   8 Bits: Daten-Byte
1. Bit = 1
   2. Bit = 1
      7 Bits: Byte-Distanz retour im Original fr lookup
         Falls =0 ==> EOD
      2 Bits:
         0: len = 2
         1: len = 3
         2: len = 4
         3: len >= 5
            2 Bits:
               0: len = 5
               1: len = 6
               2: len = 7
               3: len >= 8
                  4 Bits:
                     0000: len = 8
                     ...
                     1111: >= 23
                        4 Bits... (15 Lngeneinheiten pro 4 Bits)
   2. Bit = 0
      11 Bits: Byte-Distanz retour im Original fr lookup
       2 Bits... Lookup-Lnge (gleich wie oben?)
          ...

Lookup-Dist kann berlappen! -> der ganze Block wird repetiert.

Spezial-Codes:
   Lookup mit dist=0 len=2 -> eod???
