home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / zcpr2 / z2ug2.ws < prev    next >
Encoding:
Text File  |  1994-07-13  |  56.0 KB  |  1,493 lines

  1. .fo Section 8 - Command Files                          Page   #
  2.  
  3. 8.0  Command Files
  4.  
  5. 8.1  Command File Processing
  6.  
  7.      ┴ CommanΣ Filσ i≤ ß filσ containinτ commands¼á witΦ optiona∞ ì
  8. paramete≥á substitution¼á whicΦ caε bσ executeΣ b∙ ZCPR2«á  Thesσ ì
  9. command≤á arσá exactl∙ thσ samσ kind≤ oµ command≤á a≤á yo⌡á woulΣ ì
  10. issuσá a⌠á thσ console¼á anΣ an∙ commanΣ yo⌡ caε issuσá froφá thσ ì
  11. consolσá caεá bσ issueΣ froφ withiε ß CommanΣ Filσ (witΦá jus⌠á ß ì
  12. couple of restrictions).
  13.  
  14.      Thσá CommanΣ Filσ Facilitie≤ oµ SUB▓ anΣ ZE╪á arσá availablσ ì
  15. unde≥ ZCPR2«á  Simila≥ iε concep⌠ t∩ thσ SUBMI╘ facilit∙ oµ CP/M¼ ì
  16. botΦá SUB▓ anΣ ZE╪ arσ upward-compatablσ t∩ SUBMI╘ (an∙ SU┬á filσ ì
  17. caε ruε unde≥ theφ witΦ fe≈ restrictions).
  18.  
  19.      BotΦá SUB▓á anΣá ZE╪á begiε processinτá b∙á translatinτá thσ ì
  20. commanΣ file≤ the∙ arσ giveε int∩ slightl∙ differen⌠ forms«  BotΦ ì
  21. d∩ paramete≥ substitution¼ extractinτ parameter≤ froφ thσ commanΣ ì
  22. line≤á anΣ placinτ theφ int∩ thσ tex⌠ oµ thσ commanΣ streaφá the∙ ì
  23. arσ building«á  SUB▓ build≤ thσ commanΣ streaφ t∩ bσ executeΣá oε ì
  24. disδá drivσ ┴ unde≥ thσ curren⌠ use≥ number¼á anΣ ZE╪ build≤á thσ ì
  25. commanΣ streaφ iε memory.
  26.  
  27.      A≤á thσ use≥ caε guess¼á ZE╪ i≤ generall∙ preferreΣ t∩ SUB2«  ì
  28. Unde≥ ZEX¼á thσ commanΣ streaφ i≤ executeΣ mucΦ morσ quickl∙ thaε ì
  29. unde≥ SUB▓ sincσ ZE╪ jus⌠ goe≤ int∩ memor∙ fo≥ thσ nex⌠ characte≥ ì
  30. whilσ ZCPR▓ ha≤ t∩ g∩ t∩ disk«  ZEX¼ however¼ doe≤ takσ u≡ memor∙ ì
  31. space¼ anΣ tha⌠ i≤ it≤ maiε drawback«  Thσ TP┴ (Transien⌠ Prograφ ì
  32. Area⌐á unde≥á ZE╪ i≤ smalle≥ thaε wha⌠ i≤á availablσá t∩á commanΣ ì
  33. file≤á runninτ unde≥ SUB2«á  Thi≤ i≤ you≥ basiπ trade-ofµ betweeε ì
  34. thσ tw∩ CommanΣ Filσ Processors.
  35.  
  36.      Anothe≥ differencσ betweeε SUB▓ anΣ ZE╪ i≤ tha⌠ SUB▓ commanΣ ì
  37. stream≤ arσ line-orienteΣ anΣ extracteΣ onl∙ b∙ ZCPR2«á  Tha⌠ is¼ ì
  38. SUB▓á build≤ ß commanΣ filσ nameΣ $$$.SU┬ likσ SUBMI╘á does¼á anΣ ì
  39. ZCPR▓á extract≤á ßá linσ froφ thσ $$$.SU┬ filσ eacΦá timσá i⌠á i≤ ì
  40. entered«  Wheε ZCPR▓ i≤ entereΣ b∙ eithe≥ ß ColΣ Boot¼ Warφ Boot¼ ì
  41. o≥á simplσ RETurε froφ ß loadeΣ program¼á i⌠ check≤ thσá Multiplσ ì
  42. CommanΣ Linσ Buffe≥ fo≥ ß pendinτ command«á  Iµ i⌠ find≤á it¼á i⌠ ì
  43. execute≤ it«  Iµ not¼ i⌠ check≤ thσ A║ drivσ (curren⌠ user⌐ fo≥ ß ì
  44. $$$.SU┬á file«á  Iµ i⌠ find≤ one¼á i⌠ extract≤ thσ nex⌠ linσ froφ ì
  45. thσ $$$.SU┬ file¼á processe≤ it¼á anΣ begin≤ executioε oµ i⌠ froφ ì
  46. thσ Multiplσ CommanΣ Linσ Buffer«á  Finally¼á iµ thσ $$$.SU┬ filσ ì
  47. is not found, ZCPR2 prompts the user for input.
  48.  
  49.      Tha⌠á i≤á ho≈á commanΣá streaφá processinτá unde≥á SUB▓áá i≤ ì
  50. performed«  ZEX¼ however¼ act≤ a≤ ß combinatioε oµ SUB▓ anΣ XSUB«  ì
  51. Oncσ commanΣ streaφ processinτ begin≤ unde≥ ZEX¼ thσ ZE╪ monitor¼ ì
  52. locateΣ unde≥ ZCPR▓ witΦ thσ associateΣ commanΣ stream¼á supplie≤ ì
  53. ßá characte≥ eacΦ timσ thσ BIO╙ Consolσ Inpu⌠ Routinσ i≤á called«  ì
  54. ZE╪ extract≤ thσ nex⌠ characte≥ froφ thσ commanΣ stream¼ examine≤ ì
  55. i⌠á t∩á seσá iµ i⌠ i≤ ß ZE╪ commanΣ anΣ execute≤ i⌠á iµá so¼á anΣ ì
  56. returns it to the calling program if it is not a ZEX command.
  57. è
  58.      Hence¼á ZCPR▓á itselµ doe≤ no⌠ realizσ tha⌠ ZE╪ i≤á running«  ì
  59. Neithe≥á d∩á thσá transien⌠á program≤á iεá general«á  ZE╪á simpl∙ ì
  60. intercept≤ al∞ call≤ t∩ thσ BIO╙ Consolσ Inpu⌠ (anΣ Inpu⌠ Status⌐ ì
  61. routinσ anΣ provide≤ aε inpu⌠ characte≥ iε it≤ place«á  Therσ arσ ì
  62. exceptions to this case, but they will be discussed later.
  63.  
  64.      BotΦ SUB▓ anΣ ZE╪ fi⌠ int∩ thσ ZCPR▓ Systeφ nicely¼ anΣ the∙ ì
  65. caεá bσá useΣ t∩ ac⌠ a≤ ExtendeΣ CommanΣ Processor≤á iµá desired«  ì
  66. This is discussed later.
  67.  
  68.  
  69.  
  70. 8.2  Disk-Based Command Files -- SUB2
  71.  
  72.      SUB2¼á commonl∙á calleΣá SUB¼á i≤á invokeΣá b∙á onσá oµá thσ ì
  73. following command lines:
  74.  
  75.           SUB or SUB //            <-- Print Help Message
  76.           SUB /A Text              <-- Abort $$$.SUB File
  77.                                         Processing at User's
  78.                                         Discretion
  79.           SUB /AB Text             <-- Same as /A but Ring Bell
  80.                                         to Alert User
  81.           SUB /D commands          <-- Perform Commands following
  82.                                         the /D
  83.           SUB /I                   <-- Enter Interactive Input
  84.                                         Mode
  85.           SUB filename params      <-- As in Standard SUBMIT
  86.  
  87.  
  88.      Thσá "SU┬á /Aóá anΣá "SU┬á /ABóá form≤á allo≈á thσá use≥á t∩ ì
  89. gracefull∙á abor⌠ ß $$$.SU┬ file«á  ^├ a⌠ thσ consolσ caε bσ useΣ ì
  90. t∩á abor⌠ sucΦ processinτ a≤ unde≥ CP/M¼á bu⌠ thσ /┴ forφá allow≤ ì
  91. thσá luxur∙á oµá startinτá ß commanΣ streaφá anΣá stoppinτá a⌠á ß ì
  92. critica∞ poin⌠ t∩ allo≈ thσ use≥ t∩ takσ hi≤ time¼á inspec⌠á wha⌠ ì
  93. ha≤ happened¼ anΣ theε decidσ whethe≥ t∩ proceeΣ o≥ not.
  94.  
  95.      Thσá "SU┬á /Dóá forφá ha≤á littlσá utilit∙á unde≥á ßá fully-ì
  96. implementeΣá ZCPR▓á System«á  Yo⌡ caε obtaiε ß bette≥á effec⌠á b∙ ì
  97. simpl∙á issuinτá ßá conventiona∞ ZCPR▓ commanΣá stream«á  Thσá /─ ì
  98. optioεá i≤á gooΣ onl∙ iε environ≤ whicΦ d∩ no⌠á suppor⌠á multiplσ ì
  99. commands.
  100.  
  101.      Thσ "SU┬ /Ió forφ eliminate≤ thσ neeΣ fo≥ thσ use≥ t∩ usσ aε ì
  102. edito≥ t∩ creatσ ß .SU┬ file«á  Iµ thσ use≥ ha≤ ß commanΣá streaφ ì
  103. hσá want≤ t∩ executσ immediatel∙ anΣ doesn'⌠ carσ t∩ d∩ i⌠ again¼ ì
  104. hσ caε usσ thi≤ option«á  Iε response¼á SUB▓ allow≤ hiφ t∩á ente≥ ì
  105. hi≤á commanΣá streaφ (sorry¼á n∩ paramete≥ passing⌐ ß linσá a⌠á ß ì
  106. time«á  Wheεá i⌠ i≤ al∞ entereΣ (use≥ enter≤ aε empt∙ line)¼á thσ ì
  107. $$$.SU┬ filσ i≤ buil⌠ anΣ executed.
  108.  
  109.  
  110.      Thσ fina∞ form¼á "SU┬ filenamσ params"¼ i≤ identica∞ iε forφ ì
  111. t∩á thσá SUBMI╘á commanΣá supplieΣá witΦá CP/M«á  Thσá "filenameó ì
  112. specifie≤á thσá namσá oµ thσ .SU┬ filσ t∩ bσá executed¼á anΣá thσ ì
  113. parameter≤ arσ associateΣ witΦ thσ substitutioε variable≤ oµá $1¼ ì
  114. $2¼á etc«á  U≡á t∩ 2░ parameter≤ ma∙ bσ specified«á  Thσ sequencσ ì
  115. "$$óá place≤á ßá "$ó int∩ thσ commanΣá line¼á anΣá thσá characte≥ ì
  116. sequencσá "^cóá place≤ thσ indicateΣ contro∞ characte≥á int∩á thσ ì
  117. commanΣ linσ (uparro≈ ├ place≤ Control-C).
  118.  
  119.      Thσá SUB▓ commanΣ ma∙ bσ nesteΣ int∩ ß $$$.SU┬ file«á  Iµá ß ì
  120. "SU┬á filenamσ paramsó commanΣ i≤ encountereΣ iε ß $$$.SU┬á file¼ ì
  121. SUB▓á runs¼á realize≤á tha⌠ thi≤ ha≤ happened¼á anΣá insert≤á thσ ì
  122. indicateΣá commanΣ file¼á witΦ paramete≥ substitution¼á int∩á thσ ì
  123. runninτá commanΣá streaφ a⌠ thσ appropriatσ place«á  Thi≤ ma∙á bσ ì
  124. nesteΣ a≤ man∙ level≤ dee≡ a≤ desired.
  125.  
  126.      Unde≥ ZCPR2¼á iµ SUB▓ i≤ executeΣ witΦ thσ Multiplσá CommanΣ ì
  127. Linσá Facilit∙ invokeΣ anΣ morσ command≤ follo≈ thσ SUB▓ command¼ ì
  128. theε thσ res⌠ oµ thσ Multiplσ CommanΣ Linσ i≤ inserteΣ a⌠ thσ enΣ ì
  129. of the generated $$$.SUB file.
  130.  
  131.      Finally¼á SUB▓ follow≤ thσ ZCPR▓ patΦ wheε searchinτ fo≥ thσ ì
  132. indicateΣá commanΣ file«á  I⌠ i≤ full∙ integrateΣ int∩ thσá ZCPR▓ ì
  133. Systeφá anΣá i≤á ablσ t∩ emplo∙ thσ Externa∞á PatΦá anΣá Multiplσ ì
  134. Command Line Buffer features of ZCPR2.
  135.  
  136.  
  137.  
  138. 8.3  SUB2 Error Messages
  139.  
  140.      SUB▓á provide≤á ß numbe≥ oµ informativσ diagnostic≤á t∩á thσ ì
  141. user«á  Iε particular¼á wheε processinτ ß CommanΣ File¼á wheεá aε ì
  142. erro≥ i≤ encountered¼ thσ use≥ i≤ informeΣ oµ thσ linσ numbe≥ thσ ì
  143. error occurs at.
  144.  
  145.      Thσá followinτá summarize≤ thσ erro≥ message≤á presenteΣá b∙ ì
  146. SUB2:
  147.  
  148.           Disk Full
  149.                There is no room to write the $$$.SUB file
  150.  
  151.           Directory Full
  152.                There is no directory space for the $$$.SUB file
  153.  
  154.           Memory Full
  155.                There is not enough memory in which to build the
  156.                command stream to be placed into the $$$.SUB file
  157.  
  158.           SUBMIT File Not Found
  159.                The .SUB file specified in the command line could
  160.                not be found along the ZCPR2 path
  161.  
  162.  
  163.           Parameter
  164.                Invalid Parameter Specified
  165.  
  166.           Too Many Parameters
  167.                More than 20 parameters were on the command line
  168.  
  169.           Line too Long
  170.                The current line in the command stream exceeds
  171.                128 bytes
  172.  
  173.           SUBMIT File Empty
  174.                The .SUB file specified in the command line was
  175.                found to be empty
  176.  
  177.           Control Character
  178.                The ^c form was not followed by a letter A-Z
  179.  
  180.  
  181.  
  182. 8.4  SUB2 Command Summary
  183.  
  184.      The following are valid SUB2 command line forms:
  185.  
  186.           SUB or SUB //            <-- Print Help Message
  187.  
  188.           SUB /A Text              <-- Abort $$$.SUB File
  189.                                         Processing at User's
  190.                                         Discretion
  191.  
  192.           SUB /AB Text             <-- Same as /A but Ring Bell
  193.                                         to Alert User
  194.  
  195.           SUB /D commands          <-- Perform Commands following
  196.                                         the /D
  197.  
  198.           SUB /I                   <-- Enter Interactive Input
  199.                                         Mode
  200.  
  201.           SUB filename params      <-- As in Standard SUBMIT
  202.  
  203.  
  204.  
  205. 8.5  Memory-Based Command Files -- ZEX
  206.  
  207.      Thσá Memory-BaseΣ CommanΣ Filσ Processo≥ oµ ZCPR2¼á ZEX¼á i≤ ì
  208. invoked by the following forms:
  209.  
  210.           ZEX //                   <-- Print Help
  211.  
  212.           ZEX                      <-- Enter Interactive Mode
  213.  
  214.           ZEX filename params      <-- Process .ZEX or .SUB
  215.                                         file as with SUBMIT
  216.  
  217. è
  218.      Thσá Interactivσ Modσ oµ ZE╪ execute≤ likσá thσá Interactivσ ì
  219. Modσá oµá SUB2«á  Thσá use≥á enter≤ commanΣá line≤á unti∞á hσá i≤ ì
  220. satisfieΣá anΣá theε terminate≤ thσ proces≤ b∙ enterinτ aεá empt∙ ì
  221. linσ (simpl∙ hittinτ RETURN)«á  ZE╪ theε execute≤ thσ command≤ iε ì
  222. thσ sequencσ entered«á  N∩ paramete≥ passinτ i≤ permitteΣ iε thi≤ ì
  223. mode of operation.
  224.  
  225.      Thσá "ZE╪á filenamσ paramsó forφ i≤ likσá thσá correspondinτ ì
  226. SUB▓ form«á  ZE╪ wil∞ searcΦ alonτ thσ ZCPR▓ Externa∞ PatΦ fo≥á ß ì
  227. commanΣá filσá oµ thσ forφ filename.ZE╪ o≥á filename.SUB«á  Iµá ß ì
  228. director∙ i≤ entereΣ whicΦ contain≤ botΦ sucΦ files¼á thσ filσ oµ ì
  229. type ZEX will be executed.
  230.  
  231.      Oncσá ZE╪ ha≤ beguε execution¼á i⌠ place≤ ß ZE╪ Monito≥ jus⌠ ì
  232. unde≥á ZCPR▓á anΣ build≤ thσ commanΣ streaφá unde≥á thσá monitor«  ì
  233. Oncσá complete¼á thσ addres≤ oµ thσ BDO╙ i≤ adjusteΣ s∩ tha⌠á thσ ì
  234. ZE╪á monito≥á anΣ it≤ commanΣ streaφ wil∞ no⌠ bσá overwritteεá b∙ ì
  235. transien⌠á programs¼á anΣ executioε begins«á  EacΦ timσ thσá BIO╙ ì
  236. Consolσáá Inpu⌠á routinσá i≤á called¼áá ZE╪á supplie≤á thσá inpu⌠ ì
  237. character.
  238.  
  239.      A≤ witΦ SUB2¼á ß ^├ froφ thσ consolσ wil∞ abor⌠ executioε oµ ì
  240. ß ZE╪ commanΣ stream«á  Also¼á a≤ witΦ SUB2¼ iµ ß commanΣ follow≤ ì
  241. ZE╪á iε ß Multiplσ CommanΣ Line¼á ZE╪ append≤ thi≤ commanΣ t∩ thσ ì
  242. command stream.
  243.  
  244.      Unlikσ SUB2¼á ZE╪ doe≤ no⌠ permi⌠ nestinτ oµ commanΣá files«  ì
  245. ZE╪á wil∞á simpl∙á abor⌠ iµ ß ZE╪ commanΣ i≤ encountereΣá iεá thσ ì
  246. commanΣ streaφ i⌠ i≤ processing.
  247.  
  248.      Unlikσá SUB2¼á ZE╪á support≤ man∙á morσá embeddeΣá commands«  ì
  249. Combininτá thσá facilitie≤á oµ SUB▓ anΣ XSU┬ iεá thi≤á case¼á thσ ì
  250. embeddeΣá command≤ oµ ZE╪ reflec⌠ thσ XSUB-likσá capabilitie≤á oµ ì
  251. ZE╪ a≤ wel∞ a≤ somσ ne≈ ideas.
  252.  
  253.      Thesσá extendeΣá contro∞ command≤ arσ discusseΣ iε thσá nex⌠ ì
  254. information section.
  255.  
  256.  
  257.  
  258. 8.6  ZEX Control Commands
  259.  
  260.      The following summarizes the ZEX Control Commands:
  261.  
  262.           Cmd  Meaning                Cmd  Meaning
  263.            |   insert <CR>            ^|   insert <CRLF>
  264.           ^║   reruε commanΣ streaφ   ^«   togglσ prin⌠ suppress
  265.           ^#   toggle ZEX messages    ^$   define default params
  266.           ^?   wait for user input    ^/   ring bell and ^?
  267.           ^*   ring bell              ^"   accept user input
  268.           ^<   display chars only     ^>   stop display
  269.           ;;   ZEX comment            $n   1<=n<=9 for param
  270.           $$   $                      $^   ^
  271.           $|   |                      ^c   control char
  272. è
  273.      This summary is also displayed via the built-in ZEX help.
  274.  
  275.      Thσ followinτ command≤ simpl∙ inser⌠ character≤ int∩ thσ ZE╪ ì
  276. command stream and will not be discussed in any greater detail.
  277.  
  278.           | inserts a <CR>         ^| inserts a <CR> <LF> pair
  279.           $$ inserts a single $    $^ inserts a single ^
  280.           $| inserts a single |    ^c inserts a control character
  281.  
  282.      Thσ ^¬ commanΣ simpl∙ cause≤ ZE╪ t∩ rinτ thσ bell«á  I⌠ doe≤ ì
  283. no⌠á inser⌠á ßá BEL╠ characte≥ int∩ thσ commanΣ filσá likσá ßá ^╟ ì
  284. sequencσáá would«áá  I⌠á simpl∙á ring≤á thσá bel∞á anΣá continue≤ ì
  285. processing.
  286.  
  287.      Thσá ;╗á commanΣá i≤ ß ZE╪ comment«á  I⌠ anΣ al∞á character≤ ì
  288. followinτá i⌠á u≡á t∩ anΣ includinτ thσ followinτá <LF╛á arσá no⌠ ì
  289. includeΣ iε thσ ZE╪ commanΣ stream«  The∙ arσ simpl∙ treateΣ a≤ ß ì
  290. commen⌠á iεá thσá ZE╪á CommanΣá Filσá anΣá ignored«áá  Unlikσáá ß ì
  291. conventiona∞á ZCPR▓á comment¼á thσ ZE╪ commen⌠ doe≤ no⌠á takσá u≡ ì
  292. spacσá iε thσ commanΣ streaφ anΣ doe≤ no⌠ appea≥ wheε thσ commanΣ ì
  293. stream is executed.
  294.  
  295.      Thσ ^╝ anΣ ^╛ command≤ arσ useΣ t∩ bracke⌠ character≤á whicΦ ì
  296. arσá simpl∙ echoeΣ b∙ thσ ZE╪ monito≥ anΣ no⌠ passeΣ bacδ t∩á thσ ì
  297. callinτá program«á  Thi≤á cause≤á thσá character≤á betweeεá thesσ ì
  298. command≤á t∩á bσá echoeΣá t∩ thσ use≥ durinτá executioεá bu⌠á no⌠ ì
  299. processeΣá b∙á an∙á program«á  Thi≤á featurσá i≤á ver∙á gooΣá fo≥ ì
  300. embeddinτá comment≤á t∩á bσ printeΣ a⌠ executioεá timσá int∩á thσ ì
  301. commanΣ stream«á  Unlikσ thσ ZCPR▓ commen⌠ form¼á whicΦ i≤ ß linσ ì
  302. beginninτá witΦ ß semicolon¼á comment≤ encloseΣ b∙ ^╝ anΣ ^╛á ma∙ ì
  303. appea≥ anywhere¼ sucΦ a≤ withiε aε edito≥ session.
  304.  
  305.      Thσá ^ú commanΣ toggle≤ suppressioε oµ informativσá message≤ ì
  306. generated by ZEX.
  307.  
  308.      Thσ ^« commanΣ cause≤ consolσ outpu⌠ t∩ ceasσ unti∞ thσ nex⌠ ì
  309. ^«áá i≤á encountered«á  Characte≥á inpu⌠á froφá thσá ZE╪á Monito≥ ì
  310. continues¼ bu⌠ thσ use≥ doe≤ no⌠ seσ wha⌠ i⌠ is.
  311.  
  312.      Thσ ^║á commanΣ cause≤ thσ ZE╪ monito≥ t∩ restar⌠á executioε ì
  313. oµá thσá loadeΣ commanΣ stream«á  Thσ entirσ commanΣá stream¼á a≤ ì
  314. initiall∙ processeΣ b∙ ZEX¼ i≤ executeΣ agaiε froφ thσ beginning.
  315.  
  316.      $n¼á wherσá 1<=n<=9¼á wil∞ causσ thσ indicateΣ specifieΣá o≥ ì
  317. default parameter to be substituted from the command line.
  318.  
  319.      Thσá ^ñá commanΣá i≤ useΣ t∩ definσ o≥ redefinσ thσá se⌠á oµ ì
  320. inpu⌠ commanΣ parameters«á  Thσ res⌠ oµ thσ linσ followinτ thσ ^ñ ì
  321. i≤ treateΣ a≤ ß se⌠ oµ parameter≤ separateΣ b∙ blanks.
  322.  
  323.  
  324.      Thσá ^┐á anΣ ^» command≤ replacσ thσ /┴ anΣ /A┬á option≤á oµ ì
  325. SUB2«á  ^┐ cause≤ ZE╪ t∩ sto≡ processinτ anΣ wai⌠ fo≥ thσ use≥ t∩ ì
  326. strikσá eithe≥ thσ spacσ ba≥ o≥ thσ RETUR╬ ke∙ beforσ continuing«  ì
  327. Thσ use≥ caε takσ hi≤ timσ anΣ examinσ thσ display¼á and¼á iµá hσ ì
  328. doe≤á no⌠ wisΦ t∩ continue¼á ß ^├ wil∞ abor⌠ thσ commanΣá stream«  ì
  329. Thσ ^» commanΣ i≤ likσ ^?¼á bu⌠ i⌠ periodicall∙ ring≤ thσ bel∞ a⌠ ì
  330. the console, summoning the user in an alarm fashion.
  331.  
  332.      Finally¼á thσá ^ó commanΣ cause≤ ZE╪ t∩ sto≡ providinτ inpu⌠ ì
  333. froφá thσ commanΣ streaφ anΣ allo≈ thσ use≥ t∩ inpu⌠ whateve≥á hσ ì
  334. wishe≤á unti∞ ß specia∞ characte≥ i≤ output¼á a⌠ whicΦá timσá ZE╪ ì
  335. wil∞ resumσ providinτ input«  Iε thi≤ case¼ ZE╪ caε bσ intimatel∙ ì
  336. linkeΣ witΦ ZCPR2¼á anΣ i⌠ i≤ intendeΣ tha⌠ thσ specia∞ characte≥ ì
  337. tha⌠ ZE╪ i≤ waitinτ fo≥ i≤ associateΣ witΦ thσ ZCPR▓ prompt«á  Iε ì
  338. m∙á case¼á ╔ madσ thσ ZCPR▓ promp⌠ t∩ bσ ß ">ó characte≥ witΦ thσ ì
  339. mos⌠ significan⌠ bi⌠ set«á  Thi≤ i≤ uniquσ anΣ appear≤ onl∙á wheε ì
  340. the prompt comes up on my system.
  341.  
  342.      No≈á tha⌠á ╔á havσá beateε thσ subjec⌠ oµá thσá ZE╪á Contro∞ ì
  343. Command≤ t∩ death¼ thσ followinτ example≤ illustratσ application≤ ì
  344. employinτ them«á  M∙ comment≤ appea≥ ou⌠ t∩ thσ side¼ prefixeΣ b∙ ì
  345. <--.
  346.  
  347.  
  348. B1>zex
  349. ZEX, Version 1.3
  350. 1: ^$ this is fun                  <-- I Define 3 params
  351. 2: echo $1 $2 $3
  352. 3: ^$ hello from happy acres       <-- I Define 4 params
  353. 4: echo $1 $2 $3 $4
  354. 5: 
  355. (ZEX Active)                       <-- ZEX is running now
  356. B1>echo this is fun
  357.  
  358. THIS IS FUN
  359. B1>echo hello from happy acres
  360.  
  361. HELLO FROM HAPPY ACRES
  362. B1>
  363. (ZEX Completed)
  364. By Your Command >
  365.  
  366.  
  367. B1>ed demo.zex                     <-- Demo Command File
  368.  
  369. NEW FILE
  370.      : *i
  371.     1:  ed demo.txt                <-- Edit DEMO.TXT
  372.     2:  i                          <-- Insert text while in ED
  373.     3:  This is a test
  374.     4:  This is only a test
  375.     5:  This is a demo of ZEX Control
  376.     6:  ^Z                         <-- ^Z is 2 chars, xlated into
  377.     7:  b0lt                       <-- Ctrl-Z by ZEX
  378.     8:  1l
  379.     9:  0lt
  380.    10:  i                          <-- Input More Text
  381.    11:  ^"                         <-- I now input text myself
  382.    12:  type demo.txt              <-- When ZEX continues, this
  383.    13:  era demo.txt               <--  is what it does next
  384.    14:  
  385.      : *e
  386.  
  387. B1>zex demo                        <-- Run the command file
  388. ZEX, Version 1.3
  389. (ZEX Active)
  390. B1>ed demo.txt
  391.  
  392. NEW FILE
  393.      : *i                          <-- ZEX is typing this in
  394.     1:  This is a test
  395.     2:  This is only a test
  396.     3:  This is a demo of ZEX Control
  397.     4:  
  398.      : *b0lt
  399.     1:  This is a test
  400.     1: *1l
  401.     2: *0lt
  402.     2:  This is only a test
  403.     2: *i                          <-- Now my input begins
  404.     2:  I am now typing this line of my own volition   <-- I type
  405.     3:  ZEX will allow me to continue doing this until
  406.     4:  it sees the ZCPR2 prompt
  407.     5:                                  <-- I type Ctrl-Z
  408.     5: *e                               <-- I type "e"
  409.  
  410. (ZEX Active)
  411. B1>type demo.txt                        <-- ZEX resumes
  412. This is a test
  413. I am now typing this line of my own volition
  414. ZEX will allow me to continue doing this until
  415. it sees the ZCPR2 prompt
  416. This is only a test
  417. This is a demo of ZEX Control
  418.  
  419.  
  420. B1>era demo.txt
  421. DEMO    .TXT
  422. B1>
  423. (ZEX Completed)
  424. By Your Command >
  425. B1>ed demo.mac                     <-- Now to use ZEX for
  426.                                    <--  program assembly
  427. NEW FILE
  428.      : *i                          <-- I type program
  429.     1:          ext     print
  430.     2:  
  431.     3:          call    print
  432.     4:          db      'Hello, World ... It''s Another Day',0
  433.     5:          ret
  434.     6:  
  435.     7:          end
  436.     8:  
  437.      : *e
  438.  
  439. B1>type a:m80.zex                  <-- My M80.ZEX command file
  440. ;  M80.SUB -- MACRO-80 Assembler and Linker
  441. M80 =$1
  442. ;  Please Type $^C if Error(s) Exist - ^?
  443. ERA $1.BAK
  444. ERA $1.COM
  445. L80 /P:100,$1,A:SYSLIB/S,$1/N,/U,/E
  446. ERA $1.REL
  447. ;  Assembly Complete
  448.  
  449. B1>zex m80 demo                    <-- Run command file on my pgm
  450. ZEX, Version 1.3
  451. (ZEX Active)
  452. B1>;  M80.SUB -- MACRO-80 Assembler and Linker
  453. B1>M80 =DEMO
  454.  
  455. No Fatal errr(s)
  456.  
  457. (ZEX Active)
  458. B1>;  Please Type ^C if Error(s) Exist -     <-- I can abort now
  459.                                              <--  if I wish
  460. B1>ERA DEMO.BAK
  461. DEMO    .BAK
  462. B1>ERA DEMO.COM
  463. No File
  464.  
  465.  
  466. B1>L80 /P:100,DEMO,A:SYSLIB/S,DEMO/N,/U,/E
  467.  
  468. Link-80  3.44  09-Dec-81  Copyright (c) 1981 Microsoft
  469. Data    0100    01C5    <  197>
  470.  
  471. 35936 Bytes Free
  472.  
  473. Data    0100    01C5    <  197>
  474.  
  475. 35936 Bytes Free
  476. [0000   01C5        1]
  477.  
  478. (ZEX Active)
  479. B1>ERA DEMO.REL
  480. DEMO    .REL
  481. B1>;  Assembly Complete
  482. B1>
  483. (ZEX Completed)
  484. By Your Command>demo                    <-- I run pgm now
  485. Hello, World ... It's Another Day
  486. B1>
  487.  
  488.  
  489.  
  490. 8.7  Restrictions on Command Files
  491.  
  492.      Thσá followinτá restriction≤á arσ applieΣ t∩á commanΣá file≤ ì
  493. processed by SUB2 and ZEX.
  494.  
  495.                         SUB2 Restrictions
  496.  
  497.      1«á  Yo⌡ ma∙ no⌠ loτ int∩ use≥ area≤ othe≥ thaε thσ onσá yo⌡ ì
  498. begaεá processinτ thσ commanΣ filσ in«á  Iµ yo⌡ do¼á ZCPR▓ loose≤ ì
  499. tracδá oµá thσ $$$.SU┬ filσ anΣ executioε i≤á aborteΣá unti∞á yo⌡ ì
  500. reenter the original user area, at which time execution resumes.
  501.  
  502.      2«á  U≡á t∩ 2░ parameter≤ arσ permitteΣ oε thσ SUB▓á commanΣ ì
  503. line.
  504.  
  505.      3.  You may nest SUB2 command files to any depth.
  506.  
  507.  
  508.  
  509.                         ZEX Restrictions
  510.  
  511.      1«á  Yo⌡á ma∙ movσ int∩ an∙ director∙ yo⌡ desirσ whilσ ß ZE╪ ì
  512. command stream is being executed.
  513.  
  514.      2«á  U≡á t∩á ╣ parameter≤ arσ permitteΣ oε thσá ZE╪á commanΣ ì
  515. line.
  516.  
  517.      3.  You may NOT nest ZEX command files.
  518.  
  519.  
  520. è
  521. 8.8  SUB2 and ZEX as Extended Command Processors Under ZCPR2
  522.  
  523.      BotΦá SUB▓á anΣá ZE╪ makσ nicσ ExtendeΣá CommanΣá Processor≤ ì
  524. unde≥á ZCPR2«á  Wσá havσá alread∙á seeεá ho≈á SUB▓á anΣá ZE╪á arσ ì
  525. intimatel∙á linkeΣ witΦ ZCPR2«á  BotΦ usσ thσ Externa∞á PatΦá anΣ ì
  526. Multiplσá CommanΣá Linσ Buffe≥ Facilitie≤ oµ ZCPR2¼á anΣá ZE╪á i≤ ì
  527. further prompted for input by the ZCPR2 prompt if desired.
  528.  
  529.      T∩á refresΦ thσ reader¼á anΣ ExtendeΣ CommanΣ Processo≥ i≤ ß ì
  530. prograφ invokeΣ b∙ ZCPR▓ wheε i⌠ fail≤ t∩ finΣ thσ commanΣá alonτ ì
  531. it≤á path«á  ZCPR2¼á upoεá failinτá t∩ finΣ thσá CO═á filσá whicΦ ì
  532. correspond≤á t∩á thσ commanΣ namσ giveε t∩ it¼á caε bσ se⌠ u≡á t∩ ì
  533. eithe≥ searcΦ thσ patΦ o≥ g∩ directl∙ t∩ thσ roo⌠ oµ thσ patΦ anΣ ì
  534. looδá fo≥á aεá ExtendeΣá CommanΣá Processor«áá  Iµá found¼á ZCPR▓ ì
  535. simulate≤áá ßá commanΣá t∩á tha⌠á ExtendeΣáá CommanΣáá Processor¼ ì
  536. substitutinτ thσ user'≤ commanΣ linσ a≤ thσ argument≤ t∩ it.
  537.  
  538.      To illustrate my point, consider the following example:
  539.  
  540.      ╔á havσ ß ZE╪ filσ nameΣ MASM.ZEX¼á anΣ i⌠ perform≤ thσ samσ ì
  541. set of commands that my M80.ZEX file did above, namely:
  542.  
  543. ;  MASM.ZEX -- MACRO-80 Assembler and Linker
  544. M80 =$1
  545. ;  Please Type $^C if Error(s) Exist - ^?
  546. ERA $1.BAK
  547. ERA $1.COM
  548. L80 /P:100,$1,A:SYSLIB/S,$1/N,/U,/E
  549. ERA $1.REL
  550. ;  Assembly Complete
  551.  
  552.      ╔ typσ iε m∙ program¼á nameΣ DEMO.MAC¼ anΣ issuσ thσ commanΣ ì
  553. "MAS═ DEMO"«á  WitΦ ZE╪ a≤ m∙ ExtendeΣ CommanΣá Processor¼á ZCPR▓ ì
  554. look≤ alonτ thσ patΦ fo≥ thσ commanΣ MASM¼á fail≤ t∩ finΣ it¼ anΣ ì
  555. theεá simulate≤ thσ commanΣ "ZE╪ MAS═ DEMO"«á  Thσ abovσá commanΣ ì
  556. file is then executed with DEMO as its passed parameter!
  557.  
  558.      ╔á thinδá tha⌠ thσ abovσ examplσ illustrate≤ thσ utilit∙á oµ ì
  559. employinτ ZE╪ (o≥ SUB2⌐ a≤ aε ExtendeΣ CommanΣá Processor«á  Thi≤ ì
  560. i≤ donσ ver∙ simpl∙ iε thσ ZCPR▓ environment«  T∩ d∩ this¼ simpl∙ ì
  561. makσ ß cop∙ oµ ZEX.CO═ anΣ namσ i⌠ CMDRUN.COM«  Sincσ thi≤ i≤ thσ ì
  562. namσá iε thσ ZCPRHDR.LI┬ filσ anΣ thσ facilit∙ i≤ turneΣ on¼á yo⌡ ì
  563. now have ZEX as the Extended Command Processor.
  564.  
  565. .fo Section 9 - Named Directories                      Page   #
  566.  
  567. 9.0  Named Directories
  568.  
  569. 9.1  Overview of the Named Directory Concept
  570.  
  571.      Thσá NameΣá Director∙á Concep⌠á unde≥á ZCPR▓á i≤á ßá logica∞ ì
  572. associatioε oµ ß mnemoniπ namσ witΦ ß directory¼á whicΦ i≤ ß disδ ì
  573. anΣá use≥á area«á  WitΦ thi≤ facility¼á thσ use≥ i≤ permitteΣá t∩ ì
  574. refe≥á t∩á an∙ director∙ b∙ ß mnemoniπá name¼á anΣá thi≤á greatl∙ ì
  575. improve≤á thσ use≥ interfacσ ove≥ havinτ t∩ remembe≥ disδ letter≤ ì
  576. and numbers.
  577.  
  578.      Fo≥á instance¼á aεá environmen⌠ caε bσ se⌠ u≡ iεá whicΦá thσ ì
  579. following name assignments are made:
  580.  
  581.           A15: = ROOT         A0:  = BASE
  582.           B0:  = BBASE        B1:  = JEFF
  583.           B2:  = ROBERT       B3:  = LINDA
  584.  
  585.      WitΦá thσá nameΣá director∙á facilit∙á enabled¼áá thσá ZCPR▓ ì
  586. utilitie≤ caε refe≥ t∩ thesσ directorie≤ b∙ eithe≥ thσá DU║á forφ ì
  587. (disk and user number) or by the name:
  588.  
  589.           XDIR ROOT: = XDIR A15:
  590.  
  591.      Mos⌠á oµ thσ ZCPR▓ utilitie≤ recognizσ nameΣ directorie≤á iµ ì
  592. thσ facilit∙ i≤ enabled¼á and¼á sincσ thesσ utilitie≤ functioε t∩ ì
  593. providσá interface≤ betweeε thσ directories¼á the∙ creatσ ßá gooΣ ì
  594. workinτ environmen⌠ fo≥ usσ oµ thσ conventiona∞ CP/═ utilitie≤ a≤ ì
  595. well«á  Iεá othe≥ words¼á thσ ZCPR▓ utilitie≤ whicΦ caε dea∞ witΦ ì
  596. nameΣá directorie≤ arσ thσ onl∙ utilitie≤ witΦ whicΦá onσá shoulΣ ì
  597. cros≤á director∙á boundarie≤ iε ß ZCPR▓ systeφá anΣá conventiona∞ ì
  598. utilities¼ likσ aε edito≥ o≥ aε assembler¼ shoulΣ bσ useΣ iε onl∙ ì
  599. onσ director∙ anΣ dea∞ witΦ file≤ iε thσ curren⌠ director∙ anΣ oε ì
  600. drive A in the same user number (A$ in the vernacular).
  601.  
  602.      Fo≥ instance¼ t∩ edi⌠ ß filσ iε thσ ZCP╥ director∙ witΦ WorΣ ì
  603. Master¼á cop∙á thσá filσ int∩ ß workinτ director∙ whicΦá ha≤á thσ ì
  604. WM.HL╨á filσ iε A║á iε thσ samσ use≥ areß anΣ edi⌠á there«á  Theε ì
  605. copy it back when done:
  606.           B1>mcopy b1:=zcpr:file.txt
  607.                ...
  608.           B1>wm file.txt
  609.                ...
  610.           B1>mcopy zcpr:=file.txt
  611.  
  612.      Man∙á commercia∞ programs¼á likσ WorΣ Maste≥ anΣ WorΣá Star¼ ì
  613. arσá alread∙á programmeΣ t∩ looδ oε A║á iµ the∙ d∩ no⌠á finΣá thσ ì
  614. overla∙á the∙ neeΣ iε thσ curren⌠ directory«á  WorΣá Master¼á fo≥ ì
  615. instance¼á ha≤ ß WM.HL╨ filσ whicΦ provide≤ onlinσ documentation¼ ì
  616. anΣá b∙ workinτ oε drivσ B║á iε thσ samσ use≥ tha⌠ ß WM.HL╨á filσ ì
  617. exist≤ oε A:¼ iµ ß use≥ ask≤ fo≥ Help¼ WorΣ Maste≥ wil∞ finΣ it.
  618.  
  619.  
  620.      NameΣ Directories¼á then¼á caε providσ ß morσ human-orienteΣ ì
  621. workinτ environment«á  Thσ use≥ neeΣ n∩ longe≥ remembe≥ tha⌠á hi≤ ì
  622. command≤ arσ iε director∙ A15║ -- hσ neeΣ onl∙ remembe≥ tha⌠ ROO╘ ì
  623. contain≤á hi≤ commands¼á HEL╨ contain≤ hi≤ hel≡ files¼á ROBER╘ i≤ ì
  624. hi≤ namσ anΣ tha⌠ i≤ wherσ hσ place≤ thσ file≤ hσ i≤ workinτá on¼ ì
  625. BDS├ i≤ wherσ hi≤ ├ compile≥ is¼ etc.
  626.  
  627.      NameΣá Directorie≤ arσ supporteΣ b∙ thσ ZCPR▓ utilitie≤á anΣ ì
  628. no⌠ b∙ ZCPR▓ itself«  Fou≥ utilitie≤ arσ specificall∙ designeΣ t∩ ì
  629. dea∞á witΦ NameΣ Directories¼á anΣ thσ res⌠ oµ thσ utilitie≤á caε ì
  630. acces≤á NameΣá Directorie≤ manipulateΣ b∙ thσ firs⌠ fou≥ anΣá usσ ì
  631. them.
  632.  
  633.      Thσá fou≥á ZCPR▓ utilitie≤ whicΦ dea∞á directl∙á witΦá NameΣ ì
  634. Directories are:
  635.  
  636.           MKDIR -- create a Named Directory
  637.           LD    -- load a Named Directory into a Named Dir Buffer
  638.           PWD   -- print Working Directory and optionally all
  639.                     available Named Directories
  640.           CD    -- log into a Named Directory
  641.  
  642.  
  643.  
  644. 9.2  Creating Named Directory Files with MKDIR
  645.  
  646.      MKDI╥á i≤á useΣ t∩ creatσ NameΣ Director∙ Files¼á whicΦá arσ ì
  647. file≤ oε disδ whicΦ contaiε thσ mnemoniπ name≤ anΣ thσá disk/use≥ ì
  648. area≤ the∙ arσ associateΣ with«á  Iε essence¼ MKDI╥ i≤ aε editor«  ì
  649. I⌠á provide≤ ß scratcΦ areß iε whicΦ thσ use≥ caε se⌠ u≡ ßá nameΣ ì
  650. directory¼á revie≈ it¼á edi⌠ it¼á anΣ makσ an∙ change≤ hσ wishes«  ì
  651. Wheεá satisfied¼á thσ use≥ caε writσ i⌠ ou⌠ t∩ disδ a≤ ß filσá o≥ ì
  652. abort and throw it away.
  653.  
  654.      MKDIR is invoked with one of three forms:
  655.  
  656.           MKDIR //                      <-- Print Help
  657.           MKDIR                         <-- Interactive Mode
  658.           MKDIR dir:filename.typ        <-- Read File First
  659.                                              and Interactive Mode
  660.  
  661.      Thσá DIR║á forφá i≤á alloweΣ iε al∞ filσá specification≤á t∩ ì
  662. MKDIR¼ s∩ thσ use≥ caε prefi° ß filσ witΦ ß director∙ namσ o≥ thσ ì
  663. DU║á form«á  MKDI╥ wil∞ searcΦ alonτ thσ command-searcΦ patΦá fo≥ ì
  664. the indicated file.
  665.  
  666.  
  667.      Oncσ thσ use≥ i≤ iε MKDIR¼ hσ i≤ prompteΣ with:
  668.  
  669.           MKDIR Command (? for Help)?
  670.  
  671. anΣáá hσá ma∙á issuσá thσá followinτá single-characte≥áá command≤ ì
  672. (striking RETURN is not necessary):
  673.  
  674.           C -- Change Directory (Add, Rename, or Delete Entries)
  675.           I -- Initialize Directory
  676.           P -- Print Directory
  677.           R -- Read in a Directory File
  678.           S -- Status of MKDIR Environment
  679.           W -- Write out a Directory File
  680.           X -- Exit
  681.           ? -- Print Help Message
  682.  
  683.      Iε al∞ case≤ excep⌠ W¼á thσ scratcΦ environmen⌠ withiε MKDI╥ ì
  684. i≤ affected«  N∩ file≤ arσ affecteΣ unti∞ thσ use≥ tell≤ MKDI╥ t∩ ì
  685. write the Directory File on disk.
  686.  
  687.      Thσá ├á commanΣá (Changσá Directory⌐ i≤á useΣá t∩á edi⌠á thσ ì
  688. content≤ oµ thσ scratcΦ environmen⌠ withiε MKDIR«á  Oncσ invoked¼ ì
  689. the user is prompted with
  690.  
  691.           Directory Entry (?<RETURN> for Help)?
  692.  
  693.      Thσá use≥ i≤ iε aε inpu⌠ linσ edito≥ now¼á s∩á al∞á command≤ ì
  694. mus⌠á bσá terminateΣ b∙ strikinτ thσ RETUR╬ ke∙ beforσ the∙á takσ ì
  695. effect«  Thi≤ i≤ thσ BDO╙ inpu⌠ linσ editor¼ anΣ strikinτ ^├ wil∞ ì
  696. abort to ZCPR2.
  697.  
  698.      Thσ use≥ ma∙ typσ ┐á followeΣ b∙ strikinτ RETUR╬ t∩ finΣ ou⌠ ì
  699. what his options are (again, built-in help).
  700.  
  701.      Unde≥ thσ ├ commanΣ (Changσ Directory)¼ thσ use≥ caε perforφ ì
  702. the following functions:
  703.  
  704.           . Add a Named Directory Entry to the Directory
  705.           . Rename a Named Directory Entry in the Directory
  706.           . Delete a Named Directory Entry from the Directory
  707.           . Print the Directory
  708.           . Print a Help Message
  709.           . Exit to MKDIR Command Level
  710.  
  711.      Iε orde≥ t∩ adΣ o≥ renamσ ß NameΣ Director∙ Entry¼á thσ use≥ ì
  712. type≤ thσ "DU:dirnameó form«á  Iµ eithe≥ thσ Disδ (D⌐ o≥ Use≥ (U⌐ ì
  713. arσ omitted¼ curren⌠ disδ anΣ use≥ arσ assumed«  Thσ "dirnameó i≤ ì
  714. thσá mnemoniπá namσá associateΣá witΦá thσá directory¼á u≡á t∩á ╕ ì
  715. character≤á long«á  Iµá ßá namσá ha≤á beeεá associateΣá witΦá thσ ì
  716. indicateΣ disδ anΣ use≥ already¼á MKDI╥ wil∞ renamσ i⌠ t∩ thσ ne≈ ì
  717. namσ anΣ tel∞ yo⌡ tha⌠ i⌠ i≤ doinτ s∩ anΣ wha⌠ thσ olΣ namσá was«  ì
  718. Iµ ß namσ ha≤ no⌠ alread∙ beeε associateΣ witΦ thσ indicateΣ disδ ì
  719. and user, MKDIR will add this entry to the directory.
  720.  
  721.      Iεá orde≥ t∩ deletσ ß NameΣ Director∙ Entry¼á thσ use≥ type≤ ì
  722. onl∙ thσ "DU:ó form«á  Iµ ß namσ ha≤ alread∙ beeε associateΣ witΦ ì
  723. thi≤ disδ anΣ user¼ theε i⌠ wil∞ bσ deleted«  Iµ n∩ namσ ha≤ beeε ì
  724. associated, the user will be so informed.
  725.  
  726.      T∩á prin⌠ thσ curren⌠ director∙ fo≥ review¼á thσá use≥á neeΣ ì
  727. onl∙ strikσ thσ RETUR╬ key«  T∩ exit¼ thσ use≥ enter≤ aε ╪ (uppe≥ ì
  728. or lower case) followed by striking the RETURN key.
  729.  
  730.      Example:
  731.  
  732.           Assume the following directory:
  733.  
  734.                A15:ROOT       A10:SYS        A0:BASE
  735.                B0:DEVBASE     B1:WORK1       B2:WORK2
  736.  
  737.           If the user wishes to delete WORK1, he types
  738.  
  739.                B1:
  740.  
  741.           If the user wishes to rename WORK2 to WORK12, he types
  742.  
  743.                B2:WORK12
  744.  
  745.           If the user wishes to add WORK3 as B3:, he types
  746.  
  747.                B3:WORK3
  748.  
  749.      Iε al∞ cases¼á lower-casσ character≤ arσ converteΣ t∩ upper-ì
  750. case.
  751.  
  752.      Getting on with the commands, they are:
  753.  
  754.           C -- Change Directory (Add, Rename, or Delete Entries)
  755.           I -- Initialize Directory
  756.           P -- Print Directory
  757.           R -- Read in a Directory File
  758.           S -- Status of MKDIR Environment
  759.           W -- Write out a Directory File
  760.           X -- Exit
  761.           ? -- Print Help Message
  762.  
  763.      C has just been discussed and ? is obvious.
  764.  
  765.      ╔ i≤ useΣ t∩ initializσ thσ directory«  Thσ use≥ i≤ askeΣ iµ ì
  766. hσá i≤ surσ hσ want≤ t∩ d∩ this¼á and¼á iµ Yes¼á MKDI╥ clear≤ thσ ì
  767. scratcΦá directory«á  ╔á emphasizσá tha⌠á onl∙á thσá memory-baseΣ ì
  768. scratcΦá director∙ oµ MKDI╥ i≤ effected¼á anΣ MKDI╥ affect≤á disδ ì
  769. files only with the W (Write Directory) command.
  770.  
  771.  
  772.      ╨á i≤á useΣ t∩ Prin⌠ thσ Directory«á  Asidσ froφá thσá name≤ ì
  773. assigneΣá s∩á far¼á thσ use≥ i≤ tolΣ ho≈ man∙ entrie≤á havσá beeε ì
  774. defined so far and how many are yet to be defined.
  775.  
  776.      ╥ i≤ useΣ t∩ reaΣ iε ß Director∙ Filσ anΣ ╫ i≤ useΣ t∩ writσ ì
  777. i⌠ out«á  Wheε MKDI╥ i≤ firs⌠ invoked¼á iµ thσ commanΣ i≤á simpl∙ ì
  778. "MKDIR"¼á theεá thσá defaul⌠á director∙á filσ i≤á defineΣá t∩á bσ ì
  779. NAMES.DIR«á  Iµ thσ commanΣ i≤ "MKDI╥ dir:filename.typ"¼ theε thσ ì
  780. defaul⌠ director∙ filσ i≤ defineΣ t∩ bσ thσ indicateΣ filσ anΣ i⌠ ì
  781. i≤á reaΣ iε immediatel∙ (subsequen⌠ ╥ commanΣ i≤ no⌠á necessary)«  ì
  782. When the user issues the R command, he will be prompted with:
  783.  
  784.           Name of File (<RETURN> = filename.typ)?
  785.  
  786. Iµ hσ strike≤ RETURN¼á thσ defaul⌠ filσ i≤ read«á  Otherwise¼á hσ ì
  787. caε typσ iε ß filσ namσ oµ hi≤ choice«á  N∩ defaul⌠ filσ typσá i≤ ì
  788. assumed¼ s∩ thσ filσ ma∙ bσ an∙ name«  Thσ samσ promp⌠ appear≤ t∩ ì
  789. thσá ╫á (Write⌐ command«á  Iε botΦ cases¼á iµ thσ use≥ wishe≤á t∩ ì
  790. ente≥ hi≤ owε filσ name¼ i⌠ ma∙ bσ oµ thσ forφ "dir:filename.typó ì
  791. s∩ hσ caε reaΣ i⌠ froφ o≥ placσ i⌠ anywhere.
  792.  
  793.      Onσá note║á  ╫á wil∞ writσ bacδ t∩ thσ curren⌠ director∙á a≤ ì
  794. opposeΣá t∩á thσ director∙ thσ filσ originall∙ camσ froφá iµá thσ ì
  795. defaul⌠ forφ i≤ accepted.
  796.  
  797.      Finally¼á thσ ╙ commanΣ (Status⌐ i≤ kinΣ oµá redundant«á  I⌠ ì
  798. simply tells the user some status information on MKDIR.
  799.  
  800.  
  801.  
  802. 9.3  Disk-Based and Memory-Based Named Directories
  803.  
  804.      Thσá onl∙á purposσ oµ L─ i≤ t∩ loaΣ ß NameΣá Director∙á Filσ ì
  805. froφ disk¼á conver⌠ i⌠ int∩ thσ prope≥ forφ fo≥ memory-baseΣ use¼ ì
  806. anΣá storσá i⌠á iεá thσ memory-baseΣ NameΣá Director∙á Buffe≥á a≤ ì
  807. implementeΣá fo≥ ZCPR2«á  Thσ reasoε fo≥ thσá memory-baseΣá NameΣ ì
  808. Director∙á Buffe≥á i≤ t∩ speeΣ processinτ wheε NameΣá Directorie≤ ì
  809. arσá referenced«á  Ver∙á simply¼á al∞ thσ ZCPR▓á utilitie≤á whicΦ ì
  810. suppor⌠á NameΣ Directorie≤ perforφ thσ followinτ operation≤á wheε ì
  811. one is referenced:
  812.  
  813.           1«á  The∙ scaε thσ memory-baseΣ NameΣ Director∙á Buffe≥ ì
  814. fo≥ ß matcΦ t∩ thσ user-supplieΣ namσ anΣ usσ thi≤ definitioε fo≥ ì
  815. the name if found.
  816.  
  817.           2«á  Iµá ß memory-baseΣ NameΣ Director∙ Buffe≥á i≤á no⌠ ì
  818. availablσá o≥ thσ user-supplieΣ namσ i≤ no⌠ found¼á theε scaε thσ ì
  819. disks¼á searchinτá alonτá thσ commanΣ searcΦ patΦá fo≥á thσá filσ ì
  820. NAMES.DIR«  Iµ found¼ the∙ loaΣ it¼ scaε i⌠ fo≥ thσ user-supplieΣ ì
  821. name¼ anΣ usσ thi≤ definition«  Iµ no⌠ found¼ the∙ issuσ aε erro≥ ì
  822. message.
  823.  
  824.  
  825.      I call the reader's attention to two main points here:
  826.  
  827.           1«á  Iµ thσ user-supplieΣ namσ i≤ founΣ iε thσá memory-ì
  828. baseΣá NameΣ Director∙ Buffer¼á theε ß disδ acces≤ i≤ no⌠á needeΣ ì
  829. anΣá thσ utilit∙ run≤ faste≥ sincσ i⌠ doe≤ no⌠ havσ t∩ d∩ ßá disδ ì
  830. search.
  831.  
  832.           2«á  Iµá ßá disδ searcΦ i≤ done¼á i⌠ i≤ donσ alonτá thσ ì
  833. commanΣá searcΦ patΦ anΣ thσ firs⌠ NAMES.DI╥ filσ encountereΣá i≤ ì
  834. used«  Iε thi≤ way¼ aε differen⌠ NameΣ Director∙ structurσ may beì
  835. createΣá fo≥á wha⌠ thσ use≥ sa≈ beforσ wheε hσá wa≤á loggeΣá int∩ ì
  836. another directory.  To illustrate, consider the following:
  837.  
  838.  
  839.           The memory-based Named Directory Buffer contains:
  840.  
  841.                A0:BASE        A15:ROOT       A16:HELP
  842.  
  843.           Thσ NAMES.DI╥ filσ founΣ froφ director∙ WORK▒ contains:
  844.  
  845.                B1:WORKBASE    B2:HOME        B3:TEST1
  846.  
  847. anΣ thσ NAMES.DI╥ filσ founΣ froφ director∙ WORK▓ contains:
  848.  
  849.                B1:WBASE       B2:MYHOME      B4:TEST2
  850.  
  851.      ┴ use≥ loggeΣ int∩ WORK▒ canno⌠ acces≤ director∙ TEST2¼á anΣ ì
  852. ß use≥ loggeΣ int∩ WORK▓ canno⌠ acces≤ director∙ TEST1«á  Also¼ ß ì
  853. use≥ iε WORK▒ anΣ ß use≥ iε WORK▓ caε botΦ acces≤ B▒ anΣ B2¼á bu⌠ ì
  854. the∙ d∩ s∩ b∙ differen⌠ names«  Al∞ user≤ caε acces≤ A0¼ A15¼ anΣ ì
  855. A16, and they do it by the same names.
  856.  
  857.      ┴ conventioε ╔ likσ t∩ usσ oε m∙ system¼ bu⌠ onσ whicΦ i≤ b∙ ì
  858. n∩ mean≤ required¼á i≤ t∩ namσ thσ director∙ containinτ al∞ oµ m∙ ì
  859. command≤ a≤ ROOT¼ anΣ ╔ likσ t∩ kee≡ i⌠ u≡ ou⌠ oµ thσ wa∙ a⌠ A15«  ì
  860. B∙ beinτ iε A15¼á ╔ caε loτ int∩ i⌠ wheε ╔ kno≈ thσ command≤ wil∞ ì
  861. come from it and I want them to run as quickly as possible.
  862.  
  863.      Anothe≥á conventioεá ╔ likσ t∩ usσ i≤ t∩ placσ al∞á thσá HL╨ ì
  864. file≤á (fo≥á thσ onlinσ documentatioε system⌐ u≡á iεá A16«á  Thi≤ ì
  865. director∙á canno⌠ bσ loggeΣ into¼á bu⌠ ╔ don'⌠ wan⌠ t∩á sincσá n∩ ì
  866. command≤ residσ there«  Thσ HEL╨ prograφ caε bσ madσ t∩ finΣ theφ ì
  867. easil∙á sincσ i⌠ caε bσ se⌠ u≡ t∩ eithe≥ scaε thσ commanΣá searcΦ ì
  868. patΦ anΣ theε scaε it≤ owε interna∞ path¼á whicΦ ╔ havσ endinτ iε ì
  869. A16, or I can set up HELP to just scan its internal path.
  870.  
  871.  
  872.  
  873. 9.4  Loading Named Directory Files with LD
  874.  
  875.      L─ (LoaΣ Directory⌐ load≤ thσ NameΣ Director∙ Filσ NAMES.DI╥ ì
  876. o≥á thσá filσá specifieΣá iε thσ commanΣ linσá int∩á thσá memory-ì
  877. residen⌠á NameΣá Director∙ Buffer«á  L─ automaticall∙á scan≤á thσ ì
  878. command search path for the desired directory.
  879.  
  880.      LD is invoked by one of the following forms:
  881.  
  882.           LD //                    <-- Print Help
  883.           LD                       <-- Print Load Stats
  884.           LD filename              <-- Load filename.DIR
  885.           LD filename.typ          <-- Load filename.typ
  886.  
  887.      Notσ tha⌠ ╔ d∩ NO╘ permi⌠ ß DIR║á o≥ DU║á prefi° oε thσ filσ ì
  888. name«á  Thσá filσ t∩ bσ loadeΣ ha≤ t∩ bσ founΣ alonτ thσá commanΣ ì
  889. searcΦ path«á  ╔ diΣ thi≤ t∩ makσ L─ a≤ smal∞ a≤ possiblσ anΣ ruε ì
  890. as quickly as possible.
  891.  
  892.  
  893.  
  894. 9.5  Printing Named Directory Files and Buffers with PWD
  895.  
  896.      PWD (Print Working Directory) is used for two functions:
  897.  
  898.           1.  To print the name of the directory you currently
  899.                reside in
  900.  
  901.           2.  To print the names of all directories you can
  902.                access from where you are
  903.  
  904.      PWD is invoked by the following forms:
  905.  
  906.           PWD //                   <-- Print Help
  907.           PWD                      <-- Print Current Directory
  908.           PWD DIR                  <-- Print Directory Info
  909.  
  910.  
  911.  
  912.  
  913. 9.6  Moving About with CD
  914.  
  915.      C─á (Changσ Directory⌐ i≤ useΣ t∩ movσ froφ onσ director∙ t∩ ì
  916. anothe≥ b∙ usinτ thσ name≤ associateΣ witΦ thσá directories«á  C─ ì
  917. is invoked by one of the forms:
  918.  
  919.           CD //               <-- Print Help
  920.           CD dir or CD dir:   <-- Log into Directory
  921.  
  922.      Wheε C─ executes¼ i⌠ determine≤ thσ disδ anΣ use≥ associateΣ ì
  923. t∩ thσ namσ b∙ thσ standarΣ ZCPR▓ technique:
  924.  
  925.           1«á  C─á scan≤ thσ memory-baseΣ NameΣ Director∙á Buffe≥ ì
  926. fo≥á ß matcΦ t∩ thσ user-supplieΣ namσ anΣ use≤á thi≤á definitioε ì
  927. fo≥ thσ namσ iµ found.
  928.  
  929.           2«á  Iµá ß memory-baseΣ NameΣ Director∙ Buffe≥á i≤á no⌠ ì
  930. availablσá o≥ thσ user-supplieΣ namσ i≤ no⌠ found¼á theε C─ scan≤ ì
  931. thσ disks¼á searchinτ alonτ thσ commanΣ searcΦ patΦ fo≥ thσá filσ ì
  932. NAMES.DIR«  Iµ found¼ C─ load≤ it¼ scan≤ i⌠ fo≥ thσ user-supplieΣ ì
  933. name¼ anΣ use≤ thi≤ definition«  Iµ no⌠ found¼ C─ issue≤ aε erro≥ ì
  934. message.
  935.  
  936.  
  937.      Oncσá C─ identifie≤ thσ director∙ t∩ loτ into¼á i⌠ check≤ t∩ ì
  938. seσá iµ i⌠ i≤ ß Systeφ Director∙ (use≥ numbe≥ greate≥ thaε 1░á -- ì
  939. seσ later⌐ anΣ ask≤ fo≥ ß passworΣ iµ so«  Iµ aε invaliΣ passworΣ ì
  940. is given, CD drops the user back into his original directory.
  941.  
  942.      Iµá C─á decide≤á t∩ givσ thσ use≥ acces≤á t∩á thσá director∙ ì
  943. (valiΣá passworΣ i≤ giveε fo≥ ß Systeφ Director∙ o≥ i⌠ i≤á no⌠á ß ì
  944. Systeφ Directory)¼ theε C─ log≤ int∩ thσ directory¼ check≤ t∩ seσ ì
  945. iµ thσ filσ ST.CO═ exists¼ anΣ chain≤ t∩ i⌠ iµ i⌠ doe≤ (usinτ thσ ì
  946. Multiplσá CommanΣ Linσ Buffer)«á  Thi≤ latte≥ actioε i≤ no⌠ takeε ì
  947. if the Multiple Command Line Buffer is not available.
  948.  
  949.      ST.CO═á i≤ simpl∙ ß cop∙ oµ STARTUP.CO═ unde≥ thσá namσá ST«  ì
  950. Thσá onl∙ purposσ oµ STARTU╨ i≤ t∩ loaΣ thσ Multiplσ CommanΣ Linσ ì
  951. Buffe≥á witΦá ßá commanΣ linσ wheε i⌠á i≤á executeΣá withou⌠á an∙ ì
  952. options«á  Thi≤á commanΣ linσ ma∙ contaiε ß reasonablσ numbe≥á oµ ì
  953. commands which perform any desired set of functions.
  954.  
  955.      Iεá thσá ZCPR▓ environment¼á gooΣ candidatσ command≤á t∩á bσ ì
  956. executed by running ST via CD include the following:
  957.  
  958.           LD dirname     <-- Set up a new Memory-Based Named
  959.                               Directory Environment
  960.           PAT╚ path-ex≡  <-- Se⌠ u≡ ß ne≈ CommanΣ SearcΦ Path
  961.           MENU           <-- Invoke the MENU Preprocessor
  962.           ECHO message   <-- Print a Message to the User
  963.  
  964.  
  965.      Hence¼á thσá user'≤á environmen⌠ caε changσá drasticall∙á b∙ ì
  966. usinτá C─á t∩á loτá int∩á ß ne≈á directory«á  Thσá name≤á oµá thσ ì
  967. directorie≤ hσ caε acces≤ caε changσ (L─ change≤ thσ Memory-BaseΣ ì
  968. name≤á anΣá ß ne≈ NAMES.DI╥ filσ alonτ hi≤á commanΣá searcΦá patΦ ì
  969. change≤á thσ Disk-BaseΣ names)¼á thσ commanΣ searcΦ patΦ hσá use≤ ì
  970. caεá change¼á anΣ hσ caε eveε finΣ himselµ iε ß MEN╒á environmen⌠ ì
  971. insteaΣ oµ ß ZCPR▓ commanΣ environment.
  972.  
  973.  
  974.  
  975. 9.7  Poor Little ECHO and CD
  976.  
  977.      ECH╧ i≤ ß rathe≥ trivia∞ prograφ -- i⌠ simpl∙ echo≤ thσ tex⌠ ì
  978. following it.  It has only one form:
  979.  
  980.           ECHO text
  981.  
  982. anΣ i⌠ print≤ "textó oε thσ consolσ wheε i⌠ executes«  Wh∙ havσ ß ì
  983. program like this?  The answer is with CD and ST.
  984.  
  985.      CD¼á a≤ ╔ mentioneΣ earlier¼á automaticall∙ invoke≤ S╘ iµ i⌠ ì
  986. find≤ i⌠ iε thσ director∙ i⌠ log≤ into«á  ECH╧ i≤ provideΣ a≤ onσ ì
  987. oµ thσ command≤ S╘ coulΣ execute«  Iε thi≤ mode¼ thσ commanΣ linσ ì
  988. containinτ thσ ECH╧ commanΣ wil∞ no⌠ bσ printeΣ t∩ thσ user¼á bu⌠ ì
  989. thσ tex⌠ printeΣ b∙ ECH╧ will«á  Hence¼á ECH╧ caε bσ useΣ t∩ givσ ì
  990. the user one-line messages upon entering a new directory.
  991.  
  992.      Iµá thσ use≥ i≤ t∩ receivσ morσ thaε onσ line¼á theε ßá filσ ì
  993. caεá bσ createΣ somewherσ whicΦ contain≤ thσ tex⌠ oµ thσ message¼ ì
  994. anΣ TYP┼ caε bσ useΣ t∩ prin⌠ thσ filσ oε thσ console«  Notσ tha⌠ ì
  995. TYPE permits the DU: form, so the file can be anywhere.
  996.  
  997.  
  998.  
  999. 9.8  System Directories
  1000.  
  1001.      Therσáá exist≤áá ßá clas≤á oµá directorie≤áá calleΣáá Systeφ ì
  1002. Directorie≤ unde≥ ZCPR2«  Thesσ arσ directorie≤ whosσ use≥ numbe≥ ì
  1003. i≤á 1░ o≥ greate≥ (thi≤ ma∙ bσ changeΣ fo≥ eacΦá installatioεá b∙ ì
  1004. using GENINS).
  1005.  
  1006.      Iµá yo⌡á issuσá thσá commanΣ "PW─á DIRóá froφá ßá non-Systeφ ì
  1007. directory¼ PW─ ma∙ tel∞ yo⌡ tha⌠ somσ directorie≤ arσ hidden«  I⌠ ì
  1008. wil∞á no⌠á displa∙á thσ name≤ oµ thσ Systeφá Directorie≤á t∩á yo⌡ ì
  1009. unless you reside in a System Directory.
  1010.  
  1011.      Systeφá Directorie≤á arσ fo≥ privelegeΣ users«á  Iµ thσá DU║ ì
  1012. forφ fo≥ switchinτ betweeε directorie≤ i≤ no⌠ available¼ thσ onl∙ ì
  1013. wa∙ t∩ switcΦ betweeε directorie≤ i≤ b∙ mean≤ oµ thσ C─á command«  ì
  1014. CD¼á wheεá i⌠á realize≤ tha⌠ yo⌡ havσ giveε thσ namσ oµ ßá Systeφ ì
  1015. Directory¼á ask≤á yo⌡ fo≥ ß password«á  Yo⌡ mus⌠ correctl∙á ente≥ ì
  1016. thi≤á passworΣá beforσá C─ wil∞ allo≈ yo⌡á t∩á ente≥á thσá Systeφ ì
  1017. Directory.
  1018.  
  1019.      Hence¼á tw∩ level≤ oµ protectioε arσ affordeΣ t∩ ß systeφ b∙ ì
  1020. disablinτ thσ DU║ forφ anΣ usinτ nameΣ directories«  Thσ firs⌠ i≤ ì
  1021. tha⌠á ß non-privelegeΣ use≥ canno⌠ finΣ ou⌠ wha⌠ thσ name≤ oµ thσ ì
  1022. Systeφá Directorie≤á arσá b∙ usinτ PW─ (i⌠ i≤ u≡á t∩á thσá Systeφ ì
  1023. Manage≥á t∩á insurσ tha⌠ n∩ othe≥ too∞ i≤ availablσ t∩á thσá non-ì
  1024. privelegeΣ use≥ t∩ allo≈ hiφ t∩ finΣ ou⌠ thi≤ information)«á  Thσ ì
  1025. seconΣá i≤ that¼á eveε iµ thσ non-privelegeΣ use≥ founΣ ou⌠á wha⌠ ì
  1026. thσá name≤á oµá thσ Systeφ Directorie≤á are¼á hσá stil∞á need≤á ß ì
  1027. password to enter them.
  1028.  
  1029.  
  1030. 9.9  Sample Sessions
  1031.  
  1032.      Thσ followinτ frame≤ arσ sample≤ oµ actua∞ termina∞ session≤ ì
  1033. whicΦá illustratσá severa∞ oµ thσ point≤ discusseΣ iεá thi≤á HEL╨ ì
  1034. file«á  ╔ havσ placeΣ comments¼á preceedeΣ b∙ <<¼ ou⌠ t∩ thσ sidσ ì
  1035. t∩á hel≡á yo⌡ alonτ iε you≥ readinτ oµ thσ session≤ anΣ t∩á poin⌠ ì
  1036. out key features I am trying to illustrate.
  1037.  
  1038.  
  1039. B7>mkdir
  1040. MKDIR  Version 1.2
  1041. MKDIR Command (? for Help)? ?           << Print Help
  1042. MKDIR Commands are --
  1043.         C -- Change Directory (Add/Rename/Delete Entries)
  1044.         I -- Initialize Directory
  1045.         P -- Print Directory
  1046.         R -- Read Directory File
  1047.         S -- Status of MKDIR Environment
  1048.         W -- Write Directory File
  1049.         X -- Exit Program
  1050.  
  1051. MKDIR Command (? for Help)? R           << Read in File 
  1052. Name of File (<RETURN> = NAMES   .DIR)?      << Default from Path
  1053.  
  1054. MKDIR Command (? for Help)? P           << Print Directory
  1055. Disk A --
  1056.      0: R-BASE       1: R-ASM        2: R-BDSC       3: R-PAS   
  1057.      5: R-BASIC      7: R-WS         8: R-CAT        9: R-DBASE 
  1058.     10: SYS         11: ZCPR        15: ROOT        16: HELP    
  1059. Disk B --
  1060.      0: DEV-BASE     1: ASM          2: BDSC         3: PAS     
  1061.      4: SCRATCH      5: BASIC        7: WS           8: CAT     
  1062.      9: DBASE   
  1063. Disk C --
  1064.      0: BACKUP  
  1065.  22 Entries in Directory
  1066.  
  1067.  
  1068. MKDIR Command (? for Help)? S           << Status
  1069. ** MKDIR Status **
  1070.  
  1071.  22 Entries in Directory
  1072.  42 Empty Entries Remaining
  1073.  
  1074. Working File Name: NAMES   .DIR
  1075.  
  1076. No Changes made to Directory since Startup
  1077. File has been loaded
  1078.  
  1079. MKDIR Command (? for Help)? C           << Enter Change Mode
  1080. ** MKDIR Change Mode **
  1081. Directory Entry (?<RETURN> for Help)? ? << Print Help
  1082.  
  1083. MKDIR Change Mode --
  1084.         You may issue the following commands at this point:
  1085.  
  1086.                 DU:dirname      <-- Create/Rename Dir Entry
  1087.                 DU:             <-- Delete Dir Entry
  1088.                 <RETURN>        <-- Print Directory
  1089.                 X               <-- Exit
  1090.                 ?               <-- Print this Help
  1091.  
  1092. Directory Entry (?<RETURN> fo Help)? b1:          << Delete
  1093.         Deleting ASM      --  21 Entries Remaining
  1094. Directory Entry (?<RETURN> for Help)? c2:newdir   << Add/Rename
  1095.         Adding NEWDIR   --  22 Entries in Directory, Room for  42 More
  1096. Directory Entry (?<RETURN> for Help)? b2:
  1097.         Deleting BDSC     --  21 Entries Remaining
  1098. Directory Entry (?<RETURN> for Help)? b3:
  1099.         Deleting PAS      --  20 Entries Remaining
  1100. Directory Entry (?<RETURN> for Help)? b1:mydir
  1101.         Adding MYDIR    --  21 Entries in Directory, Room for  43 More
  1102. Directory Entry (?<RETURN> for Help)? b0:d-base
  1103.         Renaming DEV-BASE --  21 Entries in Directory, Room for  43 More
  1104.  
  1105. Directory Entry (?<RETURN> for Help)?             << Print Dir
  1106. Disk A --
  1107.      0: R-BASE       1: R-ASM        2: R-BDSC       3: R-PAS   
  1108.      5: R-BASIC      7: R-WS         8: R-CAT        9: R-DBASE 
  1109.     10: SYS         11: ZCPR        15: ROOT        16: HELP    
  1110. Disk B --
  1111.      0: D-BASE       1: MYDIR        4: SCRATCH      5: BASIC   
  1112.      7: WS           8: CAT          9: DBASE   
  1113. Disk C --
  1114.      0: BACKUP       2: NEWDIR  
  1115.  21 Entries in Directory
  1116. Directory Entry (?<RETURN> for Help)? x      << Exit
  1117. MKDI╥ CommanΣ (┐ fo≥ Help)┐ ╫                <╝ Writσ to Disk
  1118. Name of File (<RETURN> = NAMES   .DIR)? temp.dir  << New File
  1119. Writing Directory to Disk ... Done
  1120.  
  1121.  
  1122. MKDIR Command (? for Help)? I                << Init Dir
  1123.         Are you sure you want to Initialize the Directory (Y/N/<CR>=N)? Y
  1124.  
  1125. MKDIR Command (? for Help)? P                << Print New Dir
  1126. Empty Directory
  1127. MKDIR Command (? for Help)? C                << Enter Names
  1128. ** MKDIR Change Mode **
  1129. Directory Entry (?<RETURN> for Help)? a15:root
  1130.         Adding ROOT     --   1 Entries in Directory, Room for  63 More
  1131. Drectory Entry (?<RETURN> for Help)? a0:base
  1132.         Adding BASE     --   2 Entries in Directory, Room for  62 More
  1133. Directory Entry (?<RETURN> for Help)? b1:work1
  1134.         Adding WORK1    --   3 Entries in Directory, Room for  61 More
  1135. Directory Entry (?<RETURN> for Help)? b2:work2
  1136.         Adding WORK2    --   4 Entries in Directory, Room for  60 More
  1137. Directory Entry (?<RETURN> for Help)? b3:work3
  1138.         Adding WORK3    --   5 Entries in Directory, Room for  59 More
  1139.  
  1140. Directory Entry (?<RETURN> for Help)?        << Print Dir
  1141. Disk A --
  1142.      0: BASE        15: ROOT    
  1143. Disk B --
  1144.      1: WORK1        2: WORK2        3: WORK3   
  1145.   5 Entries in Directory
  1146. Directory Entry (?<RETURN> for Help)? b0:workbase
  1147.         Adding WORKBASE --   6 Entries in Directory, Room for  58 More
  1148. Directory Entry (?<RETURN> for Help)? x      << Exit
  1149. MKDIR Command (? for Help)? P                << Print Again
  1150. Disk A --
  1151.      0: BASE        15: ROOT    
  1152. Disk B --
  1153.      0: WORKBASE     1: WORK1        2: WORK2        3: WORK3   
  1154.   6 Entries in Directory
  1155. MKDIR Command (? for Hep)? W                 << Write to Disk
  1156. Name of File (<RETURN> = TEMP    .DIR)? temp2.dir << New File
  1157. Writing Directory to Disk ... Done
  1158.  
  1159. MKDIR Command (? for Help)? R           << Read in File
  1160. Name of File (<RETURN> = TEMP2   .DIR)? temp.dir
  1161. MKDIR Command (? for Help)? P           << Look at it
  1162. Disk A --
  1163.      0: R-BASE       1: R-ASM        2: R-BDSC       3: R-PAS   
  1164.      5: R-BASIC      7: R-WS         8: R-CAT        9: R-DBASE 
  1165.     10: SYS         11: ZCPR        15: ROOT        16: HELP    
  1166. Disk B --
  1167.      0: D-BASE       1: MYDIR        4: SCRATCH      5: BASIC   
  1168.      7: WS           8: CAT          9: DBASE   
  1169. Disk C --
  1170.      0: BACKUP       2: NEWDIR  
  1171.  21 Entries in Directory
  1172.  
  1173.  
  1174. MKDIR Command (? for Help)? R           << Read in Another
  1175. Name of File (<RETURN> = TEMP    .DIR)? temp2.dir
  1176. MKDIR Command (? for Help)? P           << Look at it
  1177. Disk A --
  1178.      0: BASE        15: ROOT    
  1179. Disk B --
  1180.      0: WORKBASE     1: WORK1        2: WORK2        3: WORK3   
  1181.   6 Entries in Directory
  1182. MKDIR Command (? for Help)? X           << Exit
  1183.  
  1184. <╝ ╔ havσ no≈ createΣ ▓ ne≈ directories¼ TEMP.DI╥ anΣ TEMP2.DIR
  1185.  
  1186.  
  1187. B7>mkdir temp2.dir                 << MKDIR and Read File
  1188. MKDIR  Version 1.2
  1189. MKDIR Command (? for Help)? P      << Print
  1190. Disk A --
  1191.      0: BASE        15: ROOT    
  1192. Dik B --
  1193.      0: WORKBASE     1: WORK1        2: WORK2        3: WORK3   
  1194.   6 Entries in Directory
  1195. MKDIR Command (? for Help)? C      << Change
  1196. ** MKDIR Change Mode **
  1197. Directory Entry (?<RETURN> for Help)? a4:help
  1198.         Adding HELP     --   7 Entries in Directory, Room for  57 More
  1199. Directory Entry (?<RETURN> for Help)? x
  1200. MKDIR Command (? for Help)? R      << Read in file and throw away
  1201. Name of File (<RETURN> = TEMP2   .DIR)?      <<  ... changes
  1202.  
  1203. MKDIR Command (? for Help)? C      << Change this file instead
  1204. ** MKDIR Change Mode **
  1205. Directory Entry (?<RETURN> for Help)? a16:help
  1206.         Adding HELP     --   7 Entries in Directory, Room for  57 More
  1207. Directory Entry (?<RETURN> for Help)? 
  1208. Disk A --
  1209.      0: BASE        15: ROOT        16: HELP    
  1210. Disk B --
  1211.      0: WORKBASE     1: WORK1        2: WORK2        3: WORK3   
  1212.   7 Entries in Directory
  1213. Directory Entry (?<RETURN> for Help)? x
  1214. MKDIR Command (? for Help)? X      << Exit without saving first
  1215.  
  1216. Directory has changed since last Write       << MKDIR caught me
  1217. Do you want to write Directory to Disk first (Y/N/<CR>=Y)?Y
  1218.  
  1219. Name of File (<RETURN> = TEMP2   .DIR)?      << Save file
  1220. Writing Directory to Disk ... Done
  1221.  
  1222.  
  1223. B7>dir *.dir
  1224. TEMP    .DIR  |  TEMP2   .DIR
  1225. B7>pwd //                          << PWD Help
  1226. PWD, Version 1.1
  1227.         PWD is a ZCPR2 named directory display utility
  1228. (PWD=Print Working Directory).  Command Forms are:
  1229.                 PWD     <-- Print Current Info
  1230.                 PWD DIR <-- Print Available Directories
  1231.                 PWD //  <-- Print Help Message
  1232.  
  1233. B7>pwd                             << Print Current Dir
  1234. PWD, Version 1.1
  1235.  
  1236. ** Current Directory **
  1237.         B 7: WS      
  1238.  
  1239. B7>pwd dir                         << Print Known Dirs
  1240. PWD, Version 1.1
  1241.  
  1242. ** Directory Display **
  1243.  
  1244.         ** Named Directory Memory-Based Definitions **
  1245.   3 Directory Entries Total (  2 Directories Hidden) --
  1246. A --
  1247.    0: BASE    
  1248.  
  1249. Strike Any Key to Continue - 
  1250.  
  1251.         ** Named Directory  Disk-Based  Definitions **
  1252.  22 Directory Entries Total (  4 Directories Hidden) --
  1253. A --
  1254.    0: R-BASE     1: R-ASM      2: R-BDSC     3: R-PAS   
  1255.    5: R-BASIC    7: R-WS       8: R-CAT      9: R-DBASE 
  1256. B --
  1257.    0: DEV-BASE   1: ASM        2: BDSC       3: PAS     
  1258.    4: SCRATCH    5: BASIC      7: WS         8: CAT     
  1259.    9: DBASE   
  1260. C --
  1261.   0: BACKUP  
  1262.  
  1263. ** Current Directory **
  1264.         B 7: WS      
  1265. B7>10:                   << Enter System Dir to see all
  1266.  
  1267.  
  1268. B10>pwd dir              << Now look at dirs
  1269. PWD, Version 1.1
  1270.  
  1271. ** Directory Display **
  1272.  
  1273.         ** Named Directory Memory-Based Definitions **
  1274.   3 Directory Entries Total (  0 Directories Hidden) --
  1275. A --
  1276.    0: BASE      15: ROOT      16: HELP    
  1277.  
  1278. Strike Any Key to Continue - 
  1279.  
  1280.         ** Named Directory  Disk-Based  Definitions **
  1281.  22 Directory Entries Total (  0 Directories Hidden) --
  1282. A --
  1283.    0: R-BASE     1: R-ASM      2: R-BDSC     3: R-PAS   
  1284.    5: R-BASIC    7: R-WS       8: R-CAT      9: R-DBASE 
  1285.   10: SYS       11: ZCPR      15: ROOT      16: HELP    
  1286. B --
  1287.    0: DEV-BASE   1: ASM        2: BDSC       3: PAS     
  1288.    4: SCRATCH    5: BASIC      7: WS         8: CAT     
  1289.    9: DBASE   
  1290. C --
  1291.    0: BACKUP  
  1292.  
  1293. ** Current Directory **
  1294.         Noname
  1295. B10>ld //                << LD Help
  1296. LD  Version 1.1
  1297.         LD is the Load Directory program for ZCPR2.
  1298. The functions of LD are to load the memory-resident
  1299. named directory uffer from the specified or implied
  1300. disk file and to display the contents of the named
  1301. directory buffer.
  1302.  
  1303.         The forms of the LD command are --
  1304.  
  1305.                 LD              <-- Display Loaded Directory
  1306.                 LD filename     <-- Load filename.DIR
  1307.                 LD filename.typ <-- Load filename.typ
  1308.                 LD //           <-- Print this Help Message
  1309.  
  1310.  
  1311. B10>ld                   << Print Status
  1312. LD  Version 1.1
  1313. **********************************************
  1314. ** Memory-Based Named Directory Definitions **
  1315. ** Number of Entries Permitted:  50         **
  1316. ** Number of Entries Loaded:   3            **
  1317. **********************************************
  1318.         -- Named Directory Display --
  1319. A --
  1320.   0: BASE     15: ROOT     16: HELP    
  1321.  
  1322. ** Current Directory **
  1323.         Not Named in Directory Buffer
  1324. B10>ld ld                << Load a Directory (LD.DIR)
  1325. LD  Version 1.1
  1326. Load Complete
  1327.  
  1328. B10>pwd dir              << Print new environ
  1329. PWD, Version 1.1
  1330.  
  1331. ** Diectory Display **
  1332.  
  1333.         ** Named Directory Memory-Based Definitions **
  1334.  13 Directory Entries Total (  0 Directories Hidden) --
  1335. A --
  1336.    0: BASE      10: SYS       11: ZCPR      15: ROOT    
  1337. B --
  1338.    0: DEV-BASE   1: ASM        2: BDSC       3: PAS     
  1339.    5: BASIC      7: WS         8: CAT        9: DBASE   
  1340. C --
  1341.    0: BACKUP  
  1342.  
  1343. Strike Any Key to Continue - 
  1344.  
  1345.         ** Named Directory  Disk-Based  Definitions **
  1346.  22 Directory Entries Total (  0 Directories Hidden) --
  1347. A --
  1348.    0: R-BASE     1: R-ASM      2: R-BDSC     3: R-PAS   
  1349.    5: R-BASIC    7: R-WS       8: R-CAT      9: R-DBASE 
  1350.   10: SYS       11: ZCPR      15: ROOT      16: HELP    
  1351. B --
  1352.    0: DEV-BASE   1: ASM        2: BDSC       3: PAS     
  1353.    4: SCRATCH    5: BASIC      7: WS         8: CAT     
  1354.    9: DBASE   
  1355. C --
  1356.    0: BACKUP  
  1357.  
  1358. ** Current Directory **
  1359.         Noname
  1360.  
  1361.  
  1362. B10>7:;pwd dir           << Print same environ from non-Sys user
  1363. PWD, Version 1.1
  1364.  
  1365. ** Directory Display **
  1366.  
  1367.         ** Named Directory Memory-Based Definitions **
  1368.  3 Directory Entries Total (  3 Directories Hidden) --
  1369. A --
  1370.    0: BASE    
  1371. B --
  1372.    0: DEV-BASE   1: ASM        2: BDSC       3: PAS     
  1373.    5: BASIC      7: WS         8: CAT        9: DBASE   
  1374. C --
  1375.    0: BACKUP  
  1376.  
  1377. Strike Any Key to Continue - 
  1378.  
  1379.         ** Named Directory  Disk-Based  Definitions **
  1380.  22 Directory Entries Total (  4 Directories Hidden) --
  1381. A --
  1382.    0: R-BASE     1: R-ASM      2: R-BDSC     3: R-PAS   
  1383.    5: R-BASIC    7: R-WS       8: R-CAT      9: R-DBASE 
  1384. B --
  1385.    0: DEV-BASE  1: ASM        2: BDSC       3: PAS     
  1386.    4: SCRATCH    5: BASIC      7: WS         8: CAT     
  1387.    9: DBASE   
  1388. C --
  1389.    0: BACKUP  
  1390.  
  1391. ** Current Directory **
  1392.         B 7: WS      
  1393.  
  1394. B7>ld temp2;pwd dir           << Load one of my new environs
  1395. LD  Version 1.1
  1396. Load Complete
  1397. PWD, Version 1.1
  1398.  
  1399. ** Directory Display **
  1400.  
  1401.         ** Named Directory Memory-Based Definitions **
  1402.   7 Directory Entries Total (  2 Directories Hidden) --
  1403. A --
  1404.    0: BASE    
  1405. B --
  1406.    0: WORKBASE   1: WORK1      2: WORK2      3: WORK3   
  1407.  
  1408. Strike Any Key to Coninue - 
  1409.  
  1410.  
  1411.         ** Named Directory  Disk-Based  Definitions **
  1412.  22 Directory Entries Total (  4 Directories Hidden) --
  1413. A --
  1414.    0: R-BASE     1: R-ASM      2: R-BDSC     3: R-PAS   
  1415.    5: R-BASIC    7: R-WS       8: R-CAT      9: R-DBASE 
  1416. B --
  1417.    0: DEV-BASE   1: ASM        2: BDSC       3: PAS     
  1418.    4: SCRATCH    5: BASIC      7: WS         8: CAT     
  1419.    9: DBASE   
  1420. C --
  1421.    0: BACKUP  
  1422.  
  1423. ** Current Directory **
  1424.         B 7: WS      
  1425.  
  1426. B7>ld ld                 << Load Standard Environ
  1427. LD  Version 1.1
  1428. Load Complete  
  1429. B7>cd cat                << CD into CAT Directory
  1430. CD Version 2.3
  1431.  
  1432. MENU  Version 1.4        << MENU automatically comes up!
  1433.  
  1434.  
  1435.                         Disk Cataloging System
  1436.  
  1437. Catalog Update Functions --
  1438.         1 - Update Disks on C: into a Temporary File
  1439.         2 - Update the Disk on C: into the Archival Disk File
  1440.         3 - Update the Disk on C: into the Active Disk File
  1441.  
  1442. Merge the Temporary File into --
  1443.         4 - The Archival Disk File      5 - The Active Disk File
  1444.  
  1445. Backup --
  1446.         6 - The Archival Disk File      7 - The Active Disk File
  1447.  
  1448. Scan --
  1449.         A- The Archival Disk Catalog    B - The Active Disk Catalog
  1450.  
  1451. Miscellaneous Functions --
  1452.         D - Delete TEMP and BAK Files   T - Display the Date and Time
  1453.         X - Display Disk Directory      Z - Issue Any ZCPR2 Command
  1454.  
  1455. Command (<CR>=Menu, ^C=ZCPR2) - A       << Scan Catalog
  1456. Input Files and Disks -- mkdir.mac...............................
  1457.  
  1458.  
  1459. CATALOG II  Version 5.3
  1460. Catalog File:         MASTER  .CAT
  1461. ++ SCAN Catalog Function ++
  1462. Date of Last Write/Merge:  15 Jan 83
  1463.  
  1464. CATALOG File Name: MASTER  .CAT   Date/Comment: 15 Jan 83
  1465. Filename.Typ   Diskname.Dsk   Diskname.Dsk   Diskname.Dsk
  1466. MKDIR   .MAC   BACK015 .J01   C&ASM   .J06   SRC015  .J00
  1467. ++ SCAN Function Complete ++
  1468. MENU  Version 1.4 Strike Any Key -           << Give user time
  1469.  
  1470.  
  1471.                         Disk Cataloging System
  1472.  
  1473. Catalog Update Functions --
  1474.         1 - Update Disks on C: into a Temporary File
  1475.         2 - Update the Disk on C: into the Archival Disk File
  1476.         3 - Update the Disk on C: into the Active Disk File
  1477.  
  1478. Merge the Temporary File into --
  1479.         4 - The Archival Disk File      5 - The Active Disk File
  1480.  
  1481. Backp --
  1482.         6 - The Archival Disk File      7 - The Active Disk File
  1483.  
  1484. Scan --
  1485.         A - The Archival Disk Catalog   B - The Active Disk Catalog
  1486.  
  1487. Miscellaneous Functions --
  1488.         D - Delete TEMP and BAK Files   T - Display the Date and Time
  1489.         X - Display Disk Directory      Z - Issue Any ZCPR2 Command
  1490.  
  1491. Command (<CR>=Menu, ^C=ZCPR2) - Z       << Enter Command Line
  1492. Input Command -- cd ws...................................
  1493. CD, Version 2.3                    << Return to Dir WS
  1494. MENU  Version 1.4                  << MENU tries, but none there
  1495.  
  1496. B7>                 << At Command Level Again
  1497.  
  1498.