Library Utilities

CP/M has not the possibility of directory structures as used in UNIX or MS-DOS, for instance. A structure may be performed only by the so called user areas, but they are limited to a small number of 16 using CP/M+. Gary P. Novosielski had the idea to put some files together into a special library supporting a structure with CP/M, too. The program to administrate such libraries was LU.COM1 (Library-Utility) followed by NULU.COM2.
Such a library has the format like a CP/M data medium (disk): It begins with a directory followed by the individual files3.
A desription of the library layout will be found here.

Even though LU as well as NULU are well designed working with libraries, I played around with them. In doing so I created the following two programs4.

Look here for the source files:
DIRLBR.MAC This tool displays the directory of the selected libraries.
Call it
DIRLBR {D}{U}{:}{LBR-mask} {file-mask}
and the content of any library file will be displayed.
DELBR.MAC This tool extracts files from selected libraries.
Call it
DELBR {DU:}LBR-mask {DU:}{file-mask} {-C}
and the selected files will be extracted from the library.
Each extraction must be confirmed if the option -C is requested.
LBREQU.MAC The tool searches for EQU-assignments in .MAC-files of selected libraries and writes them formatted as
LABEL   EQU     WERT    ; [LBR/MAC-Datei]
into a file.
Call it
LBREQU LBRfile {EQUfile} {[opt]}
and matched data will be written to EQUfile.
Option A appends data to EQUfile rather than creating a new file and option V turns on the verbose mode.

Archives

Beneath programs for compressing data (eg. squeeze5, crunch) there are also CP/M archive programs existing, among other With CP/M you may read ZIP archives (version 1.01 only) but not create them.

At that time I wrote a tool displaying directory informations of all of the above archives, ADIR.MAC
1. In 1984 LU was written in Pascal by Steve Freeman: LU.PAS
2. I disassembled NULU, too. A description will be found here.
3. Using a tool programs may be loaded and executed out of a library directly.
4. Programs for displaying and extracting did exist already. I disassembled two of them: LDIR and LBREXT
5. The squeeze technique will be described in detail here