LBR

LBR was a container format popular for distributing CP/M software, designed by Gary P. Novosielski. Since it had no compression of its own, it was common for individual members of .LBR files to be compressed with Squeeze (.?Q?), Crunch (.?Z?), or CrLZH (.?Y?). Alternatively, the whole library could be compressed with one of these methods (leading to the extensions .LQR, .LZR, .LYR).

Under CP/M, the canonical tools for manipulating LBR files were LU.COM and NULU.COM. Other tools, such as NSWP.COM, understood both LBR and some of the closely associated compression formats.

LBR has been implemented on other platforms including PC/MS-DOS, but the Commodore LBR format is unrelated and not compatible. (It was common in those days for different platforms to be Balkanized and not have file formats that are in any way compatible with those of other platforms, even when they served similar purposes and were inspired by other-platform formats even to the point of being named after them.)

Identification
LBR files have no signature, but they begin with a "Directory Control Entry" that has a fairly strict format. So, LBR files start with a 0x00 byte, then 11 spaces (0x20), then two 0x00 bytes, then two bytes that are not both 0x00.

Tools

 * CFX (DOS/Unix)
 * lbrate by Russell Marks, c. 2001 (Unix, GPL2)
 * LAR (Unix, tar-like interface) by John Elliott, based on Stephen C. Hemminger's original
 * lu310.com (CP/M software)

Sample files

 * OAK CP/M archive → .../*.lbr
 * https://telparia.com/fileFormatSamples/archive/lbr/