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