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
/
ZCPR2
/
LU.HLP
< prev
next >
Wrap
Text File
|
2000-06-30
|
27KB
|
592 lines
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.