Author Credits and Introduction to LU
Why Use Libraries?
Why Not Use Libraries?
How to Use the Library Utility LU
Summary of Operators
LU Command Line Forms
Advanced Features of LU
CAUTIONS
LRUNZ Command
LDIRZ Command
LRUNZ as an Extended Command Processor Under ZCPR2
:Author Credits and Introduction to LU

     Thi≤  documen⌠ applie≤ t∩ versioε 1.1░ oµ LU.COM«á  I⌠á als∩ ì
applie≤á t∩ Versioε 1.░ oµ LDIR┌ b∙ RicharΣ Conε anΣ Versioεá 1.░ ì
oµá LRUN┌á b∙ RicharΣ Conε (whicΦ wa≤ deriveΣ froφ LRU╬á b∙á Gar∙ ì
Novosielski).

Copyright (c) 1982 Gary P. Novosielski
All rights reserved.

     Permissioε  i≤  hereb∙  granteΣ  t∩ cop∙ anΣ distributσ thi≤ ì
documen⌠á  fo≥á  an∙  non-commercia∞  purpose«á An∙ usσá oµá thi≤ ì
materia∞á  fo≥á  commercia∞á  advantagσ  withou⌠á  prio≥á writteε ì
consen⌠ oµ thσ autho≥ i≤ prohibited.

     ╔á havσá modifieΣ thσ origina∞ documen⌠ fo≥ inclusioεá iεá ß ì
HEL╨á filσá anΣ elaborateΣ oε thσ subjec⌠ witΦá documentatioεá oε ì
LRUNZ and LDIRZ.


                          INTRODUCTION

     Librar∙  Utilit∙  (LU⌐  i≤  ß  prograφ t∩ allo≈ combininτ oµ ì
multilplσá  file≤á  int∩  onσ  large≥  file«á  I⌠á require≤á CP/═ ì
versioε  2.░  o≥  highe≥  t∩  run«  L╒  run≤ unde≥ ZCPR2.

     Thi≤á large≥á filσ i≤ divideΣ int∩ tw∩á basiπá part≤á -- thσ ì
director∙á (a⌠á thσá fron⌠á oµ thσ file⌐ anΣá thσá file≤á oµá thσ ì
library«  Thσ director∙ informatioε i≤ storeΣ iε thσ samσ filσ a≤ ì
thσá  data¼á  o≥á  membe≥  files«á  Thσ  amoun⌠  oµ  spacσ t∩á bσ ì
allocateΣ  t∩  thσ  director∙  mus⌠ bσ specifieΣ b∙ thσ use≥ wheε  ì
ß  ne≈ librar∙ i≤ created¼á bu⌠ caε bσ changeΣ wheε thσ filσá  i≤ ì
reorganized« Thσ sizσ oµ eacΦ director∙ entr∙ i≤ 3▓ bytes¼  whicΦ  ì
mean≤á eacΦá fou≥á director∙ entrie≤ takσ u≡ onσ secto≥á  oµá thσ ì
librar∙ file«á Currentl∙ onl∙ 1╢ byte≤ oµ eacΦ entr∙  arσá  used¼  ì
witΦá 1╢á byte≤á beinτá reserveΣ fo≥ usσá witΦá possiblσá  futurσ ì
enhancements«á Thσ director∙ itselµ use≤ onσ entr∙  fo≥á  contro∞  ì
information¼á s∩á thσ numbe≥ oµ director∙ sector≤  needeΣ  fo≥  ß ì
librar∙ oµ φ member≤ i≤ (φ ½ 1⌐ » 4¼ roundeΣ u≡ t∩ thσ nex⌠ wholσ ì
number.

     Thσá  use≥á neeΣ no⌠ bσ concerneΣ witΦá thi≤á discussioεá a≤ ì
director∙á  sizσá  i≤ calculateΣ b∙ thσá program«á Al∞á director∙ ì
size≤á  arσá  inpu⌠ anΣ outpu⌠ iε term≤ oµá entries¼á eacΦá entr∙ ì
beinτ ß potentia∞ membe≥ file« Thσ prograφ adjust≤ director∙ sizσ ì
t∩ aε integra∞ numbe≥ oµ sectors.

     LRUN┌á  i≤á  ß  smal∞ prograφ whicΦ allow≤ runninτ  ßá  .CO═ ì
(objec⌠á code⌐ filσ membe≥ directl∙ froφá an∙á library¼á  withou⌠  ì
havinτá  t∩á  extrac⌠á i⌠á t∩á ßá separatσá disδá file«áá  I⌠á i≤ ì
specificall∙á intendeΣ t∩ bσ useΣ witΦ ß defaul⌠ COMMAND.LB╥ filσ ì
under ZCPR2 and can be used as an Extended Command Processor.

     LDIR┌ i≤ ß prograφ whicΦ allow≤ thσ use≥ t∩ displa∙ ß sorteΣ ì
director∙ oµ thσ file≤ iε ß defaul⌠ COMMAND.LB╥ file«á  Simplσ iε ì
nature¼á LDIR┌á give≤á thσ use≥ thσ abilit∙ t∩ selec⌠á group≤á oµ ì
file≤ viß wilΣ card≤ anΣ displa∙ ß sorteΣ listinτ whicΦá include≤ ì
individual file sizes.

:Why Use Libraries?

     First¼á  ß librar∙ filσ usuall∙ take≤ u≡ les≤ spacσ thaε thσ ì
tota∞á oµá thσ individua∞ membe≥ file≤ whicΦ wen⌠ int∩á it«á  Thσ  ì
reasoεá  fo≥á  thi≤  i≤ tha⌠ CP/═ allocate≤ disδ spacσá iεá fixeΣ  ì
block≤  o≥ groups¼á typicall∙ 2δ byte≤ each« An∙ spacσ afte≥  thσ  ì
las⌠á  secto≥á  oµ  ß filσ u≡ t∩ thσ nex⌠ 2δá blocδá boundr∙á  i≤ ì
wasted«á Thσá samσá file≤á iε ß librar∙ usσ onl∙á thσá numbe≥á oµ ì
sector≤á the∙ actuall∙ need¼á anΣ thougΦ thσ librar∙ itselµá  ma∙  ì
havσá  ß  partiall∙ wasteΣ blocδ a⌠ thσ end¼á anΣ require≤   somσ  ì
spacσ  fo≥  director∙  informatioε  a⌠  thσ beginning¼á  thσ  ne⌠  ì
effec⌠  i≤  usuall∙  ß savinτ oµ tota∞ space«á  Thσ  bes⌠ result≤ ì
arσ seeε wheε man∙ smal∞ file≤ arσ combineΣ int∩ onσ library.

     Second¼  ß librar∙ filσ make≤ mos⌠ efficien⌠ usσ oµ thσ CP/═ ì
disδá directory¼á sincσá i⌠ i≤ treateΣ a≤ onl∙ onσ filσá b∙á CP/═ ì
regardles≤ oµ ho≈ man∙ member≤ i⌠ contains.


     Third¼á  librarie≤á  caεá  aiΣ iε transferrinτá package≤á oµ ì
softwarσ  froφ  onσ systeφ t∩ anothe≥ usinτ XMODEM« Onl∙ onσ filσ  ì
i≤ transferred¼á eliminatinτ thσ neeΣ t∩ ruε thσ XMODE═á  ransfe≥  ì
prograφ severa∞ times¼á thσ chancσ oµ overlookinτ ß needeΣ  file¼ ì
anΣá thσá problem≤ oµ naminτ conflicts¼á (sucΦ a≤ READ.M┼á files⌐ ì
amonτ unrelateΣ packages.



:Why Not Use Libraries?

     Therσá   arσá  somσá  ver∙  gooΣ  reason≤  fo≥á  no⌠á  usinτ ì
libraries«á  Fo≥á onσá thing¼á file≤á withiε ßá librar∙á arσá no⌠ ì
availablσá t∩  mos⌠ "normaló programs«á Iµ ß frequentl∙á accesseΣ ì
filσ i≤ placeΣ  iε  ß library¼á i⌠ wil∞ havσ t∩ bσ extracteΣ froφ ì
thσ librar∙  t∩  it≤  free-standinτ counterpar⌠ beforσ i⌠ caεá bσ ì
useΣá  b∙á  ß  program«á (.CO═ file≤ arσ ß notablσá exceptioεá t∩ ì
this¼á  becausσá  oµá  thσ  availabilit∙  oµ  thσ LRUN┌á command¼ ì
covereΣ later.)

     Librarie≤  caε  actuall∙  wastσ disδ space« Wheε ß disδ filσ  ì
i≤ erased¼á CP/═ return≤ thσ spacσ formerl∙ useΣ b∙ thσ filσá  t∩  ì
thσá  freσ  spacσ poo∞ fo≥ usσ b∙ ne≈ files«á Wheε ß membe≥  filσ  ì
i≤á  deleteΣá  froφá ßá librar∙á however¼á thσá spacσá previousl∙  ì
occupieΣá b∙á thσá filσ i≤ no⌠á useable«á Thσá librar∙á mus⌠á  bσ  ì
reorganizeΣá  t∩ makσ thi≤ spacσ availablσ t∩ CP/M«á  Whilσ  thi≤  ì
i≤  eas∙  t∩  d∩ witΦ thσ L╒ command¼á i⌠ i≤ no⌠ automatic¼á  anΣ  ì
iµ thσ situatioε i≤ ignored¼á largσ area≤ oµ disδ caε bσ tieΣá u≡ ì
a≤ unproductivσ "deaΣ space".
:How to Use the Library Utility LU

     L╒á ha≤ tw∩ basiπ method≤á oµá operation║á interactive¼á anΣ ì
paramete≥  driven«á Usσ oµ thσ interactivσ methoΣ i≤ probabl∙ thσ  ì
bes⌠á wa∙ t∩ ge⌠ t∩ kno≈ thσ program¼á becausσ thσ effec⌠ oµ eacΦ ì
actioε caε bσ immediatle∙ seen.

     T∩  star⌠ aε interactivσ librar∙ maintenancσá session¼á jus⌠ ì
typσá  L╒á  oεá  thσ  commanΣ linσ witΦ n∩ parameter≤á afte≥á it«  ì
Afte≥á  yo⌡á  arσ  familia≥  witΦ thσ program¼á yo⌡á caεá specif∙ ì
multiplσá paramter≤á oε thσ commanΣ linσ anΣ L╒á wil∞á worδá witΦ ì
littlσá  o≥á n∩ intervention«á Inpu⌠ froφ disδ files¼á ├á prograφ ì
"pipes"¼á  anΣá  thσá XSU┬ facilit∙ arσ als∩ supporteΣá fo≥á morσ ì
advanceΣ applications.


     Al∞á  thσá  method≤  makσ  usσ oµá simila≥á syntax«á CommanΣ ì
inpu⌠á  take≤ tw∩ forms║á operator≤ (sometime≤á calleΣá tags¼á o≥ ì
options⌐ anΣ operands.

     Aεá  operato≥á  i≤á  defineΣ  a≤  an∙ tw∩á characte≥á strinτ ì
wherσ  thσ  firs⌠  characte≥ i≤ ß minu≤ sign«á Operator≤ tel∞ thσ  ì
prograφ wha⌠ t∩ do« ValiΣ operator≤ arσ -a¼ -d¼ -e¼ -l¼ -o¼ anΣ -ì
r«á Anythinτ elsσ witΦ ß simila≥ forφ i≤ aε operato≥ too¼á bu⌠ aε ì
invaliΣ one.

     Operand≤  arσ  everythinτ  else« Normally¼ operand≤ arσ filσ ì
name≤ whicΦ yo⌡ wan⌠ t∩ adΣ to¼á deletσ from¼á o≥ extrac⌠ froφ  ß  ì
librar∙  file¼á  o≥ arσ name≤ oµ librar∙ file≤ t∩ bσ opened« The∙ ì
ma∙ contaiε thσ character≤ ¬ o≥ ┐á iε whicΦ casσ the∙ arσá calleΣ ì
ambiguou≤ operands« Somσ valiΣ operand≤ are:

 foo.bar       b:test.fil     z         *.*       comm?nd


     T∩  refe≥ t∩ ß filσ nameΣ "-zó thσ operanΣ woulΣ havσ t∩  bσ  ì
entereΣá a≤á "-z.ó witΦ thσ period¼á sincσ otherwisσ i⌠ woulΣá bσ ì
mistakeε a≤ aε invaliΣ operator.

     Wha⌠á  actioεá  i≤ takeε upoε thσ filσá depend≤á upoεá whicΦ ì
operato≥á  mos⌠á  recentl∙  precedeΣ  it«á  Iµ  n∩á operato≥á wa≤ ì
entered¼á  o≥  aε invaliΣ one¼ o≥ onσ tha⌠ take≤ n∩ operands¼ thσ ì
operanΣ wil∞ bσ ignored.

     Wheε runninτ interactively¼á L╒ prompt≤ fo≥ eacΦ operanΣ anΣ  ì
operator¼á  onσ pe≥ inpu⌠ line«á Multiplσ input≤ pe≥ linσ arσ no⌠ ì
alloweΣ usinτ thσ interactivσ method.


     Thσá  promp⌠á  yo⌡á  wil∞  seσ  i≤ thσ namσ oµá thσá curren⌠ ì
operato≥á  followeΣá  b∙  ß  ">ó character¼á fo≥á examplσá "-E>"«  ì
Thi≤á  indicate≤á tha⌠ thσ -σ operato≥ i≤ iε effect¼á anΣá iµá aε ì
operanΣá  i≤á  entereΣ i⌠ wil∞ bσ interpreteΣ a≤ thσá namσá oµá ß ì
membe≥á  filσá  t∩  bσ  ExtracteΣ  froφ  thσá library«á Wheεá thσ ì
prograφá  firs⌠á start≤ up¼á thσ promp⌠ i≤ "-?>ó whicΦá mean≤á n∩ ì
operato≥á  i≤á  currentl∙  iε  effect«á  Iε thi≤ case¼á thσá onl∙ ì
valiΣ inpu⌠ i≤ aε operator« An∙ operanΣ wil∞ bσ ignored.

:Summary of Operators

     The operators available under LU are:

          -A   Add Files to Library
          -D   Delete Files from Library
          -E   Extract Files from Library
          -L   List Library
          -O   Open a Library
          -R   Reorganize a Library

     Thesσáá operator≤á arσá discusseΣá iεá morσá detai∞á iεá thσ ì
following frames.



     -ßá   adΣá  file≤  t∩  library«á  -ß  cause≤ thσá promp⌠á t∩ ì
changσá  t∩  -A╛ whicΦ wil∞ theε accep⌠ a≤ operand≤ thσ name≤á oµ  ì
file≤á  t∩  bσ  addeΣ t∩ thσ opeε library«á (Iµ n∩á librar∙á namσ  ì
ha≤á  beeε  openeΣ  witΦ  thσ  -∩ operator¼á thσ defaul⌠á librar∙  ì
LIBRARY.LB╥á  i≤á  alway≤á  useΣ  instead.⌐á  Ambiguou≤á operand≤  ì
matcΦá  al∞  disδ  file≤ whicΦ qualif∙ accordinτ t∩ norma∞á  CP/═  ì
wild-carΣ  conventions¼á  excep⌠  thosσ  witΦ ß filetypσ oµ .LBR« ì
Explici⌠ drivσ specificatioε oε aε operanΣ cause≤  tha⌠ drivσá t∩ ì
bσ searcheΣ fo≥ thσ file(s⌐ insteaΣ oµ thσ curren⌠ drive.

     -Σá   deletσá file≤ froφ library«á -Σ cause≤ thσá promp⌠á t∩ ì
changσ  t∩  -D╛  whicΦ  accept≤ name≤ oµ file≤ t∩ bσ deleteΣ froφ  ì
thσá  opeεá  library«á  Ambiguou≤  name≤ matcΦ al∞á membe≥á file≤  ì
whicΦá  qualify«á  Drivσ specification≤ oε operand≤ arσá ignored¼   ì
sincσ   thσ  librar∙  member≤  arσ  obviousl∙  oε whicheve≥ drivσ ì
contain≤ thσ opeε library.



     -σá   extrac⌠  file≤  froφ library«á -σ cause≤ thσ promp⌠ t∩ ì
changσ t∩ -E╛ whicΦ accept≤ name≤ oµ librar∙ membe≥ file≤ t∩   bσ   ì
extracteΣá  t∩  norma∞  free-standinτá  CP/═á  files«á  Ambiguou≤  ì
name≤á matcΦ al∞ membe≥ file≤ whicΦ qualify«á Drivσ specificatioε  ì
oεá ßá membe≥á namσ cause≤ thσ outpu⌠ filσ t∩ bσá placeΣá oεá thσ ì
specifieΣá drivσ rathe≥ thaε thσ curren⌠á drive«á  An∙á  existinτ  ì
filσá  witΦá  thσá samσ namσ wil∞ bσ overwritteε unles≤á  i⌠á  i≤ ì
protecteΣ b∙ virtuσ oµ it≤ Read/Onl∙ flaτ bi⌠ beinτ set.


     -∞   lis⌠  curren⌠ librar∙ map«á -∞ cause≤ thσ director∙á oµ  ì
thσá  curren⌠  librar∙  t∩  bσ listeΣ oε thσ console«á Thσ membe≥  ì
name≤á  arσ  displayed¼á  alonτ  witΦ  thei≥ index¼á o≥á startinτ  ì
positioεá  withiεá  thσ  library¼á  anΣ thei≥á sizσá iεá sectors«  ì
Also¼á informatioεá i≤ displayeΣ abou⌠ thσ numbe≥ oµ sector≤á  iε  ì
thσ  library¼  anΣ  ho≈  mucΦ space¼ i≤ useΣ o≥ unuseΣ  (wasted)«  ì
Informatioεá  i≤á  als∩ displayeΣ abou⌠ thσ numbe≥ oµ entrie≤á iε ì
thσ directory¼á anΣ ho≈ man∙ arσ active¼á deleted¼á  o≥  freσ fo≥ ì
use«á Thi≤ help≤ determinσ whethe≥ thσ librar∙  need≤  t∩  bσ re-ì
organizeΣá t∩á freσá unuseΣá spacσá anΣá deleteΣá  entries«á  Thσ  ì
operato≥á  -∞á expect≤á n∩á operands¼áá s∩á afte≥á  thσá lis⌠á i≤ ì
displayed¼á thσá promp⌠ change≤ bacδ t∩ -?╛ fo≥ entr∙ oµá anothe≥ ì
operator.


     -∩   opeε  ß library«á -∩ cause≤ thσ promp⌠ t∩ changσ t∩ -O╛  ì
whicΦ  accept≤  thσ namσ oµ ß librar∙ filσ t∩ bσ openeΣ fo≥á  usσ  ì
witΦ  subsequen⌠  operators« Iµ anothe≥ librar∙ i≤ alread∙  open¼  ì
i⌠á  i≤ closeΣ first«á Iµ thσ ne≈ librar∙ doe≤ no⌠  exist¼á i⌠ i≤ ì
createΣá witΦá aεá empt∙ directory«á Ambiguou≤á name≤á  arσá  no⌠ ì
allowed«á Drivσ specificatioε i≤ allowed« Thσ filσ  typσ  ma∙  bσ ì
specified¼á bu⌠á default≤ t∩ .LB╥ whicΦ i≤ strongl∙ suggesteΣá a≤ ì
thσ filσ typσ fo≥ al∞ librar∙ files.

     Yo⌡á  wil∞á  recal∞ tha⌠ file≤ oµ typσá -ßá (add⌐á operator«  ì
Thi≤á  prevent≤á  librarie≤á  froφ  beinτ accidentall∙á addeΣá t∩ ì
othe≥á  libraries¼á  o≥  t∩ themselves╗á ß situatioεá no⌠á unlikσ ì
tryinτá  t∩á  drivσ  ß  trucδ u≡ it≤ owε tailpipe«á Iµá fo≥á somσ ì
reasoε  yo⌡ wan⌠ t∩ adΣ onσ librar∙ t∩ another¼á bσ m∙ guest¼ bu⌠  ì
yo⌡á  wil∞á  havσá  t∩á  specif∙á  thσá  namσá  withou⌠á ¬á o≥á ┐ ì
character≤ wheε addinτ it.


     -≥á   reorganizσá  library«á  -≥ cause≤ thσá currentl∙á opeε ì
librar∙  t∩  bσ  reorganized« First¼ thσ director∙ i≤ sorteΣ int∩  ì
alphabetica∞  order¼  anΣ  theε al∞ activσ member≤ arσ copieΣ  t∩  ì
ßá  worδá  librar∙á  whicΦ i≤ openeΣ oε thσá curren⌠á drive¼á no⌠ ì
necessaril∙ thσ drivσ containinτ thσ olΣ library«  Thσ  use≥  ma∙ ì
specif∙á ß differen⌠ numbe≥ oµ entrie≤ fo≥ thσ worδ  librar∙á  iµ  ì
i⌠á i≤á necessar∙á t∩á expanΣá o≥á compres≤á thσá directory«á Thσ ì
director∙á wil∞á alway≤ bσ madσ largσ enougΦ t∩ contaiεá al∞á thσ ì
activσá member≤á oµ thσ olΣ library¼á s∩ ß sizσ oµá  ▒á  ma∙á  bσ  ì
specifieΣá  t∩á makσá thσ director∙ a≤ smal∞á a≤á possible«á (Seσ ì
Specifyinτ Director∙ Size≤ below.)

     Wheεá  reorganizatioεá  i≤  complete¼á  thσ olΣá librar∙á i≤ ì
deleteΣ  anΣ  thσ worδ librar∙ i≤ renameΣ t∩ thσ namσ oµ thσá olΣ   ì
library«áá   N∩áá  backu≡á  cop∙á  i≤á  retained«áá  Thσáá  newl∙ ì
reorganizeΣá  librar∙á  remain≤á  opeε  fo≥ usσá witΦá subsequen⌠ ì
operations.


     Wheneve≥á thσ prograφ i≤ promptinτ fo≥ aεá operand¼á anothe≥ ì
operato≥á  ma∙á bσá entereΣ insteaΣ t∩ changσ thσ statu≤á oµá thσ ì
prompt«á T∩ enΣ aε interactivσ session¼ ente≥ ß blanδ linσ a⌠ thσ ì
prompt.


                    SPECIFYING DIRECTORY SIZE

     Wheneve≥  aε  olΣ librar∙ i≤ opened¼á thσ director∙ sizσá i≤ ì
displayeΣ a≤ follows:

 Old library LIBRARY.LBR has 32 entries, 5 free.

     Thi≤á  mean≤á tha⌠á ╡ morσ member≤ ma∙ bσ addeΣá beforσá thσ ì
director∙á  become≤  full«á  Wheε  thσ  director∙á  i≤á full¼á -ß ì
become≤á  aεá  invaliΣ  operator¼á  anΣ  thσ  librar∙á  mus⌠á  bσ ì
reorganizeΣ t∩ adΣ an∙ morσ members.

     Wheεá  ß librar∙ i≤ createΣ fo≥ thσ firs⌠ time¼á thσ use≥ i≤ ì
prompteΣ likσ this:

 New library COMMAND.LBR. Allow how many entries?_


     An∙ numbe≥ froφ ▒ t∩ 6553╡ i≤ valid«á Thσ actua∞ maximuφá i≤  ì
determineΣá b∙ thσ amoun⌠ oµ freσ memor∙ availablσ oε thσá systeφ ì
iεá use«á Director∙á sizσá wil∞ bσ roundeΣ u≡ t∩ thσá nex⌠á wholσ  ì
secto≥  necessar∙  t∩  contaiε  thσ numbe≥ oµ entrie≤á requested«  ì
Thi≤á  numbe≥á  wil∞á  remaiε  iε  effec⌠ unti∞á thσá librar∙á i≤ ì
reorganized« Sincσ thσ director∙ itselµ count≤ a≤ aε  entry¼  onσ ì
entr∙á i≤á addeΣá t∩á whateve≥ i≤ entereΣ beforσá thσá  sizσá  i≤  ì
calculated«á  Thereforσá jus⌠ ente≥ thσ maximuφ numbe≥ oµá membe≥ ì
file≤ yo⌡ wan⌠ thσ librar∙ t∩ bσ capablσ oµ holding.

     Thσá  maximuφ numbe≥ oµ membe≥ file≤ i≤ als∩ constraineΣá b∙  ì
thσá  amoun⌠á  oµá  availablσá  disδá space«á Iµá durinτá aεá adΣ ì
operatioε  thσ disδ spacσ run≤ out¼á thσ namσ i≤ no⌠ addeΣ t∩ thσ  ì
directory«  Iµ ß multiplσ adΣ i≤ iε progress¼ duσ t∩ aε ambiguou≤  ì
operand¼á thσá remaininτá qualifyinτ file≤ arσá stil∞á addeΣá  iµ ì
possible« Iµ an∙ oµ theφ i≤ smal∞ enougΦ t∩ fi⌠ iε thσ  remaininτ  ì
disδá space¼á i⌠ wil∞ bσ added«á Iµ an∙ sector≤ werσ  writteε  b∙  ì
aεá  adΣá attempt¼á anΣ theε neve≥á utilized¼á the∙á  remaiεá  a≤  ì
unuseΣ  sectors¼ anΣ thσ librar∙ shoulΣ bσ reorganized.
:LU Command Line Forms

     Al∞á oµ thσ informatioε needeΣ fo≥ ß maintenancσ ruε ma∙á bσ ì
specifieΣá oεá thσ commanΣ line«á Thσ operator≤ anΣ operand≤á arσ  ì
entered¼á separateΣá b∙ spaces¼á afte≥ thσ L╒á command¼á anΣá thσ ì
operation≤á wil∞ takσ placσ withou⌠ consolσ intervention¼á excep⌠  ì
iεá  thσ  casσ  wherσ  thσ  director∙  sizσ fo≥ ß ne≈ librar∙á i≤ ì
requested« Thσ synta° is:

 LU <opr> [<opd> [<opd> ...]] [<opr> [<opd> ...]...

 where square brackets indicate optional parameters, and:
     <opr> is any operator.
     <opd> is any operand.
     ...   indicates  that the preceding parameter may occur
multiple times.


     An∙á  name≤á  occurrinτ  prio≥  t∩ thσá firs⌠á operator¼á o≥ ì
followinτá  aεá  operato≥  whicΦ doe≤ no⌠á expec⌠á operands¼á arσ ì
ignored.

:Advanced Features of LU

     Inpu⌠á  froφ  BD╙ ├ "pipesó o≥ ordinar∙ sequentia∞ file≤á i≤  ì
als∩á  possible«á Thσ filenamσ i≤ specifieΣ oε thσá commanΣá linσ  ì
precedeΣ  b∙ ß "<ó characte≥ anΣ n∩ interveninτ blank«  Example:

 LU <CONSOL.DUP
     read≤ thσ content≤ oµ thσ filσ CONSOL.DU╨ anΣ use≤ eacΦ linσ  ì
oµá  thσá  filσ  a≤  iµ  i⌠ haΣ beeε typeΣ a⌠ thσ norma∞á consolσ   ì
b∙  thσ  interactivσ  method«á  Iε  thi≤  case¼  n∩ operator≤  o≥  ì
operand≤áá  ma∙á  bσá present«áá Consolσá outpu⌠á ma∙á als∩áá  bσ  ì
redirecteΣ  b∙  specifyinτ  aε  outpu⌠ filσ oε thσ commanΣá  linσ  ì
afte≥á  thσ  characte≥  ">"«á  Thi≤  applie≤ t∩ paramete≥  driveε ì
a≤ wel∞ a≤ interactivσ (includinτ "piped"⌐ input« Examples:

 LU -O SPECIAL -A ZOT.COM >LOGFILE.OUT
     woulΣ  adΣ  thσ filσ zot.coφ t∩ thσ librar∙ special.lb≥á anΣ  ì
writσá  thσá consolσ outpu⌠ t∩ ß filσá calleΣá logfile.out«á  thσ  ì
locatioεá oµá thσá outpu⌠ namσ oε thσ linσ doe≤á no⌠á matte≥á anΣ  ì
excep⌠á  fo≥ turninτ oε redirecteΣ output¼á i⌠ i≤ ignoreΣ b∙á al∞ ì
operators.

 LU <BATCH.IN >B:RECORD.DOC
     woulΣá  takσ interactivσ command≤ froφ thσ filσ batch.iε anΣ  ì
writσ  consolσ  outpu⌠  t∩  ß filσ calleΣ record.doπ oε drivσ B.

     Normally¼  consolσ  filσ  outpu⌠  i≤ als∩ echoeΣ oε thσ rea∞  ì
console¼á  excep⌠  wheε inpu⌠ i≤ als∩ redirected¼ a≤ iε thσ  las⌠ ì
example« T∩ forcσ visiblσ consolσ outpu⌠ wheε botΦ aε  inpu⌠  anΣ  ì
outpu⌠á  filσá  arσ  used¼á  thσ  ">óá characte≥á precedinτá  thσ  ì
outpu⌠  filσ  namσ  ma∙  bσ changeΣ t∩ ß "+ó instead:

LU +RECORD.DOC <BATCH.IN
     woulΣá  havσá  thσá  samσ  effec⌠ a≤ thσá previou≤á example¼ ì
excep⌠á  tha⌠á  messagσ  outpu⌠  woulΣ  als∩ bσá visiblσá oεá thσ ì
console.

:CAUTIONS

    Thσá  importancσá  oµá  keepinτ  backu≡  copie≤ oµá al∞á disδ ì
files¼á  anΣ  especiall∙ libraries¼ canno⌠ bσ overemphasized«  B∙  ì
usinτ  librar∙ files¼ thσ use≥ i≤ exposeΣ t∩ thσ dreadeΣ all-the-ì
eggs-in-one-baske⌠  syndrome«á  Tha⌠ is¼ iµ somethinτ happen≤  t∩ ì
thσ librar∙ file¼á particularl∙ thσ directory¼ i⌠ ma∙  bσ  beyonΣ  ì
thσá  capabilitie≤  oµ eveε ß CP/═ wizarΣ t∩ restorσá thσá membe≥ ì
files« Thσ situatioε i≤ madσ particularl∙ stick∙ b∙ thσ fac⌠ tha⌠ ì
thσá thσ director∙ mus⌠ bσ updateΣ iε placσ a≤ member≤ arσá addeΣ ì
o≥ deleted.

     Precaution≤  havσ beeε takeε t∩ minimizσ thi≤ risk«á Fo≥ onσ  ì
thing¼á  thσá  director∙  i≤  reaΣ  int∩  memor∙ wheε thσ librar∙  ì
i≤  firs⌠  opened¼  anΣ  i≤ onl∙ writteε bacδ iµ i⌠ differ≤  froφ  ì
thσ  cop∙  oε  thσ  disδ  wheε thσ librar∙ i≤ closed«  Operation≤  ì
whicΦ  changσ  thσ director∙ are║á adds¼ deletes¼  anΣ  thσ  sor⌠  ì
operatioεá  whicΦ  i≤  donσ  beforσ reorganization«á   Iµá   onl∙   ì
extract≤á   (o≥á   LRUNZá  prograφá executions⌐á  arσá done¼áá thσ ì
director∙á i≤á neve≥ rewritten¼á anΣ thσ .LB╥ filσ ma∙á bσá writσ ì
protecteΣ iµ desired.

     Fo≥á  anothe≥á  thing¼á  thσ  entirσ  empt∙á  director∙á  i≤ ì
allocateΣá  anΣá  writteε  t∩ disδ wheε ß ne≈á librar∙á i≤á firs⌠ ì
created«á Thi≤á insure≤ tha⌠ therσ wil∞ alway≤ bσ enougΦ spacσ oε ì
disδá fo≥ thσ numbe≥ oµ director∙ entrie≤ requesteΣ a⌠á thσá timσ  ì
oµá  creation«á  Thσá disδ spacσ ma∙ ruε ou⌠ whilσá addinτá file≤ ì
later¼ bu⌠ therσ wil∞ alway≤ bσ enougΦ rooφ oε disδ t∩ updatσ thσ ì
director∙ oncσ i⌠ i≤ successfull∙ created.

     Thσá  fac⌠á tha⌠á onl∙ thσ memor∙ cop∙ oµ thσá director∙á i≤ ì
modifieΣ  unti∞ thσ filσ i≤ closeΣ ma∙ comσ iε ver∙ hand∙ iµá yo⌡  ì
mistakenl∙á  deletσá  ß filσ anΣ recognizσ i⌠á righ⌠á away«á  Fo≥  ì
example¼  supposσ  yo⌡  makσ  thσ mistakσ oµ typinτ *.¬ afte≥ thσ ì
-D╛ prompt.


     Briefly¼á  you≥  hear⌠ sinks¼á a≤ thσ "Deleting:ó messagσ i≤  ì
displayeΣá  anΣ  al∞  thσ membe≥ name≤ zi≡ int∩ oblivion«á  Don'⌠  ì
panic«á Onl∙ thσ memor∙ cop∙ oµ thσ director∙ ha≤ beeεá modified«  ì
Wheεá  thσá  -D╛ promp⌠ returns¼á d∩ no⌠á hi⌠á RETURN«á  Instead¼  ì
abor⌠á thσ prograφ witΦ Control-C«á Thi≤ wil∞ cance∞ thσá prograφ ì
withou⌠á updatinτá thσ directory¼á anΣ thσ origina∞ member≤á wil∞ ì
stil∞ bσ present.

     Herσ  i≤  anothe≥  caution«  Sincσ thσ entirσ director∙ (bu⌠ ì
no⌠á membe≥á sectors⌐á mus⌠ fi⌠ iε memor∙ fo≥á ßá librar∙á t∩á bσ ì
successfull∙ opened¼ i⌠ i≤ possiblσ tha⌠ ß hugσ director∙ createΣ  ì
oεá ß you≥ systeφ wil∞ bσ to∩ largσ t∩ fi⌠ iε memor∙ iµ  reaΣá oε ì
anothe≥á systeφá wil∞ les≤ memory«á Thi≤ shoulΣ no⌠ bσ ßá probleφ ì
witΦ ß librar∙ oµ unde≥ ß hundreΣ entries.


     T∩  givσ  yo⌡ aε ideß oµ ho≈ mucΦ elbowrooφ yo⌡ havσ t∩ worδ ì
with¼á L╒ display≤ thσ highes⌠ memor∙ locatioε useΣ eacΦ timσ  i⌠ ì
terminates«á Thi≤á wil∞ var∙ dependinτ oε thσá larges⌠á director∙  ì
useΣ  durinτ  operation«á  I⌠ doe≤ no⌠ includσ thσ stack¼á  whicΦ  ì
grow≤á  dowε  froφ higΦ memory¼á anΣ i≤ alloweΣ abou⌠  ß thousanΣ ì
byte≤ oµ spacσ fo≥ subroutinσ linkage≤ anΣ temporar∙ worδ areas.

:LRUNZ Command

     Thσá  LRUN┌á  commanΣ wa≤ createΣ fo≥ thosσ oµ u≤á wh∩á havσ ì
lot≤á  oµá commanΣ file≤ wσ likσ t∩ kee≡ oε linσá al∞á thσá time«  ì
Wha⌠ usuall∙ happen≤ i≤ tha⌠ somσ nicσ littlσ .CO═ file≤ arσ ver∙  ì
smal∞á  programs¼á bu⌠ havinτ ß lo⌠ oµ theφ oε disδ eat≤ u≡  filσ  ì
spacσá  a⌠  aε  alarminτ ratσ duσ t∩ thσ fixeΣ CP/═ blocδá  size«  ì
Pu⌠á theφ al∞ int∩ ß librar∙ calleΣ COMMAND.LB╥ usinτá  LU«á  Yo⌡ ì
caε theε ruε an∙ .CO═ filσ directl∙ froφ thσ librar∙ b∙ saying:

 LRUNZ <followed by normal command line just like always>

     LRUN┌ i≤ deriveΣ froφ Gary'≤ LRUN«  Stil∞ basicall∙ thσ samσ ì
program¼á LRUN┌á add≤ ZCPR2-specifiπ features¼á iε particula≥ thσ ì
abilit∙ t∩ searcΦ fo≥ thσ LB╥ filσ alonτ thσ Externa∞á Path«á  Iε ì
thi≤á way¼á LRUN┌á caε bσ useΣ a≤ aε ExtendeΣ CommanΣá Processor¼ ì
and¼á wheε invoked¼á wil∞ searcΦ fo≥ COMMAND.LB╥ (o≥ such⌐á alonτ ì
thσá patΦ anΣ extrac⌠ thσ CO═ filσ froφ thσ firs⌠ COMMAND.LB╥á i⌠ ì
finds.

     LRUNZ can be invoked by command line of the following forms:

          LRUNZ // or LRUNZ             <-- Print Help
          LRUNZ -lbrfile cmdline        <-- Run command from lbr
          LRUNZ cmdline                 <-- Run command from
                                             default COMMAND.LBR


     The full syntax of LRUNZ is:

 LRUNZ [-<lbrfile>] <commember> [<parameters>]

Where:

     <lbrfile╛á  i≤á  thσ  librar∙  t∩ bσá searched«á Thσá squarσ ì
bracket≤á  arounΣá  -<lbrfile╛  indicatσ i⌠ i≤á optional«á Thσá - ì
characte≥ tell≤ LRUN┌ tha⌠ wha⌠ follow≤ i≤ ß librar∙ name«á I⌠ i≤ ì
no⌠ aε actua∞ par⌠ oµ thσ name« Don'⌠ leavσ ß spacσ afte≥ thσ  -« ì
Iµá thσá firs⌠ paramete≥ doesn'⌠ begiε witΦá - theεá thσá defaul⌠  ì
librar∙  COMMAND.LB╥  i≤  used«á  Iµ ß drivσ speπ i≤ given¼  sucΦ ì
a≤ B:¼á theε onl∙ tha⌠ drivσ i≤ searcheΣ fo≥ thσ library«  Iµ  n∩  ì
drivσ  speπ i≤ given¼ thσ curren⌠ drivσ i≤ searcheΣ first¼ anΣ iµ ì
n∩á librar∙ oµ tha⌠ namσ i≤ found¼á thσ A║á  drivσ  i≤á  searcheΣ  ì
beforσá givinτ up«á Iµ ß name¼á bu⌠ n∩ typσ i≤ entered¼á .LB╥á i≤ ì
assumed.


     <commember╛á  i≤á  thσ  namσ oµ thσ commanΣ t∩á bσá run«á N∩ ì
drivσ  speπ i≤ useΣ here«á Thσ typσ default≤ t∩ .CO═ anΣ neeΣ no⌠ ì
bσ entered.

     <parameters╛á  i≤á  ßá thσ norma∞ (possibl∙ empty⌐á lis⌠á oµ ì
parameter≤á  whicΦá  thσ  .CO═  filσ  expect≤  t∩á  finΣá oεá thσ ì
commanΣá  linσá  wheε  i⌠  i≤  run«á Thi≤ lis⌠ i≤ parseΣá t∩á thσ ì
requireΣá  filσá  contro∞á  block≤ anΣ commanΣ linσá areßá beforσ ì
executioεá  begins¼á  s∩á  thσ  prograφ  wil∞ no⌠ bσá awarσá tha⌠ ì
anythinτá  cutσá  i≤  goinτ  on«á (Thank≤ t∩ Roε Roεá Fowle≥á fo≥ ì
supplyinτ thσ codσ whicΦ make≤ thi≤ possible.)



                         LRUNZ EXAMPLES

 LRUNZ ED FOO.BAR
     thσá  filσá  ED.CO═ i≤ searcheΣ fo≥ iεá COMMAND.LB╥á oεá thσ ì
curren⌠  drive¼  o≥ thσ A║ drive« Iµ found¼ ED.CO═ i≤ loadeΣ froφ  ì
thσ  library¼  anΣ  FOO.BA╥  i≤  passeΣ  t∩  i⌠  a≤  ß parameter.

 LRUNZ -C:SPECIAL LU -O COMMAND -A A:*.COM
     thσá filσá LU.CO═á i≤ searcheΣ fo≥ iε SPECIAL.LB╥ oεá thσá ├ ì
drive«á  Iµá  found¼á  LU.CO═  i≤  loaded¼á  anΣ thσ string≤á -O¼ ì
COMMAND¼ -A¼ anΣ *.CO═ arσ passeΣ t∩ i⌠ a≤ parameters.

 LRUNZ - -ZIP
     thσá filσá -ZIP.CO═ i≤ searcheΣ fo≥ iεá COMMAND.LB╥á oεá thσ ì
curren⌠ drive¼á o≥ thσ A║ drive« Iµ found¼ -ZIP.CO═ i≤ loadeΣ anΣ  ì
executeΣá  witΦ  ß  blanδ paramete≥ list«á Sincσ -ZIP.CO═á begin≤  ì
witΦ ß -¼á thσ extrß - followeΣ b∙ ß spacσ wa≤ needeΣ t∩ ac⌠ a≤ ß ì
place-holde≥ fo≥ thσ librar∙ name« Comparσ with:


 LRUNZ -ZIP
     thσá  librar∙á  -ZIP.LB╥  i≤ lookeΣ for¼á bu⌠á nothinτá elsσ ì
happens¼ becausσ n∩ commanΣ wa≤ specified.

 LRUNZ
     witΦá  n∩á  parameter≤  a⌠  all¼á  cause≤ ß screeεá oµá hel≡ ì
informatioε t∩ bσ displayeΣ a≤ ß memor∙ refresher.

:LDIRZ Command

     LDIR┌ print≤ ß sorteΣ director∙ oµ thσ defaul⌠ librar∙ file«  ì
Thσá printou⌠á give≤á thσ name≤ oµ thσ selecteΣ file≤á anΣá thei≥ ì
sizes«á  I⌠ i≤ sorteΣ alphabeticall∙ b∙ filσ namσ anΣ type«á  Tw∩ ì
option≤ arσ permitted¼á anΣ the∙ arσ thσ namσ oµ thσ librar∙ filσ ì
(caε bσ specifieΣ b∙ lbrfile¼á iε whicΦ casσ lbrfile.LB╥ wil∞á bσ ì
accessed¼á o≥á b∙á ß ful∞ filename.typ⌐ anΣ thσ filσá speπá (wilΣ ì
card≤ arσ OK)«  Form≤ oµ thσ LDIR┌ commanΣ are:

          LDIRZ //            <-- Print Help
          LDIRZ               <-- All Files
          LDIRZ -lbrfile fn.t <-- Selected Files from Library
          LDIRZ filename.typ  <-- Selected Files

:LRUNZ as an Extended Command Processor Under ZCPR2

     Iµá thσá reade≥ caε recall¼á commanΣ processinτ unde≥á ZCPR▓ ì
follows these steps:

          1.  ZCPR2 receives a command

          2«á  ZCPR▓á parse≤ thσ command¼á determine≤ iµ i⌠ i≤á ß ì
ZCPR2-resident command and executes it if it is

          3«á  Iµá not¼á ZCPR▓ searche≤ alonτ thσá command-searcΦ ì
patΦá fo≥ ß CO═ filσ whicΦ ha≤ thσ samσ namσ a≤ thσá command╗á iµ ì
found, it is loaded and executed

          4«á  Iµ thi≤ fails¼á ZCPR▓ ma∙ eithe≥ searcΦ alonτá thσ ì
command-searcΦá patΦá o≥á g∩á directl∙ t∩ thσ roo⌠á oµá thσá patΦ ì
lookinτá fo≥á aε ExtendeΣ CommanΣá Processor╗á iµá found¼á i⌠á i≤ ì
loaded¼á passeΣá thσ commanΣ linσ a≤ thσ use≥ presenteΣá it¼á anΣ ì
executed; if not, an error message is given


     LRUN┌á i≤á aεá excellen⌠ candidatσ fo≥ aεá ExtendeΣá CommanΣ ì
Processor«á  Iµá thσ commanΣ t∩ bσ executeΣ i≤ TEST.COM¼á anΣá i⌠ ì
take≤á tex⌠á a≤ aε argument¼á theε thσ commanΣá linσá t∩á executσ ì
TEST.COM under ZCPR2 would be:

          TEST text

I⌠á TEST.CO═á i≤ iε COMMAND.LB╥ (o≥ such)¼á thσ commanΣá linσá t∩ ì
execute the same file using LRUNZ would be:

          LRUNZ TEST text

Thi≤á latte≥ commanΣ i≤ simulateΣ b∙ ZCPR▓ wheε i⌠ fail≤ t∩á finΣ ì
thσá CO═á file«á  Thσá namσá oµ thσá ExtendeΣá CommanΣá Processo≥ ì
(recommended⌐á i≤ CMDRUN¼á and¼á b∙ renaminτ LRUN┌ t∩á CMDRU╬á o≥ ì
makinτá ßá cop∙ oµ LRUN┌ a≤ CMDRUN¼á LRUN┌ become≤á thσá ExtendeΣ ì
CommanΣ Processor.


     LDIR┌á fit≤ iε nicel∙ witΦ thi≤ scheme«á  COMMAND.LB╥ caε bσ ì
kep⌠á a⌠ thσ ROO╘ alonτ witΦ LRUN┌ anΣá LDIRZ¼á anΣá LRUNZ¼á wheε ì
executed¼áá wil∞áá g∩á t∩á thσá ROO╘á lookinτá fo≥á anΣáá findinτ ì
COMMAND.LBR¼á a⌠á whicΦ poin⌠ i⌠ extract≤ thσ requireΣ CO═á file«  ì
LDIRZ¼á wheεá executed¼á wil∞á searcΦá alonτá thσá patΦá fo≥á thσ ì
COMMAND.LB╥ file¼ and¼ hopefully¼ finΣ i⌠ a⌠ thσ ROO╘ anΣ extrac⌠ ì
the information (file names) requested by the user.

     BotΦá LRUN┌ anΣ LDIR┌ caε bσ installeΣ b∙ GENIN╙ anΣ bσá se⌠ ì
t∩á looδá fo≥ thσ samσ COMMAND.LB╥ filσ a≤ wel∞ a≤ bσ tolΣá wherσ ì
the path they are to follow is located.


.
