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
Text File  |  2000-06-30  |  29KB  |  741 lines

  1. Overview of MENU
  2. Using MENU
  3. Summary of MENU Commands
  4. Programming MENU.CPR Files
  5. MENU.CPR Commands
  6. MENU Programming Command Summary
  7. MENU's Relationship to the ZCPR2 System
  8. MENU Error Messages
  9. MCHECK -- MENU.CPR Syntax Checker
  10. :Overview of MENU
  11.  
  12.      MEN╒á i≤ thσ ZCPR▓ Menu-OrienteΣ CommanΣá Preprocessor«á  I⌠ ì
  13. act≤á a≤á ß front-enΣ t∩ ZCPR2¼á providinτ ßá menu-orienteΣá use≥ ì
  14. interfacσá t∩á ZCPR2«á  It≤á functioε caε bσ representeΣá b∙á thσ ì
  15. following diagram:
  16.                     ------    ------    ------    ------
  17.                     |M   |    |Z   |    |B   |    |P   |
  18.      User           | E  |    | C  |    | D  |    | g  |
  19.      Menu      ---->|  N |--->|  P |--->|  O |--->|  m |
  20.      Command        |   U|    |   R|    |   S|    |   s|
  21.                     |    |    |   2|    |    |    |    |
  22.                     ------    ------    ------    ------
  23.  
  24.      Thσ "Use≥ Men⌡ Commandó i≤ ß singlσ characte≥ tha⌠ thσá use≥ ì
  25. strike≤á whicΦ instruct≤ MEN╒ t∩ perforφ ß function«á  Oncσá MEN╒ ì
  26. begin≤á processinτá thi≤ function¼á i⌠ build≤ ß commanΣ linσá fo≥ ì
  27. ZCPR2¼á optionall∙á askinτ thσ use≥ fo≥ furthe≥ inpu⌠ (sucΦ a≤á ß ì
  28. filσá name)¼á anΣ theε passe≤ thσ commanΣ linσ t∩ ZCPR▓á vißá thσ ì
  29. Multiplσ CommanΣ Linσ Buffer«á  ZCPR▓ theε run≤ thσ commanΣ line¼ ì
  30. and, when completed, returns to MENU.
  31.  
  32.      Hence¼á iεá ß nutshell¼á MEN╒ build≤ commanΣ line≤ baseΣá oε ì
  33. simplσá inpu⌠ froφ thσ user«á  Thσ use≥ neeΣ neve≥ kno≈ wha⌠á thσ ì
  34. actua∞ commanΣ linσ is«  Thσ commanΣ linσ itselµ i≤ alway≤ oµ thσ ì
  35. form:
  36.  
  37.           <command> <optional user input>;MENU <menu options>
  38.  
  39.      A≤ aε example¼ ß commanΣ buil⌠ b∙ MEN╒ t∩ ruε XDI╥ witΦ use≥ ì
  40. inpu⌠á fo≥á ßá filσá namσá specification¼á coulΣá looδá likσá thσ ì
  41. following:
  42.  
  43.           XDIR <user input>;MENU
  44.  
  45.  
  46.      Wheε MEN╒ i≤ executed¼ i⌠ look≤ fo≥ thσ filσ MENU.CP╥ iε thσ ì
  47. curren⌠á directory«á  Iµá i⌠ find≤ one¼á i⌠ load≤ i⌠á anΣá begin≤ ì
  48. processing.  If it does not find one, it simply exits.
  49.  
  50.      Thσá MENU.CP╥á filσá caεá contaiεá u≡ t∩á 25╡á menu≤á t∩á bσ ì
  51. processeΣá b∙ MENU«á  Thσ defaul⌠ conditioε fo≥ MEN╒ i≤ t∩á begiε ì
  52. processinτá a⌠á thσá firs⌠ men⌡á iεá MENU.CPR¼á bu⌠á option≤á arσ ì
  53. availablσá t∩á selec⌠á anothe≥ menu«á  Iεá particular¼á thσá Men⌡ ì
  54. Option≤ are:
  55.  
  56.           W    - Wait for User to Strike a Key before beginning
  57.           nn   - Begin Processing at Menu nn
  58.  
  59.      The full MENU command line is structured as follows:
  60.  
  61.           MENU [W][nn]
  62.  
  63. Option≤á arσá encloseΣá iε [▌ bu⌠ mus⌠ bσá placeΣá iεá thσá orde≥ ì
  64. specified, i.e., W, if present, must be first.
  65.  
  66.      Iµ thσ Wai⌠ Optioε i≤ used¼á i⌠ i≤ alway≤ first«  Thσ numbe≥ ì
  67. follow≤ Wai⌠ immediately¼á anΣ therσ arσ n∩ space≤ betweeεá them║          
  68.  
  69.           MEN╒ ╫              <-- Wai⌠ anΣ Star⌠ a⌠ Firs⌠ Menu
  70.           MENU W4             <-- Wait and Start at 4th Menu
  71.           MENU 4              <-- Start at 4th Menu
  72.  
  73.      Thσ use≥ anΣ men⌡ programme≥ neeΣ no⌠ bσ concerneΣ witΦ thi≤ ì
  74. mos⌠ oµ thσ time«  Menu≤ shoulΣ bσ se⌠ u≡ t∩ star⌠ witΦ thσ firs⌠ ì
  75. men⌡ b∙ default¼á s∩ tha⌠ onl∙ thσ commanΣ "MENUó i≤ necessar∙ t∩ ì
  76. invokσá thσ desireΣ menu«á  Thσ option≤ describeΣ abovσ arσá useΣ ì
  77. primaril∙á b∙ MEN╒ itselµ wheε i⌠ build≤ thσ commanΣ linσ s∩ tha⌠ ì
  78. thσá use≥ wil∞ returε witΦ aε optiona∞ wai⌠ anΣ t∩ thσ men⌡á tha⌠ ì
  79. hσá jus⌠á camσ from«á  Hence¼á iµ thσ use≥ wa≤ iε thσá 4tΦá menu¼ ì
  80. selecteΣá thσ ╪ commanΣ (fo≥ XDIR)¼á anΣ thσ Men⌡ Programme≥á haΣ ì
  81. se⌠ u≡ thσ XDI╥ commanΣ t∩ wai⌠ oε returε s∩ thσ use≥ coulΣá takσ ì
  82. hi≤á timσá anΣá looδ a⌠ thσ director∙ display¼á theεá MEN╒á woulΣ ì
  83. appenΣá thσ commanΣ "MEN╒ W4ó t∩ thσ enΣ oµ thσ commanΣá linσá i⌠ ì
  84. builds.
  85.  
  86.      MEN╒á itselµá i≤ ß CO═ file¼á likσ an∙ othe≥á prograφá unde≥ ì
  87. ZCPR2«  Unlikσ mos⌠ othe≥ programs¼ however¼ i⌠ generate≤ commanΣ ì
  88. line≤á t∩ bσ executeΣ b∙ ZCPR▓ anΣ append≤ ß MEN╒ commanΣ t∩á thσ ì
  89. enΣ oµ eacΦ oµ thσ commanΣ line≤ i⌠ generate≤ s∩ tha⌠ ZCPR▓á wil∞ ì
  90. return to MENU when finished.  In this way a loop is set up:
  91.  
  92.                     -->--+->- MENU ->- ZCPR2 ->-+
  93.                          ^                      v
  94.                          |                      |
  95.                          +-<- Command Line -<---+
  96.  
  97.      Onl∙á MEN╒á itselµ caε terminatσ thi≤á loop«á  Iµá thσá MEN╒ ì
  98. programme≥á wishes¼á hσ caε se⌠ u≡ thσ MENU.CP╥ filσ s∩ tha⌠ thi≤ ì
  99. loo≡á wil∞ neve≥ bσ exited¼á o≥ hσ caε se⌠ u≡ thσ filσá t∩á allo≈ ì
  100. anyonσá t∩ exi⌠ a⌠ an∙ timσ o≥ jus⌠ ß specia∞ persoε wh∩ know≤á ß ì
  101. passworΣá t∩á exi⌠á wheεá hσá wishe≤á to«á  Therσá i≤á ßá lo⌠á oµ ì
  102. flexibilit∙á designeΣ int∩ thσ system¼á anΣ i⌠ wil∞ bσá discusseΣ ì
  103. later in the section on programming MENU.CPR files.
  104.  
  105.      Iεá ßá nutshell¼á then¼á ßá MENU.CP╥ filσ caε bσ se⌠á u≡á t∩ ì
  106. executσ an∙ ZCPR▓ commanΣ o≥ sequencσ oµ commands«á  Thσ MENU.CP╥ ì
  107. filσ caε als∩ bσ se⌠ u≡ t∩ no⌠ allo≈ thσ use≥ t∩ leavσá MENU¼á t∩ ì
  108. allo≈á hiφ t∩ leavσ MEN╒ a⌠ will¼á o≥ t∩ allo≈ hiφ t∩ leavσá MEN╒ ì
  109. onl∙ iµ hσ know≤ ß password.
  110.  
  111.      Thi≤á HEL╨ filσ i≤ divideΣ int∩ tw∩ basiπ parts«á  Thσá inf∩ ì
  112. section≤á oεá "Usinτá MENUó anΣ "Summar∙ oµá MEN╒á Commandsóá arσ ì
  113. designeΣá t∩á bσá reaΣ b∙ ß persoε wantinτ t∩ usσá MEN╒á bu⌠á no⌠ ì
  114. wantinτá t∩á learε ho≈ MEN╒ work≤ o≥ ho≈ t∩á prograφá it«á  Thesσ ì
  115. section≤á describσ ho≈ t∩ movσ froφ onσ men⌡ t∩ another¼á ho≈á t∩ ì
  116. issuσá MEN╒á commands¼á anΣ ho≈ t∩ leavσ MEN╒ iµá thσá optioεá i≤ ì
  117. presenteΣ t∩ him.
  118.  
  119.      Thσáá othe≥áá section≤á oµá thi≤á HEL╨á filσá describσáá thσ ì
  120. programminτá aspect≤á oµ MEN╒ anΣ arσ intendeΣ t∩ bσ useΣá a≤á aε ì
  121. onlinσá referencσá fo≥ thσ MEN╒á programmer«á  Thσá MEN╒á commanΣ ì
  122. programminτá summar∙á i≤ especiall∙ usefu∞ iε tha⌠ i⌠ provide≤á ß ì
  123. summar∙á oµ thσ command≤ whicΦ thσ MEN╒ programme≥ ma∙á issuσá t∩ ì
  124. MEN╒ withiε ß MENU.CPR.
  125. :Using MENU
  126.  
  127.      When you first invoke MENU, one of three things will happen:
  128.  
  129.           1⌐á ┴á MEN╒á wil∞ appea≥ anΣ bσ pageΣ u≡á t∩á fil∞á thσ 
  130.                screen╗ ß commanΣ promp⌠ wil∞ appea≥ a⌠ thσ bottoφ 
  131.                oµ thσ menu
  132.  
  133.           2⌐á ┴ MEN╒ wil∞ appea≥ anΣ no⌠ bσ pageΣ u≡ t∩ fil∞á thσ 
  134.                screen╗ ß commanΣ promp⌠ wil∞ appea≥ a⌠ thσ bottoφ 
  135.                oµ thσ menu
  136.  
  137.           3⌐á ┴ commanΣ promp⌠ wil∞ appea≥ witΦ n∩ men⌡ (thi≤á i≤ 
  138.                called the Expert Mode)
  139.  
  140.      Iµá a⌠ an∙ timσ you≥ Men⌡ Displa∙ i≤ garbleΣ o≥ yo⌡ wan⌠á t∩ ì
  141. seσ thσ curren⌠ Men⌡ (a≤ sometime≤ happen≤ wheε yo⌡ arσ iε Exper⌠ ì
  142. Mode)¼ jus⌠ strikσ thσ RETUR╬ key«  Thσ RETUR╬ ke∙ refreshe≤ you≥ ì
  143. menu at all times.
  144.  
  145.  
  146.      Thσá promp⌠ whicΦ appear≤ a⌠ thσ bottoφ oµ you≥ Men⌡ displa∙ ì
  147. has the following general form:
  148.  
  149. Command (<CR>=Menu,^C=ZCPR2,*=1st Menu,<=Prev Menu,>=Next Menu) -
  150.  
  151.      A≤ ╔ mentioneΣ iε thσ introduction¼á therσ caε bσ u≡ t∩á 25╡ ì
  152. menu≤á iε onσ MENU.CP╥ file«á  Thσ MEN╒ commanΣ promp⌠ varie≤á t∩ ì
  153. reflec⌠ this«  Fo≥ instance¼ iµ onl∙ onσ Men⌡ wa≤ presen⌠ anΣ yo⌡ ì
  154. werσ no⌠ giveε thσ optioε t∩ abor⌠ ou⌠ oµ MEN╒ t∩ ZCPR2¼ theε thσ ì
  155. Men⌡ CommanΣ promp⌠ woulΣ takσ it≤ simples⌠ form¼ lookinτ like:
  156.  
  157. Command (<CR>=Menu) -
  158.  
  159.      Yo⌡á caεá strikσ thσ RETUR╬ ke∙ a⌠ thi≤ timσ t∩ refresΦá thσ ì
  160. Men⌡á Displa∙ o≥ yo⌡ caε strikσ thσ characte≥ oµ ßá Men⌡á Option«  ì
  161. Thesσá arσ you≥ onl∙ choices¼á anΣ strikinτ ß characte≥ whicΦá i≤ ì
  162. no⌠á thσá RETUR╬á ke∙á o≥ ß men⌡ optioε result≤á iεá thσá messagσ ì
  163. "Invalid Command" being displayed.
  164.  
  165.      Iµá thσá MENU.CP╥ programme≥ gavσ yo⌡ thσ optioε t∩ exi⌠á t∩ ì
  166. ZCPR▓ anΣ therσ i≤ onl∙ onσ Men⌡ iε thσ MENU.CP╥ file¼á theε you≥ ì
  167. commanΣ linσ wil∞ looδ likσ this:
  168.  
  169. Command (<CR>=Menu,^C=ZCPR2) -
  170.  
  171.      Yo⌡á no≈ havσ thσ additiona∞ optioε oµ abortinτ t∩ ZCPR▓á b∙ ì
  172. strikinτ Control-├ (holΣ dowε oε thσ Control¼á o≥ CTRL¼á ke∙á anΣ ì
  173. strikσá thσá lette≥ C)«á  Thi≤ wil∞ returε yo⌡ t∩ ZCPR▓ anΣá exi⌠ ì
  174. MENU¼á leavinτ yo⌡ witΦ thσ abilit∙ t∩ issuσ an∙ availablσá ZCPR▓ ì
  175. command.
  176.  
  177.      Onσ brieµ notσ oε optioε letter≤ beforσ goinτ on«  Iµ onσ oµ ì
  178. you≥ option≤ i≤ ß lette≥ iε thσ rangσ froφ ┴ t∩ Z¼á theε casσá i≤ ì
  179. no⌠á significant¼á anΣá yo⌡á caε invokσ thσá optioεá A¼á say¼á b∙ ì
  180. striking an upper- or lower-case A.
  181.  
  182.  
  183.      Iµá therσ i≤ morσ thaε onσ men⌡ iε you≥ MENU.CP╥á file¼á thσ ì
  184. commanΣá linσ option≤ becomσ slightl∙ morσ complex¼á bu⌠ the∙ arσ ì
  185. stil∞ quitσ eas∙ t∩ follow.
  186.  
  187.      Iε thσ followinτ examples¼á ╔ aφ assuminτ tha⌠ thσ optioε t∩ ì
  188. exi⌠ t∩ ZCPR▓ i≤ off¼ s∩ thσ "^C=ZCPR2ó optioε wil∞ NO╘ appear.
  189.  
  190.      Iµ yo⌡ arσ a⌠ thσ firs⌠ men⌡ iε thσ file¼á you≥ commanΣ linσ ì
  191. wil∞ looδ likσ thσ following:
  192.  
  193. Command (<CR>=Menu,>=Next Menu) -
  194.  
  195.      T∩ advancσ t∩ thσ nex⌠ menu¼á yo⌡ caε strikσ thσ ">ó o≥á thσ ì
  196. ".ó character«á  Oε mos⌠ keyboards¼á ">ó i≤ thσ shif⌠ oµ thσ "."¼ ì
  197. s∩á MEN╒ allow≤ yo⌡ t∩ movσ easil∙ withou⌠ havinτ t∩ worr∙á abou⌠ ì
  198. shifting the keyboard all the time.
  199.  
  200.  
  201.      Iµá yo⌡ arσ a⌠ thσ las⌠ men⌡ iε thσ file¼á you≥ commanΣ linσ ì
  202. will look like the following:
  203.  
  204. Command (<CR>=Menu,*=1st Menu,<=Prev Menu) -
  205.  
  206.      Thi≤ allow≤ yo⌡ t∩ strikσ thσ "*ó characte≥ t∩ jum≡ bacδá t∩ ì
  207. thσá firs⌠á men⌡ iε you≥ MENU.CP╥ file«á  Iµ "<ó o≥ ",ó i≤á stucδ ì
  208. ("<ó i≤ usuall∙ thσ shif⌠ oµ thσ ",")¼á theε yo⌡ wil∞ bacδ u≡ onσ ì
  209. menu to the previous menu in the file.
  210.  
  211.      Iµá yo⌡á arσ somewherσ iε thσ middlσ oµ thσá MENU.CP╥á file¼ ì
  212. you≥ commanΣ linσ will¼ a≤ onσ woulΣ expect¼ looδ likσ this:
  213.  
  214. Command (<CR>=Menu,*=1st Menu,<=Prev Menu,>=Next Menu) -
  215.  
  216.      Again¼á "*óá wil∞ g∩ directl∙ t∩ thσ firs⌠ menu¼á "<ó o≥ ",ó ì
  217. wil∞ g∩ t∩ thσ previou≤ menu¼á anΣ ">ó o≥ ".ó wil∞ g∩ t∩ thσ nex⌠ ì
  218. menu.  Striking the RETURN key will refresh the menu display.
  219.  
  220.      Onσá las⌠á optioε yo⌡ havσ unde≥ MEN╒ involve≤ acces≤á t∩á ß ì
  221. Systeφ Menu«á  Thi≤ men⌡ i≤ specia∞ iε tha⌠ therσ i≤ onl∙ onσ wa∙ ì
  222. to get to it -- via the "$" command.
  223.  
  224.      Thσ Systeφ Men⌡ i≤ intendeΣ t∩ givσ privelegeΣ user≤á acces≤ ì
  225. t∩á specia∞ command≤ tha⌠ thσ res⌠ oµ thσ user≤ can'⌠ run«á  Iµ ß ì
  226. Systeφá Men⌡ i≤ available¼á MEN╒ wil∞ responΣ t∩ thσ "$óá commanΣ ì
  227. with the prompt:
  228.  
  229.           Pass?
  230.  
  231.      Yo⌡ arσ giveε onσ chancσ t∩ typσ iε thσ correc⌠ passworΣá t∩ ì
  232. ente≥ thσ Systeφ Menu«á  Iµ yo⌡ arσ wrong¼ thσ messagσ "Pas≤ Erró ì
  233. wil∞á appea≥ anΣ yo⌡ wil∞ bσ returneΣ t∩ thσ men⌡ yo⌡ camσá from«  ì
  234. Iµ yo⌡ arσ correct¼á yo⌡ wil∞ ente≥ thσ Systeφ Menu«  Physically¼ ì
  235. thσá Systeφá Men⌡ i≤ alway≤ thσ las⌠ men⌡ iε thσá file¼á anΣá it≤ ì
  236. command prompt is:
  237.  
  238. Command (<CR>=Menu,*=1st Menu,<=Prev Menu) -
  239.  
  240.      Iµ yo⌡ arσ a⌠ thσ men⌡ jus⌠ beforσ thσ Systeφ Menu¼á thσ ">ó ì
  241. wil∞á no⌠á functioεá t∩ allo≈ yo⌡ t∩ ente≥á it¼á eveεá th∩á therσ ì
  242. technicall∙ i≤ ß "Nex⌠ Menu"«  Thσ ">ó optioε iε thσ commanΣ linσ ì
  243. wil∞á no⌠ appear«á  A≤ ╔ stateΣ before¼á thσ onl∙ wa∙ t∩ ente≥á ß ì
  244. System Menu is thru the "$" command.
  245.  
  246.      So¼ iε summary¼ movinτ abou⌠ withiε MEN╒ i≤ quitσ easy«  "*ó ì
  247. move≤ yo⌡ t∩ thσ firs⌠ menu¼ "<ó t∩ thσ previou≤ menu¼ ">ó t∩ thσ ì
  248. nex⌠ menu¼ anΣ "$ó t∩ thσ Systeφ Menu.
  249.  
  250. :Summary of MENU Commands
  251.  
  252.      The full Menu Command Line looks like the following:
  253.  
  254. Command (<CR>=Menu,^C=ZCPR2,*=1st Menu,<=Prev Menu,>=Last Menu) -
  255.  
  256.      The Menu Commands are:
  257.  
  258.           Command   Function
  259.  
  260.           <CR>      Refresh Menu Display (RETURN Key)
  261.           ^C        Exit to ZCPR2 (Control-C)
  262.           *         Jump to the First Menu
  263.           < or ,    Jump to the Previous Menu
  264.           > or .    Jump to the Next Menu
  265.           $         Jump to the System Menu (Password Required)
  266.           other     Menu Option or Invalid Command; letters are
  267.                          automatically capitalized, so a=A
  268.  
  269. :Programming MENU.CPR Files
  270.  
  271.      Thσ MENU.CP╥ filσ i≤ simpl∙ ß tex⌠ filσ whicΦ ma∙ bσ createΣ ì
  272. witΦá an∙ conventiona∞ CP/═á editor¼á includinτá WordStar«á  MEN╒ ì
  273. ignore≤á thσ Mos⌠ Significan⌠ Bi⌠ oµ al∞ bytes¼á s∩ editor≤á likσ ì
  274. WordStar¼ whicΦ occasionall∙ se⌠ thi≤ bit¼ caε bσ used.
  275.  
  276.      Al∞á MENU.CP╥á file≤ havσ thσ samσ genera∞á structure«á  Thσ ì
  277. firs⌠á linσ i≤ eithe≥ ß globa∞ optioε linσ o≥ thσ beginninτ oµá ß ì
  278. men⌡á display«á  Iµá ß globa∞ optioε line¼á i⌠á begin≤á witΦá thσ ì
  279. characte≥á "-"¼á anΣá thi≤ characte≥ i≤ immediatel∙á followeΣá b∙ ì
  280. globa∞á optioε characters«á  Thσ globa∞ optioε line¼á theεá look≤ ì
  281. likσ this:
  282.  
  283. -options
  284.  
  285.  
  286.      Afte≥ thσ globa∞ optioε line¼á iµ any¼ come≤ thσ firs⌠ menu«  ì
  287. Each menu is structured as follows:
  288.                          #options
  289.                               <Text of Menu Display>
  290.                          #
  291.                          menu commands
  292.  
  293.      The following are two sample Menu File structures:
  294.  
  295.                -options                 #options
  296.                #options                      <Text>
  297.                     <Text>              #
  298.                #                        commands
  299.                commands                 ##
  300.                #options
  301.                     <Text>
  302.                #
  303.                commands
  304.                ##
  305.  
  306.      Therσ arσ onl∙ fivσ optioε characters«á  Iε usinτ them¼ casσ ì
  307. is not significant.  These option characters are:
  308.  
  309.           Option    Function
  310.              C      Display Command Line to User
  311.              D      Display Menu to User
  312.              P      Page Out Menu Display
  313.              X      Allow User to Exit to CP/M
  314.  
  315.      Thσá ├ optioε display≤ thσ commanΣ linσ buil⌠ b∙ MEN╒ t∩ thσ ì
  316. user«á  Thi≤ optioε i≤ primaril∙ intendeΣ fo≥ debugginτ purposes¼ ì
  317. t∩ allo≈ thσ programme≥ t∩ seσ wha⌠ command≤ arσ beinτ built«  I⌠ ì
  318. i≤ instructivσ t∩ thσ user¼ however¼ anΣ ma∙ bσ employeΣ fo≥ tha⌠ ì
  319. purpose as well.
  320.  
  321.      Thσ ─ optioε display≤ thσ men⌡ t∩ thσ user«á  Iµ thσ displa∙ ì
  322. functioεá i≤á no⌠á turneΣ on¼á wσ arσ iεá Exper⌠á Mode¼á anΣá thσ ì
  323. command≤á arσá availablσ withou⌠á ßá men⌡á display«á  RETURN¼á oµ ì
  324. course, can be used to invoke the display if necessary.
  325.  
  326.      Thσá ╨á optioε page≤ ou⌠ thσ men⌡ displa∙ iµ i⌠ i≤á invoked«  ì
  327. Iµá thσ pagσ functioε i≤ engaged¼á theε thσ MEN╒ prograφá output≤ ì
  328. <CRLF╛á combination≤á unti∞á 2┤ line≤ havσ beeεá printeΣá oεá thσ ì
  329. screen«  Thi≤ i≤ somewha⌠ morσ attractivσ anΣ eliminate≤ olΣ tex⌠ ì
  330. froφ previou≤ commands¼á allowinτ thσ use≥ t∩ concentratσ oεá hi≤ ì
  331. curren⌠ se⌠ oµ options«á  However¼á i⌠ i≤ annoyinτ iµ thσ use≥ i≤ ì
  332. accessinτ thσ system¼á say¼ a⌠ 30░ bauΣ viß ß dia∞ up«  I⌠ i≤ fo≥ ì
  333. thi≤á reasoεá tha⌠ ╔ gavσ thσ MEN╒ programme≥ thσ optioε t∩á turε ì
  334. this option off.
  335.  
  336.      Finally¼ thσ ╪ optioε enable≤ thσ facilit∙ whicΦ permit≤ thσ ì
  337. user to type ^C and return to ZCPR2.
  338.  
  339.  
  340.      Wheε MEN╒ firs⌠ come≤ up¼ al∞ option≤ arσ turneΣ off:
  341.  
  342.           C is OFF -- no command display to user
  343.           D is OFF -- no menu display to user
  344.           P is OFF -- no menu display paging
  345.           X is OFF -- user cannot exit to CP/M
  346.  
  347.      Thσ globa∞ option≤ line¼á which¼á iµ present¼á i≤ thσá firs⌠ ì
  348. linσá oµ thσ file¼á turn≤ oε thesσ option≤ fo≥ thσ coursσ oµá thσ ì
  349. session in general.  That is, if a global options line like
  350.  
  351.           -DPx
  352.  
  353. i≤ useΣ (notσ casσ i≤ insignificant)¼á theε men⌡ display¼ paging¼ ì
  354. anΣá exi⌠ t∩ ZCPR▓ wil∞ bσ availablσ fo≥ al∞ menus«á  Thσá globa∞ ì
  355. options line affects all menus.
  356.  
  357.  
  358.      Thσá globa∞á option≤á line¼á then¼á turn≤ oεá thσá indicateΣ ì
  359. option≤ fo≥ al∞ menu≤ iε general«á  However¼ thσ samσ option≤ ma∙ ì
  360. bσ presenteΣ oε thσ firs⌠ linσ oµ eacΦ men⌡ immediatel∙ afte≥ thσ ì
  361. "#óá characte≥ t∩ temporaril∙ complemen⌠ thσ curren⌠á optioεá fo≥ ì
  362. onl∙ tha⌠ menu.
  363.  
  364.      Iµ aε optioε i≤ NO╘ includeΣ iε thσ globa∞ option≤ line¼á i⌠ ì
  365. i≤ turneΣ OF╞ fo≥ al∞ menu≤ iε general«  Thσ default≤ selecteΣ b∙ ì
  366. usinτá thσ globa∞ option≤ linσ arσ overriddeε oε ß per-men⌡ basi≤ ì
  367. b∙ thσ loca∞ men⌡ options.
  368.  
  369.      Example:
  370.  
  371.  
  372.           -dpx
  373.           #x
  374.                This menu is displayed and paged, but no
  375.                exit to ZCPR2 is permitted
  376.           #
  377.           commands
  378.           #dx
  379.                This menu is not displayed and the user may not
  380.                exit to ZCPR2.
  381.           #
  382.           commands
  383.           #c
  384.                Thi≤ men⌡ i≤ displayed¼ paged¼ anΣ thσ use≥ ma∙
  385.                exit to ZCPR2.  Additionally, the MENU-generated
  386.                commands are printed to the user.
  387.           #
  388.           commands
  389.           ##
  390.  
  391.      So¼á an∙á optioε tha⌠ ma∙ appea≥ oε thσ globa∞ option≤á linσ ì
  392. ma∙ als∩ appea≥ oε thσ option≤ linσ fo≥ ß particula≥á menu«á  Thσ ì
  393. reverse¼á however¼á i≤ no⌠ true«á  Thσ men⌡ option≤ linσ support≤ ì
  394. onσá additiona∞á option¼á viz«á "$"«á  Thi≤ optioεá declare≤á thσ ì
  395. following menu to be a System Menu.
  396.  
  397.      Iεá programminτ ß MENU.CP╥ file¼á yo⌡ MUS╘ placσ thσá Systeφ ì
  398. Men⌡ a≤ thσ las⌠ men⌡ iε thσ file«  T∩ d∩ otherwisσ i≤ flaggeΣ a≤ ì
  399. aε error«  Thσ followinτ illustrate≤ ß MENU.CP╥ filσ containinτ ß ì
  400. Systeφ Menu:
  401.           -dp
  402.           #
  403.                Thi≤ men⌡ i≤ displayeΣ anΣ paged¼ bu⌠ thσ use≥ ma∙
  404.                not exit to ZCPR2.
  405.           #
  406.           commands
  407.           #$x
  408.                This is a System Menu, and it is displayed, paged,
  409.                and the user may exit to ZCPR2.
  410.           ##
  411.  
  412.      Iµá ßá men⌡á i≤á ßá Systeφá Menu¼á thσá "$óá characte≥á mus⌠ ì
  413. immediatel∙ follo≈ thσ "#"«  Iε thσ casσ oµ thσ lette≥ option≤ iε ì
  414. botΦá thσá globa∞á anΣ loca∞ cases¼á thσ orde≥ i≤á no⌠á importan⌠ ì
  415. ("dpxó mean≤ thσ samσ a≤ "xpd").
  416.  
  417.      GENIN╙ i≤ useΣ t∩ definσ thσ passworΣ useΣ t∩ ente≥ ß Systeφ ì
  418. Menu«á  Thi≤ i≤ thσ PrivilegeΣ Use≥ PassworΣ iε thσ GENIN╙á Menu«  ì
  419. Notσ tha⌠ thi≤ passworΣ caε bσ upper- anΣ lower-case¼ anΣ casσ i≤ ì
  420. significant.
  421.  
  422.      Thi≤á informatioε sectioε ha≤ describeΣ thσ structurσ oµ thσ ì
  423. MENU.CP╥ filσ anΣ ho≈ t∩ se⌠ u≡ a≤ man∙ menu≤ a≤á desired«á  Wha⌠ ì
  424. ha≤á no⌠á beeε discusseΣ i≤ thσ naturσ oµ thσ command≤á followinτ ì
  425. the menu displays.  This is discussed in the next section.
  426.  
  427.  
  428. :MENU.CPR Commands
  429.  
  430.      Thσá command≤á iε thσ MENU.CP╥ filσá follo≈á arσá relativel∙ ì
  431. simplσ structure«  EacΦ commanΣ occupie≤ onl∙ onσ line¼ anΣ blanδ ì
  432. line≤á iε thσ commanΣ grou≡ arσ no⌠ permitted«á  Thσ commanΣ linσ ì
  433. is structured as follows:
  434.  
  435.           l[o][command]["Prompt]
  436.  
  437. where:
  438.           l is the single character used to invoke the command
  439.                note that it may be upper- or lower-case
  440.           o is an opening option, which is one of:
  441.                :nn -- go to Menu nn
  442.                !   -- have MENU wait when the command is finished
  443.           command is an optional ZCPR2 command; note that if
  444.                the option is ":nn", then a command here makes no
  445.                sense
  446.           "Prompt is a command to MENU to print a prompt and wait
  447.                for user input to fill out the command line
  448.  
  449.  
  450.      Thσá ":nnó optioε tell≤ MEN╒ t∩ movσ t∩ ß differen⌠ men⌡á iε ì
  451. the MENU.CPR file.  The first menu is number 1.  Example:
  452.  
  453.           -dpx
  454.           #
  455.                1st Menu:  A - Goto Menu 2     3 - Goto Menu 3
  456.           #
  457.           a:2
  458.           3:3
  459.           #
  460.                     2nd Menu Command: 3 - Goto Menu 3
  461.           #
  462.           3:3
  463.           #x
  464.                     3rd Menu Command: 2 - Goto Menu 2
  465.           #
  466.           2:2
  467.           ##
  468.  
  469.      Iε thσ firs⌠ menu¼ thσ use≥ ma∙ strike:
  470.  
  471.           "aó o≥ "Aó t∩ got∩ Men⌡ 2
  472.           "3ó t∩ got∩ Men⌡ 3
  473.           ">óá o≥á ".ó t∩ got∩ thσ nex⌠ men⌡ (Men⌡ 2)
  474.           ^├ t∩ got∩ ZCPR2
  475.  
  476.      In the second menu, the user may strike:
  477.  
  478.           "3" to goto Menu 3
  479.           "*" or "<" or "," to goto Menu 1
  480.           ">" or "." to goto Menu 3
  481.           ^C to goto ZCPR2
  482.  
  483.      In the third menu, the user may strike:
  484.  
  485.           "2" or "<" or "," to goto Menu 2
  486.           "*" to goto Menu 1
  487.  
  488.  
  489.      Thσá "!óá optioεá place≤á ß "Wó iεá thσá MEN╒á commanΣá linσ ì
  490. (remembe≥á froφ before?)«á  Thi≤ cause≤ MEN╒ t∩ pausσ anΣ asδ thσ ì
  491. use≥ t∩ "Strikσ An∙ Keyó beforσ continuing«á  Iε thi≤ way¼á iµá ß ì
  492. commanΣá generate≤ informatioε t∩ bσ reaΣ b∙ thσ use≥ beforσ MEN╒ ì
  493. clear≤á hi≤ screen¼á thσ "!ó optioε ma∙ bσ useΣ t∩ givσ thσá use≥ ì
  494. al∞ thσ timσ hσ want≤ t∩ reaΣ thi≤ display.
  495.  
  496.      Thσá "Promp⌠á suffi°á cause≤ MEN╒ t∩ accep⌠ ßá tai∞á t∩á thσ ì
  497. commanΣ linσ i⌠ i≤ buildinτ s∩ tha⌠ thσ use≥ caε inpu⌠á argument≤ ì
  498. for the command.  The Prompt is simply text to prompt the user.
  499.  
  500.      Examples:
  501.  
  502.  
  503.           -dxp
  504.           #
  505.                A - Run XDIR without Pause or Input
  506.                B - Run XDIR and Pause before Returning to MENU
  507.                C - Run XDIR, Allow User Input, and Pause before
  508.                     Returning to MENU
  509.                Z - Run Any ZCPR2 Command and Pause before
  510.                     Returning to MENU
  511.  
  512.           #
  513.           z!"Enter Command Line --
  514.           axdir
  515.           b!xdir
  516.           c!xdir "Enter Ambiguous File Name --
  517.           ##
  518.  
  519.      Notσ thσ Spacσ righ⌠ beforσ thσ "Promp⌠ form«  Thi≤ spacσ i≤ ì
  520. significan⌠á t∩á kee≡á thσ commanΣ anΣ use≥á inpu⌠á froφá runninτ ì
  521. together«  Wσ wan⌠ thi≤ "ruε togetheró fo≥ thσ ┌ command.
  522.  
  523.      Yo⌡á caεá havσá a≤á man∙ command≤á a≤á thσá printablσá ASCI╔ ì
  524. characte≥á se⌠ (withou⌠ lower-casσ letter≤ anΣ thσá MEN╒á commanΣ ì
  525. characters⌐ wil∞ allow«á  You≥ text¼á however¼ fo≥ eacΦ men⌡ mus⌠ ì
  526. bσ ablσ t∩ fi⌠ oε ß screeε witΦ thσ commanΣ promp⌠ a⌠ thσ bottom«  ì
  527. Thi≤ typicall∙ mean≤ tha⌠ thσ tex⌠ canno⌠ exceeΣ 2▓ lines.
  528.  
  529.      MEN╒á fit≤ iε nicel∙ t∩ thσ ZCPR▓ Systeφ oµá programs«á  Thσ ì
  530. informatioε sectioε oε "MENU'≤ Relationshi≡ t∩ thσ ZCPR▓á Systemó ì
  531. explain≤ ho≈ MEN╒ anΣ thσ othe≥ ZCPR▓ program≤ worδ together.
  532.  
  533.      ╔á havσ no⌠ discusseΣ erro≥ message≤ yo⌡ caε encounte≥ unde≥ ì
  534. MEN╒ iε thi≤ informatioε section«á  Tha⌠ come≤ late≥ iε thσ Erro≥ ì
  535. Message section.
  536.  
  537. :MENU Programming Command Summary
  538.  
  539.      EacΦ MEN╒ commanΣ occupie≤ onl∙ onσ line¼ anΣ blanδ line≤ iε ì
  540. thσá commanΣá grou≡á arσ no⌠á permitted«á  Thσá commanΣá linσá i≤ ì
  541. structureΣ a≤ follows:
  542.  
  543.           l[o][command]["Prompt]
  544.  
  545. where:
  546.           l is the single character used to invoke the command
  547.                note that it may be upper- or lower-case
  548.           o is an opening option, which is one of:
  549.                :nn -- go to Menu nn
  550.                !   -- have MENU wait when the command is finished
  551.           command is an optional ZCPR2 command; note that if
  552.                the option is ":nn", then a command here makes no
  553.                sense
  554.           "Prompt is a command to MENU to print a prompt and wait
  555.                for user input to fill out the command line
  556.  
  557.  
  558.      The MENU commands are:
  559.  
  560.           Command   Function
  561.  
  562.           :nn       Goto Menu nn, where the first menu is Menu 1
  563.           !         Wait after command line is executed before
  564.                          processing the menu
  565.           "Prompt   Prompt the user for input and accept it
  566.  
  567.      Thσá followinτ ASCI╔ character≤ ma∙ NO╘ bσ useΣ a≤á command≤ ì
  568. since they are used elsewhere:
  569.  
  570.           <SPACE>   #    %    ,    .    <    >    *    <DEL>
  571.  
  572.           <Any Char Less than Space>
  573.  
  574. :MENU's Relationship to the ZCPR2 System
  575.  
  576.      MENU¼á likσ mos⌠ oµ thσ ZCPR▓ utilities¼á interact≤ witΦ thσ ì
  577. systeφá a≤á ßá wholσ anΣ canno⌠ bσ useΣ witΦ system≤á othe≥á thaε ì
  578. ZCPR2«á  Iε particular¼á MEN╒ require≤ thσ ZCPR▓ Multiplσ CommanΣ ì
  579. Linσ Buffe≥ facilit∙ t∩ bσ availablσ t∩ i⌠ anΣ canno⌠ ruε withou⌠ ì
  580. it«á  I⌠á chain≤á t∩á othe≥á command≤ anΣá t∩á itselµá thr⌡á thi≤ ì
  581. facility.
  582.  
  583.      MEN╒ i≤ installeΣ b∙ GENINS«  GENIN╙ i≤ useΣ t∩ instal∞ MEN╒ ì
  584. anΣ se⌠ thσ parameter≤ fo≥ wherσ thσ Multiplσ CommanΣ Linσ Buffe≥ ì
  585. i≤ locateΣ anΣ wha⌠ thσ passworΣ fo≥ enterinτ ß Systeφ Men⌡ is.
  586.  
  587.  
  588.      Also¼á C─ (Changσ Directory⌐ anΣ STARTU╨ (or¼ S╘ fo≥ CD⌐ caε ì
  589. comσ int∩ pla∙ witΦ MENU«  Wheε C─ log≤ int∩ t∩ ne≈ directory¼ i⌠ ì
  590. look≤ fo≥ thσ filσ ST.CO═ anΣ execute≤ i⌠ iµ therσ i≤ one«  S╘ i≤ ì
  591. simpl∙á STARTU╨á renamed¼á anΣá STARTU╨ wil∞á loaΣá thσá Multiplσ ì
  592. Command Line Buffer with a command line and then terminate.
  593.  
  594.      Froφá thσ poin⌠ oµ vie≈ oµ MENU¼á thσ commanΣ loadeΣá b∙á S╘ ì
  595. coulΣ bσ MENU«  Thσ effec⌠ oµ thi≤ i≤ t∩ automaticall∙ ente≥ MEN╒ ì
  596. when the user employs CD to enter a given directory.
  597.  
  598.      Hence¼á b∙á usinτá CD¼á ßá use≥ caε ente≥á ßá director∙á anΣ ì
  599. suddenl∙á finΣ himselµ iε ß men⌡ insteaΣ oµ a⌠ thσ ZCPR▓á commanΣ ì
  600. level«á  Thi≤á i≤ gooΣ fo≥ application≤ wherσ ß director∙ i≤á se⌠ ì
  601. asidσá fo≥ ß specifiπ purposσ anΣ onl∙ certaiε operation≤ arσá t∩ ì
  602. bσá performeΣá iεá it¼á sucΦá a≤á cataloginτá disk≤á o≥á handlinτ ì
  603. accounts«á  Also¼á witΦ CD'≤ passworΣ facility¼ iµ thi≤ director∙ ì
  604. i≤ ß Systeφ Directory¼á thσ use≥ woulΣ havσ t∩ givσ ß passworΣ t∩ ì
  605. enter it.
  606.  
  607.  
  608.      No≈á tha⌠ MEN╒ i≤ runninτ fo≥ thσ directory¼á ß MEN╒ commanΣ ì
  609. coulΣ bσ anothe≥ C─ t∩ anothe≥ directory«á  O≥ i⌠ coulΣ simpl∙ bσ ì
  610. a DU: form.  Example:
  611.  
  612.           #dp
  613.                A - Enter ZCPR Directory
  614.                B - Enter A0:
  615.           #
  616.           acd zcpr
  617.           ba0:
  618.           #
  619.  
  620.      Here¼á iµá ┴ i≤ issued¼á theε C─ wil∞ movσá int∩á ZCPR║á anΣ ì
  621. executσ ST.CO═ iµ therσ i≤ onσ there«á  Iµ ┬ i≤ issued¼á thσ use≥ ì
  622. i≤á loggeΣá int∩á A0:«á  MEN╒ i≤ thσ nex⌠ commanΣ iεá botΦá case≤ ì
  623. (commanΣá line≤á arσá "C─ ZCPR;MENUóá anΣá "A0:;MENU")¼á s∩á MEN╒ ì
  624. automaticall∙ reinvoke≤ anΣ look≤ fo≥ MENU.CPR«á  Iµ i⌠ find≤ it¼ ì
  625. wσ arσ iε anothe≥ MEN╒ system¼ and¼ iµ i⌠ doesn't¼ wσ arσ bacδ t∩ ì
  626. ZCPR2 command level.
  627.  
  628.      Unde≥ thσ ┴ option¼á iµ C─ find≤ ST.COM¼á S╘ wil∞á overwritσ ì
  629. thσ res⌠ oµ thσ commanΣ line¼ thereb∙ throwinτ awa∙ thσ nex⌠ MEN╒ ì
  630. command and giving us something totally different to work with.
  631.  
  632.      Unde≥ thσ ┬ option¼ wσ wil∞ ruε MEN╒ nex⌠ anΣ simpl∙ exi⌠ iµ ì
  633. a MENU.CPR file is not found.
  634.  
  635. :MENU Error Messages
  636.  
  637.      Iεá orde≥ t∩ makσ MEN╒ a≤ smal∞ a≤ possiblσ (i⌠ i≤ unde≥á 2╦ ì
  638. byte≤á iε size)¼á ╔ havσ reduceΣ thσ erro≥ message≤ t∩ ß minimum«  ì
  639. Instead¼á MEN╒á provide≤ ß minimuφ indicatioε tha⌠á somethinτá i≤ ì
  640. wrong and aborts.
  641.  
  642.      Thσ prograφ MCHEC╦ i≤ designeΣ t∩ tel∞ yo⌡ morσ specificall∙ ì
  643. wha⌠ i≤ wrong«  MCHEC╦ i≤ ß MENU.CP╥ Synta° Checker¼ anΣ i⌠ look≤ ì
  644. fo≥á al∞á sort≤ oµ erro≥ condition≤ tha⌠ caε occu≥ iε ßá MENU.CP╥ ì
  645. file.  MCHECK is discussed in the next information section.
  646.  
  647.      MEN╒ provide≤ thσ followinτ minima∞ erro≥ messages:
  648.  
  649.           Message             Meaning
  650.  
  651.           Full                Memory is Full
  652.           Invalid Option      User Command is in Error
  653.           Pass Err            Invalid Password Given
  654.           Str Err             MENU.CPR File Structure Error
  655.  
  656. :MCHECK -- MENU.CPR Syntax Checker
  657.  
  658.      MCHEC╦á shoulΣ catcΦ an∙ error≤ madσ iε ß MENU.CP╥ filσ b∙ ß ì
  659. programmer«á  I⌠á i≤ no⌠ guaranteed¼á bu⌠ ha≤ beeεá testeΣá quitσ ì
  660. thoroughly.
  661.  
  662.      MCHECK accepts command lines of the following forms:
  663.  
  664.           MCHECK or MCHECK //      <-- Print Internal Help
  665.           MCHECK dir:filename      <-- Check "filename.CPR"
  666.           MCHECK dir:filename.typ  <-- Check "filename.typ"
  667.  
  668.      Thσá DIR║á prefi°á ma∙ bσ useΣ witΦ thσ filσ names«á  I⌠á i≤ ì
  669. optional«  A≤ ß DIR║ prefix¼ thi≤ accept≤ thσ DU║ forφ o≥ ß nameΣ ì
  670. directory.
  671.  
  672.  
  673.      MCHECK gives you the "standard" opening error messages:
  674.  
  675.           Error in Disk or User Number -- Aborting
  676.                DIR: form was not acceptable
  677.  
  678.           Error in Opening File -- Aborting
  679.                Problem with file
  680.  
  681.           TPA Overflow -- MENU.CPR File is Too Big -- Aborting
  682.                It could be too big for MENU also (Full error of
  683.                     MENU)
  684.  
  685.      I⌠ theε start≤ processinτ thσ MENU.CP╥ filσ iµ nonσ oµ thesσ ì
  686. error≤á occur«á  MCHEC╦ print≤ thσ linσ numbe≥ anΣ erro≥á messagσ ì
  687. fo≥á eacΦ erro≥ encountered«á  I⌠ als∩ print≤ comment≤ a≤á i⌠á i≤ ì
  688. running along.
  689.  
  690.  
  691.      Non-error comments printed by MCHECK include:
  692.  
  693.           ** Global Options Detected **
  694.                There are global options in the file
  695.  
  696.           ** Menu Number nnn
  697.                It is beginning the indicated menu
  698.  
  699.           ** End of Menu Check **
  700.           No Errors Detected -or- nnnnn Errors Detected
  701.                Done and Error Count
  702.  
  703.  
  704.      Fatal Errors which cause MCHECK to stop processing are:
  705.  
  706.           Error -- New Menu Expected, But # NOT Found -- Aborting
  707.                Like it says; it gives a line number to help you
  708.                     find the problem
  709.  
  710.           Error -- Premature EOF Encountered -- Aborting
  711.                The file did not end with ##
  712.  
  713.  
  714.      Non-Fatal Errors for MCHECK (fatal for MENU, tho) are:
  715.  
  716.           Error -- Invalid Option:
  717.                Invalid option in global or local option line
  718.  
  719.           Error -- Menu Number Out of Range
  720.                A ":nn" option referenced a number out of range
  721.  
  722.  
  723.      Thσá followinτ i≤ ß samplσ ruε oµ MCHEC╦ oε ß gooΣá MENU.CP╥ ì
  724. file:
  725.  
  726.  
  727. B7>mcheck zcpr:menu.cpr
  728. MCHECK  Version 1.1
  729.  
  730.  Line Comment/Error Message
  731.  ---- ---------------------
  732.     1 ** Global Options Detected **
  733.     2 ** Menu Number   0
  734.    17 ** Menu Number   1
  735.    28 ** Menu Number   2
  736.    39 ** Menu Number   3
  737.    48 ** Menu Number   4
  738.    57 ** End of Menu Check **
  739.         No Errors Detected
  740.  
  741.