home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
zcpr2
/
z2ug1.wq
/
Z2UG1.WS
Wrap
Text File
|
1985-02-09
|
73KB
|
1,823 lines
.fo Section 4 - Library Utilities Page #
4.0 Library Utilities
4.1 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.
4.2 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.
4.3 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".
4.4 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.
4.5 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.
4.6 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
several 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.
4.7 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.
4.8 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.
4.9 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
4.10 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
èIfá 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.
.fo Section 5 - Menu Page #
5.0 Menu
5.1 Overview of MENU
MEN╒á i≤ thσ ZCPR▓ Menu-OrienteΣ CommanΣá Preprocessor«á I⌠ ì
act≤á a≤á ß front-enΣ t∩ ZCPR2¼á providinτ ßá menu-orienteΣá use≥ ì
interfacσá t∩á ZCPR2«á It≤á functioε caε bσ representeΣá b∙á thσ ì
following diagram:
------ ------ ------ ------
|M | |Z | |B | |P |
User | E | | C | | D | | g |
Menu ---->| N |--->| P |--->| O |--->| m |
Command | U| | R| | S| | s|
| | | 2| | | | |
------ ------ ------ ------
Thσ "Use≥ Men⌡ Commandó i≤ ß singlσ characte≥ tha⌠ thσá use≥ ì
strike≤á whicΦ instruct≤ MEN╒ t∩ perforφ ß function«á Oncσá MEN╒ ì
begin≤á processinτá thi≤ function¼á i⌠ build≤ ß commanΣ linσá fo≥ ì
ZCPR2¼á optionall∙á askinτ thσ use≥ fo≥ furthe≥ inpu⌠ (sucΦ a≤á ß ì
filσá name)¼á anΣ theε passe≤ thσ commanΣ linσ t∩ ZCPR▓á vißá thσ ì
Multiplσ CommanΣ Linσ Buffer«á ZCPR▓ theε run≤ thσ commanΣ line¼ ì
and, when completed, returns to MENU.
Hence¼á iεá ß nutshell¼á MEN╒ build≤ commanΣ line≤ baseΣá oε ì
simplσá inpu⌠ froφ thσ user«á Thσ use≥ neeΣ neve≥ kno≈ wha⌠á thσ ì
actua∞ commanΣ linσ is« Thσ commanΣ linσ itselµ i≤ alway≤ oµ thσ ì
form:
<command> <optional user input>;MENU <menu options>
A≤ aε example¼ ß commanΣ buil⌠ b∙ MEN╒ t∩ ruε XDI╥ witΦ use≥ ì
inpu⌠á fo≥á ßá filσá namσá specification¼á coulΣá looδá likσá thσ ì
following:
XDIR <user input>;MENU
Wheε MEN╒ i≤ executed¼ i⌠ look≤ fo≥ thσ filσ MENU.CP╥ iε thσ ì
curren⌠á directory«á Iµá i⌠ find≤ one¼á i⌠ load≤ i⌠á anΣá begin≤ ì
processing. If it does not find one, it simply exits.
Thσá MENU.CP╥á filσá caεá contaiεá u≡ t∩á 25╡á menu≤á t∩á bσ ì
processeΣá b∙ MENU«á Thσ defaul⌠ conditioε fo≥ MEN╒ i≤ t∩á begiε ì
processinτá a⌠á thσá firs⌠ men⌡á iεá MENU.CPR¼á bu⌠á option≤á arσ ì
availablσá t∩á selec⌠á anothe≥ menu«á Iεá particular¼á thσá Men⌡ ì
Option≤ are:
W - Wait for User to Strike a Key before beginning
nn - Begin Processing at Menu nn
The full MENU command line is structured as follows:
MENU [W][nn]
Option≤á arσá encloseΣá iε [▌ bu⌠ mus⌠ bσá placeΣá iεá thσá orde≥ ì
specified, i.e., W, if present, must be first.
Iµ thσ Wai⌠ Optioε i≤ used¼á i⌠ i≤ alway≤ first« Thσ numbe≥ ì
follow≤ Wai⌠ immediately¼á anΣ therσ arσ n∩ space≤ betweeεá them║
MEN╒ ╫ <-- Wai⌠ anΣ Star⌠ a⌠ Firs⌠ Menu
MENU W4 <-- Wait and Start at 4th Menu
MENU 4 <-- Start at 4th Menu
Thσ use≥ anΣ men⌡ programme≥ neeΣ no⌠ bσ concerneΣ witΦ thi≤ ì
mos⌠ oµ thσ time« Menu≤ shoulΣ bσ se⌠ u≡ t∩ star⌠ witΦ thσ firs⌠ ì
men⌡ b∙ default¼á s∩ tha⌠ onl∙ thσ commanΣ "MENUó i≤ necessar∙ t∩ ì
invokσá thσ desireΣ menu«á Thσ option≤ describeΣ abovσ arσá useΣ ì
primaril∙á b∙ MEN╒ itselµ wheε i⌠ build≤ thσ commanΣ linσ s∩ tha⌠ ì
thσá use≥ wil∞ returε witΦ aε optiona∞ wai⌠ anΣ t∩ thσ men⌡á tha⌠ ì
hσá jus⌠á camσ from«á Hence¼á iµ thσ use≥ wa≤ iε thσá 4tΦá menu¼ ì
selecteΣá thσ ╪ commanΣ (fo≥ XDIR)¼á anΣ thσ Men⌡ Programme≥á haΣ ì
se⌠ u≡ thσ XDI╥ commanΣ t∩ wai⌠ oε returε s∩ thσ use≥ coulΣá takσ ì
hi≤á timσá anΣá looδ a⌠ thσ director∙ display¼á theεá MEN╒á woulΣ ì
appenΣá thσ commanΣ "MEN╒ W4ó t∩ thσ enΣ oµ thσ commanΣá linσá i⌠ ì
builds.
MEN╒á itselµá i≤ ß CO═ file¼á likσ an∙ othe≥á prograφá unde≥ ì
ZCPR2« Unlikσ mos⌠ othe≥ programs¼ however¼ i⌠ generate≤ commanΣ ì
line≤á t∩ bσ executeΣ b∙ ZCPR▓ anΣ append≤ ß MEN╒ commanΣ t∩á thσ ì
enΣ oµ eacΦ oµ thσ commanΣ line≤ i⌠ generate≤ s∩ tha⌠ ZCPR▓á wil∞ ì
return to MENU when finished. In this way a loop is set up:
-->--+->- MENU ->- ZCPR2 ->-+
^ v
| |
+-<- Command Line -<---+
Onl∙á MEN╒á itselµ caε terminatσ thi≤á loop«á Iµá thσá MEN╒ ì
programme≥á wishes¼á hσ caε se⌠ u≡ thσ MENU.CP╥ filσ s∩ tha⌠ thi≤ ì
loo≡á wil∞ neve≥ bσ exited¼á o≥ hσ caε se⌠ u≡ thσ filσá t∩á allo≈ ì
anyonσá t∩ exi⌠ a⌠ an∙ timσ o≥ jus⌠ ß specia∞ persoε wh∩ know≤á ß ì
passworΣá t∩á exi⌠á wheεá hσá wishe≤á to«á Therσá i≤á ßá lo⌠á oµ ì
flexibilit∙á designeΣ int∩ thσ system¼á anΣ i⌠ wil∞ bσá discusseΣ ì
later in the section on programming MENU.CPR files.
Iεá ßá nutshell¼á then¼á ßá MENU.CP╥ filσ caε bσ se⌠á u≡á t∩ ì
executσ an∙ ZCPR▓ commanΣ o≥ sequencσ oµ commands«á Thσ MENU.CP╥ ì
filσ caε als∩ bσ se⌠ u≡ t∩ no⌠ allo≈ thσ use≥ t∩ leavσá MENU¼á t∩ ì
allo≈á hiφ t∩ leavσ MEN╒ a⌠ will¼á o≥ t∩ allo≈ hiφ t∩ leavσá MEN╒ ì
onl∙ iµ hσ know≤ ß password.
Thi≤á HEL╨ filσ i≤ divideΣ int∩ tw∩ basiπ parts«á Thσá inf∩ ì
section≤á oεá "Usinτá MENUó anΣ "Summar∙ oµá MEN╒á Commandsóá arσ ì
designeΣá t∩á bσá reaΣ b∙ ß persoε wantinτ t∩ usσá MEN╒á bu⌠á no⌠ ì
wantinτá t∩á learε ho≈ MEN╒ work≤ o≥ ho≈ t∩á prograφá it«á Thesσ ì
section≤á describσ ho≈ t∩ movσ froφ onσ men⌡ t∩ another¼á ho≈á t∩ ì
issuσá MEN╒á commands¼á anΣ ho≈ t∩ leavσ MEN╒ iµá thσá optioεá i≤ ì
presenteΣ t∩ him.
Thσáá othe≥áá section≤á oµá thi≤á HEL╨á filσá describσáá thσ ì
programminτá aspect≤á oµ MEN╒ anΣ arσ intendeΣ t∩ bσ useΣá a≤á aε ì
onlinσá referencσá fo≥ thσ MEN╒á programmer«á Thσá MEN╒á commanΣ ì
programminτá summar∙á i≤ especiall∙ usefu∞ iε tha⌠ i⌠ provide≤á ß ì
summar∙á oµ thσ command≤ whicΦ thσ MEN╒ programme≥ ma∙á issuσá t∩ ì
MEN╒ withiε ß MENU.CPR.
Using MENU
When you first invoke MENU, one of three things will happen:
1⌐á ┴á MEN╒á wil∞ appea≥ anΣ bσ pageΣ u≡á t∩á fil∞á thσ
screen╗ ß commanΣ promp⌠ wil∞ appea≥ a⌠ thσ bottoφ
oµ thσ menu
2⌐á ┴ MEN╒ wil∞ appea≥ anΣ no⌠ bσ pageΣ u≡ t∩ fil∞á thσ
screen╗ ß commanΣ promp⌠ wil∞ appea≥ a⌠ thσ bottoφ
oµ thσ menu
3⌐á ┴ commanΣ promp⌠ wil∞ appea≥ witΦ n∩ men⌡ (thi≤á i≤
called the Expert Mode)
Iµá a⌠ an∙ timσ you≥ Men⌡ Displa∙ i≤ garbleΣ o≥ yo⌡ wan⌠á t∩ ì
seσ thσ curren⌠ Men⌡ (a≤ sometime≤ happen≤ wheε yo⌡ arσ iε Exper⌠ ì
Mode)¼ jus⌠ strikσ thσ RETUR╬ key« Thσ RETUR╬ ke∙ refreshe≤ you≥ ì
menu at all times.
Thσá promp⌠ whicΦ appear≤ a⌠ thσ bottoφ oµ you≥ Men⌡ displa∙ ì
has the following general form:
Command (<CR>=Menu,^C=ZCPR2,*=1st Menu,<=Prev Menu,>=Next Menu) -
A≤ ╔ mentioneΣ iε thσ introduction¼á therσ caε bσ u≡ t∩á 25╡ ì
menu≤á iε onσ MENU.CP╥ file«á Thσ MEN╒ commanΣ promp⌠ varie≤á t∩ ì
reflec⌠ this« Fo≥ instance¼ iµ onl∙ onσ Men⌡ wa≤ presen⌠ anΣ yo⌡ ì
werσ no⌠ giveε thσ optioε t∩ abor⌠ ou⌠ oµ MEN╒ t∩ ZCPR2¼ theε thσ ì
Men⌡ CommanΣ promp⌠ woulΣ takσ it≤ simples⌠ form¼ lookinτ like:
Command (<CR>=Menu) -
Yo⌡á caεá strikσ thσ RETUR╬ ke∙ a⌠ thi≤ timσ t∩ refresΦá thσ ì
Men⌡á Displa∙ o≥ yo⌡ caε strikσ thσ characte≥ oµ ßá Men⌡á Option« ì
Thesσá arσ you≥ onl∙ choices¼á anΣ strikinτ ß characte≥ whicΦá i≤ ì
no⌠á thσá RETUR╬á ke∙á o≥ ß men⌡ optioε result≤á iεá thσá messagσ ì
"Invalid Command" being displayed.
Iµá thσá MENU.CP╥ programme≥ gavσ yo⌡ thσ optioε t∩ exi⌠á t∩ ì
ZCPR▓ anΣ therσ i≤ onl∙ onσ Men⌡ iε thσ MENU.CP╥ file¼á theε you≥ ì
commanΣ linσ wil∞ looδ likσ this:
Command (<CR>=Menu,^C=ZCPR2) -
Yo⌡á no≈ havσ thσ additiona∞ optioε oµ abortinτ t∩ ZCPR▓á b∙ ì
strikinτ Control-├ (holΣ dowε oε thσ Control¼á o≥ CTRL¼á ke∙á anΣ ì
strikσá thσá lette≥ C)«á Thi≤ wil∞ returε yo⌡ t∩ ZCPR▓ anΣá exi⌠ ì
MENU¼á leavinτ yo⌡ witΦ thσ abilit∙ t∩ issuσ an∙ availablσá ZCPR▓ ì
command.
Onσ brieµ notσ oε optioε letter≤ beforσ goinτ on« Iµ onσ oµ ì
you≥ option≤ i≤ ß lette≥ iε thσ rangσ froφ ┴ t∩ Z¼á theε casσá i≤ ì
no⌠á significant¼á anΣá yo⌡á caε invokσ thσá optioεá A¼á say¼á b∙ ì
striking an upper- or lower-case A.
Iµá therσ i≤ morσ thaε onσ men⌡ iε you≥ MENU.CP╥á file¼á thσ ì
commanΣá linσ option≤ becomσ slightl∙ morσ complex¼á bu⌠ the∙ arσ ì
stil∞ quitσ eas∙ t∩ follow.
Iε thσ followinτ examples¼á ╔ aφ assuminτ tha⌠ thσ optioε t∩ ì
exi⌠ t∩ ZCPR▓ i≤ off¼ s∩ thσ "^C=ZCPR2ó optioε wil∞ NO╘ appear.
Iµ yo⌡ arσ a⌠ thσ firs⌠ men⌡ iε thσ file¼á you≥ commanΣ linσ ì
wil∞ looδ likσ thσ following:
Command (<CR>=Menu,>=Next Menu) -
T∩ advancσ t∩ thσ nex⌠ menu¼á yo⌡ caε strikσ thσ ">ó o≥á thσ ì
".ó character«á Oε mos⌠ keyboards¼á ">ó i≤ thσ shif⌠ oµ thσ "."¼ ì
s∩á MEN╒ allow≤ yo⌡ t∩ movσ easil∙ withou⌠ havinτ t∩ worr∙á abou⌠ ì
shifting the keyboard all the time.
Iµá yo⌡ arσ a⌠ thσ las⌠ men⌡ iε thσ file¼á you≥ commanΣ linσ ì
will look like the following:
Command (<CR>=Menu,*=1st Menu,<=Prev Menu) -
Thi≤ allow≤ yo⌡ t∩ strikσ thσ "*ó characte≥ t∩ jum≡ bacδá t∩ ì
thσá firs⌠á men⌡ iε you≥ MENU.CP╥ file«á Iµ "<ó o≥ ",ó i≤á stucδ ì
("<ó i≤ usuall∙ thσ shif⌠ oµ thσ ",")¼á theε yo⌡ wil∞ bacδ u≡ onσ ì
menu to the previous menu in the file.
Iµá yo⌡á arσ somewherσ iε thσ middlσ oµ thσá MENU.CP╥á file¼ ì
you≥ commanΣ linσ will¼ a≤ onσ woulΣ expect¼ looδ likσ this:
Command (<CR>=Menu,*=1st Menu,<=Prev Menu,>=Next Menu) -
Again¼á "*óá wil∞ g∩ directl∙ t∩ thσ firs⌠ menu¼á "<ó o≥ ",ó ì
wil∞ g∩ t∩ thσ previou≤ menu¼á anΣ ">ó o≥ ".ó wil∞ g∩ t∩ thσ nex⌠ ì
menu. Striking the RETURN key will refresh the menu display.
Onσá las⌠á optioε yo⌡ havσ unde≥ MEN╒ involve≤ acces≤á t∩á ß ì
Systeφ Menu«á Thi≤ men⌡ i≤ specia∞ iε tha⌠ therσ i≤ onl∙ onσ wa∙ ì
to get to it -- via the "$" command.
Thσ Systeφ Men⌡ i≤ intendeΣ t∩ givσ privelegeΣ user≤á acces≤ ì
t∩á specia∞ command≤ tha⌠ thσ res⌠ oµ thσ user≤ can'⌠ run«á Iµ ß ì
Systeφá Men⌡ i≤ available¼á MEN╒ wil∞ responΣ t∩ thσ "$óá commanΣ ì
with the prompt:
Pass?
Yo⌡ arσ giveε onσ chancσ t∩ typσ iε thσ correc⌠ passworΣá t∩ ì
ente≥ thσ Systeφ Menu«á Iµ yo⌡ arσ wrong¼ thσ messagσ "Pas≤ Erró ì
wil∞á appea≥ anΣ yo⌡ wil∞ bσ returneΣ t∩ thσ men⌡ yo⌡ camσá from« ì
Iµ yo⌡ arσ correct¼á yo⌡ wil∞ ente≥ thσ Systeφ Menu« Physically¼ ì
thσá Systeφá Men⌡ i≤ alway≤ thσ las⌠ men⌡ iε thσá file¼á anΣá it≤ ì
command prompt is:
Command (<CR>=Menu,*=1st Menu,<=Prev Menu) -
Iµ yo⌡ arσ a⌠ thσ men⌡ jus⌠ beforσ thσ Systeφ Menu¼á thσ ">ó ì
wil∞á no⌠á functioεá t∩ allo≈ yo⌡ t∩ ente≥á it¼á eveεá th∩á therσ ì
technicall∙ i≤ ß "Nex⌠ Menu"« Thσ ">ó optioε iε thσ commanΣ linσ ì
wil∞á no⌠ appear«á A≤ ╔ stateΣ before¼á thσ onl∙ wa∙ t∩ ente≥á ß ì
System Menu is thru the "$" command.
So¼ iε summary¼ movinτ abou⌠ withiε MEN╒ i≤ quitσ easy« "*ó ì
move≤ yo⌡ t∩ thσ firs⌠ menu¼ "<ó t∩ thσ previou≤ menu¼ ">ó t∩ thσ ì
nex⌠ menu¼ anΣ "$ó t∩ thσ Systeφ Menu.
5.2 Summary of MENU Commands
The full Menu Command Line looks like the following:
Command (<CR>=Menu,^C=ZCPR2,*=1st Menu,<=Prev Menu,>=Last Menu) -
The Menu Commands are:
Command Function
<CR> Refresh Menu Display (RETURN Key)
^C Exit to ZCPR2 (Control-C)
* Jump to the First Menu
< or , Jump to the Previous Menu
> or . Jump to the Next Menu
$ Jump to the System Menu (Password Required)
other Menu Option or Invalid Command; letters are
automatically capitalized, so a=A
5.3 Programming MENU.CPR Files
Thσ MENU.CP╥ filσ i≤ simpl∙ ß tex⌠ filσ whicΦ ma∙ bσ createΣ ì
witΦá an∙ conventiona∞ CP/═á editor¼á includinτá WordStar«á MEN╒ ì
ignore≤á thσ Mos⌠ Significan⌠ Bi⌠ oµ al∞ bytes¼á s∩ editor≤á likσ ì
WordStar¼ whicΦ occasionall∙ se⌠ thi≤ bit¼ caε bσ used.
Al∞á MENU.CP╥á file≤ havσ thσ samσ genera∞á structure«á Thσ ì
firs⌠á linσ i≤ eithe≥ ß globa∞ optioε linσ o≥ thσ beginninτ oµá ß ì
men⌡á display«á Iµá ß globa∞ optioε line¼á i⌠á begin≤á witΦá thσ ì
characte≥á "-"¼á anΣá thi≤ characte≥ i≤ immediatel∙á followeΣá b∙ ì
globa∞á optioε characters«á Thσ globa∞ optioε line¼á theεá look≤ ì
likσ this:
-options
Afte≥ thσ globa∞ optioε line¼á iµ any¼ come≤ thσ firs⌠ menu« ì
Each menu is structured as follows:
#options
<Text of Menu Display>
#
menu commands
The following are two sample Menu File structures:
-options #options
#options <Text>
<Text> #
# commands
commands ##
#options
<Text>
#
commands
##
Therσ arσ onl∙ fivσ optioε characters«á Iε usinτ them¼ casσ ì
is not significant. These option characters are:
Option Function
C Display Command Line to User
D Display Menu to User
P Page Out Menu Display
X Allow User to Exit to CP/M
Thσá ├ optioε display≤ thσ commanΣ linσ buil⌠ b∙ MEN╒ t∩ thσ ì
user«á Thi≤ optioε i≤ primaril∙ intendeΣ fo≥ debugginτ purposes¼ ì
t∩ allo≈ thσ programme≥ t∩ seσ wha⌠ command≤ arσ beinτ built« I⌠ ì
i≤ instructivσ t∩ thσ user¼ however¼ anΣ ma∙ bσ employeΣ fo≥ tha⌠ ì
purpose as well.
è Thσ ─ optioε display≤ thσ men⌡ t∩ thσ user«á Iµ thσ displa∙ ì
functioεá i≤á no⌠á turneΣ on¼á wσ arσ iεá Exper⌠á Mode¼á anΣá thσ ì
command≤á arσá availablσ withou⌠á ßá men⌡á display«á RETURN¼á oµ ì
course, can be used to invoke the display if necessary.
Thσá ╨á optioε page≤ ou⌠ thσ men⌡ displa∙ iµ i⌠ i≤á invoked« ì
Iµá thσ pagσ functioε i≤ engaged¼á theε thσ MEN╒ prograφá output≤ ì
<CRLF╛á combination≤á unti∞á 2┤ line≤ havσ beeεá printeΣá oεá thσ ì
screen« Thi≤ i≤ somewha⌠ morσ attractivσ anΣ eliminate≤ olΣ tex⌠ ì
froφ previou≤ commands¼á allowinτ thσ use≥ t∩ concentratσ oεá hi≤ ì
curren⌠ se⌠ oµ options«á However¼á i⌠ i≤ annoyinτ iµ thσ use≥ i≤ ì
accessinτ thσ system¼á say¼ a⌠ 30░ bauΣ viß ß dia∞ up« I⌠ i≤ fo≥ ì
thi≤á reasoεá tha⌠ ╔ gavσ thσ MEN╒ programme≥ thσ optioε t∩á turε ì
this option off.
Finally¼ thσ ╪ optioε enable≤ thσ facilit∙ whicΦ permit≤ thσ ì
user to type ^C and return to ZCPR2.
Wheε MEN╒ firs⌠ come≤ up¼ al∞ option≤ arσ turneΣ off:
C is OFF -- no command display to user
D is OFF -- no menu display to user
P is OFF -- no menu display paging
X is OFF -- user cannot exit to CP/M
Thσ globa∞ option≤ line¼á which¼á iµ present¼á i≤ thσá firs⌠ ì
linσá oµ thσ file¼á turn≤ oε thesσ option≤ fo≥ thσ coursσ oµá thσ ì
session in general. That is, if a global options line like
-DPx
i≤ useΣ (notσ casσ i≤ insignificant)¼á theε men⌡ display¼ paging¼ ì
anΣá exi⌠ t∩ ZCPR▓ wil∞ bσ availablσ fo≥ al∞ menus«á Thσá globa∞ ì
options line affects all menus.
Thσá globa∞á option≤á line¼á then¼á turn≤ oεá thσá indicateΣ ì
option≤ fo≥ al∞ menu≤ iε general«á However¼ thσ samσ option≤ ma∙ ì
bσ presenteΣ oε thσ firs⌠ linσ oµ eacΦ men⌡ immediatel∙ afte≥ thσ ì
"#óá characte≥ t∩ temporaril∙ complemen⌠ thσ curren⌠á optioεá fo≥ ì
onl∙ tha⌠ menu.
Iµ aε optioε i≤ NO╘ includeΣ iε thσ globa∞ option≤ line¼á i⌠ ì
i≤ turneΣ OF╞ fo≥ al∞ menu≤ iε general« Thσ default≤ selecteΣ b∙ ì
usinτá thσ globa∞ option≤ linσ arσ overriddeε oε ß per-men⌡ basi≤ ì
b∙ thσ loca∞ men⌡ options.
Example:
-dpx
#x
This menu is displayed and paged, but no
exit to ZCPR2 is permitted
#
commands
#dx
This menu is not displayed and the user may not
exit to ZCPR2.
#
commands
#c
Thi≤ men⌡ i≤ displayed¼ paged¼ anΣ thσ use≥ ma∙
exit to ZCPR2. Additionally, the MENU-generated
commands are printed to the user.
#
commands
##
So¼á an∙á optioε tha⌠ ma∙ appea≥ oε thσ globa∞ option≤á linσ ì
ma∙ als∩ appea≥ oε thσ option≤ linσ fo≥ ß particula≥á menu«á Thσ ì
reverse¼á however¼á i≤ no⌠ true«á Thσ men⌡ option≤ linσ support≤ ì
onσá additiona∞á option¼á viz«á "$"«á Thi≤ optioεá declare≤á thσ ì
following menu to be a System Menu.
Iεá programminτ ß MENU.CP╥ file¼á yo⌡ MUS╘ placσ thσá Systeφ ì
Men⌡ a≤ thσ las⌠ men⌡ iε thσ file« T∩ d∩ otherwisσ i≤ flaggeΣ a≤ ì
aε error« Thσ followinτ illustrate≤ ß MENU.CP╥ filσ containinτ ß ì
Systeφ Menu:
-dp
#
Thi≤ men⌡ i≤ displayeΣ anΣ paged¼ bu⌠ thσ use≥ ma∙
not exit to ZCPR2.
#
commands
#$x
This is a System Menu, and it is displayed, paged,
and the user may exit to ZCPR2.
##
Iµá ßá men⌡á i≤á ßá Systeφá Menu¼á thσá "$óá characte≥á mus⌠ ì
immediatel∙ follo≈ thσ "#"« Iε thσ casσ oµ thσ lette≥ option≤ iε ì
botΦá thσá globa∞á anΣ loca∞ cases¼á thσ orde≥ i≤á no⌠á importan⌠ ì
("dpxó mean≤ thσ samσ a≤ "xpd").
GENIN╙ i≤ useΣ t∩ definσ thσ passworΣ useΣ t∩ ente≥ ß Systeφ ì
Menu«á Thi≤ i≤ thσ PrivilegeΣ Use≥ PassworΣ iε thσ GENIN╙á Menu« ì
Notσ tha⌠ thi≤ passworΣ caε bσ upper- anΣ lower-case¼ anΣ casσ i≤ ì
significant.è
Thi≤á informatioε sectioε ha≤ describeΣ thσ structurσ oµ thσ ì
MENU.CP╥ filσ anΣ ho≈ t∩ se⌠ u≡ a≤ man∙ menu≤ a≤á desired«á Wha⌠ ì
ha≤á no⌠á beeε discusseΣ i≤ thσ naturσ oµ thσ command≤á followinτ ì
the menu displays. This is discussed in the next section.
5.4 MENU.CPR Commands
Thσá command≤á iε thσ MENU.CP╥ filσá follo≈á arσá relativel∙ ì
simplσ structure« EacΦ commanΣ occupie≤ onl∙ onσ line¼ anΣ blanδ ì
line≤á iε thσ commanΣ grou≡ arσ no⌠ permitted«á Thσ commanΣ linσ ì
is structured as follows:
l[o][command]["Prompt]
where:
l is the single character used to invoke the command
note that it may be upper- or lower-case
o is an opening option, which is one of:
:nn -- go to Menu nn
! -- have MENU wait when the command is finished
command is an optional ZCPR2 command; note that if
the option is ":nn", then a command here makes no
sense
"Prompt is a command to MENU to print a prompt and wait
for user input to fill out the command line
Thσá ":nnó optioε tell≤ MEN╒ t∩ movσ t∩ ß differen⌠ men⌡á iε ì
the MENU.CPR file. The first menu is number 1. Example:
-dpx
#
1st Menu: A - Goto Menu 2 3 - Goto Menu 3
#
a:2
3:3
#
2nd Menu Command: 3 - Goto Menu 3
#
3:3
#x
3rd Menu Command: 2 - Goto Menu 2
#
2:2
##
Iε thσ firs⌠ menu¼ thσ use≥ ma∙ strike:
"aó o≥ "Aó t∩ got∩ Men⌡ 2
"3ó t∩ got∩ Men⌡ 3
">óá o≥á ".ó t∩ got∩ thσ nex⌠ men⌡ (Men⌡ 2)
^├ t∩ got∩ ZCPR2
In the second menu, the user may strike:
"3" to goto Menu 3
"*" or "<" or "," to goto Menu 1
">" or "." to goto Menu 3
^C to goto ZCPR2
In the third menu, the user may strike:
"2" or "<" or "," to goto Menu 2
"*" to goto Menu 1
Thσá "!óá optioεá place≤á ß "Wó iεá thσá MEN╒á commanΣá linσ ì
(remembe≥á froφ before?)«á Thi≤ cause≤ MEN╒ t∩ pausσ anΣ asδ thσ ì
use≥ t∩ "Strikσ An∙ Keyó beforσ continuing«á Iε thi≤ way¼á iµá ß ì
commanΣá generate≤ informatioε t∩ bσ reaΣ b∙ thσ use≥ beforσ MEN╒ ì
clear≤á hi≤ screen¼á thσ "!ó optioε ma∙ bσ useΣ t∩ givσ thσá use≥ ì
al∞ thσ timσ hσ want≤ t∩ reaΣ thi≤ display.
Thσá "Promp⌠á suffi°á cause≤ MEN╒ t∩ accep⌠ ßá tai∞á t∩á thσ ì
commanΣ linσ i⌠ i≤ buildinτ s∩ tha⌠ thσ use≥ caε inpu⌠á argument≤ ì
for the command. The Prompt is simply text to prompt the user.
Examples:
-dxp
#
A - Run XDIR without Pause or Input
B - Run XDIR and Pause before Returning to MENU
C - Run XDIR, Allow User Input, and Pause before
Returning to MENU
Z - Run Any ZCPR2 Command and Pause before
Returning to MENU
#
z!"Enter Command Line --
axdir
b!xdir
c!xdir "Enter Ambiguous File Name --
##
Notσ thσ Spacσ righ⌠ beforσ thσ "Promp⌠ form« Thi≤ spacσ i≤ ì
significan⌠á t∩á kee≡á thσ commanΣ anΣ use≥á inpu⌠á froφá runninτ ì
together« Wσ wan⌠ thi≤ "ruε togetheró fo≥ thσ ┌ command.
Yo⌡á caεá havσá a≤á man∙ command≤á a≤á thσá printablσá ASCI╔ ì
characte≥á se⌠ (withou⌠ lower-casσ letter≤ anΣ thσá MEN╒á commanΣ ì
characters⌐ wil∞ allow«á You≥ text¼á however¼ fo≥ eacΦ men⌡ mus⌠ ì
bσ ablσ t∩ fi⌠ oε ß screeε witΦ thσ commanΣ promp⌠ a⌠ thσ bottom« ì
Thi≤ typicall∙ mean≤ tha⌠ thσ tex⌠ canno⌠ exceeΣ 2▓ lines.
MEN╒á fit≤ iε nicel∙ t∩ thσ ZCPR▓ Systeφ oµá programs«á Thσ ì
informatioε sectioε oε "MENU'≤ Relationshi≡ t∩ thσ ZCPR▓á Systemó ì
explain≤ ho≈ MEN╒ anΣ thσ othe≥ ZCPR▓ program≤ worδ together.
╔á havσ no⌠ discusseΣ erro≥ message≤ yo⌡ caε encounte≥ unde≥ ì
MEN╒ iε thi≤ informatioε section«á Tha⌠ come≤ late≥ iε thσ Erro≥ ì
Message section.
5.5 MENU Programming Command Summary
EacΦ MEN╒ commanΣ occupie≤ onl∙ onσ line¼ anΣ blanδ line≤ iε ì
thσá commanΣá grou≡á arσ no⌠á permitted«á Thσá commanΣá linσá i≤ ì
structureΣ a≤ follows:
l[o][command]["Prompt]
where:
l is the single character used to invoke the command
note that it may be upper- or lower-case
o is an opening option, which is one of:
:nn -- go to Menu nn
! -- have MENU wait when the command is finished
command is an optional ZCPR2 command; note that if
the option is ":nn", then a command here makes no
sense
"Prompt is a command to MENU to print a prompt and wait
for user input to fill out the command line
The MENU commands are:
Command Function
:nn Goto Menu nn, where the first menu is Menu 1
! Wait after command line is executed before
processing the menu
"Prompt Prompt the user for input and accept it
Thσá followinτ ASCI╔ character≤ ma∙ NO╘ bσ useΣ a≤á command≤ ì
since they are used elsewhere:
<SPACE> # % , . < > * <DEL>
<Any Char Less than Space>
5.6 MENU's Relationship to the ZCPR2 System
MENU¼á likσ mos⌠ oµ thσ ZCPR▓ utilities¼á interact≤ witΦ thσ ì
systeφá a≤á ßá wholσ anΣ canno⌠ bσ useΣ witΦ system≤á othe≥á thaε ì
ZCPR2«á Iε particular¼á MEN╒ require≤ thσ ZCPR▓ Multiplσ CommanΣ ì
Linσ Buffe≥ facilit∙ t∩ bσ availablσ t∩ i⌠ anΣ canno⌠ ruε withou⌠ ì
it«á I⌠á chain≤á t∩á othe≥á command≤ anΣá t∩á itselµá thr⌡á thi≤ ì
facility.
MEN╒ i≤ installeΣ b∙ GENINS« GENIN╙ i≤ useΣ t∩ instal∞ MEN╒ ì
anΣ se⌠ thσ parameter≤ fo≥ wherσ thσ Multiplσ CommanΣ Linσ Buffe≥ ì
i≤ locateΣ anΣ wha⌠ thσ passworΣ fo≥ enterinτ ß Systeφ Men⌡ is.
Also¼á C─ (Changσ Directory⌐ anΣ STARTU╨ (or¼ S╘ fo≥ CD⌐ caε ì
comσ int∩ pla∙ witΦ MENU« Wheε C─ log≤ int∩ t∩ ne≈ directory¼ i⌠ ì
look≤ fo≥ thσ filσ ST.CO═ anΣ execute≤ i⌠ iµ therσ i≤ one« S╘ i≤ ì
simpl∙á STARTU╨á renamed¼á anΣá STARTU╨ wil∞á loaΣá thσá Multiplσ ì
Command Line Buffer with a command line and then terminate.
Froφá thσ poin⌠ oµ vie≈ oµ MENU¼á thσ commanΣ loadeΣá b∙á S╘ ì
coulΣ bσ MENU« Thσ effec⌠ oµ thi≤ i≤ t∩ automaticall∙ ente≥ MEN╒ ì
when the user employs CD to enter a given directory.
Hence¼á b∙á usinτá CD¼á ßá use≥ caε ente≥á ßá director∙á anΣ ì
suddenl∙á finΣ himselµ iε ß men⌡ insteaΣ oµ a⌠ thσ ZCPR▓á commanΣ ì
level«á Thi≤á i≤ gooΣ fo≥ application≤ wherσ ß director∙ i≤á se⌠ ì
asidσá fo≥ ß specifiπ purposσ anΣ onl∙ certaiε operation≤ arσá t∩ ì
bσá performeΣá iεá it¼á sucΦá a≤á cataloginτá disk≤á o≥á handlinτ ì
accounts«á Also¼á witΦ CD'≤ passworΣ facility¼ iµ thi≤ director∙ ì
i≤ ß Systeφ Directory¼á thσ use≥ woulΣ havσ t∩ givσ ß passworΣ t∩ ì
enter it.
No≈á tha⌠ MEN╒ i≤ runninτ fo≥ thσ directory¼á ß MEN╒ commanΣ ì
coulΣ bσ anothe≥ C─ t∩ anothe≥ directory«á O≥ i⌠ coulΣ simpl∙ bσ ì
a DU: form. Example:
#dp
A - Enter ZCPR Directory
B - Enter A0:
#
acd zcpr
ba0:
#
Here¼á iµá ┴ i≤ issued¼á theε C─ wil∞ movσá int∩á ZCPR║á anΣ ì
executσ ST.CO═ iµ therσ i≤ onσ there«á Iµ ┬ i≤ issued¼á thσ use≥ ì
i≤á loggeΣá int∩á A0:«á MEN╒ i≤ thσ nex⌠ commanΣ iεá botΦá case≤ ì
(commanΣá line≤á arσá "C─ ZCPR;MENUóá anΣá "A0:;MENU")¼á s∩á MEN╒ ì
automaticall∙ reinvoke≤ anΣ look≤ fo≥ MENU.CPR«á Iµ i⌠ find≤ it¼ ì
wσ arσ iε anothe≥ MEN╒ system¼ and¼ iµ i⌠ doesn't¼ wσ arσ bacδ t∩ ì
ZCPR2 command level.
Unde≥ thσ ┴ option¼á iµ C─ find≤ ST.COM¼á S╘ wil∞á overwritσ ì
thσ res⌠ oµ thσ commanΣ line¼ thereb∙ throwinτ awa∙ thσ nex⌠ MEN╒ ì
command and giving us something totally different to work with.
Unde≥ thσ ┬ option¼ wσ wil∞ ruε MEN╒ nex⌠ anΣ simpl∙ exi⌠ iµ ì
a MENU.CPR file is not found.
5.7 MENU Error Messages
Iεá orde≥ t∩ makσ MEN╒ a≤ smal∞ a≤ possiblσ (i⌠ i≤ unde≥á 2╦ ì
byte≤á iε size)¼á ╔ havσ reduceΣ thσ erro≥ message≤ t∩ ß minimum« ì
Instead¼á MEN╒á provide≤ ß minimuφ indicatioε tha⌠á somethinτá i≤ ì
wrong and aborts.
Thσ prograφ MCHEC╦ i≤ designeΣ t∩ tel∞ yo⌡ morσ specificall∙ ì
wha⌠ i≤ wrong« MCHEC╦ i≤ ß MENU.CP╥ Synta° Checker¼ anΣ i⌠ look≤ ì
fo≥á al∞á sort≤ oµ erro≥ condition≤ tha⌠ caε occu≥ iε ßá MENU.CP╥ ì
file. MCHECK is discussed in the next information section.
MEN╒ provide≤ thσ followinτ minima∞ erro≥ messages:
Message Meaning
Full Memory is Full
Invalid Option User Command is in Error
Pass Err Invalid Password Given
Str Err MENU.CPR File Structure Error
5.8 MCHECK -- MENU.CPR Syntax Checker
MCHEC╦á shoulΣ catcΦ an∙ error≤ madσ iε ß MENU.CP╥ filσ b∙ ß ì
programmer«á I⌠á i≤ no⌠ guaranteed¼á bu⌠ ha≤ beeεá testeΣá quitσ ì
thoroughly.
MCHECK accepts command lines of the following forms:
MCHECK or MCHECK // <-- Print Internal Help
MCHECK dir:filename <-- Check "filename.CPR"
MCHECK dir:filename.typ <-- Check "filename.typ"
Thσá DIR║á prefi°á ma∙ bσ useΣ witΦ thσ filσ names«á I⌠á i≤ ì
optional« A≤ ß DIR║ prefix¼ thi≤ accept≤ thσ DU║ forφ o≥ ß nameΣ ì
directory.
MCHECK gives you the "standard" opening error messages:
Error in Disk or User Number -- Aborting
DIR: form was not acceptable
Error in Opening File -- Aborting
Problem with file
TPA Overflow -- MENU.CPR File is Too Big -- Aborting
It could be too big for MENU also (Full error of
MENU)
I⌠ theε start≤ processinτ thσ MENU.CP╥ filσ iµ nonσ oµ thesσ ì
error≤á occur«á MCHEC╦ print≤ thσ linσ numbe≥ anΣ erro≥á messagσ ì
fo≥á eacΦ erro≥ encountered«á I⌠ als∩ print≤ comment≤ a≤á i⌠á i≤ ì
running along.
Non-error comments printed by MCHECK include:
** Global Options Detected **
There are global options in the file
** Menu Number nnn
It is beginning the indicated menu
** End of Menu Check **
No Errors Detected -or- nnnnn Errors Detected
Done and Error Count
Fatal Errors which cause MCHECK to stop processing are:
Error -- New Menu Expected, But # NOT Found -- Aborting
Like it says; it gives a line number to help you
find the problem
Error -- Premature EOF Encountered -- Aborting
The file did not end with ##
Non-Fatal Errors for MCHECK (fatal for MENU, tho) are:
Error -- Invalid Option:
Invalid option in global or local option line
Error -- Menu Number Out of Range
A ":nn" option referenced a number out of range
Thσá followinτ i≤ ß samplσ ruε oµ MCHEC╦ oε ß gooΣá MENU.CP╥ ì
file:
B7>mcheck zcpr:menu.cpr
MCHECK Version 1.1
Line Comment/Error Message
---- ---------------------
1 ** Global Options Detected **
2 ** Menu Number 0
17 ** Menu Number 1
28 ** Menu Number 2
39 ** Menu Number 3
48 ** Menu Number 4
57 ** End of Menu Check **
No Errors Detected
.fo Section 6 - File Compare Utilities Page #
6.0 File Compare Utilities
6.1 File Comparison Utilities Under ZCPR2
Tw∩á utilitie≤á arσá provideΣ witΦ ZCPR▓ t∩á comparσá files« ì
Both utilities are simple in form to use. These utilities are:
COMPARE -- Compares two files by reading one, computing its
CRC value, saving its CRC and size, and then
reading the other and seeing if they match
DIFF -- Prints out a difference listing between two files;
different bytes encountered at the same
relative displacements from the beginning of
thσ file≤ arσ printeΣ iε hexadecimal¼
decimal, and ASCII forms
These commands are invoked by the following forms:
COMPARE or COMPARE // <-- Print Help
COMPARE dir:file1.typ,dir:file2.typ M <-- Compare
DIFF or DIFF // <-- Print Help
DIFF dir:file1.typ,dir:file2.typ M <-- Compare
Thσá filσ spec≤ mus⌠ bσ unambiguou≤ o≥ aε erro≥ wil∞ result« ì
Thσ DIR║á prefi° i≤ optional¼á anΣ ma∙ bσ ß nameΣ director∙ o≥á ß ì
DU: form.
Thσ "Mó i≤ optional¼ and¼ iµ present¼ select≤ ß Multiplσ Ruε ì
Modσá iε whicΦ thσ use≥ i≤ alloweΣ t∩ changσ disk≤ a≤ hσ desires¼ ì
ß COMPAR┼ o≥ DIF╞ i≤ done¼á anΣ theε thσ proces≤ continue≤á unti∞ ì
the user aborts it.
6.2 CRC Check Utility Under ZCPR2
Thσá CR├á Checδ Utilit∙ distributeΣ witΦ ZCPR▓ compute≤á CR├ ì
value≤á fo≥á ß lis⌠ oµ files«á I⌠ use≤ thσ samσá CR├á polynomia∞ ì
employeΣ b∙ KeitΦ Peterseε iε hi≤ CRC╦ program¼á and¼á naturally¼ ì
the values come out the same.
Thσá CR├ Checδ Utilit∙ compute≤ thσ CR├ value≤ oµ ß selecteΣ ì
se⌠á oµ file≤ anΣ print≤ ou⌠ thσ filσá names¼á thei≥á sizes¼á anΣ ì
thei≥ CR├ value≤ iε hexadecimal« ┴ lis⌠ oµ ambiguou≤ file≤ name≤ ì
ma∙á bσá provideΣá t∩ CRC¼á anΣ i⌠ als∩ respond≤ t∩ ßá serie≤á oµ ì
options.
The general form of the CRC command is:
CRC dir:afn1,dir:afn2,... ooo...
è Iεá al∞á ambiguou≤á filσá references¼á thσá DIR║á prefi°á i≤ ì
optional«á Thi≤ prefi° ma∙ bσ ß nameΣ director∙ o≥ ßá DU║á form« ì
The options available under CRC are:
C - Comment Output; the user is given an opportunity
to enter comments for each file
D - Disk Output; send output to the disk file CRC.CRC
as well as to the console
I - Inspect and approve file before CRC is computed
P - Printer Output; send output to the printer as
well as to the console
Thesσ option≤ ma∙ bσ combineΣ iε an∙ manne≥ desired«á ┴ CR├ ì
command of the form "CRC" or "CRC //" prints a help message.
6.3 Examples
B7>compare help:lu.hlp,zcpr:lu.hlp
COMPARE Version 1.4
Source File 1 -- A 16: LU .HLP
Source File 2 -- A 11: LU .HLP
** Files are Identical **
B7>compare help.txt,s100.txt
COMPARE Version 1.4
Source Fie 1 -- B 7: HELP .TXT
Source File 2 -- B 7: S100 .TXT
** Files are Different **
B7>compare help:lu.hlp,c0:
COMPARE Version 1.4
Source File 1 -- A 16: LU .HLP
Source File 2 -- C 0: LU .HLP
LU .HLP File Not Found
B7>compare help:du2.hlp,c0:
COMPARE Version 1.4
Source File 1 -- A 16: DU2 .HLP
Source File 2 -- C 0: DU2 .HLP
** Files are Identical **
B7>compare help:du2.hlp,c0: m
COMPARE Version 1.4
Source File 1 -- A 16: DU2 .HLP
Source File 2 -- C 0: DU2 .HLP
Change Disks if Desired and Type ^C or A to Abort or <RETURN>
to Continue -
Source File 1 -- A 16: DU2 .HLP
Source File 2 -- C 0: DU2 .HLP
** Files are Identical **
COMPARE Version 1.4
Source File 1 -- A 16: DU2 .HLP
Source File 2 -- C 0: DU2 .HLP
Change Disks if Desired and Type ^C or A to Abort or <RETURN>
to Continue -
B7>diff help:du2.hlp,c0:
DIFF Version 1.6
Source File 1 -- A 16: DU2 .HLP
Source File 2 -- C 0: DU2 .HLP
NO Differences Noted in Files
B7>save 1 test.bin
B7>zsid test.bin
ZSID VERS 1.4
NEXT PC END
0200 0100 A2FF
#s100
0100 C3 0
0101 70 1
0102 01 2
0103 FF .
#s1f0
01F0 09 0
01F1 3C 0
01F2 3D 0
01F3 32 .
#^C
B7>save 1 test2.bin
B7>compare test.bin,test2.bin
COMPARE Version 1.4
Source File 1 -- B 7: TEST .BIN
Source File 2 -- B 7: TEST2 .BIN
** Files are Different **
B7>diff test.bin,test2.bin
DIFF Version 1.6
Source File 1 -- B 7: TEST .BIN
Source File 2 -- B 7: TEST2 .BIN
Rel Offset B 7: TEST .BIN B 7: TEST2 .BIN
Hex Dec Hex Dec Asc Hex Dec Asc
0000 0 C3 195 C 00 0 .
0001 1 70 112 p 01 1 .
0002 2 01 1 . 02 2 .
00F0 240 09 9 . 00 0 .
00F1 241 3C 60 < 00 0 .
00F2 242 3D 61 = 00 0 .
B7>crc *.* di
CRC Version 2.0
** File Inspection **
COMPARE .HLP -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? Y
CRC .CRC -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? N
HELP .TXT -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? Y
S100 .TXT -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? S
** Inspection Complete **
1 File: COMPARE .HLP -- Size: 4K -- CRC: 9F 8E
2 File: HELP .TXT -- Size: 4K -- CRC: 77 6E
B7>type crc.crc
1 File: COMPARE .HLP -- Size: 4K -- CRC: 9F 8E
2 File: HELP .TXT -- Size: 4K -- CRC: 77 6E
B7>crc *.* icd
CRC Version 2.0
** File Inspection **
COMPARE .HLP -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? Y
CRC .CRC -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? N
HELP .TXT -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? Y
S100 .TXT -- Select (Y/N/S=Skip Rest/Q=Quit/other=Y)? S
** Inspection Complete **
1 File: COMPARE .HLP -- Size: 4K
Comment? Help File for COMPARE and DIFF and CRC
-- CRC: 9F 8E
Comment: Help File for COMPARE and DIFF and CRC
2 File: HELP .TXT -- Size: 4K
Comment? Note on Help Files
-- CRC: 77 6E
Comment: Note on Help Files
B7>type crc.crc
1 File: COMPARE .HLP -- Size: 4K -- CRC: 9F 8E
Comment: Help File for COMPARE and DIFF and CRC
2 File: HELP .TXT -- Size: 4K -- CRC: 77 6E
Comment: Note on Help Files
.fo Section 7 - File Copy Utility Page #
7.0 File Copy Utility
7.1 MCOPY Overview
MCOP┘á i≤ ß filσ cop∙ prograφ designeΣ fo≥ usσ unde≥á ZCPR2« ì
I⌠á support≤á man∙á feature≤ relateΣ specificall∙á t∩á thσá ZCPR▓ ì
System and is very intimately tied into the ZCPR2 System.
Thσá basiπá purposσá oµá MCOP┘ i≤ t∩á cop∙á file≤á froφá onσ ì
director∙ (disk/use≥ area⌐ t∩ anothe≥ unde≥ ZCPR2«á I⌠á support≤ ì
thσáá nameΣá director∙á form≤á oµá ZCPR2¼áá anΣá thσá sourcσá anΣ ì
destinatioεá directorie≤á caεá bσ specifieΣá iεá term≤á o≥á nameΣ ì
directories or DU: forms or both.
MCOP┘á i≤ als∩ intendeΣ t∩ bσ useΣ fo≥ backu≡ purposes«á I⌠ ì
ha≤á thσá abilit∙á t∩ repeatedl∙ cop∙ ß se⌠á oµá file≤á froφá onσ ì
director∙á t∩ another¼á pausinτ betweeε successivσ cop∙ passe≤ t∩ ì
allo≈á thσ use≥ t∩ changσ disks«á ┴ ke∙ t∩ thσ usσ oµá MCOP┘á iε ì
genera∞á i≤ tha⌠ oncσ MCOP┘ ha≤ beguε operations¼á thσ use≥á neeΣ ì
neve≥ concerε himselµ witΦ Warφ Bootinτ thσ systeφ afte≥ changinτ ì
disks; MCOPY is doing that for him.
Iεá copyinτá ßá filσ froφ onσ director∙á t∩á another¼á MCOP┘ ì
performs the following steps:
1« I⌠ log≤ int∩ thσ sourcσ director∙ anΣ scan≤ fo≥ thσ ì
files specified by the user
2«á I⌠ log≤ int∩ thσ destinatioε directory¼ determine≤ ì
iµ ß cop∙ oµ thσ filσ exist≤ oε thσ destinatioε anΣ delete≤ i⌠ iµ ì
it does
3«á MCOP┘ copie≤ thσ filσ iε thσ sourcσ director∙ int∩ ì
the destination directory
4«á MCOP┘á set≤á thσá attribute≤ oµ thσá filσá iεá thσ ì
destinatioεá director∙á t∩á bσ thσ samσ a≤ thosσá iεá thσá sourcσ ì
directory
5«á MCOP┘ optionall∙ verifie≤ botΦ file≤ b∙ mean≤ oµ ß ì
CRC Check
MCOPY is invoked by one of the following forms:
MCOPY // <-- Print Help
MCOP┘ <-- Ente≥ Interactivσ Mode
MCOPY files options <-- Immediately Copy
Thσ "MCOP┘ file≤ optionsó forφ i≤ extremel∙ flexiblσ iεá it≤ ì
capabilities«áá Wheεáá firs⌠á invoked¼áá MCOP┘á ha≤á ßáá defaul⌠ ì
destinatioε director∙ defineΣ (b∙ GENINS)«á Thσ "filesó fielΣ i≤ ì
ßá serie≤á oµá filσá assignmen⌠á specifications¼áá wherσá sucΦá ß ì
specification is of the form:
dir:=dir:filename.typ or dir:filename.typ
Iµá thσá firs⌠ forφ i≤ encountered¼á thσ defaul⌠á destinatioεá i≤ ì
temporaril∙á redefineΣ t∩ bσ thσ director∙ indicateΣ oε thσá lef⌠ ì
oµá thσ "=ó character¼á anΣ al∞ file≤ referenceΣ thereafte≥ unti∞ ì
the next "dir:=dir:filename.typ" form are copied to this default.
To illustrate my point, note the following example:
MCOPY FILE1.*,HELP:FILE2.HLP,TEMP:=TEST.TXT,HI.*
Let'≤ assumσ tha⌠ thσ defaul⌠ defineΣ b∙ GENIN╙ i≤ thσá director∙ ì
nameΣá BACKUP«á Iεá thi≤á case¼á file≤ matchinτ FILE1.¬á iεá thσ ì
curren⌠á director∙ arσ copieΣ t∩ BACKUP¼á thσ filσá FILE2.HL╨á iε ì
director∙á HEL╨á i≤ copieΣ t∩ BACKUP¼á thσ filσ TEST.TX╘á iεá thσ ì
curren⌠ director∙ i≤ copieΣ t∩ TEMP¼á anΣ thσ file≤ matchinτ HI.¬ ì
in the current directory are copied to TEMP.
Oncσá ßá DIR:╜ i≤ encountered¼á thσ defaul⌠á destinatioεá i≤ ì
redefined«á Encounterinτ ß differencσ source¼á however¼ doe≤ no⌠ ì
change what the default source directory is.
7.2 MCOPY Command Line Options
Thσá option≤ portioε oµ thσ "MCOP┘ file≤ optionsó commanΣ i≤ ì
a set of none or more of the following characters:
E -- Test for Existence of File on Destination and
User Approves Copy before Copy is Done
I -- User Approves Each File before Copy Begins
M -- Multiple Copy (Repeat) Facility
Q -- Quiet Operation (No Activity Displays)
V -- Verify Facility
GENIN╙ i≤ useΣ t∩ se⌠ thσ defaul⌠ setting≤ fo≥ eacΦ oµ thesσ ì
option≤ (turninτ theφ oε o≥ off)¼ anΣ thσ optioε character≤ servσ ì
to toggle the settings from the defaults.
Thσá ┼á optioεá (Existencσ Test⌐ look≤á oεá thσá destinatioε ì
director∙á t∩á seσá iµ thσ filσ i⌠ i≤ abou⌠ t∩á cop∙á i≤á alread∙ ì
there« I⌠ theε tell≤ thσ use≥ oµ it≤ finding≤ anΣ ask≤ hiφ iµ hσ ì
want≤ t∩ g∩ aheaΣ witΦ thσ copy«á Thσ use≥ ma∙ elec⌠ t∩ cop∙á o≥ ì
no⌠ cop∙ a≤ hσ desires.
Thσá ╔á optioε (Inspect⌐ display≤ al∞ file≤ whicΦ matcΦá thσ ì
indicateΣ sourcσ file≤ t∩ thσ user¼á allowinτ hiφ t∩ selec⌠ whicΦ ì
file≤á hσá want≤ t∩ copy«á I⌠ theε copie≤á thσá selecteΣá files« ì
MCOP┘á perform≤á thi≤á operatioεá fo≥ eacΦ se⌠ oµá file≤á iεá thσ ì
command line (separated by commas).
Thσá ═á optioε (Multiplσ Copy⌐ pause≤á beforσá startinτá thσ ì
copy¼á allowinτá thσ use≥ t∩ abor⌠ thσ procedurσ o≥ inser⌠ ß disδ ì
int∩ thσ source¼á thσ destination¼á o≥ botΦ anΣ instruc⌠ MCOP┘ t∩ ì
proceed«á Afte≥ copyinτ al∞ oµ thσ indicateΣ files¼á MCOP┘á theε ì
pause≤á again¼á allowinτá thσ use≥ t∩ agaiε changσá disks«á Thi≤ ì
continues until the user aborts the procedure.
Thσá ╤ optioε (Quiet⌐ turn≤ ofµ thσ MCOP┘ activit∙á display« ì
Iε norma∞ operation¼ MCOP┘ i≤ constantl∙ tellinτ thσ use≥ wha⌠ i⌠ ì
i≤á doing«á ╔á fee∞á tha⌠ thi≤ i≤á bette≥á thaεá quietl∙á havinτ ì
problems without the user knowing what is going on.
Thσá ╓á optioε (Verify⌐ i≤ useΣ t∩ checδ thσ copieΣ filσá t∩ ì
insurσ tha⌠ thσ cop∙ i≤ good«á WitΦ thi≤ optioεá engaged¼á MCOP┘ ì
compute≤á ßá CR├ valuσ oµ thσ sourcσ filσ a≤ i⌠ read≤á it«á Wheε ì
MCOP┘ ha≤ completeΣ thσ copy¼ i⌠ read≤ thσ destinatioε filσ back¼ ì
computinτ it≤ CR├ value¼á and¼ wheε complete¼ i⌠ compare≤ thσ tw∩ ì
CR├á values¼á tellinτ thσ use≥ iµ aε erro≥ iε thσá cop∙á occurreΣ ì
(i.e., different CRC values resulted).
7.3 MCOPY Interactive Mode
Iµáá thσá user'≤á commanΣá i≤á simpl∙á "MCOPY"¼áá theεáá thσ ì
Interactivσ Modσ i≤ enabled«á Iε responsσ t∩ thi≤ command¼ MCOP┘ ì
displays the following prompt:
MCOPY Status: EIMQV -- MCOPY Command (? for Help)?
wherσ an∙ oµ thσ character≤ iε "EIMQVó ma∙ bσ omitted« Thσ EIMQ╓ ì
character≤á indicatσá thσá statu≤ oµ thσ variou≤á MCOP┘á options¼ ì
namely:
E indicates that File Existence Test is ON
I indicates that Inspect Mode is ON
M indicates that Multiple Copy is ON
Q indicates that Quiet Mode is ON
V indicates that MCOPY will Verify
Thσ MCOP┘ commanΣ prompteΣ fo≥ i≤ ß singlσá character¼á casσ ì
insignificant«á Yo⌡á caεá togglσá eacΦ onσ oµ thesσá option≤á b∙ ì
simply striking the appropriate letter.
Therσá arσ si° MCOP┘ Command≤ t∩ perforφ variou≤á functions« ì
These commands are:
C - Copy a File or Set of Files
D - Directory Display
F - Compute Amount of Free Space on Disk
L - Log in New Directories
S - Display MCOPY Status
X or ^C - Exit
Thσá ├á commanΣá (Copy⌐á allow≤ yo⌡á t∩á specif∙á ßá se⌠á oµ ì
destinations¼ sources¼ anΣ file≤ a≤ yo⌡ coulΣ a⌠ thσ commanΣ linσ ì
level«ááá EacΦááá se⌠ááá i≤áá separateΣáá b∙ááá comma≤ááá (like¼ ì
"dir:=dir:f1.typ,f2.typ,dir:=dir:f3.typ").
Thσ ─ commanΣ (Directory⌐ display≤ ß sorteΣ director∙ t∩ thσ ì
use≥á oµá thσá defaul⌠ director∙ o≥ onσá oµá hi≤á choice«á NameΣ ì
directorie≤ o≥ thσ DU║ forφ ma∙ bσ useΣ t∩ specif∙ thσ directory« ì
Thσ defaul⌠ director∙ i≤ thσ las⌠ destinatioε director∙ copieΣ t∩ ì
or selected by the L command.
Thσá ╞á commanΣá compute≤ thσ amoun⌠ oµ freσ spacσá lef⌠á oε ì
disk. The user may select the disk or ride with the default.
Thσá ╠ commanΣ allow≤ thσ use≥ t∩ specif∙ ß ne≈á destinatioε ì
or source directory.
Thσáá ╙á commanΣá tell≤á thσá use≥á thσá Statu≤á oµáá MCOPY¼ ì
particularl∙á wha⌠ thσ curren⌠ sourcσ anΣ destinatioε directorie≤ ì
are.
X or ^C exits MCOPY to ZCPR2.
7.4 Sample MCOPY Sessions
B7>mcopy help:=mcopy.hlp
MCOPY Version 2.8
Copy B 7: MCOPY .HLP to A 16:
No Original File MCOPY .HLP on Destination
Reading 7K Writing 7K
Copy Complete, Verify Phase --
Reading 7K
Verify Complete
**** MCOPY Compete ****
1 File Copied 0 Copy Errors
B7>mcopy 1:=*.hlp,*.txt i
MCOPY Version 2.8
Copy B 7: ????????.HLP to B 1:
MCOPY .HLP -- Copy (Y/N/Q=Quit and Skip Rest/<CR>=Y)? Y
No Original File MCOPY .HLP on Destination
Reading 7K Writing 7K
Copy Complete, Verify Phase --
Reading 7K
Verify Complete
Copy B 7: ????????.TXT to B 1:
HELP .TXT -- Copy (Y/N/Q=Quit and Skip Rest/<CR>=Y)? Y
S100 .TXT -- Copy (Y/N/Q=Quit and Skip Rest/<CR>=Y)? N
No Orginal File HELP .TXT on Destination
Reading 1K Writing 1K
Copy Complete, Verify Phase --
Reading 1K
Verify Complete
**** MCOPY Complete ****
2 Files Copied 0 Copy Errors
B7>mcopy
MCOPY Version 2.8
MCOPY Status: V -- MCOPY Command (? for Help)? ?
MCOPY Status: E I M Q V
These Status Characters have the following meanings:
E - File Existence Test Mode is ON
I - File Selection Inspect Mode is ON
M - Muliple Copy Function Mode is ON
Q - Quiet Mode is ON
V - Verify Mode is ON
The Status Characters, as commands, toggle their respective modes.
Other valid MCOPY Commands are:
C - Copy a File or Set of Files
D - Directory Display
F - Compute Amount of Free Space on Disk
L - Log in New User/Disks
S - Display MCOPY Status (Cur and Dest User/Disk)
X or ^C - Exit MCOPY
MCOPY Status: V -- MCOPY Command (? for Help)? d
** Directory Display **
File Spec (<CR>=C 0:*.*)? b1:
DEMO .COM 4K DEMO .MAC 4K DEMO .ZEX 4K GENINS .MAC 44K
HELP .TXT 4K MCOPY .HLP 8K TEMPLATE.MAC 12K
** 80K Occupied by Displayed Files, 4048K Remaining on Disk B **
MCOPY Status: V -- MCOPY Command (? for Help)? c
File Spec (<CR>=Abort)? zcpr:=mcopy.hlp
Copy B 7: MCOPY .HLP to A 11:
No Original File MCOPY .HLP on Destination
Reading 7K Writing 7K
Copy Complete, Verify Phase --
Reading 7K
Verify Complete
**** MCOPY Complete ****
1 File Copied 0 Copy Errors
MCOPY Status: V -- MCOPY Command (? for Help)? f
** Free Space Data **
Disk (<CR>=A)?
1328K Bytes Remaining on Disk A
MCOPY Status: V -- MCOPY Command (? for Help)? f
** Free Space Data **
Disk (<CR>=A)? B
4048K Bytes Remaining on Disk B
MCOPY Status: V -- MCOPY Command (? for Help)? x
** MCOPY Exiting **