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 / CPM / Z280 / 232FEB88.GBG < prev    next >
Text File  |  2000-06-30  |  18KB  |  309 lines

  1.  
  2.  
  3.  
  4.  
  5. áááá                            VIRTUA╠ SYSTEMS
  6.  
  7. áááá                    Beε Grey¼ Ceda≥ Mil∞ Z-Nodσ 24
  8.  
  9. ááááThi≤ columε wil∞ bσ devoteΣ t∩ thσ continueΣ developmen⌠ oµ CP/═ (tm⌐ ì
  10. áááácompatiblσ operatinτ system≤ likσ PZDOS¼ anΣ ZRDO╙ (tm)« Wσ wil∞ learε ì
  11. ááááho≈ t∩ writσ program≤ t∩ ruε unde≥ CP/═ anΣ ZRDOS¼ anΣ wil∞ develo≡ ì
  12. ááááspecifiπ utilit∙ program≤ usinτ standarΣ libraries« Somσ oµ wha⌠ wil∞ ì
  13. áááábσ discusseΣ wil∞ bσ "oldó news¼ anΣ ß fe≈ reader≤ ma∙ finΣ i⌠ boring« ì
  14. ááááStil∞ therσ arσ other≤ wh∩ neeΣ t∩ understanΣ thσ ho≈ anΣ wh∙ oµ ì
  15. ááááoperatinτ system≤ anΣ thσ hardwarσ wσ use¼ no≈ anΣ iε thσ future.
  16.  
  17. áááá╔ decideΣ oε thσ column'≤ titlσ becausσ i⌠ wil∞ allo≈ u≤ t∩ discus≤ ì
  18. áááábotΦ operationa∞ anΣ theoretica∞ systems« It wil∞ permi⌠ u≤ t∩ develo≡ ì
  19. ááááß conceptua∞ systeφ tha⌠ wσ wil∞ bσ ablσ t∩ implemen⌠ usinτ existingì
  20. ááááZ8░ anΣ HD6418░ anΣ Z28░ microprocessors« Wσ wil∞ cove≥ botΦ hardwarσ ì
  21. ááááanΣ softwarσ design¼ and¼ establisΦ somσ badl∙ needeΣ standards.
  22.  
  23. ááááWhilσ thi≤ columε i≤ no⌠ intendeΣ t∩ bσ ß tutorial¼ mucΦ oµ wha⌠ wσ ì
  24. ááááwil∞ discus≤ wil∞ bσ oµ thi≤ nature« Understandinτ directories¼ disδ ì
  25. ááááallocation¼  thσ Consolσ CommanΣ Processo≥ (CCP/ZCPR)¼ thσ Basiπ Disδ ì
  26. ááááOperatinτ Systeφ (BDOS/ZRDOS)¼ anΣ thσ BIO╙ wil∞ al∞ bσ includeΣ iε ì
  27. ááááconceptua∞ anΣ topica∞ discussions.
  28.  
  29. ááááS∩ beforσ wσ begiε lookinτ a⌠ conceptua∞ issues¼ let'≤ takσ ß brieµ ì
  30. áááálooδ a⌠ thσ histor∙ oµ computer≤ anΣ thei≥ operatinτ systems« Thσ pas⌠ ì
  31. áááátwent∙ year≤ havσ seeε man∙ spectacula≥ change≤ iε computinτ equipment¼ ì
  32. ááááprogram≤ anΣ technology.
  33.  
  34. ááááTwent∙ year≤ ago¼ centra∞ processinτ unit≤ performeΣ instruction≤ iε ì
  35. ááááthousandth≤ oµ ß second« Today¼ computer≤ executσ instruction≤ iε ì
  36. áááábillionth≤ oµ ß second« Iε ß systeφ likσ thσ IB═ 1401¼ maiε storagσ ì
  37. áááásize≤ rangeΣ froφ 140░ t∩ 16,00░ location≤ (bytes)« Iε morσ moderε ì
  38. áááácomputers¼ maiε storagσ size≤ rangσ froφ 64╦ t∩ ove≥ 1╢ millioε bytes« 
  39.  
  40. ááááThσ datß transfe≥ rate≤ fo≥ somσ ne≈ tapσ drivσ model≤ arσ u≡ t∩ twent∙ ì
  41. áááátime≤ faste≥ thaε earl∙ tapσ drives« Storagσ capacitie≤ oε ne≈ harΣ ì
  42. áááádisδ drive≤ caε ruε a≤ higΦ a≤ 76░ millioε bytes« Thσ transfe≥ rate≤ ì
  43. ááááarσ u≡ t∩ 1╢ time≤ faste≥ thaε earl∙ flopp∙ disδ drives« Improvement≤ ì
  44. áááájus⌠ a≤ dramatiπ havσ beeε madσ fo≥ printer≤ anΣ telecommunication≤ ì
  45. ááááequipment.
  46.  
  47. áááá┴ largσ amoun⌠ oµ softwarσ developmen⌠ ha≤ accompanieΣ thi≤ hardwarσ ì
  48. ááááevolution« WitΦ earl∙ computers¼ programmer≤ useΣ absolutσ machinσ ì
  49. áááálanguage« The∙ haΣ t∩ kno≈ machinσ codσ t∩ usσ thesσ systems« Theε camσ ì
  50. ááááthσ assemblers¼ compiler≤ anΣ input/outpu⌠ contro∞ systems« Thesσ haΣ ì
  51. ááááthσ effec⌠ oµ movinτ thσ programme≥ farthe≥ froφ machinσ code¼ lettinτ ì
  52. ááááhiφ spenΣ morσ timσ solvinτ applicatioε problems« Computer≤ stil∞ ì
  53. ááááexecuteΣ program≤ onσ a⌠ ß time« EacΦ prograφ wa≤ se⌠ u≡ anΣ ruε ì
  54. ááááindependentl∙ b∙ thσ system'≤ operator.
  55. èááááThσ firs⌠ operatinτ system≤ enableΣ user≤ t∩ batcΦ job≤ anΣ ruε theφ iε ì
  56. ááááß singlσ stream« Job≤ executeΣ onσ a⌠ ß timσ anΣ therσ wa≤ ß smoothe≥ ì
  57. áááátransitioε froφ joΓ t∩ joΓ witΦ somσ assistancσ froφ thσ operatinτ ì
  58. áááásystem« Thi≤ madσ thσ operator'≤ job¼ anΣ systeφ operation¼ easier« A≤ ì
  59. ááááCP╒ speed≤ becamσ faste≥ anΣ maiε storagσ morσ abundant¼ operatinτ ì
  60. áááásystem≤ expandeΣ iε scope« Thesσ ne≈ operatinτ system≤ le⌠ user≤ ruε ì
  61. áááámultiplσ job≤ concurrentl∙ ¡¡ multiprogramminτ ¡¡ b∙ sharinτ thσ CPU¼ ì
  62. áááárea∞ storagσ anΣ othe≥ systeφ resource≤ amonτ activσ jobs« The∙ als∩ ì
  63. áááámadσ possiblσ teleprocessinτ application≤ tha⌠ contro∞ remotσ computinτ ì
  64. ááááanΣ datß entr∙ operation≤ froφ onσ centra∞ location.
  65.  
  66. ááááThesσ technica∞ developmen⌠s havσ mean⌠ significan⌠ benefit≤ fo≥ ì
  67. áááácompute≥ user≤ anΣ thei≥ peoplσ ¡¡ systeφ analysts¼ programmers¼ ì
  68. áááácompute≥ operators¼ anΣ s∩ forth« Compute≥ user≤ caε no≈ develo≡ ì
  69. áááácompletσ system≤ fo≥ operationa∞ contro∞ anΣ managemen⌠ informatioε iε ì
  70. áááácontras⌠ t∩ thσ typica∞ payrol∞ anΣ billinτ application≤ oµ fifteen t∩ ì
  71. áááátwenty year≤ ago«
  72.  
  73.  áááSysteφ resource≤ arσ shareΣ amonτ severa∞ job≤ iε multiprogramminτ ì
  74. áááásystems¼ anΣ amonτ multiplσ user≤ iε timσ sharinτ systems« Programmer≤ ì
  75. ááááusσ applicatioε-orienteΣ language≤ likσ COBOL¼ FORTRAN¼ anΣ PASCAL« A≤ ì
  76. ááááß result¼ programmer≤ caε devotσ morσ timσ t∩ probleφ solutions« 
  77.  
  78. ááááOperatinτ system≤ handlσ mucΦ oµ thσ joΓ preparatioε anΣ joΓ-t∩-joΓ ì
  79. áááátransitioε tha⌠ formerl∙ occupieΣ s∩ mucΦ oµ ß compute≥ operator'≤ ì
  80. áááátime« Operator≤ no≈ spenΣ timσ directinτ systeφ activity¼ keepinτ thσ ì
  81. áááásysteφ "productive"« Thus¼ thσ programmer≤ anΣ operator≤ wh∩ worδ witΦ ì
  82. áááácomputers¼ thσ scopσ oµ applicatioε developed¼ anΣ iε general¼ compute≥ ì
  83. ááááuser≤ havσ benefiteΣ ß grea⌠ amoun⌠ froφ thσ pas⌠ development≤ iε ì
  84. ááááhardwarσ anΣ software.
  85.  
  86. ááááWσ havσ briefl∙ examineΣ ho≈ wσ arriveΣ a⌠ thσ curren⌠ modσ oµ compute≥ ì
  87. ááááoperation« Wherσ caε wσ g∩ froφ here┐  Wha⌠ woulΣ you≥ objective≤ bσ iµ ì
  88. ááááyo⌡ werσ designinτ ne≈ feature≤ anΣ function≤ fo≥ aε operatinτ system« ì
  89. ááááTakσ ß momen⌠ anΣ thinδ abou⌠ it« Thσ followinτ lis⌠ oµ objectives¼ ì
  90. ááááthougΦ the∙ ma∙ bσ somewha⌠ differen⌠ thaε yours¼ wil∞ providσ u≤ witΦ ì
  91. ááááß commoε referencσ point.
  92.  
  93. áááá     1«   Programmer≤ shoulΣ havσ thσ amoun⌠ oµ maiε storagσ tha⌠ the∙ ì
  94. ááááááááááááááneeΣ fo≥ designinτ program≤ withou⌠ havinτ t∩ usσ planneΣ ì
  95. ááááááááááááááoverla∙ o≥ dynamiπ managemen⌠ techniques« Eveε thougΦ thσ ì
  96. áááááááááááááásizσ oµ availablσ compute≥ maiε stragσ ha≤ increaseΣ ì
  97. áááááááááááááátremendously¼ user≤ cu⌠ thei≥ storagσ int∩ partition≤ o≥ ì
  98. ááááááááááááááregion≤ fo≥ multiprogramminτ efficiency«
  99.  
  100.  áááááááááááááProgrammers¼ then¼ arσ restricteΣ t∩ thσ sizσ oµ thσ larges⌠ ì
  101. áááááááááááááápartitioε o≥ regioε useΣ iε thei≥ system« Thi≤ ofteε require≤ ì
  102. áááááááááááááábreakinτ ß prograφ u≡ int∩ separatσ step≤ o≥ usinτ specia∞ ì
  103. ááááááááááááááoverla∙ technique≤ t∩ makσ program≤ "fitó int∩ ß regioε o≥ ì
  104. áááááááááááááápartition« Al∞ oµ thesσ desigε requirement≤ adΣ overheaΣ t∩ ì
  105. áááááááááááááásolvinτ ß problem.
  106.  
  107. áááá     2.áááIµ ß prograφ i≤ to∩ largσ fo≥ maiε storagσ size¼ i⌠ i≤ thσ ì
  108. ááááááááááááááoperatinτ system¼ no⌠ thσ programmer¼ tha⌠ shoulΣ makσ thσ ì
  109. ááááááááááááááprograφ "fitó int∩ maiε storage.è
  110. áááá     3.áááProgram≤ shoulΣ usσ systeφ resource≤ ¡¡ especiall∙ maiε ì
  111. áááááááááááááástoragσ ¡¡ onl∙ a≤ requireΣ durinτ execution« Fo≥ example¼ ß ì
  112. ááááááááááááááprograφ tha⌠ need≤ 82,00░ byte≤ oµ maiε storagσ wheε full∙ ì
  113. ááááááááááááááloaded¼ ma∙ referencσ onl∙ 22,00░ byte≤ durinτ onσ par⌠ oµ ì
  114. ááááááááááááááprocessing« Durinτ thi≤ time¼ therσ i≤ n∩ neeΣ fo≥ thσ ì
  115. ááááááááááááááoperatinτ systeφ t∩ commi⌠ maiε storagσ t∩ 60,00░ ì
  116. ááááááááááááááunreferrenceΣ bytes« Aε examplσ oµ sucΦ ß situatioε i≤ ß ì
  117. ááááááááááááááteleprocessinτ applicatioε runninτ a⌠ les≤ thaε it'≤ maximuφ ì
  118. ááááááááááááááload.
  119.  
  120. áááá     4.áááThσ operatinτ systeφ shoulΣ no⌠ allo≈ maiε storagσ t∩ becomσ ì
  121. ááááááááááááááfragmented« Assumσ tha⌠ severa∞ program≤ arσ executing¼ eacΦ ì
  122. ááááááááááááááiε it≤ owε contiguou≤ areß oµ maiε storage« Threσ 15╦-bytσ ì
  123. ááááááááááááááarea≤ iε maiε storagσ arσ idlσ (nonσ oµ thσ executinτ ì
  124. ááááááááááááááprogram≤ occup∙ thesσ areas)« Iµ thσ smalles⌠ prograφ waitinτ ì
  125. áááááááááááááát∩ begiε need≤ 30╦ byte≤ oµ contiguou≤ maiε storage¼ i⌠ mus⌠ ì
  126. ááááááááááááááwai⌠ unti∞ 30╦ byte≤ oµ contiguou≤ maiε storagσ become≤ ì
  127. ááááááááááááááavailable« Unti∞ then¼ ß tota∞ oµ 45╦ byte≤ oµ maiε storagσ ì
  128. ááááááááááááááarσ idlσ becausσ oµ storagσ fragmentation« The∙ arσ wasted.
  129.  
  130. áááá     5.   Aε operatinτ systeφ shoulΣ contro∞ systeφ resource≤ likσ maiε ì
  131. áááááááááááááástoragσ iε sucΦ ß wa∙ tha⌠ yo⌡ automaticall∙ ge⌠ ß ì
  132. ááááááááááááááperformancσ improvemen⌠ b∙ addinτ morσ maiε storage« Fo≥ ì
  133. ááááááááááááááexample¼ iµ yo⌡ havσ ß prograφ tha⌠ mus⌠ usσ overlay≤ becausσ ì
  134. áááááááááááááái⌠ won'⌠ fi⌠ int∩ maiε storage¼ addinτ morσ maiε storagσ ì
  135. ááááááááááááááwon'⌠ hel≡ a⌠ al∞ unles≤ yo⌡ redesigε anΣ recodσ thσ program« ì
  136. ááááááááááááááI⌠ woulΣ bσ nicσ iµ thσ operatinτ systeφ coulΣ someho≈ "aut∩-ì
  137. áááááááááááááámaticallyó overla∙ program≤ anΣ "automaticallyó usσ addeΣ ì
  138. áááááááááááááámaiε storage.
  139.  
  140. áááá     6«   ┴ compute≥ use≥ shoulΣ bσ independen⌠ oµ thσ sizσ oµ thσ maiε ì
  141. áááááááááááááástoragσ iε whicΦ program≤ executσ anΣ iε whicΦ thσ operatinτ ì
  142. áááááááááááááásysteφ i≤ structured« Hσ shoulΣ bσ ablσ t∩ structurσ ß systeφ ì
  143. áááááááááááááámorσ accordinτ t∩ hi≤ "needsó thaε t∩ thσ sizσ oµ maiε ì
  144. áááááááááááááástorage.
  145.  
  146. áááá     7.áááMaiε storagσ shoulΣ bσ shareΣ dynamicall∙ amonτ thσ activσ ì
  147. áááááááááááááájob≤ iε thσ system« Program≤ shoulΣ ge⌠ thσ maiε storagσ tha⌠ ì
  148. ááááááááááááááthe∙ neeΣ wheε the∙ neeΣ it« Iε othe≥ words¼ thσ systeφ ì
  149. ááááááááááááááshoulΣ bσ adaptivσ t∩ thσ demand≤ oµ thσ system'≤ activities.
  150.  
  151. áááá     8.   Schedulinτ anΣ operatinτ ß systeφ shoulΣ bσ easier« Operatinτ ì
  152. áááááááááááááásystem≤ requirσ ß largσ amoun⌠ oµ use≥ participatioε t∩ ì
  153. ááááááááááááááschedulσ job≤ anΣ contro∞ systeφ resources« ┴ ne≈ systeφ ì
  154. ááááááááááááááshoulΣ requirσ les≤ use≥ participatioε t∩ achievσ gooΣ ì
  155. ááááááááááááááschedulinτ anΣ operatioε results.
  156.  
  157.  
  158. ááááMos⌠ item≤ iε thi≤ lis⌠ oµ objective≤ relatσ iε somσ wa∙ t∩ ho≈ aε ì
  159. ááááoperatinτ systeφ manage≤ ß computer'≤ maiε storage« Thesσ objective≤ ì
  160. áááácaε bσ fulfilleΣ b∙ aε operatinτ systeφ tha⌠ support≤ ß virtua∞ ì
  161. áááástorage« Thσ technique≤ oµ virtua∞ storagσ anΣ ho≈ i⌠ fulfill≤ ou≥ ì
  162. ááááobjective≤ wil∞ bσ full∙ dσvelopeΣ iε late≥ columns.
  163. èááááThσ remainde≥ oµ thi≤ firs⌠ columε wil∞ bσ devoteΣ t∩ establishinτ thσ ì
  164. áááátool≤ anΣ file≤ wσ wil∞ bσ usinτ t∩ d∩ ou≥ developmen⌠ iε thσ future« ì
  165. ááááThesσ includσ standarΣ librar∙ routines¼ assemblers¼ anΣ linkers«
  166.  
  167. ááááThσ librar∙ routine≤ wσ wil∞ bσ usinτ arσ founΣ iε BUFFERS¼ SYSLIB36¼ ì
  168. ááááVLIB11¼ anΣ Z3LIB13« Thσ codσ wil∞ bσ writteε iε Ziloτ Z8░ mnemonic≤ ì
  169. áááásuitablσ fo≥ assembl∙ witΦ M80¼ ZA╙ o≥ SL╥ Systemsº assemblers« Allì
  170. ááááprogram≤ requirσ linkinτ witΦ L8░ o≥ SLRNK¼ o≥ an∙ othe≥ compatibles.
  171.  
  172. ááááWha⌠ arσ thesσ libraries┐
  173.  
  174.  áááThe∙ arσ thσ librarie≤ oµ ZCPR│ anΣ consis⌠ oµ SYSLI┬ (SYSteφ LIBrar∙ ¡ ì
  175. áááánoε-ZCPR│ áspecific)¼ VLI┬ (Vide∩ LIBrar∙ ¡ screeε orienteΣ ároutines)¼ ì
  176. ááááanΣ áZ3LI┬ (ZCPR│ specifiπ routines)« BUFFER╙ i≤ anothe≥ collectioε áoµ ì
  177. áááároutine≤ á(noε-ZCPR│ specific⌐ t∩ managσ maiε storage« Thesσ álibrarie≤ ì
  178. ááááarσ áintendeΣ t∩ relievσ thσ programme≥ oµ thσ tasδ oµ frequentl∙ á"rσ-ì
  179. ááááinventinτ thσ wheeló anΣ t∩ providσ hiφ witΦ aε environmen⌠ oµ reliablσ ì
  180. áááátool≤ whicΦ encourage≤ structureΣ programminτ a⌠ thσ assembl∙ álanguagσ ì
  181. áááálevel.
  182.  
  183. ááááEacΦ routinσ iε thσ librarie≤ caε bσ vieweΣ a≤ ß reliablσ "blacδ box.ó ì
  184. ááááMos⌠ oµ thσ routine≤ wil∞ bσ completel∙ documenteΣ withiε thi≤ columε ì
  185. ááááanΣ thσ hel≡ files¼ anΣ thσ programme≥ wil∞ bσ consistentl∙ provideΣ ì
  186. ááááwitΦ thσ followinτ information:
  187.  
  188. áááá     1«   Namσ oµ subroutine
  189. áááá     2«   Functioε i⌠ performs
  190. áááá     3«   Wha⌠ it≤ input≤ are
  191. áááá     4«   Wha⌠ it≤ output≤ are
  192. áááá     5«   Wha⌠ register≤ arσ affecteΣ b∙ it
  193. áááá     6«   Wha⌠ othe≥ librar∙ routine≤ i⌠ call≤ upon
  194. áááá     7«   Wha⌠ error≤ caε occu≥ anΣ ho≈ i⌠ handle≤ them.
  195.  
  196. ááááThσ routine≤ arσ designeΣ t∩ worδ togethe≥ anΣ complemen⌠ eacΦ other« ì
  197. ááááParamete≥ passinτ i≤ consisten⌠ betweeε thσ variou≤ subroutines« Fo≥ ì
  198. ááááinstance¼ al∞ routine≤ whicΦ neeΣ t∩ bσ passeΣ ß pointe≥ t∩ ß Filσ ì
  199. ááááContro∞ Blocδ arσ passeΣ tha⌠ pointe≥ iε thσ D┼ registe≥ pair« A≤ ß ì
  200. áááágenera∞ rule¼ iµ ß registe≥ i≤ no⌠ returneΣ a≤ aε outpu⌠ froφ thσ ì
  201. áááároutine¼ theε it≤ valuσ i≤ no⌠ affecteΣ (i⌠ ha≤ thσ samσ valuσ wheε thσ ì
  202. áááároutinσ i≤ exiteΣ a≤ i⌠ haΣ wheε thσ routinσ wa≤ called).
  203.  
  204. ááááThσ librarie≤ arσ relocatablσ objec⌠ module≤ createΣ iε thσ MicroSof⌠ ì
  205. ááááM8░ relocatablσ objec⌠ format« Thσ M80¼ SL╥ o≥ ZA╙ assembler≤ caε bσ ì
  206. ááááuseΣ t∩ creatσ anΣ minipulatσ relocatablσ objec⌠ modules« Al∞ routine≤ ì
  207. ááááarσ groupeΣ withiε functionall∙-relateΣ modules« Oncσ ß routinσ i≤ ì
  208. ááááreferenceΣ (b∙ thσ EX╘ statement)¼ it≤ modulσ i≤ loadeΣ anΣ i⌠ i≤ ì
  209. ááááavailablσ t∩ thσ programme≥ b∙ mean≤ oµ ß simplσ subroutinσ call« Al∞ ì
  210. ááááothe≥ subroutine≤ withiε tha⌠ particula≥ modulσ arσ als∩ loaded¼ bu⌠ ì
  211. ááááthe∙ arσ no⌠ availablσ t∩ thσ programme≥ unles≤ hσ ha≤ als∩ referenceΣ ì
  212. áááátheφ b∙ EX╘ statements« Thσ modulσ i≤ loadeΣ onl∙ once¼ regardles≤ oµ ì
  213. ááááho≈ man∙ routine≤ withiε thσ modulσ arσ referenced« Fo≥ thi≤ reason¼ ì
  214. ááááeacΦ modulσ wa≤ designeΣ t∩ contaiε routine≤ whicΦ arσ frequentl∙ useΣ ì
  215. áááátogethe≥ o≥ arσ calleΣ b∙ eacΦ othe≥ (onσ routinσ withiε thσ modulσ ì
  216. áááácall≤ anothe≥ routinσ withiε thσ module).
  217. èááááWha⌠ i≤ needeΣ t∩ usσ thσ libraries?
  218.  
  219. ááááYo⌡ neeΣ aε 8080¼ Z80¼ NSC800¼ o≥ HD6418░-baseΣ microcompute≥ witΦ a⌠ ì
  220. ááááleas⌠ 48╦ byte≤ oµ contiguou≤ memor∙ runninτ ZCPR│ o≥ ┌-Systeφ (ZCPR│ ì
  221. ááááanΣ ZRDOS)¼ thσ Microsof⌠ M8░ assembe≥ too∞ se⌠ (specificall∙ M8░ anΣ ì
  222. ááááthσ L8░ Linker)¼ thσ Echelon ZA╙ too∞ se⌠ (specificall∙ ZA╙ assemble≥ ì
  223. ááááanΣ ZLIN╦ linker⌐ o≥ thσ SL╥ tool≤ se⌠ (specificall∙ SLRAS═ anΣ SLRNK⌐ ì
  224. ááááo≥ thσ SL╥ virtua∞ too∞ se⌠ (SLR180½ anΣ SLRNK+)¼ anΣ thσ usua∞ se⌠ oµ ì
  225. áááásoftwarσ developmen⌠ tool≤ (aε editor¼ and¼ preferably¼ ß debugger⌐ t∩ ì
  226. ááááusσ thσ libraries.
  227.  
  228. ááááWha⌠ d∩ thσ librarie≤ bu∙ you?
  229.  
  230. ááááT∩ thσ experienceΣ programmer¼ thσ librarie≤ havσ thσ potentia∞ oµ ì
  231. áááábeinτ ß significan⌠ too∞ whicΦ enable≤ hiφ to:
  232.  
  233. áááá     1.áááSolvσ hi≤ programminτ tasδ quickly
  234. áááááááááááááá¡¡ becausσ hσ spend≤ les≤ timσ writinτ commonl∙-useΣ ì
  235. áááááááááááááásubroutine≤ anΣ worryinτ abou⌠ ho≈ hi≤ register≤ arσ affecteΣ ì
  236. ááááááááááááááb∙ thesσ subroutine≤ anΣ morσ timσ concentratinτ oε thσ ì
  237. ááááááááááááááprobleφ a⌠ hand.
  238.  
  239. áááá     2.áááWritσ space¡ anΣ speed-efficien⌠ code
  240. áááááááááááááá¡¡ becausσ al∞ oµ thσ routine≤ havσ beeε gonσ ove≥ timσ anΣ ì
  241. áááááááááááááátimσ agaiε t∩ reducσ thei≥  sizσ anΣ makσ theφ morσ efficien⌠ ì
  242. ááááááááááááááiε term≤ oµ speed« Fo≥ example¼ thσ SOR╘ routinσ i≤ ß Shel∞ ì
  243. ááááááááááááááSor⌠ tha⌠ caε bσ calleΣ t∩ perforφ thσ sor⌠ usinτ pointer≤ ì
  244. áááááááááááááá(iε whicΦ casσ i⌠ exchange≤ pointer≤ rathe≥ thaε record≤ wheε ì
  245. áááááááááááááái⌠ neeΣ t∩ d∩ ß swap⌐ o≥ perforφ thσ sor⌠ withou⌠ usinτ ì
  246. áááááááááááááápointe≥s (wheε spacσ i≤ ß facto≥ anΣ therσ ma∙ no⌠ bσ enougΦ ì
  247. áááááááááááááárooφ fo≥ ß pointe≥ table).
  248.  
  249. áááá     3«   Writσ morσ maintainablσ code
  250. áááááááááááááá¡¡ becausσ thσ librarie≤ arσ designeΣ witΦ structureΣ ì
  251. ááááááááááááááprogramminτ philosoph∙ iε mind« EacΦ subroutine≤ i≤ ì
  252. ááááááááááááááequivalen⌠ t∩ ß proces≤ box¼ havinτ (1⌐ onl∙ onσ entrancσ anΣ ì
  253. ááááááááááááááonσ exit¼ (2⌐ ß precisel∙-defineΣ function¼ anΣ (3⌐ ß ì
  254. ááááááááááááááprecisel∙-defineΣ se⌠ oµ inpu⌠ anΣ outpu⌠ parameters« Havinτ ì
  255. ááááááááááááááuseΣ thσ librarie≤ fo≥ somσ timσ now¼ thσ autho≥ ha≤ noteΣ ì
  256. áááááááááááááátha⌠ hi≤ programminτ though⌠ processe≤ anΣ prograφ design≤ ì
  257. ááááááááááááááhavσ tendeΣ morσ anΣ morσ towarΣ "enΣ-inó (to≡-dowε froφ thσ ì
  258. ááááááááááááááobjectivσ poin⌠ oµ vie≈ anΣ bottoφ-u≡ froφ thσ librar∙ ì
  259. áááááááááááááásubroutinσ poin⌠ oµ view)¼ structureΣ design≤ tha⌠ hσ caε g∩ ì
  260. áááááááááááááábacδ t∩ a⌠ ß late≥ datσ anΣ readil∙ deciphe≥ anΣ modify.
  261.  
  262. áááá     4.áááReducσ thσ programminτ effort
  263. áááááááááááááá¡¡ becausσ thσ librarie≤ providσ ß numbe≥ oµ ver∙ involveΣ ì
  264. áááááááááááááároutine≤ whicΦ would¼ iε themselves¼ takσ quitσ somσ timσ t∩ ì
  265. áááááááááááááácode« Fo≥ example¼ thσ DIR╞ routine≤ wil∞ loaΣ thσ director∙ ì
  266. ááááááááááááááoµ ß disδ int∩ memory¼ selec⌠ ß se⌠ oµ file≤ froφ tha⌠ loadeΣ ì
  267. áááááááááááááádirector∙ a≤ specified b∙ ß Filσ Contro∞ Blocδ (FCB⌐ anΣ ß ì
  268. ááááááááááááááflaτ whicΦ indicate≤ whethe≥ t∩ includσ Systeφ o≥ Noε-Systeφ ì
  269. ááááááááááááááfile≤ anΣ wha⌠ use≥ areß i≤ t∩ bσ examined¼ pack≤ thσ loadeΣ ì
  270. áááááááááááááádirector∙ (removinτ entrie≤ no⌠ selecteΣ froφ thσ memor∙ ì
  271. áááááááááááááábuffer)¼ alphabetize≤ thσ director∙ entrie≤ b∙ filσ namσ anΣ ìèáááááááááááááátypσ o≥ b∙ filσ typσ anΣ name¼ anΣ return≤ ß pointe≥ t∩ thσ ì
  272. ááááááááááááááfirs⌠ entr∙ anΣ ß coun⌠ oµ thσ nubme≥ oµ entrie≤ selected.
  273.  
  274. ááááIε man∙ ways¼ thσ librarie≤ brinτ advantage≤ oµ programminτ iε ß HigΦ-ì
  275. ááááOrde≥ Language¼ likσ ├ o≥ Pascal¼ t∩ thσ assembl∙ languagσ programmer« ì
  276. ááááThe∙ allo≈ hiφ t∩ maintaiε thσ smalle≥ codσ sizσ anΣ greate≥ efficiencyì
  277. ááááwhicΦ caε bσ realizeΣ iε assembl∙ languagσ programming¼ anΣ ì
  278. áááásimultaneously¼ realizσ ß reduceΣ lifσ-cyclσ cos⌠ (froφ developmen⌠ t∩ ì
  279. ááááfieldinτ t∩ pos⌠-fieldinτ maintenancσ anΣ modification⌐ ove≥ assembl∙ ì
  280. áááálanguagσ programminτ withou⌠ ß simila≥ to∩∞ set.
  281.  
  282. ááááHo≈ t∩ learε t∩ usσ thσ librarie≤ effectively?
  283.  
  284. ááááThi≤ i≤ opinion¼ oµ course¼ bu⌠ ╔ fee∞ tha⌠ thσ bes⌠ wa∙ t∩ learε ho≈ ì
  285. áááát∩ usσ thσ librarie≤ woulΣ involvσ thσ followinτ steps:
  286.  
  287. áááá     1.áááStud∙ thesσ columε article≤ iε aε overvie≈ fashion¼ ì
  288. ááááááááááááááfamiliarize yourselµ witΦ thσ function≤ oµ thσ subroutine≤ ì
  289. ááááááááááááááavailable.
  290.  
  291. áááá     2.   Study iε somσ detail¼ thσ samplσ sourcσ programs¼ jumpinτ ì
  292. áááááááááááááábacδ t∩ thesσ article≤ froφ timσ t∩ time¼ t∩ seσ wh∙ anΣ thσ ì
  293. ááááááááááááááwa∙ ╔ useΣ thσ routines« 
  294.  
  295. áááá     3.   Tr∙ codinτ ß couplσ oµ routine≤ froφ thi≤ column¼ copyinτ ì
  296. áááááááááááááátheφ verbatiφ anΣ assemblinτ them.
  297.  
  298. áááá     4«   Tr∙ makinτ u≡ ß fe≈ simplσ problem≤ oµ you≥ owε anΣ usσ thσ ì
  299. áááááááááááááálibrarie≤ t∩ codσ them.
  300.  
  301. áááá     5.áááAppl∙ thσ librarie≤ t∩ ß significan⌠ prograφ yo⌡ wan⌠ t∩ ì
  302. ááááááááááááááwrite.
  303.  
  304. áááá╔ aφ ß stronτ advocatσ oµ writinτ program≤ iε orde≥ t∩ learε ho≈ t∩ ì
  305. ááááprogram¼ anΣ ╔ fee∞ tha⌠ i⌠ i≤ mos⌠ importan⌠ t∩ (1⌐ gaiε a≤ mucΦ ì
  306. ááááfamiliarit∙ witΦ thσ routine≤ a≤ yo⌡ caε anΣ (2⌐ t∩ writσ program≤ ì
  307. ááááusinτ thesσ routines.
  308.  
  309.