home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / sigmv043.ark / DESCRIP.DOC < prev    next >
Text File  |  1985-02-09  |  15KB  |  235 lines

  1.                  8080/Z80/8085 PIDGIN UNDER CP/M
  2.  
  3.                    By Andrew L. Bender, M. D.
  4.  
  5.      PIDGI╬ wa≤ describeΣ b∙ it≤ inventor¼á Bil∞ Gale¼á a≤ ß "Lo≈ ì
  6. Leve∞ Programminτ Language"«á  ╔ supposσ tha⌠ it≤ maiε attractioε ì
  7. t∩ mσ wheε ╔ firs⌠ reaΣ abou⌠ i⌠ wa≤ it≤ structured¼ "Có languagσ ì
  8. appearancσ anΣ it≤ simplicity«  I⌠ haΣ onl∙ onσ drawbacδ anΣ tha⌠ ì
  9. wa≤á thσ lacδ oµ ß suitablσ 808░ compiler«á  Bil∞ haΣ presenteΣ ß ì
  10. compile≥á fo≥á thσ 650▓ whicΦ wa≤ detaileΣ enougΦá t∩á star⌠á thσ ì
  11. projec⌠á goinτ oε thi≤ compute≥ bu⌠ wa≤ no⌠ reall∙ enougΦ t∩á ge⌠ ì
  12. thσ projec⌠ goinτ oε othe≥ computers«  M∙ interes⌠ wa≤ stirreΣ b∙ ì
  13. thσ promisσ oµ ß compiler-compile≥ iε ß futurσ issuσ oµ Dr« Dobb≤ ì
  14. writteεá iεá PIDGIN«á  ╔á wa≤á interesteΣá iεá compilinτá ßá datß ì
  15. definitioεá languagσá fo≥á anothe≥á projec⌠ anΣá thσá though⌠á oµ ì
  16. constructinτá ß compile≥ witΦ thσ rathe≥ primativσ tool≤ ╔ haΣ a⌠ ì
  17. m∙á disposa∞á wa≤ disturbing«á  ╔ realizeΣ tha⌠ iµá therσá wa≤á ß ì
  18. compile≥á compile≥á availablσá ╔ woulΣ a⌠ leas⌠ bσá ablσá t∩á ge⌠ ì
  19. starteΣ sincσ thσ fron⌠ enΣ oµ thσ compile≥ woulΣ bσ completeΣ a⌠ ì
  20. thσ timσ thσ languagσ wa≤ defined.
  21.      Thσá tasδ oµ constructinτ ß PIDGI╬ compile≥ seemeΣ t∩á breaδ ì
  22. dowε int∩ threσ distinc⌠ tasks«  First¼ onσ woulΣ havσ t∩ writσ ß ì
  23. TINCM╨á compile≥ t∩ proces≤ PIDGI╬ language«á  Second¼á onσ woulΣ ì
  24. havσá t∩á writσ al∞ oµ thσ suppor⌠ routine≤ sucΦ a≤ thσá I/╧á anΣ ì
  25. matΦá functions«á  Last¼á thσá PIDGI╬ prograφ woulΣá havσá t∩á bσ ì
  26. adapteΣ t∩ interfacσ witΦ thσ CP/═ environment«á  Oncσ TINCM╨ wa≤ ì
  27. u≡á anΣá running¼á i⌠ coulΣ bσ useΣ t∩ compilσ itselµá anΣá othe≥ ì
  28. program≤á a≤ needed«á  Al∞ threσ task≤ haΣ t∩ bσ completeΣá firs⌠ ì
  29. before TINCMP could be made to work.
  30.      A⌠á firs⌠á i⌠á seemeΣ tha⌠ codinτ TINCM╨ woulΣ bσá thσá mos⌠ ì
  31. difficul⌠á tasδá oµá thσ threσ anΣ i⌠ reall∙á proveΣá t∩á bσá thσ ì
  32. simples⌠á task«á  Codinτá thσ I/╧ routine≤ tooδ abou⌠ 60Ñ oµá thσ ì
  33. developmen⌠á timσ becausσ thσ thirΣ task¼á thσ CP/M filσá contro∞ ì
  34. interfacσ tooδ ß lonτ timσ t∩ desigε anΣ test«á  Aε overal∞á plaε ì
  35. wa≤á madσ baseΣ oε thσ I/╧ structurσ oµ thσ compile≥ a≤ presenteΣ ì
  36. b∙ Bil∞ Gale«  ╔ spokσ witΦ Bil∞ abou⌠ thσ I/╧ structurσ anΣ somσ ì
  37. change≤ whicΦ ╔ haΣ proposeΣ bu⌠ botΦ oµ u≤ agreeΣ tha⌠ i⌠á woulΣ ì
  38. havσá changeΣá thσ overal∞ desigε oµ thσ languagσ whicΦ haΣá beeε ì
  39. alread∙á published«á  ╔ decideΣ t∩ kee≡ thσá structurσá unchangeΣ ì
  40. eveε thougΦ thσ usσ oµ buffe≥ areß t∩ filσ association≤ seemeΣ t∩ ì
  41. be rather unusual constructions.
  42.      Considerinτá thσá availablσá tool≤ fo≥ thσá constructioεá oµ ì
  43. TINCMP'≤á firs⌠á 808░ realizatioε ╔ discardeΣá BASI├á becausσá i⌠ ì
  44. woulΣ havσ beeε ß difficul⌠ languagσ t∩ ge⌠ thing≤ goinτ in«á  I⌠ ì
  45. diΣá offe≥ easσ oµ debugginτ bu⌠ waitinτ fo≥ i⌠ t∩ chuτ througΦ ß ì
  46. fe≈ line≤ oµ PIDGI╬ seemeΣ t∩ bσ ß biτ drawback«á  Afte≥ al∞ herσ ì
  47. wa≤á aεá interprete≥á (BASIC⌐á interpretinτá anothe≥á interprete≥ ì
  48. (TINCMP)«á  Thσ nex⌠ languagσ whicΦ wa≤ seriousl∙ considereΣá wa≤ ì
  49. FORTRAN«  ╔ didn'⌠ looδ int∩ thi≤ carefull∙ becausσ ╔ fel⌠ tha⌠ ╔ ì
  50. wouldn'⌠á learεá mucΦ doinτ i⌠ iε FORTRA╬ anΣ thσ lacδ oµá strinτ ì
  51. manipulatioεáá anΣá automatiπá typσá conversion≤á seemeΣá t∩áá bσ ì
  52. undesired«á  ╔ wa≤ theε thinkinτ of ß highe≥ languagσ - d∩ i⌠á iε ì
  53. PL/I-8░á ╔ thought«á  ╔ discardeΣ thi≤ ideß becusσ ╔ reall∙á fel⌠ ì
  54. tha⌠á ╔ kne≈ s∩ littlσ abou⌠ PL/╔ tha⌠ ╔ woulΣ bσ spendinτ al∞ oµ ì
  55. m∙á timσ educatinτ myselµ anΣ woulΣ neve≥ ge⌠ thσá joΓá done«á  ╔ ìètheεá saiΣá t∩á myself║á "Self¼á yo⌡ havσ beeεá writinτá assembl∙ ì
  56. languagσá fo≥á thσá pas⌠ 2▒ years¼á wh∙ no⌠á d∩á i⌠á iεá assembl∙ ì
  57. language?óá  Sincσ n∩ answe≥ wa≤ forthcominτ ╔ almos⌠ begaε t∩ d∩ ì
  58. i⌠á iε MACRO-8░ wheε ╔ wen⌠ t∩ ß loca∞ compute≥ cluΓ meetinτá anΣ ì
  59. wa≤á fortunatσá enougΦ t∩ obtaiε ß cop∙ oµ thσá CP/═á Use≥á Grou≡ ì
  60. Librar∙ Volumσ 51«  ╔ wa≤ woolgatherinτ onσ afternooε rearranginτ ì
  61. al∞á oµ m∙ librar∙ disk≤ wheε ╔ camσ acros≤ thi≤ disδ anΣ noticeΣ ì
  62. tha⌠á i⌠ containeΣ ß "powerfu∞ macr∩ processor"«á  ┴ smal∞á ligh⌠ ì
  63. wen⌠ oε anΣ ╔ printeΣ ou⌠ al∞ oµ thσ documentation«  I⌠ wa≤ clea≥ ì
  64. tha⌠á thi≤á macr∩á processo≥á wa≤ no⌠á onl∙á powerfu∞á enougΦá t∩ ì
  65. directl∙ proces≤ PIDGIN¼ i⌠ wa≤ ß membe≥ oµ thσ famil∙ froφ whicΦ ì
  66. TINCM╨á wa≤á derived«á  STAGE▓á wa≤á theεá thσá answer«á  STAGE2¼ ì
  67. implementeΣá b∙ RicharΣ Curtis≤ anΣ deriveΣ froφ SIMCM╨á wa≤á thσ ì
  68. featurσá prograφá oεá CP/MU╟ volumσ 51«á  ╔ studieΣá M≥á Curtissº ì
  69. documentatioεá fo≥ severa∞ day≤ theε ╔ raε ou⌠á t∩á Prentice-Hal∞ ì
  70. anΣá bough⌠á Wm«á Waite'≤á Booδ "Implementinτ Softwarσá fo≥á Non-ì
  71. Numeric Applications".
  72.      Afte≥á ßá weeδ o≥ so¼á ╔ haΣ ß se⌠ oµ workinτá macro≤á whicΦ ì
  73. permitteΣ mσ t∩ pu⌠ iε PIDGI╬ languagσ anΣ ge⌠ ou⌠ code«á  ╔á haΣ ì
  74. TINCM╨á u≡á iε assembl∙ codσ iε exactl∙ ninσ days«á  Gettinτá thσ ì
  75. macro≤ writteε wa≤ slow«á  ╔ figurσ tha⌠ ╔ spen⌠ abou⌠ 30Ñ oµ thσ ì
  76. overal∞á timσ witΦ thσ STAGE▓ anΣ TINCM╨á macros«á Thσá remaininτ ì
  77. timσá wa≤á spen⌠á witΦá sundr∙ item≤ likσ fixinτá thσá linσá feeΣ ì
  78. probleφ iε TINCMP«  TINCM╨ assume≤ tha⌠ ß ne≈ linσ caε bσ defineΣ ì
  79. b∙ ß singlσ characte≥ whilσ CP/═ need≤ ß tw∩ characte≥á sequence║ ì
  80. Carriagσá return¼á linσá feed«á 
  81.      B∙á usinτ Dicδ Curtissº intege≥ arithmetiπ packagσ ╔á didn'⌠ ì
  82. neeΣ t∩ d∩ tha⌠ worδ ove≥ again«á  ╔ jus⌠ addeΣ thσ prope≥á entr∙ ì
  83. point≤á anΣ assembleΣ it«á  Unlikσ mos⌠ freσ librar∙ program≤á i⌠ ì
  84. workeΣá a⌠ once«á  Whilσ ╔ didn'⌠ neeΣ al∞ oµ thσ subroutine≤á iε ì
  85. thσá package¼á ╔ lef⌠ theφ iε therσ iε casσ anyonσ wanteΣ t∩á usσ ì
  86. them for other purposes.
  87.      ╔ trieΣ t∩ ge⌠ TINCM╨ u≡ anΣ finally¼ afte≥ ß serie≤ oµ ver∙ ì
  88. strangσá bugs¼á introduceΣ b∙ m∙ poo≥ macr∩ code¼á ╔ actuall∙ go⌠ ì
  89. thσá damεá compile≥ t∩ turε ou⌠ ß fe≈ line≤ oµá code«á  Tw∩á morσ ì
  90. macr∩á error≤á fixeΣ anΣ TINCM╨ writteε iε STAGE▓á coulΣá compilσ ì
  91. itselµá iε PIDGIN«á  I⌠ wa≤ quitσ thrillinτ t∩ seσá thσá compile≥ ì
  92. actually work as Bill Gale promised in his July 1981 article.
  93.      ╔á wa≤ theε read∙ fo≥ thσ biτ problem║á ShoulΣ ╔ handlσ codσ ì
  94. generatioεá a≤á Bil∞ diΣ o≥ shoulΣ ╔ turε ou⌠á assembl∙á languagσ ì
  95. codσá again┐á  ╔ reall∙ gavσ thi≤ questioε somσ seriou≤á thought«  ì
  96. Iµá ╔á diΣ turε ou⌠ assembl∙ languagσ codσ i⌠ woulΣá havσá t∩á bσ ì
  97. assembleΣá b∙á aε assemble≥ anΣ ╔ woulΣ havσ t∩ assumσ ß morσá o≥ ì
  98. les≤ "standardó assemble≥ whicΦ everyonσ woulΣ havσ or¼á a⌠ leas⌠ ì
  99. mos⌠ peoplσ woulΣ have«á  ╔ though⌠ oµ turninτ ou⌠ AS═ code«  AS═ ì
  100. i≤áá thσáá Digita∞á ResearcΦá assemble≥áá supplieΣáá witΦáá CP/M«  ì
  101. Unfortunatly¼á AS═ doe≤ no⌠ makσ relocatablσ codσ anΣá generatioε ì
  102. oµ absolutσ codσ didn'⌠ seeφ worthwhilσ sincσ ╔ wanteΣ t∩ bσ ablσ ì
  103. t∩á usσ librar∙ routine≤ whicΦ coulΣ bσ loadeΣ anyplacσ iε memor∙ ì
  104. t∩ makσ u≡ fo≥ thosσ CP/═ system≤ whicΦ diΣ no⌠ havσ zer∩ origin≤ ì
  105. o≥á thei≥á TP┴ beginninτ a⌠ 100H«á  Iµ ╔ wanteΣ t∩á approacΦá thσ ì
  106. probleφá a≤ Bil∞ Galσ diΣ therσ werσ othe≥á problems«á  Thσá 808░ ì
  107. hardwarσ ha≤ n∩ relativσ addressinτ a≤ doe≤ thσ 650▓ o≥ 6800«á  ╔ ì
  108. decideΣá tha⌠á thσá lacδá oµ thi≤  hardwarσá facilit∙á madσá codσ ì
  109. generatioεá witΦ TINCM╨ difficult«á  Microsoft'≤á M-8░á assemble≥ ìèseemeΣá fairl∙ ubiquitou≤ anΣ tha⌠ i⌠ was¼á iε al∞ truσ respects¼ ì
  110. compatiblσáá witΦá thσá RMA├á assemble≥á oµáá Digita∞áá Research«  ì
  111. Generatinτá assemble≥ codσ haΣ severa∞ othe≥ problem≤á associateΣ ì
  112. with it.
  113.      Lookinτá a⌠ thσ TINCM╨ compiler¼á onσ notice≤ tha⌠ therσ arσ ì
  114. man∙ possibilitie≤ fo≥ generatinτ label≤ whicΦ looδ likσ o≡ code≤ ì
  115. o≥á pseudo-operation≤ iε thσ assembler«á  808░ assembler≤á alway≤ ì
  116. seeφ t∩ definσ thσ register≤ a≤ symbol≤ s∩ tha⌠ iµ yo⌡ definσá S╨ ì
  117. a≤á ßá bytσ iε ß PIDGI╬ prograφ therσ i≤ ever∙ reasoεá t∩á firml∙ ì
  118. beleivσá tha⌠á i⌠ wil∞ blo≈ thσ assignmen⌠ oµ thσá stacδá pointe≥ ì
  119. symbo∞á "SP"«á  Al∞ oµ thesσ problem≤ caε bσ avoideΣ b∙ prefixinτ ì
  120. eacΦá symbo∞á iεá thσá outpu⌠ oµ thσá codσá generato≥á witΦá somσ ì
  121. characte≥á whicΦ doesn'⌠ looδ likσ anythinτ thσá assemble≥á woulΣ ì
  122. expec⌠á iεá aε interna∞ symbo∞ o≥ op-code«á  ╔ choosσ ßá do⌠á fo≥ ì
  123. this«á  B∙ prefixinτ almos⌠ everythinτ witΦ ß dot¼á conflict≤ arσ ì
  124. avoideΣ anΣ thσ symbol≤ arσ alway≤ unique«á  Subroutinσ name≤ arσ ì
  125. prefixeΣ witΦ tw∩ dot≤ t∩ kee≡ theφ differen⌠ froφ variablσ name≤ ì
  126. iεáá casσá therσá arσá intersection≤á betweeεá thσá two«áá  Thesσ ì
  127. intersection≤ arσ no⌠ specificall∙ prohibiteΣ b∙ PIDGIN«á  Systeφ ì
  128. symbol≤á anΣá jum≡ target≤ arσ labelleΣ witΦ ßá leadinτá questioε ì
  129. mark«áá  
  130.      Becausσ TINCM╨ canno⌠ tes⌠ o≥ branch¼á certaiε construction≤ ì
  131. arσ peculiar«á  Takσ fo≥ examplσ thσ CHOOS┼ ON/CAS┼ construction«  ì
  132. eacΦá timσ ß CAS┼ i≤ encountereΣ iε thσ inpu⌠ filσ PIDGI╬á shoulΣ ì
  133. generatσá ßá jum≡ t∩ thσ ENDCHOOS┼ labe∞ bu⌠ no⌠ thσá firs⌠á timσ ì
  134. tha⌠ CAS┼ i≤ encountereΣ afte≥ thσ CHOOS┼ ON«  Sincσ therσ arσ n∩ ì
  135. tes⌠ facilities¼ thσ jum≡ i≤ generateΣ oε ever∙ occurencσ oµ CAS┼ ì
  136. bu⌠ oε thσ firs⌠ occurance¼á aε OR╟ $-│ obliterate≤ thσ generateΣ ì
  137. JM╨á ENDCHOOS┼ instruction«á  Thi≤ i≤ donσ b∙ pushinτ ß │ oεá thσ ì
  138. stacδ a⌠ CHOOS┼ O╬ bu⌠ zer∩ thereafte≥ eacΦ timσ ß CAS┼ statemen⌠ ì
  139. i≤á noted«á  Thi≤ valuσ i≤ poppeΣ ofµ thσ stacδ anΣ useΣá a≤á thσ ì
  140. valuσá iεá thσá OR╟á statemen⌠ resultinτ iε aεá OR╟á $-░á oεá al∞ ì
  141. subsequen⌠ call≤ fo≥ CASE«á  Therσ arσ als∩ n∩ rea∞ possibilitie≤ ì
  142. fo≥á codσá optimization«áá  Perhap≤á someonσá caεá writσá ßá pos⌠ ì
  143. compilatioε optimize≥ fo≥ TINCMP - naturally in PIDGIN.
  144.      A≤ aε aiΣ t∩ program≤ operatinτ unde≥ differen⌠ environment≤ ì
  145. thσá CP/═ implementatioε oµ PIDGI╬ call≤ ß librar∙ subroutinσá a⌠ ì
  146. thσá beginninτ oµ PIDGI╬ prograφ executioε anΣ a⌠ thσ terminatioε ì
  147. oµ PIDGI╬ prograφ execution«á  Thσ beginninτ subroutinσ i≤ calleΣ ì
  148. ?INI╘ anΣ thσ concludinτ subroutinσ i≤ calleΣ ?ENDING«á  BotΦá oµ ì
  149. thesσá routine≤ arσ iε thσ IOCMPL╪ subroutine«á  ?INI╘á transfer≤ ì
  150. filσá name≤á froφá thσá contro∞ statemen⌠ t∩ ß se⌠á oµá FCB'≤á iε ì
  151. IOCMPL╪ anΣ store≤ thσ numbe≥ oµ thesσ filσ name≤ iε AC«  ?ENDIN╟ ì
  152. close≤ an∙ opeε file≤ anΣ return≤ contro∞ t∩ thσ use≥ program«  ┴ ì
  153. jum≡ t∩ ?BOO╘ alway≤ follow≤ thσ CAL╠ ?ENDIN╟ statemen⌠ wheεá thσ ì
  154. PIDGI╬ statemen⌠ ENDMAI╬ i≤ encountered«á  Iµ you≥ hear⌠ desires¼ ì
  155. yo⌡á caε changσ thesσ routine≤ t∩ d∩ anythinτ yo⌡ fee∞á necessar∙ ì
  156. in your particular system.
  157.      Variable≤á declareΣá iεá BYT┼ o≥ IN╘ statement≤á arσá alway≤ ì
  158. placeΣ iε blanδ commoε storage«á  Thi≤ facilitate≤ thei≥ usσ witΦ ì
  159. aεá undocumenteΣá featurσ and¼á beinτá honest¼á totall∙á untesteΣ ì
  160. feature¼áá whicΦáá allow≤á independen⌠á compilatioεá oµáá prograφ ì
  161. subroutines«á  ╔á expec⌠ thi≤ featurσ t∩ bσ read∙ iε abou⌠á threσ ì
  162. month≤ time«  I⌠ wil∞ no⌠ makσ previou≤ PIDGI╬ program≤ unusable«  ì
  163. ┴ furthe≥ extensioε t∩ bσ useΣ iε maiε program≤ o≥ subroutine≤ i≤ ìèthσá LOCA╠á VARIABLE╙á statemen⌠á anΣá ENDLOCA╠á statement«á  An∙ ì
  164. variable≤ declareΣ b∙ eithe≥ BYT┼ o≥ IN╘ statement≤ betweeε thesσ ì
  165. tw∩ statement≤ arσ no⌠ pu⌠ iε commoε anΣ arσ LOCA╠ t∩ thσ curren⌠ ì
  166. compilation.  All other variables are global.
  167.      Afte≥á ßá fe≈á discussion≤ witΦá Bil∞á Gale¼á thσá PARAMETE╥ ì
  168. statemen⌠ wa≤ born«  Thσ PARAMETE╥ statemen⌠ allow≤ yo⌡ t∩ definσ ì
  169. iε ß singlσ locatioε al∞ oµ thσ systeφ dependen⌠ variable≤ fo≥á ß ì
  170. program«áá  Thσá paramete≥á statemen⌠á ha≤á thσá followinτá form║ ì
  171. PARAMETE╥ K$$=$$$╗á K$ñ i≤ thσ symboliπ paramete≥ terφ anΣ $$ñ i≤ ì
  172. thσ numerica∞ equivalent«  T∩ usσ thσ parametriπ variablσ K$ñ yo⌡ ì
  173. neeΣ thσ $$=+K$ñ statemen⌠ o≥ thσ I$$=+K$ñ statement«  Aε examplσ ì
  174. oµá thσá usσá oµá thi≤ statemen⌠ i≤ iε TINCM╨á itselµá wherσá thσ ì
  175. variable≤á L╞ (linσ feed)¼á N╠ (carriagσ return⌐ anΣ E╞á arσá al∞ ì
  176. defined by means of parameter statements.
  177.      Gettinτá CP/═á linkeΣ u≡ witΦ thσ internal≤ oµ PIDGI╬ wa≤á ß ì
  178. rathe≥ difficul⌠ task«á  ╔ diΣ no⌠ wisΦ t∩ makσ havoπ ou⌠ oµá thσ ì
  179. filσá systeφá  useΣ b∙ PIDGI╬ ye⌠ CP/═ needeΣ ß filσ namσá rathe≥ ì
  180. thaεá ßá blocδá locatioεá t∩ locatσ thσ tex⌠á oµá ßá filσá o≥á t∩ ì
  181. determinσá wherσá tex⌠ wa≤ t∩ bσ written«á  Iε orde≥ t∩á linδá u≡ ì
  182. blocδá number≤ witΦ filσ name≤ ╔ decideΣ tha⌠ ß fictitiou≤á blocδ ì
  183. numbe≥á wa≤ goinτ t∩ bσ useΣ a≤ ß filσ identifie≥ insidσá PIDGIN«  ì
  184. Thi≤á identifie≥á woulΣá bσá associateΣ witΦ ß filσá namσá b∙á aε ì
  185. associatσ statemen⌠ whicΦ needeΣ t∩ bσ designed«á  Thσá associatσ ì
  186. statemen⌠á wa≤ borε afte≥ considerablσ though⌠ bu⌠ i⌠ i≤á obviou≤ ì
  187. tha⌠á i⌠á i≤á ver∙á limitinτá iε scopσá anΣá probabl∙á shoulΣá bσ ì
  188. redesigneΣá t∩á bσá morσ general«á  Thσá forφá oµá thσá associatσ ì
  189. statemen⌠á i≤á ASSOCIAT┼ FC┬ ñ WIT╚ I$$«á  Thi≤ allow≤ thσá firs⌠ ì
  190. paramete≥á whicΦá i≤ thσ filσ mentioneΣ iε tha⌠ locatioεá oµá thσ ì
  191. contro∞ statemen⌠ t∩ bσ associateΣ witΦ blocδ numbe≥ I$$«  ╔ onl∙ ì
  192. useΣ thσ lowe≥ seveε bit≤ oµ I$ñ a≤ ß blocδ number/filσ numbe≥ s∩ ì
  193. onl∙á thesσ bit≤ neeΣ bσ uniquσ fo≥ eacΦ file«á  Thσá eigtΦá bit¼ ì
  194. whilσá transcribeΣá int∩ thσ I/╧ subroutine≤ shoulΣ bσá zer∩á fo≥ ì
  195. furthe≥ expansion«  If you had a control statement:
  196.      AAB.AAA,BBB.CCC,DDD.EEE
  197. anΣá you≥ paramete≥ ñ iε thσ associatσ statemen⌠ wa≤ ▓ thi≤ woulΣ ì
  198. resul⌠á iεá thσá associatioεá oµ BBB.CC├á witΦá thσá filσá numbe≥ ì
  199. containeΣ iε thσ lo≈ orde≥ seveε bit≤ oµ I$$«á  Thi≤á associatioε ì
  200. reques⌠á mark≤ thσ filσ a≤ "preparedó iε aε interna∞ tablσ iε thσ ì
  201. I/╧ complex«á  Anothe≥ forφ oµ thσ associatσ statement¼á no⌠á ye⌠ ì
  202. implementeΣ iε thσ I/╧ comple° subroutine≤ i≤ thσ form║ ASSOCIAT┼ ì
  203. FIL┼á $ñá WIT╚ I$$«á  Thσ firs⌠ paramete≥ i≤ supposeΣ t∩á bσá thσ ì
  204. star⌠á oµá 1▓ byte≤ defininτ thσ drivσ anΣ theε thσá eleveεá bytσ ì
  205. filσ namσ anΣ extensioε fo≥ ß particula≥ file«á  UnuseΣ byte≤ arσ ì
  206. t∩á bσá se⌠ t∩ blanks«á  Thi≤ routinσ wil∞ als∩ marδ thσ filσá a≤ ì
  207. prepared«á  Fo≥á furthe≥ detail≤ yo⌡ shoulΣ refe≥ t∩ thσá IOCMPL╪ ì
  208. assembly listing.
  209.      Specificall∙ no⌠ implementeΣ arσ thσ statement≤ READBU╞á anΣ ì
  210. WRITEBUF«á  AlthougΦá therσá i≤á nothinτá difficul⌠á abou⌠á thesσ ì
  211. statement≤á the∙á werσá no⌠ necessar∙ fo≥ thσá implementatioεá oµ ì
  212. TINCM╨ anΣ s∩ ╔ didn'⌠ codσ them«á  Thσ statement≤á LOMEM¼á HIME═ ì
  213. anΣ REGISTE╥ arσ no⌠ implemented«  Thesσ statement≤ havσ n∩ placσ ì
  214. iε ß relocatablσ prograφ whicΦ doesn'⌠ havσ ß zer∩ page«á  Iµ yo⌡ ì
  215. wan⌠á yo⌡á caεá pu⌠á thesσ statement≤ int∩á thσá macr∩á template≤ ì
  216. without any action occuring when they are recognized.
  217.      Iε programminτ TINCM╨ ╔ firs⌠ wanteΣ t∩ ge⌠ i⌠ u≡ oε aε 808░ ìèbecausσ tha⌠ processo≥ i≤ ß subse⌠ oµ thσ 808╡ anΣ Z-80«  Iµ use≥ ì
  218. codσá wil∞á ruεá oε thσ 808░ i⌠ wil∞ probabl∙ ruεá oεá thσá othe≥ ì
  219. processors«á  MucΦ codσ caε bσ optimizeΣ iµ TINCM╨ i≤ writteε fo≥ ì
  220. ßá Z-80«á  Thσ I/╧ comple° especiall∙ wil∞ bσ cleane≥ oεá ßá Z-8░ ì
  221. than it is on the 8080.  
  222.      808░ TINCM╨ anΣ al∞ oµ thσ associateΣ routine≤ arσ availablσ ì
  223. througΦá thσ SIG/═ librar∙ o≥ b∙ direc⌠ mai∞ froφ thσ author«á  ╔ ì
  224. wil∞á preparσ ß singlσ density¼á eigh⌠ incΦ CP/═ forma⌠ disδá anΣ ì
  225. mai∞á thσá samσ oε receip⌠ oµ ß mone∙ order¼á checδá o≥á 2░á cen⌠ ì
  226. stamp≤á fo≥ $25«á U╙ Funds«á  Iµ yo⌡ seσ thi≤ afte≥ 1982¼á bette≥ ì
  227. writσ firs⌠ a≤ Bil∞ Galσ says«á  Iµ yo⌡ decidσ t∩ implemen⌠á thi≤ ì
  228. processo≥á fo≥á othe≥á machine≤á anΣ fee∞á ╔á coulΣá help¼á don'⌠ ì
  229. hesitatσ t∩ write«á  STAGE▓ i≤ distributeΣ witΦ TINCM╨ b∙ specia∞ ì
  230. arrangemen⌠á witΦá RicharΣá Curtiss«á  Thσá distributioεá oµá an∙ ì
  231. material≤ oε thi≤ disδ d∩ no⌠ alte≥ thσ curren⌠ copyrigh⌠á statu≤ ì
  232. oµá an∙ oµ thσ material«á  Permissioε i≤ granteΣ t∩ distributσ o≥ ì
  233. makσá a≤á man∙ copie≤ a≤ desireΣá fo≥á non-commercia∞á use«á  Thσ ì
  234. remaining rights are retained by the individual authors.  
  235.