CP Shrink
From Just Solve the File Format Problem
CP Shrink (or CPSHRINK) is a compressed archive program for DOS, and its native .CPZ file format. It was developed by Central Point Software. It usually uses PKWARE DCL Implode compression.
Contents |
File structure
CPSHRINK CPZ archive format overview This information is based on reverse engineering. It may be incorrect or incomplete. Byte order is little-endian. CRC algorithm is CRC-32-IEEE. Sizes and offsets are in bytes, unless otherwise noted. File structure Offset Size Description ------ ---- ----------- 0 8 Archive Header segment 8 32×nmembers Member File Headers segment 8+32×nmembers File Data area Archive Header segment Offset Size Label Description ------ ---- ----- ----------- 0 4 nmembers Number of member files 4 4 CRC of the 32×nmembers bytes following this field Note: The nmembers field might actually be a 2-byte field, followed by 2 bytes of unknown use. Member File Headers segment Sequence of Member File Headers, each 32 bytes, starts at offset 8. Member File Header Offset Size Description ------ ---- ----------- +0 4 CRC of *compressed* file data +4 15 Filename, NUL terminated +19 1 Compression method: 0 = PKWARE DCL Implode, Binary 1 = PKWARE DCL Implode, ASCII 2 = not compressed +20 4 Original size +24 4 Compressed size +28 4 Timestamp (DOS date, time) File Data area The first file's compressed data starts at 8+32×nmembers. Location of other files' data is implied by the sum of the compressed sizes of the preceding files.
Identification
There's no quick and easy way to identify a CPZ file from its contents. Validating the CRC of the file headers segment could work, but that segment does not have a fixed size.
Software
- Central Point More PC Tools 2.0 for DOS and Windows (German) → disk1.img → CPSHRINK.EXE (English)
- PC Tools Pro v9.0 (German) → disk1.img → CPSHRINK.EXE (German)
- CP Shrink, from the SAC collection (German)
- Deark