home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
A
/
DOS4CPM.ZIP
/
LU86.DOC
< prev
next >
Wrap
Text File
|
1987-07-08
|
13KB
|
265 lines
LU86.EXE MS-DOS VERSION 4.03 September 25, 1984
NAME
lu86 - create and maintain a Novosielski library file.
SYNOPSIS
| lu86 option lbr_file_name[.lbr] [ file ] ...
DESCRIPTION
Library Utility 86 (LU86) is a program to allow combining
multilple files into one larger file. It requires PC or MS
DOS version 2.0 or higher to run.
Version 4.03 replaces all prior versions. The major re-
visions are: the addition of the -s operator, the addition
of CRC calculation and checking to improve reliability, the
addition of member time and date stamping, and support for
exact file lengths of library members. Error reporting and
recovery have also been improved.
The following options are recognized and supported:
-l Display a directory list of the specified library. The
redirection operator '>' can be used to create a file
of the directory list.
-t (Table) A synonym for -l: also produces a directory
list.
-a Extracts all files from the specified library file. If
a time and date for a file was stored in the library
directory, it is used to stamp the extracted file.
This mechanism allows files to enter and leave a LU
libarary file without losing their original time and
date stamp.
-e Extracts only specified file(s) from the library. Time
and Date stamp comments given above in the '-a'
description apply here as well.
-u Add to or create a library file. An existing library
will be updated with files from the command line file
list. If the library does not exist, it will be
created. Wildcards may be used when specifying the
file list.
When a file is added to a library, the DOS time and
date file stamp is read and stored in the library
directory. If a file to be added already exists in the
library, LU86 will delete the existing libary member,
and add the new file to the end of the library. In
terms of directory usage and library space used, this
is the same as adding a completely new member.
-1-
LU86.EXE MS-DOS VERSION 4.03 September 25, 1984
Prior versions of 16-bit LU and LU86 would re-use
deleted directory entries when performing an add/update
operation. LU86 v4.x will not re-use deleted directory
entries, and requires a reorganization to reclaim de-
leted directory entries. This was done to provide an
indication of unused space in the lbr file. If the -l
or -t command shows deleted directory entries, then the
lbr file contains unused 'lost' space.
-d Delete a file from a library. This tags the specified
member entrie(s) as deleted, and 'loses' the space that
had been allocated for the deleted member(s).
-r Reorganize the library file by creating a new file, and
copying active members of the old library to it. Re-
organization gets rid of unused space lost to delete
and duplicate filename update operations.
If you are dealing with a large library and are using
floppies, you might not have room on the default disk
to reorganize the library file. In this case, put the
disk containing the existing lbr file you want to
reorganize in one drive, and put a floppy disk with a
lot of room and lu86.exe in another drive. For an
example let us assume your lbr file is on B:
(B:biglbr.lbr), and lu86 and room is on A:. Log in
drive A: and reorgainze the library thusly:
A>lu86 -r b:biglbr
This will open biglbr.lbr on drive B:, and put the
reorganized result on the default disk, in this case,
drive A:.
-s Stamp the DOS directory entry of the library file with
with the time and date of the library directory stored
internally in the file. This is useful for restoring
the original date of a library file after doing a modem
transfer.
Whenever a new member is added to a library, a value called
the CRC (Cyclic Redundancy Check) word is calculated and
stored in the member's directory entry. When the member is
extracted from the library, the calculation is done again,
and compared with the saved value. If the two values do not
match, it is an indication that the member was damaged in
some way while it was in the library. The extract will still
be performed, but a message warning that the extracted copy
is questionable will be displayed.
This feature is especially valuable for libraries which have
been created on another system and transmitted by phone
(possibly several times) before you receive them. It helps
insure that the extracted files are faithful reproductions
of the files originally inserted. Members added by LU86
versions prior to 4.0 do not have CRC words. The CRC calcu-
lation is supressed for earlier libraries.
-2-
LU86.EXE MS-DOS VERSION 4.03 September 25, 1984
LIBRARY FORMAT
The entire library file and each of its members are concep-
tually organized into "sectors", each sector being 128 bytes
long. (From CP/M, where LU originated). Each sector of the
file belongs to at most one library member. Each member
comprises a whole number of sectors. The last sector of a
member may, however, be logically declared as a "Short
Sector". Although it physically contains 128 bytes, a Short
Sector contains one or more "pad" bytes at the end for the
purpose of maintaining the structure of the library file as
a whole. A member may have as few as 0 sectors.
Members may be referred to by a name of up to 8 characters,
and an extension of up to 3 characters. The naming rules
are identical to those for the naming of CP/M-80 disk files.
Members must be uniquely named; any given combination of
name and extension may identify at most one member.
The start and end points of each member are defined by the
pointers in a "directory entry" for the member. There are
no embedded start or end marks separating the members. All
sectors between the start and end sectors of a member belong
to that member. The members need not appear in the library
in the same order that their directory entries appear in the
directory.
The directory information in an LU style library is con-
tained in the same file as the data files, or members. The
amount of space to be allocated to the directory must be
specified by the user when a new library is created, but can
be changed when the file is reorganized. The size of each
LU directory entry is 32 bytes, which means each four direc-
tory entries take up one 128-byte 'sector' of the library
file. The LU directory uses one entry for control informa-
tion itself, so the number of directory 'sectors' needed
for a library of m members is (m + 1) / 4, rounded up to the
next whole number.
The user need not be concerned with this discussion, as
directory size is calculated by the program. All directory
sizes are input and output in terms of entries, each entry
being a potential member file. The program adjusts directory
size to an integral number of sectors.
MISFEATURES (BUGS)
Ideally, wildcards would work with the -l (or -t) -d and -e
commands, but currently do not.
Options may not be stacked or be specified more than one at
a time. One execution of LU86, one option.
Wildcard expansion of the -u input list is limited to 128
filenames.
-3-
LU86.EXE MS-DOS VERSION 4.03 September 25, 1984
Wildcard expansion is not supported for pathnames.
ACKNOWLEDGEMENTS
Gary Novosielski designed the LU format and wrote the first
programs supporting 'LBR' files. He has continued to main-
tain and improve the LU format by distributing a file of the
offical LU format definition. The current version of this
definition is contained in LUDEF5.DOC. Interested users are
directed to that file for more complete information on the
LU format.
Large portions of this document are excerpts from the CP/M
file LU300.DOC, which documents the operation of the CP/M
version of LU (an implemenation much superior to LU86, by
the way). Any particulary lucid and useful sections of this
document probably originated with Gary Novosielski. The
Turgid Obfuscation is probably mine.
This program had its genesis in the UNIX progam LAR.C. LAR
was rendered into C that mortal compilers could understand
by Tom Jennings who renamed the source to LU.C. I used LU
as a base and have renamed the effort to LU86.
LU86, ver 4.x is a 'C' program, and is compiled with version
2.10B of the Computer Innovations C86 MS-Dos compiler.
This document replaces a document of the same name, dated
| September 12, 1984. Changes are highlighed with a "|" in
the left margin.
CHANGE HISTORY
Ver 4.0, September 3, 1984. Original release.
Ver 4.01, September 10, 1984. Fixed add routines to exclude
the directory portion of a pathname, retaining only the 11
character file name for use in the LU directory.
Ver 4.02, September 12, 1984. Fixed update function so that
it distinguishes between not being able to find or read a
file (in which case it creates a new directory), and reading
a file which is not a library (in which case, it aborts).
Prior to this fix, trying to update a file with a .lbr
extension, which was not a Library, would destroy it.
| Ver 4.03, September 25, 1984. Fixed bug that limited input
| file list to 30 names. Now handles 128 names as advertised.
Paul J. Homchick
Chimitt Gilman Homchick, Inc.
One Radnor Station, Suite 300
Radnor, PA 19087
-4-