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