home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
zcpr2
/
ndirs.hqp
/
NDIRS.HLP
Wrap
Text File
|
1985-12-11
|
36KB
|
933 lines
Overview of the Named Directory Concept
Creating Named Directory Files with MKDIR
Disk-Based and Memory-Based Named Directories
Loading Named Directory Files with LD
Printing Named Directory Files and Buffers with PWD
Moving About with CD
Poor Little ECHO and CD
System Directories
Sample Sessions
:Overview of the Named Directory Concept
Thσá NameΣá Director∙á Concep⌠á unde≥á ZCPR▓á i≤á ßá logica∞ ì
associatioε oµ ß mnemoniπ namσ witΦ ß directory¼á whicΦ i≤ ß disδ ì
anΣá use≥á area«á WitΦ thi≤ facility¼á thσ use≥ i≤ permitteΣá t∩ ì
refe≥á t∩á an∙ director∙ b∙ ß mnemoniπá name¼á anΣá thi≤á greatl∙ ì
improve≤á thσ use≥ interfacσ ove≥ havinτ t∩ remembe≥ disδ letter≤ ì
and numbers.
Fo≥á instance¼á aεá environmen⌠ caε bσ se⌠ u≡ iεá whicΦá thσ ì
following name assignments are made:
A15: = ROOT A0: = BASE
B0: = BBASE B1: = JEFF
B2: = ROBERT B3: = LINDA
WitΦá thσá nameΣá director∙á facilit∙á enabled¼áá thσá ZCPR▓ ì
utilitie≤ caε refe≥ t∩ thesσ directorie≤ b∙ eithe≥ thσá DU║á forφ ì
(disk and user number) or by the name:
XDIR ROOT: = XDIR A15:
Mos⌠á oµ thσ ZCPR▓ utilitie≤ recognizσ nameΣ directorie≤á iµ ì
thσ facilit∙ i≤ enabled¼á and¼á sincσ thesσ utilitie≤ functioε t∩ ì
providσá interface≤ betweeε thσ directories¼á the∙ creatσ ßá gooΣ ì
workinτ environmen⌠ fo≥ usσ oµ thσ conventiona∞ CP/═ utilitie≤ a≤ ì
well«á Iεá othe≥ words¼á thσ ZCPR▓ utilitie≤ whicΦ caε dea∞ witΦ ì
nameΣá directorie≤ arσ thσ onl∙ utilitie≤ witΦ whicΦá onσá shoulΣ ì
cros≤á director∙á boundarie≤ iε ß ZCPR▓ systeφá anΣá conventiona∞ ì
utilities¼ likσ aε edito≥ o≥ aε assembler¼ shoulΣ bσ useΣ iε onl∙ ì
onσ director∙ anΣ dea∞ witΦ file≤ iε thσ curren⌠ director∙ anΣ oε ì
drive A in the same user number (A$ in the vernacular).
Fo≥ instance¼ t∩ edi⌠ ß filσ iε thσ ZCP╥ director∙ witΦ WorΣ ì
Master¼á cop∙á thσá filσ int∩ ß workinτ director∙ whicΦá ha≤á thσ ì
WM.HL╨á filσ iε A║á iε thσ samσ use≥ areß anΣ edi⌠á there«á Theε ì
copy it back when done:
B1>mcopy b1:=zcpr:file.txt
...
B1>wm file.txt
...
B1>mcopy zcpr:=file.txt
Man∙á commercia∞ programs¼á likσ WorΣ Maste≥ anΣ WorΣá Star¼ ì
arσá alread∙á programmeΣ t∩ looδ oε A║á iµ the∙ d∩ no⌠á finΣá thσ ì
overla∙á the∙ neeΣ iε thσ curren⌠ directory«á WorΣá Master¼á fo≥ ì
instance¼á ha≤ ß WM.HL╨ filσ whicΦ provide≤ onlinσ documentation¼ ì
anΣá b∙ workinτ oε drivσ B║á iε thσ samσ use≥ tha⌠ ß WM.HL╨á filσ ì
exist≤ oε A:¼ iµ ß use≥ ask≤ fo≥ Help¼ WorΣ Maste≥ wil∞ finΣ it.
NameΣ Directories¼á then¼á caε providσ ß morσ human-orienteΣ ì
workinτ environment«á Thσ use≥ neeΣ n∩ longe≥ remembe≥ tha⌠á hi≤ ì
command≤ arσ iε director∙ A15║ -- hσ neeΣ onl∙ remembe≥ tha⌠ ROO╘ ì
contain≤á hi≤ commands¼á HEL╨ contain≤ hi≤ hel≡ files¼á ROBER╘ i≤ ì
hi≤ namσ anΣ tha⌠ i≤ wherσ hσ place≤ thσ file≤ hσ i≤ workinτá on¼ ì
BDS├ i≤ wherσ hi≤ ├ compile≥ is¼ etc.
NameΣá Directorie≤ arσ supporteΣ b∙ thσ ZCPR▓ utilitie≤á anΣ ì
no⌠ b∙ ZCPR▓ itself« Fou≥ utilitie≤ arσ specificall∙ designeΣ t∩ ì
dea∞á witΦ NameΣ Directories¼á anΣ thσ res⌠ oµ thσ utilitie≤á caε ì
acces≤á NameΣá Directorie≤ manipulateΣ b∙ thσ firs⌠ fou≥ anΣá usσ ì
them.
Thσá fou≥á ZCPR▓ utilitie≤ whicΦ dea∞á directl∙á witΦá NameΣ ì
Directories are:
MKDIR -- create a Named Directory
LD -- load a Named Directory into a Named Dir Buffer
PWD -- print Working Directory and optionally all
available Named Directories
CD -- log into a Named Directory
:Creating Named Directory Files with MKDIR
MKDI╥á i≤á useΣ t∩ creatσ NameΣ Director∙ Files¼á whicΦá arσ ì
file≤ oε disδ whicΦ contaiε thσ mnemoniπ name≤ anΣ thσá disk/use≥ ì
area≤ the∙ arσ associateΣ with«á Iε essence¼ MKDI╥ i≤ aε editor« ì
I⌠á provide≤ ß scratcΦ areß iε whicΦ thσ use≥ caε se⌠ u≡ ßá nameΣ ì
directory¼á revie≈ it¼á edi⌠ it¼á anΣ makσ an∙ change≤ hσ wishes« ì
Wheεá satisfied¼á thσ use≥ caε writσ i⌠ ou⌠ t∩ disδ a≤ ß filσá o≥ ì
abort and throw it away.
MKDIR is invoked with one of three forms:
MKDIR // <-- Print Help
MKDIR <-- Interactive Mode
MKDIR dir:filename.typ <-- Read File First
and Interactive Mode
Thσá DIR║á forφá i≤á alloweΣ iε al∞ filσá specification≤á t∩ ì
MKDIR¼ s∩ thσ use≥ caε prefi° ß filσ witΦ ß director∙ namσ o≥ thσ ì
DU║á form«á MKDI╥ wil∞ searcΦ alonτ thσ command-searcΦ patΦá fo≥ ì
the indicated file.
Oncσ thσ use≥ i≤ iε MKDIR¼ hσ i≤ prompteΣ with:
MKDIR Command (? for Help)?
anΣáá hσá ma∙á issuσá thσá followinτá single-characte≥áá command≤ ì
(striking RETURN is not necessary):
C -- Change Directory (Add, Rename, or Delete Entries)
I -- Initialize Directory
P -- Print Directory
R -- Read in a Directory File
S -- Status of MKDIR Environment
W -- Write out a Directory File
X -- Exit
? -- Print Help Message
Iε al∞ case≤ excep⌠ W¼á thσ scratcΦ environmen⌠ withiε MKDI╥ ì
i≤ affected« N∩ file≤ arσ affecteΣ unti∞ thσ use≥ tell≤ MKDI╥ t∩ ì
write the Directory File on disk.
Thσá ├á commanΣá (Changσá Directory⌐ i≤á useΣá t∩á edi⌠á thσ ì
content≤ oµ thσ scratcΦ environmen⌠ withiε MKDIR«á Oncσ invoked¼ ì
the user is prompted with
Directory Entry (?<RETURN> for Help)?
Thσá use≥ i≤ iε aε inpu⌠ linσ edito≥ now¼á s∩á al∞á command≤ ì
mus⌠á bσá terminateΣ b∙ strikinτ thσ RETUR╬ ke∙ beforσ the∙á takσ ì
effect« Thi≤ i≤ thσ BDO╙ inpu⌠ linσ editor¼ anΣ strikinτ ^├ wil∞ ì
abort to ZCPR2.
Thσ use≥ ma∙ typσ ┐á followeΣ b∙ strikinτ RETUR╬ t∩ finΣ ou⌠ ì
what his options are (again, built-in help).
Unde≥ thσ ├ commanΣ (Changσ Directory)¼ thσ use≥ caε perforφ ì
the following functions:
. Add a Named Directory Entry to the Directory
. Rename a Named Directory Entry in the Directory
. Delete a Named Directory Entry from the Directory
. Print the Directory
. Print a Help Message
. Exit to MKDIR Command Level
Iε orde≥ t∩ adΣ o≥ renamσ ß NameΣ Director∙ Entry¼á thσ use≥ ì
type≤ thσ "DU:dirnameó form«á Iµ eithe≥ thσ Disδ (D⌐ o≥ Use≥ (U⌐ ì
arσ omitted¼ curren⌠ disδ anΣ use≥ arσ assumed« Thσ "dirnameó i≤ ì
thσá mnemoniπá namσá associateΣá witΦá thσá directory¼á u≡á t∩á ╕ ì
character≤á long«á Iµá ßá namσá ha≤á beeεá associateΣá witΦá thσ ì
indicateΣ disδ anΣ use≥ already¼á MKDI╥ wil∞ renamσ i⌠ t∩ thσ ne≈ ì
namσ anΣ tel∞ yo⌡ tha⌠ i⌠ i≤ doinτ s∩ anΣ wha⌠ thσ olΣ namσá was« ì
Iµ ß namσ ha≤ no⌠ alread∙ beeε associateΣ witΦ thσ indicateΣ disδ ì
and user, MKDIR will add this entry to the directory.
Iεá orde≥ t∩ deletσ ß NameΣ Director∙ Entry¼á thσ use≥ type≤ ì
onl∙ thσ "DU:ó form«á Iµ ß namσ ha≤ alread∙ beeε associateΣ witΦ ì
thi≤ disδ anΣ user¼ theε i⌠ wil∞ bσ deleted« Iµ n∩ namσ ha≤ beeε ì
associated, the user will be so informed.
T∩á prin⌠ thσ curren⌠ director∙ fo≥ review¼á thσá use≥á neeΣ ì
onl∙ strikσ thσ RETUR╬ key« T∩ exit¼ thσ use≥ enter≤ aε ╪ (uppe≥ ì
or lower case) followed by striking the RETURN key.
Example:
Assume the following directory:
A15:ROOT A10:SYS A0:BASE
B0:DEVBASE B1:WORK1 B2:WORK2
If the user wishes to delete WORK1, he types
B1:
If the user wishes to rename WORK2 to WORK12, he types
B2:WORK12
If the user wishes to add WORK3 as B3:, he types
B3:WORK3
Iε al∞ cases¼á lower-casσ character≤ arσ converteΣ t∩ upper-ì
case.
Getting on with the commands, they are:
C -- Change Directory (Add, Rename, or Delete Entries)
I -- Initialize Directory
P -- Print Directory
R -- Read in a Directory File
S -- Status of MKDIR Environment
W -- Write out a Directory File
X -- Exit
? -- Print Help Message
C has just been discussed and ? is obvious.
╔ i≤ useΣ t∩ initializσ thσ directory« Thσ use≥ i≤ askeΣ iµ ì
hσá i≤ surσ hσ want≤ t∩ d∩ this¼á and¼á iµ Yes¼á MKDI╥ clear≤ thσ ì
scratcΦá directory«á ╔á emphasizσá tha⌠á onl∙á thσá memory-baseΣ ì
scratcΦá director∙ oµ MKDI╥ i≤ effected¼á anΣ MKDI╥ affect≤á disδ ì
files only with the W (Write Directory) command.
╨á i≤á useΣ t∩ Prin⌠ thσ Directory«á Asidσ froφá thσá name≤ ì
assigneΣá s∩á far¼á thσ use≥ i≤ tolΣ ho≈ man∙ entrie≤á havσá beeε ì
defined so far and how many are yet to be defined.
╥ i≤ useΣ t∩ reaΣ iε ß Director∙ Filσ anΣ ╫ i≤ useΣ t∩ writσ ì
i⌠ out«á Wheε MKDI╥ i≤ firs⌠ invoked¼á iµ thσ commanΣ i≤á simpl∙ ì
"MKDIR"¼á theεá thσá defaul⌠á director∙á filσ i≤á defineΣá t∩á bσ ì
NAMES.DIR«á Iµ thσ commanΣ i≤ "MKDI╥ dir:filename.typ"¼ theε thσ ì
defaul⌠ director∙ filσ i≤ defineΣ t∩ bσ thσ indicateΣ filσ anΣ i⌠ ì
i≤á reaΣ iε immediatel∙ (subsequen⌠ ╥ commanΣ i≤ no⌠á necessary)« ì
When the user issues the R command, he will be prompted with:
Name of File (<RETURN> = filename.typ)?
Iµ hσ strike≤ RETURN¼á thσ defaul⌠ filσ i≤ read«á Otherwise¼á hσ ì
caε typσ iε ß filσ namσ oµ hi≤ choice«á N∩ defaul⌠ filσ typσá i≤ ì
assumed¼ s∩ thσ filσ ma∙ bσ an∙ name« Thσ samσ promp⌠ appear≤ t∩ ì
thσá ╫á (Write⌐ command«á Iε botΦ cases¼á iµ thσ use≥ wishe≤á t∩ ì
ente≥ hi≤ owε filσ name¼ i⌠ ma∙ bσ oµ thσ forφ "dir:filename.typó ì
s∩ hσ caε reaΣ i⌠ froφ o≥ placσ i⌠ anywhere.
Onσá note║á ╫á wil∞ writσ bacδ t∩ thσ curren⌠ director∙á a≤ ì
opposeΣá t∩á thσ director∙ thσ filσ originall∙ camσ froφá iµá thσ ì
defaul⌠ forφ i≤ accepted.
Finally¼á thσ ╙ commanΣ (Status⌐ i≤ kinΣ oµá redundant«á I⌠ ì
simply tells the user some status information on MKDIR.
:Disk-Based and Memory-Based Named Directories
Thσá onl∙á purposσ oµ L─ i≤ t∩ loaΣ ß NameΣá Director∙á Filσ ì
froφ disk¼á conver⌠ i⌠ int∩ thσ prope≥ forφ fo≥ memory-baseΣ use¼ ì
anΣá storσá i⌠á iεá thσ memory-baseΣ NameΣá Director∙á Buffe≥á a≤ ì
implementeΣá fo≥ ZCPR2«á Thσ reasoε fo≥ thσá memory-baseΣá NameΣ ì
Director∙á Buffe≥á i≤ t∩ speeΣ processinτ wheε NameΣá Directorie≤ ì
arσá referenced«á Ver∙á simply¼á al∞ thσ ZCPR▓á utilitie≤á whicΦ ì
suppor⌠á NameΣ Directorie≤ perforφ thσ followinτ operation≤á wheε ì
one is referenced:
1«á The∙ scaε thσ memory-baseΣ NameΣ Director∙á Buffe≥ ì
fo≥ ß matcΦ t∩ thσ user-supplieΣ namσ anΣ usσ thi≤ definitioε fo≥ ì
the name if found.
2«á Iµá ß memory-baseΣ NameΣ Director∙ Buffe≥á i≤á no⌠ ì
availablσá o≥ thσ user-supplieΣ namσ i≤ no⌠ found¼á theε scaε thσ ì
disks¼á searchinτá alonτá thσ commanΣ searcΦ patΦá fo≥á thσá filσ ì
NAMES.DIR« Iµ found¼ the∙ loaΣ it¼ scaε i⌠ fo≥ thσ user-supplieΣ ì
name¼ anΣ usσ thi≤ definition« Iµ no⌠ found¼ the∙ issuσ aε erro≥ ì
message.
I call the reader's attention to two main points here:
1«á Iµ thσ user-supplieΣ namσ i≤ founΣ iε thσá memory-ì
baseΣá NameΣ Director∙ Buffer¼á theε ß disδ acces≤ i≤ no⌠á needeΣ ì
anΣá thσ utilit∙ run≤ faste≥ sincσ i⌠ doe≤ no⌠ havσ t∩ d∩ ßá disδ ì
search.
2«á Iµá ßá disδ searcΦ i≤ done¼á i⌠ i≤ donσ alonτá thσ ì
commanΣá searcΦ patΦ anΣ thσ firs⌠ NAMES.DI╥ filσ encountereΣá i≤ ì
used« Iε thi≤ way¼ aε differen⌠ NameΣ Director∙ structurσ may beì
createΣá fo≥á wha⌠ thσ use≥ sa≈ beforσ wheε hσá wa≤á loggeΣá int∩ ì
another directory. To illustrate, consider the following:
The memory-based Named Directory Buffer contains:
A0:BASE A15:ROOT A16:HELP
Thσ NAMES.DI╥ filσ founΣ froφ director∙ WORK▒ contains:
B1:WORKBASE B2:HOME B3:TEST1
anΣ thσ NAMES.DI╥ filσ founΣ froφ director∙ WORK▓ contains:
B1:WBASE B2:MYHOME B4:TEST2
┴ use≥ loggeΣ int∩ WORK▒ canno⌠ acces≤ director∙ TEST2¼á anΣ ì
ß use≥ loggeΣ int∩ WORK▓ canno⌠ acces≤ director∙ TEST1«á Also¼ ß ì
use≥ iε WORK▒ anΣ ß use≥ iε WORK▓ caε botΦ acces≤ B▒ anΣ B2¼á bu⌠ ì
the∙ d∩ s∩ b∙ differen⌠ names« Al∞ user≤ caε acces≤ A0¼ A15¼ anΣ ì
A16, and they do it by the same names.
┴ conventioε ╔ likσ t∩ usσ oε m∙ system¼ bu⌠ onσ whicΦ i≤ b∙ ì
n∩ mean≤ required¼á i≤ t∩ namσ thσ director∙ containinτ al∞ oµ m∙ ì
command≤ a≤ ROOT¼ anΣ ╔ likσ t∩ kee≡ i⌠ u≡ ou⌠ oµ thσ wa∙ a⌠ A15« ì
B∙ beinτ iε A15¼á ╔ caε loτ int∩ i⌠ wheε ╔ kno≈ thσ command≤ wil∞ ì
come from it and I want them to run as quickly as possible.
Anothe≥á conventioεá ╔ likσ t∩ usσ i≤ t∩ placσ al∞á thσá HL╨ ì
file≤á (fo≥á thσ onlinσ documentatioε system⌐ u≡á iεá A16«á Thi≤ ì
director∙á canno⌠ bσ loggeΣ into¼á bu⌠ ╔ don'⌠ wan⌠ t∩á sincσá n∩ ì
command≤ residσ there« Thσ HEL╨ prograφ caε bσ madσ t∩ finΣ theφ ì
easil∙á sincσ i⌠ caε bσ se⌠ u≡ t∩ eithe≥ scaε thσ commanΣá searcΦ ì
patΦ anΣ theε scaε it≤ owε interna∞ path¼á whicΦ ╔ havσ endinτ iε ì
A16, or I can set up HELP to just scan its internal path.
:Loading Named Directory Files with LD
L─ (LoaΣ Directory⌐ load≤ thσ NameΣ Director∙ Filσ NAMES.DI╥ ì
o≥á thσá filσá specifieΣá iε thσ commanΣ linσá int∩á thσá memory-ì
residen⌠á NameΣá Director∙ Buffer«á L─ automaticall∙á scan≤á thσ ì
command search path for the desired directory.
LD is invoked by one of the following forms:
LD // <-- Print Help
LD <-- Print Load Stats
LD filename <-- Load filename.DIR
LD filename.typ <-- Load filename.typ
Notσ tha⌠ ╔ d∩ NO╘ permi⌠ ß DIR║á o≥ DU║á prefi° oε thσ filσ ì
name«á Thσá filσ t∩ bσ loadeΣ ha≤ t∩ bσ founΣ alonτ thσá commanΣ ì
searcΦ path«á ╔ diΣ thi≤ t∩ makσ L─ a≤ smal∞ a≤ possiblσ anΣ ruε ì
as quickly as possible.
:Printing Named Directory Files and Buffers with PWD
PWD (Print Working Directory) is used for two functions:
1. To print the name of the directory you currently
reside in
2. To print the names of all directories you can
access from where you are
PWD is invoked by the following forms:
PWD // <-- Print Help
PWD <-- Print Current Directory
PWD DIR <-- Print Directory Info
:Moving About with CD
C─á (Changσ Directory⌐ i≤ useΣ t∩ movσ froφ onσ director∙ t∩ ì
anothe≥ b∙ usinτ thσ name≤ associateΣ witΦ thσá directories«á C─ ì
is invoked by one of the forms:è
CD // <-- Print Help
CD dir or CD dir: <-- Log into Directory
Wheε C─ executes¼ i⌠ determine≤ thσ disδ anΣ use≥ associateΣ ì
t∩ thσ namσ b∙ thσ standarΣ ZCPR▓ technique:
1«á C─á scan≤ thσ memory-baseΣ NameΣ Director∙á Buffe≥ ì
fo≥á ß matcΦ t∩ thσ user-supplieΣ namσ anΣ use≤á thi≤á definitioε ì
fo≥ thσ namσ iµ found.
2«á Iµá ß memory-baseΣ NameΣ Director∙ Buffe≥á i≤á no⌠ ì
availablσá o≥ thσ user-supplieΣ namσ i≤ no⌠ found¼á theε C─ scan≤ ì
thσ disks¼á searchinτ alonτ thσ commanΣ searcΦ patΦ fo≥ thσá filσ ì
NAMES.DIR« Iµ found¼ C─ load≤ it¼ scan≤ i⌠ fo≥ thσ user-supplieΣ ì
name¼ anΣ use≤ thi≤ definition« Iµ no⌠ found¼ C─ issue≤ aε erro≥ ì
message.
Oncσá C─ identifie≤ thσ director∙ t∩ loτ into¼á i⌠ check≤ t∩ ì
seσá iµ i⌠ i≤ ß Systeφ Director∙ (use≥ numbe≥ greate≥ thaε 1░á -- ì
seσ later⌐ anΣ ask≤ fo≥ ß passworΣ iµ so« Iµ aε invaliΣ passworΣ ì
is given, CD drops the user back into his original directory.
Iµá C─á decide≤á t∩ givσ thσ use≥ acces≤á t∩á thσá director∙ ì
(valiΣá passworΣ i≤ giveε fo≥ ß Systeφ Director∙ o≥ i⌠ i≤á no⌠á ß ì
Systeφ Directory)¼ theε C─ log≤ int∩ thσ directory¼ check≤ t∩ seσ ì
iµ thσ filσ ST.CO═ exists¼ anΣ chain≤ t∩ i⌠ iµ i⌠ doe≤ (usinτ thσ ì
Multiplσá CommanΣ Linσ Buffer)«á Thi≤ latte≥ actioε i≤ no⌠ takeε ì
if the Multiple Command Line Buffer is not available.
ST.CO═á i≤ simpl∙ ß cop∙ oµ STARTUP.CO═ unde≥ thσá namσá ST« ì
Thσá onl∙ purposσ oµ STARTU╨ i≤ t∩ loaΣ thσ Multiplσ CommanΣ Linσ ì
Buffe≥á witΦá ßá commanΣ linσ wheε i⌠á i≤á executeΣá withou⌠á an∙ ì
options«á Thi≤á commanΣ linσ ma∙ contaiε ß reasonablσ numbe≥á oµ ì
commands which perform any desired set of functions.
Iεá thσá ZCPR▓ environment¼á gooΣ candidatσ command≤á t∩á bσ ì
executed by running ST via CD include the following:
LD dirname <-- Set up a new Memory-Based Named
Directory Environment
PAT╚ path-ex≡ <-- Se⌠ u≡ ß ne≈ CommanΣ SearcΦ Path
MENU <-- Invoke the MENU Preprocessor
ECHO message <-- Print a Message to the User
Hence¼á thσá user'≤á environmen⌠ caε changσá drasticall∙á b∙ ì
usinτá C─á t∩á loτá int∩á ß ne≈á directory«á Thσá name≤á oµá thσ ì
directorie≤ hσ caε acces≤ caε changσ (L─ change≤ thσ Memory-BaseΣ ì
name≤á anΣá ß ne≈ NAMES.DI╥ filσ alonτ hi≤á commanΣá searcΦá patΦ ì
change≤á thσ Disk-BaseΣ names)¼á thσ commanΣ searcΦ patΦ hσá use≤ ì
caεá change¼á anΣ hσ caε eveε finΣ himselµ iε ß MEN╒á environmen⌠ ì
insteaΣ oµ ß ZCPR▓ commanΣ environment.
:Poor Little ECHO and CD
ECH╧ i≤ ß rathe≥ trivia∞ prograφ -- i⌠ simpl∙ echo≤ thσ tex⌠ ì
following it. It has only one form:
ECHO text
anΣ i⌠ print≤ "textó oε thσ consolσ wheε i⌠ executes« Wh∙ havσ ß ì
program like this? The answer is with CD and ST.
CD¼á a≤ ╔ mentioneΣ earlier¼á automaticall∙ invoke≤ S╘ iµ i⌠ ì
find≤ i⌠ iε thσ director∙ i⌠ log≤ into«á ECH╧ i≤ provideΣ a≤ onσ ì
oµ thσ command≤ S╘ coulΣ execute« Iε thi≤ mode¼ thσ commanΣ linσ ì
containinτ thσ ECH╧ commanΣ wil∞ no⌠ bσ printeΣ t∩ thσ user¼á bu⌠ ì
thσ tex⌠ printeΣ b∙ ECH╧ will«á Hence¼á ECH╧ caε bσ useΣ t∩ givσ ì
the user one-line messages upon entering a new directory.
Iµá thσ use≥ i≤ t∩ receivσ morσ thaε onσ line¼á theε ßá filσ ì
caεá bσ createΣ somewherσ whicΦ contain≤ thσ tex⌠ oµ thσ message¼ ì
anΣ TYP┼ caε bσ useΣ t∩ prin⌠ thσ filσ oε thσ console« Notσ tha⌠ ì
TYPE permits the DU: form, so the file can be anywhere.
:System Directories
Therσáá exist≤áá ßá clas≤á oµá directorie≤áá calleΣáá Systeφ ì
Directorie≤ unde≥ ZCPR2« Thesσ arσ directorie≤ whosσ use≥ numbe≥ ì
i≤á 1░ o≥ greate≥ (thi≤ ma∙ bσ changeΣ fo≥ eacΦá installatioεá b∙ ì
using GENINS).
Iµá yo⌡á issuσá thσá commanΣ "PW─á DIRóá froφá ßá non-Systeφ ì
directory¼ PW─ ma∙ tel∞ yo⌡ tha⌠ somσ directorie≤ arσ hidden« I⌠ ì
wil∞á no⌠á displa∙á thσ name≤ oµ thσ Systeφá Directorie≤á t∩á yo⌡ ì
unless you reside in a System Directory.
Systeφá Directorie≤á arσ fo≥ privelegeΣ users«á Iµ thσá DU║ ì
forφ fo≥ switchinτ betweeε directorie≤ i≤ no⌠ available¼ thσ onl∙ ì
wa∙ t∩ switcΦ betweeε directorie≤ i≤ b∙ mean≤ oµ thσ C─á command« ì
CD¼á wheεá i⌠á realize≤ tha⌠ yo⌡ havσ giveε thσ namσ oµ ßá Systeφ ìèDirectory¼á ask≤á yo⌡ fo≥ ß password«á Yo⌡ mus⌠ correctl∙á ente≥ ì
thi≤á passworΣá beforσá C─ wil∞ allo≈ yo⌡á t∩á ente≥á thσá Systeφ ì
Directory.
Hence¼á tw∩ level≤ oµ protectioε arσ affordeΣ t∩ ß systeφ b∙ ì
disablinτ thσ DU║ forφ anΣ usinτ nameΣ directories« Thσ firs⌠ i≤ ì
tha⌠á ß non-privelegeΣ use≥ canno⌠ finΣ ou⌠ wha⌠ thσ name≤ oµ thσ ì
Systeφá Directorie≤á arσá b∙ usinτ PW─ (i⌠ i≤ u≡á t∩á thσá Systeφ ì
Manage≥á t∩á insurσ tha⌠ n∩ othe≥ too∞ i≤ availablσ t∩á thσá non-ì
privelegeΣ use≥ t∩ allo≈ hiφ t∩ finΣ ou⌠ thi≤ information)«á Thσ ì
seconΣá i≤ that¼á eveε iµ thσ non-privelegeΣ use≥ founΣ ou⌠á wha⌠ ì
thσá name≤á oµá thσ Systeφ Directorie≤á are¼á hσá stil∞á need≤á ß ì
password to enter them.
:Sample Sessions
Thσ followinτ frame≤ arσ sample≤ oµ actua∞ termina∞ session≤ ì
whicΦá illustratσá severa∞ oµ thσ point≤ discusseΣ iεá thi≤á HEL╨ ì
file«á ╔ havσ placeΣ comments¼á preceedeΣ b∙ <<¼ ou⌠ t∩ thσ sidσ ì
t∩á hel≡á yo⌡ alonτ iε you≥ readinτ oµ thσ session≤ anΣ t∩á poin⌠ ì
out key features I am trying to illustrate.
B7>mkdir
MKDIR Version 1.2
MKDIR Command (? for Help)? ? << Print Help
MKDIR Commands are --
C -- Change Directory (Add/Rename/Delete Entries)
I -- Initialize Directory
P -- Print Directory
R -- Read Directory File
S -- Status of MKDIR Environment
W -- Write Directory File
X -- Exit Program
MKDIR Command (? for Help)? R << Read in File
Name of File (<RETURN> = NAMES .DIR)? << Default from Path
MKDIR Command (? for Help)? P << Print Directory
Disk A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
10: SYS 11: ZCPR 15: ROOT 16: HELP
Disk B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
4: SCRATCH 5: BASIC 7: WS 8: CAT
9: DBASE
Disk C --
0: BACKUP
22 Entries in Directory
MKDIR Command (? for Help)? S << Status
** MKDIR Status **
22 Entries in Directory
42 Empty Entries Remaining
Working File Name: NAMES .DIR
No Changes made to Directory since Startup
File has been loaded
MKDIR Command (? for Help)? C << Enter Change Mode
** MKDIR Change Mode **
Directory Entry (?<RETURN> for Help)? ? << Print Help
MKDIR Change Mode --
You may issue the following commands at this point:
DU:dirname <-- Create/Rename Dir Entry
DU: <-- Delete Dir Entry
<RETURN> <-- Print Directory
X <-- Exit
? <-- Print this Help
Directory Entry (?<RETURN> fo Help)? b1: << Delete
Deleting ASM -- 21 Entries Remaining
Directory Entry (?<RETURN> for Help)? c2:newdir << Add/Rename
Adding NEWDIR -- 22 Entries in Directory, Room for 42 More
Directory Entry (?<RETURN> for Help)? b2:
Deleting BDSC -- 21 Entries Remaining
Directory Entry (?<RETURN> for Help)? b3:
Deleting PAS -- 20 Entries Remaining
Directory Entry (?<RETURN> for Help)? b1:mydir
Adding MYDIR -- 21 Entries in Directory, Room for 43 More
Directory Entry (?<RETURN> for Help)? b0:d-base
Renaming DEV-BASE -- 21 Entries in Directory, Room for 43 More
Directory Entry (?<RETURN> for Help)? << Print Dir
Disk A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
10: SYS 11: ZCPR 15: ROOT 16: HELP
Disk B --
0: D-BASE 1: MYDIR 4: SCRATCH 5: BASIC
7: WS 8: CAT 9: DBASE
Disk C --
0: BACKUP 2: NEWDIR
21 Entries in Directory
Directory Entry (?<RETURN> for Help)? x << Exit
MKDI╥ CommanΣ (┐ fo≥ Help)┐ ╫ <╝ Writσ to Disk
Name of File (<RETURN> = NAMES .DIR)? temp.dir << New File
Writing Directory to Disk ... Done
MKDIR Command (? for Help)? I << Init Dir
Are you sure you want to Initialize the Directory (Y/N/<CR>=N)? Y
MKDIR Command (? for Help)? P << Print New Dir
Empty Directory
MKDIR Command (? for Help)? C << Enter Names
** MKDIR Change Mode **
Directory Entry (?<RETURN> for Help)? a15:root
Adding ROOT -- 1 Entries in Directory, Room for 63 More
Drectory Entry (?<RETURN> for Help)? a0:base
Adding BASE -- 2 Entries in Directory, Room for 62 More
Directory Entry (?<RETURN> for Help)? b1:work1
Adding WORK1 -- 3 Entries in Directory, Room for 61 More
Directory Entry (?<RETURN> for Help)? b2:work2
Adding WORK2 -- 4 Entries in Directory, Room for 60 More
Directory Entry (?<RETURN> for Help)? b3:work3
Adding WORK3 -- 5 Entries in Directory, Room for 59 More
Directory Entry (?<RETURN> for Help)? << Print Dir
Disk A --
0: BASE 15: ROOT
Disk B --
1: WORK1 2: WORK2 3: WORK3
5 Entries in Directory
Directory Entry (?<RETURN> for Help)? b0:workbase
Adding WORKBASE -- 6 Entries in Directory, Room for 58 More
Directory Entry (?<RETURN> for Help)? x << Exit
MKDIR Command (? for Help)? P << Print Again
Disk A --
0: BASE 15: ROOT
Disk B --
0: WORKBASE 1: WORK1 2: WORK2 3: WORK3
6 Entries in Directory
MKDIR Command (? for Hep)? W << Write to Disk
Name of File (<RETURN> = TEMP .DIR)? temp2.dir << New File
Writing Directory to Disk ... Done
MKDIR Command (? for Help)? R << Read in File
Name of File (<RETURN> = TEMP2 .DIR)? temp.dir
MKDIR Command (? for Help)? P << Look at it
Disk A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
10: SYS 11: ZCPR 15: ROOT 16: HELP
Disk B --
0: D-BASE 1: MYDIR 4: SCRATCH 5: BASIC
7: WS 8: CAT 9: DBASE
Disk C --
0: BACKUP 2: NEWDIR
21 Entries in Directory
MKDIR Command (? for Help)? R << Read in Another
Name of File (<RETURN> = TEMP .DIR)? temp2.dir
MKDIR Command (? for Help)? P << Look at it
Disk A --
0: BASE 15: ROOT
Disk B --
0: WORKBASE 1: WORK1 2: WORK2 3: WORK3
6 Entries in Directory
MKDIR Command (? for Help)? X << Exit
<╝ ╔ havσ no≈ createΣ ▓ ne≈ directories¼ TEMP.DI╥ anΣ TEMP2.DIR
B7>mkdir temp2.dir << MKDIR and Read File
MKDIR Version 1.2
MKDIR Command (? for Help)? P << Print
Disk A --
0: BASE 15: ROOT
Dik B --
0: WORKBASE 1: WORK1 2: WORK2 3: WORK3
6 Entries in Directory
MKDIR Command (? for Help)? C << Change
** MKDIR Change Mode **
Directory Entry (?<RETURN> for Help)? a4:help
Adding HELP -- 7 Entries in Directory, Room for 57 More
Directory Entry (?<RETURN> for Help)? x
MKDIR Command (? for Help)? R << Read in file and throw away
Name of File (<RETURN> = TEMP2 .DIR)? << ... changes
MKDIR Command (? for Help)? C << Change this file instead
** MKDIR Change Mode **
Directory Entry (?<RETURN> for Help)? a16:help
Adding HELP -- 7 Entries in Directory, Room for 57 More
Directory Entry (?<RETURN> for Help)?
Disk A --
0: BASE 15: ROOT 16: HELP
Disk B --
0: WORKBASE 1: WORK1 2: WORK2 3: WORK3
7 Entries in Directory
Directory Entry (?<RETURN> for Help)? x
MKDIR Command (? for Help)? X << Exit without saving first
Directory has changed since last Write << MKDIR caught me
Do you want to write Directory to Disk first (Y/N/<CR>=Y)?Y
Name of File (<RETURN> = TEMP2 .DIR)? << Save file
Writing Directory to Disk ... Done
B7>dir *.dir
TEMP .DIR | TEMP2 .DIR
B7>pwd // << PWD Help
PWD, Version 1.1
PWD is a ZCPR2 named directory display utility
(PWD=Print Working Directory). Command Forms are:
PWD <-- Print Current Info
PWD DIR <-- Print Available Directories
PWD // <-- Print Help Message
B7>pwd << Print Current Dir
PWD, Version 1.1
** Current Directory **
B 7: WS
B7>pwd dir << Print Known Dirs
PWD, Version 1.1
** Directory Display **
** Named Directory Memory-Based Definitions **
3 Directory Entries Total ( 2 Directories Hidden) --
A --
0: BASE
Strike Any Key to Continue -
** Named Directory Disk-Based Definitions **
22 Directory Entries Total ( 4 Directories Hidden) --
A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
4: SCRATCH 5: BASIC 7: WS 8: CAT
9: DBASE
C --
0: BACKUP
** Current Directory **
B 7: WS
B7>10: << Enter System Dir to see all
B10>pwd dir << Now look at dirs
PWD, Version 1.1
** Directory Display **
** Named Directory Memory-Based Definitions **
3 Directory Entries Total ( 0 Directories Hidden) --
A --
0: BASE 15: ROOT 16: HELP
Strike Any Key to Continue -
** Named Directory Disk-Based Definitions **
22 Directory Entries Total ( 0 Directories Hidden) --
A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
10: SYS 11: ZCPR 15: ROOT 16: HELP
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
4: SCRATCH 5: BASIC 7: WS 8: CAT
9: DBASE
C --
0: BACKUP
** Current Directory **
Noname
B10>ld // << LD Help
LD Version 1.1
LD is the Load Directory program for ZCPR2.
The functions of LD are to load the memory-resident
named directory uffer from the specified or implied
disk file and to display the contents of the named
directory buffer.
The forms of the LD command are --
LD <-- Display Loaded Directory
LD filename <-- Load filename.DIR
LD filename.typ <-- Load filename.typ
LD // <-- Print this Help Message
B10>ld << Print Status
LD Version 1.1
**********************************************
** Memory-Based Named Directory Definitions **
** Number of Entries Permitted: 50 **
** Number of Entries Loaded: 3 **
**********************************************
-- Named Directory Display --
A --
0: BASE 15: ROOT 16: HELP
** Current Directory **
Not Named in Directory Buffer
B10>ld ld << Load a Directory (LD.DIR)
LD Version 1.1
Load Complete
B10>pwd dir << Print new environ
PWD, Version 1.1
** Diectory Display **
** Named Directory Memory-Based Definitions **
13 Directory Entries Total ( 0 Directories Hidden) --
A --
0: BASE 10: SYS 11: ZCPR 15: ROOT
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
5: BASIC 7: WS 8: CAT 9: DBASE
C --
0: BACKUP
Strike Any Key to Continue -
** Named Directory Disk-Based Definitions **
22 Directory Entries Total ( 0 Directories Hidden) --
A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
10: SYS 11: ZCPR 15: ROOT 16: HELP
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
4: SCRATCH 5: BASIC 7: WS 8: CAT
9: DBASE
C --
0: BACKUP
** Current Directory **
Noname
B10>7:;pwd dir << Print same environ from non-Sys user
PWD, Version 1.1
** Directory Display **
** Named Directory Memory-Based Definitions **
3 Directory Entries Total ( 3 Directories Hidden) --
A --
0: BASE
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
5: BASIC 7: WS 8: CAT 9: DBASE
C --
0: BACKUP
Strike Any Key to Continue -
** Named Directory Disk-Based Definitions **
22 Directory Entries Total ( 4 Directories Hidden) --
A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
4: SCRATCH 5: BASIC 7: WS 8: CAT
9: DBASE
C --
0: BACKUP
** Current Directory **
B 7: WS
B7>ld temp2;pwd dir << Load one of my new environs
LD Version 1.1
Load Complete
PWD, Version 1.1
** Directory Display **
** Named Directory Memory-Based Definitions **
7 Directory Entries Total ( 2 Directories Hidden) --
A --
0: BASE
B --
0: WORKBASE 1: WORK1 2: WORK2 3: WORK3
Strike Any Key to Coninue -
** Named Directory Disk-Based Definitions **
22 Directory Entries Total ( 4 Directories Hidden) --
A --
0: R-BASE 1: R-ASM 2: R-BDSC 3: R-PAS
5: R-BASIC 7: R-WS 8: R-CAT 9: R-DBASE
B --
0: DEV-BASE 1: ASM 2: BDSC 3: PAS
4: SCRATCH 5: BASIC 7: WS 8: CAT
9: DBASE
C --
0: BACKUP
** Current Directory **
B 7: WS
B7>ld ld << Load Standard Environ
LD Version 1.1
Load Complete
B7>cd cat << CD into CAT Directory
CD Version 2.3
MENU Version 1.4 << MENU automatically comes up!
Disk Cataloging System
Catalog Update Functions --
1 - Update Disks on C: into a Temporary File
2 - Update the Disk on C: into the Archival Disk File
3 - Update the Disk on C: into the Active Disk File
Merge the Temporary File into --
4 - The Archival Disk File 5 - The Active Disk File
Backup --
6 - The Archival Disk File 7 - The Active Disk File
Scan --
A- The Archival Disk Catalog B - The Active Disk Catalog
Miscellaneous Functions --
D - Delete the TEMP and BAK Files T - Display the Date and Time
X - Display Disk Directory Z - Issue Any ZCPR2 Command
Command (<CR>=Menu, ^C=ZCPR2) - A << Scan Catalog
Input Files and Disks -- mkdir.mac...............................
CATALOG II Version 5.3
Catalog File: MASTER .CAT
++ SCAN Catalog Function ++
Date of Last Write/Merge: 15 Jan 83
CATALOG File Name: MASTER .CAT Date/Comment: 15 Jan 83
Filename.Typ Diskname.Dsk Diskname.Dsk Diskname.Dsk Disname.Dsk
MKDIR .MAC BACK015 .J01 C&ASM .J06 SRC015 .J00
++ SCAN Function Complete ++
MENU Version 1.4 Strike Any Key - << Give user time
Disk Cataloging System
Catalog Update Functions --
1 - Update Disks on C: into a Temporary File
2 - Update the Disk on C: into the Archival Disk File
3 - Update the Disk on C: into the Active Disk File
Merge the Temporary File into --
4 - The Archival Disk File 5 - The Active Disk File
Backp --
6 - The Archival Disk File 7 - The Active Disk File
Scan --
A - The Archival Disk Catalog B - The Active Disk Catalog
Miscellaneous Functions --
D - Delete the TEMP and BAK Files T - Display the Date and Time
X - Display Disk Directory Z - Issue Any ZCPR2 Command
Command (<CR>=Menu, ^C=ZCPR2) - Z << Enter Command Line
Input Command -- cd ws...................................
CD, Version 2.3 << Return to Dir WS
MENU Version 1.4 << MENU tries, but none there
B7> << At Command Level Again