home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
z280
/
232feb88.gzg
/
232FEB88.GBG
Wrap
Text File
|
1988-03-26
|
18KB
|
309 lines
áááá VIRTUA╠ SYSTEMS
áááá Beε Grey¼ Ceda≥ Mil∞ Z-Nodσ 24
ááááThi≤ columε wil∞ bσ devoteΣ t∩ thσ continueΣ developmen⌠ oµ CP/═ (tm⌐ ì
áááácompatiblσ operatinτ system≤ likσ PZDOS¼ anΣ ZRDO╙ (tm)« Wσ wil∞ learε ì
ááááho≈ t∩ writσ program≤ t∩ ruε unde≥ CP/═ anΣ ZRDOS¼ anΣ wil∞ develo≡ ì
ááááspecifiπ utilit∙ program≤ usinτ standarΣ libraries« Somσ oµ wha⌠ wil∞ ì
áááábσ discusseΣ wil∞ bσ "oldó news¼ anΣ ß fe≈ reader≤ ma∙ finΣ i⌠ boring« ì
ááááStil∞ therσ arσ other≤ wh∩ neeΣ t∩ understanΣ thσ ho≈ anΣ wh∙ oµ ì
ááááoperatinτ system≤ anΣ thσ hardwarσ wσ use¼ no≈ anΣ iε thσ future.
áááá╔ decideΣ oε thσ column'≤ titlσ becausσ i⌠ wil∞ allo≈ u≤ t∩ discus≤ ì
áááábotΦ operationa∞ anΣ theoretica∞ systems« It wil∞ permi⌠ u≤ t∩ develo≡ ì
ááááß conceptua∞ systeφ tha⌠ wσ wil∞ bσ ablσ t∩ implemen⌠ usinτ existingì
ááááZ8░ anΣ HD6418░ anΣ Z28░ microprocessors« Wσ wil∞ cove≥ botΦ hardwarσ ì
ááááanΣ softwarσ design¼ and¼ establisΦ somσ badl∙ needeΣ standards.
ááááWhilσ thi≤ columε i≤ no⌠ intendeΣ t∩ bσ ß tutorial¼ mucΦ oµ wha⌠ wσ ì
ááááwil∞ discus≤ wil∞ bσ oµ thi≤ nature« Understandinτ directories¼ disδ ì
ááááallocation¼ thσ Consolσ CommanΣ Processo≥ (CCP/ZCPR)¼ thσ Basiπ Disδ ì
ááááOperatinτ Systeφ (BDOS/ZRDOS)¼ anΣ thσ BIO╙ wil∞ al∞ bσ includeΣ iε ì
ááááconceptua∞ anΣ topica∞ discussions.
ááááS∩ beforσ wσ begiε lookinτ a⌠ conceptua∞ issues¼ let'≤ takσ ß brieµ ì
áááálooδ a⌠ thσ histor∙ oµ computer≤ anΣ thei≥ operatinτ systems« Thσ pas⌠ ì
áááátwent∙ year≤ havσ seeε man∙ spectacula≥ change≤ iε computinτ equipment¼ ì
ááááprogram≤ anΣ technology.
ááááTwent∙ year≤ ago¼ centra∞ processinτ unit≤ performeΣ instruction≤ iε ì
ááááthousandth≤ oµ ß second« Today¼ computer≤ executσ instruction≤ iε ì
áááábillionth≤ oµ ß second« Iε ß systeφ likσ thσ IB═ 1401¼ maiε storagσ ì
áááásize≤ rangeΣ froφ 140░ t∩ 16,00░ location≤ (bytes)« Iε morσ moderε ì
áááácomputers¼ maiε storagσ size≤ rangσ froφ 64╦ t∩ ove≥ 1╢ millioε bytes«
ááááThσ datß transfe≥ rate≤ fo≥ somσ ne≈ tapσ drivσ model≤ arσ u≡ t∩ twent∙ ì
áááátime≤ faste≥ thaε earl∙ tapσ drives« Storagσ capacitie≤ oε ne≈ harΣ ì
áááádisδ drive≤ caε ruε a≤ higΦ a≤ 76░ millioε bytes« Thσ transfe≥ rate≤ ì
ááááarσ u≡ t∩ 1╢ time≤ faste≥ thaε earl∙ flopp∙ disδ drives« Improvement≤ ì
áááájus⌠ a≤ dramatiπ havσ beeε madσ fo≥ printer≤ anΣ telecommunication≤ ì
ááááequipment.
áááá┴ largσ amoun⌠ oµ softwarσ developmen⌠ ha≤ accompanieΣ thi≤ hardwarσ ì
ááááevolution« WitΦ earl∙ computers¼ programmer≤ useΣ absolutσ machinσ ì
áááálanguage« The∙ haΣ t∩ kno≈ machinσ codσ t∩ usσ thesσ systems« Theε camσ ì
ááááthσ assemblers¼ compiler≤ anΣ input/outpu⌠ contro∞ systems« Thesσ haΣ ì
ááááthσ effec⌠ oµ movinτ thσ programme≥ farthe≥ froφ machinσ code¼ lettinτ ì
ááááhiφ spenΣ morσ timσ solvinτ applicatioε problems« Computer≤ stil∞ ì
ááááexecuteΣ program≤ onσ a⌠ ß time« EacΦ prograφ wa≤ se⌠ u≡ anΣ ruε ì
ááááindependentl∙ b∙ thσ system'≤ operator.
èááááThσ firs⌠ operatinτ system≤ enableΣ user≤ t∩ batcΦ job≤ anΣ ruε theφ iε ì
ááááß singlσ stream« Job≤ executeΣ onσ a⌠ ß timσ anΣ therσ wa≤ ß smoothe≥ ì
áááátransitioε froφ joΓ t∩ joΓ witΦ somσ assistancσ froφ thσ operatinτ ì
áááásystem« Thi≤ madσ thσ operator'≤ job¼ anΣ systeφ operation¼ easier« A≤ ì
ááááCP╒ speed≤ becamσ faste≥ anΣ maiε storagσ morσ abundant¼ operatinτ ì
áááásystem≤ expandeΣ iε scope« Thesσ ne≈ operatinτ system≤ le⌠ user≤ ruε ì
áááámultiplσ job≤ concurrentl∙ ¡¡ multiprogramminτ ¡¡ b∙ sharinτ thσ CPU¼ ì
áááárea∞ storagσ anΣ othe≥ systeφ resource≤ amonτ activσ jobs« The∙ als∩ ì
áááámadσ possiblσ teleprocessinτ application≤ tha⌠ contro∞ remotσ computinτ ì
ááááanΣ datß entr∙ operation≤ froφ onσ centra∞ location.
ááááThesσ technica∞ developmen⌠s havσ mean⌠ significan⌠ benefit≤ fo≥ ì
áááácompute≥ user≤ anΣ thei≥ peoplσ ¡¡ systeφ analysts¼ programmers¼ ì
áááácompute≥ operators¼ anΣ s∩ forth« Compute≥ user≤ caε no≈ develo≡ ì
áááácompletσ system≤ fo≥ operationa∞ contro∞ anΣ managemen⌠ informatioε iε ì
áááácontras⌠ t∩ thσ typica∞ payrol∞ anΣ billinτ application≤ oµ fifteen t∩ ì
áááátwenty year≤ ago«
áááSysteφ resource≤ arσ shareΣ amonτ severa∞ job≤ iε multiprogramminτ ì
áááásystems¼ anΣ amonτ multiplσ user≤ iε timσ sharinτ systems« Programmer≤ ì
ááááusσ applicatioε-orienteΣ language≤ likσ COBOL¼ FORTRAN¼ anΣ PASCAL« A≤ ì
ááááß result¼ programmer≤ caε devotσ morσ timσ t∩ probleφ solutions«
ááááOperatinτ system≤ handlσ mucΦ oµ thσ joΓ preparatioε anΣ joΓ-t∩-joΓ ì
áááátransitioε tha⌠ formerl∙ occupieΣ s∩ mucΦ oµ ß compute≥ operator'≤ ì
áááátime« Operator≤ no≈ spenΣ timσ directinτ systeφ activity¼ keepinτ thσ ì
áááásysteφ "productive"« Thus¼ thσ programmer≤ anΣ operator≤ wh∩ worδ witΦ ì
áááácomputers¼ thσ scopσ oµ applicatioε developed¼ anΣ iε general¼ compute≥ ì
ááááuser≤ havσ benefiteΣ ß grea⌠ amoun⌠ froφ thσ pas⌠ development≤ iε ì
ááááhardwarσ anΣ software.
ááááWσ havσ briefl∙ examineΣ ho≈ wσ arriveΣ a⌠ thσ curren⌠ modσ oµ compute≥ ì
ááááoperation« Wherσ caε wσ g∩ froφ here┐ Wha⌠ woulΣ you≥ objective≤ bσ iµ ì
ááááyo⌡ werσ designinτ ne≈ feature≤ anΣ function≤ fo≥ aε operatinτ system« ì
ááááTakσ ß momen⌠ anΣ thinδ abou⌠ it« Thσ followinτ lis⌠ oµ objectives¼ ì
ááááthougΦ the∙ ma∙ bσ somewha⌠ differen⌠ thaε yours¼ wil∞ providσ u≤ witΦ ì
ááááß commoε referencσ point.
áááá 1« Programmer≤ shoulΣ havσ thσ amoun⌠ oµ maiε storagσ tha⌠ the∙ ì
ááááááááááááááneeΣ fo≥ designinτ program≤ withou⌠ havinτ t∩ usσ planneΣ ì
ááááááááááááááoverla∙ o≥ dynamiπ managemen⌠ techniques« Eveε thougΦ thσ ì
áááááááááááááásizσ oµ availablσ compute≥ maiε stragσ ha≤ increaseΣ ì
áááááááááááááátremendously¼ user≤ cu⌠ thei≥ storagσ int∩ partition≤ o≥ ì
ááááááááááááááregion≤ fo≥ multiprogramminτ efficiency«
áááááááááááááProgrammers¼ then¼ arσ restricteΣ t∩ thσ sizσ oµ thσ larges⌠ ì
áááááááááááááápartitioε o≥ regioε useΣ iε thei≥ system« Thi≤ ofteε require≤ ì
áááááááááááááábreakinτ ß prograφ u≡ int∩ separatσ step≤ o≥ usinτ specia∞ ì
ááááááááááááááoverla∙ technique≤ t∩ makσ program≤ "fitó int∩ ß regioε o≥ ì
áááááááááááááápartition« Al∞ oµ thesσ desigε requirement≤ adΣ overheaΣ t∩ ì
áááááááááááááásolvinτ ß problem.
áááá 2.áááIµ ß prograφ i≤ to∩ largσ fo≥ maiε storagσ size¼ i⌠ i≤ thσ ì
ááááááááááááááoperatinτ system¼ no⌠ thσ programmer¼ tha⌠ shoulΣ makσ thσ ì
ááááááááááááááprograφ "fitó int∩ maiε storage.è
áááá 3.áááProgram≤ shoulΣ usσ systeφ resource≤ ¡¡ especiall∙ maiε ì
áááááááááááááástoragσ ¡¡ onl∙ a≤ requireΣ durinτ execution« Fo≥ example¼ ß ì
ááááááááááááááprograφ tha⌠ need≤ 82,00░ byte≤ oµ maiε storagσ wheε full∙ ì
ááááááááááááááloaded¼ ma∙ referencσ onl∙ 22,00░ byte≤ durinτ onσ par⌠ oµ ì
ááááááááááááááprocessing« Durinτ thi≤ time¼ therσ i≤ n∩ neeΣ fo≥ thσ ì
ááááááááááááááoperatinτ systeφ t∩ commi⌠ maiε storagσ t∩ 60,00░ ì
ááááááááááááááunreferrenceΣ bytes« Aε examplσ oµ sucΦ ß situatioε i≤ ß ì
ááááááááááááááteleprocessinτ applicatioε runninτ a⌠ les≤ thaε it'≤ maximuφ ì
ááááááááááááááload.
áááá 4.áááThσ operatinτ systeφ shoulΣ no⌠ allo≈ maiε storagσ t∩ becomσ ì
ááááááááááááááfragmented« Assumσ tha⌠ severa∞ program≤ arσ executing¼ eacΦ ì
ááááááááááááááiε it≤ owε contiguou≤ areß oµ maiε storage« Threσ 15╦-bytσ ì
ááááááááááááááarea≤ iε maiε storagσ arσ idlσ (nonσ oµ thσ executinτ ì
ááááááááááááááprogram≤ occup∙ thesσ areas)« Iµ thσ smalles⌠ prograφ waitinτ ì
áááááááááááááát∩ begiε need≤ 30╦ byte≤ oµ contiguou≤ maiε storage¼ i⌠ mus⌠ ì
ááááááááááááááwai⌠ unti∞ 30╦ byte≤ oµ contiguou≤ maiε storagσ become≤ ì
ááááááááááááááavailable« Unti∞ then¼ ß tota∞ oµ 45╦ byte≤ oµ maiε storagσ ì
ááááááááááááááarσ idlσ becausσ oµ storagσ fragmentation« The∙ arσ wasted.
áááá 5. Aε operatinτ systeφ shoulΣ contro∞ systeφ resource≤ likσ maiε ì
áááááááááááááástoragσ iε sucΦ ß wa∙ tha⌠ yo⌡ automaticall∙ ge⌠ ß ì
ááááááááááááááperformancσ improvemen⌠ b∙ addinτ morσ maiε storage« Fo≥ ì
ááááááááááááááexample¼ iµ yo⌡ havσ ß prograφ tha⌠ mus⌠ usσ overlay≤ becausσ ì
áááááááááááááái⌠ won'⌠ fi⌠ int∩ maiε storage¼ addinτ morσ maiε storagσ ì
ááááááááááááááwon'⌠ hel≡ a⌠ al∞ unles≤ yo⌡ redesigε anΣ recodσ thσ program« ì
ááááááááááááááI⌠ woulΣ bσ nicσ iµ thσ operatinτ systeφ coulΣ someho≈ "aut∩-ì
áááááááááááááámaticallyó overla∙ program≤ anΣ "automaticallyó usσ addeΣ ì
áááááááááááááámaiε storage.
áááá 6« ┴ compute≥ use≥ shoulΣ bσ independen⌠ oµ thσ sizσ oµ thσ maiε ì
áááááááááááááástoragσ iε whicΦ program≤ executσ anΣ iε whicΦ thσ operatinτ ì
áááááááááááááásysteφ i≤ structured« Hσ shoulΣ bσ ablσ t∩ structurσ ß systeφ ì
áááááááááááááámorσ accordinτ t∩ hi≤ "needsó thaε t∩ thσ sizσ oµ maiε ì
áááááááááááááástorage.
áááá 7.áááMaiε storagσ shoulΣ bσ shareΣ dynamicall∙ amonτ thσ activσ ì
áááááááááááááájob≤ iε thσ system« Program≤ shoulΣ ge⌠ thσ maiε storagσ tha⌠ ì
ááááááááááááááthe∙ neeΣ wheε the∙ neeΣ it« Iε othe≥ words¼ thσ systeφ ì
ááááááááááááááshoulΣ bσ adaptivσ t∩ thσ demand≤ oµ thσ system'≤ activities.
áááá 8. Schedulinτ anΣ operatinτ ß systeφ shoulΣ bσ easier« Operatinτ ì
áááááááááááááásystem≤ requirσ ß largσ amoun⌠ oµ use≥ participatioε t∩ ì
ááááááááááááááschedulσ job≤ anΣ contro∞ systeφ resources« ┴ ne≈ systeφ ì
ááááááááááááááshoulΣ requirσ les≤ use≥ participatioε t∩ achievσ gooΣ ì
ááááááááááááááschedulinτ anΣ operatioε results.
ááááMos⌠ item≤ iε thi≤ lis⌠ oµ objective≤ relatσ iε somσ wa∙ t∩ ho≈ aε ì
ááááoperatinτ systeφ manage≤ ß computer'≤ maiε storage« Thesσ objective≤ ì
áááácaε bσ fulfilleΣ b∙ aε operatinτ systeφ tha⌠ support≤ ß virtua∞ ì
áááástorage« Thσ technique≤ oµ virtua∞ storagσ anΣ ho≈ i⌠ fulfill≤ ou≥ ì
ááááobjective≤ wil∞ bσ full∙ dσvelopeΣ iε late≥ columns.
èááááThσ remainde≥ oµ thi≤ firs⌠ columε wil∞ bσ devoteΣ t∩ establishinτ thσ ì
áááátool≤ anΣ file≤ wσ wil∞ bσ usinτ t∩ d∩ ou≥ developmen⌠ iε thσ future« ì
ááááThesσ includσ standarΣ librar∙ routines¼ assemblers¼ anΣ linkers«
ááááThσ librar∙ routine≤ wσ wil∞ bσ usinτ arσ founΣ iε BUFFERS¼ SYSLIB36¼ ì
ááááVLIB11¼ anΣ Z3LIB13« Thσ codσ wil∞ bσ writteε iε Ziloτ Z8░ mnemonic≤ ì
áááásuitablσ fo≥ assembl∙ witΦ M80¼ ZA╙ o≥ SL╥ Systemsº assemblers« Allì
ááááprogram≤ requirσ linkinτ witΦ L8░ o≥ SLRNK¼ o≥ an∙ othe≥ compatibles.
ááááWha⌠ arσ thesσ libraries┐
áááThe∙ arσ thσ librarie≤ oµ ZCPR│ anΣ consis⌠ oµ SYSLI┬ (SYSteφ LIBrar∙ ¡ ì
áááánoε-ZCPR│ áspecific)¼ VLI┬ (Vide∩ LIBrar∙ ¡ screeε orienteΣ ároutines)¼ ì
ááááanΣ áZ3LI┬ (ZCPR│ specifiπ routines)« BUFFER╙ i≤ anothe≥ collectioε áoµ ì
áááároutine≤ á(noε-ZCPR│ specific⌐ t∩ managσ maiε storage« Thesσ álibrarie≤ ì
ááááarσ áintendeΣ t∩ relievσ thσ programme≥ oµ thσ tasδ oµ frequentl∙ á"rσ-ì
ááááinventinτ thσ wheeló anΣ t∩ providσ hiφ witΦ aε environmen⌠ oµ reliablσ ì
áááátool≤ whicΦ encourage≤ structureΣ programminτ a⌠ thσ assembl∙ álanguagσ ì
áááálevel.
ááááEacΦ routinσ iε thσ librarie≤ caε bσ vieweΣ a≤ ß reliablσ "blacδ box.ó ì
ááááMos⌠ oµ thσ routine≤ wil∞ bσ completel∙ documenteΣ withiε thi≤ columε ì
ááááanΣ thσ hel≡ files¼ anΣ thσ programme≥ wil∞ bσ consistentl∙ provideΣ ì
ááááwitΦ thσ followinτ information:
áááá 1« Namσ oµ subroutine
áááá 2« Functioε i⌠ performs
áááá 3« Wha⌠ it≤ input≤ are
áááá 4« Wha⌠ it≤ output≤ are
áááá 5« Wha⌠ register≤ arσ affecteΣ b∙ it
áááá 6« Wha⌠ othe≥ librar∙ routine≤ i⌠ call≤ upon
áááá 7« Wha⌠ error≤ caε occu≥ anΣ ho≈ i⌠ handle≤ them.
ááááThσ routine≤ arσ designeΣ t∩ worδ togethe≥ anΣ complemen⌠ eacΦ other« ì
ááááParamete≥ passinτ i≤ consisten⌠ betweeε thσ variou≤ subroutines« Fo≥ ì
ááááinstance¼ al∞ routine≤ whicΦ neeΣ t∩ bσ passeΣ ß pointe≥ t∩ ß Filσ ì
ááááContro∞ Blocδ arσ passeΣ tha⌠ pointe≥ iε thσ D┼ registe≥ pair« A≤ ß ì
áááágenera∞ rule¼ iµ ß registe≥ i≤ no⌠ returneΣ a≤ aε outpu⌠ froφ thσ ì
áááároutine¼ theε it≤ valuσ i≤ no⌠ affecteΣ (i⌠ ha≤ thσ samσ valuσ wheε thσ ì
áááároutinσ i≤ exiteΣ a≤ i⌠ haΣ wheε thσ routinσ wa≤ called).
ááááThσ librarie≤ arσ relocatablσ objec⌠ module≤ createΣ iε thσ MicroSof⌠ ì
ááááM8░ relocatablσ objec⌠ format« Thσ M80¼ SL╥ o≥ ZA╙ assembler≤ caε bσ ì
ááááuseΣ t∩ creatσ anΣ minipulatσ relocatablσ objec⌠ modules« Al∞ routine≤ ì
ááááarσ groupeΣ withiε functionall∙-relateΣ modules« Oncσ ß routinσ i≤ ì
ááááreferenceΣ (b∙ thσ EX╘ statement)¼ it≤ modulσ i≤ loadeΣ anΣ i⌠ i≤ ì
ááááavailablσ t∩ thσ programme≥ b∙ mean≤ oµ ß simplσ subroutinσ call« Al∞ ì
ááááothe≥ subroutine≤ withiε tha⌠ particula≥ modulσ arσ als∩ loaded¼ bu⌠ ì
ááááthe∙ arσ no⌠ availablσ t∩ thσ programme≥ unles≤ hσ ha≤ als∩ referenceΣ ì
áááátheφ b∙ EX╘ statements« Thσ modulσ i≤ loadeΣ onl∙ once¼ regardles≤ oµ ì
ááááho≈ man∙ routine≤ withiε thσ modulσ arσ referenced« Fo≥ thi≤ reason¼ ì
ááááeacΦ modulσ wa≤ designeΣ t∩ contaiε routine≤ whicΦ arσ frequentl∙ useΣ ì
áááátogethe≥ o≥ arσ calleΣ b∙ eacΦ othe≥ (onσ routinσ withiε thσ modulσ ì
áááácall≤ anothe≥ routinσ withiε thσ module).
èááááWha⌠ i≤ needeΣ t∩ usσ thσ libraries?
ááááYo⌡ neeΣ aε 8080¼ Z80¼ NSC800¼ o≥ HD6418░-baseΣ microcompute≥ witΦ a⌠ ì
ááááleas⌠ 48╦ byte≤ oµ contiguou≤ memor∙ runninτ ZCPR│ o≥ ┌-Systeφ (ZCPR│ ì
ááááanΣ ZRDOS)¼ thσ Microsof⌠ M8░ assembe≥ too∞ se⌠ (specificall∙ M8░ anΣ ì
ááááthσ L8░ Linker)¼ thσ Echelon ZA╙ too∞ se⌠ (specificall∙ ZA╙ assemble≥ ì
ááááanΣ ZLIN╦ linker⌐ o≥ thσ SL╥ tool≤ se⌠ (specificall∙ SLRAS═ anΣ SLRNK⌐ ì
ááááo≥ thσ SL╥ virtua∞ too∞ se⌠ (SLR180½ anΣ SLRNK+)¼ anΣ thσ usua∞ se⌠ oµ ì
áááásoftwarσ developmen⌠ tool≤ (aε editor¼ and¼ preferably¼ ß debugger⌐ t∩ ì
ááááusσ thσ libraries.
ááááWha⌠ d∩ thσ librarie≤ bu∙ you?
ááááT∩ thσ experienceΣ programmer¼ thσ librarie≤ havσ thσ potentia∞ oµ ì
áááábeinτ ß significan⌠ too∞ whicΦ enable≤ hiφ to:
áááá 1.áááSolvσ hi≤ programminτ tasδ quickly
áááááááááááááá¡¡ becausσ hσ spend≤ les≤ timσ writinτ commonl∙-useΣ ì
áááááááááááááásubroutine≤ anΣ worryinτ abou⌠ ho≈ hi≤ register≤ arσ affecteΣ ì
ááááááááááááááb∙ thesσ subroutine≤ anΣ morσ timσ concentratinτ oε thσ ì
ááááááááááááááprobleφ a⌠ hand.
áááá 2.áááWritσ space¡ anΣ speed-efficien⌠ code
áááááááááááááá¡¡ becausσ al∞ oµ thσ routine≤ havσ beeε gonσ ove≥ timσ anΣ ì
áááááááááááááátimσ agaiε t∩ reducσ thei≥ sizσ anΣ makσ theφ morσ efficien⌠ ì
ááááááááááááááiε term≤ oµ speed« Fo≥ example¼ thσ SOR╘ routinσ i≤ ß Shel∞ ì
ááááááááááááááSor⌠ tha⌠ caε bσ calleΣ t∩ perforφ thσ sor⌠ usinτ pointer≤ ì
áááááááááááááá(iε whicΦ casσ i⌠ exchange≤ pointer≤ rathe≥ thaε record≤ wheε ì
áááááááááááááái⌠ neeΣ t∩ d∩ ß swap⌐ o≥ perforφ thσ sor⌠ withou⌠ usinτ ì
áááááááááááááápointe≥s (wheε spacσ i≤ ß facto≥ anΣ therσ ma∙ no⌠ bσ enougΦ ì
áááááááááááááárooφ fo≥ ß pointe≥ table).
áááá 3« Writσ morσ maintainablσ code
áááááááááááááá¡¡ becausσ thσ librarie≤ arσ designeΣ witΦ structureΣ ì
ááááááááááááááprogramminτ philosoph∙ iε mind« EacΦ subroutine≤ i≤ ì
ááááááááááááááequivalen⌠ t∩ ß proces≤ box¼ havinτ (1⌐ onl∙ onσ entrancσ anΣ ì
ááááááááááááááonσ exit¼ (2⌐ ß precisel∙-defineΣ function¼ anΣ (3⌐ ß ì
ááááááááááááááprecisel∙-defineΣ se⌠ oµ inpu⌠ anΣ outpu⌠ parameters« Havinτ ì
ááááááááááááááuseΣ thσ librarie≤ fo≥ somσ timσ now¼ thσ autho≥ ha≤ noteΣ ì
áááááááááááááátha⌠ hi≤ programminτ though⌠ processe≤ anΣ prograφ design≤ ì
ááááááááááááááhavσ tendeΣ morσ anΣ morσ towarΣ "enΣ-inó (to≡-dowε froφ thσ ì
ááááááááááááááobjectivσ poin⌠ oµ vie≈ anΣ bottoφ-u≡ froφ thσ librar∙ ì
áááááááááááááásubroutinσ poin⌠ oµ view)¼ structureΣ design≤ tha⌠ hσ caε g∩ ì
áááááááááááááábacδ t∩ a⌠ ß late≥ datσ anΣ readil∙ deciphe≥ anΣ modify.
áááá 4.áááReducσ thσ programminτ effort
áááááááááááááá¡¡ becausσ thσ librarie≤ providσ ß numbe≥ oµ ver∙ involveΣ ì
áááááááááááááároutine≤ whicΦ would¼ iε themselves¼ takσ quitσ somσ timσ t∩ ì
áááááááááááááácode« Fo≥ example¼ thσ DIR╞ routine≤ wil∞ loaΣ thσ director∙ ì
ááááááááááááááoµ ß disδ int∩ memory¼ selec⌠ ß se⌠ oµ file≤ froφ tha⌠ loadeΣ ì
áááááááááááááádirector∙ a≤ specified b∙ ß Filσ Contro∞ Blocδ (FCB⌐ anΣ ß ì
ááááááááááááááflaτ whicΦ indicate≤ whethe≥ t∩ includσ Systeφ o≥ Noε-Systeφ ì
ááááááááááááááfile≤ anΣ wha⌠ use≥ areß i≤ t∩ bσ examined¼ pack≤ thσ loadeΣ ì
áááááááááááááádirector∙ (removinτ entrie≤ no⌠ selecteΣ froφ thσ memor∙ ì
áááááááááááááábuffer)¼ alphabetize≤ thσ director∙ entrie≤ b∙ filσ namσ anΣ ìèáááááááááááááátypσ o≥ b∙ filσ typσ anΣ name¼ anΣ return≤ ß pointe≥ t∩ thσ ì
ááááááááááááááfirs⌠ entr∙ anΣ ß coun⌠ oµ thσ nubme≥ oµ entrie≤ selected.
ááááIε man∙ ways¼ thσ librarie≤ brinτ advantage≤ oµ programminτ iε ß HigΦ-ì
ááááOrde≥ Language¼ likσ ├ o≥ Pascal¼ t∩ thσ assembl∙ languagσ programmer« ì
ááááThe∙ allo≈ hiφ t∩ maintaiε thσ smalle≥ codσ sizσ anΣ greate≥ efficiencyì
ááááwhicΦ caε bσ realizeΣ iε assembl∙ languagσ programming¼ anΣ ì
áááásimultaneously¼ realizσ ß reduceΣ lifσ-cyclσ cos⌠ (froφ developmen⌠ t∩ ì
ááááfieldinτ t∩ pos⌠-fieldinτ maintenancσ anΣ modification⌐ ove≥ assembl∙ ì
áááálanguagσ programminτ withou⌠ ß simila≥ to∩∞ set.
ááááHo≈ t∩ learε t∩ usσ thσ librarie≤ effectively?
ááááThi≤ i≤ opinion¼ oµ course¼ bu⌠ ╔ fee∞ tha⌠ thσ bes⌠ wa∙ t∩ learε ho≈ ì
áááát∩ usσ thσ librarie≤ woulΣ involvσ thσ followinτ steps:
áááá 1.áááStud∙ thesσ columε article≤ iε aε overvie≈ fashion¼ ì
ááááááááááááááfamiliarize yourselµ witΦ thσ function≤ oµ thσ subroutine≤ ì
ááááááááááááááavailable.
áááá 2. Study iε somσ detail¼ thσ samplσ sourcσ programs¼ jumpinτ ì
áááááááááááááábacδ t∩ thesσ article≤ froφ timσ t∩ time¼ t∩ seσ wh∙ anΣ thσ ì
ááááááááááááááwa∙ ╔ useΣ thσ routines«
áááá 3. Tr∙ codinτ ß couplσ oµ routine≤ froφ thi≤ column¼ copyinτ ì
áááááááááááááátheφ verbatiφ anΣ assemblinτ them.
áááá 4« Tr∙ makinτ u≡ ß fe≈ simplσ problem≤ oµ you≥ owε anΣ usσ thσ ì
áááááááááááááálibrarie≤ t∩ codσ them.
áááá 5.áááAppl∙ thσ librarie≤ t∩ ß significan⌠ prograφ yo⌡ wan⌠ t∩ ì
ááááááááááááááwrite.
áááá╔ aφ ß stronτ advocatσ oµ writinτ program≤ iε orde≥ t∩ learε ho≈ t∩ ì
ááááprogram¼ anΣ ╔ fee∞ tha⌠ i⌠ i≤ mos⌠ importan⌠ t∩ (1⌐ gaiε a≤ mucΦ ì
ááááfamiliarit∙ witΦ thσ routine≤ a≤ yo⌡ caε anΣ (2⌐ t∩ writσ program≤ ì
ááááusinτ thesσ routines.