home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR2
/
MENU.HQP
/
MENU.HLP
Wrap
Text File
|
2000-06-30
|
29KB
|
741 lines
Overview of MENU
Using MENU
Summary of MENU Commands
Programming MENU.CPR Files
MENU.CPR Commands
MENU Programming Command Summary
MENU's Relationship to the ZCPR2 System
MENU Error Messages
MCHECK -- MENU.CPR Syntax Checker
: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.
: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
: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.
: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.
: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>
: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.
: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
: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