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: ;MENU A a example comman buil b MEN t ru XDI wit use inpu fo fil nam specification coul loo lik th following: XDIR ;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 (=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 (=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 (=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 (=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 (=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 (=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 (=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 (=Menu,^C=ZCPR2,*=1st Menu,<=Prev Menu,>=Last Menu) - The Menu Commands are: Command Function 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 # menu commands The following are two sample Menu File structures: -options #options #options # # commands commands ## #options # 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 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: # % , . < > * :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  .