Bootstrap
logo Software

File Compression in CP/M

Last revision of this page: February 7, 2025

Image created with AI in Bing Image Creator by retrocmp.de
Image created with AI in Bing Image Creator by retrocmp.de

If you work with old computers and old software for CP/M, then you cannot avoid the topic of file compression. Under the DOS operating system, this is usually relatively clear and simple, because almost everything is done with ZIP files (e.g. PKZIP & PKUNZIP).

But as soon as it comes to CP/M, it gets more complicated. The keywords here are: SQUEEZE, CRUNCH, ARK and LBR. And often two methods are combined, e.g. LBR + SQUEEZE or LBR + CRUNCH.

SQUEEZE

CRUNCH

LBR – Library Files

A library is a group of files collected together into one file in such a way that the individual files may be recovered intact. A library file can be identified by the "LBR" as the extent of the file name. LU (Library Utility) is a CP/M utility used to maintain libraries of files. LU does not perform any compression. Because of this, most people will squeeze or crunch files before adding them to a library if they want to save space. If you want to remove the component files (members) from a LBR file, you should have a copy of LU310.COM, NULU152A.COM, or other LBR extractor utility. (LU and NULU are 8080/8085/Z80 compatible.)
[Keith Petersen, (former) Maintainer of the MSDOS, MISC and CP/M archives at SIMTEL20]

ARK – Archive Files

Recently, popular CP/M Public Domain software files and information files are being distributed using ARCHIVE files. Archive files are similar to library (LBR) files, in that they take a logical group of files and put them together in a single file. The main difference, is that the members of the "ARC" or "ARK" file are automatically compressed. The compression algorithm chosen is one of three which will produce the smallest file.
Archive files have been available to the MS-DOS and PC-DOS areas, but, and been made useful in the CP/M environment with the introduction of the "UNARC" program. The current version is 1.6, and is available with extensive documentation, and two executable COM files, a 8080/8085 version and a Z80 version. The Z80 version takes advantage of the expanded Z80 (and equivalent) instruction set for speed and size, and therefore is machine dependent. There is also a modification overlay to adapt the program to non-standard CP/M 2.2 and 3.0 operating systems, such as CP/M68k and CP/M emulators. Programs are available on many machines to process "ARC" files, the Atari ST, systems running the UNIX, systems running MS-DOS, and CP/M.
[Keith Petersen, (former) Maintainer of the MSDOS, MISC and CP/M archives at SIMTEL20]

ZIP

There is a very recent „UNZIP“ project for CP/M Z80 computers on Github. This project or program is special in that it can handle both MS-DOS PKZIP 1.X and 2.04g files.

Downloads