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 / JSAGE / ZSUS / TCJ / TCJ42.WZ / TCJ42.WS
Text File  |  2000-06-30  |  36KB  |  581 lines

  1.                                Z-System Corne≥ (c)
  2.                                  by Jay Sage
  3.                         The Computer Journal, Issue 42
  4.                           Reproduced with permission
  5.                            of author and publisher
  6.  
  7.  
  8.      ┴ ánumbe≥ oµ newe≥ TC╩ reader≤ havσ commenteΣ tha⌠ witΦ thi≤ columε áthe∙ ì
  9. fee∞ átha⌠ the∙ arσ cominτ int∩ thσ middlσ oµ ß ver∙ involveΣ discussioε átha⌠ ì
  10. i≤ harΣ t∩ catcΦ oε to«  Oµ course¼ onσ answe≥ t∩ tha⌠ probleφ i≤ fo≥ ne≈ áTC╩ ì
  11. reader≤ át∩ purchasσ bacδ issues«  ╔ havσ beeε writinτ thi≤ ácolumε áregularl∙ ì
  12. sincσ áissuσ á#25¼ anΣ ╔ aφ quitσ surσ tha⌠ al∞ thosσ bacδ áissue≤ áarσ ástil∞ ì
  13. available« á Tha⌠ solutioε notwithstanding¼ i⌠ i≤ probabl∙ no⌠ ß baΣ áideß át∩ ì
  14. stanΣ bacδ ever∙ s∩ ofteε anΣ tr∙ t∩ comprehenΣ ß large≥ picture«  Tha⌠ i≤ onσ ì
  15. oµ thσ task≤ ╔ wil∞ undertakσ thi≤ time.
  16.  
  17.      DetaileΣ technica∞ conten⌠ wil∞ no⌠ bσ forsakeε entirely¼ however¼ ásincσ ì
  18. ╔ áregarΣ tha⌠ a≤ thσ primar∙ purposσ oµ m∙ column«  A⌠ thi≤ point¼ ╔ ásuspec⌠ ì
  19. tha⌠ á╔ aφ to∩ mucΦ oµ ß ┌-Systeφ exper⌠ t∩ talδ abou⌠ ver∙ man∙ topic≤ áa⌠ áß ì
  20. leve∞ átha⌠ i≤ appropriatσ fo≥ beginners«  T∩ servσ thei≥ needs¼ ╔ áhavσ ábeeε ì
  21. ver∙ áactivel∙ ásolicitinτ article≤ froφ othe≥ authors«  Iε áthi≤ áissue¼ áfo≥ ì
  22. example¼ áwσ havσ thσ firs⌠ oµ thσ column≤ ╔ promiseΣ ß couplσ oµ issue≤ ábacδ ì
  23. oε ho≈ t∩ se⌠ u≡ ß remotσ acces≤ systeφ (akß bulletiε boarΣ system⌐ unde≥ áthσ ì
  24. NZCO═ áaut∩-instal∞ áversioε oµ ┌-System«  Leσ McEweε (akß Chri≤ áMcEwen⌐ áha≤ ì
  25. donσ ß lovel∙ joΓ witΦ tha⌠ assignment.
  26.  
  27.      Thσ átechnica∞ discussioε thi≤ timσ wil∞ focu≤ oε somσ issue≤ tha⌠ áarosσ ì
  28. iε átryinτ át∩ áinstal∞ ZSDO╙ o≥ ZDDO╙ oε aε SB18░ ácompute≥ áwitΦ áthσ áXBIO╙ ì
  29. enhanceΣ operatinτ system«  Beforσ yo⌡ sa∙ "Bu⌠ ╔ don'⌠ havσ aε SB180,ó le⌠ mσ ì
  30. assurσ yo⌡ tha⌠ thσ technique≤ havσ morσ genera∞ applicability«  Thσ áspecifiπ ì
  31. XBIO╙ áprobleφ ái≤ áonσ átha⌠ ha≤ comσ u≡ ofteε anΣ ha≤ ábeeε áthσ ásourcσ áoµ ì
  32. considerablσ áfrustratioε t∩ XBIO╙ users«  [The∙ arσ iε gooΣ company¼ áb∙ áthσ ì
  33. way«  Jus⌠ a≤ ╔ wa≤ finishinτ thi≤ article¼ ╔ go⌠ ß cal∞ froφ Bridge≥ Mitchel∞ ì
  34. abou⌠ áthi≤ áver∙ subject!▌  ╔ aφ onl∙ sorr∙ tha⌠ i⌠ tooδ mσ s∩ álonτ át∩ áge⌠ ì
  35. arounΣ át∩ workinτ oε it«  Genσ Pizzetta¼ ß fello≈ Bostonian¼ wa≤ thσ ásqueak∙ ì
  36. whee∞ átha⌠ finall∙ go⌠ m∙ attention¼ anΣ hσ ha≤ contributeΣ ß numbe≥ áoµ áhi≤ ì
  37. owε idea≤ t∩ thσ solution.
  38.  
  39.  
  40. Announcements
  41.  
  42.      Beforσ wσ ge⌠ dowε t∩ business¼ ╔ have¼ a≤ usual¼ ß fe≈ announcement≤ át∩ ì
  43. make« á Firs⌠ á╔ woulΣ likσ t∩ reminΣ reader≤ oncσ agaiε abou⌠ áBil∞ áTishey'≤ ì
  44. superΓ ácollectioε áoµ hel≡ file≤ fo≥ thσ hundred≤ oµ á┌-Systeφ áprogram≤ áno≈ ì
  45. available« á Bil∞ ácaε no≈ generatσ diskette≤ iε man∙ áformat≤ ábeside≤ áApplσ ì
  46. (usinτ hi≤ son'≤ Commodorσ 128)¼ anΣ hσ i≤ willinτ t∩ fil∞ you≥ diskette≤ witΦ ì
  47. thσ áfile≤ fo≥ onl∙ $10«  M∙ columε iε issuσ #3╢ gavσ thσ followinτ áprocedurσ ì
  48. t∩ áfollow║ á(1⌐ ásenΣ enougΦ formatteΣ diskette≤ (plainl∙ álabeleΣ áwitΦ áthσ ì
  49. format⌐ át∩ áholΣ áa⌠ leas⌠ 1000╦ byte≤ (u≡ froφ 800╦ bacδ then)╗ á(2⌐ áusσ áß ì
  50. reusablσ disδ maile≥ o≥ enclosσ ß maile≥ suitablσ fo≥ returninτ thσ ádiskette≤ ì
  51. t∩ áyou╗ anΣ (3⌐ enclosσ ß returε addres≤ label¼ returε postage¼ anΣ áthσ á$1░ ì
  52. copyinτ áfee«  Bill'≤ addres≤ i≤ 833╡ Dubb≤ Drive¼ Severn¼ M─ 21144« á Iµ áyo⌡ ìèprefe≥ (o≥ iµ yo⌡ neeΣ 9╢-tpi¼ 8ó SSSD¼ o≥ NorthSta≥ harΣ-secto≥ formats)¼ yo⌡ ì
  53. caε senΣ thσ diskette≤ t∩ mσ a≤ well.
  54.  
  55.      Second¼ ╔ woulΣ likσ t∩ makσ ß specia∞ poin⌠ oµ callinτ you≥ attentioε t∩ ì
  56. thσ áGEniσ áRoundTablσ ádiscussion≤ tha⌠ takσ placσ ever∙ áWednesda∙ áa⌠ á10pφ ì
  57. Easterε átime«  Thσ firs⌠ sucΦ sessioε oµ eacΦ montΦ i≤ devoteΣ át∩ á┌-System¼ ì
  58. anΣ á╔ aφ thσ moderator¼ s∩ thi≤ i≤ you≥ chancσ fo≥ ß rea∞-timσ dialoguσ áwitΦ ì
  59. me«  G∩ t∩ pagσ "685;2ó oε GEniσ anΣ ente≥ "Rooφ 2".
  60.  
  61.      Therσ ááarσ ásevera∞ áchange≤ át∩ árepor⌠ áiε áthσ ároste≥ áoµ áá┌-Nodes« ì
  62. Regrettably¼ BoΓ Paddock'≤ nodσ #3╕ iε Franklin¼ PA¼ ha≤ gonσ ofµ thσ air« áT∩ ì
  63. offse⌠ átha⌠ loss¼ however¼ nodσ #7│ iε thσ St« Louis¼ MO¼ areß ha≤ comσ ábacδ ì
  64. t∩ álifσ afte≥ beinτ dowε fo≥ severa∞ years«  Syso≡ Georgσ Alleε anΣ ác∩-syso≡ ì
  65. Wal⌠ áStumpe≥ áwoulΣ ábσ happ∙ t∩ hea≥ froφ yo⌡ áa⌠ á31┤-82▒-107╕ á(P├-Pursui⌠ ì
  66. MOSLO/24)«  Thσ equipmen⌠ i≤ currentl∙ ß Xero° 82░-I╔ witΦ ß 1░ Meτ drive¼ bu⌠ ì
  67. thσ sysop≤ hopσ t∩ expanΣ sooε t∩ ß 30½ Meτ Ampro.
  68.  
  69.      Oε áthσ á┌-Nodσ áfront¼ ╔ aφ als∩ sorr∙ t∩ árepor⌠ átha⌠ á┌-Nodσ áCentra∞ ì
  70. (Lillipute⌐ wa≤ downeΣ b∙ hardwarσ failure≤ oε botΦ computersí  The∙ havσ beeε ì
  71. ofµ thσ ai≥ fo≥ ß couplσ oµ month≤ alread∙ a≤ ╔ writσ this¼ anΣ syso≡ áRicharΣ ì
  72. Jacobsoε ha≤ jus⌠ faceΣ thσ truth║ tha⌠ i⌠ wil∞ no⌠ bσ cominτ back« Laderß á┌-ì
  73. Nodσ á(#2⌐ áiε áLo≤ Angele≤ wil∞ takσ ove≥ a≤ ┌-Nodσ áCentral« á Chicag∩ áareß ì
  74. caller≤ lookinτ fo≥ ┌ suppor⌠ shoulΣ checδ ou⌠ thσ Antelopσ Freewa∙ systeφ ruε ì
  75. b∙ ZDO╙-coautho≥ Carsoε Wilsoε fo≥ CFO╟ (Chicag∩ areß FOG)«  Thi≤ i≤ onσ oµ áß ì
  76. smal∞ ánumbe≥ oµ remotσ acces≤ system≤ runninτ unde≥ thσ Z3PLU╙ flavo≥ áoµ á┌-ì
  77. System« á Thσ áphonσ numbe≥ i≤ 31▓-76┤-515▓ (P├-Pursui⌠ ILCHI/24)« áWσ áexpec⌠ ì
  78. tha⌠ it≤ 'Systeφ Oneº wil∞ sooε bσ ß ┌-Nodσ ('Systeφ Twoº support≤ M╙-DOS).
  79.  
  80.      Finally¼ átherσ havσ beeε somσ ver∙ significan⌠ development≤ witΦ BD╙ áC« ì
  81. Leo≥ áZolmaε completeΣ somσ majo≥ addition≤ t∩ thσ ┌ versioε (BD╙ Z)¼ anΣ áthσ ì
  82. fina∞ áreleasσ áha≤ ájus⌠ ágonσ ou⌠ a≤ ╔ writσ thi≤ ácolumε áiε ámiΣ áOctober« ì
  83. Program≤ generateΣ b∙ BD╙ ┌ no≈ havσ ß ful∞ ┌-Systeφ heade≥ anΣ caε bσ álinkeΣ ì
  84. a≤ typσ-│ program≤ t∩ loaΣ anΣ ruε a⌠ aε arbitrar∙ address«  ZDO╙ coautho≥ Caφ ì
  85. Cotril∞ ha≤ alread∙ releaseΣ ß substantia∞ amoun⌠ oµ BD╙ ┌ codσ fo≥ performinτ ì
  86. thσ function≤ iε thσ SYSLIB¼ VLIB¼ anΣ Z3LI┬ assembl∙-languagσ librarie≤ átha⌠ ì
  87. arσ no⌠ alread∙ buil⌠ int∩ BD╙ Z.
  88.  
  89.      Leo≥ ha≤ no≈ turneΣ ove≥ al∞ oµ thσ marketinτ anΣ somσ oµ thσ developmen⌠ ì
  90. responsibilit∙ áfo≥ áBD╙ ├ t∩ me«  Recognizinτ tha⌠ thσ $9░ pricσ taτ áoµ áthσ ì
  91. ful∞ ápackage¼ howeve≥ reasonablσ fo≥ wha⌠ onσ gets¼ i≤ aε impedimen⌠ át∩ áne≈ ì
  92. user≤ wh∩ wan⌠ t∩ experimen⌠ witΦ C¼ wσ havσ prepareΣ ß lo≈ cos⌠ áintroductor∙ ì
  93. packagσ átha⌠ (1⌐ include≤ onl∙ onσ versioε oµ thσ codσ (eithe≥ standarΣ áCP/═ ì
  94. o≥ á┌-System)¼ á(2⌐ contain≤ onl∙ thσ essentia∞ files¼ anΣ (3⌐ come≤ áwitΦ áaε ì
  95. abridgeΣ áversioε áoµ thσ manua∞ (anΣ withou⌠ thσ fanc∙ B─ áSoftwarσ ábinder)«  ì
  96. Thi≤ ápackagσ wil∞ bσ offereΣ fo≥ onl∙ $60«  Othe≥ part≤ oµ thσ áful∞ ápackagσ ì
  97. caε ábσ addeΣ later║ $2╡ fo≥ thσ seconΣ versioε oµ thσ compiler¼ $2╡ áfo≥ áthσ ì
  98. suppor⌠ ámaterial≤ á(RE─ áeditor¼ CD┬ debugger¼ anΣ thσ part≤ áoµ áthσ ámanua∞ ì
  99. coverinτ áthem)¼ o≥ $4░ fo≥ botΦ a⌠ once«  Iµ thσ wholσ packagσ i≤ ordereΣ áa⌠ ì
  100. once¼ ái⌠ ácome≤ completσ witΦ aε attractivσ binde≥ (als∩ availablσ áwitΦ áthσ ì
  101. introductor∙ packagσ fo≥ $╡ extra).
  102.  
  103.      I⌠ shoulΣ bσ noteΣ tha⌠ BD╙ ┌ generate≤ program≤ tha⌠ ruε perfectl∙ áwel∞ ìèunde≥ ástandarΣ áCP/M«  Naturally¼ the∙ wil∞ no⌠ recognizσ á┌-Systeφ áfeature≤ ì
  104. likσ ánameΣ ádirectories¼ bu⌠ the∙ wil∞ accep⌠ thσ no≈ standarΣ áDU║ áextendeΣ ì
  105. drive/use≥ ásynta° áinsteaΣ oµ thσ olde≥ U/D║ forma⌠ oµ standarΣ BD╙ áC« á Thσ ì
  106. onl∙ ádisadvantagσ oµ usinτ BD╙ ┌ rathe≥ thaε BD╙ ├ oε ß standarΣ CP/═ ásysteφ ì
  107. i≤ átha⌠ áthσ program≤ carr∙ ┌-Systeφ overheaΣ (abou⌠ 80░ ábytes⌐ átha⌠ ádon'⌠ ì
  108. providσ theφ witΦ an∙ functionality.
  109.  
  110.  
  111.                Wha⌠ i≤ ß Microcompute≥ Operatinτ Systeφ For?
  112.  
  113.      Thσ basiπ functioε oµ aε operatinτ systeφ i≤ t∩ makσ one'≤ lifσ ¡¡ áone'≤ ì
  114. computinτ álife¼ tha⌠ i≤ ¡¡ simpler«  Wheε microcomputer≤ firs⌠ camσ out¼ áthσ ì
  115. bigges⌠ burdeε wa≤ dealinτ witΦ thσ hardware«  I⌠ wa≤ n∩ fuε fo≥ thσ ácompute≥ ì
  116. use≥ áanΣ programme≥ (largel∙ synonymou≤ iε thosσ days⌐ t∩ havσ t∩ ádea∞ áove≥ ì
  117. anΣ ove≥ witΦ thσ intricacie≤ oµ thσ physica∞ operatioε oµ thσ hardware¼ ásucΦ ì
  118. a≤ gettinτ character≤ t∩ anΣ froφ thσ termina∞ o≥ pape≥ tapσ reader/punch¼ no⌠ ì
  119. t∩ ámentioε áthσ dauntingl∙ morσ comple° tasδ oµ managinτ datß oε áß ámagnetiπ ì
  120. tapσ o≥ flopp∙ diskettσ drive.
  121.  
  122.      Gar∙ áKildall'≤ CP/═ operatinτ systeφ provideΣ ß solutioε ¡¡ anΣ áß áver∙ ì
  123. gooΣ áonσ á(b∙ anΣ large⌐ iε m∙ opinioε ¡¡ t∩ thosσ problems«  I⌠ ádiΣ ás∩ áb∙ ì
  124. implementinτ áß ástandardizeΣ áanΣ modula≥ interfacσ tha⌠ áhandleΣ áthσ ábasiπ ì
  125. devicσ ácommunicatioε átasks« á CP/M¼ whicΦ stooΣ á(╔ ábelieve⌐ áfo≥ á"Contro∞ ì
  126. Prograφ áfo≥ Microcomputers,ó wa≤ thσ maste≥ prograφ tha⌠ onσ go⌠ árunninτ áoε ì
  127. thσ ácompute≥ righ⌠ afte≥ powe≥ up«  I⌠ woulΣ theε allo≈ onσ t∩ loaΣ áanΣ áruε ì
  128. othe≥ programs¼ witΦ contro∞ alway≤ returninτ t∩ thσ CP/═ maste≥ prograφ afte≥ ì
  129. eacΦ use≥ prograφ finished.
  130.  
  131.      Beside≤ áacceptinτ áanΣ áinterpretinτ command≤ áissueΣ áb∙ áthσ ácompute≥ ì
  132. operator¼ áaε operatinτ systeφ likσ CP/═ als∩ provide≤ residen⌠ ácodσ á(alway≤ ì
  133. read∙ áiε memory⌐ fo≥ performinτ certaiε function≤ tha⌠ áapplicatioε áprogram≤ ì
  134. wil∞ áofteε áwan⌠ át∩ use«  Thσ simple≥ function≤ arσ thing≤ álikσ ásendinτ áß ì
  135. characte≥ t∩ thσ termina∞ screen╗ thσ morσ comple° one≤ includσ fetchinτ áfroφ ì
  136. o≥ áwritinτ át∩ ß flopp∙ diskettσ thσ informatioε associateΣ áwitΦ áß álogica∞ ì
  137. entit∙ knowε a≤ ß file.
  138.  
  139.      WitΦ ááthesσ áfunction≤ áimplementeΣ áiε áthσ áoperatinτ áásysteφ áácode¼ ì
  140. applicatioε áprogram≤ arσ easie≥ t∩ writσ anΣ d∩ no⌠ havσ t∩ includσ thσ ásamσ ì
  141. codσ áove≥ anΣ over«  Morσ importantly¼ the∙ caε ruε oε ß variet∙ oµ áhardwarσ ì
  142. platforms¼ ásincσ áthσ ádetail≤ oµ thσ physica∞ hardwarσ arσ áhandleΣ áb∙ áthσ ì
  143. operatinτ ásysteφ ácode¼ áanΣ thσ prograφ caε dea∞ witΦ thing≤ áa⌠ áß álogica∞ ì
  144. level.
  145.  
  146. Logica∞ vs« Physical
  147.  
  148.      Perhap≤ áthi≤ i≤ ß gooΣ timσ fo≥ ß brieµ asidσ oε thi≤ matte≥ oµ álogica∞ ì
  149. versu≤ áphysical«  Wσ usσ thσ adjectivσ "physicaló wheε wσ arσ átalkinτ áabou⌠ ì
  150. thing≤ átha⌠ arσ actuall∙ iε thσ hardware«  Iε thσ casσ oµ ß flopp∙ disk¼ áfo≥ ì
  151. example¼ áthσ áphysica∞ áitem≤ arσ thσ bit≤ oµ datß ástoreΣ áa≤ ámagnetizatioε ì
  152. patterns« á Thesσ bit≤ arσ groupeΣ int∩ sectors¼ anΣ thσ sector≤ int∩ átracks« ì
  153. Iε áthσ ácasσ áoµ ß termina∞ screen¼ thσ physica∞ item≤ arσ áthσ ápattern≤ áoµ ì
  154. illuminateΣ dot≤ tha⌠ wσ recognizσ a≤ letters¼ numbers¼ anΣ othe≥ symbols.è
  155.      Oε áthσ áothe≥ áhand¼ wσ usσ thσ adjectivσ "logicaló át∩ ádescribσ áthosσ ì
  156. thing≤ áwhicΦ arσ essentiall∙ thσ creatioε oµ ou≥ mind≤ (anΣ áprograms)« á Fo≥ ì
  157. example¼ átherσ ái≤ án∩ sucΦ physica∞ thinτ a≤ ß "file.ó  N∩ ámatte≥ áho≈ áyo⌡ ì
  158. examinσ ß diskette¼ yo⌡ wil∞ neve≥ finΣ ß filσ oε i⌠ (a≤ such)╗ yo⌡ wil∞ áfinΣ ì
  159. onl∙ sector≤ anΣ tracks«  I⌠ i≤ ou≥ choicσ t∩ organizσ thσ datß oε thσ disδ iε ì
  160. ß áwa∙ tha⌠ associate≤ group≤ oµ sucΦ sector≤ witΦ ß filσ name≤ anΣ át∩ ástorσ ì
  161. thσ filσ name≤ iε ß particula≥ grou≡ oµ sector≤ oε thσ disk.
  162.  
  163.  
  164. Modularity
  165.  
  166.      CP/═ ái≤ ámodula≥ iε thσ sensσ tha⌠ i⌠ divide≤ u≡ thσ áfunction≤ áoµ áthσ ì
  167. operatinτ ásysteφ int∩ separatσ packages«  Onσ par⌠ i≤ calleΣ thσ BIO╙ á(basiπ ì
  168. input/outpu⌠ ásystem)«  Thi≤ part¼ whicΦ live≤ a⌠ thσ ver∙ to≡ oµ áthσ ámemor∙ ì
  169. addres≤ space¼ deal≤ directl∙ witΦ thσ hardware«  I⌠ read≤ anΣ write≤ physica∞ ì
  170. sector≤ áfroφ anΣ t∩ ß diskette╗ i⌠ determine≤ whethe≥ o≥ no⌠ ß ke∙ áha≤ ábeeε ì
  171. presseΣ oε thσ keyboarΣ and¼ iµ so¼ whicΦ key╗ anΣ i⌠ send≤ character≤ t∩ áthσ ì
  172. screen«  Thσ BIO╙ i≤ thσ onl∙ par⌠ oµ CP/═ tha⌠ i≤ differen⌠ fo≥ eacΦ hardwarσ ì
  173. implementatioε oµ ß CP/═ computer.
  174.  
  175.      Thσ seconΣ CP/═ modulσ i≤ calleΣ thσ BDO╙ (basiπ disδ operatinτ ásystem)«  ì
  176. I⌠ ádeal≤ witΦ logica∞ constructs«  Wσ havσ alread∙ spokeε oµ files« á Wheε áß ì
  177. filσ ái≤ referreΣ to¼ thσ BDO╙ figure≤ ou⌠ whicΦ physica∞ track≤ áanΣ ásector≤ ì
  178. contaiε áthσ datß fo≥ tha⌠ file«  Anothe≥ logica∞ construc⌠ i≤ line≤ oµ átext«  ì
  179. Thσ áBDO╙ áha≤ ß functioε t∩ senΣ ß completσ linσ oµ tex⌠ t∩ áthσ áscreeε á(a≤ ì
  180. opposeΣ át∩ áthσ áBIOS¼ whicΦ caε senΣ onl∙ ß singlσ character)¼ áanΣ ái⌠ áha≤ ì
  181. anothe≥ áfunctioε át∩ ge⌠ ß completσ linσ oµ tex⌠ froφ thσ áuser¼ áallowinτ áß ì
  182. limiteΣ áamoun⌠ áoµ áediting«  Thesσ function≤ makσ i⌠ ámucΦ áeasie≥ áfo≥ áthσ ì
  183. applicatioε programme≥ t∩ writσ hi≤ o≥ he≥ program.
  184.  
  185.      Thσ álas⌠ CP/═ modulσ i≤ calleΣ thσ CC╨ (consolσ commanΣ processor)« á I⌠ ì
  186. get≤ áß ácommanΣ typeΣ b∙ thσ use≥ a⌠ thσ consolσ anΣ átake≤ áthσ áappropriatσ ì
  187. actioε át∩ ácarr∙ ou⌠ tha⌠ command«  Somσ commands¼ sucΦ a≤ DI╥ áo≥ áERA¼ áarσ ì
  188. implementeΣ ádirectl∙ áiε áthσ CC╨ code«  Other≤ requirσ tha⌠ ß áCO═ áfilσ ábσ ì
  189. loadeΣ froφ diskettσ anΣ executed.
  190.  
  191.  
  192. CommanΣ Processinτ Unde≥ CP/M
  193.  
  194.      Fo≥ áthσ ámos⌠ part¼ CP/═ accomplishe≤ thσ function≤ i⌠ wa≤ ádesigneΣ át∩ ì
  195. perforφ áiε admirablσ fashion«  However¼ i⌠ wa≤ s∩ concerneΣ witΦ solvinτ áthσ ì
  196. hardwarσ áinterfacσ áprobleφ á(thσ áprogramme≥ áinterface⌐ átha⌠ ái⌠ áádevoteΣ ì
  197. relativel∙ littlσ attentioε t∩ thσ use≥ interface«  T∩ bσ fair¼ i⌠ wa≤ borε iε ì
  198. thσ áday≤ wheε 16╦ oµ memor∙ cos⌠ abou⌠ $50░ (iε 1970≤ dollars¼ n∩ áless⌐ áanΣ ì
  199. occupieΣ áaε áentirσ ╙-10░ carΣ (bigge≥ b∙ fa≥ thaε ß wholσ áSB180F╪ ácompute≥ ì
  200. witΦ á512K)« á Toda∙ wσ migh⌠ no⌠ thinδ tha⌠ 64╦ i≤ ver∙ mucΦ (somσ ása∙ átha⌠ ì
  201. OS/▓ áfeel≤ ádreadfull∙ crampeΣ iε les≤ thaε │ Megs!)¼ bu⌠ i⌠ make≤ ß álo⌠ áoµ ì
  202. thing≤ possiblσ tha⌠ 48╦ (o≥ eveε less⌐ woulΣ no⌠ allow.
  203.  
  204.      CP/M'≤ commanΣ processo≥ diΣ littlσ morσ thaε thσ minimuφ i⌠ wa≤ requireΣ ì
  205. t∩ ádo¼ ánamel∙ t∩ ruε ß fe≈ residen⌠ command≤ anΣ t∩ loaΣ áexterna∞ ácommand≤ ìèfroφ ádisk« á I⌠ ádiΣ no⌠ providσ man∙ service≤ t∩ makσ áthσ áoperator'≤ álifσ ì
  206. easier« á Yo⌡ haΣ t∩ specif∙ rathe≥ exactl∙ thσ commanΣ yo⌡ wanteΣ áperformed╗ ì
  207. n∩ áleewa∙ wa≤ allowed«  AnΣ iµ yo⌡ madσ ß mistake¼ CP/═ diΣ no⌠ tr∙ t∩ áhelp╗ ì
  208. i⌠ jus⌠ shruggeΣ it≤ shoulder≤ anΣ emitteΣ ß questioε mark.
  209.  
  210.  
  211. Thσ Nicetie≤ oµ ┌-System
  212.  
  213.      Thσ á┌-Systeφ ha≤ evolveΣ ove≥ ß perioΣ oµ nearl∙ ß decadσ now¼ ábu⌠ áit≤ ì
  214. goa∞ áfroφ áthσ áver∙ beginninτ ha≤ alway≤ beeε t∩ makσ ái⌠ áeasie≥ áanΣ ámorσ ì
  215. convenien⌠ át∩ áoperatσ áthσ computer«  M∙ idea∞ i≤ t∩ havσ áthσ ácompute≥ ád∩ ì
  216. everythinτ átha⌠ ái⌠ possibl∙ caε d∩ fo≥ thσ use≥ anΣ leavσ t∩ thσ áuse≥ áonl∙ ì
  217. thosσ átask≤ átha⌠ án∩ compute≥ coulΣ possibl∙ figurσ ou⌠ áoε áit≤ áown« á Thσ ì
  218. commanΣ áprocesso≥ áimprovement≤ ╔ havσ introduceΣ anΣ thσ áutilitie≤ á╔ áhavσ ì
  219. writteε áhavσ áal∞ beeε directeΣ towarΣ tha⌠ goal«  ╔ wil∞ no≈ ruε áthrougΦ áß ì
  220. shor⌠ ásummar∙ áoµ á┌-Systeφ feature≤ anΣ tr∙ t∩ indicatσ ho≈ áthe∙ ámakσ áthσ ì
  221. operator'≤ lifσ easier«  Thi≤ lis⌠ i≤ adapteΣ froφ m∙ book¼ "Thσ ZCPR3│ User'≤ ì
  222. Guide."
  223.  
  224.  
  225. Use≥ Areß Access
  226.  
  227.      CP/═ áintroduceΣ áthσ áconcep⌠ oµ disδ "useró areas¼ áwhicΦ áalloweΣ áthσ ì
  228. operatinτ systeφ t∩ grou≡ file≤ int∩ separatσ logica∞ directorie≤ á(physicall∙ ì
  229. thσ áfile≤ áarσ áal∞ ástoreΣ iε thσ samσ directory¼ bu⌠ áthe∙ áarσ átaggeΣ át∩ ì
  230. indicatσ áthσ áuse≥ area)«  Unfortunately¼ CP/═ provideΣ n∩ practica∞ áwa∙ át∩ ì
  231. acces≤ file≤ acros≤ use≥ areas¼ whicΦ madσ theφ almos⌠ useless.
  232.  
  233.      Bacδ iε thσ day≤ wheε disk≤ helΣ onl∙ abou⌠ 100K¼ therσ wasn'⌠ mucΦ áneeΣ ì
  234. fo≥ áthi≤ ákinΣ oµ organization¼ bu⌠ toda∙ flopp∙ diskette≤ ácommonl∙ áhavσ áß ì
  235. capacit∙ betweeε 350╦ anΣ 1.│ Meg«  HarΣ disk≤ witΦ man∙ ten≤ oµ megabyte≤ arσ ì
  236. als∩ áinexpensivσ áanΣ common«  Unde≥ thesσ circumstances¼ áß ásinglσ álogica∞ ì
  237. drivσ ácaε holΣ hundred≤ o≥ eveε thousand≤ oµ files¼ anΣ somσ wa∙ t∩ áorganizσ ì
  238. theφ become≤ essential.
  239.  
  240.      ┌-Systeφ ámake≤ i⌠ ver∙ eas∙ anΣ convenien⌠ t∩ organizσ you≥ file≤ ábaseΣ ì
  241. oε áuse≥ ánumbers« á Wherσ CP/═ alloweΣ onl∙ ß drivσ prefi° át∩ áß áfilσ ánamσ ì
  242. (D:NAME.TYP)¼ ┌-Systeφ allow≤ drivσ and/o≥ use≥ numbe≥ prefixe≤ á(DU:NAME.TYP⌐ ì
  243. s∩ átha⌠ file≤ iε othe≥ use≥ area≤ a≤ wel∞ a≤ othe≥ drive≤ caε ábσ áreferenceΣ ì
  244. directly« á Iε áaddition¼ á┌-Systeφ allow≤ meaningfu∞ name≤ á(simila≥ át∩ áDO╙ ì
  245. subdirector∙ ánames⌐ át∩ ábσ assigneΣ t∩ drive/use≥ areas« áThi≤ áprovide≤ áaε ì
  246. interfacσ átha⌠ ái≤ fa≥ morσ suitablσ t∩ thσ wa∙ peoplσ áthinδ áanΣ áremember«  ì
  247. WitΦ thσ DU║ form¼ thσ operato≥ ha≤ t∩ thinδ abou⌠ thσ hardwarσ (somethinτ áhσ ì
  248. o≥ shσ shoulΣ no⌠ havσ t∩ do¼ remember?)╗ witΦ nameΣ directories¼ thσ operato≥ ì
  249. think≤ áiε term≤ oµ functioε (TEXT║ fo≥ tex⌠ files¼ BDSC║ fo≥ thσ ├ ácompiler¼ ì
  250. DBASE║ fo≥ databasσ files¼ anΣ s∩ on).
  251.  
  252.  
  253. Termina∞ Independencσ anΣ thσ Environment
  254.  
  255.      Whilσ ásomσ áwoulΣ áarguσ tha⌠ thσ DO╙ hardwarσ áanΣ ásoftwarσ ástandard≤ ì
  256. establisheΣ b∙ IBM'≤ marke⌠ dominancσ havσ resulteΣ iε aε enforceΣ mediocrity¼ ìètherσ ái≤ n∩ doub⌠ tha⌠ havinτ ß singlσ environmen⌠ iε whicΦ t∩ operatσ ámake≤ ì
  257. lifσ ámucΦ áeasie≥ fo≥ application≤ programmers«  Program≤ fo≥ áDO╙ ágenerall∙ ì
  258. worδ árigh⌠ áou⌠ oµ thσ bo° oε an∙ IB═ compatiblσ computer« áConfiguratioε ái≤ ì
  259. requireΣ onl∙ fo≥ finσ-tuning.
  260.  
  261.      CP/M¼ áoε áthσ othe≥ hand¼ wa≤ designeΣ t∩ allo≈ program≤ t∩ áruε áoε áaε ì
  262. extremel∙ áwidσ variet∙ oµ hardware«  Iε thosσ days¼ "personaló compute≥ átooδ ì
  263. oε áß ádifferen⌠ meaninτ ¡¡ eacΦ persoε designeΣ anΣ buil⌠ hi≤ áowε áhardware« ì
  264. CP/═ ácoulΣ ábσ ámadσ t∩ worδ witΦ al∞ oµ them¼ ábu⌠ áelaboratσ áconfiguratioε ì
  265. procedure≤ áwerσ ágenerall∙ árequired¼ especiall∙ t∩ ámatcΦ áprogram≤ át∩ áthσ ì
  266. particula≥ átermina∞ áused« á T∩ thi≤ day¼ wσ stil∞ havσ át∩ ádea∞ áwitΦ áthi≤ ì
  267. hardwarσ diversity.
  268.  
  269.      Wha⌠ áCP/═ coulΣ havσ bu⌠ faileΣ t∩ providσ wa≤ ß mean≤ fo≥ conveyinτ át∩ ì
  270. applicatioε áprogram≤ informatioε abou⌠ thσ operatinτ áenvironment« á ┌-Systeφ ì
  271. ha≤ ásevera∞ ámodule≤ átha⌠ afforΣ sucΦ communication« á Aε áareß ácalleΣ áthσ ì
  272. environmen⌠ áádescripto≥ áá(ENV⌐ ácontain≤ áinformatioε ááabou⌠ ááthσ áásysteφ ì
  273. configuration« á Anothe≥ ásysteφ areß calleΣ thσ messagσ buffe≥ á(MSG⌐ ástore≤ ì
  274. informatioε tha⌠ onσ prograφ caε leavσ fo≥ anothe≥ prograφ tha⌠ run≤ late≥ át∩ ì
  275. read.
  276.  
  277.      Par⌠ áoµ áthσ áEN╓ i≤ ß sectioε calleΣ thσ áTCA╨ áo≥ áTermina∞-CAPabilit∙ ì
  278. descriptor«  Thσ TCA╨ allow≤ ß prograφ runninτ unde≥ ┌-Systeφ t∩ determinσ thσ ì
  279. typσ oµ termina∞ iε usσ anΣ t∩ adap⌠ t∩ thσ contro∞ code≤ i⌠ use≤ fo≥ áspecia∞ ì
  280. vide∩ áoperations«  Thσ EN╓ ha≤ informatioε abou⌠ thσ sizσ oµ thσ áscreeε áanΣ ì
  281. thσ printer'≤ page«  I⌠ als∩ contain≤ sucΦ informatioε a≤ thσ CP╒ clocδ áspeeΣ ì
  282. anΣ áwhicΦ disδ drive≤ arσ availablσ (wh∙ allo≈ attempt≤ t∩ loτ int∩ drivσ áC║ ì
  283. iµ átherσ ái≤ n∩ drivσ C║ ¡¡ i⌠ ofteε jus⌠ hang≤ thσ computer)« áThσ á┌-Systeφ ì
  284. support≤ áman∙ áoptiona∞ áoperatinτ ásysteφ áfeature≤ ácontaineΣ áiε áoptiona∞ ì
  285. modules¼ anΣ thσ EN╓ contain≤ informatioε abou⌠ thesσ module≤ also.
  286.  
  287.      Thσ EN╓ anΣ TCA╨ no⌠ onl∙ relievσ thσ use≥ oµ thσ nuisancσ oµ áinstallinτ ì
  288. programs╗ the∙ als∩ makσ i⌠ ver∙ eas∙ t∩ changσ thσ installation« Suppose¼ fo≥ ì
  289. example¼ yo⌡ wan⌠ t∩ prin⌠ somσ file≤ iε 13▓-columε modσ insteaΣ oµ thσ áusua∞ ì
  290. 8░-columε ámode« á Unde≥ áCP/═ áyo⌡ ámigh⌠ ver∙ álikel∙ áhavσ át∩ áge⌠ áou⌠ áß ì
  291. configuratioε áprograφ t∩ redefinσ thσ printe≥ setup«  WitΦ ß á┌-Systeφ áprin⌠ ì
  292. utility¼ áyo⌡ áwoulΣ ásimpl∙ áchangσ áthσ modσ áoε áyou≥ áprinter¼ áruε áCPSE╘ ì
  293. (console/printe≥ set⌐ t∩ selec⌠ thσ 13▓-columε printe≥ definition¼ anΣ ruε thσ ì
  294. samσ prin⌠ prograφ a≤ before.
  295.  
  296.  
  297. CommanΣ Processinτ Enhancements
  298.  
  299.      Unde≥ áCP/M¼ yo⌡ havσ t∩ specif∙ wherσ thσ CO═ filσ t∩ bσ ruε i≤ álocateΣ ì
  300. (otherwisσ áthσ ácurren⌠ ádrivσ i≤ assumed)«  Thi≤ i≤ áß áperfec⌠ áexamplσ áoµ ì
  301. somethinτ átha⌠ áß compute≥ caε easil∙ bσ smar⌠ enougΦ t∩ d∩ fo≥ you¼ áanΣ á┌-ì
  302. Systeφ ádoes«  A≤ witΦ moderε version≤ oµ DO╙ (whicΦ tooδ man∙ year≤ t∩ ácatcΦ ì
  303. oε át∩ thi≤ ┌-Systeφ feature)¼ yo⌡ specif∙ ß lis⌠ oµ director∙ area≤ tha⌠ áthσ ì
  304. operatinτ ásysteφ áwil∞ scaε fo≥ ß requesteΣ CO═ file«  Iµ yo⌡ áwisΦ á(a≤ áyo⌡ ì
  305. migh⌠ áwheε áyo⌡ kno≈ tha⌠ you≥ CO═ filσ i≤ no⌠ oε thσ searcΦ path)¼ áyo⌡ ácaε ì
  306. specif∙ áß director∙ usinτ eithe≥ thσ DU║ prefi° o≥ thσ nameΣ ádirector∙ áDIR║ ì
  307. prefix¼ anΣ yo⌡ arσ thu≤ no⌠ limiteΣ t∩ thσ curren⌠ use≥ areß o≥ thσ path.è
  308.      WitΦ ┌-Systeφ onσ i≤ als∩ n∩ longe≥ limiteΣ t∩ issuinτ command≤ onσ a⌠ áß ì
  309. timσ (DO╙ ha≤ beeε eveε slowe≥ t∩ catcΦ oε t∩ this)«  ┴ singlσ linσ oµ commanΣ ì
  310. inpu⌠ caε contaiε ß wholσ sequencσ oµ commands«  A≤ ß result¼ yo⌡ d∩ no⌠ áhavσ ì
  311. t∩ áinterrup⌠ you≥ thinkinτ t∩ wai⌠ fo≥ onσ commanΣ t∩ finisΦ beforσ áyo⌡ ácaε ì
  312. specif∙ áthσ áseconΣ anΣ subsequen⌠ step≤ iε ß process«  Yo⌡ caε áworδ áou⌠ áß ì
  313. strateg∙ áfo≥ wha⌠ yo⌡ wan⌠ t∩ accomplisΦ anΣ issuσ al∞ thσ command≤ a⌠ áonce¼ ì
  314. beforσ yo⌡ forge⌠ o≥ ge⌠ confused.
  315.  
  316.      Man∙ áof⌠-repeateΣ ácomputationa∞ átask≤ involvσ ásequence≤ áoµ ácommand≤ ì
  317. (e.g.¼ áediting¼ áassembling¼ linking¼ running╗ o≥ áediting¼ áspel∞ áchecking¼ ì
  318. printing)« á Iε sucΦ cases¼ thσ ┌-Systeφ alia≤ facilit∙ (simila≥ iε somσ áway≤ ì
  319. t∩ áSUBMI╘ ábu⌠ fa≥ morσ flexible⌐ caε bσ useΣ t∩ definσ ß ne≈ ácommanΣ áname¼ ì
  320. which¼ wheε invoked¼ perform≤ thσ entirσ sequence«  Thi≤ save≤ thσ use≥ ß álo⌠ ì
  321. oµ átypinτ bu⌠ morσ importantl∙ eliminate≤ thσ neeΣ t∩ remembe≥ áexactl∙ áwha⌠ ì
  322. thσ ásequencσ is«  Basically¼ yo⌡ solvσ thσ probleφ oncσ anΣ pu⌠ thσ ásolutioε ì
  323. int∩ aε alia≤ script«  Froφ theε on¼ thσ compute≥ i≤ smar⌠ enougΦ t∩ takσ carσ ì
  324. oµ áthσ comple° detail≤ fo≥ you«  ╔ havσ giveε man∙ example≤ oµ thi≤ áiε ápas⌠ ì
  325. columns.
  326.  
  327.  
  328. Conditiona∞ CommanΣ Execution
  329.  
  330.      Therσ ái≤ áonl∙ ás∩ mucΦ onσ caε accomplisΦ oε ß compute≥ á(o≥ áiε álife⌐ ì
  331. withou⌠ ámakinτ decisions«  Havσ yo⌡ eve≥ seeε ß programminτ languagσ witΦ án∩ ì
  332. abilit∙ át∩ perforφ test≤ anΣ ac⌠ iε differen⌠ way≤ dependinτ oε thσ áresults┐ ì
  333. Flo≈ ácontro∞ á(IF/ELSE/ENDIF⌐ i≤ uniquσ t∩ thσ á┌-Systeφ ácommanΣ áprocessor« ì
  334. Othe≥ áoperatinτ system≤ tha⌠ offe≥ flo≈ contro∞ a⌠ al∞ limi⌠ i⌠ t∩ áoperatioε ì
  335. insidσ ß batcΦ o≥ scrip⌠ language.
  336.  
  337.      ┴ áspecia∞ se⌠ oµ ┌-Systeφ command≤ caε tes⌠ ß widσ rangσ oµ áconditions¼ ì
  338. anΣ áthσ commanΣ processo≥ wil∞ usσ thσ result≤ oµ thσ test≤ t∩ ádecidσ áwhicΦ ì
  339. subsequen⌠ command≤ wil∞ bσ performeΣ anΣ whicΦ wil∞ bσ skipped«  Thi≤ áallow≤ ì
  340. thσ á┌-Systeφ át∩ responΣ iε ß remarkabl∙ flexiblσ anΣ áintelligen⌠ áway« áThσ ì
  341. solutioε t∩ ß comple° computinτ task¼ onσ tha⌠ require≤ oε-thσ-spo⌠ ádecisioε-ì
  342. making¼ ácaε ábσ workeΣ ou⌠ oncσ anΣ embeddeΣ iε aε alia≤ ácommand« áTheε áyo⌡ ì
  343. won'⌠ havσ t∩ ta° you≥ braiε thσ nex⌠ timσ yo⌡ neeΣ t∩ perforφ thi≤ task¼ áanΣ ì
  344. novicσ áuser≤ wil∞ bσ ablσ t∩ d∩ thing≤ oε you≥ compute≥ tha⌠ woulΣ havσ ábeeε ì
  345. beyonΣ thei≥ owε abilit∙ t∩ figurσ out.
  346.  
  347.  
  348. CommanΣ Processo≥ Shells
  349.  
  350.      Iµ yo⌡ d∩ no⌠ wan⌠ t∩ dea∞ witΦ thσ operatinτ systeφ a⌠ thσ commanΣ leve∞ ì
  351. o≥ áiµ áyo⌡ wan⌠ t∩ havσ ß commanΣ processo≥ witΦ differen⌠ features¼ áthσ á┌-ì
  352. Systeφ shel∞ facilit∙ allow≤ yo⌡ t∩ instal∞ substitutσ use≥ interface≤ oµ you≥ ì
  353. owε choicσ a⌠ will«  The∙ caε eveε bσ nesteΣ withiε eacΦ other.
  354.  
  355.      Shell≤ comσ iε tw∩ commoε varieties║ men⌡ shell≤ anΣ histor∙ shells« áThσ ì
  356. men⌡ áinterface≤ allo≈ thσ use≥ t∩ picδ task≤ witΦ singlσ keystroke≤ anΣ áhavσ ì
  357. thσ áshel∞ áprograφ ágeneratσ thσ comple° sequence≤ oµ ácommand≤ árequireΣ át∩ ì
  358. perforφ thosσ tasks«  Thσ men⌡ systeφ shield≤ thσ use≥ froφ complexity¼ ásave≤ ìètyping¼ anΣ greatl∙ reduce≤ thσ chancσ oµ error.
  359.  
  360.      Histor∙ áshell≤ áarσ áenhanceΣ ácommanΣ áprocessor≤ átha⌠ áremembe≥ áyou≥ ì
  361. command≤ anΣ allo≈ yo⌡ t∩ recal∞ anΣ edi⌠ previou≤ commanΣ lines«  ╔ wisΦ áthσ ì
  362. Apoll∩ áDomaiε áminicompute≥ ásysteφ á╔ usσ a⌠ worδ (no⌠ át∩ ámentioε ám∙ áDO╙ ì
  363. computer⌐ áhaΣ ß histor∙ shel∞ onσ quarte≥ a≤ nicσ a≤ ┌-System'≤ LS╚ o≥ áEASE« ì
  364. The∙ áworδ álikσ ápowerfu∞ wordprocessor≤ oε you≥ ácommanΣ áhistory¼ áallowinτ ì
  365. searchinτ anΣ extensivσ editing.
  366.  
  367.  
  368. Wha⌠ Iµ Yo⌡ Makσ ß Mistake
  369.  
  370.      Thi≤ i≤ onσ oµ thσ othe≥ area≤ iε whicΦ mos⌠ operatinτ system≤ behavσ áiε ì
  371. aε áabominabl∙ áprimitivσ ámanner«  Wheε yo⌡ issuσ ß commanΣ átha⌠ ácanno⌠ ábσ ì
  372. performed¼ áthe∙ jus⌠ issuσ aε erro≥ messagσ anΣ theε dum≡ yo⌡ bacδ t∩ ásquarσ ì
  373. one«  Ofteε yo⌡ arσ no⌠ eveε tolΣ wha⌠ sor⌠ oµ erro≥ occurreΣ (conside≥ áDOS'≤ ì
  374. wonderfull∙ helpfu∞ "baΣ commandó message).
  375.  
  376.      Thσ á┌-Systeφ ábehave≤ iε ß civilizeΣ manne≥ unde≥ áthesσ ácircumstances« ì
  377. Wheε aε erro≥ occurs¼ thσ commanΣ processo≥ turn≤ thσ baΣ commanΣ linσ ove≥ t∩ ì
  378. ß áuse≥-specifieΣ erro≥ handler«  Thσ mos⌠ sophisticateΣ erro≥ handler≤ áallo≈ ì
  379. thσ operato≥ t∩ edi⌠ thσ commanΣ anΣ thu≤ recove≥ easil∙ froφ typinτ mistakes«  ì
  380. Iε áß ámultiplσ commanΣ sequence¼ iµ subsequen⌠ command≤ werσ alloweΣ át∩ áruε ì
  381. afte≥ aε earlie≥ commanΣ failed¼ therσ coulΣ bσ disastrou≤ repercussions¼ áanΣ ì
  382. aε erro≥ handle≥ i≤ indispensible.
  383.  
  384.      Thσ ásysteφ áenvironmen⌠ áeveε contain≤ aε erro≥ type¼ áwhicΦ áthσ áerro≥ ì
  385. handle≥ ácaε usσ t∩ givσ yo⌡ morσ specifiπ informatioε abou⌠ wha⌠ wen⌠ áwrong« ì
  386. I⌠ ma∙ bσ thσ familia≥ erro≥ oµ ß CO═ filσ tha⌠ coulΣ no⌠ bσ found¼ bu⌠ átherσ ì
  387. arσ man∙ othe≥ possiblσ cause≤ fo≥ thσ difficulty«  ┴ filσ tha⌠ yo⌡ áspecifieΣ ì
  388. a≤ aε argumen⌠ migh⌠ no⌠ havσ beeε founΣ (e.g.¼ "TYP┼ FILENAMó wheε yo⌡ ámean⌠ ì
  389. "TYP┼ áFILENAME")¼ áo≥ áyo⌡ ma∙ havσ specifieΣ aε ambiguou≤ áfilσ ánamσ át∩ áß ì
  390. prograφ tha⌠ canno⌠ accep⌠ onσ (e.g.¼ "TYP┼ *.DOC").
  391.  
  392.  
  393. Systeφ Security
  394.  
  395.      Likσ áminicompute≥ áanΣ mainframσ operatinτ systems¼ thσ á┌-Systeφ ái≤ áß ì
  396. securσ operatinτ system«  Thi≤ mean≤ tha⌠ i⌠ ha≤ mechanism≤ fo≥ limitinτ áwha⌠ ì
  397. an∙ áparticula≥ áuse≥ caε d∩ o≥ ge⌠ acces≤ to«  Dangerou≤ ácommand≤ á(sucΦ áa≤ ì
  398. erasing¼ ácopying¼ o≥ renaminτ files⌐ caε bσ disableΣ wheε ordinar∙ user≤ áarσ ì
  399. operatinτ áthσ systeφ bu⌠ enableΣ wheε ß privilegeΣ use≥ i≤ a⌠ work« Area≤ áoµ ì
  400. you≥ ádisδ caε bσ restricteΣ froφ acces≤ fo≥ storagσ oµ confidentia∞ o≥ áothe≥ ì
  401. sensitivσ áinformation« á Thesσ securit∙ feature≤ comσ iε ver∙ áhand∙ áiε áthσ ì
  402. implementatioε áoµ ß remotσ acces≤ systeφ o≥ bulletiε boarΣ (seσ Leσ áMcEwen'≤ ì
  403. articlσ áiε áthi≤ áissue)«  Therσ i≤ n∩ neeΣ fo≥ áadditiona∞ ásecurit∙ át∩ ábσ ì
  404. provideΣ b∙ thσ remotσ interfacσ prograφ (BYE)«  Thσ ┌-Systeφ alread∙ include≤ ì
  405. ß ful∞ suitσ oµ program≤ fo≥ regulatinτ anΣ controllinτ systeφ security.
  406.  
  407.  
  408. Summary
  409. è     T∩ suφ i⌠ up¼ thσ goa∞ oµ thσ ┌-Systeφ i≤ t∩ providσ aε operatinτ ásysteφ ì
  410. tha⌠ ácaε bσ tailoreΣ extensivel∙ t∩ use≥ preference≤ anΣ tha⌠ caε bσ madσ át∩ ì
  411. handlσ áoε it≤ owε anΣ automaticall∙ a≤ man∙ computationa∞ detail≤ a≤ i⌠ ácan¼ ì
  412. leavinτ áthσ áuse≥ áfreσ t∩ concentratσ solel∙ oε thosσ áaspect≤ áoµ ácompute≥ ì
  413. operatioε tha⌠ requirσ humaε intelligence.
  414.  
  415.                            Fakinτ Ou⌠ Thσ System
  416.  
  417.      Fo≥ thσ technica∞ par⌠ oµ thi≤ column¼ ╔ woulΣ likσ t∩ talδ briefl∙ abou⌠ ì
  418. somσ átechnique≤ fo≥ addinτ extension≤ t∩ ß ┌-Systeφ tha⌠ i⌠ wa≤ no⌠ ádesigneΣ ì
  419. t∩ accept«  Thσ neeΣ fo≥ thi≤ tricδ arosσ iε connectioε witΦ thσ áinstallatioε ì
  420. oµ áZSDO╙ áanΣ ZDDO╙ (anΣ thei≥ clocδ drivers⌐ oε aε SB18░ compute≥ áwitΦ áthσ ì
  421. XBIO╙ enhanceΣ BIOS¼ bu⌠ i⌠ caε bσ usefu∞ iε othe≥ situation≤ a≤ well.
  422.  
  423.      XBIO╙ ái≤ ß ver∙ nicσ anΣ flexiblσ system«  Onσ oµ it≤ maiε áfeature≤ ái≤ ì
  424. tha⌠ ái⌠ ákeep≤ mucΦ oµ thσ BIO╙ iε aε alternatσ memor∙ bank¼ leavinτ áß ámucΦ ì
  425. large≥ áTP┴ á(transien⌠ prograφ area⌐ fo≥ applicatioε program≤ áthaε ádiΣ áthσ ì
  426. standarΣ BIO╙ froφ MicroMint«  Thσ configuratioε anΣ loadinτ process¼ however¼ ì
  427. i≤ somewha⌠ unconventiona∞ (ß forerunne≥ iε somσ way≤ t∩ thσ NZCO═ anΣ áZ3PLU╙ ì
  428. techniques).
  429.  
  430.      Thσ XBIO╙ systeφ i≤ loadeΣ no⌠ froφ systeφ track≤ oε thσ disδ bu⌠ froφ áß ì
  431. file« á Thi≤ áfilσ ái≤ generateΣ b∙ ß specia∞ utilit∙ áprograφ ácalleΣ áSYSBL─ ì
  432. (SYSteφ áBuiLD⌐ átha⌠ áallow≤ áonσ t∩ definσ iε áß árathe≥ áflexiblσ áwa∙ áthσ ì
  433. configuratioε áoµ one'≤ persona∞ ┌-System¼ includinτ thσ name≤ oµ thσ CC╨ áanΣ ì
  434. DO╙ áfile≤ t∩ bσ used«  Thosσ componen⌠ files¼ however¼ mus⌠ bσ áavailablσ áiε ì
  435. RE╠ áformat¼ áanΣ thσ ne≈ ┌-Systeφ DO╙ component≤ arσ supplieΣ iε áZR╠ áforma⌠ ì
  436. onl∙ á(becausσ áthe∙ áhavσ áhook≤ t∩ othe≥ part≤ oµ thσ ásysteφ átha⌠ ácaε ábσ ì
  437. resolveΣ onl∙ b∙ tha⌠ format).
  438.  
  439.  
  440. Changinτ System≤ Usinτ JetLDR
  441.  
  442.      JetLD╥ i≤ ß lovel∙ littlσ utilit∙ writteε b∙ Bridge≥ Mitchel∞ tha⌠ áknow≤ ì
  443. ho≈ t∩ loaΣ almos⌠ an∙ modulσ iε ß ┌ operatinτ system«  I⌠ i≤ mucΦ faste≥ áanΣ ì
  444. morσ carefu∞ thaε it≤ predecessors¼ LD╥ anΣ LLDR¼ anΣ i⌠ i≤ no⌠ limiteΣ t∩ thσ ì
  445. noε-codσ ┌ module≤ ¡¡ sucΦ a≤ thσ ND╥ (nameΣ director∙ register⌐ ¡¡ o≥ t∩ codσ ì
  446. module≤ ápreassembleΣ fo≥ ß fixeΣ systeφ ¡¡ sucΦ a≤ aε RC╨ á(residen⌠ ácommanΣ ì
  447. package⌐ ámodulσ FIXED.RCP«  I⌠ caε loaΣ codσ module≤ assembleΣ iε ZR╠ áforma⌠ ì
  448. t∩ áwhateve≥ addres≤ tha⌠ modulσ occupie≤ iε thσ curren⌠ systeφ anΣ áwitΦ áal∞ ì
  449. thσ áhook≤ t∩ othe≥ ┌-Systeφ module≤ generateΣ a⌠ loaΣ time«  Thu≤ áMYRCP.ZRL¼ ì
  450. assembleΣ once¼ caε bσ useΣ iε an∙ systeφ configuratioε tha⌠ allocate≤ áenougΦ ì
  451. rooφ fo≥ aε RC╨ oµ tha⌠ size.
  452.  
  453.      Mos⌠ remarkably¼ JetLD╥ caε loaΣ eveε maiε operatinτ systeφ modules║ CCP¼ ì
  454. DOS¼ áo≥ BIOS«  Specia∞ adjunc⌠ configuratioε file≤ (CFG⌐ arσ useΣ t∩ hel≡ ái⌠ ì
  455. iε somσ oµ thesσ specializeΣ task≤ (ß littlσ morσ abou⌠ tha⌠ later)« áJetLDR'≤ ì
  456. interna∞ hel≡ screeε i≤ reproduceΣ iε Fig« ▒ s∩ yo⌡ caε seσ thσ wholσ lis⌠ áoµ ì
  457. module≤ i⌠ caε handle«  I⌠ i≤ availablσ froφ thσ usua∞ ┌ supplier≤ fo≥ $20.
  458.  
  459.      So¼ thσ obviou≤ solutioε t∩ thσ probleφ oµ gettinτ ZSDO╙ o≥ ZDDO╙ runninτ ì
  460. unde≥ áXBIO╙ i≤ firs⌠ t∩ generatσ anΣ boo⌠ ß standarΣ ZRDO╙ systeφ á(ZRDOS.RE╠ ìècome≤ áwitΦ áthσ SB180⌐ anΣ theε t∩ replacσ ZRDO╙ with¼ say¼ ZDDO╙ áusinτ áthσ ì
  461. JetLD╥ command:
  462.  
  463.     JETLD╥ ZDDOS.ZRL
  464.  
  465. ZSDO╙ ácaε bσ loadeΣ jus⌠ a≤ easily«  Oε m∙ systeφ ╔ havσ ARUN┌ áaliase≤ átha⌠ ì
  466. swa≡ DOS≤ iε ß jiff∙ thi≤ wa∙ iε casσ ╔ wan⌠ t∩ perforφ somσ experiments.
  467.  
  468.  
  469. There'≤ Thσ Rub
  470.  
  471.      No≈ ácome≤ thσ problem«  It'≤ ver∙ nicσ tha⌠ wσ no≈ havσ ZDDO╙ áo≥ áZSDO╙ ì
  472. loadeΣ anΣ running¼ bu⌠ iµ wσ wan⌠ t∩ takσ advantagσ oµ it≤ wonderfu∞ timσ anΣ ì
  473. datσ áfeatures¼ wσ mus⌠ finΣ ß wa∙ t∩ loaΣ it≤ clocδ anΣ (fo≥ ZSDOS⌐ ástampinτ ì
  474. module¼ átoo« á Thσ áZDO╙ utilit∙ SETUPZS╘ make≤ i⌠ ver∙ eas∙ át∩ ácreatσ áthσ ì
  475. requireΣ áloader¼ áLDTIM.COM╗ thσ probleφ is║ wherσ caε LDTI═ pu⌠ áthσ ádrive≥ ì
  476. code┐  [Aside║ Fo≥ thosσ wh∩ owε it¼ ╔ aφ tolΣ tha⌠ thσ DateStampe≥ BS╪ modulσ ì
  477. wil∞ worδ witΦ ZSDOS¼ bu⌠ ╔ havσ no⌠ trieΣ thi≤ myself«  I⌠ require≤ n∩ memor∙ ì
  478. t∩ load.]
  479.  
  480.      Iε áaε áNZCO═ system¼ thσ MKZC═ systeφ definitioε utilit∙ allow≤ áonσ át∩ ì
  481. specif∙ áß á"use≥ ábufferó areß iε memory¼ anΣ thi≤ i≤ jus⌠ áperfec⌠ áfo≥ áthσ ì
  482. clock/stam≡ module«  ZDO╙ eveε ha≤ specia∞ facilitie≤ fo≥ takinτ advantagσ áoµ ì
  483. thi≤ ábuffer«  LDTI═ caε automaticall∙ determinσ thσ locatioε oµ átha⌠ ábuffe≥ ì
  484. anΣ instal∞ thσ driver≤ there¼ anΣ ß specia∞ patcΦ t∩ NZCO═ (includeΣ witΦ thσ ì
  485. ZDO╙ ápackage⌐ give≤ NZCO═ thσ abilit∙ t∩ reconnec⌠ thσ driver≤ áautomaticall∙ ì
  486. afte≥ ß ne≈ DO╙ i≤ loaded.
  487.  
  488.      XBIOS'≤ áSYSBL─ áutility¼ áunfortunately¼ doe≤ no⌠ suppor⌠ ásucΦ áß áuse≥ ì
  489. buffe≥ (thi≤ i≤ truσ eveε iε thσ 1.▓ versioε tha⌠ i≤ ablσ t∩ loaΣ ZR╠ áfiles)«  ì
  490. Therσ ái≤ áß wa∙ t∩ tricδ thσ systeφ int∩ makinτ somσ rooφ áfo≥ áextrß ámemor∙ ì
  491. modules« á Thi≤ ái≤ át∩ assigε thσ extrß memor∙ spacσ needeΣ át∩ áonσ áoµ áthσ ì
  492. standarΣ ámodules¼ ásucΦ a≤ thσ RCP«  Fo≥ example¼ iµ yo⌡ usσ aε áRC╨ áoµ áthσ ì
  493. usua∞ á2╦ á(1╢ record⌐ sizσ anΣ neeΣ onσ pagσ (tw∩ records⌐ oµ ámemor∙ áfo≥ áß ì
  494. ZDDO╙ áclocδ ádriver¼ yo⌡ simpl∙ specif∙ aε 1╕-recorΣ RC╨ space« á Then¼ áwheε ì
  495. SETUPZS╘ ask≤ yo⌡ fo≥ thσ addres≤ t∩ whicΦ thσ clocδ drive≥ shoulΣ bσ áloaded¼ ì
  496. yo⌡ givσ i⌠ thσ startinτ addres≤ oµ thσ las⌠ pagσ oµ thi≤ RC╨ space.
  497.  
  498.      Oncσ áthesσ step≤ havσ beeε followed¼ ZDDO╙ shoulΣ bσ runninτ áwitΦ ádatσ ì
  499. stamping« á ZSDO╙ ácoulΣ bσ installeΣ similarl∙ excep⌠ tha⌠ áeveε ámorσ áextrß ì
  500. spacσ áwoulΣ havσ t∩ bσ allocateΣ t∩ thσ RCP«  AlthougΦ wha⌠ ╔ havσ ádescribeΣ ì
  501. s∩ fa≥ wil∞ ge⌠ thσ systeφ running¼ therσ i≤ somσ dange≥ tha⌠ aε oversizσ áRC╨ ì
  502. coulΣ bσ loadeΣ b∙ acciden⌠ anΣ overwritσ thσ clocδ driver«  T∩ preven⌠ áthis¼ ì
  503. thσ áEN╓ modulσ shoulΣ bσ patcheΣ t∩ indicatσ tha⌠ onl∙ thσ actua∞ 1╢ árecord≤ ì
  504. (10H⌐ arσ available.
  505.  
  506.      Fo≥ áthosσ áwh∩ d∩ no⌠ facσ thσ probleφ oµ installinτ ZDO╙ oε áaε áXBIO╙-ì
  507. equippeΣ SB180¼ therσ arσ othe≥ use≤ oµ thi≤ kinΣ oµ trick«  Fo≥ peoplσ wh∩ d∩ ì
  508. no⌠ havσ thσ necessar∙ tool≤ (e.g.¼ MOVCPM⌐ t∩ movσ thσ BIO╙ dowε t∩ makσ rooφ ì
  509. fo≥ áspecia∞ driver≤ (sucΦ a≤ RA═ disδ driver≤ anΣ specia∞ I/╧ áboards)¼ áthi≤ ì
  510. samσ átricδ caε bσ applieΣ t∩ opeε u≡ protecteΣ-memor∙ spacσ fo≥ áthem« áOthe≥ ì
  511. peoplσ áma∙ finΣ i⌠ usefu∞ fo≥ quicδ experiment≤ witΦ specia∞ ádriver≤ ábeforσ ìègoinτ t∩ thσ troublσ oµ movinτ thσ operatinτ systeφ around.
  512.  
  513.      Therσ i≤ onσ fina∞ refinemen⌠ ╔ woulΣ likσ t∩ mention«  I⌠ i≤ somethinτ ╔ ì
  514. learneΣ áfroφ áGenσ Pizzetta¼ wh∩ tooδ m∙ genera∞ árecommendation≤ áabovσ áanΣ ì
  515. workeΣ ou⌠ thσ detail≤ (seσ hi≤ file¼ Z─-XB11.LBR¼ availablσ oε man∙ ┌-Nodes)«  ì
  516. ╔ áhavσ áusuall∙ useΣ eithe≥ thσ IO╨ o≥ RC╨ module≤ fo≥ thi≤ trick¼ ábu⌠ áGenσ ì
  517. recommendeΣ usinτ thσ ND╥ instead«  Thσ reasoε fo≥ thi≤ i≤ tha⌠ thσ IOP¼ áRCP¼ ì
  518. anΣ FC╨ ge⌠ allocateΣ iε 12╕-bytσ chunks¼ whilσ thσ ND╥ get≤ allocateΣ iε mucΦ ì
  519. smalle≥ 1╕-bytσ chunks¼ thσ spacσ requireΣ fo≥ onσ name« Iµ you≥ clocδ ádrive≥ ì
  520. takes¼ áfo≥ example¼ 27░ byte≤ (10EH)¼ yo⌡ woulΣ havσ t∩ allocatσ threσ áextrß ì
  521. records¼ ábecausσ áthσ drive≥ i≤ ß tin∙ bi⌠ ove≥ tw∩ records« á Iµ áyo⌡ ástea∞ ì
  522. spacσ áfroφ áaε NDR¼ yo⌡ caε adΣ jus⌠ tw∩ records¼ bu⌠ reducσ áthσ ánumbe≥ áoµ ì
  523. name≤ iε thσ ND╥ b∙ 1.
  524.  
  525.  
  526. Changinτ CommanΣ Processors
  527.  
  528.      Generatinτ ß ne≈ CC╨ usinτ JetLD╥ i≤ ß littlσ trickie≥ thaε changinτ áthσ ì
  529. DOS« á JetLD╥ ácould¼ a≤ i⌠ doe≤ witΦ ß DO╙ o≥ BIO╙ module¼ loaΣ thσ áne≈ áCC╨ ì
  530. int∩ áit≤ áoperatinτ ápositioε iε memory¼ bu⌠ thi≤ woulΣ ábσ áoµ áquestionablσ ì
  531. value¼ sincσ thσ CC╨ woulΣ survivσ onl∙ unti∞ thσ nex⌠ warmboot«  So¼ instead¼ ì
  532. wheε áprocessinτ áß áCC╨ áZR╠ module¼ JetLD╥ ánormall∙ áwrite≤ áthσ áresultinτ ì
  533. absolutσ-codσ CC╨ t∩ ß filσ ZCCP.CC╨ (iε thσ roo⌠ directory¼ ╔ believe).
  534.  
  535.      Thi≤ ái≤ wherσ CF╟ file≤ comσ int∩ play«  The∙ arσ specia∞ ácodσ ámodule≤ ì
  536. tha⌠ JetLD╥ use≤ t∩ perforφ specia∞ processinτ (seσ thσ filσ JLTOOLS.LB╥ oε ┌-ì
  537. Node≤ áfo≥ ámorσ detaileΣ information)«  Fo≥ example¼ CCPCFG.ZR╠ i≤ áonσ átha⌠ ì
  538. tell≤ áJetLD╥ ho≈ t∩ deposi⌠ thσ absolutσ CC╨ codσ tha⌠ i⌠ generate≤ ádirectl∙ ì
  539. int∩ thσ XBIO╙ raφ imagσ oµ thσ CC╨ iε bankeΣ memor∙ (froφ whicΦ i⌠ i≤ áloadeΣ ì
  540. oε eacΦ warφ boot)«  ┴ simila≥ CF╟ filσ coulΣ bσ writteε t∩ tel∞ JetLD╥ ho≈ t∩ ì
  541. instal∞ thσ ne≈ CC╨ ont∩ thσ systeφ track≤ oµ thσ curren⌠ drivσ-┴ disk¼ bu⌠ s∩ ì
  542. fa≥ án∩ onσ ha≤ donσ this«  ╔ woulΣ bσ happ∙ t∩ providσ thσ CCPCF╟ ámodulσ át∩ ì
  543. XBIO╙ áowner≤ áwh∩ woulΣ likσ i⌠ o≥ t∩ other≤ wh∩ woulΣ likσ t∩ usσ ái⌠ áa≤ áß ì
  544. mode∞ fo≥ writinτ othe≥ CF╟ file≤ (senΣ mσ ß formatteΣ disδ witΦ you≥ cop∙ áoµ ì
  545. JetLDR¼ returε mailer¼ etc.).
  546.  
  547. ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-
  548.  
  549. JetLD╥ fo≥ ┌-System≤ (ZCPR3)¼ Versioε 1.00
  550. Copyrigh⌠ (c⌐ 198╕ Bridge≥ Mitchell
  551.  
  552. Syntax:
  553.    JetLDR  [du:][library][.lbr]  member1.typ  member2.typ  ...
  554.   or
  555.    JetLDR  [du:]file1.typ  [du:]file2.typ  [du:]file3.typ ...
  556.  
  557.   ENV - environment                FCP - flow commands
  558.   IOP - input/output               RCP - resident commands
  559.   NDR - named directories          Z3T - terminal capabilities
  560.   ZRL or REL - module in SLR or MS-relocatable (REL) format
  561.       with member name: RCP, FCP, IOP, CCP, CP3, DOS, DO3, BIO, CFG or BSX
  562. èNotes:
  563.   If first file is a library, extract remaining files from it.
  564.   An ENV file must be the first loaded.
  565.   Preceed special modules (DOS, RSX, BSX, ...) with appropriate CFG file.
  566.  
  567. Use Path: YES   Root Only: NO   Scan Current: YES   Explicit Directory: A0:
  568.  
  569.                          -------------------------
  570.  
  571. Figure 1.  This is the internal help screen displayed by the command
  572. "JETLDR //".  It shows how flexible a package loader JetLDR is.
  573.  
  574. -----------------------------------------------------------------------------
  575.  
  576. [This article was originally published in issue 42 of The Computer Journal,
  577. P.O. Box 12, South Plainfield, NJ 07080-0012 and is reproduced with the
  578. permission of the author and the publisher. Further reproduction for non-
  579. commercial purposes is authorized. This copyright notice must be retained.
  580. (c) Copyright 1990, 1991 Socrates Press and respective authors]
  581.