Fiz is used to analyze damaged
zoo archives and locate directory entries and file data in them.
The current version of
fiz is 2.0 and it is meant to be used in conjunction with
zoo version 2.0.
Fiz makes no assumptions about archive structure. Instead, it simply
searches the entire subject archive for tag values
that mark the locations of directory entries and file data.
zoo archive, a
directory entry contains information about a stored file such as its name, whether
compressed or not, and its timestamp. The
file data are the actual data for the archived file, and may be
either the original data, or the result of compressing the file.
For each directory entry found,
fiz prints where in the archive it is located, the directory path and
filename(s) found in it, whether the directory entry appears
to be corrupted (indicated by [*CRC Error*]), and the value of
the pointer to the file data that is found in the directory entry.
For each block of file data found in the archive,
fiz prints where in the archive the block begins. In the case of
an undamaged archive, the pointer to file data found in
a directory entry will correspond to where
fiz actually locates the data. Here is some sample output from
2526: DIR [changes] ==> 95
3909: DIR [copyrite] ==> 1478
In such output,
DIR indicates where
fiz found a directory entry in the archive, and
DATA indicates where
fiz found file data in the archive. Filenames located by
fiz are enclosed in square brackets, and the notation
"==> 95" indicates that the directory entry found by
fiz at position 2526 has a file data pointer to
position 95. In actuality,
fiz found file data at positions 2587, 3970, and
fiz found only two directory entries, and each directory entry corresponds
to one file, one of the file data positions is an artifact.
Once the locations of directory entries and file data are found, the
@ modifier to
zoos archive list and extract commands can be used and
the archive contents selectively listed or extracted,
skipping the damaged portion. This is further described
in the documentation for
In the above case, commands to try giving to
zoo might be
x@2526,2587 (extract beginning at position 2526, and get file data
from position 2587),
x@3090,3970 (extract at 3090, get data from 3970)
x@3909,4769 (extract at 3909, get data from 4769). Once a correctly-matched
directory entry/file data pair is found,
zoo will in most cases synchronize with and correctly extract all files
subsequently found in the archive. Trial and error should allow
all undamaged files to be extracted.
Also note that self-extracting archives created using
sez (the Self-Extracting
Zoo utility for MS-DOS), which are normally executed on an MS-DOS
system for extraction, can
be extracted on non-MSDOS systems in a similar way.