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
/
MBUG
/
MBUG028.ARC
/
LU.DOC
< prev
next >
Wrap
Text File
|
1979-12-31
|
28KB
|
517 lines
.foLU.DOC page #
Documentation for LU.COM and LRUN.COM
Thi≤á documen⌠á applie≤á t∩á versioε 2.1░ oµ LU.CO═á anΣá versioεá 2.░á oµ ì
LRUN.COM«
Copyright (c) 1982, 1983 by Gary P. Novosielski
All rights reserved.
Permission is hereby granted to copy and distribute this
document for any non-commercial purpose. Any use of this
material for commercial advantage without prior written
consent of the author is prohibited.
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«
Versioε 2.1░ replace≤ versioε 1.11«á Thσ majo≥ revisioε i≤ thσ additioε ì
oµ thσ -c¼á -⌡ anΣ -° operators¼á anΣ thσ expansioε oµ thσ operanΣ ì
synta°á t∩á includσ use≥ numbe≥ specification¼á anΣ t∩á allo≈á multiplσ ì
commanΣ input≤ oε onσ line« Majo≥ revision≤ arσ markeΣ witΦ ß vertica∞ ba≥ ì
iε thσ lef⌠ margin«
Thσá director∙ informatioε iε aε L╒ stylσ librar∙ i≤ containeΣá 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≤ discussion¼ 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.CO═ i≤ ß smal∞ prograφ whicΦ allow≤ runninτ ß .CO═ (objec⌠ code⌐á filσ ì
membe≥á directl∙á froφá an∙á library¼á withou⌠ havinτ t∩ extrac⌠á i⌠á t∩á ß ì
separatσ disδ file«
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δ boundar∙ 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σ combined into one 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═ transfe≥ 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∙ mos⌠ programs«á (.CO═á file≤á arσá ßá notablσ ì
exceptioεá t∩á this¼á becausσ oµ thσ availabilit∙ oµ thσá LRU╬á 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╒ program¼á 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
L╒ ha≤ tw∩ maiε method≤ oµ operation║á interactive¼ anΣ paramete≥ driven« ì
Iεá paramete≥ driveε mode¼á thσ prograφ take≤ it≤ commanΣ input≤ froφ ì
thσá commanΣ linσ wheε i⌠ i≤ firs⌠ invoked¼á anΣ wheε thσ entirσ linσá ha≤ ì
beeε processed¼ executioε ends«
Iε interactivσ mode¼ thσ prograφ take≤ it≤ commanΣ input≤ froφ onσ o≥ ì
morσá inpu⌠ line≤ froφ thσ standarΣ inpu⌠ devicσ (typicall∙ thσá console)« ì
Wheεá al∞á thσ commanΣ input≤ havσ beeεá processed¼á thσá prograφá read≤ ì
anothe≥ line« Thi≤ proces≤ caε bσ repeateΣ a≤ lonτ a≤ necessary«
Inpu⌠ froφ disδ files¼á ├ prograφ "pipes"¼á anΣ thσ XSU┬ facilit∙ arσ als∩ ì
supporteΣ fo≥ morσ advanceΣ applications«
Interactivσ modσ 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«
All the methods make use of similar syntax:
EacΦ inpu⌠ line¼á regardles≤ oµ it≤ source¼á i≤ scanneΣ lef⌠ t∩á right« ì
Al∞á alphabetiπá character≤á arσá converteΣ t∩ uppe≥á case«á Iµá thσá linσ ì
contain≤ an∙ blank≤ i⌠ i≤ separateΣ int∩ multiplσ individua∞ inpu⌠ strings«
These input strings are divided into two classes:
operators (sometimes called tags, or options) and 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¼á -c¼ -d¼ -e¼ -l¼ -o¼ -r¼ anΣ -u« Anythinτ elsσ witΦ thσ ì
samσ forφ i≤ aε operato≥ too¼ bu⌠ aε invaliΣ one«
Operands are any other input string.
èNormally¼á operanΣá string≤ arσ presumeΣ t∩ bσ thσ name≤ oµ file≤á whicΦ ì
arσ t∩ bσ acteΣ upoε b∙ thσ previou≤ operator¼ fo≥ instance¼ addeΣ t∩ ì
o≥ extracteΣ froφ ß librar∙ file¼ anΣ t∩ havσ thσ followinτ genera∞ form║
[u/][d:][filename][.[ext]]
wherσá ⌡á i≤ aε optiona∞ use≥ areß prefix«á I⌠ i≤ ß decima∞á numbe≥ ì
froφá ░á t∩ 31¼á anΣ iµ present¼á mus⌠ bσ followeΣ b∙ ßá slasΦá (/⌐ ì
character«á Use≥ area≤ greate≥ thaε 1╡ shoulΣ bσ useΣ witΦ care¼á a≤ the∙ ì
canno⌠á bσ accesseΣ b∙ an∙ oµ thσ residen⌠ CC╨ (Consolσ CommanΣá Processor⌐ ì
command≤ of CP/M, such as USER, TYPE or ERA.
Σ i≤ aε optiona∞ drivσ designator« I⌠ i≤ ß singlσ characte≥ iε thσ ì
rangσ oµ ┴ t∩ P¼ anΣ iµ present¼ must be followed by a colon (:).
filenamσ i≤ ß strinτ oµ ░ t∩ ╕ characters¼á followinτ thσ standarΣ ì
CP/═ convention≤ fo≥ filename≤
ex⌠á i≤ ß strinτ oµ ░ t∩ │ characters¼á followinτ thσá standarΣ ì
CP/═ naminτ convention≤ fo≥ filetypσ
extensions.
The period (.) after filename is manditory if ext is
specified, and optional otherwise. The names "xyz" and
"xyz." are equivalent.
Ambiguous operands are those which contain the characters
"*" or "?" in the filename or extension fields. Examples of
valid operands are:
foo.bar
3/b:test.fil
3/test.fil
b:test.*
test.fil
test.
test
z
-z.
comm?nd
0/
b:
5/a:
Notσá iε thσ examplσ "-z.ó thσ period¼á thougΦ no⌠ requireΣ b∙ thσá synta° ì
oµ ß filename¼ i≤ essentia∞ t∩ preven⌠ thσ operanΣ froφ beinτ mistakeε ì
a≤á thσ invaliΣ operato≥ "-z"«á Wha⌠ actioε i≤ takeε upoε thσá operanΣ ì
depend≤ upoε whicΦ operato≥ mos⌠ recentl∙ precedeΣ it«á Iµ n∩ operato≥á wa≤ ì
entered¼á o≥ aε invaliΣ one¼á o≥ onσ tha⌠ expect≤ n∩ operands¼ thσ operanΣ ì
wil∞ dra≈ aε erro≥ message¼ bu⌠ wil∞ otherwisσ bσ ignored«
Wheεá runninτá interactively¼á L╒ prompt≤ fo≥ thσá operator≤á anΣ ì
operands«á Yo⌡ caε typσ a≤ man∙ input≤ a≤ wil∞ fi⌠ oε thσ line¼ separatinτ ì
theφáá witΦá spaces«áá Thσá enΣá oµá aεá inpu⌠á linσá ha≤á n∩áá specia∞ ì
significance« Thσ mos⌠ recen⌠ operato≥ remain≤ iε effect¼ anΣ thσ nex⌠ linσ ì
caε begiε witΦ additional operands for it.
èThe prompt displayed for each input line has this form:
-m u/d:>
where m is the current operator in effect
u is the current user number in effect
d is the current default drive
Fo≥ examplσ thσ promp⌠ migh⌠ bσ "-┼ 0/A:>"« Thi≤ indicate≤ tha⌠ thσ ì
-σá operato≥ i≤ iε stil∞ iε effect╗á iµ aε operanΣ i≤ entereΣ i⌠ wil∞á bσ ì
interpreteΣ a≤ thσ namσ oµ ß membe≥ filσ t∩ bσ ExtracteΣ froφ thσ library« ì
I⌠ als∩ show≤ tha⌠ thσ curren⌠ use≥ numbe≥ i≤ 0¼á anΣ thσ curren⌠ drivσ i≤ ì
A:«á An∙ operand≤ whicΦ arσ entereΣ withou⌠ aε explici⌠ use≥ o≥ drivσ wil∞ ì
usσ thesσ defaults«
Wheε thσ prograφ firs⌠ start≤ up¼á thσ promp⌠ begin≤ witΦ "-?"¼ whicΦ ì
mean≤ n∩ operato≥ i≤ currentl∙ iε effect«
Iε thi≤ case¼á thσ onl∙ valiΣ inpu⌠ i≤ aε operator«á An∙ operanΣ wil∞ ì
bσ rejected«
SUMMARY OF OPERATORS
-ßá adΣá file≤ t∩ library«á -ß cause≤ subsequen⌠ operand≤ t∩á bσ ì
treateΣ a≤ thσ name≤ oµ file≤ t∩ bσ addeΣ t∩ thσ opeε library«á (Iµá n∩ ì
librar∙ i≤ currentl∙ open¼á 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⌠ use≥ o≥ drivσ specificatioε oε aε ì
operanΣá cause≤á tha⌠ areß t∩ bσ searcheΣ fo≥ thσ file(s⌐á insteaΣá oµá thσ ì
defaults«
-Σá deletσá file≤ froφ library«á -Σ cause≤ subsequen⌠ operand≤á t∩á bσ ì
treateΣá a≤á thσ name≤ oµ member≤ t∩ bσ deleteΣ froφ thσá opeεá library« ì
Ambiguou≤á name≤á matcΦá al∞á member≤ ⁿá whicΦá qualify«á Use≥á anΣá drivσ ì
specification≤á oεá operand≤ arσ ignored¼á sincσ thσ librar∙á member≤ ì
arσ obviousl∙ iε whicheve≥ areß contain≤ thσ opeε library«
-π closσ curren⌠ library«á Iµ ß librar∙ ha≤ beeε openeΣ witΦá thσ ì
-∩á operator¼á o≥ iµ thσ defaul⌠ librar∙ LIBRARY.LB╥ ha≤ beeεá openeΣ ì
b∙ somσ othe≥ operator¼á -π cause≤ i⌠ t∩ bσ closed«á Otherwise¼á i⌠ ì
ha≤á n∩ effect«á Normall∙ thi≤ operato≥ neeΣ neve≥ bσ entered¼á sincσá an∙ ì
opeεá librar∙á i≤á automaticall∙ closeΣ a⌠ thσ enΣ oµ thσ sessioεá o≥á wheε ì
anothe≥á onσá i≤á opened«á I⌠ i≤ provideΣ fo≥ situation≤á wherσá i⌠á i≤ ì
desireΣá t∩ changσ disδ volume≤ withou⌠ endinτ thσá L╒á program«á Beforσ ì
removinτá thσá disδ containinτ thσ librar∙ file¼á i⌠ mus⌠ bσá closed« ì
Afte≥ mountinτ ß ne≈ volume¼ thσ -╒ operato≥ (seσ below⌐ shoulΣ bσ used« ì
Thσ -π operator expects no operands.
-σá extrac⌠ file≤ froφ library«á -σ cause≤ subsequen⌠ operand≤á t∩á bσ ì
treateΣá a≤á thσá name≤á oµ librar∙ membe≥ file≤ t∩á bσá extracteΣá t∩ ì
norma∞á free-standinτá CP/═ files«á Ambiguou≤ name≤ matcΦá al∞á membe≥ ì
file≤ whicΦ qualify« Use≥ o≥ drivσ specification≤ oε membe≥ name≤ causσ ì
thσá outpu⌠á file(s⌐ t∩ bσ placeΣ iε thσ specifieΣ areß rathe≥á thaεá thσ ì
default«á An∙á existinτ filσ witΦ thσ samσ namσ wil∞ bσá overwritteε ì
unles≤ i⌠ i≤ protecteΣ b∙ havinτ it≤ Read/Onl∙ attributσ bi⌠ 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∩ ì
thσ nex⌠ inpu⌠ shoulΣ bσ anothe≥ operator«
-∩á opeε ß library«á -∩ cause≤ thσ followinτ operanΣ t∩ bσá treateΣá a≤ ì
thσá namσ oµ ß librar∙ filσ t∩ bσ openeΣ fo≥ usσ witΦ subsequen⌠ operators« ì
Iµ ß 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«á Use≥ anΣ drivσ specificatioε i≤ allowed« Thσ filσ typσ ma∙ ì
bσá specified¼á bu⌠á iµ no⌠ entered¼á default≤ t∩ .LB╥á whicΦá i≤á strongl∙ ì
suggesteΣ a≤ thσ filσ typσ fo≥ al∞ librar∙ files.
Yo⌡á wil∞á recal∞á tha⌠ file≤ oµ typσ .LB╥ arσ ignoreΣá b∙á thσá wildcarΣ ì
matchinτá oµá thσ -ß (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σ defaul⌠ user/drive¼ whicΦ ma∙ o≥ ma∙ no⌠ bσ thσ samσ a≤ thσ olΣ ì
library«á Thσ sizσ oµ thσ director∙ ma∙ bσ changeΣ b∙ specifyinτ ß ì
greate≥á o≥ smalle≥ numbe≥ oµ entrie≤ thaε wa≤ useΣ iε thσá olΣá library« ì
Thσ director∙ wil∞ alway≤ bσ madσ largσ enougΦ t∩ contaiε al∞ thσ activσ ì
member≤ oµ thσ olΣ library¼ s∩ i⌠ i≤ safσ t∩ ente≥ ß sizσ oµ "1ó t∩ makσ ì
thσá director∙á a≤ smal∞ a≤ possible«á (Seσ Specifyinτá Director∙á Size≤ ì
below.⌐
Wheε reorganizatioε i≤ complete¼á thσ olΣ librar∙ i≤ deleteΣ froφ it≤ ì
user/drivσá area¼á anΣ thσ worδ librar∙ iε thσ defaul⌠ areß 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«
-⌡ Usσ ne≈ defaul⌠ area« Thσ -⌡ caε bσ useΣ t∩ changσ thσ defaul⌠ valuσ ì
fo≥á use≥ numbe≥ o≥ drive«á I⌠ cause≤ thσ use≥ prefi° anΣ drivσ speπá oµ ì
thσá followinτá operanΣá t∩á bσ useΣ a≤ thσá ne≈á defaul⌠á area«á Iµá thσ ì
followinτ operanΣ ha≤ n∩ use≥ prefix¼á o≥ n∩ drivσ spec¼ thσ correspondinτ ì
defaul⌠á i≤á no⌠á changed«á (Thσ filenamσ anΣ ex⌠á section≤á oµá thσ ì
operanΣá mus⌠ bσ absent.⌐ Iµ ß changσ i≤ made¼á an∙ opeε librar∙á i≤ ì
firs⌠á closed¼á anΣá thσ disδ systeφ i≤ reset«á Thu≤ featurσá allow≤á newl∙ ì
mounteΣ disδ volume≤ t∩ bσ accesseΣ fo≥ writing╗á CP/═ cause≤ ne≈ volume≤ ì
t∩á bσ ReaΣ Onl∙ unti∞ thσ prograφ perform≤ ß disδ systeφ reset«á Thσá -⌡ ì
operato≥ als∩ affect≤ whicΦ areß wil∞ bσ useΣ fo≥ thσ worδ librar∙á durinτ ì
reorganization« Seσ thσ -≥ operato≥ above« Note║ Iµ directeΣ I/╧ i≤ activσ ì
(Seσ advanceΣ feature≤ below⌐ thσ -⌡ operato≥ i≤ treateΣ a≤ invalid« Duσ ì
t∩á somσá unfortunatσá assumption≤ iε thσá ├á run-timσá package¼á thσ ì
defaul⌠ drivσ canno⌠ bσ changeΣ whilσ thesσ file≤ arσ open¼ anΣ thσ BDO╙ ì
get≤ confuseΣ b∙ thσ disδ rese⌠ unde≥ thesσ conditions.
-° eXi⌠ program« -° cause≤ thσ inpu⌠ linσ iε whicΦ i⌠ i≤ containeΣ t∩ bσ ì
thσá las⌠á linσá scanneΣ b∙ thσ program«á I⌠ doe≤á no⌠á causσá immediatσ ì
prograφá termination¼á anΣ iµ an∙ morσ operator≤ follo≈ i⌠ oε thσ samσ ì
line¼ the∙ wil∞ bσ processeΣ normally« Thσ prograφ terminate≤ onl∙ afte≥ ì
thσ processinτ oµ thσ curren⌠ linσ i≤ complete«á An∙ opeε librar∙ i≤á theε ì
closed¼ anΣ thσ use≥ numbe≥ anΣ defaul⌠ drivσ arσ rese⌠ t∩ thσ value≤ the∙ ì
haΣá wheε thσ prograφ wa≤ originall∙ invoked«á T∩ preservσ compatabilit∙ ì
witΦá earlie≥á versions¼á thσ prograφ wil∞ als∩ bσ terminateΣ b∙á aεá empt∙ ì
inpu⌠ line« è 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∩ you≥ responsσ 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µ thσ disδ spacσ run≤ ou⌠ durinτ aεá add¼á 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∙ ì
ßá faileΣá adΣ attempt¼á anΣ theε neve≥ utilized¼á the∙á remaiεá a≤ ì
unuseΣ sectors¼ anΣ thσ librar∙ shoulΣ bσ reorganized«
PARAMETER DRIVEN METHOD
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.
..«á indicate≤á tha⌠á thσ precedinτ paramete≥ ma∙á occu≥á multiplσ ì
times«
An∙á name≤á occurrinτ prio≥ t∩ thσ firs⌠á operator¼á o≥á followinτá aε ì
operato≥ whicΦ doe≤ no⌠ expec⌠ operands¼ arσ ignored«
ADVANCED FEATURES
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 3/SPECIAL -A B:ZOT.COM >20/C:LOGFILE.OUT
woulΣá adΣá thσ filσ zot.coφ froφ drivσ b¼á curren⌠ use≥ area¼á t∩á thσ ì
librar∙á special.lbr¼á iεá use≥ areß │ oε thσá defaul⌠á drive«á Consolσ ì
outpu⌠á woulΣ bσ writteε t∩ ß filσ calleΣ logfile.ou⌠ iε use≥ areßá 2░á oε ì
drivσá c«á Thσ placemen⌠ 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∩ ß "+ó ì
likσ this║
LU +RECORD.DOC <BATCH.IN
Thi≤á 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σ disk«á Operation≤ ì
whicΦ changσ thσ director∙ are║á adds¼á deletes¼ anΣ thσ sor⌠ operatioε ì
whicΦá i≤á donσá beforσá reorganization«áá Iµá onl∙á extract≤á (o≥á LRU╬ ì
executions⌐ arσ done¼á thσ director∙ i≤ neve≥ rewritten¼á anΣ thσ .LB╥ filσ ì
ma∙ bσ writσ protecteΣ iµ desired«
A≤á anothe≥ precaution¼á thσ entirσ empt∙ directory¼á 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τ membe≥ files¼á 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σ ßá membe≥ ì
filσá anΣá recognizσ i⌠ righ⌠ away«á Fo≥ example¼á supposσ yo⌡ makσá thσ ì
mistakσ oµ typinτ "-d *.*".
Briefly¼ you≥ hear⌠ sinks¼ a≤ thσ "Deleting:ó message≤ arσ 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∙ 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Φ ì
ß library of under a hundred 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¼á anΣ ì
wil∞á bσá slightl∙ highe≥ iµ interactivσ operatioεá wa≤á used¼á sincσá ß ì
consolσá buffe≥ mus⌠ bσ allocated«á 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«
THE LRUN COMMAND
Thσá LRU╬ 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║
LRUN <followed by normal command line just like always>
The full syntax of LRUN is:
LRUN [-<lbrfile>] <commember> [<parameters>]
Where:
<lbrfile╛ i≤ thσ librar∙ t∩ bσ searched« Thσ squarσ bracket≤ arounΣ -ì
<lbrfile╛á indicatσ i⌠ i≤ optional«á Thσ - characte≥ tell≤ LRU╬ 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⌠ areß i≤ searcheΣ first¼á anΣ iµ n∩ ì
librar∙ oµ tha⌠ namσ i≤ found¼á thσ defaul⌠ areß i≤ searcheΣ beforσ givinτ ì
up«á Thσ defaul⌠ areß i≤ se⌠ t∩ 0/A║á iε thσ distributioε objec⌠ code¼á bu⌠ ì
thi≤á caεá bσá easil∙ changeΣ t∩ somethinτ morσá appropriatσá fo≥á you≥ ì
systeφ b∙ changinτ tw∩ equate≤ iε thσ sourcσ prograφ anΣá reassembling« ì
LRU╬á doe≤ no⌠ otherwisσ suppor⌠ use≥ numbers¼á anΣ wil∞ no⌠ recognizσá thσ ì
"u/ó synta° oε it≤ parameters«á 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ε Fowle≥ fo≥ supplyinτ thσ ì
codσ whicΦ make≤ thi≤ possible.⌐
LRUN EXAMPLES
LRUN ED FOO.BAR
thσ filσ ED.CO═ i≤ searcheΣ fo≥ iε COMMAND.LB╥ oε thσ curren⌠ drive¼ o≥ ì
defaul⌠ area«á Iµ found¼ ED.CO═ i≤ loadeΣ froφ thσ library¼ anΣ FOO.BA╥ ì
i≤ passeΣ t∩ i⌠ a≤ ß parameter«
LRUN -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«
LRUN - -ZIP
thσá filσ -ZIP.CO═ i≤ searcheΣ fo≥ iε COMMAND.LB╥ oε thσ curren⌠ drive¼á o≥ ì
defaul⌠ area«á 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║
LRUN -ZIP
thσ librar∙ -ZIP.LB╥ i≤ lookeΣ for¼ bu⌠ nothinτ elsσ happens¼ becausσ n∩ ì
commanΣ wa≤ specified«
LRUN
witΦ n∩ parameter≤ a⌠ all¼á cause≤ ß screeε oµ hel≡ informatioε t∩á bσ ì
displayeΣ a≤ ß memor∙ refresher«
Pleasσ repor⌠ an∙ problem≤ o≥ suggestion≤ fo≥ enhancemen⌠ t∩ mσ ì
viß CompuServσ CP-MI╟ o≥ EMAIL¼á use≥ numbe≥ 70160,120╗á o≥ b∙ phonσ ì
a⌠ (201⌐ 935-4087¼ voice¼ evening≤ (easterε time⌐ o≥ weekends«
Gary P. Novosielski