home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug060.arc / CPM#005.LBR / MKWAIT20.DOC < prev    next >
Text File  |  1979-12-31  |  12KB  |  315 lines

  1. MKWAIT (MaKe WAIT)   Version 2.0
  2. For Osborne EXECUTIVE only.
  3.  
  4. Copyright (C) Peter C. Cole   July, 1985   Duncanville, TX
  5. All commercial rights reserved.
  6. Released for free distribution. Not to be sold.
  7.  
  8.  
  9. MKWAI╘ wil∞ creatσ o≥ edi⌠ ß "Wai⌠ Filσ" oε thσ disδ drivσ oµ you≥ ì
  10. choice« ┴ "Wai⌠ Fileó i≤ ß filσ tha⌠ has these features:
  11.  
  12. ááááá1.áááI⌠ caε senΣ ß messagσ t∩ thσ screeε anΣ theε wait unti∞ ì
  13. ááááááááááyo⌡ pusΦ ß button« Thσ messagσ i≤ alway≤ precedeΣ b∙ ß ì
  14. ááááááááááflashinτ "REA─ NOTE:". Thσ compute≥ wil∞ bee≡ t∩ aler⌠ ì
  15. ááááááááááyou.
  16.  
  17. ááááá2.áááI⌠ caε tes⌠ u≡ thσ screeε fo≥ ß messagσ linσ tha⌠ wa≤ ì
  18. áááááááááápu⌠ oε thσ screeε durinτ thσ runninτ oµ a previou≤ ì
  19. ááááááááááprogram« Iµ thσ messagσ linσ i≤ correc⌠ theε n∩ wai⌠ ì
  20. ááááááááááwil∞ occur« If¼ however¼ thσ messagσ linσ i≤ no⌠ ì
  21. áááááááááácorrec⌠ theε ß messagσ i≤ giveε anΣ thσ "Wai⌠ Fileó ì
  22. ááááááááááwil∞ wait.
  23.  
  24. ááááá3.áááI⌠ wil∞ allo≈ yo⌡ t∩ terminatσ an∙ remaininτ CP/═ ì
  25. ááááááááááand/o≥ SUBMI╘ commands.
  26.  
  27. Thesσ "Wai⌠ Filesó caε bσ inserteΣ int∩ ß CP/═ o≥ SUBMI╘ commanΣ ì
  28. strinτ t∩ hel≡ yo⌡ contro∞ thσ sequence« Somσ suggesteΣ use≤ oµ ì
  29. "Wai⌠ Filesó are:
  30.  
  31. ááááá1.áááT∩ tel∞ yo⌡ wheε ß disδ changσ i≤ required« I⌠ caε bσ ì
  32. ááááááááááuseΣ t∩ tel∞ yo⌡ wha⌠ typσ oµ disδ t∩ changσ t∩ anΣ ì
  33. ááááááááááwhicΦ drivσ t∩ pu⌠ thσ disδ into.
  34.  
  35.      2.áááIµ yo⌡ usσ ß prograφ likσ SKEY╙ froφ INOV┴ iε Dallas¼ ì
  36. ááááááááááT° theε anothe≥ usσ oµ "Wai⌠ Filesó migh⌠ bσ t∩ tel∞ ì
  37. ááááááááááyo⌡ t∩ changσ onσ o≥ morσ specia∞ functioε ke∙ ì
  38. áááááááááádefination≤ and what to change them to.ì
  39.  
  40. ááááá3.áááAllo≈s terminatioε oµ thσ res⌠ oµ thσ commanΣ strinτ ì
  41. ááááááááááwheε ß prograφ iε thσ commanΣ strinτ indicate≤ aε erro≥ ì
  42. ááááááááááoε thσ screen.
  43.  
  44. .paè1.    HOW TO RUN "MKWAIT"
  45.  
  46. 1.1   MKWAIT i≤ ruε b∙ typinτ iε it≤ namσ usinτ norma∞ CP/═ ì
  47. ááááááformat«
  48.  
  49. 1.2áááMKWAIT doe≤ no⌠ usσ any commanΣ tails«ì
  50.  
  51. 1.3áááTo exit from MKWAIT push ^C or X from the Main Menu.
  52.  
  53.  
  54.  
  55. 2.ááááTHE MAIN MENU OF "MKWAIT"
  56.  
  57. 2.1áááWheε MKWAIT i≤ firs⌠ started¼ ß fe≈ word≤ describinτ MKWAIT ì
  58. ááááááarσ displayeΣ oε thσ screen« Thesσ word≤ arσ removeΣ anΣ ì
  59. ááááááwil∞ no⌠ reappea≥ afte≥ thσ firs⌠ use≥ actioε selectioε i≤ ì
  60. áááááámade.
  61.  
  62. 2.2áááUser action selections are:
  63.  
  64. áááááá1. Read a disk drive for an existing "Wait File".
  65. áááááá2. Create a new message.
  66. áááááá3. Change to a different file name.
  67. ááááá 4. Create or change "Check Line Above" data.
  68. áááááá5. Edit the "active message".
  69. áááááá6. Create a new "Wait File" on a disk drive of your choice.
  70. áááááá7. Exit MKWAIT.
  71.  
  72. 2.3áááThσ "activσ message" i≤ displayeΣ a⌠ thσ bottoφ oµ thσ ì
  73. ááááááMaiε Menu« Therσ i≤ n∩ "activσ message" wheε MKWAIT i≤ ì
  74. ááááááfirst started.
  75.  
  76.  
  77. .paè3.ááááREADING A DISK DRIVE FOR AN EXISTING "WAIT FILE"
  78.  
  79. 3.1áááPusΦ A¼ B¼ etc« froφ thσ Maiε Men⌡ t∩ reaΣ thσ selecteΣ ì
  80. áááááádisδ drivσ fo≥ aε existinτ "Wai⌠ File"« Remembe≥ t∩ usσ thσ ì
  81. áááááácorrect file name.
  82.  
  83. 3.2áááIµ ß "Wait Fileó exist≤ oε thσ disδ anΣ i⌠ wa≤ createΣ ì
  84. ááááááb∙ MKWAI╘ theε it≤ messagσ anΣ "Checδ Linσ Aboveó datß wil∞ ì
  85. áááááábσ displayeΣ fo≥ reference« 
  86.  
  87. 3.3   Thσ filσ caε bσ accepteΣ anΣ overwritσ thσ existinτ "activσ ì
  88. áááááádataó o≥ thσ filσ caε bσ ignoreΣ anΣ thσ use≥ caε returε t∩ ì
  89. ááááááthσ Maiε Men⌡ withou⌠ overwritinτ thσ existinτ "activσ ì
  90. áááááádata".
  91.  
  92.  
  93.  
  94.  
  95. 4.ááááHOW TO CREATE A MESSAGE
  96.  
  97. 4.1áááPushinτ "1ó froφ thσ Maiε Men⌡ wil∞ allo≈ yo⌡ t∩ creatσ ß ì
  98. ááááááne≈ message« 
  99.  
  100. 4.2áááPushinτ A¼ B¼ etc« froφ thσ Maiε Men⌡ wil∞ reaΣ iε a ì
  101. áááááámessagσ froφ aε existinτ "Wai⌠ File"« Thσ "Checδ Linσ ì
  102. ááááááAbove" data will tag along with the message.
  103.  
  104. 4.3 ááPushinτ <RETURN╛ wil∞ allo≈ yo⌡ t∩ edi⌠ thσ "activσ ì
  105. áááááámessage".
  106.  
  107. 4.4 ááMessage≤ caε bσ u≡ t∩ 255 character≤ long« Thi≤ wil∞ givσ ì
  108. ááááááthreσ 8░ characte≥ line≤ plu≤ 15 character≤ oε thσ 4tΦ ì
  109. ááááááline.
  110.  
  111.  
  112.  
  113. 5.    "CHECK LINE ABOVE" OPERATIONS
  114.  
  115. 5.1áááPusΦ "3ó froφ thσ maiε men⌡ t∩ ente≥ int∩ "Checδ Linσ ì
  116. ááááááAboveó operations« "Checδ Linσ Aboveó allo≈s "Wai⌠ Filesó t∩ ì
  117. ááááááactuall∙ looδ ß predetermineΣ numbe≥ oµ line≤ u≡ thσ screeε ì
  118. ááááááfo≥ ß standarΣ messagσ lef⌠ b∙ thσ previou≤ program« Iµ ì
  119. áááááátha⌠ messagσ i≤ founΣ theε thσ "Wai⌠ Fileó wil∞ no⌠ wait« ì
  120. ááááááIµ thσ messagσ i≤ no⌠ founΣ theε thσ "Wai⌠ Fileó wil∞ givσ ì
  121. ááááááß messagσ oµ it≤ owε anΣ theε wai⌠ unti∞ yo⌡ decidσ wha⌠ t∩ ì
  122. áááááádo. This feature can be "disabled" or "activated".
  123.  
  124. 5.2áááIµ thσ "Checδ Linσ Aboveó i≤ "disabledó wheε "3ó i≤ pusheΣ ì
  125. áááááátheε thσ onl∙ option≤ yo⌡ wil∞ havσ arσ t∩ "activateó i⌠ o≥ ì
  126. ááááááreturε t∩ thσ Maiε Menu.
  127. .paè5.3áááIµ thσ "Checδ Linσ Aboveó i≤ "activatedó wheε "3ó i≤ pusheΣ ì
  128. áááááátheε yo⌡ havσ severa∞ options« The∙ are:
  129.  
  130. áááááá1.ááReturn to the Main Menu.
  131. áááááá2.ááDisable "Check Line Above".
  132. áááááá3.ááEdit the "Check Line Above" message.
  133. áááááá4.ááSet the number of lines to look up.
  134.  
  135. 5.4áááThσ numbe≥ oµ line≤ t∩ looδ u≡ i≤ referenceΣ froφ thσ CP/═ ì
  136. áááááá"Wai⌠ Fileó commanΣ line« Fo≥ example:
  137.  
  138.       XXX╪      (Thi≤ i≤ thσ messagσ lef⌠ b∙ thσ previou≤ program)
  139.  
  140.       A>WAIT    (This is the CP/M "Wait File" command line)
  141.  
  142.     ááXXX╪ i≤ ▓ line≤ u≡ froφ thσ commanΣ line« Yo⌡ caε selec⌠ ì
  143. ááááááfroφ ░ t∩ ╣ lines« Yo⌡ caε selec⌠ u≡ t∩ 1╡ line≤ u≡ iµ yo⌡ ì
  144. áááááákno≈ thi≤ littlσ trick« Thσ fou≥ leas⌠ significan⌠ bit≤ oµ ì
  145. ááááááthσ ASCI╔ codσ arσ useΣ t∩ ente≥ thσ number« Fo≥ examplσ ì
  146. áááááápusΦ J,K,L,M,╬ anΣ ╧ fo≥ 10,11,12,13,14¼ anΣ 15.
  147.  
  148. 5.5áááYo⌡ caε looδ fo≥ u≡ t∩ 3▒ characters« Remembe≥ tha⌠ thσ ì
  149. ááááááfirs⌠ characte≥ i≤ alway≤ iε thσ fa≥ lef⌠ columε oµ thσ ì
  150. ááááááscreen« Iµ therσ arσ blank≤ therσ theε the∙ mus⌠ bσ par⌠ oµ ì
  151. ááááááthe message line to be looked for.
  152.  
  153. áááááá
  154.  
  155.  
  156. 6.ááááON BOARD LINE EDITOR
  157.  
  158. 6.1áááThσ oε boarΣ linσ edito≥ i≤ useΣ t∩ edi⌠ thσ "activσ ì
  159. áááááámessage" and the "Check Line Above" message.
  160.  
  161. 6.2áááThσ oε boarΣ linσ edito≥ wil∞ allo≈ mos⌠ CP/═ anΣ WordSta≥ ì
  162. ááááááeditinτ commands« ┴ men⌡ oµ editinτ command≤ i≤ provideΣ oε ì
  163. ááááááthe screen.
  164.  
  165. 6.3áááMKWAI╘ use≤ 0Φ insteaΣ oµ "$ó fo≥ thσ "outpu⌠ delimiteró ì
  166. áááááá(enΣ flaτ oµ screeε messages)« Thi≤ mean≤ tha⌠ "$ó caε bσ ì
  167. ááááááentereΣ int∩ thσ message.
  168.  
  169. 6.4áááThσ editeΣ messagσ caε bσ saveΣ and replace the "active" ì
  170. áááááámessage b∙ pushinτ <RETURN>« ì
  171.  
  172. 6.5áááThσ editeΣ messagσ caε bσ discarded¼ iµ desired¼ b∙ pushinτ ì
  173. áááááá<ESC>.
  174.  
  175. 6.6áááThσ onboarΣ edito≥ wil∞ no⌠ allo≈ nonprintablσ character≤ ì
  176. ááááááto bσ entereΣ int∩ thσ message.
  177. .paè7.    CHANGE TO A DIFFERENT FILE NAME
  178.  
  179. 7.1   The default file name that MKWAIT can create is WAIT. 
  180.  
  181. 7.2áááT∩ changσ t∩ ß differen⌠ filσ namσ pusΦ "2ó froφ thσ Maiε ì
  182. ááááááMenu. 
  183.  
  184. 7.3 áá┴ maximuφ oµ ╕ character≤ wil∞ bσ allowed« Lowe≥ casσ wil∞ ì
  185. áááááábσ converteΣ t∩ uppe≥ case« Follo≈ CP/═ Plu≤ rule≤ fo≥ ì
  186. áááááácreatinτ filσ names« Somσ character≤ sucΦ a≤ ║ anΣ « canno⌠ ì
  187. áááááábσ useΣ iε thσ ╕ characte≥ filσ name« MKWAI╘ will allo≈ yo⌡ ì
  188. áááááát∩ ente≥ thesσ character≤ bu⌠ the∙ wil∞ causσ yo⌡ problem≤ ì
  189. áááááálate≥ wheε thσ filσ i≤ actuall∙ createΣ oε ß disk.
  190.  
  191. 7.4áááThσ filσ typσ oµ .CO═ i≤ assumeΣ fo≥ al∞ filσ name≤ ì
  192. ááááááselected. 
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199. 8.ááááWRITE THE ACTIVE MESSAGE TO DISK
  200.  
  201. 8.1áááPusΦ "Wó t∩ writσ thσ "activσ message" t∩ ß disδ drivσ ì
  202. ááááááto be selected.
  203.  
  204. 8.2áááMKWAIT will allow a message of no characters if desired.
  205.  
  206. 8.3áááIµ thσ "Wai⌠ Fileó alread∙ exist≤ oε thσ disδ theε MKWAI╘ ì
  207. ááááááwil∞ questioε iµ i⌠ i≤ t∩ bσ overwritten« MKWAI╘ caε ì
  208. ááááááoverwritσ ß read/onl∙ "Wai⌠ Fileó iµ needed« 
  209.  
  210.  
  211. .paè9.ááááADDITIONAL NOTES
  212.  
  213. 9.1 ááT∩ creatσ CP/═ "commanΣ stringsó witΦ "Wai⌠ Files"iε them¼ ì
  214. áááááátheε usσ somethinτ likσ MAKES╘ b∙ your≤ truely¼ o≥ setu≡ ß ì
  215. ááááááspecia∞ functioε key¼ o≥ jus⌠ typσ iε ß commanΣ strinτ ì
  216. ááááááafte≥ thσ systeφ prompt« "Wai⌠ Filesó caε als∩ bσ useΣ iε ì
  217. ááááááSUBMI╘ file≤ iµ desired« Pushinτ thσ <ESC╛ ke∙ whilσ ì
  218. ááááááwaitinτ iε ß "Wai⌠ Fileó wil∞ terminatσ al∞ remaininτ ì
  219. áááááácommand≤ includinτ thosσ iε SUBMI╘ file≤ (includinτ al∞ ì
  220. áááááácommand≤ oµ stackeΣ SUBMI╘ files).
  221.  
  222. 9.2áááYo⌡ don'⌠ always neeΣ "Wai⌠ Filesó t∩ inser⌠ message≤ ì
  223. ááááááiεto you≥ commanΣ string« Yo⌡ caε inser⌠ message≤ directl∙ ì
  224. ááááááint∩ you≥ commanΣ strinτ b∙ usinτ thσ semicolon« Fo≥ ì
  225. ááááááexample:
  226.  
  227. ááááááDIR A:!;LOAD DISK INTO DRIVE B:
  228.  
  229. ááááááKee≡ iε minΣ tha⌠ thσ abovσ examplσ wil∞ no⌠ allo≈ yo⌡ t∩ ì
  230. ááááááfreezσ thσ strinτ iε progres≤ (tha⌠ is¼ wai⌠ unti∞ ß ke∙ i≤ ì
  231. áááááápushed⌐. 
  232.  
  233.  
  234. 10.ááááSOME PROBLEMS
  235.  
  236. 10.1ááWheε thσ oε boarΣ linσ edito≥ become≤ ful∞ anΣ yo⌡ tr∙ t∩ ì
  237. ááááááadΣ onσ morσ characte≥ theε thσ "belló wil∞ sound« Yo⌡ ma∙ ì
  238. áááááánoticσ tha⌠ wheε thσ "belló sounds¼ tha⌠ thσ fa≥ lef⌠ ì
  239. áááááácharacte≥ oε thσ screeε wil∞ flash« Thi≤ i≤ becausσ thσ ì
  240. ááááááBIO╙ activate≤ thσ CP/═ curso≥ whilσ thσ bel∞ i≤ goinτ ofµ ì
  241. ááááááeveε thougΦ thσ oε boarΣ edito≥ turneΣ i⌠ ofµ s∩ i⌠ coulΣ ì
  242. ááááááusσ it≤ owε cursor« 
  243.  
  244. 10.2ááYo⌡ canno⌠ ente≥ carriagσ return/linσ feeΣ code≤ int∩ thσ ì
  245. áááááámessages« Instead¼ yo⌡ mus⌠ usσ thσ featurσ tha⌠ line≤ wil∞ ì
  246. ááááááautomaticall∙ g∩ t∩ thσ nex⌠ linσ afte≥ displayinτ 8░ ì
  247. áááááácharacter≤ oε thσ screen« Iε orde≥ no⌠ t∩ spli⌠ word≤ iε ì
  248. ááááááthσ wronτ placσ yo⌡ ma∙ wan⌠ t∩ adΣ space≤ t∩ enΣ ß linσ iε ì
  249. ááááááthσ righ⌠ place.
  250.  
  251. 10.3ááThσ featurσ t∩ terminatσ al∞ remaininτ command≤ i≤ baseΣ oε ì
  252. ááááááundocumenteΣ information« Therσ i≤ thσ possibilit∙ tha⌠ ì
  253. ááááááDigita∞ ResearcΦ and/o≥ Osbornσ coulΣ changσ thσ locatioε ì
  254. ááááááoµ datß needeΣ fo≥ commanΣ terminations« Thereforσ, thi≤ ì
  255. ááááááfeaturσ ma∙ no⌠ worδ oε futurσ release≤ oµ SUBMI╘ o≥ thσ ì
  256. ááááááOsborne Executive« 
  257.  
  258. 10.4ááA≤ alway≤ yo⌡ shoulΣ bacδ u≡ importan⌠ file≤ iε casσ oµ ì
  259. ááááááproblems«  Thi≤ i≤ no⌠ onl∙ gooΣ advicσ fo≥ wheε yo⌡ usσ ì
  260. áááááá"Wai⌠ Files"¼ bu⌠ i⌠ i≤ gooΣ advicσ a⌠ al∞ time≤ anΣ wheε ì
  261. ááááááusinτ al∞ programs.
  262.  
  263.  
  264.  
  265. .paè11.áááFO╥ CP/═ PLU╙ HACKER╙ ONLY
  266.  
  267. 11.1ááCP/═ Plu≤ i≤ great« CP/═ Plu≤ i≤ wonderful« CP/═ Plu≤ ha≤ ì
  268. ááááááit≤ owε strangσ quirks« Fo≥ example¼ ho≈ i⌠ handle≤ ì
  269. áááááácommanΣ string≤ i≤ no⌠ al∞ straigh⌠ forward.
  270.  
  271. 11.2ááIµ yo⌡ werσ t∩ typσ iε afte≥ thσ CP/═ promp⌠ ß commanΣ ì
  272. áááááástring¼ yo⌡ coulΣ ente≥ u≡ t∩ 22╖ characters« Wh∙ 22╖ ì
  273. áááááácharacters┐ Wh∩ knows.
  274.  
  275. 11.3ááYo⌡ caε ente≥ ß commanΣ strinτ oµ u≡ t∩ 12╢ character≤ ì
  276. ááááááusinτ Bdo≤ Functioε 4╖ (Chaiε t∩ Program)« Thi≤ i≤ becausσ ì
  277. áááááái⌠ use≤ thσ defaul⌠ DM┴ whicΦ i≤ 12╕ byte≤ long« Als∩ thσ ì
  278. áááááácommanΣ strinτ mus⌠ enΣ witΦ ß nul∞ bytσ 00h« S∩ yo⌡ migh⌠ ì
  279. ááááááasδ wh∙ 12╢ characters╗ wh∙ no⌠ 127┐ You≥ gues≤ i≤ a≤ gooΣ ì
  280. ááááááa≤ mine.
  281.  
  282. 11.4ááCommanΣ tail≤ arσ loadeΣ int∩ thσ defaul⌠ DM┴ a⌠ addres≤ ì
  283. áááááá80h« Thσ firs⌠ bytσ i≤ thσ numbe≥ oµ byte≤ iε thσ commanΣ ì
  284. áááááátail« Thσ seconΣ bytσ i≤ alway≤ ß blanδ (20h)« Thσ bytσ ì
  285. ááááááfollowinτ thσ las⌠ bytσ oµ thσ commanΣ tai∞ i≤ 00Φ unles≤ ì
  286. áááááái⌠ occur≤ a⌠ 100Φ o≥ abovσ iε whicΦ casσ i⌠ anΣ al∞ oµ thσ ì
  287. áááááátail data loaded past 100h i≤ lost« 
  288.  
  289. 11.5ááS∩ ho≈ wa≤ ╔ ablσ t∩ terminatσ commanΣ lines« ╔ mus⌠ admi⌠ ì
  290. á áááái⌠ wa≤ lucδ anΣ ß lo⌠ oµ trial and error«
  291.  
  292. ááááááFirs⌠ yo⌡ mus⌠ terminatσ an∙ anΣ al∞ SUBMI╘ RSX's« Iµ yo⌡ ì
  293. áááááásenΣ 81Φ a≤ thσ RS╪ Functioε Numbe≥ oµ Bdo≤ Functioε 6░ ì
  294. ááááááunti∞ i⌠ return≤ thσ Erro≥ Codσ oµ FFΦ theε thi≤ wil∞ ì
  295. ááááááterminatσ al∞ SUBMI╘ RSX's« I⌠ ma∙ requirσ man∙ 81Φ code≤ ì
  296. ááááááiµ SUBMI╘ file≤ arσ stacked.
  297.  
  298. ááááááNex⌠ yo⌡ mus⌠ terminatσ an∙ CP/═ commanΣ RS╪ (therσ wil∞ ì
  299. ááááááonl∙ bσ onσ iµ therσ i≤ any)« Iµ yo⌡ checδ thσ datß a⌠ aε ì
  300. ááááááoffse⌠ oµ 16Φ iε thσ SC┬ (usσ Bdo≤ Functioε 49⌐ i⌠ wil∞ ì
  301. áááááátel∞ yo⌡ thσ HigΦ addres≤ oµ thσ commanΣ RSX« Iµ i⌠ i≤ 00Φ ì
  302. áááááátheε therσ i≤ n∩ commanΣ RSX« WitΦ thσ HigΦ addres≤ knowε ì
  303. ááááááanΣ addinτ thσ Lo≈ addres≤ oµ 0EΦ theε thσ commanΣ RS╪ caε ì
  304. áááááábσ "removedó b∙ settinτ it≤ "removσ flagó t∩ FFh« Nex⌠ yo⌡ ì
  305. áááááámus⌠ se⌠ thσ addres≤ pointe≥ oµ thσ commanΣ RS╪ t∩ 0000h« ì
  306. ááááááThi≤ i≤ locateΣ a⌠ thσ offse⌠ oµ 15Φ iε thσ SCB.
  307.  
  308.  
  309. Pete≥ C« Cole
  310.  
  311. Man∙ thank≤ t∩ Joe∞ Guerrß anΣ Martiε Murr∙ fo≥ sharinτ thei≥ ì
  312. excitemen⌠ oµ thσ interna∞ workinτ oµ thσ Executivσ witΦ me« The∙ ì
  313. havσ knowingl∙ o≥ unknowingl∙ giveε mσ man∙ oµ m∙ idea≤ fo≥ thi≤ ì
  314. project.
  315.