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 / CPM / UTILS / ARC-LBR / LU300C.HLP < prev    next >
Text File  |  2000-06-30  |  18KB  |  376 lines

  1. INTRODUCTION: THE LIBRARY CONCEPT
  2. LU Command Conventions
  3. SUMMARY OF LU OPERATIONS
  4.   Looking Over Existing Libraries: LDIR
  5.   Unpacking Entire Libraries: LUNLOAD
  6.   Selecting Libraries for Access: -O
  7.   Accessing Individual Members in Libraries: -L -E
  8.   Executing Programs in Libraries: LRUN
  9.   Building and Maintaining Libraries: -D -N -A -R
  10.   Finishing Up: -C -X
  11. HANDLING SPECIAL SITUATIONS
  12.   Insuring Enough Memory Capacity: -B
  13.   Changing Drives and Switching Disks -- Precautions: -U
  14.   Staying Out of Trouble: Error Recovery
  15. HOW LIBRARIES ARE ORGANIZED
  16. :LU 3.00c             NOTICE: Current Version Numbers          dh: 84-01-15
  17.                       ===============================
  18.  
  19.      This material applies to version 3.00 of LU.COM.  Libraries created by 
  20. LU 3.00 can be read by all previous versions,  and vice versa,  but version 
  21. 3.00 provides additional protection against undetected damage in files that 
  22. it creates and accesses.
  23.  
  24.  
  25.                 Copyright 1982, 1983 by Gary P. Novosielski
  26.                            All rights reserved.
  27.  
  28.      Permission is hereby granted to copy and distribute this work for  any 
  29. non-commercial  purpose.  Any use of this material for commercial advantage 
  30. without prior written consent of the copyright owner is prohibited.  Please   
  31. report  any  problems  and suggestions for enhancement to  the  author  via  
  32. CompuServe  CP-MIG or EMAIL posting to user number 70160,120;  or by  voice 
  33. phone to (201) 935-4087, evenings (eastern time) and weekends.
  34.  
  35.      LU.HLP #3.00a first derived by Dennis E. Hamilton on 83-10-30.
  36.  
  37.                                                      next: What is a Library?
  38.                      INTRODUCTION: THE LIBRARY CONCEPT
  39.                      =================================
  40.  
  41.      Library  Utility  (LU)  is  a  system for  storing  several  files  as 
  42. components of one larger file.   The resulting library (.LBR) file has  its 
  43. own PRIVATE DIRECTORY.  
  44.  
  45.      Library  files  provide an additional dimension  for  the  collection, 
  46. organization, and maintenance of your work.  And because of CP/M disk-usage 
  47. rules,  libraries  tend  to require less space than the same  files  stored 
  48. separately.  In addition, libraries release CP/M disk-directory entries for 
  49. other uses, especially when the library holds many tiny files.
  50.  
  51.      The maximum number of components -- library MEMBERS -- to be contained 
  52. in  a library must be specified in advance.   But the limit can be  changed 
  53. later on when the library is re-organized.
  54.  
  55.      Because  library members are tucked away within  other,  larger,  CP/M 
  56. files,  they  have to be extracted -- taken off the shelf -- in order to be 
  57. worked  on  or  used by typical programs.   The modifed  results  are  also 
  58. restored to the library by using LU.
  59.                                                   next: How LU Utilities Help
  60.      To  make it easy to keep executable routines in  libraries,  the  LRUN 
  61. utility is provided.  LRUN is a small program which will execute your .COM-
  62. file programs directly from the libraries which hold them.   With LRUN,  it 
  63. is  not  necessary  to extract a program into a separate disk  file  before 
  64. execution.  
  65.  
  66.      Also, when material is packed in a library for convenient distribution 
  67. in one piece, there is another utility, LUNLOAD, which unpacks everything.
  68.  
  69.      The basic library utility,  LU, lets you start new libraries and
  70.  
  71.    * Add new members to any specified library as long as there is room
  72.    * Extract copies of any members for use outside of the library
  73.    * Delete and rename members, as needed
  74.    * Reorganize a library to change its capacity and recover deleted space.
  75.    * Produce a directory to any library's current content.
  76.  
  77.      The utility LDIR allows inspection of a library's directory and  there 
  78. are  variants,   such  as  LRUNZ  and  LDIRZ,  that  support  the  extended 
  79. conventions  of ZCPR2.   There is a trend to have newer CP/M utilities also 
  80. accomodate .LBR files in their operation.
  81.                                                         next: Why (not) to LU
  82.  WHY USE LIBRARIES?
  83.    * Libraries make more compact use of disk capacity.
  84.    * Libraries  require  fewer  disk-directory  entries,  cutting  down  on 
  85.      clutter and releasing entries for other purposes.
  86.    * Libraries  aid  the transfer of software from  one system to  another.  
  87.      Only  one file is distributed,  reducing the chance of  omissions  and 
  88.      oversights.
  89.    * Libraries allow more flexible choice of file names,  since  uniqueness 
  90.      is important only within each separate library.
  91.  
  92.  WHAT IS THE PRICE?
  93.    * Files  within a library are unavailable to "normal" programs.  A  file 
  94.      will usually have to be extracted from the library before its data can 
  95.      be used.
  96.    * When a library member is deleted,  space is not automatically released 
  97.      for re-use.   The library must be explicitly re-organized in order  to 
  98.      recover the directory entry and space of a deleted member.
  99.  
  100. On  balance,  LU lends tremendous support for disciplined organization  and 
  101. maintenance of your programs and data.
  102. ::LUCMD                   LU COMMAND CONVENTIONS
  103.                           ======================
  104.  
  105.      LU is guided by a miniature language of COMMAND-STRING OPERATIONS.  If 
  106. you  are  unfamiliar with the notation and conventions of this tidy  little 
  107. language,  you  should  locate the file LUCMD.HLP and review it  using  the 
  108. command 
  109.  
  110.                a>HELP LUCMD
  111.  
  112. There you will find out about 
  113.  
  114.      * Different ways of initiating LU and supplying command string
  115.      * General format of the command-string: use of spacing and line-breaks
  116.      * Notation for specifying operations
  117.      * Notation for selecting files
  118.      * LU place-keeping and default assumptions
  119. :                        SUMMARY OF LU OPERATIONS
  120.                          ========================
  121.  
  122. OP OPERAND(S)       OPERATION
  123.  
  124. -A file-spec ...    Add the selected files to the open library.
  125. -B s                Set the buffer size to s (1 to 255) records.
  126. -C                  Close any library that is presently open. 
  127. -D file-spec ...    Delete selected files in the open library.
  128. -E file-spec ...    Extract selected files from the open library.
  129. -L                  List a directory for the open library.
  130. -N new=old ...      Rename selected files in the open library.
  131. -O file-spec        Close any open library and open the specified one.
  132.                     If the library does not exist, one will be created.
  133. -R                  Re-organize the open library.
  134. -U [u/][d:]         Close, change to the given defaults, and reset the disk
  135. -X                  Exit from LU after the current line is processed.
  136.                     An empty command-stream line implies -X.
  137.  
  138. In  a pinch,  you can ABORT processing with ^C at the input  prompt.   This 
  139. leaves the open library directory as it was at the end of the last -C,  -O, 
  140. -A, -R or -U operation.  Do -L and cleanup as needed, following with -R.
  141. ::LDIR                LOOKING OVER EXISTING LIBRARIES
  142.                       ===============================
  143.  
  144.      When all you want to do is find out,  or remind yourself, what is IN a 
  145. library,  the LDIR utility (and LDIRZ,  its ZCPR2 counterpart) are just the 
  146. ticket.
  147.  
  148.      Typically,  LDIR lets you examine a library via a specification of the 
  149. form
  150.  
  151.           d>LDIR library ...
  152.  
  153.      where  library identifies the library that you want to know about
  154.  
  155.      Command "d>LDIR COMMAND will,  with this convention,  show  everything 
  156. that is known about files in library COMMAND.LBR.  For specific information 
  157. about  the version of LDIR available on this system,  you should locate the 
  158. file LDIR.HLP for review via 
  159.  
  160.                d>HELP LDIR
  161. ::LUNLOAD               UNPACKING ENTIRE LIBRARIES
  162.                         ==========================
  163.  
  164.      When  a library file is used as a "carton" for a group of files  being 
  165. distributed  together,  there is an easy way to make separate copies of its 
  166. entire content:
  167.  
  168.                a>b:LUNLOAD c:library
  169.  
  170. will, for example, "unpack" the files of c:library onto the a: disk.
  171.  
  172.      Precise  operation  of  the  currently-supported  LUNLOAD  version  is 
  173. specified in the file LUNLOAD.HLP.  Locate that file and review it via
  174.  
  175.                a>HELP LUNLOAD
  176.  
  177.      Note that the functions of LUNLOAD can be obtained with LU, but not so 
  178. directly.   Also,  LUNLOAD may succeed where LU is unable to obtain  enough 
  179. storage for operation. 
  180. :                    SELECTING THE LIBRARY TO ACCESS
  181.                      ===============================              
  182.  
  183.      Unless you are willing to use a library of name LIBRARY.LBR,  you need 
  184. to specify the actual library to use with an OPEN command-string sequence:
  185.  
  186.  
  187.                -O  library
  188.  
  189.         * Any library file that is already open will be closed.
  190.  
  191.         * The default u/,  d:,  and file type .LBR are used to complete the 
  192.           library filespec, as necessary.
  193.  
  194.         * If  the  specified library exists,  it is opened for use  as  the 
  195.           current library.
  196.  
  197.         * If  the  specified  library  does not exist,  a  NEW  LIBRARY  is 
  198.           created.   LU will request information from the console in  order 
  199.           to  allocate a library with sufficient capacity for the  intended 
  200.           members.   (Refer to the information on "Building and Maintaining 
  201.           Libraries" for further treatment of this case.)
  202. :                     ACCESSING MATERIAL IN LIBRARIES
  203.                       ===============================
  204.  
  205.      In  addition to using an LDIR utility,  you can review the contents of 
  206. the currently-open library using the LU command-string
  207.  
  208.           -L
  209.  
  210. for "LISTING" the library directory while LU is operating.  
  211.  
  212.      When you need to work with separate copies of members, the LU command-
  213. string
  214.           -E filespec ...
  215.  
  216. "EXTRACTS"  copies  of those members selected by each  following  filespec.  
  217. Every  library member that matches a single filespec is copied.   The  copy 
  218. has the same filename as the original member.
  219.  
  220.      WHERE  copies  go  is  determined by  the  u/d:  determined  for  each 
  221. filespec.  (Read-only files cannot be overwritten in this way, however.)
  222.  
  223.                                     next: Understanding the Library Directory
  224.                          LIBRARY DIRECTORY ENTRIES
  225.  
  226.      The  information presented in response to the -L operation consists of 
  227. the following:
  228.  
  229.            filename for   each  current  member  (and  DIRECTORY  for   the 
  230.                     library's own directory space)
  231.  
  232.               index of  the library record where the member starts  (needed 
  233.                     by the library utilities in finding the data)
  234.  
  235.                size of the member in CP/M RECORDS (128-byte units).  Divide 
  236.                     by 8 for size in 1k units.
  237.  
  238.                 CRC a  special kind of check code carried for  each  member 
  239.                     and  used to help detect the presence of damage to  the 
  240.                     library
  241.  
  242.      In  addition  to  this information  about  the  "active"  entries,  LU 
  243. indicates  how  many members can be added and how many deleted members  and 
  244. deleted records are cluttering the library.  (The waste for deleted members 
  245. is eliminated by reorganizing with -R.)
  246. ::LRUN                EXECUTING PROGRAMS IN LIBRARIES
  247.                       ===============================
  248.  
  249.      Usually,  library  data that is going to be used by a program must  be 
  250. extracted first.
  251.  
  252.      But programs that are kept in libraries can be executed without having 
  253. to  be removed first.   This is accomplished by use of the LRUN utility  or 
  254. one  of  its kin.   For more information on the current  release  of  LRUN, 
  255. locate the file LRUN.HLP and review it by
  256.  
  257.                a>HELP LRUN
  258. ::LBRBUILD          BUILDING AND MAINTAINING LIBRARIES
  259.                     ==================================
  260.  
  261.      With a set of well-organized libraries in hand, most access will be in 
  262. order  to  USE the material that the library contains.   LU  supports  this 
  263. effort as do the more-specialized utilities such as LDIR and LRUN.
  264.  
  265.      But  LU is also designed to be used in constructing and modifying  new 
  266. libraries of your own material.  
  267.  
  268.      Once you are comfortable with the general concepts of LBR-usage and LU 
  269. operation, the additional provisions for building libraries will be easy to 
  270. grasp.    The  file  LBRBUILD.HLP  describes  these  additional,   advanced 
  271. features.  You can review it with the command
  272.  
  273.                a>HELP LBRBUILD
  274. :                              FINISHING UP
  275.                                ============
  276.  
  277.      When operations on a library have been finished,  there are three ways 
  278. to move on.  Command-string
  279.  
  280.             -C will  "CLOSE" any currently-open library,  if there is  one, 
  281.                making sure that all changes are reflected in its directory.  
  282.                There is now no current directory.
  283.  
  284.             -X has  the same effect as -C,  followed by termination of  LU, 
  285.                UPON COMPLETION OF THE CURRENT COMMAND-STRING LINE
  286.  
  287.      The  end  of  the command-string,  or the occurence of an  empty  line 
  288. within it, has the same effect as the -X operation.
  289. :                       HANDLING SPECIAL SITUATIONS
  290.                         ===========================
  291.  
  292.      There are three areas where operation of LU can become tricky.  First, 
  293. it  is  possible  to  exceed the capacity of your  computer  in  trying  to 
  294. manipulate a library with allowance for a great number of members.   The LU 
  295. operation 
  296.                -B nn
  297.  
  298. may be used to obtain relief in some cases.
  299.  
  300.      Also, when it is necessary to change disks in the course of working on 
  301. a library, there are some special precautions involved.  The LU operation
  302.  
  303.  
  304.               -U [u/][d:]
  305.  
  306. helps to reset things properly after changing disks, when possible at all.
  307.  
  308.      Finally,  use  of .LBR files puts a lot of eggs in one basket.   There 
  309. are  some  useful  tips available for making sure that the  .LBR  does  not 
  310. go the way of Humpty Dumpty.
  311. ::LBRSIZE             INSURING ENOUGH MEMORY CAPACITY
  312.                       ===============================
  313.  
  314.      Besides the space taken for program and housekeeping during LU  opera-
  315. tion,  there  are two large data buffers:  one for DISK ACCESS and one  for 
  316. LIBRARY DIRECTORY.
  317.  
  318.      If  your  CP/M system has a very large TPA (transient  program  area), 
  319. there  is  not  much to worry about.   But you should  still  review  the 
  320. capacity  rules   to  get a sense of the headroom available.
  321.  
  322. Command string:               -B nn
  323.  
  324. changes  the  disk-access  buffer  allocation to nn records  as  a  way  to 
  325. increase performance or to accomodate a larger directory instead.  Complete 
  326. details   about  this  and  related  adjustments  are  found  in  the  file 
  327. LBRSIZE.HLP.  You should review this file with command
  328.  
  329.                          a>HELP LBRSIZE
  330. :                   CHANGING DRIVES AND SWITCHING DISKS
  331.  
  332.      NEVER REMOVE OR CHANGE ANY DISK ON WHICH THERE IS AN OPEN LIBRARY.  LU 
  333. carries information about the library in computer memory.  This information 
  334. is not recorded on the disk until the last possible moment.   If you change 
  335. a  disk without giving LU a chance to bring the disk and memory  copies  of 
  336. data  into  agreement,  OPERATION WILL FAIL.   THERE IS THE POSSIBILITY  OF 
  337. DAMAGE TO MATERIAL RECORDED ON ONE OR MORE DISKS.
  338.  
  339.      The  way to guarantee that all disks are in a "clean" condition is  to 
  340. CLOSE THE CURRENT LIBRARY with the -C operation.   (If you are all done, -X 
  341. does this too.)  You can now remove and replace disks as desired.
  342.  
  343.      To continue (when there is no CON: redirection), try operation
  344.  
  345.                -U filespec ...          
  346.  
  347. to  "log"  into  the new u/ and d:  defaults  specified  in  the  following 
  348. filespec(s).   The  filespecs  should have only the u/ and  d:  fields,  as 
  349. needed.   IF CONDITIONS ARE SAFE for -U, LU will close any current library, 
  350. reset  the disk system,  and change the default parameters.   You  can  now 
  351. (re)-open the library to use next. 
  352. ::LUTIPS          STAYING OUT OF TROUBLE: ERROR RECOVERY
  353.                   ======================================
  354.  
  355.      When  you are building,  modifying,  and  re-organizing  libraries,  a 
  356. n
  357. umber of problems can "spoil" an entire library's worth of work.   Tips on 
  358. protecting your investment in library-stored material have been compiled in 
  359. the file LUTIPS.HLP.  The file can be reviewed, once located, using command
  360.  
  361.                a>HELP LUTIPS
  362. ::LBR                   HOW LIBRARIES ARE ORGANIZED
  363.                         ===========================
  364.  
  365.      .LBR files are organized in a special format that is only intelligible 
  366. to  special-purpose  utilities  such  as  LU,  LDIR,  and  LRUN.   So  that 
  367. specialists  can incorporate .LBR access into other utilities,  the  format 
  368. rules  have been compiled in the file LBR.HLP.   If you have access to this 
  369. file, you can review it with the command
  370.  
  371.                          a>HELP LBR
  372. :
  373. :
  374. :
  375. :    LU.HLP #3.00 was first created on 83-10-30 by Dennis E. Hamilton.
  376.