XLU68K - Extended Library Utility for CP/M-68K XLU68K - Extended Library Utility for CP/M-68K XLU68K - Extended Library Utility for CP/M-68K Robert Heller Robert Heller Robert Heller Mon Nov 10, 1986 Mon Nov 10, 1986 Mon Nov 10, 1986 (c) 1986 By Robert Heller. All rights reserved. (c) 1986 By Robert Heller. All rights reserved. (c) 1986 By Robert Heller. All rights reserved. ABSTRACT. This manual describes how to use the ABSTRACT. ABSTRACT. CP/M-68K version library utility. This utility is closely modeled after Gary P. Novosielski's LU utility. The library file uses the same internal format and is compatable with LU310.COM. There are some differences, including the inclusion of SQ and USQ, allowing squeezed members to be unsqueezed upon extraction and new members to be squeezed upon insertion. CONTACT INFO. I can be reached as follows: CONTACT INFO. CONTACT INFO. ARAPNet: Heller@UMass-CS.CSNET BITNET: Heller@UMass.BITNET BIX: heller GEnie: RHeller FidoNet: 101/27 (Dave's Fido) U.S. Mail: Robert Heller Star Route Box 51A Wendell, MA 01379 Voice Phone: 617-544-6933, early evenings (before 7:30 PM Eastern), and weekends. 413-545-0528, Monday to Friday 8:00 AM to 4:00 PM Eastern. Data Phone: 617-544-6933, 7:30 PM to 7:00 AM Eastern. XLU68K - Extended Library Utility for CP/M-68K Page 2 XLU68K - Extended Library Utility for CP/M-68K XLU68K - Extended Library Utility for CP/M-68K Section 1: Introduction. Introduction. Introduction. This utility is very usefull for storing a group of related files in a compressed form as a single super file. This aids in transport (only one file to upload/download) one one and saves disk space for infrequently accessed source code. The utility is designed to work both as an interactive utility as well as a command-line driven program for use in batch processing. Section 2: Invoking LU From The CCP. Invoking LU From The CCP. Invoking LU From The CCP. LU is invoked as any other Transient Utility: A>LU {commands-and-filenames} A>LU {commands-and-filenames} If invoked with no arguments (except I/O redirection), LU enters interactive command mode. Since it is coded in C and is linked with DRI's CLIB, I/O redirection and wildcard processing is done as described in the C Language Programming Guide (sections 1.5 and 1.8). LU will echo redirected input to the standard output stream while in interactive mode. Thus the output will "look" the same as if you had typed the commands by hand. Error messages are sent to standard error, so you will still see them when standard output is redirected. Section 3: Command Processing. Command Processing. Command Processing. Commands are specified either on the command line with a dash preceding the command letter(s) or at the interactive prompt, also with a dash preceding the command letter(s). Most commands take one or more paramaters, which follow the command with one or more whitespace characters separating the parameters from the command and each other. Commands defined for this version of LU are: Command Function Parameters ======= =============================== ========== -o Open library file Library file -c Close library file -x Exit LU -e Extract file(s) Members -eu Extract and unsqueeze Members -a Add or replace file(s) Filenames -as Add or replace file(s), squeezed Filenames -l List files in library -k Kill file(s) in library Members -r Reorganize library -h Help text (command listing) -? Help text (command listing) Table 1: LU Command List. Table 1: LU Command List. Table 1: LU Command List. In interactive mode, the last command is included in the prompt as a reminder. Additional parameters can be specified until a new command is entered. In command line mode, a -x is assumed at the end of the command line. An -x -x XLU68K - Extended Library Utility for CP/M-68K Page 3 XLU68K - Extended Library Utility for CP/M-68K XLU68K - Extended Library Utility for CP/M-68K End-Of-File condition on the command input stream (whether redirected or entered as a ^Z) also forces a -x. Standard -x -x CP/M-68K wildcards are allowed for members (for extraction and deletion) and for filenames (for addition), on either the command line or interactively (member names with wild cards need to be enclosed in quote marks if entered on the command line to prevent the CP/M-68K C startup routine from trying to do a directory search on the member names). Section 3: Opening and Closing Library Files. Opening and Closing Library Files. Opening and Closing Library Files. A library file is opened with the -o command. This -o -o command takes one parameter: the name of the library file. A file type of .LBR is used if no type is .LBR .LBR specified. A library file must be open before any other must must operation except the exit operation can be done. If the library file does not exist, it will be created. You will be asked for the number of entries to reserve. The number will be adjusted to allow room for the directory and rounded up to a multiple of 4. A library file is closed with the -c command. This -c -c command takes no arguments. A library file will be automatically closed if the exit command is given or assumed, so it is not neccessary to explicity close the library before you exit. Section 4: Adding and Replacing Members in a Library. Adding and Replacing Members in a Library. Adding and Replacing Members in a Library. Members are added or replaced with the -a and -as -a -as -a -as commands. Both of these commands take filenames as parameters. Wildcards are allowed. Filenames can also have either a drive letter (A:-P:) or a user number (0:-15:) in front. The -a command adds the file as is, with -a -a no compression. The -as command squeezes the file and then -as -as adds it, the member name's type being changed as SQ would change it. This makes it look like it would if SQ had been used to do the squeezing outside of LU, as is done with most versions of LU. The squeezing process creates a temporary file which is deleted when the squeezed member is added or replaced. In either case, the number of sectors is displayed when the addition is completed. If a member is replaced, the directory entry is updated, but the data is added to the end of the library file. The old data becomes inaccessable. You will need to reorganize the library if the fragmentation gets too bad. Section 5: Extracting Members from a library. Extracting Members from a library. Extracting Members from a library. Members are extracted with the -e and -eu commands. -e -eu -e -eu Both of these commands take member names as arguments. Wild cards are allowed. The -e command extracts members as -e -e is and the -eu command will try to unsqueeze the member. -eu -eu If the member failes to unsqueeze, it is extracted as is. Actually it is first extracted to a temp file and the unsqueezer is called. If the unsqueeze fails, the temp file is renamed to the member name and a message is issued. If the unsqueeze succeds, the temp file is XLU68K - Extended Library Utility for CP/M-68K Page 4 XLU68K - Extended Library Utility for CP/M-68K XLU68K - Extended Library Utility for CP/M-68K deleted. Thus the -eu command can be used to extract all -eu -eu members whether they are squeezed or not. Section 6: Deleting Members from a Library. Deleting Members from a Library. Deleting Members from a Library. Members are deleted from a library with the -k -k -k command. This command takes member names as parameters. Wildcards are allowed. The space used by deleted entries is not reclaimed until the library is reorganized. Section 7: Listing the Contents of a Library. Listing the Contents of a Library. Listing the Contents of a Library. The contents of a library can be listed out with the -l command. This command takes no parameters. The -l -l information listed includes the names of the active members, their offsets, lengths, and CRC values, as well as the total number of used and deleted sectors, and the number of active, deleted, and free entries in the directory. The CRC values are listed, but since the CRC calculation routine does not work (and its use is disabled), these values are not used. Libraries created and modified by this version of LU will allways have zero in the CRC slots in the directories. Also, the other defined directory entry fields (creation date & time, last modification date and time, and pad count) are also not used and are set to zero. Section 8: Reorganizing a Library. Reorganizing a Library. Reorganizing a Library. A library file can be reorganized with the -r -r -r command. Reorganizing is done by simply copying the active parts of the file to a temporary file and deleting the old library (if it is on the default drive and user area), and renaming the temporary file to the library file name. This command is used when the library gets too fragmented or if more directory entries are needed. Section 9: Miscellanious Commands. Miscellanious Commands. Miscellanious Commands. The remaining commands, -x, -h, and -?, are used to -x -h -? -x -h -? exit the Library Utility (-x) and get a brief help listing -x -x (-h or -?). Neither take any parameters. The -x command -h -? -x -h -? -x is assumed at the end of the command line (when in command line mode) or if End-Of-File is reached on the command input stream (when in interactive command mode). The -? -? -? command is the initial default command when interactive mode starts up.