home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / DOC / Z3USER.SI < prev    next >
Text File  |  2000-06-30  |  55KB  |  1,882 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.    ***********************************************************
  10.    *                                                         *
  11.    *          USER'S PERSPECTIVE -- An Introduction          *
  12.    *                                                         *
  13.    *                           for                           *
  14.    *                                                         *
  15.    *  ZCPR3 -- Z80 Command Processor Replacement, Version 3  *
  16.    *                                                         *
  17.    ***********************************************************
  18.  
  19.  
  20.                                by
  21.  
  22.                           Richard Conn
  23.  
  24.  
  25.  
  26.                        User's Perspective
  27.                           11 June 1984
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.                         ZCPR3 Version 3.0
  35.  
  36.                Copyright (c) 1984 by Richard Conn
  37.                        All Rights Reserved
  38.  
  39.  
  40.  
  41.      Thσáá ZCPR│á System¼áá includinτá it≤á utilitie≤áá anΣáá it≤ ì
  42. documentatioε files¼á i≤ copyright¼á 1984¼á b∙ RicharΣ Conn«  Thσ ì
  43. appendi° list≤ al∞ file≤ covereΣ b∙ thi≤ copyright.
  44.  
  45.  
  46.  
  47.      CP/═ i≤ ß registereΣ trademarδ oµ Digita∞ Research.
  48.      WordStar is a registered trademark of Micropro.
  49.  
  50. .paè.pn 1
  51. .po 5
  52. .he                 ZCPR3 from the User's Perspective
  53.  
  54.  
  55.  
  56.         THE USER'S PERSPECTIVE - AN INTRODUCTION TO ZCPR3
  57.  
  58.                          by Richard Conn
  59.  
  60.  
  61.  
  62.  
  63.      Thσá ZCPR│ Systeφ i≤ ß collectioε oµ program≤á baseΣá arounΣ ì
  64. thσá ZCPR│á CommanΣ Processor«á  Forminτ aε integrateΣ systeφá oµ ì
  65. tools¼á thσá ZCPR│á Systeφá offer≤ ßá numbe≥á oµá convenien⌠á anΣ ì
  66. sometime≤á morσá user-friendl∙á feature≤ t∩ thσá CP/═á 2.▓á user«  ì
  67. Maintaininτá CP/═á 2.▓á compatibilit∙á a⌠ al∞á time≤á (al∞á knowε ì
  68. commercia∞áá CP/═áá 2.▓áá program≤á ruεáá unde≥áá ZCPR│áá withou⌠ ì
  69. modification)¼á thσ ZCPR│ Systeφ bring≤ t∩ it≤ user≤ ß variet∙ oµ ì
  70. tool≤á whicΦá conceptuall∙á implemen⌠á feature≤á founΣá iεá othe≥ ì
  71. operatinτá systems¼á includinτ TOPS-2░ (1)¼á UNI╪ (2)¼á NO╙á (3)¼ ì
  72. MULTIC╙á (4)¼á anΣ VM╙ (5)¼á anΣ tool≤ whicΦá implemen⌠á feature≤ ì
  73. uniquσ t∩ thσ ZCPR│ Systeφ (t∩ m∙ knowledge).
  74.  
  75.      Thi≤á Introductioεá i≤ intendeΣ t∩ outlinσ somσ oµá thσá ke∙ ì
  76. feature≤á oµá thσá ZCPR│á Systeφá froφá thσá user'≤á perspective«  ì
  77. Knowledgσ oµ CP/═ 2.▓ i≤ assumed¼á anΣ somσ experiencσ witΦ ZCPR▓ ì
  78. i≤á usefu∞á iε orde≥ t∩ understanΣ thσ followinτ presentatioεá iε ì
  79. detail«á  Thσá majo≥á feature≤á oµ thσá ZCPR│á Systeφá whicΦá arσ ì
  80. describeΣ iε thi≤ Introductioε include:
  81.  
  82.           o Directories       o Wheel Users and Passwords
  83.           o Command Lines     o Command Processing
  84.           o Error Handlers         o Resident Command Packages
  85.           o Aliases                o Flow Command Packages
  86.           o "Secure" Systems       o ZEX Command Files
  87.           o Shells            o Z3TCAP
  88.                o Variable          o Screen-Oriented Terminal
  89.                o MENU                   Configuration
  90.                o VFILER
  91.  
  92.  
  93.      Thσá followinτ screeε display≤ arσ intendeΣ t∩ conve∙á idea≤ ì
  94. only«á  Thesσá display≤ werσ generateΣ whilσ thσ ZCPR│ Systeφ wa≤ ì
  95. beinτá developed¼á anΣ thσ versioε number≤ anΣ operatioεá oµá thσ ì
  96. ZCPR│á utilitie≤á a≤ distributeΣ diffe≥ froφ thosσ showε iεá thi≤ ì
  97. document.
  98.                       ---- Trademarks ----
  99.      (1) TOPS-20 -  Digital Equipment Corporation
  100.      (2) UNIX -     Bell Laboratories
  101.      (3) NOS -      Control Data Corporation
  102.      (4) MULTICS -  Honeywell
  103.      (5) VMS -      Digital Equipment Corporation
  104.  
  105. .fo ZCPR3 Directories                                  #
  106.  
  107. 1. D i r e c t o r i e s 
  108.  
  109. ááááááááá      Unde≥ ZCPR3¼ ß logica∞ disδ caε bσ though⌠ oµ ì
  110. ááááááááát∩á contaiε tw∩ type≤ oµ directories«á  Onσ i≤á thσ ì
  111. áááááááááphysica∞ directory¼á whicΦ i≤ usuall∙ locateΣá jus⌠ ì
  112. áááááááááafte≥á thσá systeφ track≤ oεá mos⌠á floppies«á  Thσ ì
  113. áááááááááothe≥ i≤ thσ logica∞ directory¼á iε whicΦ eacΦ filσ ì
  114. áááááááááoεá ßá disδá ha≤ ß use≥ numbe≥ associateΣá witΦá i⌠ ì
  115. ááááááááá(froφ ░ t∩ 31)¼á anΣ thσ combinatioε oµ ß disδá anΣ ì
  116. áááááááááuse≥áá numbe≥áá identifie≤á uniquel∙á thσáá logica∞ ì
  117. ááááááááádirector∙ iε whicΦ thσ filσ belongs«á  DDT.CO═á ma∙ ì
  118. ááááááááábσ locateΣ oε disδ A¼á use≥ 5¼á whilσ tw∩ copie≤ oµ ì
  119. áááááááááED.CO═ ma∙ bσ locateΣ oε disδ A¼ use≥ ╡ anΣ disδ A¼ ì
  120. áááááááááuse≥ 0«á  Thσ combinatioε oµ thσ disδ referencσ anΣ ì
  121. áááááááááuse≥á numbe≥ identifie≤ thσ logica∞ director∙ whicΦ ì
  122. áááááááááa file belongs in.
  123.  
  124. ááááááááá      Thσ logica∞ director∙ i≤ usuall∙ indicateΣ a≤ ì
  125. ááááááááápar⌠á oµ thσ prompt«á  Iε thσ example≤á below¼á thσ ì
  126. áááááááááreade≥ caε seσ thσ logica∞ director∙ referreΣ t∩ b∙ ì
  127. áááááááááit≤ disδ anΣ use≥ numbe≥ and¼á iε mos⌠ cases¼á b∙ ß ì
  128. ááááááááánamσ associateΣ witΦ thσ disδ anΣ use≥ number«  Thσ ì
  129. áááááááááfollowinτá example≤á illustratσ thσ usσ oµá thσá D╒ ì
  130. ááááááááá(disk/user⌐ forφ anΣ thσ DI╥ (director∙ name⌐á forφ ì
  131. ááááááááát∩ loτ int∩ variou≤ use≥ area≤ anΣ directories.
  132.  
  133. A0:BASE>15:
  134. A15:ROOT>4:
  135. A4>b:
  136. B4:WORK4>0:
  137. B0:WORK1>a14:
  138. A14>a0:
  139. A0:BASE>root:
  140. A15:ROOT>work2:
  141.  
  142. ááááááááá      Command≤ ma∙ usσ eithe≥ thσ D╒ o≥ DI╥ forφ t∩ ì
  143. áááááááááreferencσá thσ logica∞ directorie≤ the∙ arσ t∩á ac⌠ ì
  144. áááááááááupon«  Interpretatioε oµ thσ namσ oµ ß director∙ i≤ ì
  145. ááááááááábuil⌠á int∩ thσ ZCPR│ commanΣ processo≥ itself¼á s∩ ì
  146. áááááááááever∙á commanΣ caε worδ witΦ thσ D╒ anΣá DI╥á form≤ ì
  147. áááááááááwitΦ equa∞ ease.
  148.  
  149. ááááááááá      Command≤á likσá DBAS┼ whicΦ don'⌠ kno≈á abou⌠ ì
  150. áááááááááthσ D╒ o≥ DI╥ form≤ wil∞ usuall∙ jus⌠ pa∙ attentioε ì
  151. ááááááááát∩á thσá disδ referenceΣ anΣ no⌠ thσá use≥á number«  ì
  152. áááááááááFo≥ command≤ likσ these¼ i⌠ i≤ usuall∙ bes⌠ t∩ jus⌠ ì
  153. áááááááááemplo∙á thσá disδ lette≥ wheεá referrinτá t∩á thei≥ ì
  154. áááááááááarguments.
  155.  
  156.  
  157. B1:WORK2>dir base:
  158.  RHEX    .COM    2 
  159.             A0:BASE --     1 Files Using     2K (  206K Left)
  160.  
  161. B1:WORK2>base:
  162.  
  163. ááááááááá      Thσáá PW─á commanΣá display≤á thσá name≤á anΣ ì
  164. áááááááááassociateΣá D╒á form≤á oµá al∞á directorie≤áá whicΦ ì
  165. ááááááááácurrentl∙ááá havσááá name≤áá assigneΣáá t∩ááá them«  ì
  166. áááááááááAdditionally¼ wheε usinτ thσ DI╥ forφ t∩ loτ int∩ ß ì
  167. ááááááááádirector∙ (seσ PRIVAT┼ below)¼ ß director∙ s∩ nameΣ ì
  168. áááááááááma∙ havσ ß passworΣ associateΣ witΦ it«  Iµ so¼ thσ ì
  169. áááááááááuse≥ i≤ prompteΣ fo≥ thi≤ passworΣ anΣ thσá commanΣ ì
  170. áááááááááwil∞á fai∞á iµá hσá doe≤ no⌠á providσá thσá correc⌠ ì
  171. ááááááááápassword.
  172.  
  173. A0:BASE>pwd
  174. PWD, Version 1.0
  175.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  176. ----  --------    ----  --------    ----  --------    ----  --------    
  177. A  0: BASE        A  1: PRIVATE     A 15: ROOT        
  178.  
  179. B  0: WORK1       B  1: WORK2       B  2: WORK3       B  4: WORK4       
  180. B  5: TEXT        B  6: MAIL        
  181.  
  182. A0:BASE>private:
  183. PW? unknown
  184.  
  185. A0:BASE>private:
  186. PW? mypass
  187.  
  188. A1:PRIVATE>dir
  189.             A1:PRIVATE --     0 Files Using     0K (  206K Left)
  190.  
  191. A1:PRIVATE>base:
  192.  
  193. A0:BASE>dir private:
  194. PW? mypass
  195.             A1:PRIVATE --     0 Files Using     0K (  206K Left)
  196. A0:BASE>dir a1:
  197.             A1:PRIVATE --     0 Files Using     0K (  206K Left)
  198.  
  199. .fo Wheel Users and Passwords                          #
  200.  
  201. 2. W h e e l   U s e r s   a n d   P a s s w o r d s 
  202.  
  203. ááááááááá      PassworΣá protectioε i≤ commoεá unde≥á ZCPR3«  ì
  204. áááááááááSevera∞á oµ thσ ZCPR│ utilitie≤ responΣ onσ wa∙á iµ ì
  205. áááááááááthσ use≥ i≤ privelegeΣ (ß Wheel⌐ o≥ no⌠ priveleged«  ì
  206. ááááááááá┴á use≥á become≤á privelegeΣ b∙ runninτá thσá WHEE╠ ì
  207. ááááááááácommanΣ anΣ givinτ thσ Whee∞ Password.
  208.  
  209. A0:BASE>mkdir
  210. MKDIR, Version 3.0
  211.  Permission to Run MKDIR Denied - Not Wheel
  212.  
  213. A0:BASE>pwd pass
  214. PWD, Version 1.0
  215.  Password Request Denied - Not Wheel
  216.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  217. ----  --------    ----  --------    ----  --------    ----  --------    
  218. A  0: BASE        A  1: PRIVATE     A 15: ROOT        
  219.  
  220. B  0: WORK1       B  1: WORK2       B  2: WORK3       B  4: WORK4       
  221. B  5: TEXT        B  6: MAIL        
  222.  
  223. A0:BASE>wheel /s
  224. WHEEL, Version 3.0
  225.  Wheel Password?  Wheel Byte is ON
  226.  
  227. A0:BASE>pwd pass
  228. PWD, Version 1.0
  229.  DU : DIR Name - Password     DU : DIR Name - Password    
  230. ----  --------   --------    ----  --------   --------    
  231. A  0: BASE     -             A  1: PRIVATE  - MYPASS      
  232. A 15: ROOT     -             
  233.  
  234. B  0: WORK1    -             B  1: WORK2    -             
  235. B  2: WORK3    -             B  4: WORK4    -             
  236. B  5: TEXT     -             B  6: MAIL     -             
  237.  
  238. A0:BASE>private:
  239. PW? mypass
  240.  
  241. A1:PRIVATE>root:
  242.  
  243.  
  244. A15:ROOT>mkdir sys.ndr
  245. MKDIR, Version 3.0
  246.  
  247. MKDIR Command (? for Help)? C
  248. ** MKDIR Change Mode **
  249. Directory Entry (?<RETURN> for Help)? a2:priv2
  250.         Adding PRIV2    -- Password? mypass2
  251.  10 Entries in Directory
  252. Directory Entry (?<RETURN> for Help)? 
  253.  DU : DIR Name - Password     DU : DIR Name - Password    
  254. ----  --------   --------    ----  --------   --------    
  255. A  0: BASE     -             A  1: PRIVATE  - MYPASS      
  256. A  2: PRIV2    - MYPASS2     A 15: ROOT     -             
  257.  
  258. B  0: WORK1    -             B  1: WORK2    -             
  259. B  2: WORK3    -             B  4: WORK4    -             
  260. B  5: TEXT     -             B  6: MAIL     -             
  261.  
  262. Directory Entry (?<RETURN> for Help)? x
  263. MKDIR Command (? for Help)? X
  264.  
  265. Directory has changed since last Write
  266. Do you want to write Directory to Disk (Y/N)? Y
  267.  
  268. Name of File (<RETURN> = A 15: SYS     .NDR)? special.ndr
  269. Writing Directory to Disk ... Done
  270.  
  271.  
  272. ááááááááá      Iµá ß use≥ know≤ thσ righ⌠ password≤ anΣá ha≤ ì
  273. áááááááááthσ prope≥ Whee∞ privelege¼ hσ caε radicall∙ changσ ì
  274. áááááááááthσ director∙ structure¼á bringinτ ne≈á directorie≤ ì
  275. áááááááááwhicΦ werσ previousl∙ undefineΣ int∩ existence.
  276.  
  277. ááááááááá      Thσá abilit∙á t∩ loτ int∩ ß director∙ caεá bσ ì
  278. ááááááááácontrolleΣ b∙ thσ installer«  A⌠ installatioε time¼ ì
  279. áááááááááthσá abilit∙á t∩ usσ D╒ anΣ DI╥ form≤ t∩á loτá int∩ ì
  280. ááááááááádirectorie≤áá o≥á referencσá directorie≤áá caεáá bσ ì
  281. áááááááááestablished«  Oε ß morσ securσ system¼ fo≥ example¼ ì
  282. áááááááááthσá abilit∙á t∩á usσ thσ D╒ forφá ma∙á bσá denied«  ì
  283. áááááááááThen¼á onl∙á directorie≤á defineΣá b∙ namσá ma∙á bσ ì
  284. áááááááááaccesseΣ (DI╥ form)¼ and¼ iµ thesσ directorie≤ havσ ì
  285. ááááááááápassword≤áá associateΣá witΦáá them¼áá thσáá prope≥ ì
  286. ááááááááápassword≤ mus⌠ bσ given.
  287.  
  288. A15:ROOT>ldr special.ndr
  289. ZCPR3 LDR, Version 1.0
  290.  Loading SPECIAL.NDR
  291.  
  292.  
  293. A15:ROOT>pwd
  294. PWD, Version 1.0
  295.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  296. ----  --------    ----  --------    ----  --------    ----  --------    
  297. A  0: BASE        A  1: PRIVATE     A  2: PRIV2       A 15: ROOT        
  298.  
  299. B  0: WORK1       B  1: WORK2       B  2: WORK3       B  4: WORK4       
  300. B  5: TEXT        B  6: MAIL        
  301.  
  302. A15:ROOT>priv2:
  303. PW? mypass2
  304.  
  305. A2:PRIV2>wheel system r
  306. WHEEL, Version 3.0
  307.  Wheel Byte is OFF
  308.  
  309. A2:PRIV2>pwd pass
  310. PWD, Version 1.0
  311.  Password Request Denied - Not Wheel
  312.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  313. ----  --------    ----  --------    ----  --------    ----  --------    
  314. A  0: BASE        A  1: PRIVATE     A  2: PRIV2       A 15: ROOT        
  315.  
  316. B  0: WORK1       B  1: WORK2       B  2: WORK3       B  4: WORK4       
  317. B  5: TEXT        B  6: MAIL        
  318.  
  319. .fo Command Lines                                      #
  320. 3. C o m m a n d   L i n e s 
  321.  
  322. ááááááááá      Thσáá followinτá termina∞á sessioεáá extract≤ ì
  323. áááááááááshoulΣá bσá clea≥ abou⌠ commanΣ line≤ unde≥á ZCPR3«  ì
  324. áááááááááComment≤ arσ includeΣ iε thσ termina∞ sessions.
  325.  
  326.  
  327. A0:BASE>; Any Line beginning with a semicolon is a comment
  328. A0:BASE>note Any line whose verb is the word "NOTE" is a comment
  329. A0:BASE>note NOTE is handy to insert comments into lines with more than
  330. A0:BASE>note   one command in them
  331. A0:BASE>note Such lines separate commands with a semicolon
  332.  
  333.  
  334. A0:BASE>dir;note I just did a directory display
  335.  RHEX    .COM    2 
  336.             A0:BASE --     1 Files Using     2K (  204K Left)
  337.  
  338.  
  339. A0:BASE>dir;NOTE This line contains 3 commands (incl one NOTE);dir root:
  340.  RHEX    .COM    2 
  341.             A0:BASE --     1 Files Using     2K (  204K Left)
  342.  MYTERM  .Z3T    2r| SPECIAL .NDR    2 | SYS     .ENV    2r| SYS     .FCP    2r
  343.  SYS     .NDR    2r| SYS     .RCP    2r| SYS1    .FCP    2r| SYS1    .RCP    2r
  344.  SYS2    .FCP    2r| SYS2    .RCP    2r| SYS3    .RCP    2r| Z3TCAP  .TCP    8r
  345.              A15:ROOT --    12 Files Using    30K (  204K Left)
  346.  
  347.  
  348. A0:BASE>era *.com i;dir;NOTE See the extended options on the basic commands?
  349.  RHEX    .COM - Erase (Y/N)? n
  350.  RHEX    .COM    2 
  351.             A0:BASE --     1 Files Using     2K (  204K Left)
  352.  
  353. .fo Command Processing                                 #
  354. 4. C o m m a n d   P r o c e s s i n g 
  355.  
  356. ááááááááá      Wheεá ßá ZCPR│á use≥á issue≤á ßá command¼áá ß ì
  357. ááááááááásequencσ oµ event≤ take≤ placσ iε orde≥ t∩ identif∙ ì
  358. ááááááááátha⌠ commanΣ anΣ executσ it.
  359.  
  360. ááááááááá      This sequence is outlined briefly:
  361.  
  362. ááááááááá           1⌐ thσ commanΣ i≤ parsed╗ thσ firs⌠ worΣ ì
  363. áááááááááiεá thσ commanΣ linσ (o≥ sublinσ iµ semicolon≤á arσ ì
  364. áááááááááuseΣá t∩á placσá severa∞ command≤ oε onσá line⌐á i≤ ì
  365. ááááááááátaken to be the name of the command
  366.  
  367. ááááááááá           2⌐á ZCPR│ check≤ t∩ seσ iµ thi≤á commanΣ ì
  368. ááááááááái≤á ß Flo≈ CommanΣ (IF/ELSE/FI/XIF)¼á and¼á iµá so¼ ì
  369. áááááááááZCPR3 runs the command
  370.  
  371. ááááááááá           3⌐á ZCPR│á theεá check≤ t∩á seσá iµá thσ ì
  372. ááááááááácurren⌠á I╞ conditioε i≤ TRUE╗á IF≤ ma∙á bσá nesteΣ ì
  373. áááááááááeigh⌠á level≤ dee≡ unde≥ ZCPR3╗á iµ thσ curren⌠á I╞ ì
  374. áááááááááconditioε i≤ TRUE¼ ZCPR│ continues¼ elsσ i⌠ flushe≤ ì
  375. áááááááááthe command and goes on to the next command
  376.  
  377. ááááááááá           4⌐á ZCPR│á theεá check≤ t∩á seσá iµá thσ ì
  378. ááááááááácommanΣá i≤ buil⌠ int∩ thσ ZCPR│ CommanΣá Processo≥ ì
  379. áááááááááitself╗ iµ so¼ ZCPR│ run≤ thσ command
  380.  
  381. ááááááááá           5⌐á ZCPR│á theεá check≤ t∩á seσá iµá thσ ì
  382. ááááááááácommanΣ i≤ buil⌠ int∩ thσ curren⌠ Residen⌠á CommanΣ ì
  383. áááááááááPackage (RCP); if so, ZCPR3 runs the command
  384.  
  385. ááááááááá           6⌐ ZCPR│ theε searche≤ alonτ ß serie≤ oµ ì
  386. ááááááááádirectorie≤á indicateΣ b∙ ß command-searcΦ patΦ fo≥ ì
  387. áááááááááßá CO═ filσ witΦ thσ samσ namσ a≤ thσá command╗á iµ ì
  388. áááááááááfound, ZCPR3 loads the COM file and runs it
  389.  
  390. ááááááááá           7⌐ finally¼á iµ al∞ oµ thσ abovσá fails¼ ì
  391. áááááááááZCPR│á invoke≤á aεá erro≥ handle≥á o≥á aεá extendeΣ ì
  392. ááááááááácommanΣá processo≥á t∩á proces≤ thσ commanΣá a≤á aε ì
  393. áááááááááerror or to try to resolve it further
  394.  
  395. ááááááááá      Some examples:
  396.  
  397. A0:BASE>work2:
  398.  
  399. B1:WORK2>dir
  400.             B1:WORK2 --     0 Files Using     0K (  302K Left)
  401.  
  402.  
  403. B1:WORK2>NOTE in many ZCPR3 systems, you will find RCPs -
  404. B1:WORK2>NOTE   Resident Command Packages
  405. B1:WORK2>NOTE this system has several, located in the ROOT
  406. B1:WORK2>dir root:*.rcp
  407.  SYS     .RCP    2r| SYS1    .RCP    2r| SYS2    .RCP    2r| SYS3    .RCP    2r
  408.              A15:ROOT --     4 Files Using     8K (  204K Left)
  409.  
  410. B1:WORK2>NOTE SYS.RCP is the default RCP I use
  411. B1:WORK2>NOTE the H command tells the user what RCP he has loaded and
  412. B1:WORK2>NOTE    what commands are available in it
  413. B1:WORK2>h
  414. SYS 1.0A
  415.   CP    ECHO  ERA   LIST
  416.   NOTE  P     POKE  PROT
  417.   REN   TYPE
  418.  
  419. B1:WORK2>NOTE there are 10 commands in this RCP
  420. B1:WORK2>cp work2:=base:rhex.com
  421.  Done
  422.  
  423. B1:WORK2>dir
  424.  RHEX    .COM    2 
  425.             B1:WORK2 --     1 Files Using     2K (  300K Left)
  426.  
  427. B1:WORK2>cp rhex2.com=rhex.com
  428.  Done
  429.  
  430. B1:WORK2>dir
  431.  RHEX    .COM    2 | RHEX2   .COM    2 
  432.             B1:WORK2 --     2 Files Using     4K (  298K Left)
  433.  
  434. B1:WORK2>era *.com i
  435.  RHEX    .COM - Erase (Y/N)? n
  436.  RHEX2   .COM - Erase (Y/N)? y
  437.  
  438. B1:WORK2>cp rhex1.com=rhex.com;cp rhex2.com=rhex.com
  439.  Done
  440.  Done
  441.  
  442. B1:WORK2>prot *.* r
  443.  RHEX    .COM Set to R/O
  444.  RHEX1   .COM Set to R/O
  445.  RHEX2   .COM Set to R/O
  446.  
  447. B1:WORK2>dir
  448.  RHEX    .COM    2r| RHEX1   .COM    2r| RHEX2   .COM    2r
  449.             B1:WORK2 --     3 Files Using     6K (  296K Left)
  450.  
  451. B1:WORK2>prot rhex1.com
  452.  RHEX1   .COM Set to R/W
  453.  
  454.  
  455. B1:WORK2>era *.com
  456.  RHEX    .COM is R/O
  457.  RHEX1   .COM
  458.  RHEX2   .COM is R/O
  459.  
  460. B1:WORK2>dir
  461.  RHEX    .COM    2r| RHEX2   .COM    2r
  462.             B1:WORK2 --     2 Files Using     4K (  298K Left)
  463.  
  464. B1:WORK2>echo this command simply echos the command line, as in messages
  465. THIS COMMAND SIMPLY ECHOS THE COMMAND LINE, AS IN MESSAGES
  466.  
  467. B1:WORK2>ed demo.txt
  468.  
  469. NEW FILE
  470.      : *i
  471.     1:  This is a test
  472.     2:  This is only a test
  473.     3:  
  474.      : *e
  475.  
  476. B1:WORK2>cp demo2.txt=demo.txt
  477.  Done
  478.  
  479. B1:WORK2>dir *.txt
  480.  DEMO    .TXT    2 | DEMO2   .TXT    2 
  481.             B1:WORK2 --     2 Files Using     4K (  294K Left)
  482.  
  483. B1:WORK2>ren demo1.txt=demo2.txt
  484.  
  485. B1:WORK2>cp demo2.txt=demo.txt
  486.  Done
  487.  
  488. B1:WORK2>dir *.txt
  489.  DEMO    .TXT    2 | DEMO1   .TXT    2 | DEMO2   .TXT    2 
  490.             B1:WORK2 --     3 Files Using     6K (  292K Left)
  491.  
  492. B1:WORK2>ren demo1.txt=demo2.txt
  493.  DEMO1   .TXT - Erase (Y/N)? n
  494.  
  495. B1:WORK2>type demo.txt
  496.  
  497. This is a test
  498. This is only a test
  499.  
  500.  
  501. B1:WORK2>type *.txt
  502.  
  503. This is a test
  504. This is only a test
  505.  
  506.  Typing  DEMO    .TXT -  
  507.  
  508. This is a test
  509. This is only a test
  510.  
  511.  Typing  DEMO1   .TXT -  
  512.  
  513. This is a test
  514. This is only a test
  515.  
  516. B1:WORK2>p 8000 801f;NOTE I look at memory
  517.  Peek at 8000
  518.  8000 -  C3 29 00 C3 CE 80 C3 47 81 C3 82 81 C3 67 81 C3 |C).CN.CG.C..Cg.C|
  519.  8010 -  7E 81 C3 E9 80 C3 22 81 C3 10 81 80 F3 00 00 11 |~.Ci.C".C...s...|
  520.  
  521. B1:WORK2>p 0 f;NOTE anywhere in memory
  522.  Peek at 0000
  523.  0000 -  C3 03 E2 01 11 C3 06 D4 00 FF 00 FF 00 FF 00 FF |C.b..C.T........|
  524.  
  525. B1:WORK2>poke 8000 1 2 3 "this is a test
  526.  Poke at 8000
  527.  
  528. B1:WORK2>p 8000 801f
  529.  Peek at 8000
  530.  8000 -  01 02 03 54 48 49 53 20 49 53 20 41 20 54 45 53 |...THIS IS A TES|
  531.  8010 -  54 81 C3 E9 80 C3 22 81 C3 10 81 80 F3 00 00 11 |T.Ci.C".C...s...|
  532.  
  533. B1:WORK2>NOTE the RCP commands can be changed by loading a new RCP
  534. B1:WORK2>ldr root:sys3.rcp
  535. ZCPR3 LDR, Version 1.0
  536.  Loading SYS3.RCP
  537. B1:WORK2>h
  538. SYS 1.0C
  539.   CP    ECHO  ERA   NOTE
  540.   P     POKE  REN   TYPE
  541.   WHL   WHLQ
  542.  
  543. B1:WORK2>cp demo3.txt=demo.txt
  544.  No Wheel
  545.  
  546. B1:WORK2>era *.txt
  547.  No Wheel
  548.  
  549. B1:WORK2>wheel system s
  550. WHEEL, Version 3.0
  551.  Wheel Byte is ON
  552.  
  553.  
  554. B1:WORK2>cp demo3.txt=demo.txt
  555.  Done
  556.  
  557.  
  558. ááááááááá      Somσ example≤ oµ Flo≈ Commands¼á invokeΣ froφ ì
  559. áááááááááFlo≈ CommanΣ Package≤ (FCPs⌐ follow:
  560.  
  561. B1:WORK2>NOTE now for Flow Command Packages:
  562. B1:WORK2>NOTE under FCPs, we have IF/ELSE/FI (ENDIF)/XIF (Exit All IFs)
  563. B1:WORK2>NOTE   Flow Commands:
  564.  
  565. B1:WORK2>if exist demo.txt
  566.  IF T
  567.  
  568. B1:WORK2>type demo.txt
  569.  
  570. This is a test
  571. This is only a test
  572.  
  573. B1:WORK2>else
  574.  IF F
  575.  
  576. B1:WORK2>type demo2.txt
  577.  
  578. B1:WORK2>fi
  579.  To No IF 
  580.  
  581. B1:WORK2>if ~exist demo.txt
  582.  IF F
  583.  
  584. B1:WORK2>type demo.txt
  585.  
  586. B1:WORK2>else
  587.  IF T
  588.  
  589. B1:WORK2>type demo2.txt
  590.  
  591. This is a test
  592. This is only a test
  593.  
  594. B1:WORK2>fi
  595.  To No IF 
  596.  
  597. B1:WORK2>if exist *.txt
  598.  IF T
  599.  
  600. B1:WORK2>type demo.txt
  601.  
  602. This is a test
  603. This is only a test
  604.  
  605.  
  606. B1:WORK2>echo we are in a TRUE IF
  607. WE ARE IN A TRUE IF
  608.  
  609. B1:WORK2>xif
  610.  To No IF 
  611.  
  612. B1:WORK2>NOTE IFs can be nested up to 8 levels deep:
  613. B1:WORK2>if exist demo.txt
  614.  IF T
  615. B1:WORK2>if exist demo2.txt
  616.  IF T
  617. B1:WORK2>if exist demo.txt
  618.  IF T
  619. B1:WORK2>if exist demo3.txt
  620.  IF T
  621. B1:WORK2>else
  622.  IF F
  623. B1:WORK2>fi
  624.  To IF T
  625. B1:WORK2>fi;fi;fi
  626.  To IF T
  627.  To IF T
  628.  To No IF 
  629.  
  630. ááááááááá      CommanΣ file≤ anΣ commanΣ filσ processor≤ arσ ì
  631. ááááááááádiscusseΣ next«á  ZEX¼á ß memory-baseΣ commanΣ filσ ì
  632. áááááááááprocessor¼á i≤á designeΣ t∩ bσ thσá principa∞á too∞ ì
  633. áááááááááused.
  634.  
  635.  
  636. B1:WORK2>NOTE ZEX is the command-file processor, memory-based
  637. B1:WORK2>NOTE   Under ZEX, there is a GOTO command which works
  638. B1:WORK2>NOTE   in conjunction with IFs to provide looping capability
  639. B1:WORK2>ed demo.zex
  640.  
  641. NEW FILE
  642.      : *i
  643.     1:  NOTE Set Register 1 to 0;reg s1 0
  644.     2:  ;=loop
  645.     3:  NOTE Exit all pending IFs;xif
  646.     4:  NOTE Add 1 to Register 1;reg p1
  647.     5:  NOTE Test for end of loop;if ~1 3
  648.     6:  NOTE Branch to LOOP if Register 1 <> 3;goto loop
  649.     7:  NOTE Done with IF if Register 1 = 3;fi
  650.     8:  
  651.      : *e
  652.  
  653.  
  654. B1:WORK2>type demo.zex
  655.  
  656. NOTE Set Register 1 to 0;reg s1 0
  657. ;=loop
  658. NOTE Exit all pending IFs;xif
  659. NOTE Add 1 to Register 1;reg p1
  660. NOTE Test for end of loop;if ~1 3
  661. NOTE Branch to LOOP if Register 1 <> 3;goto loop
  662. NOTE Done with IF if Register 1 = 3;fi
  663.  
  664.  
  665. ááááááááá      Herσá i≤ aε actua∞ ruε oµ ß ZE╪ commanΣá filσ ì
  666. ááááááááá(DEMO.ZEX⌐ whicΦ illustrate≤ looping:
  667.  
  668. B1:WORK2>zex demo
  669. ZEX, Version 3.0
  670.  
  671.                             -- Pass 1 --
  672.  
  673. B1:WORK2> ZEX: NOTE Set Register 1 to 0;reg s1 0
  674. REG, Version 1.0
  675.  Reg 1 =   0
  676. B1:WORK2> ZEX: ;=loop
  677. B1:WORK2> ZEX: NOTE Exit all pending IFs;xif
  678.  To No IF 
  679. B1:WORK2> ZEX: NOTE Add 1 to Register 1;reg p1
  680. REG, Version 1.0
  681.  Reg 1 =   1
  682. B1:WORK2> ZEX: NOTE Test for end of loop;if ~1 3
  683.  IF T
  684. B1:WORK2> ZEX: NOTE Branch to LOOP if Register 1 <> 3;goto loop
  685.  GOTO Label LOOP
  686.  
  687.                             -- Pass 2 --
  688.  
  689. B1:WORK2> ZEX: NOTE Exit all pending IFs;xif
  690.  To No IF 
  691. B1:WORK2> ZEX: NOTE Add 1 to Register 1;reg p1
  692. REG, Version 1.0
  693.  Reg 1 =   2
  694. B1:WORK2> ZEX: NOTE Test for end of loop;if ~1 3
  695.  IF T
  696. B1:WORK2> ZEX: NOTE Branch to LOOP if Register 1 <> 3;goto loop
  697.  GOTO Label LOOP
  698.  
  699.  
  700.                             -- Pass 3 --
  701.  
  702. B1:WORK2> ZEX: NOTE Exit all pending IFs;xif
  703.  To No IF 
  704. B1:WORK2> ZEX: NOTE Add 1 to Register 1;reg p1
  705. REG, Version 1.0
  706.  Reg 1 =   3
  707. B1:WORK2> ZEX: NOTE Test for end of loop;if ~1 3
  708.  IF F
  709.  
  710.                              -- Done --
  711.  
  712. B1:WORK2> ZEX: NOTE Branch to LOOP if Register 1 <> 4;goto loop
  713. B1:WORK2> ZEX: NOTE Done with IF if Register 1 = 3;fi
  714.  To No IF 
  715. B1:WORK2> ZEX: Done>
  716.  
  717.  
  718. ááááááááá      Thσá examplσ abovσ wa≤ fo≥ academiπ purposes«  ì
  719. áááááááááTw∩ example≤ oµ ZE╪ commanΣ file≤ whicΦ ╔ usσ ever∙ ì
  720. áááááááááda∙á follow«á  Onσ commanΣ filσ assemble≤á program≤ ì
  721. áááááááááfo≥ mσ usinτ thσ MA├ assembler¼á anΣ thσ othe≥ use≤ ì
  722. áááááááááthσ M8░ assemble≥ witΦ none¼á one¼á two¼á three¼ o≥ ì
  723. áááááááááfou≥ libraries¼á generatinτ differen⌠ commanΣ line≤ ì
  724. ááááááááádependinτ upoε ho≈ man∙ librarie≤ werσ specifieΣ iε ì
  725. áááááááááthσ origina∞ commanΣ line.
  726.  
  727.                ---- Command File for MAC Assembly ----
  728.  
  729. ;  MAC -- CP/M Standard MACRO Assembler and Loader
  730. MAC $1 $$PZ SZ
  731. IF INPUT Type N or F to Abort if Errors Exist
  732. ERA $1.BAK
  733. ERA $1.COM
  734. MLOAD $1
  735. FI
  736. ERA $1.HEX
  737. ;  Assembly Complete
  738.  
  739.  
  740.                ---- Command File for M80 Assembly ----
  741.  
  742. ;
  743. ;  M80.ZEX -- MACRO-80 Assembler and Linker
  744. ;     Up to 4 Libraries Specified
  745. ;
  746. ;  ^& Suppress FALSE IF Printout
  747. ;
  748. if nul $1 ;note Print Error Message
  749. echo      **** No Parameter Specified ****
  750. else      ;note Perform Assembly
  751. M80 =$1
  752. if input Type T to Continue or F to Abort (in case of Errors)
  753. ERA $1.BAK
  754. ERA $1.COM
  755. if ~nul $5 ;note Link 4 Additional Libraries
  756. L80 /P:100,$1,$2/S,$3/S,$4/S,$5/S,A:Z3LIB/S,A:SYSLIB/S,$1/N,/U,/E
  757. goto done
  758. fi
  759. if ~nul $4 ;note Link 3 Additional Libraries
  760. L80 /P:100,$1,$2/S,$3/S,$4/S,A:Z3LIB/S,A:SYSLIB/S,$1/N,/U,/E
  761. goto done
  762. fi
  763. if ~nul $3 ;note Link 2 Additional Libraries
  764. L80 /P:100,$1,$2/S,$3/S,A:Z3LIB/S,A:SYSLIB/S,$1/N,/U,/E
  765. goto done
  766. fi
  767. if ~nul $2 ;note Link 1 Additional Library
  768. L80 /P:100,$1,$2/S,A:Z3LIB/S,A:SYSLIB/S,$1/N,/U,/E
  769. goto done
  770. else       ;note Standard Link
  771. L80 /P:100,$1,A:Z3LIB/S,A:SYSLIB/S,$1/N,/U,/E
  772. ;=done          Done with Link
  773. fi         ;note on IF ~NUL Tests
  774. fi         ;note on IF INPUT
  775. ERA $1.REL
  776. fi         ;note on IF NUL
  777. ;
  778. ;  Assembly Complete
  779. ;
  780.  
  781. .fo Error Handlers                                     #
  782. 5. E r r o r   H a n d l e r s 
  783.  
  784. ááááááááá      Erro≥á Handler≤á arσá program≤á whicΦá handlσ ì
  785. ááááááááácommanΣ linσ error≤ iε ß "niceó way«á  The∙ ma∙á bσ ì
  786. áááááááááuseΣ anywhere¼á includinτ withiε ZE╪ commanΣ files«  ì
  787. ááááááááá┴ fe≈ examples:
  788.  
  789. B1:WORK2>NOTE There are a number of error handlers on this system:
  790. B1:WORK2>dir root:error?.com s
  791.  ERROR1  .COM    2r| ERROR2  .COM    4r| ERROR3  .COM    2r| ERROR4  .COM    2r
  792.              A15:ROOT --     4 Files Using    10K (  204K Left)
  793.  
  794.  
  795. ááááááááá      Erro≥ Handler≤ arσ installeΣ b∙ simpl∙ givinτ ì
  796. ááááááááátheir name.
  797.  
  798. B1:WORK2>error4
  799. ERROR4, Version 1.0
  800.  Error Handler Installed
  801.  
  802. B1:WORK2>NOTE ERROR4 is a simpler error handler
  803. B1:WORK2>NOTE with the invalid command "XXXX";xxxx
  804.  
  805.  File XXXX.COM Not Found
  806.  
  807. B1:WORK2>NOTE ERROR4 simply says what happened
  808.  
  809.  
  810. ááááááááá      Erro≥á Handler≤á ma∙á var∙á iεá feature≤á anΣ ì
  811. ááááááááácomplexity«á  ERROR▒á i≤ onσ oµ thσá morσá complex«  ì
  812. áááááááááERROR2¼ b∙ thσ way¼ i≤ ß screen-orienteΣ versioε oµ ì
  813. áááááááááERROR1¼á usinτ reversσ vide∩ anΣ curso≥ addressing«  ì
  814. áááááááááSee the section on Z3TCAP later for more details.
  815.  
  816. B1:WORK2>error1;NOTE ERROR1 is a more sophisticated error handler
  817. ERROR1, Version 1.0
  818.  Error Handler Installed
  819.  
  820.  
  821. B1:WORK2>xxxx
  822.  
  823. ERROR1, Version 1.0
  824.  
  825. Error Line is:
  826.    XXXX
  827.  
  828. Options are: 
  829.  1. Replace Command in Error with a New Command
  830.      Replace XXXX
  831.  2. Advance to Next Command and Resume Processing
  832.      Advance to 
  833.  3. Replace Entire Line with a New Line
  834.      Replace XXXX
  835.  4. Throw Away Entire Line and Continue
  836.      Throw Away XXXX
  837.  
  838. Select Option - 1
  839. Replacement Command?
  840.   dir
  841.  DEMO    .BAK    0 | DEMO    .TXT    2 | DEMO    .ZEX    2 | DEMO1   .TXT    2 
  842.  DEMO2   .TXT    2 | DEMO3   .TXT    2 | RHEX    .COM    2r| RHEX2   .COM    2r
  843.              B1:WORK2 --     8 Files Using    14K (  288K Left)
  844. B1:WORK2>xxxx;dir *.com
  845.  
  846. ERROR1, Version 1.0
  847.  
  848. Error Line is:
  849.    XXXX;DIR *.COM
  850.  
  851. Options are: 
  852.  1. Replace Command in Error with a New Command
  853.      Replace XXXX
  854.  2. Advance to Next Command and Resume Processing
  855.      Advance to DIR *.COM
  856.  3. Replace Entire Line with a New Line
  857.      Replace XXXX;DIR *.COM
  858.  4. Throw Away Entire Line and Continue
  859.      Throw Away XXXX;DIR *.COM
  860.  
  861. Select Option - 2
  862.  
  863.  RHEX    .COM    2r| RHEX2   .COM    2r
  864.             B1:WORK2 --     2 Files Using     4K (  288K Left)
  865.  
  866. .fo Aliases                                            #
  867. 6. A l i a s e s 
  868.  
  869. ááááááááá      Aliase≤á arσ CO═ file≤ createΣ b∙á thσá ALIA╙ ì
  870. ááááááááácommanΣá whicΦá contaiε onσ o≥ morσá commanΣá line≤ ì
  871. áááááááááwhicΦá arσá invokeΣ wheε thσ Alia≤ namσá i≤á typed«  ì
  872. áááááááááParamete≥á passinτ int∩ thσ commanΣ line≤ withiε aε ì
  873. áááááááááAlia≤á i≤ supporteΣ iε ß manne≥ simila≥ t∩á commanΣ ì
  874. áááááááááfilσ paramete≥ passing«á  Aliase≤ arσ convenien⌠ t∩ ì
  875. ááááááááácreatσá commanΣ script≤ whicΦ arσ useΣá repeatedly¼ ì
  876. áááááááááanΣ thσ specia∞ commands¼á sucΦ a≤ STARTU╨ (useΣ oε ì
  877. ááááááááácolΣ boo⌠ t∩ ruε ß serie≤ oµ program≤ t∩ initializσ ì
  878. áááááááááthe system), are created as Aliases.
  879.  
  880.  
  881. B1:WORK2>NOTE you have to be a WHEEL to create ALIASes
  882. B1:WORK2>wheel /s
  883. WHEEL, Version 3.0
  884.  Wheel Password?  Wheel Byte is ON
  885.  
  886. B1:WORK2>NOTE a number of parameters and some information can be determined
  887. B1:WORK2>NOTE   and expanded by an alias
  888. B1:WORK2>alias
  889. ALIAS, Version 1.0
  890.  
  891.  Input Alias (RETURN to Abort)
  892.  --> echo The name of this Alias is $0;      <-- I ended these
  893. echo The current DU is $d$u:;                <-- lines with ^E
  894. echo and the first 4 parameters are:;
  895. echo $1 $2 $3 $4
  896.  Name of ALIAS Command (RETURN to Abort)? cmdstat
  897.  Alias Created
  898.  
  899. B1:WORK2>NOTE the alias is a very short file (under 2K)
  900. B1:WORK2>dir cmdstat.com
  901.  CMDSTAT .COM    2 
  902.             B1:WORK2 --     1 Files Using     2K (  292K Left)
  903.  
  904. B1:WORK2>cmdstat
  905.  
  906. THE NAME OF THIS ALIAS IS CMDSTAT
  907. THE CURRENT DU IS B1:
  908. AND THE FIRST 4 PARAMETERS ARE:
  909.  
  910. B1:WORK2>cmdstat this is a very short demo
  911.  
  912. THE NAME OF THIS ALIAS IS CMDSTAT
  913. THE CURRENT DU IS B1:
  914. AND THE FIRST 4 PARAMETERS ARE:
  915. THIS IS A VERY
  916.  
  917.  
  918. B1:WORK2>cmdstat hello, world
  919.  
  920. THE NAME OF THIS ALIAS IS CMDSTAT
  921. THE CURRENT DU IS B1:
  922. AND THE FIRST 4 PARAMETERS ARE:
  923. HELLO, WORLD  
  924.  
  925. B1:WORK2>NOTE aliases are convenient for a number of things --
  926. B1:WORK2>NOTE   they are intended primarily to replace tedious command
  927. B1:WORK2>NOTE   sequences with a simple command
  928. B1:WORK2>alias
  929. ALIAS, Version 1.0
  930.  
  931.  Input Alias (RETURN to Abort)
  932.  --> dir $1;era $1 i;dir $1
  933.  Name of ALIAS Command (RETURN to Abort)? exera
  934.  Alias Created
  935.  
  936. B1:WORK2>NOTE I now have an ALIAS which displays a directory of selected
  937. B1:WORK2>NOTE   files, allows me to erase them with inspection, and then
  938. B1:WORK2>NOTE   displays the same directory again to let me see the
  939. B1:WORK2>NOTE   results
  940. B1:WORK2>dir
  941.  CMDSTAT .COM    2 | DEMO    .TXT    2 | DEMO    .ZEX    2 | DEMO1   .TXT    2 
  942.  DEMO2   .TXT    2 | DEMO3   .TXT    2 | EXERA   .COM    2 | RHEX    .COM    2r
  943.  RHEX2   .COM    2r
  944.             B1:WORK2 --     9 Files Using    18K (  284K Left)
  945.  
  946.  
  947. ááááááááá      The following runs an Alias:
  948.  
  949. B1:WORK2>exera demo?.txt
  950.  
  951.  DEMO    .TXT    2 | DEMO1   .TXT    2 | DEMO2   .TXT    2 | DEMO3   .TXT    2 
  952.              B1:WORK2 --     4 Files Using     8K (  284K Left)
  953.  DEMO    .TXT - Erase (Y/N)? n
  954.  DEMO1   .TXT - Erase (Y/N)? y
  955.  DEMO2   .TXT - Erase (Y/N)? y
  956.  DEMO3   .TXT - Erase (Y/N)? n
  957.  DEMO    .TXT    2 | DEMO3   .TXT    2 
  958.             B1:WORK2 --     2 Files Using     4K (  288K Left)
  959.  
  960. B1:WORK2>exera demo3.txt
  961.  
  962.  DEMO3   .TXT    2 
  963.             B1:WORK2 --     1 Files Using     2K (  288K Left)
  964.  DEMO3   .TXT - Erase (Y/N)? y
  965.             B1:WORK2 --     0 Files Using     0K (  290K Left)
  966.  
  967.  
  968. B1:WORK2>NOTE also, since IFs are everywhere, they can be used in aliases:
  969. B1:WORK2>alias
  970. ALIAS, Version 1.0
  971.  
  972.  Input Alias (RETURN to Abort)
  973.  --> if exist $1;type $1 p;fi
  974.  Name of ALIAS Command (RETURN to Abort)? typeit
  975.  Alias Created
  976.  
  977. B1:WORK2>typeit demo.txt
  978.  
  979.  IF T
  980.  
  981. This is a test
  982. This is only a test
  983.  
  984.  To No IF 
  985.  
  986. B1:WORK2>cp demo1.txt=demo.txt
  987.  Done
  988.  
  989. B1:WORK2>dir demo?.txt
  990.  DEMO    .TXT    2 | DEMO1   .TXT    2 
  991.             B1:WORK2 --     2 Files Using     4K (  286K Left)
  992.  
  993. B1:WORK2>typeit demo?.txt
  994.  
  995.  IF T
  996.  
  997. This is a test
  998. This is only a test
  999.  
  1000.  Typing  DEMO    .TXT -  
  1001.  
  1002. This is a test
  1003. This is only a test
  1004.  
  1005.  To No IF 
  1006.  
  1007. B1:WORK2>typeit nofile.txt
  1008.  
  1009.  IF F
  1010.  To No IF 
  1011.  
  1012.  
  1013. B1:WORK2>NOTE or I can expand TYPEIT to be better
  1014. B1:WORK2>alias typeit
  1015. ALIAS, Version 1.0
  1016.  Alias Name: TYPEIT  
  1017.  Old Alias Command Line:
  1018.   1 --> IF EXIST $1;
  1019.   2 --> TYPE $1 P;
  1020.   3 --> FI
  1021.  
  1022.  Input Alias (RETURN to Abort)
  1023.  --> if exist $1;type $1 p;else;echo file $1 not found;fi
  1024.  File TYPEIT  .COM Exists - Overwrite (Y/N)? Y
  1025.  
  1026.  Alias Created
  1027.  
  1028. B1:WORK2>typeit demo.txt
  1029.  
  1030.  IF T
  1031.  
  1032. This is a test
  1033. This is only a test
  1034.  
  1035.  IF F
  1036.  To No IF 
  1037.  
  1038. B1:WORK2>typeit nofile.txt
  1039.  
  1040.  IF F
  1041.  IF T
  1042. FILE NOFILE.TXT NOT FOUND
  1043.  To No IF 
  1044.  
  1045. .fo Shells                                             #
  1046. 7. S h e l l s 
  1047.  
  1048. ááááááááá      ZCPR│á Shell≤ arσ front-end≤ whicΦ providσá ß ì
  1049. áááááááááuse≥ interfacσ iε placσ oµ thσ norma∞ ZCPR│ prompt«  ì
  1050. áááááááááThσá followinτ termina∞ session≤ sho≈ thσ MEN╒á anΣ ì
  1051. áááááááááS╚ shell≤ iε action.
  1052.  
  1053.  
  1054. B1:WORK2>NOTE Shells are Front-End Processors which can run in place
  1055. B1:WORK2>NOTE   of the ZCPR3 Command Processor
  1056. B1:WORK2>NOTE Actually, the ZCPR3 Command Processor is still being
  1057. B1:WORK2>NOTE   used, but it is transparent to the user now
  1058. B1:WORK2>NOTE Two shells I am going to demonstrate now are MENU and
  1059. B1:WORK2>NOTE   SH:
  1060.  
  1061. B1:WORK2>dir root:menu.* a;dir root:sh*.* a
  1062.  MENU    .COM    4r
  1063.             A15:ROOT --     1 Files Using     4K (  204K Left)
  1064.  SH      .COM    4r| SHDEFINE.COM    4r| SHFILE  .COM    2r| SHOW    .COM    4r
  1065.  SHVAR   .COM    4r
  1066.             A15:ROOT --     5 Files Using    18K (  204K Left)
  1067.  
  1068. B1:WORK2>NOTE The MENU shell consists of only MENU.COM
  1069. B1:WORK2>NOTE The SH shell is SH.COM, but can use SHDEFINE, SHFILE, and SHVAR
  1070. B1:WORK2>NOTE   for support
  1071. B1:WORK2>NOTE First, MENU:
  1072.  
  1073. B1:WORK2>ed menu.cpr
  1074.  
  1075. NEW FILE
  1076.      : *i
  1077.     1:  -dx
  1078.     2:  #
  1079.     3:       Sample Menu
  1080.     4:   D - Directory Display
  1081.     5:   Z - Run Any ZCPR3 Command
  1082.     6:  
  1083.     7:   1 - Set Name of Working File (Currently $f1)
  1084.     8:   2 - Edit Working File
  1085.     9:   3 - Type Working File
  1086.    10:  #
  1087.    11:  d!dir
  1088.    12:  z!"Enter Command Line -- "
  1089.    13:  1setfile 1 "Enter File Name -- "
  1090.    14:  2ed $f1
  1091.    15:  3!type $f1
  1092.    16:  ##
  1093.    17:  
  1094.      : *e
  1095.  
  1096.  
  1097. ááááááááá      To run the MENU shell, just give its name.
  1098.  
  1099. B1:WORK2>menu
  1100.  Shell Installed
  1101. MENU  Version 3.0
  1102.      Sample Menu
  1103.  D - Directory Display
  1104.  Z - Run Any ZCPR3 Command
  1105.  
  1106.  1 - Set Name of Working File (Currently .)
  1107.  2 - Edit Working File
  1108.  3 - Type Working File
  1109. Command (<CR>=Menu, ^C=ZCPR3) - D
  1110.  CMDSTAT .COM    2 | MENU    .BAK    0 | DEMO    .TXT    2 | DEMO    .ZEX    2 
  1111.  DEMO1   .TXT    2 | EXERA   .COM    2 | MENU    .CPR    2 | RHEX    .COM    2r
  1112.  RHEX2   .COM    2r| TYPEIT  .COM    2 
  1113.             B1:WORK2 --    10 Files Using    18K (  284K Left)
  1114.  
  1115.  
  1116. MENU  Version 3.0 Strike Any Key - 
  1117.  
  1118.      Sample Menu
  1119.  D - Directory Display
  1120.  Z - Run Any ZCPR3 Command
  1121.  
  1122.  1 - Set Name of Working File (Currently .)
  1123.  2 - Edit Working File
  1124.  3 - Type Working File
  1125. Command (<CR>=Menu, ^C=ZCPR3) - Z
  1126. Enter Command Line -- dir *.com;era *.com i
  1127.  CMDSTAT .COM    2 | EXERA   .COM    2 | RHEX    .COM    2r| RHEX2   .COM    2r
  1128.  TYPEIT  .COM    2 
  1129.             B1:WORK2 --     5 Files Using    10K (  284K Left)
  1130.  CMDSTAT .COM - Erase (Y/N)? y
  1131.  EXERA   .COM - Erase (Y/N)? y
  1132.  RHEX    .COM is R/O
  1133.  RHEX2   .COM is R/O
  1134.  TYPEIT  .COM - Erase (Y/N)? y
  1135.  
  1136. MENU  Version 3.0 Strike Any Key - 
  1137.  
  1138.      Sample Menu
  1139.  D - Directory Display
  1140.  Z - Run Any ZCPR3 Command
  1141.  
  1142.  1 - Set Name of Working File (Currently .)
  1143.  2 - Edit Working File
  1144.  3 - Type Working File
  1145. Command (<CR>=Menu, ^C=ZCPR3) - Z
  1146. Enter Command Line -- prot rhex?.com;era rhex?.com
  1147.  RHEX    .COM Set to R/W
  1148.  RHEX2   .COM Set to R/W
  1149.  RHEX    .COM
  1150.  RHEX2   .COMè
  1151. MENU  Version 3.0 Strike Any Key - 
  1152.  
  1153.      Sample Menu
  1154.  D - Directory Display
  1155.  Z - Run Any ZCPR3 Command
  1156.  
  1157.  1 - Set Name of Working File (Currently .)
  1158.  2 - Edit Working File
  1159.  3 - Type Working File
  1160. Command (<CR>=Menu, ^C=ZCPR3) - D
  1161.  DEMO    .BAK    0 | DEMO    .TXT    2 | DEMO    .ZEX    2 | DEMO1   .TXT    2 
  1162.  MENU    .CPR    2 
  1163.             B1:WORK2 --     5 Files Using     8K (  294K Left)
  1164.  
  1165.  
  1166. ááááááááá      MEN╒ support≤ u≡ t∩ ┤ filσ name≤ whicΦ caε bσ ì
  1167. áááááááááuseΣáá a≤á variable≤á withiεá MENU«áá  Thσáá commoε ì
  1168. áááááááááapplicatioεá i≤ t∩ usσ thesσ file≤ name≤ t∩ specif∙ ì
  1169. áááááááááworkinτ files.
  1170.  
  1171. MENU  Version 3.0 Strike Any Key - 
  1172.  
  1173.      Sample Menu
  1174.  D - Directory Display
  1175.  Z - Run Any ZCPR3 Command
  1176.  
  1177.  1 - Set Name of Working File (Currently .)
  1178.  2 - Edit Working File
  1179.  3 - Type Working File
  1180. Command (<CR>=Menu, ^C=ZCPR3) - 1
  1181. Enter File Name -- myfile.txt
  1182. SETFILE, Version 1.0
  1183.  File Name 1 is MYFILE  .TXT
  1184.  
  1185.  
  1186. MENU  Version 3.0
  1187.      Sample Menu
  1188.  D - Directory Display
  1189.  Z - Run Any ZCPR3 Command
  1190.  
  1191.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1192.  2 - Edit Working File
  1193.  3 - Type Working File
  1194. Command (<CR>=Menu, ^C=ZCPR3) - 2
  1195.  
  1196. NEW FILE
  1197.      : *i
  1198.     1:  This is MYFILE.TXT
  1199.     2:  Isn't this fun?
  1200.     3:  
  1201.      : *b0p
  1202.     1:  This is MYFILE.TXT
  1203.     2:  Isn't this fun?
  1204.     1: *eè
  1205. MENU  Version 3.0
  1206.      Sample Menu
  1207.  D - Directory Display
  1208.  Z - Run Any ZCPR3 Command
  1209.  
  1210.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1211.  2 - Edit Working File
  1212.  3 - Type Working File
  1213. Command (<CR>=Menu, ^C=ZCPR3) - 3
  1214.  
  1215. This is MYFILE.TXT
  1216. Isn't this fun?
  1217.  
  1218. MENU  Version 3.0 Strike Any Key - 
  1219.  
  1220.      Sample Menu
  1221.  D - Directory Display
  1222.  Z - Run Any ZCPR3 Command
  1223.  
  1224.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1225.  2 - Edit Working File
  1226.  3 - Type Working File
  1227. Command (<CR>=Menu, ^C=ZCPR3) - 2
  1228.      : *#a
  1229.     1: *i
  1230.     1:  I have modified MYFILE.TXT
  1231.     2:  
  1232.     2: *b0p
  1233.     1:  I have modified MYFILE.TXT
  1234.     2:  This is MYFILE.TXT
  1235.     3:  Isn't this fun?
  1236.     1: *e
  1237.  
  1238. MENU  Version 3.0
  1239.      Sample Menu
  1240.  D - Directory Display
  1241.  Z - Run Any ZCPR3 Command
  1242.  
  1243.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1244.  2 - Edit Working File
  1245.  3 - Type Working File
  1246. Command (<CR>=Menu, ^C=ZCPR3) - 3
  1247.  
  1248. I have modified MYFILE.TXT
  1249. This is MYFILE.TXT
  1250. Isn't this fun?
  1251.  
  1252.  
  1253. MENU  Version 3.0 Strike Any Key - 
  1254.  
  1255.      Sample Menu
  1256.  D - Directory Display
  1257.  Z - Run Any ZCPR3 Command
  1258.  
  1259.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1260.  2 - Edit Working File
  1261.  3 - Type Working File
  1262. Command (<CR>=Menu, ^C=ZCPR3) - ^C
  1263. B1:WORK2>
  1264.  
  1265.  
  1266.  
  1267. ááááááááá      Thσ followinτ i≤ ß demonstratioε oµ thσ ZCPR│ ì
  1268. áááááááááNamed-Variablσ Shell¼á SH«á  S╚ allows¼ amonτ othe≥ ì
  1269. áááááááááthings¼á thσá use≥á t∩á specif∙á variable≤á iεá hi≤ ì
  1270. ááááááááácommanΣ line≤ whicΦ arσ expandeΣ a≤ macro≤ wheε thσ ì
  1271. ááááááááácommanΣá line≤á arσ interpreteΣá b∙á SH«á  S╚á theε ì
  1272. ááááááááápasse≤á thσá expandeΣá commanΣ line≤ t∩á thσá ZCPR│ ì
  1273. áááááááááCommanΣ Processor¼ whicΦ execute≤ them.
  1274.  
  1275. B1:WORK2>NOTE Now I will demonstrate SH
  1276. B1:WORK2>sh
  1277. Shell Installed
  1278. B1:WORK2>> ;first, SH looks like the normal ZCPR3, except that the
  1279. B1:WORK2>> ;prompt is >>
  1280. B1:WORK2>> 
  1281. B1:WORK2>> ;commands run normally under SH:
  1282.  
  1283. B1:WORK2>> dir *.txt
  1284.  DEMO    .TXT    2 | DEMO1   .TXT    2 | MYFILE  .TXT    2 
  1285.             B1:WORK2 --     3 Files Using     6K (  292K Left)
  1286.  
  1287. B1:WORK2>> error4
  1288. ERROR4, Version 1.0
  1289.  Error Handler Installed
  1290.  
  1291. B1:WORK2>> NOTE Shells, like many things under ZCPR3, can be nested:
  1292. B1:WORK2>> menu
  1293.  Shell Installed
  1294. MENU  Version 3.0
  1295.      Sample Menu
  1296.  D - Directory Display
  1297.  Z - Run Any ZCPR3 Command
  1298.  
  1299.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1300.  2 - Edit Working File
  1301.  3 - Type Working File
  1302. Command (<CR>=Menu, ^C=ZCPR3) - 3
  1303.  
  1304. I have modified MYFILE.TXT
  1305. This is MYFILE.TXT
  1306. Isn't this fun?
  1307.  
  1308. MENU  Version 3.0 Strike Any Key - 
  1309.  
  1310.      Sample Menu
  1311.  D - Directory Display
  1312.  Z - Run Any ZCPR3 Command
  1313.  
  1314.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1315.  2 - Edit Working File
  1316.  3 - Type Working File
  1317. Command (<CR>=Menu, ^C=ZCPR3) - Z
  1318. Enter Command Line -- NOTE and, when I exit, I'm back to SH
  1319.  
  1320.  
  1321. MENU  Version 3.0 Strike Any Key - 
  1322.  
  1323.      Sample Menu
  1324.  D - Directory Display
  1325.  Z - Run Any ZCPR3 Command
  1326.  
  1327.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1328.  2 - Edit Working File
  1329.  3 - Type Working File
  1330. Command (<CR>=Menu, ^C=ZCPR3) - ^C
  1331.  
  1332.  
  1333. B1:WORK2>> ; SH has some built-in commands, which can be determined by
  1334. B1:WORK2>> ; a ? command:
  1335. B1:WORK2>> ?
  1336. SH Commands --
  1337.   ?         SHCMT     SHECHO    SHEXIT  
  1338.  
  1339.  
  1340. B1:WORK2>> ; guess what SHEXIT does:
  1341. B1:WORK2>> shexit
  1342. Exiting Shell
  1343.  
  1344. B1:WORK2>NOTE oh, well, back to ZCPR3 ... but we were talking
  1345. B1:WORK2>NOTE about SH:
  1346. B1:WORK2>sh
  1347. Shell Installed
  1348.  
  1349. B1:WORK2>> ; SHCMT is intended to switch SH into a comment
  1350. B1:WORK2>> ; mode, for times like this when I want to record
  1351. B1:WORK2>> ; a lot of text and a few commands:
  1352. B1:WORK2>> shcmt
  1353.  
  1354. B1:WORK2; note that the prompt is now "B1:WORK2; "
  1355. B1:WORK2; I don't have to type the leading ; or the word NOTE
  1356. B1:WORK2; 
  1357. B1:WORK2; If I want to execute a command, I simply prefix it with
  1358. B1:WORK2; an exclamation mark:
  1359. B1:WORK2; !dir *.txt
  1360.  DEMO    .TXT    2 | DEMO1   .TXT    2 | MYFILE  .TXT    2 
  1361.             B1:WORK2 --     3 Files Using     6K (  292K Left)
  1362.  
  1363. B1:WORK2; !menu
  1364.  Shell Installed
  1365. MENU  Version 3.0
  1366.      Sample Menu
  1367.  D - Directory Display
  1368.  Z - Run Any ZCPR3 Command
  1369.  
  1370.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1371.  2 - Edit Working File
  1372.  3 - Type Working File
  1373. Command (<CR>=Menu, ^C=ZCPR3) - 3
  1374. èI have modified MYFILE.TXT
  1375. This is MYFILE.TXT
  1376. Isn't this fun?
  1377.  
  1378. MENU  Version 3.0 Strike Any Key - 
  1379.  
  1380.      Sample Menu
  1381.  D - Directory Display
  1382.  Z - Run Any ZCPR3 Command
  1383.  
  1384.  1 - Set Name of Working File (Currently MYFILE.TXT)
  1385.  2 - Edit Working File
  1386.  3 - Type Working File
  1387. Command (<CR>=Menu, ^C=ZCPR3) - ^C
  1388.  
  1389. B1:WORK2; and we are back:
  1390. B1:WORK2; !?
  1391. SH Commands --
  1392.   ?         SHCMT     SHECHO    SHEXIT  
  1393.  
  1394. B1:WORK2; all commands work that way under SH
  1395. B1:WORK2; as I mentioned, SH is a Variable Shell
  1396. B1:WORK2; by this I mean that it supports named variables, which
  1397. B1:WORK2; can be defined (in groups) by SHDEFINE or one at a time
  1398. B1:WORK2; by SHVAR
  1399. B1:WORK2; 
  1400. B1:WORK2; SHVAR with no args displays the names of the current
  1401. B1:WORK2; variables
  1402. B1:WORK2; !shvar
  1403. SHVAR, Version 1.0
  1404.  Shell Variables --
  1405.   -- No Variables Defined --
  1406.  
  1407.  
  1408. B1:WORK2; 
  1409. B1:WORK2; with an arg (actually, 2 args), SHVAR defines variables
  1410. B1:WORK2; !shvar file1 myfile.txt
  1411. SHVAR, Version 1.0
  1412.  Shell Variable FILE1 = MYFILE.TXT
  1413.  Writing Shell Variable File SH      .VAR
  1414.  
  1415.  
  1416. B1:WORK2; 
  1417. B1:WORK2; and now I can reference variables by preceeding them with
  1418. B1:WORK2; a % character
  1419. B1:WORK2; !type %file1
  1420.  
  1421. I have modified MYFILE.TXT
  1422. This is MYFILE.TXT
  1423. Isn't this fun?
  1424.  
  1425.  
  1426. B1:WORK2; does the same as
  1427. B1:WORK2; !type myfile.txt
  1428.  
  1429. I have modified MYFILE.TXT
  1430. This is MYFILE.TXT
  1431. Isn't this fun?
  1432.  
  1433. B1:WORK2; note that SH variables can only be used under SH
  1434. B1:WORK2; don't confuse these with aliases, which can be used
  1435. B1:WORK2; anywhere, including under SH
  1436. B1:WORK2; !alias
  1437. ALIAS, Version 1.0
  1438.  
  1439.  Input Alias (RETURN to Abort)
  1440.  --> echo hello, world - my name is $0
  1441.  Name of ALIAS Command (RETURN to Abort)? hello
  1442.  Alias Created
  1443.  
  1444. B1:WORK2; !hello
  1445.  
  1446. HELLO, WORLD - MY NAME IS HELLO
  1447.  
  1448. B1:WORK2; !shexit
  1449. Exiting Shell
  1450.  
  1451. B1:WORK2>hello
  1452.  
  1453. HELLO, WORLD - MY NAME IS HELLO
  1454.  
  1455. B1:WORK2>sh
  1456. Shell Installed
  1457.  
  1458. B1:WORK2>> shcmt
  1459. B1:WORK2; also, SH variables can be referenced by other SH variables,
  1460. B1:WORK2; up to 20 levels deep:
  1461. B1:WORK2; !shvar cmddemo type %%file1
  1462. SHVAR, Version 1.0
  1463.  Shell Variable CMDDEMO = TYPE %FILE1
  1464.  Writing Shell Variable File SH      .VAR
  1465.  
  1466. B1:WORK2; note my use of the double %% to indicate that I wanted
  1467. B1:WORK2; the % character substituted -- If I used just 1 %, then
  1468. B1:WORK2; the value of the variable would be substituted:
  1469.  
  1470.  
  1471. B1:WORK2; !shvar cmddemo1 type %file1
  1472. SHVAR, Version 1.0
  1473.  Shell Variable CMDDEMO1 = TYPE MYFILE.TXT
  1474.  Writing Shell Variable File SH      .VAR
  1475.  
  1476.  
  1477. B1:WORK2; see the difference?
  1478. B1:WORK2; so, to execute:
  1479. B1:WORK2; !%cmddemo
  1480.  
  1481. I have modified MYFILE.TXT
  1482. This is MYFILE.TXT
  1483. Isn't this fun?
  1484.  
  1485. B1:WORK2; !%cmddemo1
  1486.  
  1487. I have modified MYFILE.TXT
  1488. This is MYFILE.TXT
  1489. Isn't this fun?
  1490.  
  1491. B1:WORK2; as a side comment, the SHECHO command can be used to make
  1492. B1:WORK2; SH show you the command line it is generating:
  1493. B1:WORK2; !shecho
  1494.  Echo of Shell Commands is ON
  1495.  
  1496. B1:WORK2; !%cmddemo
  1497. TYPE MYFILE.TXT
  1498.  
  1499. I have modified MYFILE.TXT
  1500. This is MYFILE.TXT
  1501. Isn't this fun?
  1502.  
  1503. B1:WORK2; Now, if I change the definition of FILE1:
  1504. B1:WORK2; !shvar file1 hisfile.txt
  1505. SHVAR FILE1 HISFILE.TXT
  1506. SHVAR, Version 1.0
  1507.  Shell Variable FILE1 = HISFILE.TXT
  1508.  Writing Shell Variable File SH      .VAR
  1509.  
  1510. B1:WORK2; the meaning of CMDDEMO is different:
  1511. B1:WORK2; !%cmddemo
  1512. TYPE HISFILE.TXT
  1513.  No Files
  1514.  
  1515. B1:WORK2; while CMDDEMO1 remains unchanged
  1516. B1:WORK2; !%cmddemo1
  1517. TYPE MYFILE.TXT
  1518.  
  1519. I have modified MYFILE.TXT
  1520. This is MYFILE.TXT
  1521. Isn't this fun?
  1522.  
  1523.  
  1524. B1:WORK2; !ed %file1
  1525. ED HISFILE.TXT
  1526.  
  1527. NEW FILE
  1528.      : *i
  1529.     1:  This is HISFILE.TXT
  1530.     2:  
  1531.      : *e
  1532.  
  1533. B1:WORK2; !%cmddemo;%cmddemo1
  1534. TYPE HISFILE.TXT;TYPE MYFILE.TXT
  1535.  
  1536. This is HISFILE.TXT
  1537.  
  1538.  
  1539. I have modified MYFILE.TXT
  1540. This is MYFILE.TXT
  1541. Isn't this fun?
  1542.  
  1543. B1:WORK2; and so on ...
  1544.  
  1545. B1:WORK2; !shexit
  1546. Exiting Shell
  1547. B1:WORK2>
  1548.  
  1549. .fo Z3TCAP                                             #
  1550. 8. Z 3 T C A P 
  1551.  
  1552.  
  1553. ááááááááá      Thσ ZCPR│ TCA╨ (Termina∞ Capability⌐ Facilit∙ ì
  1554. ááááááááá(Z3TCAP⌐ allow≤ ZCPR│ t∩ havσ ß variet∙ oµá easily-ì
  1555. ááááááááátransportablσá screen-orienteΣ utilities«á  ERROR2¼ ì
  1556. áááááááááVFILER¼á SHOW¼á anΣ VMEN╒ arσ sucΦ utilitie≤á founΣ ì
  1557. áááááááááunde≥ thσ ZCPR│ System.
  1558.  
  1559.  
  1560. B1:WORK2>NOTE The ZCPR3 TCAP (Z3TCAP) facility is supported by
  1561. B1:WORK2>NOTE   three programs and one data file:
  1562. B1:WORK2>dir root:tc*.com a;dir root:*.tcp
  1563.  TCCHECK .COM    2r| TCMAKE  .COM    6r| TCSELECT.COM    4r
  1564.             A15:ROOT --     3 Files Using    12K (  202K Left)
  1565.  Z3TCAP  .TCP    8r
  1566.             A15:ROOT --     1 Files Using     8K (  202K Left)
  1567.  
  1568.  
  1569. B1:WORK2>NOTE TCCHECK is used to check the validity of Z3TCAP.TCP:
  1570. B1:WORK2>root:
  1571. A15:ROOT>tccheck
  1572. TCCHECK, Version 1.0
  1573. Z3TCAP File Check of Z3TCAP  .TCP Version 1.0 
  1574.         File Checks with    43 Terminals Defined
  1575.  
  1576.  
  1577. ááááááááá      Ove≥á fort∙ terminal≤ arσ currentl∙ supporteΣ ì
  1578. áááááááááunde≥ thσ Z3TCAP«  Thei≥ selectioε anΣ installatioε ì
  1579. áááááááááint∩ ß ZCPR│ Systeφ i≤ illustrated:
  1580.  
  1581. A15:ROOT>work2:
  1582. B1:WORK2>NOTE TCSELECT is used to select your terminal from one of the
  1583. B1:WORK2>NOTE  terminals in Z3TCAP.TCP:
  1584.  
  1585.  
  1586. B1:WORK2>tcselect myterm
  1587. TCSELECT, Version 1.0
  1588.  
  1589. ** Terminal Menu 1 for Z3TCAP Version 1.0  **
  1590.  
  1591. A.  AA Ambassador           K.  Concept 100             
  1592. B.  ADDS Consul 980         L.  Concept 108             
  1593. C.  ADDS Regent 20          M.  CT82                    
  1594. D.  ADDS Viewpoint          N.  DEC VT52                
  1595. E.  ADM 2                   O.  DEC VT100               
  1596. F.  ADM 31                  P.  Dialogue 80             
  1597. G.  ADM 3A                  Q.  Direct 800/A            
  1598. H.  ADM 42                  R.  General Trm 100A        
  1599. I.  Bantam 550              S.  Hazeltine 1420          
  1600. J.  CDC 456                 T.  Hazeltine 1500          
  1601.  
  1602. Enter Selection, + for Next, or ^C to Exit - +
  1603.  
  1604. ** Terminal Menu 2 for Z3TCAP Version 1.0  **
  1605.  
  1606. A.  Hazeltine 1510          K.  SOROC 120               
  1607. B.  Hazeltine 1520          L.  Super Bee               
  1608. C.  Heathkit H19            M.  TAB 132                 
  1609. D.  HP 2621                 N.  Teleray 1061            
  1610. E.  IBM 3101                O.  Teleray 3800            
  1611. F.  Micro Bee               P.  TTY 4424                
  1612. G.  Microterm ACT IV        Q.  TVI 912                 
  1613. H.  Microterm ACT V         R.  TVI 920                 
  1614. I.  P Elmer 1100            S.  TVI 950                 
  1615. J.  P Elmer 1200            T.  VC 404                  
  1616.  
  1617. Enter Selection, - for Last, + for Next, or ^C to Exit - +
  1618.  
  1619. ** Terminal Menu 3 for Z3TCAP Version 1.0  **
  1620.  
  1621. A.  VC 415                  
  1622. B.  Visual 200              
  1623. C.  WYSE 50                 
  1624.  
  1625.  
  1626. Enter Selection, - for Last, or ^C to Exit - -
  1627.  
  1628. ** Terminal Menu 2 for Z3TCAP Version 1.0  **
  1629.  
  1630. A.  Hazeltine 1510          K.  SOROC 120               
  1631. B.  Hazeltine 1520          L.  Super Bee               
  1632. C.  Heathkit H19            M.  TAB 132                 
  1633. D.  HP 2621                 N.  Teleray 1061            
  1634. E.  IBM 3101                O.  Teleray 3800            
  1635. F.  Micro Bee               P.  TTY 4424                
  1636. G.  Microterm ACT IV        Q.  TVI 912                 
  1637. H.  Microterm ACT V         R.  TVI 920                 
  1638. I.  P Elmer 1100            S.  TVI 950                 
  1639. J.  P Elmer 1200            T.  VC 404                  
  1640.  
  1641. Enter Selection, - for Last, + for Next, or ^C to Exit - S
  1642.  
  1643.   Selected Terminal is: TVI 950                  -- Confirm (Y/N)? Y
  1644.  
  1645. File MYTERM  .Z3T Created
  1646. B1:WORK2>dir *.z3t
  1647.  MYTERM  .Z3T    2 
  1648.             B1:WORK2 --     1 Files Using     2K (  286K Left)
  1649.  
  1650.  
  1651. B1:WORK2>NOTE Once you have a Z3T file, LDR can load it and, at this
  1652. B1:WORK2>NOTE   time (after loading), your terminal will be known
  1653. B1:WORK2>NOTE   to the ZCPR3 system and the ZCPR3 utilities can
  1654. B1:WORK2>NOTE   make use of its features, such as cursor positioning,
  1655. B1:WORK2>NOTE   reverse video, arrow keys, etc
  1656. B1:WORK2>ldr myterm.z3t
  1657. ZCPR3 LDR, Version 1.0
  1658.  Loading MYTERM.Z3T
  1659.  
  1660. B1:WORK2>NOTE The commands SHOW and VFILER are now configured for
  1661. B1:WORK2>NOTE   a TVI 950, as per my selection
  1662.  
  1663.  
  1664. ááááááááá      No⌠á everyone'≤á termina∞á wil∞á bσá iεáá thσ ì
  1665. ááááááááádefaul⌠ Z3TCAP«á  T∩ mee⌠ thi≤ problem¼ thσ utilit∙ ì
  1666. áááááááááTCMAK┼ i≤ available.
  1667.  
  1668. B1:WORK2>NOTE If you terminal is not on the list of terminals in
  1669. B1:WORK2>NOTE   Z3TCAP.TCP, then TCMAKE can be used to define it
  1670. B1:WORK2>NOTE   I will define my TVI 950 here:
  1671.  
  1672.  
  1673. B1:WORK2>tcmake myterm1
  1674. TCMAKE, Version 1.0
  1675.  
  1676.  
  1677.         ** Z3TCAP Main Menu for File MYTERM1 .Z3T **
  1678.  
  1679. Define: 1. Clear Screen Sequence
  1680.         2. Cursor Motion Sequence
  1681.         3. Clear to End of Line Sequence
  1682.         4. Standout Mode Sequences
  1683.         5. Terminal Init/Deinit Sequences
  1684.         6. Arrow Keys
  1685.         7. Terminal Name
  1686.  
  1687. Status: S. Print Status (Definitions so far)
  1688.  
  1689. Exit:   X. Exit and Write File
  1690.         Q. Quit and Abort Program without Writing File
  1691.  
  1692. Command? 1
  1693.  
  1694. ááááááááá      ╔á won'⌠á borσ yo⌡ witΦá detail≤á here«á  Thσ ì
  1695. ááááááááátermina∞á sessioε i≤ quitσ long¼á illustratinτá thσ ì
  1696. ááááááááámajor features of TCMAKE.
  1697.  
  1698. .fo "Secure" Systems                                   #
  1699. 9. " S e c u r e "   S y s t e m s 
  1700.  
  1701.  
  1702. ááááááááá      WitΦ passworΣ protectoε anΣ nameΣ directorie≤ ì
  1703. ááááááááá(DI╥á form⌐ buil⌠ int∩ ZCPR3¼á ZCPR│ offer≤ ßá mucΦ ì
  1704. ááááááááámorσ securσ environmen⌠ thaε CP/M«á  Iε particular¼ ì
  1705. áááááááááiµ thσ D╒ forφ i≤ disabled¼á thσ onl∙ directorie≤ ß ì
  1706. áááááááááuse≥ caε acces≤ arσ thosσ hσ caε name¼á anΣ somσ oµ ì
  1707. áááááááááthosσ ma∙ havσ passworΣ protection≤ oε them.
  1708.  
  1709. ááááááááá      Here is a complete session:
  1710.  
  1711.  
  1712. AMPRO 51K TPA CP/M 2.2 with ZCPR 3.0
  1713.  BIOS Version 1.2 on March 24, 1984
  1714.  
  1715. ZCPR3 LDR, Version 1.0
  1716.  Loading SYS.ENV
  1717.  Loading SYS.NDR
  1718.  Loading SYS.FCP
  1719.  Loading SYS.RCP
  1720. ERROR4, Version 1.0
  1721.  Error Handler Installed
  1722.  WELCOME TO ZCPR III
  1723.  
  1724. BASE>dir
  1725.  AMPZ358R.COM   10 | SYS3R   .RCP    2 
  1726.             A0:BASE --     2 Files Using    12K (  266K Left)
  1727.  
  1728. BASE>pwd
  1729. PWD, Version 1.0
  1730.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  1731. ----  --------    ----  --------    ----  --------    ----  --------    
  1732. A  0: BASE        A  1: PRIVATE1    A  2: PRIVATE2    A 15: ROOT        
  1733.  
  1734. B  0: DEMO1       B  1: DEMO2       B  2: DEMO3       B  3: DEMO4       
  1735. B  4: DEMO5       B  5: INTRO       B  6: MAIL        
  1736.  
  1737. BASE>dir root:
  1738. PW? unknown
  1739.  AMPZ358R.COM   10 | SYS3R   .RCP    2 
  1740.             A0:BASE --     2 Files Using    12K (  266K Left)
  1741.  
  1742. BASE>dir root:
  1743. PW? rpass
  1744.  DIR     .COM    2 | ERROR4  .COM    2 | GOTO    .COM    2 | LDR     .COM    4 
  1745.  MENU    .COM    4 | MKDIR   .COM    6 | PWD     .COM    2 | SETFILE .COM    2 
  1746.  SH      .COM    4 | SHDEFINE.COM    4 | SHFILE  .COM    2 | SHOW    .COM    4 
  1747.  SHVAR   .COM    4 | SPECIAL .NDR    2 | STARTUP .COM    2 | SYS     .ENV    2 
  1748.  SYS     .FCP    2 | SYS     .NDR    2 | SYS     .RCP    2 | TCCHECK .COM    2 
  1749.  TCMAKE  .COM    6 | TCSELECT.COM    4 | WHEEL   .COM    2 | Z3TCAP  .TCP    8 
  1750.  ZEX     .COM    6 
  1751.             A15:ROOT --    25 Files Using    82K (  266K Left)
  1752. BASE>xxx
  1753. è File XXX.COM Not Found
  1754.  
  1755.  
  1756. ááááááááá      Notσ tha⌠ thσ D╒ forφ i≤ simpl∙ ignored«á  N∩ ì
  1757. áááááááááchangσ t∩ file≤ o≥ director∙ locatioε i≤ made.
  1758.  
  1759. BASE>1:
  1760. BASE>a:
  1761. BASE>b:
  1762. BASE>dir 1:
  1763.  AMPZ358R.COM   10 | SYS3R   .RCP    2 
  1764.             A0:BASE --     2 Files Using    12K (  266K Left)
  1765.  
  1766. BASE>dir demo1:
  1767.  AMPZ3-58.COM   10 | AMPZ3-60.COM   10 | AMPZ3-61.COM   10 | AMPZ358R.COM   10 
  1768.  BDOS58  .COM    4 | BDOS60  .COM    4 | BDOS61  .COM    4 | CPM58   .COM   10 
  1769.  CPM60   .COM   10 | CPM61   .COM   10 | SYS3R   .RCP    2 
  1770.             B0:DEMO1 --    11 Files Using    84K (  284K Left)
  1771.  
  1772. BASE>demo1:
  1773. DEMO1>root:
  1774. PW? rpass
  1775.  
  1776. ROOT>wheel /s
  1777. WHEEL, Version 3.0
  1778.  Wheel Password?  Wheel Byte is ON
  1779.  
  1780. ROOT>NOTE We now have one directory structure:
  1781. ROOT>pwd
  1782. PWD, Version 1.0
  1783.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  1784. ----  --------    ----  --------    ----  --------    ----  --------    
  1785. A  0: BASE        A  1: PRIVATE1    A  2: PRIVATE2    A 15: ROOT        
  1786.  
  1787. B  0: DEMO1       B  1: DEMO2       B  2: DEMO3       B  3: DEMO4       
  1788. B  4: DEMO5       B  5: INTRO       B  6: MAIL        
  1789.  
  1790.  
  1791. ááááááááá      WitΦáá thσá abilit∙á t∩á havσá severa∞á nameΣ ì
  1792. ááááááááádirector∙á files¼á wσá caεá havσá severa∞á set≤á oµ ì
  1793. ááááááááádirectories¼á includinτ somσ directorie≤ whicΦá arσ ì
  1794. ááááááááábotΦá hiddeεá anΣ totall∙ inaccessablσ t∩ thσá use≥ ì
  1795. áááááááááunles≤ hσ ha≤ thσ abilit∙ t∩ loaΣ thσ prope≥á nameΣ ì
  1796. ááááááááádirector∙ (NDR⌐ file.
  1797.  
  1798. ROOT>NOTE Now that I am a WHEEL and in ROOT, I can define another
  1799. ROOT>NOTE   directory structure which is special:
  1800.  
  1801.  
  1802. ROOT>ldr special.ndr
  1803. ZCPR3 LDR, Version 1.0
  1804.  Loading SPECIAL.NDR
  1805. ROOT>pwd
  1806. PWD, Version 1.0
  1807.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  1808. ----  --------    ----  --------    ----  --------    ----  --------    
  1809. A  0: BASE        A  1: PRIVATE1    A  2: PRIVATE2    A 14: SYSROOT     
  1810. A 15: ROOT        
  1811.  
  1812. B  0: DEMO1       B  1: DEMO2       B  2: DEMO3       B  3: DEMO4       
  1813. B  4: DEMO5       B  5: INTRO       B  6: MAIL        
  1814.  
  1815. ROOT>NOTE Note that there is a 2nd root, called SYSROOT, which
  1816. ROOT>NOTE   was not known (OR ACCESSIBLE) under the old system
  1817. ROOT>NOTE   (SYS.NDR)
  1818. ROOT>
  1819.  
  1820. ROOT>NOTE Also, as a wheel, I can obtain passwords:
  1821.  
  1822. ROOT>pwd pass
  1823. PWD, Version 1.0
  1824.  DU : DIR Name - Password     DU : DIR Name - Password    
  1825. ----  --------   --------    ----  --------   --------    
  1826. A  0: BASE     -             A  1: PRIVATE1 - MYPASS1     
  1827. A  2: PRIVATE2 - PASS        A 14: SYSROOT  - SPASS       
  1828. A 15: ROOT     - RPASS       
  1829.  
  1830. B  0: DEMO1    -             B  1: DEMO2    -             
  1831. B  2: DEMO3    -             B  3: DEMO4    -             
  1832. B  4: DEMO5    -             B  5: INTRO    -             
  1833. B  6: MAIL     - MPASS       
  1834.  
  1835. ROOT>private1:
  1836. PW? mypass1
  1837. PRIVATE1>wheel /r
  1838. WHEEL, Version 3.0
  1839.  Wheel Password?  Wheel Byte is OFF
  1840.  
  1841. PRIVATE1>pwd pass
  1842. PWD, Version 1.0
  1843.  Password Request Denied - Not Wheel
  1844.  DU : DIR Name     DU : DIR Name     DU : DIR Name     DU : DIR Name    
  1845. ----  --------    ----  --------    ----  --------    ----  --------    
  1846. A  0: BASE        A  1: PRIVATE1    A  2: PRIVATE2    A 14: SYSROOT     
  1847. A 15: ROOT        
  1848.  
  1849. B  0: DEMO1       B  1: DEMO2       B  2: DEMO3       B  3: DEMO4       
  1850. B  4: DEMO5       B  5: INTRO       B  6: MAIL        
  1851.  
  1852.  
  1853. PRIVATE1>ldr root:sys.ndr
  1854. PW? rpass
  1855. ZCPR3 LDR, Version 1.0
  1856.  Loading SYS.NDR
  1857.  
  1858. PRIVATE1>ldr root:special.ndr
  1859. PW? rpass
  1860. ZCPR3 LDR, Version 1.0
  1861.  Loading SPECIAL.NDR
  1862.  
  1863. PRIVATE1>sysroot:
  1864. PW? spass
  1865.  
  1866. SYSROOT>root:
  1867. PW? rpass
  1868.  
  1869. ROOT>ldr sys.ndr
  1870. ZCPR3 LDR, Version 1.0
  1871.  Loading SYS.NDR
  1872.  
  1873. ROOT>sysroot:
  1874. ROOT>NOTE SYSROOT is not even defined now
  1875.  
  1876.  
  1877.                ---- End of Introduction to ZCPR3 ----
  1878.  
  1879.  
  1880.  
  1881. .FI B:Z3USER.IDX
  1882.