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 [ [ ...]] [ [ ...]... where square brackets indicate optional parameters, and: is any operator. 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 "®  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 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 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 [-] [] Where: